android - tag - snapseed
La definiciĆ³n plural se ignora para la cantidad cero (2)
Plural es la forma de Unicode. todo de valor plural here . En inglés, plural para cero como 2, 3,4, por lo que debe, si no, este valor para usar otra cadena para esto.
Uso los plurals para compilar una cadena de cantidad para una aplicación de Android. Sigo exactamente lo que se puede encontrar en los tutoriales:
res.getQuantityString(
R.plurals.number_of_comments, commentsCount, commentsCount);
Aquí está la definición de los plurales:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="number_of_comments">
<item quantity="zero">No comments</item>
<item quantity="one">One comment</item>
<item quantity="other">%d comments</item>
</plurals>
</resources>
Bastante interesante, la cadena de salida es impar a lo que definí:
commentsCount = 0 => "0 comments"
commentsCount = 1 => "One comment"
commentsCount = 2 => "2 comments"
Supongo que esto se debe a que los documentos indican When the language requires special treatment of the number 0 (as in Arabic).
por cantidad zero
. ¿Hay alguna manera de forzar mi definición?
Según la documentación :
La selección de qué cadena utilizar se realiza únicamente en función de la necesidad gramatical. En inglés, una cadena para cero se ignorará 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 pronto).
Si aún desea utilizar una cadena personalizada para cero, puede cargar una cadena diferente cuando la cantidad es cero:
if (commentsCount == 0)
str = res.getString(R.string.number_of_comments_zero);
else
str = res.getQuantityString(R.plurals.number_of_comments, commentsCount, commentsCount);