Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails&;之后无法从客户端获取区域设置;Ruby更新_Ruby On Rails 3_Rails I18n - Fatal编程技术网

Ruby on rails 3 Rails&;之后无法从客户端获取区域设置;Ruby更新

Ruby on rails 3 Rails&;之后无法从客户端获取区域设置;Ruby更新,ruby-on-rails-3,rails-i18n,Ruby On Rails 3,Rails I18n,以前,我将Rails 3.2.13与Ruby 2.0.0结合使用,效果很好: 在application.rb中,我有: def set_locale I18n.locale = http_accept_language.compatible_language_from([:en, :de]) end 我使用两种语言环境,de.yml和en.yml 既然我升级到了Rails 3.2.22和Ruby 2.2.4,我也被迫将gem i18n升级到版本0.7.0,如果我选择使用“en”

以前,我将Rails 3.2.13与Ruby 2.0.0结合使用,效果很好:

在application.rb中,我有:

    def set_locale
    I18n.locale = http_accept_language.compatible_language_from([:en, :de])
end
我使用两种语言环境,de.yml和en.yml

既然我升级到了Rails 3.2.22和Ruby 2.2.4,我也被迫将gem i18n升级到版本0.7.0,如果我选择使用“en”或其他语言的客户端,我会收到错误消息“i18n::invalidleocale(:en不是有效的语言环境)”德沃克斯

我在application.rb中尝试了各种参数组合

config.i18n.enforce_available_locales = true
config.i18n.available_locales = ["en", "de"]
config.i18n.default_locale = :'de'
但是没有用。。。
如果我在“de”中使用客户机,它会工作,但是如果我在“en”或其他语言中使用客户机,我会收到上面的错误消息。以前,如果我选择另一种客户机语言,它会默认为“de”

将i18n版本降级到0.6.4,然后再次升级到0.7.0。我不知道为什么


尽管如此,我仍然对结果不完全满意,因为我目前无法预测如果客户端使用的语言在我的应用程序中没有区域设置,会发生什么。有时选择:en,有时选择:de。我更希望能够控制默认语言。

我尝试将i18n降级到0.6.4版,但实际上情况更糟,因为应用程序根本不想启动,因为我为i18n:Module(NoMethodError)获得了一个“未定义的方法`enforce\u available\u locales=”错误消息。这很搞笑,因为我把i18n升级回了0.7.0版,因为我更喜欢我的应用程序用一种语言工作,而不是完全不用,你猜怎么着:它现在可以工作了!算了吧!我还意识到application.rb参数:default_local、available_locales和exforce_available_locales在我的例子中是完全无用的。我仍然对结果不完全满意,因为我目前无法预测如果客户端使用的语言在我的应用程序中没有区域设置,会发生什么。有时它选择:en,有时选择:de。在这种情况下,我更愿意默认为:de。