1

Надеясь, что некоторые ученые разработчики Rails могут порекомендовать существующий плагин Ruby on Rails или драгоценный камень, который позволит вам продолжать использовать простой I18n-сервер, позволяя вам дополнительно указывать переводы в базе данных.Плагин для использования Ruby on Rails Простой бэкэнд I18n с переводимыми в базу данных переводами?

Вот почему:

Я один Rails приложение используется для многих веб-сайтов. Для примера я буду использовать 2 сайты:

Сайт 1: Гномы R Us

Сайт 2: Единороги R Us

Большинство переводов являются одинаковыми для обоих сайтов, но случайн я хочу, чтобы переопределить перевод. Например, в моем файле ан-US.yml У меня есть следующий перевод:

view_all: Просмотреть все

И для большинства сайтов этот перевод является штраф, в том числе на сайте 1 (гномы), где я счастлив использовать «Просмотреть все».

Однако, для сайта 2, я бы хотел использовать «Просмотреть все единороги» как перевод view_all, и я хотел бы указать его в базе данных. По причинам обслуживания я не хочу указывать это переопределение в файле YAML.

Большое спасибо,

Элиот

ответ

1

В конце концов я решил воспользоваться I18n Rails' :: Backend :: способность Simple переработает как .yml файлы и .RB файлы в качестве локали словарей.

Артефакты создано:

  1. DB миграции для создания таблицы переводов со столбцами: локали, ключ, текст

  2. модель перевода на карту в таблице переводов

  3. метод класса to_locale_hash на модели перевода, которая возвращает хеш-ключ с привязкой к локали, как требуется I18n :: Backend :: Simple.load_rb

  4. Файл однострочный находится в конфигурации/translations.rb с линией «Translation.to_locale_hash»

Для исходного кода см расширение Шпрее (извините, не в структуре плагина Rails, это будет легко для перехода к плагину, если вы этого потребуете):

http://github.com/eliotsykes/spree-i18n-db/tree/master