Rails:Phusion Passenger和I18n.locale应该如何表现?

时间:2009-02-18 00:41:52

标签: ruby-on-rails internationalization passenger phusion

我在Passenger / REE上运行了一个Rails 2.2 Web应用程序

我在config/environment.rb

中设置了默认语言环境
config.i18n.default_locale = 'en-GB'

第一个请求似乎没有在I18n.locale

中设置区域设置

如果我访问带有before_filter的页面,该页面在每次后续访问任何控制器时设置I18n.locale,即使它没有相同的before_filter设置,I18n.locale也会获得I18n.locale设置,比方说,en-US

在具有相同代码的Mongrel上,每个请求都会获得默认的en-GB语言环境,直到由before_filter显式设置。

如果这是正常的乘客行为,任何帮助都会感激。

1 个答案:

答案 0 :(得分:5)

  

Mongrel重置了语言环境   “自动”,因为它处理   几乎每个请求都有不同   线程,而Phusion Passenger   用同样的方法处理一切   线程。

作为对此的破解,在之前的过滤器中,您可以在根据其他参数设置区域设置之前始终将区域设置设置为nil。这样,它将始终将语言环境设置的最后一个值重置为nil。

确保您在每个请求中为用户首选的区域设置设置区域设置。

我遇到了同样的问题,因为我只是设置了语言环境,如果传入参数告诉站点更改语言环境。我想无论你是否使用Phusion Passenger,这都是你必须设置的东西。