Мой сайт должен поддерживать несколько языков, как мне проложить маршрут по рельсам? - PullRequest
2 голосов
/ 31 января 2009

У меня есть несколько ресурсов, и я хочу как-то иметь параметр: lang в заголовке. Поэтому / en / posts / будет указывать на posts_controller / index с параметрами [: lang] == ru.

Как это обычно делается? Кажется уродливым добавлять? Lang = en в каждую ссылку и чувствовать себя очень невежливо.

Я думаю, вы знаете, о чем я говорю, даже если мне не очень ясно, какова здесь норма?

Ответы [ 3 ]

1 голос
/ 31 января 2009

Один из способов сделать это будет:

map.resources :yourresources, :path_prefix => '/:lang'

Вы также можете добавить фильтр параметров языка:

map.resources :yourresources, :path_prefix => '/:lang', :lang => /(en|de|jp)/
0 голосов
/ 02 февраля 2009

Разве вы не должны полностью избегать маршрутов и устанавливать язык на основе заголовка HTTP браузера Accept-Language? Смотрите здесь .

Я полагаю, что вы должны дать своим пользователям возможность изменить свой язык, а затем сохранить это значение в файле cookie, который затем можно извлечь в before_filter.

Зачем это? Что ж, в «рекомендациях по HTTP» говорится, что у каждого ресурса должен быть один URI. Статья остается той же статьей, будь то на испанском или английском языке, поэтому должна иметь один и тот же URI. site.com/en/article и site.com/es/article явно не совпадают с URI, что нарушает этот принцип

0 голосов
/ 02 февраля 2009

Похоже, новейшая функция, запланированная для Rails 2.3, прямо у вас на пути: http://afreshcup.com/2009/02/01/rails-23-localized-views/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...