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