Ваши переводы не должны изменяться вместе с кодом, после того как вы определили перевод, он должен оставаться таким, пока код не будет удален или код добавлен. Такой радикальный рефакторинг вызывает проблемы, и тогда вам нужно использовать их в своих тестах для предотвращения подобных проблем. ИМО, если вы постоянно меняете ключи перевода, вы делаете это неправильно. Переводы базовой системы не имеют ничего общего с тем, как вы обрабатываете переводы на производственном сайте. То, что я говорю, не бросайте переводы базовой системы ActiveModel или ActiveSupport в вашу лодку. Разобраться с ними при необходимости.

несколько советов и рекомендаций для лучших практик использования интернационализации. Я искал вокруг, но я не был действительно удовлетворен тем, что я читаю. Большинство статей, которые я прочитал, посвящено использованию yml-файлов для I18n, которые не будут работать в моей ситуации.

В настоящее время у меня есть несколько таблиц базы данных с текстом на английском языке. В некоторых из этих таблиц есть текстовые поля длиной в несколько предложений, а в некоторых - более 6 абзацев текста. Я хотел бы также иметь эти поля на испанском языке.

Подход, который я сейчас рассматриваю, заключается в том, чтобы использовать I18n-active record gem и иметь 1 таблицу переводов, которую приложение будет использовать для всех переводов в приложении.

 class CreateTranslations < ActiveRecord::Migration
    def self.up
      create_table :translations do |t|
        t.string :locale
        t.string :key
        t.text   :value
        t.text   :interpolations
        t.boolean :is_proc, :default => false

        t.timestamps
      end
    end

    def self.down
      drop_table :translations
    end
  end

Это лучший способ продолжить?

С одной стороны, все переводы будут хорошо храниться в одной таблице. С другой стороны, каждый раз, когда пользователь запрашивает базу данных для содержимого I18n. Приложение запросит исходную таблицу на предмет ключа, а затем также запросит таблицу переводов. Другая проблема заключается в том, что таблица перевода будет массивной и будет содержать огромное количество строк, поскольку в ней будут храниться все переводы для приложения (от заголовка раздела [несколько слов] до целых страниц текста).

Любая информация приветствуется. Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос