2011-11-02 18 views
5

Ai đó có thể vui lòng cung cấp ví dụ về cách sử dụng biểu mẫu số nhiều trong tệp dịch Yaml cho Rails i18n API. Về cơ bản đây là về việc chuyển từ một ứng dụng dựa trên gettext sang Rails.Ví dụ về dạng số nhiều trong tệp dịch Yaml cho Rails i18n API

Dạng số nhiều cho a18n trong Rails được ghi ở đây http://guides.rubyonrails.org/i18n.html#pluralization nhưng có chi tiết giới hạn.

Nói ví dụ tôi có mẫu này từ một gettext .po tập tin có sử dụng hình thức số nhiều:

msgid "found %d fatal error" 
msgid_plural "found %d fatal errors" 
msgstr[0] "s'ha trobat %d error fatal" 
msgstr[1] "s'han trobat %d errors fatals" 

Làm thế nào sẽ có cái nhìn trong một file .yml cho Rails i18n API. Tôi hiểu rằng Rails i18n sử dụng các khóa id duy nhất thay vì bản thân thông điệp cho các phím dịch - vì vậy hãy nói rằng khóa cho các thông báo số nhiều ở trên là found_x_fatal_error.

Một điều nữa là các hình thức số nhiều lựa chọn công thức, nơi nào nó đi trong file .yml và làm thế nào để cho nó trông - nói ví dụ chúng ta có công thức lựa chọn này từ một gettext .po phần đầu tập tin:

Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1; 

Làm thế nào nó sẽ tìm trong tệp YAML.

+0

Tôi nghĩ chủ đề này có thể giúp bạn: http://stackoverflow.com/questions/6166064/i18n-pluralization – Frost

Trả lời

14

Bạn có thể cấu hình tùy chọn hơn:

error_msg: 
    zero: none 
    one: 1 error 
    other: %{count} errors 

t('error_msg', :count => 15) 
=> 15 errors 

Tùy thuộc vào phiên bản của i18n nó sẽ là {{count}} hoặc% {count} trong file yml. Giải thích thêm có thể được tìm thấy ở đây:

http://guides.rubyonrails.org/i18n.html#pluralization

Các vấn đề liên quan