【问题标题】:Make yml translations available in Javascript files使 yml 翻译在 Javascript 文件中可用
【发布时间】:2010-01-31 16:24:19
【问题描述】:
我在我当前的 Rails 项目中使用 jQuery,我希望有一些方法可以在 Javascript 中使用我的 yml 文件的翻译。
我知道我可以在我的 .js.erb 模板中轻松使用它们。但是 /public/javascript 中的 javascript 文件呢?
看起来 Babilu (http://github.com/toretore/babilu) 会做我想做的事。我只是想知道是否还有其他插件......这并不是说我对 Babilu 有意见,但我确实喜欢有选择 ;-)
Rails 2.3.5 中也可能有一些默认方式。我不知道,我可能根本不需要使用插件?
【问题讨论】:
标签:
ruby-on-rails
internationalization
【解决方案1】:
控制器:
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 层中实际使用的子集(不应该太多)。