Si le dictionnaire est stocké dans un fichier au format TMX
[c'est quoi?]
:
- Vous aurez un fichier contenant l'ensemble (ou un sous-ensemble) des traductions
- Chaque bloc du fichier contient la traduction d'une phrase pour l'ensemble des langues
|
Voici l'exemple que nous utiliserons:
|
<?xml version="1.0" ?>
<tmx version="1.4">
<header creationtool="eclipse"
creationtoolversion="3.4"
segtype="sentence"
o-tmf="n/a"
adminlang="fr-FR"
scrlang="fr-FR"
datatype="plaintext">
</header>
<body>
<tu tuid="nom">
<tuv xml:lang="en">
<seg>First name</seg>
</tuv>
<tuv xml:lang="fr">
<seg>Nom</seg>
</tuv>
</tu>
<tu tuid="prenom">
<tuv xml:lang="en">
<seg>Last name</seg>
</tuv>
<tuv xml:lang="fr">
<seg>Prenom</seg>
</tuv>
</tu>
<tu tuid="adresse">
<tuv xml:lang="en">
<seg>Address</seg>
</tuv>
<tuv xml:lang="fr">
<seg>Adresse</seg>
</tuv>
</tu>
</body>
</tmx>
|
Dans ce cas, l'objet
Zend_Translate doit être instancié en passant en paramètre le format
tmx, le chemin du fichier et la langue par défaut à utiliser pour les traductions (dans cet exemple, 'en').
 |
Si vous précisez un chemin relatif sachez que le chemin est relatif au script appelé (et non pas relatif au script qui fait l'instanciation si celui-ci est inclus dans un autre script). |
Voici donc un premier exemple, tout simple, où nous ne demandons que des traductions dans la langue par défaut
|
<?php
require_once("include_path_inc.php"); // Ajout du chemin vers Zend Framework
require_once("Zend/Translate.php");
$dico = new Zend_Translate('tmx', dirname(__FILE__).'/dico.tmx', 'en');
echo $dico->_('nom')."<br />\n";
echo $dico->_('prenom')."<br />\n";
echo $dico->_('adresse')."<br />\n";
?>
|
Ce qui donne
First name
Last name
Address
|
|
Pour une page d'accueil, par exemple, il peut être nécessaire d'avoir accès à plusieurs traductions dans ce cas, il faut préciser quelle traduction utiliser (nous avons cette fois 'fr' par défaut):
|
<?php
require_once("include_path_inc.php"); // Ajout du chemin vers Zend Framework
require_once("Zend/Translate.php");
$dico = new Zend_Translate('tmx', dirname(__FILE__).'/dico.tmx', 'fr');
echo "en francais<br />\n";
echo $dico->_('nom')."<br />\n";
echo $dico->_('prenom')."<br />\n";
echo $dico->_('adresse')."<br />\n";
echo "en anglais<br />\n";
echo $dico->_('nom', 'en')."<br />\n";
echo $dico->_('prenom', 'en')."<br />\n";
echo $dico->_('adresse', 'en')."<br />\n";
?>
|
Ce qui donne
en francais
Nom
Prenom
Adresse
en anglais
First name
Last name
Address
|
|