Как использовать Rails I18N Foxback Особенности
-
26-09-2019 - |
Вопрос
У меня есть эта проблема I18N
activerecord:
notices:
messages:
success:
create: "Something was created"
models:
user:
success:
create: "Thanks for registration"
I18n.t("activerecord.notices.models.user.success.create")
# => "Thanks for registration"
I18n.t("activerecord.notices.models.book.success.create")
# => "translation missing: de, activerecord, notices, models, book, success, create"
Я не знаю, почему модель книги не получает неудачный массаж. Я установил config.i18n.fallbacks = true
. Отказ Я использую Rails 3
Решение
Когда :По умолчанию Опция дана, его значение будет возвращено, если перевод отсутствует:
I18n.t :missing, :default => 'Not here'
# => 'Not here'
Больше информации здесь
Другие советы
Я устанавливаю в конфигурацию / application.rb обычно
config.i18n.fallbacks =[:de, :fr, :en]
Таким образом, вы можете обмануть порядок отставания.
Но держите внимание в некоторых средах / *. RB Конфигурация перезаписана.
Вы включили отступы для вашей бэкенда? Предполагая, что это просто (на основе YML в примере):
Положите это в инициализатор:
require "i18n/backend/fallbacks"
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
В Rails 3+ это установлено в файлах конфина / среды:
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found)
config.i18n.fallbacks = true
Я верю, что лучший способ обрабатывать недостающую строку, - это отображение локали по умолчанию, а не сообщение об ошибке.
Добавьте эту строку в Application.ru в Foxback к английскому языку.
config.i18n.fallbacks = [:en]
Если вы хотите указать SPALDBACS, специфичные для локали, вы можете использовать следующее:
config.i18n.fallbacks = {:de => [:de,:en], :en => [:en,:de]}
Кроме того, обратите внимание, что вы можете включить и отключить отблески в зависимости от вашей среды. Так что в то время как на разработке возможно иметь смысл, чтобы отобразить ошибку, вы можете вместо этого включить отступы в вашем environments/production.rb
со следующим:
config.i18n.fallbacks = true