无法弄清楚如何在Devise上做i18n

时间:2011-01-20 11:30:34

标签: ruby-on-rails ruby-on-rails-3 internationalization devise

在我的rails3应用中,我使用设计进行身份验证

现在我正在尝试做i18n。因为我在devise.en.yml中看到config/locales,我认为我要做的就是让devise.ro.yml用我的另一种语言翻译它。但如果devise.ro.yml存在,无论我使用何种语言

,一切都在ro中

更改语言,我在我的网址中使用区域设置参数。因为我在应用程序控制器中设置了这样的东西:

before_filter :set_locale

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

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

我的应用程序中的所有内容都已翻译好,但设计部分除外

我在这里错过了什么吗?

4 个答案:

答案 0 :(得分:3)

我可以假设你在devise.ro.yml ro而不是en之上做了吗?

答案 1 :(得分:1)

首先,您需要使用:rails generate devise:views生成Devise视图,然后您可以翻译每个视图以满足您的语言环境需求。

devise.en.yml仅适用于Flash消息。

答案 2 :(得分:1)

默认情况下,设计视图不使用i18n,从现在开始,您可以使用https://github.com/mcasimir/devise-i18n-views为设计视图和邮件添加I18n支持。 (见https://github.com/plataformatec/devise/pull/1989

答案 3 :(得分:0)

devise.ro.yml应该可以工作。

作为旁注:

我有类似的问题,并使用这个技巧来调试/找出Rails尝试查找翻译的位置:

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