juin
2007
Petit résumé
Le Zend framework est puissant. On commence à le savoir grâce à la prolifération d’articles sur Developpez.com (et même la création d’une catégorie à part entière) !
Mais il révèle une facette très intéressante pour ceux qui gèrent des sites en version multilingue avec le composant Zend_Translate. Il fonctionne en se référant à une série de fichiers sources contenant le texte associé au langage pour tout le site. Le framework cherchera le fichier source approprié se basant sur le choix de l’utilisateur, récupèrera le texte et l’insèrera dans la page. Actuellement, le composant Zend_Translate supporte une diversité de formats de fichiers sources : tableaux PHP, CSV, Gettext, Qt, TMX et Xliff. Dans le futur, l’utilisateur sera apte à choisir d’autres formats comme les bases de données basées SQL.
Traduire un site
Alors comment faire ? Il nous faut modifier notre site existant pour reconnaître le langage demandé, et mettre à jour le texte adéquat. Le script suivant utilise Zend_Translate pour mettre à jour une table des matières en fonction de la langue choisie par l’utilisateur.ed language:
require_once("Zend/Translate.php");
$translate = new Zend_Translate('csv', "c:apache2htdocslanguagesit.csv", 'it');
print "<h4>".$translate->_("Table of Contents")."</h4>";
print $translate->_("Chapter 1. An Introduction to PHP")."<br />";
print $translate->_("Chapter 2. Installing Apache and PHP")."<br />";
print $translate->_("Chapter 3. PHP Basics")."<br />";
print $translate->_("Chapter 4. Functions")."<br />";
print $translate->_("Chapter 5. Arrays")."<br />";
?>
Ajouter ce script avec un site piloté par le Zend Framework et l’exécuter produira la sortie suivante :
Capitolo 1. Introduzione a PHP<br />
Capitolo 2. Installazione ed configurazione di PHP<br />
Capitolo 3. Fondamenti di PHP<br />
Capitolo 4. Funzioni<br />
Capitolo 5. Arrays<br />
Ce qui est particulièrement utile avec Zend_Translate est qu’il ne produira pas d’erreurs s’il manque dans le fichier source associé au langage cible. A la place, il affichera simplement le texte original !
Par exemple, supposons la ligne suivante ne soit pas trouvé dans le fichier ci-dessus ou dans it.csv :
print $translate->_("Chapter 6. Object-oriented PHP")."<br />";
Il n’y aucune erreur de soulevée. PHP affiche seulement la version originale du texte :
Capitolo 1. Introduzione a PHP<br />
Capitolo 2. Installazione ed configurazione di PHP<br />
Capitolo 3. Fondamenti di PHP<br />
Capitolo 4. Funzioni<br />
Capitolo 5. Arrays<br />
Chapter 6. Object-Oriented PHP<br />
Ce comportement robuste permet à l’équipe de traduire graduellement le site, tout en préservant pour les utilisateurs un accès complet.
Permettre à l’utilisateur de changer de langage dinamiquement
Afin de mesure l’avantage complet à tirer de ce composant, vous devez fournir à l’utilisateur un moyen de sélectionner le langage désiré. Evidemment ! C’est très facile à mettre en oeuvre en créant des liens qui passent le choix en paramètre comme :
Pour récupérer le paramètre lang = it, ajoutez simplement la ligne suivante à la méthode de contrôle appropriée :
Puis, modifiez l’appel du constructeur Zend_Translate utilisé plus tôt dans cet article pour lire :
$translate = new Zend_Translate('csv', "c:apache2htdocslanguages$lang.csv", '$lang');
L’utilisateur peut donc choisir sa langue en cliquant sur le lien désignantla langue voulue.
En alternative, si vos utilisateurs s’autentifient avant de pouvoir accéder au contenu de votre site, vous pouvez lui permettre de choisir un langage par défaut, le stockant dans une base de données, et récupérer la valeur et la placer dans une variable de session une fois qu’il s’est enregistré.
Que faire ensuite ?
Zend_Translate est juste une fonctionnalité à votre disposition quand vous créez des sites à destination d’un public international. Par exemple, le composant Zend_Locale réduit grandement la complexité pour localiser les dates, les nombres, les calendriers… Le composant Zend_Measure vous aide à convertir des valeurs en différentes unités selon l’origine de l’utilisateur cible.
Donc, à vous de jouer ! Créez un site international grâce au Zend Framework!
Commentaires récents
- Dissection de SharpDevelop dans
- Dissection de SharpDevelop dans
- Appel à contribution dans
- Appel à contribution dans
- Naissance dans