在Javascript文件中提供yml翻译

时间:2010-01-31 16:24:19

标签: ruby-on-rails internationalization

我在当前的Rails项目中使用jQuery,我想在Javascript中使用yml文件中的翻译。

我知道我可以在我的.js.erb模板中轻松使用它们。但是/ public / javascript中的javascript文件呢?

看起来像Babilu(http://github.com/toretore/babilu)会完全按照我的意愿行事。我只是想知道是否还有其他的插件......这不是我对Babilu的反对意见,但我确实喜欢选择;-)

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

1 个答案:

答案 0 :(得分: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图层中实际使用的子集(不应该太多)。