Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous,
Je vais devoir m'attaquer à la partie multilangue du site sur lequel je taff.
Jusqu'a présent pour une question de facilité et pour un besoin simple je fonctionnais avec un fichier de constantes par langues et une petite methode pour les dates et fuseau horaire.
Je vais essayer d'utiliser les class de Zend qui on l'air pas mal et plus complètes, par contre je trouve ca un peu touffu et la doc pas super limpide pour moi.
N'ayant pas trop envie de passer du temps à me palucher le code pour voir comment ca fonctionne derrière est ce que quelqu'un a des ressources, tuto (genre nikel comme akrabat) ou carrement des exemples de codes de la mise en place du multilangue avec fichier de traduc ?
Merci d'avance.
Hors ligne
Hors ligne
Hum... Mr.MoOx et Isilgawen... si jamais vous plongez dedans, n'hésitez pas à nous rédiger un petit tuto après
Hors ligne
ami a écrit:
http://framework.zend.com/manual/fr/zend.translate.using.html
Attention à la documentation, elle n'est pas du tout à jour...
- Ils chargent la classe par require_once("Zend/Translate.php"); au lieu de Zend_Loader::loadClass('Zend_Translate')
- Ils utilisent un $translation->setLanguage('fr'); qui n'existe plus
Hors ligne
Merci blackYell j'ai commençé à regarder et en effet la doc n'est pas tout à fait à jour, mais elle permet déjà de voir ou on va.
Par contre j'avous que j'hesite entre les différentes sources de traduc : csv,gettext ... C'est dommage que l'on sache pas, niveau perf ce qui fonctionne le mieux. Du coup je sais vraiment pas quel adaptateur choisir. Je pencherais pour csv facile à écrire à lire et à parser, à voir ...
Quelqu'un a t'il des arguments pour un plutôt qu'un autre ???
@philippe : pour le tuto euh... va falloir trouver le temps et ca c'est pas le plus facile
Dernière modification par Isilgawen (02-04-2007 09:52:14)
Hors ligne
Bonjour,
J'ai créé un petit tuto pour Zend_Translate et Zend_Locale :
* http://www.z-f.fr/forum/viewtopic.php?id=68
A+, Philippe
Hors ligne
Merci pour le tuto
Sinon coté structure de fichier(cvs,gettext ...) personne à un retour coté perf/interet ou aurai vu des infos sur le net la dessus ?
/me ne sais toujours pas quelle solution favoriser
[mode feignasse on]
@philippe : une remarque concernant le tuto
$translate->translate($key);
ca peut être remplacé par
$translate->_($key);
qui est plus court à écrire
[mode feignasse off]
Dernière modification par Isilgawen (08-04-2007 23:45:07)
Hors ligne
[mode pragmatique on]
J'ai tendance à penser que tu peux commencer par le plus simple (CSV). Il n'y a que les lignes d'initialisation qui changent.
Si tu veux changer après, tu as 2 ou 3 lignes à changer dans ton fichier d'initialisation. Le reste de ton code reste inchangé...
[/mode]
Sinon les plus et les moins
* CSV : hyper simple, rapide (parraît-il, non testé), le problème des ";" est résolu, pas d'outil pour le suivi des traductions
* gettext : rapide, des outils qui aident à maintenir à jour des fichiers de traduction (mais ces outils sont imbittables...)
* xliff : lent, des outils meilleurs que pour gettext, mais ça reste un peu imbitable (mais quand on a à maintenir des fichiers de traduction)
C'est ma vision, qui est très partielle... j'ai tjrs utilisé des formats simples genre CSV, mais c'est hyper chiant de maintenir les fichiers de traduction dans toutes les langues quand on fait des évolutions de l'applicatif...
A+, Philippe
Hors ligne
En effet j' vais surement attaquer par CSV aprés je verrais bien.
Hors ligne
Petite question/sondage :
Comment vous passez l'objet $translate à la vue ?
un $translate = Zend_Registry::get('translate'); dans la vue ?
ou $this->view->translate = Zend_Registry::get('translate'); dans le controller ?
Hors ligne
Je mets $translate dans la registry. Pour mes vues, j'utilise smarty, j'ai fait un plugin smarty qui crée une fonction {translate key="messageKey"}
A+, Philippe
Hors ligne
J'ai fait comme ca yannux et ca marche plutôt pas mal
Hors ligne
J'ai fait pareil avec Zend_registry::get("auth")->getIdentity() pour une question de lisibilité.
$this->auth("login") qui me renvoi Zend_registry::get("auth")->getIdentity()->login
Hors ligne