更改我的i18n语言环境文件的名称是一个坏主意

时间:2014-04-21 08:25:35

标签: ruby-on-rails rails-i18n

我是台湾人,我看到大多数人都在使用' zh-TW'代表台湾语言

但zh-TW包含特殊字符?所以它在rails控制台中有奇怪的行为。

如果我将我的语言环境更改为英语,则效果很好I18n.locale= :en

但未能I18n.locale= :zh-TW

NameError: uninitialized constant TW
    from (irb):2
    from /Users/hsu-wei-cheng/.rvm/gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/commands/console.rb:90:in `start'
    from /Users/hsu-wei-cheng/.rvm/gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/commands/console.rb:9:in `start'
    from /Users/hsu-wei-cheng/.rvm/gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/commands.rb:62:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

将台湾语的zh-TW更改为tw是个好主意吗?

  1. zh-TW.yml - &gt; tw.yml
  2. 在语言环境yml文件

    tw:
      hello: "Hello world"
    

1 个答案:

答案 0 :(得分:0)

不,你不能。 :tw不是国际语言代码。根据{{​​3}}

  

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

因此,您可以将:zh用于台湾。没问题。