所以,我想为我拥有的许多语言环境预加载音译规则。我在我的一个初始化程序文件(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”字母一样)。
为什么 ?
有人可以帮忙吗?