function frenchPluralize($word) { $exceptions = array( 'landau' => 'laudaus', 'sarrau' => 'sarraus', 'bleu' => 'bleus', 'pneu' => 'pneus', 'pou' => 'poux', 'hibou' => 'hiboux', 'chou' => 'choux', 'joujou' => 'joujoux', 'genou' => 'genoux', 'caillou' => 'cailloux', 'bijou' => 'bijoux', 'cal' => 'cals', 'bal' => 'bals', 'carnaval' => 'carnavals', 'pal' => 'pals', 'récital' => 'récitals', 'régal' => 'régals', 'festival' => 'festivals', 'chacal' => 'chacals', 'bail' => 'baux', 'corail' => 'coraux', 'émail' => 'émaux', 'gemmail' => 'gemmaux', 'soupirail' => 'soupiraux', 'travail' => 'travaux', 'vantail' => 'vantaux', 'vitrail' => 'vitraux', 'bétail' => 'bestiaux', 'crédit-bail' => 'crédits-baux' ); if (isset($exceptions[$word])) { return $exceptions[$word]; } if (preg_match('/[sxz]$/', $word)) { return $word; } $s = preg_replace( array('/al$/', '/eu$/'), array('aux', 'eux'), $word, -1, $count ); return $count == 1 ? $s : $word . 's'; }Voir aussi
dimanche 27 juillet 2008
Petite fonction pour mettre au pluriel un nom français
Libellés :
PHP
Inscription à :
Publier les commentaires (Atom)
1 commentaire:
Bonjour Maxence.
Merci d'avoir cité ma fonction et merci de partager la tienne.
Les pluriels français sont un sujet très compliqué qui rend leurs automatisations quasiment impossibles contrairement à l'anglais.
La liste des officielles des exceptions est longue, je ne parle même pas des mots invariables ou des pluriels des mots français/étrangers (Scenario/Scenarii, Medium/Media).
Une fois réglé, il reste le soucis des pluriels multiples (Ciels/Cieux).
La langue français n'est pas faite pour l'informatique.
Jay
Enregistrer un commentaire