Rails I18n在Heroku上无法正常工作

时间:2013-02-12 00:56:02

标签: ruby-on-rails heroku rails-i18n

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

2 个答案:

答案 0 :(得分:3)

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

我使用vim删除标记:

:set nobomb
:w

答案 1 :(得分:0)

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

保存