Android pluriels traitement de “zéro”

Si les suivants au pluriel ressource dans ma strings.xml:

   <plurals name="item_shop">
        <item quantity="zero">No item</item>
        <item quantity="one">One item</item>
        <item quantity="other">%d items</item>
   </plurals>   

Je suis de montrer le résultat à l'utilisateur à l'aide de:

textView.setText(getQuantityString(R.plurals.item_shop, quantity, quantity));

Il fonctionne bien avec 1 et au-dessus, mais si la quantité est 0, puis je vois "0 articles".
Est valeur "zéro" pris en charge uniquement dans la langue arabe, la documentation semble indiquer?
Ou ai-je raté quelque chose?

  • Ce problème est signalé ici code.google.com/p/android/issues/detail?id=8287 . Pas encore fixée :/
  • Je ne pense pas que ses un bug: Notez que la sélection est basée sur la grammaire de la nécessité. Une chaîne de zéro en anglais seront ignorés, même si la quantité est 0, car 0 n'est pas grammaticalement différent de 2, ou tout autre nombre, sauf 1 ("zéro" livres", "un livre", "deux livres", et ainsi de suite)
  • Malheureusement, toutes les langues ne sont identique à l'anglais
  • Je pense que c'est un bug dans le sens que, d'une grammaire de côté, 99% des fois j'ai besoin de l'utiliser, j'avais besoin de la fonctionnalité manquante. Donc, oui, je crois que c'est un bug de Google ne sera probablement jamais corrigé. En tant que tel, une solution de contournement est nécessaire. Vous voyez, les Api sont là pour aider le consommateur, de faire les choses, et non pas exclusivement à représenter des concepts abstraits à partir du monde réel. Si Zéro aurait été pris en charge hors de la boîte, les deux groupes (ceux qui ont besoin de la grammaire de l'exactitude et ceux qui ne le font pas), pourrait s'en tirer sans avoir à utiliser quelque chose de différent.
InformationsquelleAutor EricLarch | 2011-04-13