2016-07-15 132 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 這樣的幾個寶石可能會幫助你實現它。

〜導軌指南