2016-01-13 11 views
5

Tôi đang trong quá trình làm cho Wordpress của chúng tôi cắm tương thích với translate.wordpress.org và sử dụng mã này để dễ dàng pluralisation/dịch:Wordpress PHP chức năng _n() chỉ chuyển số ít văn bản

echo _n('size', 'sizes', $count, 'my-domain'); 

Chúng tôi vẫn có .po/.mo file có chứa ví dụ:

msgid "size" 
msgstr "afmeting" 

msgid "sizes" 
msgstr "afmetingen" 

Đây là sản phẩm tôi nhận được:

echo _n('size', 'sizes', 1, 'my-domain'); 
// expected: 1 afmeting 
// actual: 1 afmeting 

echo _n('size', 'sizes', 2, 'my-domain'); 
// expected: 2 afmetingen 
// actual: 2 sizes 

Các bản dịch có ở đó, nếu tôi đảo ngược các văn bản số nhiều/đơn lẻ thì chỉ có bản dịch duy nhất được dịch.

Bất kỳ suy nghĩ nào tôi đang làm sai và cách tôi làm cho nó hoạt động?

+1

mọi thứ có vẻ ổn với tôi. Nếu bạn đặt khác 2 thì sao? ví dụ. 3? – Sumit

+0

Sản lượng có cùng kết quả. Có lẽ tôi không lưu trữ các phiên bản số nhiều của các bản dịch chính xác trong tệp .po. Tôi sẽ cập nhật thân cây sớm và xem các chuỗi có thể dịch được bật lên. – sourcx

Trả lời

2

Dường như tôi không lưu trữ bản dịch số nhiều một cách chính xác. Tôi đã sửa đổi mã plugin để sử dụng translate.wordpress.org và bản dịch bây giờ được coi là một phiên bản có số ít và số nhiều.

Các giải pháp để lưu trữ nó trong .po/.mo file sẽ là một cái gì đó như thế này (không kiểm tra):

msgid "size" 
msgid_plural "sizes" 
msgstr[0] "afmeting" 
msgstr[1] "afmetingen" 

Cũng thấy điều này: Why is msgid_plural necessary in gettext translation files?.

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