【问题标题】:Locale specific javascript files with assets pipeline具有资产管道的特定于语言环境的 JavaScript 文件
【发布时间】:2011-12-01 14:33:34
【问题描述】:

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

app/assets/jsfile.js.erb

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

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

是否有人知道可以完成此类工作的任何示例/宝石/插件,或者是时候破解 IDE 并开始自己编写一些东西了吗?

【问题讨论】:

    标签: javascript ruby-on-rails-3.1 internationalization asset-pipeline


    【解决方案1】:

    我遇到了同样的问题,最后我决定实现一些东西。 我在 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
    

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

    【讨论】:

    • 嗯,很有趣。这看起来很像我们正在寻找的解决方案。感谢您分享这个概念。
    • 我获得了提取 gem 的授权:github.com/simplificator/asset_pipeline_i18n。 Hth
    • 我喜欢这个,似乎也可以在 rails 4 中工作!但是需要将你的新js添加到Rails.application.config.assets.precompile +=
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多