Как использовать два языка в приложении одновременно?

Добрый день! Вопрос такой: могу ли я в одном приложении при помощи I18n.t использовать одновременно 2 языковых файла?

Поясню на примере: есть локаль RU (заданная "по умолчанию") и есть локаль EN (дополнительная). Есть в коде, к примеру, такая строка:
$s = I18n.t('hello_world')
Эта строка выдернет из локали RU строку 'ru.hello_world'. Но гипотетически может возникнуть ситуация, что строки hello_world в файле с локалью RU не будет.

В этом случае в качестве решения для себя я вижу загрузку недостающих строк из локали EN. Т.е. логика работы программы: если нет строки в локали RU, то гружу строку из локали EN. Можно ли так сделать?

К сожалению, если использовать следующий код:
$s = I18n.t('hello_world', :default=>I18n.t('en.hello_world'))
то в случае отсутствия строки в RU идёт попытка загрузки строки 'ru.en.hello_world' из локали RU.
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
Вам нужно config.i18n.fallbacks

В production устанавливается автоматически:

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation cannot be found).
  config.i18n.fallbacks = true
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы