Как вы настраиваете транслитерацию в приложении Rails 3?
В конечном счете, я хотел бы использовать Inflector.parameterize для создания слагов для заголовка статьи, в котором есть набор символов в юникоде (например, "ḤellẒ no" => "hellz-no"). Согласно http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html говорится, что они должны быть помещены в файл 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?
2 ответа
Эхх, у меня есть часть ответа. В отличие от того, что сказано в документе по адресу http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html, в файлах yml по-прежнему должен указываться язык - т.е. de:
# Store the transliterations in locales/de.yml
de:
i18n:
transliterate:
rule:
ü: "ue"
ö: "oe"
Пожалуйста, все же ответьте на вторую часть вопроса, где должен код, такой как I18n.backend.store_translations(:en,... жить в приложении на Rails 3?
[...] где код должен выглядеть как I18n.backend.store_translations(:en,... жить в приложении на Rails 3?
Я знаю. Я мог бы немного опоздать с этим, но я поместил бы это в файл инициализатора: config/initializers/i18n.rb