具有资产管道的区域设置特定javascript文件

Chr*_*ley 3 javascript internationalization ruby-on-rails-3.1 asset-pipeline

所以我想知道的是以下是否可行.我有一个网站,我们使用标准的I18n gem进行国际化(在config/locales/*.yml中有翻译).目前我们依靠各种(非常不优雅的)修复来获取javascript以获取翻译的单词(主要通过使用HTML5数据属性).既然我们已经将我们的站点升级到Rails 3.1,并且我们喜欢新的资产管道,那么如果我们能够将我们的js文件国际化,那就更好了,如下所示:

应用程序/资产/ jsfile.js.erb

alert(<%= I18n.t('javascript.key.name') %>)
Run Code Online (Sandbox Code Playgroud)

然后获取资产管道迭代文件以生成public/assets/jsfile.en.js,public/assets/jsfile.de.js等等(我猜测一个语言环境javascripts_include_tag也很有用)

有没有人知道任何可以做这种工作的例子/宝石/插件,或者是时候破解IDE并开始自己编写代码?

pic*_*pic 5

我有同样的问题,最后我决定实施一些东西.我添加了assets.rake一些创建config.assets.localized_precompile中指定的本地化文件的任务,例如:

config.assets.localized_precompile = ['application-it.js', 'application-fr.js', 'application-de.js', 'application-en.js']
Run Code Online (Sandbox Code Playgroud)

然后我正在使用

=javascript_include_tag "application-#{I18n.locale}"
Run Code Online (Sandbox Code Playgroud)

而application-xx.js都是这样的:

//= require application
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣,我可以分享更多细节