par
lalmat » 24 mai 2013, 10:51
1) Créer une table de traduction du style
table traduction {
trad_code string 32
trad_locale string 5
trad_text string 255
}
2) Charge ton dictionnaire en session en fonction de la langue de l'utilisateur en executant une requête SQL sur ta table de traduction afin de récupérer tous les codes à traduire pour la lange $locale. (Ceci constituera la fonction getDico). $locale est à définir soit par l'utilisateur soit par détection du navigateur.
$_SESSION['DICO'] = getDico($locale);
3) Ecrit une fonction qui te retourne le code traduit :
function traduire($code) {
return $_SESSION['DICO'][$code];
}
Voilà l'idée.
Si tu as la bonne idée d'utiliser Smarty pour la gestion de tes templates, tu peux envoyer tout le dictionnaire à Smarty et t'éviter bien du code :
$s = new Smarty();
foreach($_SESSION['DICO'] as $code=>$trad) {
$s->assign("TRAD_".$code, $trad);
}
ainsi si ton tempate contient la valeur smarty {$TRAD_UTILISATEUR} il sera automatiquement remplacé par la valeur du code "UTILISATEUR" du dictionnaire.