Tim*_*ing 3 ruby-on-rails passenger phusion internationalization
我在Passenger/REE上运行了一个Rails 2.2 Web应用程序
我在中设置了默认语言环境 config/environment.rb
config.i18n.default_locale = 'en-GB'
Run Code Online (Sandbox Code Playgroud)
第一个请求似乎没有设置区域设置 I18n.locale
如果我访问一个带有before_filter的页面,该页面在每次后续访问任何控制器时设置I18n.locale,即使它没有相同的before_filter设置,I18n.locale也会得到I18n.locale,无论设置如何,比如说en-US.
在具有相同代码的Mongrel上,每个请求都获得en-GB默认的语言环境,直到由before_filter显式设置.
如果这是正常的乘客行为,任何帮助升值锻炼.
Mongrel"自动"重置语言环境,因为它几乎处理每个具有不同线程的请求,而Phusion Passenger使用相同的线程处理所有内容.
作为对此的破解,在之前的过滤器中,您可以在根据其他参数设置区域设置之前始终将区域设置设置为nil.这样,它将始终将语言环境设置的最后一个值重置为nil.
只需确保您在每个请求上为用户首选的语言环境设置语言环境.
我遇到了同样的问题,因为我只是设置了语言环境,如果传入参数告诉站点更改语言环境.我想无论你是否使用Phusion Passenger,这都是你必须设置的东西.