如何将特定于区域的区域设置添加到Rails?

时间:2016-07-15 15:34:13

标签: ruby-on-rails localization

我正在尝试将美国地区特定的区域设置添加到rails,但是告诉我:en_locale不是区域设置的有效代码。我如何包含这个特定区域?

app/config/locales,我有en.ymlen-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='

1 个答案:

答案 0 :(得分:0)

  

i18n库采用实用的方法来处理区域设置键(在一些之后)   讨论),仅包括语言环境(“语言”)部分,如:en,   :pl,而不是区域部分,如:en-US或:en-GB,它们是   传统上用于分离“语言”和“区域设置”   或“方言”。许多国际申请只使用“语言”   语言环境的元素,例如:cs,:th或:es(适用于捷克语,泰语和英语)   西班牙)。但是,内部也存在地区差异   不同的语言群体可能很重要。例如,在   :en-US语言环境,你将$作为货币符号,而在:en-GB,   你会有£。没有什么可以阻止你区分区域和其他区域   以这种方式设置:你只需提供完整的“英语 - 美联航   王国“en:GB字典中的语言环境。Globalize3等少数宝石   可以帮助你实现它。

~Rails指南