PHP & MySQL

Dire bonjour à la manière de Flickr

Le 22 octobre 2007 à 9:36 par spylberg

J’ai toujours trouvé très sympathique (et ô combien “web 2.0 communautaire”) la manière dont vous salut Flickr en plusieurs langues sur la page d’accueil, lorsque vous êtes logué.

J’ai donc créé une petite fonction en Php qui affiche un “bonjour” dans une langue prise au hasard dans un tableau, à chaque rechargement de la page.

J’ai trouvé la source des traductions sur FreeLang.com (merci à eux pour leur autorisation).

La fonction, nommée “Hello” contient 4 paramètres :

  • Le nom de la personne à saluer
  • La classe CSS du div contenant
  • La classe CSS du span bonjour
  • La classe CSS du span langue

Vous pouvez laisser vide les 3 paramètres CSS si vous ne souhaitez pas les utiliser.
Pour le reste, j’ai tenté de bien commenter directement dans la fonction.
Je me suis limité à 15 langues, mais vous pouvez en ajouter autant que vous le souhaitez (en respectant bien entendu l’ordre des 2 tableaux array).

<?php
function Hello ( $nom, $css1, $css2, $css3 ) {
# $nom : Nom à afficher
# $css1 : Style Css du div contenant
# $css2 : Style Css du span bonjour
# $css3 : Style Css du span langue
// Tableaux
//--------------------------------------------------
// Langues
$l = array (
1 => 'français',
2 => 'anglais',
3 => 'allemand',
4 => 'bengali',
5 => 'breton',
6 => 'esperanto',
7 => 'finnois',
8 => 'swahili',
9 => 'zoulou',
10 => 'ouzbek',
11 => 'maori',
12 => 'japonais',
13 => 'danois',
14 => 'chinois',
15 => 'russe'
);
// Bonjours
$h = array (
1 => 'bonjour',
2 => 'hello',
3 => 'guten tag',
4 => 'sunchhen',
5 => 'demat',
6 => 'bonan tagon',
7 => 'päivää',
8 => 'jambo',
9 => 'sawubona',
10 => 'assalomu alaykum',
11 => 'kia ora',
12 => 'konnichi wa',
13 => 'goddag',
14 => 'ni hao',
15 => 'dobrii den'
);
//--------------------------------------------------
// CSS
//--------------------------------------------------
// Style CSS du DIV
if ( !empty($css1) ) $css1 = ' class="'.$css1.'"';
else $css1 = NULL;
// Style CSS du span Bonjour
if ( !empty($css2) ) $css2 = ' class="'.$css2.'"';
else $css2 = ' style="font-weight:bold;"';
// Style CSS du span Langue
if ( !empty($css3) ) $css3 = ' class="'.$css3.'"';
else $css3 = ' style="font-weight:normal; color:#666;"';
// Données
//--------------------------------------------------
$count = count($l); // nbr de valeur du tableau
$rand = rand(1,$count); // Nbr au hasard entre 1 et $count
$bonjour = ucfirst($h[$rand]);
$langue = ucfirst($l[$rand]);
$nom = strtoupper($nom);
// Affichage
//--------------------------------------------------
echo '<div'.$css1.'>';
echo '<span'.$css2.'>'.$bonjour.' '.$nom.' !</span>';
if ( $langue != 'Français' ) echo '<br /><span'.$css3.'>Vous savez maintenant dire bonjour en '.$langue.'</span>';
echo '</div>';
} // Fin de fonction
?>

Pour appeller votre fonction, il ne vous reste plus qu’à insérer dans votre page :

<?php Hello ( 'toto', 'class1', 'class2', 'class3' ); ?>

Lorsque la langue est “Français”, je supprime volontairement la phrase “Vous savez maintenant dire bonjour en Français”.

Si vous rencontrez un souci, n’hésitez-pas à commenter ce billet.
Ce tuto avait déjà été publié sur mon blog.

4 commentaires »

Gravatar

Commentaire de chris

le 22 octobre 2007 à 12:46

Cool.
Pour moi, un simple < ?php echo $h[rand(1,15)]; ?> fera l’affaire.

Gravatar

Commentaire de Céd'

le 23 octobre 2007 à 11:58

Excellent! Merci pour ce petit script sympa ;)

Gravatar

Pingback de (parenthese.be) » Blog Archive » HTTParty #17

le 28 octobre 2007 à 7:36

[…] Dire bonjour à la manière de FlickR : un petit script proposé par Smashing Coding pour saluer vos visiteurs dans une quinzaine de langue différente; […]

Gravatar

Commentaire de Dispoweb

le 31 octobre 2007 à 6:00

Il est possible aussi d’utiliser un fichier txt depuis lequel on peut prendre à chaque rafraichissement de la page une ligne au hasard pour les enregistrement des “hello”, chaque ligne contiendra une expression de chaque langue utilisé ;)

PS : histoire de mieux suivre le fil de discussion, il serait bien d’intégrer une fonctionnalité de notification par email ( PS à effacer après validation du commentaire )

Laisser un commentaire

Votre Nom

Votre E-mail (obligatoire mais ne sera pas publié)

Votre Site ou blog

Votre commentaire

Valid XHTML 1.0 Transitional