Gar*_*ter 5 label internationalization ruby-on-rails-3
有人会认为以下代码将访问I18n:
= label_tag(:person_name)
Run Code Online (Sandbox Code Playgroud)
并查找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
Run Code Online (Sandbox Code Playgroud)
所以似乎唯一的选择是明确调用label_tag(:person_name, I18n.t(:person_name))
.这似乎是不必要的,所以我在这里遗漏了什么或者我应该在轨道补丁上工作吗?任何输入都表示赞赏.
= label_tag(:person_name)
不管用。但您可以使用该t()
方法来使其发挥作用。
= label_tag(t(:person_name))
Run Code Online (Sandbox Code Playgroud)
然后可以添加翻译:
然后在文件中en.yml
:
en:
person_name: John
Run Code Online (Sandbox Code Playgroud)
您还可以将翻译与其所在的视图联系起来:
在app/views/something/index.html.haml
= label_tag(t('.person_name'))
Run Code Online (Sandbox Code Playgroud)
将在文件中查找此翻译en.yml
:
en
something
index
person_name: John
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2947 次 |
最近记录: |