在JavaScript文件中使用yml翻译

3

我正在我的当前Rails项目中使用jQuery,并且希望有一种方法可以在Javascript中使用来自我的yml文件的翻译。

我知道我可以很容易地在我的.js.erb模板中使用它们。但是,对于/public/javascript中的javascript文件呢?

看起来Babilu(http://github.com/toretore/babilu)正好可以做到我想要的。我只是想知道是否还有其他插件……并不是我反对Babilu,但我喜欢有选择;-)

另外,可能在Rails 2.3.5中有一些默认方式,我不知道,也许根本不需要使用插件?

1个回答

5

控制器:

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层中使用的子集即可(应该不会太多)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接