2016-01-13 20 views
5

io sono nel processo di rendere il nostro plugin di compatibile con translate.wordpress.org e utilizzando questo codice per una facile pluralizzazione/traduzione:funzione di Wordpress PHP _n() traduce solo singolare testo

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

Abbiamo ancora hanno .po/.mo file che contengono ad esempio:

msgid "size" 
msgstr "afmeting" 

msgid "sizes" 
msgstr "afmetingen" 

Questa è l'uscita ottengo:

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 

Le traduzioni ci sono, se inverto il plurale/singoli testi ancora solo il singolo è tradotto.

Qualche idea su cosa sto facendo male e su come dovrei farlo funzionare?

+1

tutto mi sembra soddisfacente. Cosa succede se ne metti altri 2? per esempio. 3? – Sumit

+0

Restituisce lo stesso risultato. Forse non sto memorizzando correttamente le versioni plurali delle traduzioni nel file .po. Aggiornerò presto il tronco e vedrò quali stringhe traducibili si apriranno. – sourcx

risposta

2

Sembra che non stia memorizzando correttamente le traduzioni plurali. Ho modificato il codice del plugin per usare translate.wordpress.org e la traduzione ora è considerata come una che ha sia una versione singolare che plurale.

La soluzione per la memorizzazione nelle/.mo file .po sarebbe stato qualcosa di simile (non testato):

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

Vedi anche: Why is msgid_plural necessary in gettext translation files?.