2

最終的には、Inflector.parameterize を使用して、多数の Unicode 文字を含む記事見出しのスラッグを作成したいと考えています (例: "ḤellẒ no" => "hellz-no")。http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-transliterateによると、それらを locales/en.yml ファイルに入れるように指示されています。

# Store the transliterations in locales/en.yml
i18n:
  transliterate:
    rule:
      Ḥ: "h"
      Ẓ: "z"

私はそれを試しましたが、以下はうまくいきません:

"ḤellẒ no".parameterize
# => "ell-no"

ただし、2 番目の段落が示すように Ruby で変更すると、機能します。

I18n.backend.store_translations(:en, :i18n => {
   :transliterate => {
     :rule => {
       "Ḥ" => "H",
       "Ẓ" => "Z"
     }
   }
})

"ḤellẒ no".parameterize
# => "hellz-no"

カスタム音訳を locales/en.yml に配置しても機能しない理由を知りたいと思います。

Railsの初心者である誰かがその答えを出したとしても、I18n.backend.store_translations?

4

2 に答える 2

5

ええと、私は答えの一部を持っています。http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-transliterateのドキュメントに記載されているものとは異なり、ymlファイルでは言語を指定する必要があります

# Store the transliterations in locales/de.yml
de:
  i18n:
    transliterate:
      rule:
        ü: "ue"
        ö: "oe"

それでも質問の2番目の部分に答えてください。I18n.backend.store_translations(:en、...のようなコードはRails 3アプリのどこにありますか?

于 2011-02-12T03:35:22.850 に答える
1

[...] I18n.backend.store_translations(:en,... のようなコードは、Rails 3 アプリのどこに置くべきですか?

知っている。私はこれに少し遅れているかもしれませんが、初期化ファイルに入れます:config/initializers/i18n.rb

于 2013-05-03T15:05:56.660 に答える