Я испытываю странное поведение в своем приложении с двигателем. Файлы перевода локали приложения влияют на файлы движков.
Чтобы файлы движка работали, я должен явно создать те же файлы в приложении. Достаточно просто назвать их одинаковыми, вставив в них пустой хэш локали.
Это каталог локали моего движка. У меня есть .rb
файлов с переводами (не .yml
):
# the directory:
engine/config/locale
|
-- en.rb
-- ru.rb
# Translation files. ru.rb is the same.
# en.rb
{
:en => {
:foo => {
:bar => "Bar",
},
},
}
В представлениях моего движка я называю переводы следующим образом:
<%= t("foo.bar") %>
Проблема в том, что у меня должны быть абсолютно одинаковые файлы в моем хостинг-приложении. Если каталог приложения /config/locales/
пуст (нет файлов en.rb
и ru.rb
), то у меня возникает ошибка I18n::InvalidLocaleData
, даже если /config/locales/
движка выглядит так, как указано выше (оба файла присутствуют и верны).
Эти файлы перевода приложения могут иметь разное содержимое, но они должны присутствовать и иметь один и тот же ключ локали (:en
или :ru
). Например, этого достаточно для корректной работы файлов движка:
# app's translation files. ru.rb is the same.
# en.rb
{
:en => {
# even no content may be at all but an :en key has to be present
},
},
}
Как исправить это поведение? Я не хочу явно создавать одни и те же файлы в хостинговом приложении. Я просто хочу, чтобы он был пустым, только у движка были свои переводы. Потому что это доставляет дополнительные неудобства пользователям движка.