最终,我想使用 Inflector.parameterize 为其中包含一堆 unicode 字符的文章标题创建 slug(例如“Ḥ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"
但是,当我像第二段建议的那样在 Ruby 中更改它时,它可以工作。
I18n.backend.store_translations(:en, :i18n => {
:transliterate => {
:rule => {
"Ḥ" => "H",
"Ẓ" => "Z"
}
}
})
"ḤellẒ no".parameterize
# => "hellz-no"
我想我想知道为什么将自定义音译放在 locales/en.yml 中不起作用。
即使有人给出了答案,作为一个 Rails 菜鸟,我也想知道通常将第二个块之类的代码放在哪里来手动设置 I18n.backend.store_translations?