如何为Rails 4设置区域设置

时间:2014-02-20 11:03:26

标签: ruby-on-rails ruby-on-rails-4 rails-i18n

我对rails国际化有一个相当具体的设置。我正在使用rails-i18n gem,但这不重要。它与Rails 3完美配合。这是config/application.rb

的配置
config.i18n.default_locale = :en
config.i18n.locale = :hr

让我解释一下:

  • locale设置为:hr(克罗地亚语)因为我主要用克罗地亚语制作本地化应用程序
  • 默认语言环境设置为:en,因为我经常使用包含英语翻译的rails-admin等宝石。它在缺少(克罗地亚语)翻译后备英语的制作中表现很好。没关系,所有管理员都懂英语:)

问题是:如何使用Rails 4?

似乎Rails 4忽略了config.i18n.locale,它总是使用:en区域设置。

到目前为止,我一直在使用before_action来设置I18n.locale = :hr,但这在Rails控制台或Rack中间件中不起作用......

提前致谢,

达尼耶尔

2 个答案:

答案 0 :(得分:1)

我找到了一个简单的解决方案,我在这里张贴......

插入config/application.rb

  config.i18n.default_locale = :hr
  config.i18n.available_locales = [:hr, :en]
  config.i18n.fallbacks = [:en]

config/environments/production.rb

删除或评论以下行
  # config.i18n.fallbacks = true

或将其更改为:

  config.i18n.fallbacks = [:en]

答案 1 :(得分:0)

您可以添加以下代码:

class ApplicationController
    ...

    before_filter :set_locale

    ...

    private

    def set_locale
        I18n.locale = :hr
    end 

end