0

I18n 在本地按预期工作,但在 heroku 上却没有。即使浏览器设置为 pt-BR,它也始终显示英文。我们在前置过滤器中设置语言环境:

class ApplicationController < ActionController::Base
  before_filter :set_locale

    private

  def set_locale
    I18n.set_preferred_locale(env.http_accept_language)
  end
end

module I18n
  class << self
    def set_preferred_locale(http_accept_language)
      locale = http_accept_language.preferred_language_from(I18n.available_locales)

      if locale.present?
        I18n.locale = locale
        I18n.default_locale = locale  #added based on some stackflow answer about heroku and I18n
      end
    end
  end
end

我已通过记录器确认 I18n.locale 在视图中具有正确的值 (pt-BR),但翻译仍以英语提供。

我也尝试过直接设置为“pt-BR”作为测试,但仍然得到相同的结果:

class ApplicationController < ActionController::Base
   before_filter :set_locale

   private

   def set_locale
      I18n.locale = 'pt-BR'
   end
end
4

2 回答 2

3

原来我设置得很好。问题是我的 pt-BR.yml 中有一个字节顺序标记。显然 heroku 不能用它们加载语言文件 - heroku not loading language file

我使用 vim 删除标记:

:set nobomb
:w
于 2013-02-12T22:58:52.773 回答
0

为我工作,我打开了任何文件并用 nobomb 保存

于 2014-04-15T21:52:24.093 回答