我对rails国际化有一个相当具体的设置。我正在使用rails-i18n
gem,但这不重要。它与Rails 3完美配合。这是config/application.rb
config.i18n.default_locale = :en
config.i18n.locale = :hr
让我解释一下:
:hr
(克罗地亚语)因为我主要用克罗地亚语制作本地化应用程序:en
,因为我经常使用包含英语翻译的rails-admin
等宝石。它在缺少(克罗地亚语)翻译后备英语的制作中表现很好。没关系,所有管理员都懂英语:)似乎Rails 4忽略了config.i18n.locale
,它总是使用:en
区域设置。
到目前为止,我一直在使用before_action
来设置I18n.locale = :hr
,但这在Rails控制台或Rack中间件中不起作用......
提前致谢,
达尼耶尔
答案 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