gpt4 book ai didi

ruby-on-rails - 避免 I18n::InvalidLocale 的干净方法?

转载 作者:行者123 更新时间:2023-12-04 05:37:06 33 4
gpt4 key购买 nike

我得到一个 I18n::InvalidLocale: "zh-CN" is not a valid locale我想避免的异常。

解决它 ,我听说过两个黑客:

# meh
config.i18n.enforce_available_locales = false

# Ever heard of convention over configuration?
config.i18n.available_locales = [:fr, :en, "zh-CN", "zh-TW"]

我觉得它们都不干净 ,因为没有触及这些配置变量,我已经有一堆自动预填充的可用语言环境:

我目前的 available_locales 是:
> I18n.available_locales
=> [:en, :fr] (misses zh-CN and zh-TW)

在我的 config/locales文件夹,我有:
en.yml
fr.yml
zh-CH.yml (newly added, and unavailable)
zh-TW.yml (newly added, and unavailable)

在我的 config/application.rb , 我有:
config.i18n.default_locale = :fr

我不明白如何 fr已自动进入 I18n.available_locales ,当 zh-CNzh-TW没有。

然而,拥有 fr在没有我设置的情况下输入 config.i18n.available_locales告诉我触摸这个配置变量不是干净的方法。

你有避免 I18n::InvalidLocale的提示吗?正确级别的异常?

最佳答案

i18n 库对语言环境键采取务实的方法,仅包括语言环境(“语言”)部分,如 :en、:pl,而不包括区域部分,如 :en-US 或 :en-GB,如果您需要这种类型定义检查 很少有像 Globalize3 这样的 gem 可以帮助你。

另请检查此 descussion也通过 this

并删除 config.i18n.default_locale = :fr
因为对于默认本地人,它会在删除 defaullt 后通过您提到的相同错误
用这个 config.i18n.available_locales = [:fr, :en, "zh-CN", "zh-TW"]

关于ruby-on-rails - 避免 I18n::InvalidLocale 的干净方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778171/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com