не могу понять, как сделать i18n на Devise - PullRequest
5 голосов
/ 20 января 2011

в моем приложении rails3, я использую devise для аутентификации

Теперь я пытаюсь сделать i18n. для этого я увидел devise.en.yml в config/locales и подумал, что все, что мне нужно сделать, это сделать devise.ro.yml, чтобы перевести его на мой другой язык. но если присутствует devise.ro.yml, все в ро, независимо от того, какой язык я использую

для смены языка, я использую параметр local в своих URL. для этого я настроил в контроллере приложения что-то вроде этого:

before_filter :set_locale

def set_locale
  I18n.locale=params[:locale]
end

def default_url_options(options={})
   { :locale => I18n.locale }
end

все в моем приложении переведено нормально, кроме части разработки

Я что-то здесь упускаю?

Ответы [ 4 ]

3 голосов
/ 20 января 2011

Я могу предположить, что ты идешь наверх devise.ro.yml ro вместо en?

1 голос
/ 25 июля 2012

Представления Devise не используют i18n по умолчанию, теперь вы можете использовать https://github.com/mcasimir/devise-i18n-views, чтобы добавить поддержку I18n для представлений Devise и почты.(см. https://github.com/plataformatec/devise/pull/1989)

1 голос
/ 20 января 2011

Сначала вам нужно сгенерировать представления Devise с помощью: rails generate devise:views, затем вы можете перевести каждое из них в соответствии с вашими требованиями.

devise.en.yml только для флеш-сообщений.

0 голосов
/ 17 октября 2011

devise.ro.yml должен работать.

в качестве дополнительного примечания:

У меня были похожие проблемы, и я использовал этот трюк для отладки / выяснения, где / что пытается Railsпоиск переводов:

http://unixgods.org/~tilo/Rails/which_l10n_strings_is_rails_trying_to_lookup.html

...