Tôi đã xác định các thuộc tính đã dịch và tên mẫu trong tệp dịch và Modelname.human_attribute_name (...) trả về tên thuộc tính đã dịch đúng, nhưng tên thuộc tính các thông báo lỗi không được dịch. Điều gì là cần thiết mà các tên thuộc tính trong các thông báo lỗi được dịch?Các thuộc tính đã dịch trong các thông báo lỗi Rails (Rails 2.3.2, I18N)
Trả lời
Từ Guide về đề tài này, bạn sẽ cần phải thiết lập các tập tin định vị đúng với tên mô hình của bạn và tên thuộc tính:
en:
activerecord:
models:
user: Dude
attributes:
user:
login: "Handle"
Do đây là YAML, đảm bảo tất cả "tab" của bạn đang thực sự hai không gian mềm. Sau đó, bạn có thể lấy chúng ra với User.human_name
và User.human_attribute_name(:login)
.
Tôi đã không làm điều đó cho phúc âm - có thể có một lỗi. Tôi đã thử nghiệm nó, và nó hoạt động tốt. Tôi đã tạo mô hình có tên là Model
với thuộc tính title
. Dưới đây là một đoạn của file fr.yml
tôi trong config/locales
:
fr:
activerecord:
models:
model: "Sumfink"
attributes:
model:
title: "Tiltile"
Dưới đây là đoạn code xem có liên quan:
<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 %>
...
Và một ảnh chụp màn hình của sản lượng dịch đúng: http://screencast.com/t/et5FhVe1Gp
Cảm ơn bạn rất nhiều vì câu trả lời chi tiết của bạn. Tôi đã thử nó với một dự án mới. Tôi đã sử dụng một tệp dịch từ một dự án hiện có và thêm một mô hình mới để kiểm tra bản dịch và bản dịch đã hoạt động ngay lập tức. Tôi không có quyền truy cập vào tệp bản dịch gốc, nơi các chuỗi không được sử dụng để dịch, bởi vì nó ở nơi làm việc của tôi. Tôi sẽ xem xét nó vào thứ hai để xem những gì là khác nhau. Ứng dụng với bản dịch thành công đang chạy trên Linux, ứng dụng tại nơi làm việc chạy trong Windows. –
Tệp dịch của tôi là chính xác. Tôi đã bỏ qua phần "_id" của tên cột vì chúng không được hiển thị trong thông báo lỗi của chế độ xem. Tôi đã sử dụng "mô hình" thay vì "model_id". –
Liên kết đến ảnh chụp màn hình bị hỏng. Bạn có người khác bạn có thể cung cấp? Cảm ơn bạn – mkelley33
Kudos để Ian, chỉ muốn thêm nhãn đó để làm nổi bật nhãn trong trường hợp xác nhận không thành công, bạn cần viết nhãn như sau:
<%= f.label "title", Model.human_attribute_name("title") %><br />
Đối với một số lý do, viết nó chỉ thích:
<%= f.label "title" %><br />
không hiển thị bản dịch.
Bạn đang sử dụng phiên bản Rails nào? Lỗi này của nhãn đã được khắc phục trong 2.3.6: https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n – giraff
- 1. Rails dịch thông báo lỗi xác thực cho các thuộc tính lồng nhau i18n
- 2. "Chạm vào" cột updated_at trong Rails 2.3.2
- 3. Ruby on Rails i18n - Muốn dịch các tin nhắn tùy chỉnh trong các mẫu
- 4. Làm cách nào để bật các lỗi dịch Rails I18n trong chế độ xem?
- 5. Rails i18n: Tôi có thể tắt các lỗi "dịch mất tích" không?
- 6. Rails i18n và các tuyến đường trong javascript
- 7. Làm cách nào để sử dụng i18n cho các trang lỗi của tôi trong Rails 3?
- 8. Hiện thông báo lỗi trong Rails cảnh báo flash 3
- 9. Cách lấy tất cả các bản dịch từ các tệp yml trong Rails I18n
- 10. Rails i18n nhiều file aliasing
- 11. Rails I18n set_locale
- 12. Rails ngoại lệ thông báo trong các nhiệm vụ rake
- 13. I18n gửi trong Ruby on Rails
- 14. I18n không có Rails?
- 15. Xác nhận các thuộc tính ảo trong Ruby on Rails
- 16. Rails I18n của tệp CSS
- 17. Plugin Thông báo Rails?
- 18. Rails i18n định dạng xác nhận lỗi cụ thể
- 19. Rails 3: Thông báo lỗi tùy chỉnh trong xác nhận
- 20. Truy cập các thuộc tính mô hình trong Rails
- 21. form_for thông báo lỗi trong Ruby on Rails
- 22. Rails 3 và dịch vụ thông báo đẩy của apple
- 23. Rails 2.3.5 i18n tháng/ngày tên dịch vấn đề
- 24. Tắt mã thông báo xác thực trong Rails 2 cho các dịch vụ web?
- 25. Thông báo đẩy Gmail trong Rails
- 26. Rails Tính xác thực mã thông báo CSRF và Devise
- 27. Làm cách nào để hiển thị riêng các thông báo lỗi XML trong Ruby on Rails?
- 28. Thực hiện Thông báo trong Rails
- 29. Hệ thống thông báo trong Rails
- 30. Thanh thông báo trong Ruby on Rails
Tôi có vấn đề tương tự. Nhưng trong bản dịch ứng dụng của tôi không hoạt động đối với tên mẫu. Có lẽ một lỗi trong mã Rails. Tuy nhiên tên thuộc tính được dịch một cách chính xác. –