2011-11-09 1 views
2

Je souhaite donc utiliser une règle au pluriel différente de celle du CLDR. J'utilise ICU par PHP intl extension, et dire que j'ai quelque chose comme ceci:En ICU, est-il possible d'utiliser des règles plurielles personnalisées à la place des règles CLDR?

$msg = new MessageFormatter('ar', 
       '{0,plural, zero {zero-ar}' . 
       'one {one-ar}' . 
       'two {two-ar}' . 
       'few {{0,number} few-ar}' . 
       'many {{0,number} many-ar}' . 
       'other{{0,number} other-ar} }.'); 

Je ne suis pas heureux avec le construit en règle de pluriel pour l'une des catégories et je voudrais changer, est-ce possible ? Et non, ce n'est pas seulement des intervalles fixes, donc vous ne pouvez pas utiliser les choix.

+0

Puis-je vous demander ce dont vous n'êtes pas satisfait, spécifiquement? (Juste pour comprendre) http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ar –

+0

V. bref: En arabe, chaque nom a des formes singulier, dual, pluriel, par exemple arbre : shajara = arbre-1 shajaratan = arbre-2 ashjar = arbres. Pour le cas X100 + 1, + 2, par exemple (102 arbres), le style traditionnel consiste à utiliser des formes singulières ou doubles plutôt que de compter le sujet: donc (100 et tree-1, 100 et tree-2) au lieu de x-forme). Maintenant, le 2ème style est acceptable et est utilisé pour éviter d'avoir des cas spéciaux et des problèmes d'utilisabilité avec le 1er style. Cependant, il est marginal et correct tree-x-form est discutable - le CLDR a tort sur ce cas - il y a une discussion ici (http://wiki.arabeyes.org/Plural_Forms) (link down?). –

+0

Dans chaque commentaire je manque d'espace pour vous remercier:) - merci vraiment pour vos réponses utiles. –

Répondre

1

Je pense que vous devez créer un objet PluralRules en utilisant PluralRules.createRules() puis créer votre propre PluralFormat en utilisant ces règles et un motif.

+0

Je ne vois pas cela exposé dans l'API PHP, donc je vais devoir utiliser des solutions de contournement dans mon code. –

+0

Vous pouvez extraire ICU du tag subversion, puis éditer icu/source/data/misc/plurals.txt - peut-être pourriez-vous revenir ici avec ce que vous avez réellement changé? –

Questions connexes