Второй вариант. На кукисы и пр. лучше не перебрасывать языки, т.к. в любом случае возникнут проблемы с индексацией. Если один язык основной, а остальные дополнительные, как часто бывает, можно сделать красиво и настроить контроллер таким образом, чтобы он воспринимал основной как:
site.dot/ru/ = site.dot, а остальные site.dot/en/, site.dot/de/