Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2011, 20h54   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2010
Messages : 67
Points : 14
Points : 14
Par défaut Accès à un objet

Bonjour,

Question de débutant mais voilà je déclare cette méthode dans le bootstrap

Code :
1
2
3
4
5
6
7
8
9
    	$translate = new Zend_Translate('gettext',
					APPLICATION_PATH . "/langs/",
					null,
					array('scan' => Zend_Translate::LOCALE_DIRECTORY));
 
 
		$registry = Zend_Registry::getInstance();
		$registry->set('Zend_Translate', $translate);
		$translate->setLocale('en');
Comment fais je pour avoir accès à cette instance de Zend Translate depuis une vue ?

Suite je obligé de faire ça dans chacune des méthode ayant besoin de cette instance :

Code :
1
2
3
 
$translate = Zend_Registry::get('Zend_Translate');
$this->view->translate = $translate;
Merci pour votre aide
siriu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 22h55   #2
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 159
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 159
Points : 293
Points : 293
Il y a un helper de vue qui gère ça : http://framework.zend.com/manual/en/...tial.translate

A partir du moment où tu as définis une entrée du registre Zend_Translate, cet helper l'utilise simplement en utilisant $this->translate(...) depuis ta vue.
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 07h41   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2010
Messages : 67
Points : 14
Points : 14
Bonjour,

Merci pour votre réponse, j'essaie de faire avec le helper mais il y a qq chose qui ne fonctionne pas et je ne comprend pas...

Si je met dans mon bootstrap

Code :
1
2
3
4
5
6
7
8
		$adapter = new Zend_Translate('gettext',
					APPLICATION_PATH . "/langs/",
					null,
					array('scan' => Zend_Translate::LOCALE_DIRECTORY));
 
 
		$registry = Zend_Registry::getInstance();
		$registry->set('Zend_Translate', $adapter);
et que je met à la suite :
Code :
echo $adapter->plural('table', 'tables', 2, "fr");
Ça fonctionne, il détecte bien la méthode "plural" et la traduction est faite...

Idem, si je met dans une vue, le code ci dessous ça fonctionne

Code :
$this->translate(" mon expression à traduire");
En revanche, si je met dans une vue, ce code ça ne fonctionne plus, j'ai un message d'erreur disant que j'appelle une méthode "plural" inconnue...

Code :
echo $this->translate->plural('table', 'tables', 2, "fr");
Est ce que j'ai mal fait quelque chose ?
siriu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 10h53   #4
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 159
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 159
Points : 293
Points : 293
Effectivement, le view helper ne fournit l'accès qu'à la méthode translate. Tu pourrais t'en sortir dans ta vue avec quelque chose du genre je pense :
Code :
$this->getHelper('translate')->getTranslator()->plural(...);
Mais il y a plus simple si j'en crois cette doc :
http://framework.zend.com/manual/fr/...plurals.modern

Il est visiblement possible d'utiliser la méthode translate pour la traduction des pluriels en passant un tableau en premier paramètre, ça devrait te permettre d'utilise $this->translate() depuis ta vue.
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 11h08   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2010
Messages : 67
Points : 14
Points : 14
Merci pour ta réponse.

Effectivement ça fonctionne avec un array mais le problème c'est que poEdit ne détecte pas les termes si je fonctionne comme cela

M'enfin là j'ai compris mon problème et je vais me bricoler une solution
siriu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 11h14   #6
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 159
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 159
Points : 293
Points : 293
Si j'ai pu aider un peu, tant mieux. Pense au tag résolu quand ça sera réglé à 100%
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h28.


 
 
 
 
Partenaires

Hébergement Web