关于国际化:使用其他服务器时,Rails 3 Locale开关

Rails 3 Locale switches when using different server

我有一个将default_locale设置为:nl的Rails 3.2.3应用程序。当我使用Thin或Unicorn启动应用程序时,该应用程序的语言环境设置为:en。当我使用Webrick时,区域设置正确设置为:nl

此更改是由一次提交触发的,该提交更新了多个第三方gem,尽管我无法特别挑出任何一个gem升级-我可以逐个撤消它们,并获得相同的结果。但是,当我签出有问题的提交的父母时,一切也都很好。

当我在生产模式下在远程服务器上运行该应用程序时,一切正常,因此似乎对我的计算机而言是本地的。

我删除了所有已安装的ruby,然后重新安装了所有ruby,这没什么区别。

有人知道什么会触发这种行为吗?尤其是为什么使用webrick或独角兽会有所作为?

编辑:我已经指出了将Draper从0.11升级到0.12(在Github上发布)所触发的错误。不确定是否也是原因。


我设法在我自己的Rails应用程序中将这种问题归结为一种不良做法,该不良行为通过升级Draper gem导致了错误。 Draper文档中有完整的解释。


在由" active_admin " gem触发" wich"之前,我已经出现了这个问题,您可能希望使用较早的版本来防止这种情况发生,我并不十分了解" wich",因此您可以稍微尝试一下。

另一种选择是在before_filter中设置active_admin语言环境,

1
config.before_filter :set_admin_locale

set_admin_locale在application_controller中:

1
2
3
def set_admin_locale
  I18n.locale = :nl
end

希望有帮助


http://labs.revelationglobal.com/2009/11/13/unicorn_and_i18n.html