控制器:
class JavascriptsController < ApplicationController
skip_before_filter :authorize
respond_to :js
layout false
caches_page :locale # don't know if this is reset on server restart.
def locale
# http://edgeguides.rubyonrails.org/caching_with_rails.html
@translations = I18n.translate('javascripts')
end
end
查看脚本:
Translations = <%= raw @translations.to_json %>;
在application.html.haml中:
= javascript_include_tag "locale.js?language=#{I18n.locale}" # JavascriptsController
然后添加一些简单的JS来查找哈希中的键。很容易修复。而且,这样您就不会将所有翻译传递给JS,而只是实际在JavaScript层中使用的子集(不应该太多)。