Специфичные для локали файлы javascript с конвейером ресурсов - PullRequest
3 голосов
/ 01 декабря 2011

Итак, я хочу знать, возможно ли следующее. У меня есть веб-сайт, на котором мы интернационализируем, используя стандартный гем I18n (с переводами в config / locales / *. Yml). В настоящее время мы полагаемся на различные (довольно не элегантные) исправления, чтобы заставить javascript подобрать переведенные слова (в основном с использованием атрибутов данных HTML5). Теперь, когда мы обновили наш сайт до Rails 3.1 и нам понравились новые возможности конвейера ресурсов, было бы здорово, если бы мы могли интернационализировать наши js-файлы примерно так:

приложение / активы / jsfile.js.erb

alert(<%= I18n.t('javascript.key.name') %>)

и затем заставить конвейер ресурсов выполнять итерацию по файлу для генерации public / assets / jsfile.en.js, public / assets / jsfile.de.js и т. Д. И т. Д. (Я предполагаю, что javascripts_include_tag, поддерживающий локаль также будет полезно)

Кто-нибудь знает какие-либо примеры / гемы / плагины, которые могли бы выполнять такую ​​работу, или пришло время взломать IDE и начать что-то самому кодировать?

1 Ответ

5 голосов
/ 22 марта 2012

У меня была такая же проблема, и в конце концов я решил что-то реализовать. Я добавил в assets.rake некоторые задачи, которые создают локализованные файлы, указанные в config.assets.localized_precompile, например:

config.assets.localized_precompile = ['application-it.js', 'application-fr.js', 'application-de.js', 'application-en.js']

Тогда я использую

=javascript_include_tag "application-#{I18n.locale}"

И application-xx.js все такие:

//= require application

Я могу поделиться более подробной информацией, если вы заинтересованы

...