Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#26 22-06-2008 19:25:38

Azema
Membre
Lieu: Paris
Date d'inscription: 26-09-2007
Messages: 51
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Salut Akis,

Akis a écrit:

//edit : En fait, c'était à cause de moi, je faisais aucun echo

Je te rassure, cela m'est souvent arrivé et ça m'arrive encore. ;-)

Concernant le pluriel, je pense qu'il est préférable de faire deux traductions différentes, car selon les langues, le pluriel n'est pas forcément géré de la même manière.

Sinon, je n'ai pas compris ta dernière phrase, peux tu être un peu plus explicite?

Cordialement, Azema.

Dernière modification par Azema (22-06-2008 19:26:30)

Hors ligne

 

#27 23-06-2008 09:13:02

Akis
Membre
Date d'inscription: 29-03-2008
Messages: 86
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

D'ac Azema, merci.

Pour le second point, c'est inutile, je n'arrive plus à trouver ce matin pourquoi j'avais besoin de ça wink

Hors ligne

 

#28 23-06-2008 09:58:10

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Pour les variables dans les traductions, tu peut passer par un print_f :

Code:

print_f($translate->_("Ma valeur = %s"),$valeur);

En gros le translate va renvoyer sa chaine au print_f, qui va lui se débrouiller.

J'avais chercher aussi pour afficher des messages d'erreur tout en affichant la valeur de l'élement incorrect, par exemple pour le mail, afficher :

"bla@bla n'est pas une adresse email valide"

Hors ligne

 

#29 13-10-2008 01:22:49

titpapy
Nouveau membre
Date d'inscription: 13-10-2008
Messages: 4

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour,

j'ai suivi le tutoriel mais zend me sort une erreur comme quoi aucun fichier langue fr à été trouvé.

En effet :

Code:

$translate = new Zend_Translate ($adaptateur, '/languages/fr/default.mo', 'fr');

Je ne vois pas le moment où l'on cré ce fichier dans ce tuto.

Un peu d'aide serait la bienvenue.

Merci.

Hors ligne

 

#30 13-10-2008 08:49:21

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour,

C'est à la fin du point 7 du tuto. C'est un fichier de traduction créé avec POEdit (ou xgettext).

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#31 13-10-2008 17:52:22

titpapy
Nouveau membre
Date d'inscription: 13-10-2008
Messages: 4

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour,

Merci pour ta réponse.

Ben justement à la fin du 7 il y 'a :
"Il ne vous reste plus qu'a enregistrer votre catalogue et vous devriez retrouver votre fichier default.mo dans le répertoire /language/en/"
Mais quand est ce qu'on complète /language/fr/ ??

Merci d'avance.

Hors ligne

 

#32 14-10-2008 08:41:19

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Si le français est la langue de base du site, tu n'as pas à utiliser un fichier de traduction pour le français.
Tu n'as besoin de fichier de traduction que pour les autres langues.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#33 14-10-2008 20:52:27

titpapy
Nouveau membre
Date d'inscription: 13-10-2008
Messages: 4

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Comment indique t on ça alors ?

Code:

// Nous instancions l'objet Zend_translate en indiquant comme première langue le français.
$translate = new Zend_Translate ($adaptateur, '/languages/fr/default.mo', 'fr');

// Nous ajoutons la langue anglaise
$translate->addTranslation('/languages/en/default.mo', 'en');

Il faut changer quelque chose là non puisque le fichier "/languages/fr/default.mo" n'existera donc pas ?

Merci

Hors ligne

 

#34 15-10-2008 10:15:09

Azema
Membre
Lieu: Paris
Date d'inscription: 26-09-2007
Messages: 51
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour titpapy,

titpapy a écrit:

// Nous instancions l'objet Zend_translate en indiquant comme première langue le français.
$translate = new Zend_Translate ($adaptateur, '/languages/fr/default.mo', 'fr');

Le fichier /languages/fr/default.mo est vide. Nous indiquons seulement à l'objet translate quelle langue nous souhaitons utiliser.
Mais dans tes sources, les textes sont en français, nous n'avons donc pas de traductions à réaliser, par contre si par exemple, il y avait du texte, dans les sources, en anglais, il faudrait que le fichier cité plus haut, contienne les traductions en français.

Si par contre, tu décides de mettre la langue de ton site en anglais, il te faudra traduire le français de tes sources en anglais. Et c'est là que ton fichier /languages/en/default.mo va jouer son rôle.

Cordialement, Azema.

Hors ligne

 

#35 15-10-2008 19:49:24

titpapy
Nouveau membre
Date d'inscription: 13-10-2008
Messages: 4

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Ok d'accord cette fois j'ai tout saisi smile

Merci de votre aide précise et utile.

Bonne continuation.

Hors ligne

 

#36 15-10-2008 20:20:57

Azema
Membre
Lieu: Paris
Date d'inscription: 26-09-2007
Messages: 51
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Si je peux rendre service.

Déqolé de ne pas avoir pu répondre plus tôt.

Cordialement, Azema.

Hors ligne

 

#37 29-10-2008 14:58:31

etaty
Membre
Date d'inscription: 16-10-2008
Messages: 49

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

J'obtiens l'erreur suivante :

default.mo est vide

Code:

