ver este ejemplo de _n();
función (http://codex.wordpress.org/Function_Reference/_n):múltiples formas plurales en gettext()
sprintf(_n('%d comment.', '%d comments.', $number, 'text-domain'), $number);
en Inglés:
1 Comment
2 Comments
en idiomas como el polaco existe un patrón diferente y múltiples formas plurales:
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
Estoy buscando una forma de permitir a los traductores establecer su propio patrón si su lenguaje admite múltiples formas en plural. ¿Puedes pensar en algún enfoque creativo de PHP para hacer esto?
Algunos solución que puedo pensar (pero aún traductores no voy a ser capaz de establecer cualquier patrón):
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’);
}
EDIT: He encontrado esto en el archivo PO para polaco: "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
pero todavía no lo entiendo cómo preparar la función _n();
para admitir eso.
Su respuesta es en gran parte correcta (excepto que no es necesario para() -. va a trabajar con solo '_n();' incluso si teóricamente solo admite dos formas plurales). Lo descubrí ayer :) ¡Gracias! – Atadj
El bucle for es solo para mostrar los textos generados con más números. – akky