【发布时间】:2013-04-29 15:15:19
【问题描述】:
所以,我想为我拥有的许多语言环境预加载音译规则。我在我的一个初始化程序文件 (app/config/initializers/locales.rb) 中包含了以下代码:
I18n.backend.store_translations(:en, :i18n => {
:transliterate => {
:rule => {
"а" => "a",
"б" => "b"
}
}
})
但是,如果我尝试音译:I18n.transliterate("Some Russian text"),我会收到一堆“?”符号,意思是音译者没有规则,所以他不知道如何进行音译。
但是!
如果我在语言环境文件 (en.yml) 中定义了它们(规则),如下所示:
en:
i18n:
transliterate:
rule:
а: "а"
б: "b"
然后它的工作原理 - 虽然我有一个问题,关于它是如何工作的。
如果我指定I18n.transliterate("абвгд") - 效果很好,但如果我指定"абвгд".parameterize,出于某种讨厌的原因,字母“a”被省略(就像没有“a”字母在第一名)。
为什么?
有人可以帮忙吗?
【问题讨论】:
标签: ruby-on-rails initialization translation transliteration rails-i18n