Как управлять языками Rails 2.3.x i18n программно? - PullRequest
2 голосов
/ 21 января 2011

Я хотел бы знать, есть ли способ вставлять, изменять и удалять ключи локали i18n программно (думаю, я мог бы использовать БД, но мне нравится Rails i18n и я хочу оставаться как можно ближе к нему) 1001 *

По сути, я хочу знать, есть ли способ (нативный, гем, плагин и т. Д.) Для таких вещей, как:

I18n.add_locale_key("en", "application.messages.submit_message", "Submit message!")
I18n.add_locale_key("es", "application.messages.submit_message", "Enviar mensaje!")

I18n.remove_locale_key("en", "application.messages.submit_message")
I18n.remove_locale_key("es", "application.messages.submit_message")

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Вот один из способов сделать это:

>> I18n.backend.store_translations :en, :hello_world => "Hello, world."
=> {:hello_world=>"Hello, world."}
>> I18n.t :hello_world
=> "Hello, world."
2 голосов
/ 21 января 2011

В пакете API Rails I18n поддерживает определение терминов только через локальные файлы .yaml или .rb. Если не считать динамического редактирования этих файлов во время выполнения, лучше всего использовать функциональные возможности БД для самоцвета, такого как FastGetText .

Конечно, вы также можете использовать свое собственное решение, но метод DB, вероятно, сработает для вашего варианта использования и приведет к меньшим затратам времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...