<b>Fatal error</b>:  Uncaught exception 'Zend_Translate_Exception' with message ''../languages/fr/default.mo' is not a gettext file' in D:\wamp\www\statsgame\library\Zend\Translate\Adapter\Gettext.php:95
Stack trace:
#0 D:\wamp\www\statsgame\library\Zend\Translate\Adapter.php(407): Zend_Translate_Adapter_Gettext-&gt;_loadTranslationData('../languages/fr...', 'fr', Array)
#1 D:\wamp\www\statsgame\library\Zend\Translate\Adapter.php(193): Zend_Translate_Adapter-&gt;_addTranslationData('../languages/fr...', 'fr', Array)
#2 D:\wamp\www\statsgame\library\Zend\Translate\Adapter.php(108): Zend_Translate_Adapter-&gt;addTranslation('../languages/fr...', 'fr', Array)
#3 D:\wamp\www\statsgame\library\Zend\Translate\Adapter\Gettext.php(51): Zend_Translate_Adapter-&gt;__construct('../languages/fr...', 'fr', Array)
#4 D:\wamp\www\statsgame\library\Zend\Translate.php(121): Zend_Translate_Adapter_Gettext-&gt;__construct('../languages/fr...', 'fr', Array)
#5 D:\wamp\www\statsgame\library\Zend\Translate.php(72): Zend_Translate-&gt;setAdapter('gettext', '../languages in <b>D:\wamp\www\statsgame\library\Zend\Translate\Adapter\Gettext.php</b> on line <b>95</b><br>

EDIT :
En remplaçant avec fr/default.mo (vide) par en/default.mo mes textes sont retraduit en anglais alors que je suis en français pourtant ça ne devrait pas ?

Solution :
Reprendre les fichiers sources (php, phtml), commenter tous les blocs de traductions afin de pouvoir les supprimer
Cliquer sur mettre à jours le catalogue et valider
Placer le fichier en/default.po dans fr/default.po (écraser si besoin)
Décommenter les fichiers sources
Cliquer sur mettre à jours le catalogue et valider
Traduire dans la langue voulue

Dernière modification par etaty (29-10-2008 18:43:05)

Hors ligne

 

#38 04-10-2009 18:54:35

mymt
Membre
Lieu: PACA
Date d'inscription: 25-09-2009
Messages: 93

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour,
Merci pour ce tutorial.
Il ne me reste qu'un seul soucis... Lorsque j'essaie de faire une traduction dans mon IndexController, j'ai une erreur :

Notice: Undefined variable: translate in /volume1/web/OZ_0001/application/controllers/IndexController.php on line 10

Fatal error: Call to a member function _() on a non-object in /volume1/web/OZ_0001/application/controllers/IndexController.php on line 10

Voici mon bout de code :
<?php
$translate = Zend_Registry::get('translate');

// La classe correspond au controller INdex qui est le controleur par défaut
class IndexController extends Zend_Controller_Action
{
   
   function indexAction()
    {
        $this->view->title = $translate->_("Voici le titre de ma page");
        $this->view->selectedIndex = "current";
        $this->view->selectedCompte = "";

    }}

Hors ligne

 

#39 04-10-2009 19:02:57

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Salut,

D'après ce qui a été dit dans ce topic, la méthode "_()" n'est dispo que dans la vue.
Dans le controlleur (avec ton code):

Code:

$translate->translate('chaine à traduire');

A+ benjamin.

Dernière modification par Delprog (04-10-2009 19:03:14)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#40 04-10-2009 21:09:30

Azema
Membre
Lieu: Paris
Date d'inscription: 26-09-2007
Messages: 51
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Non, en fait tu peux appeler la méthode translate dans le controller à partir de l'objet view.

Code:

$this->view->translate("Ma chaine à traduire");

ou bien

Code:

$this->view->_("Ma chaine à traduire");

Les deux formes doivent fonctionner.

P.S.: Petite astuce, car je viens de me confronter au problème. Il faut utiliser les doubles quotes dans la méthode translate.

Code:

$this->view->translate("Ma chaine sera récupérée par PoEdit");
$this->view->translate('Ma chaine ne sera pas récupérée par PoEdit');

Idem dans les fichiers de vue, du style les *.tpl
Faîtes attention aux chaines dans les balises JavaScript, si votre méthode se trouve entre quotes (simples ou doubles), PoEdit ne retrouvera pas la chaine.
Du moins, c'est ce qui m'est arrivé.

Bon courage à tous.

Hors ligne

 

#41 01-09-2011 16:41:54

Azema
Membre
Lieu: Paris
Date d'inscription: 26-09-2007
Messages: 51
Site web

Re: [Zend_Translate][1.0.3] Un petit Tuto translate avec adapteur Gettext

Bonjour à tous,

Voici un nouvel élément que je souhaitais ajouter à ce tuto, il s'agit de la forme plurielle dans PoEdit et Zend_Translate.

Il y a plusieurs manipulation à faire :

+ Dans PoEdit, allez dans la configuration de vos catalogues :
-- vous devez ajouter "nplurals=2; plural=n>1;" dans Formes plurielles dans les informations générales. (sans les quotes)
-- et "plural:1,2" dans les mots clefs. (sans les quotes)
+ Dans votre projet Zend, utiliser la méthode "plural" de Zend_Translate pour utiliser les formes plurielles.

La signature de la méthode plural:

Code:

[lang=php]plural(string $formeSinguliere, string $formePlurielle, int $nbElements)

Bon courage à vous

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