tipos texto mensaje compuesto c# .net localization internationalization string-formatting

c# - mensaje - texto compuesto



¿Cuáles son algunas buenas frases que no están en inglés con formas singulares y plurales que pueden usarse para probar una biblioteca de internacionalización y localización? (1)

Me gustaría contribuir con la traducción aproximada al turco de su frase de muestra, para que pueda probar el caso donde el número de formas posibles es igual a 1.;)

{0} nesne kaldı. = ({0} items remaining.)

Aunque las palabras turcas están pluralizadas regularmente con sufijos, las formas plurales nunca se usan cuando se especifica el número de elementos. Por lo tanto, lo anterior debe representarse igual en cada caso:

1 nesne kaldı.

2 nesne kaldı.

42 nesne kaldı.

Sin embargo, cuando el recuento no se especifica explícitamente, puede ser gramaticalmente importante indicar si estamos hablando de uno o más elementos. Por lo tanto, el mensaje " Do you want to delete the selected item(s)? " Debería mostrarse así:

Seçili nesneyi silmek istiyor musunuz? (cuando el recuento de elementos = 1)

Seçili nesneleri silmek istiyor musunuz? (cuando el recuento de elementos es> 1)

Así que supongo que el formato para esto sería:

Seçili {0:nesneyi:nesneleri} silmek istiyor musunuz?

He estado trabajando en una biblioteca .NET para ayudar con la internacionalización de una aplicación. Está escrito en C #, llamado SmartFormat , y es de código abierto en GitHub.

Contiene reglas de número gramatical para varios idiomas que determinan la forma correcta de singular / plural basada en la plantilla y la configuración regional. Las reglas se obtuvieron de Reglas Plurales Unicode .

Al traducir una frase que tiene palabras que dependen de una cantidad (como sustantivos, verbos y adjetivos), usted especifica las múltiples formas y el formateador elige la forma correcta en base a estas reglas.

Un ejemplo en inglés: (observe que la sintaxis es casi idéntica a String.Format )

var message = "There {0:is:are} {0} {0:item:items} remaining."; var output = Smart.Format(culture, message, items.Count);

Me gustaría escribir pruebas unitarias para muchos de los idiomas admitidos. Sin embargo, solo hablo inglés y español (que tienen las mismas reglas de números gramaticales).

¿Cuáles son algunas buenas frases de prueba que no están en inglés que se pueden usar para estas pruebas unitarias? Estoy buscando frases similares a "There {0:is:are} {0} {0:item:items} remaining." . Observe cómo este ejemplo requiere un verbo y sustantivo específicos basados ​​en la cantidad.

Una nota sobre la sintaxis :

Esta biblioteca busca : palabras delimitadas y elige la palabra correcta según las reglas definidas para la configuración regional. Por ejemplo, en polaco, hay 3 formas en plural para la palabra "Archivo": 1 "plik", 2-4 "pliki", 5-21 "plików". Por lo tanto, debe especificar los 3 formularios en la cadena de formato: "{0} {0:plik:pliki:plików}" .

Por lo general, las palabras se ordenan desde el valor más pequeño posible hasta el más grande, como "{0:zero:one:two:few:many:other}" , tal como lo definen las Reglas Plurales Unicode .

Se ha discutido aquí información adicional sobre este código: Localización de palabras en singular / plural: ¿cuáles son las diferentes reglas de lenguaje para los números gramaticales?