heroku I18n语言环境与default_locale不同,在本地工作正常

oma*_*oma 2 ruby-on-rails heroku internationalization

所以,一切都在本地工作正常,但在heroku它改为:en

在两种环境中启动控制台:

Heroku的:

heroku console --app myapp
Run Code Online (Sandbox Code Playgroud)

本地:

rails c
Run Code Online (Sandbox Code Playgroud)

然后玩

Heroku: > I18n.l Time.now
=> "Tue, 01 Mar 2011 06:43:58 -0800"
Local:  > I18n.l Time.now
 => "tirsdag,  1. mars 2011, 15:43"

Heroku: > I18n.default_locale
 => :nb
Local:  > I18n.default_locale
 => :nb

#after a lot more trial and error, I find this:
Heroku: > I18n.locale
=> :en
Local:  > I18n.locale
=> :nb
Run Code Online (Sandbox Code Playgroud)

只是I18n.locale = :nb在控制台中修复问题ATM,当我在不同的浏览器中刷新时,它可以正常工作.但在重新部署时,它又回到了:en.

我是否也必须在initilizer中设置语言环境?我糊涂了.

仅供参考:我没有以编程方式将I18n.locale设置在任何地方.staging.rb很简单.

oma*_*oma 9

它有助于直接设置区域设置.

config.i18n.default_locale = :nb
#Adding the below makes it work as expected at heroku
config.i18n.locale = :nb 
Run Code Online (Sandbox Code Playgroud)

如果您有更好的解决方案,请告诉我,您将获得更多投票和接受的答案.