2016-01-13 5 views
5

Ich bin in den Prozess unserer Wordpress machen kompatibles Plugin mit translate.wordpress.org und benutzen Sie diesen Code für eine einfache Pluralisierung/Übersetzung:Wordpress PHP-Funktion _n() übersetzt nur singuläre Text

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

Wir haben noch haben .po/.mo-Dateien, die zB enthalten:

msgid "size" 
msgstr "afmeting" 

msgid "sizes" 
msgstr "afmetingen" 

Dies ist die Ausgabe erhalte ich:

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 

Die Übersetzungen sind da, wenn ich die Plural/Single-Texte umwende, wird immer nur die Single übersetzt.

Irgendwelche Gedanken, was ich falsch mache und wie ich es zur Arbeit bringen soll?

+1

alles scheint mir gut. Was ist, wenn Sie andere als 2 setzen? z.B. 3 ? – Sumit

+0

Ergibt das gleiche Ergebnis. Vielleicht speichere ich die Pluralversionen der Übersetzungen nicht korrekt in der .po-Datei. Ich werde den Stamm bald aktualisieren und sehen, welche übersetzbaren Saiten auftauchen. – sourcx

Antwort

2

Es scheint, dass ich mehrere Übersetzungen nicht richtig gespeichert habe. Ich habe den Plugin-Code so geändert, dass er translate.wordpress.org verwendet, und die Übersetzung wird nun als eine Version betrachtet, die sowohl eine Singular- als auch eine Pluralversion hat.

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

Auch diese sehen:

Die Lösung es in den .po/.mo-Dateien für die Speicherung würde dies so etwas wie (nicht getestet) wurden Why is msgid_plural necessary in gettext translation files?.

Verwandte Themen