¿Cuáles son los patrones comunes para manejar una posible pluralización en las propiedades del mensaje?

7

Obviamente, a los usuarios les gusta ver el texto correctamente pluralizado, y los esquemas de pluralización varían en los distintos idiomas escritos que se pueden encontrar. Al internacionalizar una aplicación, ¿qué patrones son útiles para manejar mensajes con una posible pluralización? ¿Qué pasa con los mensajes con múltiples pluralizaciones posibles?

Por ejemplo: "N revisión (es):"

Un patrón sería

reviews.title.singular="{0} review:"
reviews.title.plural="{0} reviews:"

Y esto puede no ser compatible con todos los idiomas.

O un caso más complicado: "Encontré M pregunta (s) con N comentario (s)".

Esto sería difícil de admitir incluso en inglés.

    
pregunta C. Ross 03.11.2013 - 02:04

3 respuestas

6

el patrón que he visto usado es crear un patrón específico para él, que describe los rangos de cada valor

por ejemplo en java es

"Found {0,choice,0#no questions|1#a single question|1<{0,number,integer} questions} with "+
"{1,choice,0#no comments|1#a single comment|1<{1,number,integer} comments}."

es una molestia para algo así, pero se puede traducir completamente a idiomas con reglas impares

    
respondido por el ratchet freak 03.11.2013 - 04:19
2

El enfoque adoptado por GNU gettext es para diferir la mayor parte del manejo de las diversas formas plurales en el archivo que contiene las propias traducciones. Para recuperar una cadena traducida que podría involucrar la pluralización, haga una llamada como

ngettext("singular English form", "plural English form", quantity)

y la biblioteca seleccionará la forma plural correcta en función del valor de quantity y las reglas específicas del idioma para las diversas formas plurales.

Para evitar una explosión combinatoria, este esquema solo puede manejar una cantidad única que podría desencadenar la pluralización. Si tiene varias cantidades que podrían desencadenar la pluralización, intentaría volver a redactar el mensaje de manera que se elimine la pluralización múltiple o dividirlo en varios fragmentos que se traduzcan (y pluralicen) por separado.

    
respondido por el Bart van Ingen Schenau 03.11.2013 - 13:00
2

Las soluciones como las que se describen en las otras respuestas pueden funcionar, pero son IMO bastante complicadas de implementar cuando se trata de un gran número de frases diferentes, varias palabras pluralizadas en la misma frase y así sucesivamente.
Se vuelve aún peor cuando tiene idiomas con reglas plurales más complejas, como se describe aquí .

En el trabajo, también estamos lidiando con cosas como esta (en 5 idiomas, por ahora).
Lo que hacemos: intentamos evitar toda esa complejidad escribiendo nuestros mensajes exactamente como en los ejemplos de su pregunta:

  

Encontré M pregunta (s) con N comentario (s).

... o como esto:

  

Número de preguntas encontradas: M
  Número de comentarios encontrados: N

Por supuesto, esto no parece tan elegante como el resultado de las soluciones más complejas, pero es mucho, mucho más fácil de tratar.

    
respondido por el Christian Specht 03.11.2013 - 14:13

Lea otras preguntas en las etiquetas