Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-01-2008 17:20:23

ace
Nouveau membre
Date d'inscription: 28-01-2008
Messages: 1

[Zend_Translate][1.0.3] TMX Traduction par défaut

Bonjour,

J'utilise Zend_Translate pour un site multilingue avec l'adaptateur TMX.
J'utilise environ 1 fichiers .tmx par page à traduire et met toutes les langues dans le même fichier. Ca peut paraitre barbare mais c'est finalement assez pratique pour la traduction, pas besoin de jongler entre plusieurs fichiers...

Bref, mon problème est le suivant: j'ai un fichier de ce genre

Code:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tmx SYSTEM "tmx14.dtd">
<tmx version="1.4">
    <header creationtoolversion="1.0.0" datatype="winres" segtype="sentence" o-tmf="abc" ></header>
    <body>
        <tu tuid="page.title">
            <tuv xml:lang="fr"><seg>Historique de navigation</seg></tuv>
            <!-- Pas de traduction de ce terme -->
        </tu>
        
        <tu tuid="text.emptyhistory">
            <tuv xml:lang="fr"><seg>Vider l'historique</seg></tuv>
            <tuv xml:lang="en"><seg>Empty history</seg></tuv>
        </tu>
    </body>
</tmx>

Notez bien le premier terme "Historique de navigation", il n'est pas traduit en anglais.

Pour le chargement de mon traducteur, voilà le code que j'utilise.
$path étant le chemin vers mon fichier tmx détaillé ci-dessus.

Code:

Zend_Loader::loadClass('Zend_Translate');
$t = new Zend_Translate('tmx', $path, 'fr');
$t->addTranslation($path, 'en');

$t->setLocale('en');
Zend_Registry::set('translate', $t);

Le problème, c'est que lorsque je fais echo $t->_('page.title'); il ne m'affiche pas "Historique de navigation" en français, comme je le souhaiterais, mais "page.title".

Je pensais qu'en chargeant les 2 traductions, Zend_Translate allait se débrouiller, s'il ne trouvait pas le terme traduit dans la langue demandée (l'anglais), pour récupérer celui de la langue suivante (le français en l'occurence).

Quelqu'un a-t-il une idée ? Ai-je oublié un détail ?

Désolé pour la tartine de texte, mais j'essaie d'être exhaustif big_smile

Hors ligne

 

#2 28-01-2008 17:50:27

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Translate][1.0.3] TMX Traduction par défaut

il faudrait pour cela qu'il y ait une notion de langue par défaut ce qui n'est pas le cas.
donc il te faut tous les messages dans toutes les langues

A+JYT

Hors ligne

 

#3 29-01-2008 10:04:43

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: [Zend_Translate][1.0.3] TMX Traduction par défaut

Tu peux vérifier avec Zend_Translate la présence ou non d'une traduction via la méthode isTranslated(), cf la doc (http://framework.zend.com/manual/fr/zen … translated)

Tu peux donc checked la présence ou non de la traduction et si absent prendre une autre trad

Hors ligne

 

#4 29-01-2008 10:20:15

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Translate][1.0.3] TMX Traduction par défaut

un bon moyen est d'utiliser le _SERVER["HTTP_ACCEPT_LANGUAGE"] celuici te donne par ordre de préférence les langage que préfère ton client
tu prends dans l'ordre le language que ton client à sélectionné dans l'application
à défaut le premier de la liste
à défaut le suivant etc.
si aucun langage n'est disponible
il ne te reste qu'à gérer un liste de priorité côté serveur

c'est ce genre de fonctionnement qu'utilise apache dans le mod_negociation  LanguagePriority en fr de

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages