【发布时间】:2013-02-12 00:56:01
【问题描述】:
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
【问题讨论】:
-
我在 Heroku 上成功使用了 i18n,但我没有根据用户浏览器设置设置区域设置,就像我得到你可能想要的感觉一样。你能编辑你的问题来分享你用来设置语言环境的代码吗?
-
您是否在初始化程序或其他任何地方设置了
I18n.available_locales = [:en, :"pt-BR"]?
标签: ruby-on-rails heroku rails-i18n