我已經在翻譯文件中定義了翻譯後的屬性和模型名稱,Modelname.human_attribute_name(...)返回了正確翻譯後的屬性名稱,但屬性名稱錯誤消息是未翻譯的。 需要翻譯錯誤消息中的屬性名稱?Rails錯誤消息中的轉換後的屬性(Rails 2.3.2,I18N)
回答
從Guide關於這個問題,你就需要設置本地化文件中正確使用你的模型名和屬性名:
en:
activerecord:
models:
user: Dude
attributes:
user:
login: "Handle"
由於這是YAML,請確保您所有的「標籤」實際上兩個軟空間。然後你可以用User.human_name
和User.human_attribute_name(:login)
將它們取出。
我沒有接受福音 - 那可能是一個錯誤。我測試了它,它工作正常。我製作了一個名爲Model
的模型,其屬性爲title
。這裏是我的fr.yml
文件的config/locales
一個片段:
fr:
activerecord:
models:
model: "Sumfink"
attributes:
model:
title: "Tiltile"
下面是相關的視圖代碼:
<h1>New <%= Model.human_name %></h1>
<% form_for(@model) do |f| %>
<%= f.error_messages %>
<%= Model.human_attribute_name("title") %><br />
<%= f.text_field :title %>
<%= f.error_message_on :title %>
...
而且正確地轉換輸出的截圖:http://screencast.com/t/et5FhVe1Gp
非常感謝您的詳細解答。我嘗試了一個新項目。我使用了現有項目的翻譯文件,並添加了一個新模型來測試翻譯,翻譯立即生效。 我無法訪問原始翻譯文件,因爲字符串不在翻譯範圍內,因爲它位於我的工作場所。我會在星期一看它,看看有什麼不同。成功翻譯的應用程序在Linux上運行,工作中的應用程序在Windows中運行。 – 2009-05-23 16:16:46
我的翻譯文件是正確的。我省略了列名稱的「_id」部分,因爲它們在視圖的錯誤消息中未顯示。我使用「模型」而不是「model_id」。 – 2009-05-25 06:57:07
榮譽伊恩,只是想補充一點,爲了在驗證失敗的情況下突出標籤,你需要像這樣寫:
<%= f.label "title", Model.human_attribute_name("title") %><br />
出於某種原因,寫它就像:
<%= f.label "title" %><br />
不顯示翻譯。
- 1. Rails 2.3.5錯誤消息中的模型名稱轉換問題
- 2. Rails I18n錯誤
- 3. Rails錯誤消息
- 4. Rails的AJAX錯誤消息
- 5. Rails的錯誤消息
- 6. Rails i18n驗證輸入(而不是錯誤消息)
- 7. 在rails中的錯誤消息?
- 8. Rails中的spree錯誤消息
- 9. 500錯誤消息rails heroku
- 10. Rails驗證消息錯誤?
- 11. .NET中的I18n錯誤消息
- 12. Rails驗證錯誤消息,自定義屬性名稱
- 13. rails -h在rails項目中顯示錯誤的幫助消息
- 14. rails形式的基本錯誤消息
- 15. Rails 4:在發佈消息後更新屬性後
- 16. Rails 3客戶錯誤消息
- 17. 在rails中呈現錯誤消息
- 18. 在Rails中處理錯誤消息
- 19. 在rails中顯示錯誤消息
- 20. 屬性錯誤消息
- 21. Ruby on Rails中的錯誤TimeZone轉換
- 22. Rails 3.1中嵌套的模型屬性本地化錯誤消息
- 23. Rails JSON轉換錯誤
- 24. 使用rails i18n轉換路徑
- 25. actionmailer/gmail/rails 2.3.2
- 26. iOS10/Swift 3中的NSFetchedResultsController - 轉換後仍出現錯誤消息
- 27. Rails錯誤消息和重定向
- 28. Rails 4.2 ActionController:BadRequest自定義錯誤消息
- 29. Rails:錯誤消息部分不呈現
- 30. Rails Rake測試返回錯誤消息
我有類似的問題。但在我的應用翻譯不適用於型號名稱。 Rails代碼中可能存在一個錯誤。但屬性名稱已正確翻譯。 – 2009-05-22 19:58:59