我正在尝试将美国地区特定的区域设置添加到rails,但是告诉我:en_locale
不是区域设置的有效代码。我如何包含这个特定区域?
在app/config/locales
,我有en.yml
和en-US.yml
。
我的application.rb
,我有以下内容:
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
config.i18n.available_locales = [:en, :'en-US']
config.i18n.default_locale = :en
config.i18n.fallbacks = [:en]
# config.i18n.fallbacks = {:'zh-MY' => :'zh-CN'} # If we want to designate a lang to fallback to
错误讯息:
I18n::InvalidLocale - :en_us is not a valid locale:
i18n (0.6.9) lib/i18n.rb:288:in `enforce_available_locales!'
i18n (0.6.9) lib/i18n/config.rb:11:in `locale='
actionview (4.1.14.2) lib/action_view/lookup_context.rb:239:in `locale='
actionview (4.1.14.2) lib/action_view/rendering.rb:19:in `locale='
i18n (0.6.9) lib/i18n.rb:35:in `locale='
答案 0 :(得分:0)
i18n库采用实用的方法来处理区域设置键(在一些之后) 讨论),仅包括语言环境(“语言”)部分,如:en, :pl,而不是区域部分,如:en-US或:en-GB,它们是 传统上用于分离“语言”和“区域设置” 或“方言”。许多国际申请只使用“语言” 语言环境的元素,例如:cs,:th或:es(适用于捷克语,泰语和英语) 西班牙)。但是,内部也存在地区差异 不同的语言群体可能很重要。例如,在 :en-US语言环境,你将$作为货币符号,而在:en-GB, 你会有£。没有什么可以阻止你区分区域和其他区域 以这种方式设置:你只需提供完整的“英语 - 美联航 王国“en:GB字典中的语言环境。Globalize3等少数宝石 可以帮助你实现它。
~Rails指南