人们会认为下面的代码将访问国际化:Rails 3中的I18n label_tag翻译
= label_tag(:person_name)
,并期待en.helpers.label.person_name,或者类似的东西。然而,Rails代码似乎没有任何使用国际化:
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。你在这里问完全相同的问题:http://stackoverflow.com/q/4479950/382818。请删除其中一个问题。 – Zabba 2010-12-18 21:43:48
感谢您的回应,但这些实际上是不同的问题。其中一个特别是在嵌套的has_many关系中使用f.label。这个问题涉及到使用label_tag,这是Helpers :: FormTagHelper,而不是Helpers :: FormHelper的一种方法。 – 2010-12-18 22:00:26
你有没有想过办法做到这一点?我试图避免在我的本地化文件中创建两个条目... – Clay 2011-09-20 13:14:05