Я создаю одностраничное приложение ajax с BackboneJS и RoR 3.2 (обновлено с 3.1). Я использую библиотеку переводов javascript на стороне клиента I18n, которая хранит свои данные в объекте JSON. Я управляю переводами в бэкэнд с помощью yml-файлов и по умолчанию i18n gem. У меня есть один вариант перевода активов на язык, например английский язык:Явная перезагрузка актива в Rails 3.2
//FILE: <project_root>/app/assets/javascripts/translations/en.js.erb:
I18n || (I18n = {});
I18n.translations || (I18n.translations= {});
I18n.translations["en"] = <%= I18n.with_locale(:en) { I18n.t(".") }.to_json %>;
Мои переводы находятся под конфигурационными/локалей/и его подкаталогов. Я настроил путь нагрузки следующим образом:
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
До сих пор так хорошо, все работает отлично, однако, новые переводы добавлены в YAML файлы не будут автоматически доступны на клиенте после перезагрузки страницы в режиме разработчика. Новые переводы доступны только в том случае, если я перезапущу сервер и сделаю изменение в соответствующем активе перевода (например, добавив пустую строку). Эта процедура довольно утомительна ...
- Как я могу прямо указать конвейер/звездочки активов для обработки моих активов перевода по каждому запросу? Или, что еще лучше, есть ли (простое) решение для мониторинга файлов yaml и передачи звездочек для переработки активов перевода?
- Rails как-то не обновляет хеш перевода i18n, когда новые переводы добавляются в новые или существующие файлы yaml. Я не знаю, почему, но это должно нормально работать. Любая подсказка?