【问题标题】:Rails: How should Phusion Passenger and I18n.locale behave?Rails:Phusion Passenger 和 I18n.locale 应该如何表现?
【发布时间】:2010-10-08 05:54:16
【问题描述】:

我有一个 Rails 2.2 网络应用程序在乘客 / REE 上运行

我在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 明确设置。

如果这是正常的乘客行为,任何帮助表示赞赏。

【问题讨论】:

    标签: ruby-on-rails internationalization passenger phusion


    【解决方案1】:

    Mongrel 重置语言环境 “自动”,因为它处理 几乎每个请求都有不同的 线程,而 Phusion 乘客 以相同的方式处理所有事情 线程。

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

    只需确保为用户的首选语言环境设置每个请求的语言环境即可。

    我遇到了同样的问题,因为我只是在传入参数告诉站点更改区域设置时才设置区域设置。我想这是你总是必须设置的东西,无论你是否使用 Phusion Passenger。

    【讨论】:

    • 我遇到了同样的问题,并且在每个请求上明确地将 i18n.locale 设置为 nil 解决了它。谢谢!
    • 设置为零对我不起作用,必须设置 I18n.locale = I18n.default_locale
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多