人們會認爲下面的代碼將訪問國際化: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