【问题标题】:Rails I18n transliteration rules configurationRails I18n 音译规则配置
【发布时间】: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


    【解决方案1】:

    看起来您在 en.yml 中有一个西里尔字母“а”(字符代码 1072)映射到一个西里尔字母“а”。您只需要将西里尔字母 'а' 映射到罗马字母 'a' 吗?

    en:
      i18n:
        transliterate:
          rule:
            а: "a"
            б: "b"
    

    (我认为在这个网站上两者看起来都一样)。

    【讨论】:

    • 我需要将西里尔字母“a”映射到拉丁文 (?)“a”。
    • 好的,所以基本上已经修复了(我认为),为什么我不能使用初始化器来加载音译规则?
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2011-10-11
    • 2022-01-13
    相关资源
    最近更新 更多