Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous,
Je suis en train de réaliser un site multi langue et je suis confronté à un problème.
Dans mes views je défini:
$this->view->setEscape('utf8_encode');
Puis dans le contenu d'une view, j'ai:
<?php
print $translate->_(
$this->escape('Comité d\'organisation')
);
?>
J'utilise les traductions avec l'adaptateur CSV. J'ai donc crée un fichier en.csv contenant:
Comité d'organisation;Test
Lorsque je lance la page concernée, pas de traduction. En revanche quand j'ecris:
<?php
print $translate->_(
$this->escape('Comite d\'organisation') /*Avec e au lieu de é */
);
?>
et mon fichier en.fr:
Comite d'organisation;Test /*e au lieu de é */
Et bien ça marche nikel.
Portant moi je voudrai pouvoir utiliser échappement avant la traduction sinon en cas d'absence de traduction, les lettres accentué apparaîssent bizzarement.
Quelqu'un a-til une solution?
Merci de m'aider.
NB: Le Zend Framework est une merveille. Merci à tous ceux qui le soutiennent.
Hors ligne
:0 Comme c'est con de trouver soi même une reponse quelque mn après avoir faire un post. Ca semble montrer qu'on n'a pas assez cherché. Et Pourtant! Et Pourtant! Et Pourtant!
Voilà, j'aurai dû simplement mettre le scape() avant le translate(). Comme ça
<?php
print $this->escape(
$translate->_('Comité d\'organisation')
);
?>
C'est bizzare mais très logique. On traduit avant d'échapper au lieu d'échapper avant de traduire.
J'espère que ça pourra aider certains.
Philippe pourra mieux expliquer ça. Salut à toi Phil.
Hors ligne
Salut,
C'est sur, tu es entrain de rechercher une clé dans le fichier csv qui ne se trouve pas, parce que avec $this-escape ça t'échappe selon ton encodage et là ce n'est pas similaires: par exemple:
Comité d'organisation :Valeur échappé et qui ne se trouve pas dans le fichier CSV
Comité d'organisation :Valeur non échappé et qui se trouve dans le fichier CSV
Si t'avait mis dans le fichier CSV la clé Comité d'organisation alors il t'aurais affiché la traduction assigné à cette clé.
Donc en utilisant la pemière méthode cela doit t'afficher la valeur "Comité d'organisation" parce qu'il ne la trouve pas dans le fichier langue et dans la seconde qui est juste c'est de chercher la clé pr la suite il te renvois la traduction et puis tu l'échappe.
Cordialement
Hors ligne