在rails app中的js中翻译I18n标签

时间:2015-11-10 14:50:30

标签: javascript jquery ruby-on-rails rails-i18n

更改语言时如何设置刷新js文件?

我有

中的翻译文件

config / locales / en.yml pl.yml

vendor / assets / javascripts / file.js.erb 我有

console.log("<%= I18n.t('test.test') %>")

我在 app / views / index.html.erb

中添加了js

它工作正常,但是当我用语言更改cookie并刷新页面时js不会改变语言?

每当刷新页面时,我如何设置编译“file.js.erb”

1 个答案:

答案 0 :(得分:0)

您没有。在大多数情况下,您的资产会在部署时静态编译。

小麦意味着,当您创建令人敬畏的新“功能X”时,您的生产服务器应该在您推送到生产服务器时编译资产 - 每个请求的编译将非常慢。

这意味着您应该在资产文件中对ERB插值进行极其严格的限制,因为您应该只使用编译时已知的变量,例如其他资产的路径。

我会说,除了资产助手之外,最好避免使用它,因为它只会导致对发生的事情的混淆。

如果您需要在服务器和客户端之间传递数据,请使用数据属性或JSON / AJAX

<p data-localized="<%= I18n.t('hello') %>">Hello!</p>