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

时间:2011-03-01 15:47:03

标签: ruby-on-rails internationalization heroku

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

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

Heroku:

heroku console --app myapp

当地:

rails c

然后玩耍

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

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

我是否也必须在initilizer中设置语言环境?我很困惑。

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

2 个答案:

答案 0 :(得分:9)

它帮助直接设置了区域设置。

config.i18n.default_locale = :nb
#Adding the below makes it work as expected at heroku
config.i18n.locale = :nb 

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

答案 1 :(得分:0)

您使用的是哪个版本的Ruby on Rails?我对2.x不肯定,但在Rails 3中,您可以使用config/application.rbconfig.i18n.default_locale = :en中设置默认语言环境。 (This is the line,默认注释掉。)