【发布时间】:2010-12-18 21:21:19
【问题描述】:
有人会认为以下代码会访问 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))。这似乎没有必要,所以我在这里遗漏了什么还是应该在 Rails 补丁上工作?任何意见表示赞赏。
【问题讨论】:
-
欢迎来到 SO。您在这里提出了完全相同的问题:stackoverflow.com/q/4479950/382818。请删除其中一个问题。
-
感谢您的回复,但这些实际上是不同的问题。一个是专门在嵌套的 has_many 关系中使用 f.label 。这个问题涉及label_tag的使用,它是Helpers::FormTagHelper的方法,而不是Helpers::FormHelper。
-
你有没有想出办法做到这一点?我试图避免在本地化文件中创建两个条目...
-
抱歉耽搁了,但我从来没有想出办法。我只是使用
label_tag t(:person_name)。 -
当使用
t方法和label_tag时,您可能希望在t上使用:scope选项来帮助干燥。
标签: internationalization label ruby-on-rails-3