2016-07-15 111 views
0

我想添加一个美国地区的特定区域设置护栏,但是告诉我,:en_locale不是一个语言环境的有效代码。我怎样才能包含这个特定的区域?如何将特定区域的区域添加到Rails?

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=' 

回答

0

的国际化库采取务实的态度,以区域设置键(在一些 讨论),只包括区域设置( “语言”)的部分,如:恩, :PL,而不是区域的部分,如:EN-US或:EN-GB,这是 传统上用于SE评定“语言”和“区域设置” 或“方言”。许多国际应用程序仅使用语言环境的“语言” 元素,例如:cs,:th或:es(捷克语,泰语和西班牙语的 )。但是,在不同的语言群体中也可能存在区域差异,这可能很重要。例如,在 :en-US区域设置中,您将有$作为货币符号,而在以下位置:en-GB, 您将拥有£。没有什么可以阻止你从分离这样的区域和其他 设置:你只需要提供充分的“英语 - 英国 王国”区域设置在:EN-GB字典。像Globalize3 这样的几个宝石可能会帮助你实现它。

〜导轨指南

相关问题