1

そこで、私が持っている多くのロケールの音訳規則をプリロードしたいと思いました。初期化ファイル (app/config/initializers/locales.rb) の 1 つに次のコードを含めました。

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」文字がなかった場合のように)。

なぜ ?

誰かが助けることができますか?

4

1 に答える 1