La cantidad "dos" no funciona en Android Strings-Resources Plural
Android permite a los traductores definir Plurals . El ejemplo siguiente funciona para mí con locale 'en':
<plurals name="numberOfSongsAvailable"> <item quantity="one">One song found.</item> <item quantity="other">%d songs found.</item> </plurals>
Pero agregar un valor especial para two
no funciona, todavía se toma la other
versión. ¿El uso de two
depende de la configuración regional? ¿Así que Android solo toma la versión two
si la localidad especifica explícitamente que debería haber una versión two
?
- Strings.xml Managementtool
- TextureView TranslationX & Y comportamiento no esperado en API 23
- Error al analizar datos org.json.JSONException: El valor <br del tipo java.lang.String no se puede convertir en JSONObject
- No se pudo encontrar la herramienta de compilación revisión 23.0.1
- De arriba a abajo - traducir animación
La pregunta SO Android plurals tratamiento de "cero" puntos el mismo error cuando se utiliza zero
en Inglés, que también no es compatible. No hay soluciones en esta pregunta, excepto para evitar los plurales de Android que quiero evitar.
- Tecla Eliminar en Editor de traducciones
- ¿Cambia el nombre de la aplicación en Google Play Store según el idioma del teléfono del usuario?
- Cambiar la configuración regional, pero mantener orientaciones de izquierda a derecha y de otros teléfonos
- Cómo hacer animación de traducción para cada elemento de vista de lista
- Diferencia entre Camera.translate y Matrix.preTranslate o Matrix.postTranslate?
- Custom textview con rotar, acercar, alejar y mover en el tacto en android?
- ¿Cómo traducir la animación en una imagen diagonalmente?
- Obtener la coordenada Y de la parte superior e inferior de ImageView
Android está usando el sistema CLDR plurals, y esto no es sólo cómo funciona (así que no esperes que esto cambie).
El sistema se describe aquí:
http://cldr.unicode.org/index/cldr-spec/plural-rules
En resumen, es importante entender que "uno" no significa el número 1. En su lugar estas palabras clave son categorías, y los números específicos n que pertenecen a cada categoría están definidos por las reglas de la base de datos CLDR:
http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
Aunque parece que no hay ningún lenguaje que usa "cero" para nada distinto de 0, hay lenguajes que asignan 0 a "uno". Hay ciertamente muchos de los casos donde "dos" contiene otros números que apenas 2.
Si Android permite que hagas lo que pretendías, tus aplicaciones no podían traducirse correctamente a cualquier número de idiomas con reglas plurales más complejas.
Eso es un viejo error . Sólo hay algunas cláusulas if que faltan en la sección de código correspondiente de la clase PluralRules .
Como la respuesta en su pregunta vinculada declaró, usted está mejor usando MessageFormat
o algo más. El error se ha informado en mayo de 2010, no me esperaba que beeing fijo en un futuro próximo (y todavía tiene una versión defectuosa en los dispositivos de la versión antigua en este caso) .
Completamente falso, ver los comentarios.
Sí, el uso de dos es específico para locale. Sólo porque usted le da el número 2 no significa que va a utilizar la cantidad = "dos". Sólo utilizará esa cantidad para idiomas que tienen casos especiales para el número 2
Desde http://developer.android.com/guide/topics/resources/string-resource.html#Plurals :
Tenga en cuenta que la selección se hace sobre la base de la necesidad gramatical. Una cadena de cero en inglés será ignorada incluso si la cantidad es 0, porque 0 no es gramaticalmente diferente de 2, o cualquier otro número excepto 1 ("cero libros", "un libro", "dos libros", y así en). No se deje engañar ni por el hecho de que, por ejemplo, dos sonidos como si sólo pudiera aplicarse a la cantidad 2: un lenguaje puede requerir que 2, 12, 102 (y así sucesivamente) se traten como unos a otros, pero de manera diferente a otros cantidades. Confíe en su traductor para saber qué distinciones su idioma realmente insiste en.
- Android: comprueba si el GPS está buscando, tiene una corrección o no está en uso
- Mostrar la imagen predeterminada en la vista de imagen si no se devuelve ninguna imagen del servidor