локаль heroku I18n отличается от default_locale, отлично работает локально - PullRequest
2 голосов
/ 01 марта 2011

Итак, все отлично работает локально, но на героку оно меняется на: 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 в консоли исправило проблему банкомата, и когда я обновляюсь в разных браузерах, все работает нормально. Но при повторном развертывании он возвращается к: en.

Должен ли я также указывать локаль в инициализаторе? Я в замешательстве.

К вашему сведению: я нигде не устанавливаю программно I18n.locale. staging.rb простой.

Ответы [ 2 ]

9 голосов
/ 05 марта 2011

Это помогло установить язык непосредственно.

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

Если у вас есть лучшее решение, пожалуйста, дайте мне знать, и вы получите upvote и принятый ответ.

0 голосов
/ 04 марта 2011

Какую версию Ruby on Rails вы используете?Я не уверен в 2.x, но в Rails 3 вы можете установить локаль по умолчанию в config/application.rb, используя config.i18n.default_locale = :en.( Это строка , закомментированная по умолчанию.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...