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