Rails 3 I18n перевод label_tag - PullRequest
5 голосов
/ 19 декабря 2010

Можно подумать, что следующий код получит доступ к I18n:

= label_tag(:person_name)

и найдите en.helpers.label.person_name или что-то в этом роде. Однако код rails, похоже, не использует I18n:

159:       def label_tag(name = nil, content_or_options = nil, options = nil, &block)
160:         options = content_or_options if block_given? && content_or_options.is_a?(Hash)
161:         options ||= {}
162:         options.stringify_keys!
163:         options["for"] = sanitize_to_id(name) unless name.blank? || options.has_key?("for")
164:         content_tag :label, content_or_options || name.to_s.humanize, options, &block
165:       end

так что, похоже, единственный вариант - это явный вызов label_tag(:person_name, I18n.t(:person_name)). Это кажется ненужным, поэтому я что-то здесь упускаю или я должен работать над патчем рельсов? Любой вклад приветствуется.

1 Ответ

1 голос
/ 19 декабря 2010

= label_tag(:person_name) не будет работать. Но вы можете использовать метод t(), чтобы получить работа.

= label_tag(t(:person_name))

Затем можно добавить перевод:

Затем в файле en.yml:

en: 
  person_name: John

Вы также можете привязать перевод к его виду:

В app/views/something/index.html.haml

= label_tag(t('.person_name'))

будет искать этот перевод в файле en.yml:

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