Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai fait une mise à jour de php il y a quelques jours, et depuis lorsque j'utilise Zend_Translate avec les fichiers ini c'est le bazar !
avant je faisais de la façon suivante pour traduire mon texte :
echo $this->translate->_('traduire mon texte')
et dans mon fichier ini, je retrouvais :
traduire mon texte="Texte qui est traduit"
Depuis, je suis obligé de formater mon texte de la façon suivante :
echo $this->translate->_('traduire_mon_texte')
et dans mon fichier ini, je retrouvais :
traduire_mon_texte="Texte qui est traduit"
Cela viens t'il de ma mise à jour ? Ou est un autre problème ?
Merci d'avance,
Bien cordialement.
Hors ligne
Bonjour nicko;
j'ai essayé le format CSV et sa fonctionné parfaitement :
Quelques lignes de mon index.php
<? .................. define("CSV_DIR","application/translation/"); $locale = new Zend_Locale(Zend_Locale::BROWSER); $localeFr = new Zend_Locale("fr"); $localeEn = new Zend_Locale("en"); $localeIT = new Zend_Locale("it"); $translate = new Zend_Translate('csv', CSV_DIR.'translate_fr.csv', 'fr'); $translate->addTranslation(CSV_DIR.'/translate_en.csv', 'en'); $translate->addTranslation( CSV_DIR.'/translate_it.csv', 'it'); $translate->setLocale('fr'); Zend_Registry::set('translate', $translate); ?>
Et puis dans ton controlleur par exemple tu fais :
$translate = Zend_Registry::get('translate'); $this->view->headerTitle_ = $translate->_("msg1") ;
fichier de lange par exemple translate_en.csv :
msg1;first english msg msg2;msg with complicated key clé3;third key Ajouter un nouvel album;add new album
A toi de jouer
Hors ligne
Merci ziededt,
Mais est-ce qu'un fichier CSV est aussi performant qu'un fichier ini ?
Hors ligne
Je pense que les performances sont à peu près les même pour un .ini et un .csv (les 2 sont codés en natifs en PHP et les 2 formats sont super simple).
Par contre pour un fichier de traduction, le format CSV a un gros avantage. L'usage dans les traductions est d'utiliser directement la phrase dans la langue de référence comme clé pour les autres langues.
Si ta langue de référence est le français, tu écriras dans ton code
$translate->_("Enregistrer l'utilisateur");
et dans ton CSV tu auras
"Enregistrer l'utilisateur";"Save User"
C'est possible avec un CSV et pas avec un .ini (où à ma connaissance, la clé ne peut pas contenir d'apostrophe, d'espace, ou autre signe bizarre.)
Si tu veux vraiment gagner en perfs (et en temps de développement et traduction) tu peux regarder les .po et gettext.
A+, Philippe
Hors ligne