Сделайте переводы yml доступными в файлах Javascript - PullRequest
3 голосов
/ 31 января 2010

Я использую jQuery в своем текущем проекте Rails, и я хотел бы иметь какой-то способ использовать переводы из моих файлов yml в Javascript.

Я знаю, что могу легко использовать их в своих шаблонах .js.erb. Но как насчет файлов javascript в / public / javascript?

Похоже, что Бабилу (http://github.com/toretore/babilu) будет делать именно то, что я хочу. Мне просто интересно, есть ли там другие плагины ... Не то, чтобы у меня было что-то против Бабилу, но мне нравится выбор ;-)

Также может быть, что в Rails 2.3.5 есть какой-то способ по умолчанию. Я не в курсе, и, может быть, мне вообще не нужно использовать плагин?

1 Ответ

5 голосов
/ 07 октября 2010

контроллер:

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 (не должно быть слишком много).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...