La communauté ALL HTML c'est 60191 membres à ce jour dont 0 inscrits aujourd'hui et 14 depuis une semaine.

Le web, la langue française, les pluriels et leur affichage

Photo de pchlj Article publié le mercredi 07 mars 2007 par pchlj.
Cet article est classé dans les catégories « Accessibilité, Ergonomie, Internet et Intranet, Outils, PHP »

Tout les mots de la langue françaises ne prennent pas un S au pluriel ;)

Bonjour tout le monde,

Je vais une fois de plus vous proposer une petite fonction que nous avons mis au point avec mon associé il y a déjà quelques mois et qui facilite un peu la vie pour une quesiton toute simple : comment mettre un mot au pluriel ???

# Rajoute un s ou n'importe quelle terminaison plurielle à une chaine... # $nb est la variable de test pour un pluriel # $mot est le mot à mettre au pluriel function pluriel($nb,$mot) { if(substr($mot,-3)=="ail") { $plur=array(bail, corail, soupirail, travail, vantail, vitrail); if(in_array($mot,$plur)) { $res=substr_replace($mot,"aux",-3); } else { $res=$mot."s"; } } elseif(substr($mot,-2)=="al") { $plur=array(bal, cal, carnaval, cérémonial, chacal, festival, récital, régal); if(in_array($mot,$plur)) { $res=$mot."s"; } else { $res=substr_replace($mot,"aux",-2); } } elseif(substr($mot,-2)=="ou") { $plur=array(bijou, caillou, chou, genou, hibou, joujou, pou); if(in_array($mot,$plur)) { $res=$mot."x"; } else { $res=$mot."s"; } } elseif(in_array($mot,array(km,mn,a,ha))) { $res=$mot; } else { $term="s"; $res=$mot.$term; } ($nb > 1) ? print $res : print $mot; }

En clair rien de bien compliqué mais nous avons mis les principales règles de pluriel de la langue française...

L'intérêt ?? tout simple !!

prenons une exmple de jeu en ligne avec des objets à conserver dans une grotte ou autre.

Nous aurions des gourdes et des cailloux !

Seulement voilà il faut pour être propre sur un site web écrire le français correctement !

le but afficher :

vous avez 0 caillou et 0 gourde dans votre grotte

ou encore

vous avez 3 cailloux et 0 gourde dans votre grotte

ou encore

vous avez 3 cailloux et 3 gourdes dans votre grotte



imaginons un code ou $nbc et $nbg sont le nombre de caillou et de gourde
cela donnerais ceci
print "Vous avez ".$nbc; ($nbc > 1) ? print "cailloux" : print "caillou"; print " et ".$nbg; ($nbg > 1) ? print "gourdes" : print "gourde"; print " dans votre grotte";

Nous admettrons tous que ce n'est pas très lisible pas très pratique, fastidieux à chaque rajout...

La solution avec la fonction pluriel

print "Vous avez ".$nbc." ".pluriel($nbc,"caillou")." et ".$nbg." ".pluriel($nbg,"gourde")." dans votre grotte";

Voilà plus facile, plus rapide...

Bon il manque encore quelques règles pour pique-nique et autres mots composés masi c'est une fonction personnelle il est donc aisé de la modifier, de la compléter ou de s'en inspirer..

@++


Sources de l'information : SARL 3Net

Plus d'informations :


VOS COMMENTAIRES ...

Commenter cette publication

Photo de FabHacker Commentaire publié le jeudi 15 mars 2007 à 18 h 51 par FabHacker
Très bon article dans la série des "Pourquoi faire simple quand on peut faire compliqué ?".

Voila une fonction que j'avais élaboré:


function pluriel($nombre, $pluriel = 's', $singulier = '') { if($nombre > 1) return $pluriel; else return $singulier; }


Pas besoin de spécifier les mots...
Par défaut la fonction ajoute un -s à la fin du mot.
Si nous sommes dans un cas particulier (comme "journal" par exemple), on spécifie le pluriel, et si besoin est, le singulier.

$nbg = 5;
$nbj = 6;
$texte = '<b>' . $nbg . '</b> grotte' . pluriel($nbg) . '<br />';
$texte .= 'Vous avez acheté <b>' . $nbj . '</b> journ' . pluriel('aux','al') . '<br />';
$texte .= 'Ou alors <b>' . $nbj . '</b> ' . pluriel('journaux','journal') . '<br />';
print($texte);
Photo de pchlj Commentaire publié le vendredi 16 mars 2007 à 10 h 48 par pchlj
salut Fab interressant mais cela demande de connaître ses règles de pluriel et donc d'avoir été un minimum bon à l'école ;)

certes tu simplifie, et je dis oui on l'avais fait aussi.. mais marre de voir un s à Km quand il y a plus de 2 Km (et oui pas de s)

donc LA fonction ne t'oblige pas à connaitre les règles ;) suffisamment compliquées s'il en est :)

après comme toujors en programmation cahcun vois midi à sa porte :) iil nous reste le choix :) grace à mon article tu as fait connaitre ta fonction... maintenant ceux qui voudront gérer correctement leur pluriels et la langue française auront le choix :)

