參見_n();
功能的本實施例中(http://codex.wordpress.org/Function_Reference/_n):多個複數形式中的gettext()
sprintf(_n('%d comment.', '%d comments.', $number, 'text-domain'), $number);
:
1 Comment
2 Comments
在語言如波蘭語
有不同的圖案和複數形式:
1 Komentarz
2 Komentarze
3 Komentarze
4 Komentarze
5 Komentarzy
6 Komentarzy
...
21 Komentarzy
22 Komentarze
23 Komentarze
24 Komentarze
25 Komentarzy
...
31 Komentarzy
32 Komentarze
...
91 Komentarzy
92 Komentarze
...
111 Komentarzy
112 Komentarzy (!)
...
121 Komentarzy
122 Komentarze
我正在尋找一些方法來讓翻譯人員設置自己的模式,如果他們的語言支持多個複數形式。你能想到任何創造性的PHP方法來做到這一點?
一些解決方案,我能想到的(但仍譯者不能設置任何模式):
if($number == 1){
$message = __(‘1 Komentarz’ , ‘text-domain’);
}else if($number == 2){
$message = __(‘2 Komentarze’ , ‘text-domain’);
}else if($number == 3){
$message = __(‘3 Komentarze’ , ‘text-domain’);
}
編輯:我發現這個在PO文件波蘭:"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
但我還是不明白如何編寫_n();
函數來支持。
你的答案在很大程度上是正確的(除非你不需要爲() - 它會工作只用'_n();'即使它理論上只支持兩種複數形式)。我昨天發現它:)謝謝! – Atadj
for循環僅顯示包含更多數字的生成文本。 – akky