Ответ 1
Если задана опция : по умолчанию, ее значение будет возвращено, если перевод отсутствует:
I18n.t :missing, :default => 'Not here'
# => 'Not here'
Подробнее здесь
У меня есть эта проблема 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'
Подробнее здесь
Я обычно устанавливаю в config/application.rb
config.i18n.fallbacks =[:de, :fr, :en]
Таким образом, вы можете замедлить порядок возврата.
Но обратите внимание, что в некоторых средах /*. rb конфигурация перезаписана.
Вы включили резервные копии для своего бэкэнда? Предполагая, что это просто (на основе yml в примере):
поместите это в инициализатор:
require "i18n/backend/fallbacks"
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
В rails 3+ это устанавливается в файлах config/environment:
# 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.rb, чтобы вернуться к английскому языку.
config.i18n.fallbacks = [:en]
Если вы хотите указать резервные копии, зависящие от локали, вы можете использовать следующее:
config.i18n.fallbacks = {:de => [:de,:en], :en => [:en,:de]}
Также обратите внимание, что вы можете включать и отключать резервные копии на основе вашей среды.
Поэтому, хотя при разработке может иметь смысл отображать ошибку, вместо этого вы можете включить резервные копии в environments/production.rb
со следующим:
config.i18n.fallbacks = true