(phil programmeur php depuis 13 ans ;) et pour autant pas parfait lol )
Photo de jarodender Commentaire publié le lundi 16 avril 2007 à 08 h 52 par jarodender modérateur
(phil programmeur php depuis 13 ans ;) et pour autant pas parfait lol )

C'est pas la peine de préciser 13 ans, puisque PHP n'est utilisé que depuis 1998, donc au mieux 9 ans !
http://fr.wikipedia.org/wiki/PHP_hypertext_preprocessor

S'il s'agit de l'âge où tu as commencé, alors ta phrase est trompeuse, et prouve juste qu'un programmeur a 13 ans n'a pas les connaissances poussées pour faire de la programmation objet de manière mature, d'ailleurs les codes données ci-dessus ne sont toujours pas objets.
Photo de pchlj Commentaire publié le lundi 16 avril 2007 à 14 h 20 par pchlj
ah les wiki et leur lot de conneries :)

bon alors internet est répendu en france depuis 1995 !! et la première version de php venant de perl date de ces eaux là je t'accorde 1996 mais je crois que c'est plutot 1994.

A cette époque l'objet n'existait pas dans le php...

la phrase n'est là qu'en clin d'oeil au message du dessus (Programmeur PHP depuis presque 4 ans de fabhacker ;))
un peu d'humour :)

bon pour ton info l'objet n'est pas la référence absolue et n'est pas toujours utile !

j'ai commencé avec le basic en 1987 (j'avais 9ans) et j'ai évolué au fur et à mesure :) j'ai 38 ans maintenant , et travaille avec du PERL de l'asp du c du delphi, du java, du javascript de l'action script du php

Cette fonction ici présentée existe depuis 4 ans dans l'état et nous fournis tout ce dont nous avons besoin....


pour paraphraser fabhacker "Pourquoi faire simple quand on peut faire compliqué ?".

mais surtout pourquoi réinventer la roue ???

ce code fonctionne depuis longemps, on peut toujours le refaire...

Des forums existent depuis des années et c'est pourtant toujours un TP pour les bts
Nous avons donc le choix dans plus de 100 modèles de forums qui font pourtant tous la meme chose...

Si tu as envi de recréer cette fonction en objet pourquoi pas :)

Les fonctions du php se sont enrichies grace aux idées de la communauté qui créait des petites fonctions de ce genre et qui ont été intégrées en natif...

Bref...

les querelles de langages sont inutiles et ne font pas avancer :)

J'ai passé 20 minutes de conversations stériles avec le prof de stage de notre dernière stagiaire, qui ne comprenait pas pourquoi on utilisait encore le PHP ou l'asp alors que JAVA est 10000 fois mieux... perso je vois pas en quoi c'est 10000 fois mieux !!

donc voilà... tu ne jure que par l'objet apparemment et tant mieux pour toi c'est en effet ce qui se fait de mieux... mais pas toujours ;) et rien n'oblige à n'utiliser que de l'objet :)
Photo de scientifix94 Commentaire publié le lundi 14 mai 2007 à 00 h 58 par scientifix94
Faudrait qu'All HTML utilise ca! Quand il n'y a pas d'inscrits on voit quand même: dont 0 inscrits aujourd'hui;)
Photo de vikingforce Commentaire publié le mercredi 16 mai 2007 à 10 h 04 par vikingforce
>>j'ai commencé avec le basic en 1987 (j'avais 9ans) et j'ai évolué au fur et à mesure :) j'ai 38 ans maintenant

On vois que tu es meilleur en Français qu'en math :-)
Photo de pchlj Commentaire publié le mercredi 16 mai 2007 à 10 h 39 par pchlj
lol VF ;)

en effet en 87 j'avais 8 ans :) mais ça dépend à quel moment de l'année on se place hein ;) :p
Photo de hzj74 Commentaire publié le dimanche 20 mai 2007 à 12 h 41 par hzj74
Bonjour,

La discussion est chaude !

J'aime bien la petite fonction. Je la trouve simple, ingénieuse et pratique. En plus, il est facile de la faire évoluer.

Merci à pchlj d'avoir partagé ce travail.

A+

Hzj74
Photo de pchlj Commentaire publié le vendredi 14 décembre 2007 à 15 h 51 par pchlj
oh là là je me relis pour un autre post ;) et voilà non franchement je sais plus compter :( honte à moi en 87 j'avais 18 ans...

j'ai commencé en 1977 !!! arf :D c vieux tout ça... ça nou rajeuni pas ma brave dame :D
Photo de nours312 Commentaire publié le dimanche 03 août 2008 à 12 h 21 par nours312
Juste en passant :

pchlj : il serait profitable que tu mette à jour pour les 'mots' spéciaux manquant, car c'est une trés bonne fonction qui peut avoir de multiple application tels que les recherches dans un moteur de recherche interne .... si le mot est au pluriel ou au singulier, double recherche avec la seconde chaine ... cela évite des pb ou des manques de réponses ! non ?

Commenter cette publication

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

Forums de discussions associés

Discutez et échangez sur ce thème dans notre forum PHP - SQL.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.