Rails不允许更改区域设置

时间:2014-07-10 23:33:04

标签: ruby-on-rails localization internationalization rails-i18n rails-console

我正在尝试更改我的rails(4.1.4)应用程序正在使用的语言环境,但每次我尝试使用

等命令在控制台中更改它
I18n.locale = :es
I18n.default_locale = :de

出现了I18n :: InvalidLocale错误。对于我测试的每个区域设置都是这种情况,包括区域性的,例如:en-US。即使我为该语言环境设置了* .yml文件,也是如此。唯一有效的是:en,这是我的默认值。

我觉得这应该是非常基本的东西,因为我找到的所有资源似乎都跳过这个作为给定,但它不适合我,我无法找出在哪里寻找问题源。

3 个答案:

答案 0 :(得分:25)

您是否在application.rb中添加了新的区域设置?

config.i18n.enforce_available_locales = false
config.i18n.available_locales = [:en, :es, :de]
config.i18n.default_locale = :de

您还必须在en.yml文件夹中创建文件es.ymlde.ymlconfig/locale

答案 1 :(得分:0)

谢谢!当我查看该文件时,我意识到除了你给出的答案之外,Rails还提供了自己的解决方案 -

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]

所以基本上它需要一个翻译文件,如pt-br.yml,并将其添加到有效的语言环境列表中。

答案 2 :(得分:0)

确保已将es.yml和de.yml添加到config / locales文件夹中。