我在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显式设置。
如果这是正常的乘客行为,任何帮助都会感激。
答案 0 :(得分:5)
Mongrel重置了语言环境 “自动”,因为它处理 几乎每个请求都有不同 线程,而Phusion Passenger 用同样的方法处理一切 线程。
作为对此的破解,在之前的过滤器中,您可以在根据其他参数设置区域设置之前始终将区域设置设置为nil。这样,它将始终将语言环境设置的最后一个值重置为nil。
确保您在每个请求中为用户首选的区域设置设置区域设置。
我遇到了同样的问题,因为我只是设置了语言环境,如果传入参数告诉站点更改语言环境。我想无论你是否使用Phusion Passenger,这都是你必须设置的东西。