Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-05-2007 16:22:04

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

[Résolu][Zend_Locale]permettre à l'internaute de changer de langue

Merci à Phillippe pour le super tutorial sur Zend_Translate et Zend_Locale.

Le seul chose que me manque maintenant est comment il faut organizer mon application pour permettre à l'internaute de changer de langue.

Je sais qu'il faut changer Zend_Locale(ie. new Zend_Locale('en') )

Est-ce que il faut vraiment  que j'utilise Modules?  Est-ce que il y a des autres facons a faire?

merci pour votre aide.

-Mark

Dernière modification par fizzbanana (02-06-2007 19:53:48)

Hors ligne

 

#2 31-05-2007 16:46:43

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

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

De rien pour le tuto smile

Dans mes sites multilangues, je mets la langues dans toutes les URL où je peux la mettre (parfois ça n'est pas possible pour le retour d'un système de paiement ou autre joyeuseté avec des systèmes extérieurs).

Mes URL sont du type http://monsite/fr/xxx où "fr" est la langue.

Ensuite dans mon index.php, je regarde la langue fournie dans l'URL, je crée ma $locale en fonction et je la mets en session (si le gars revient sur la home http://monsite, il reste dans la même langue, c'est pour ça que je sauvegarde en session, aussi pour les quelques URL où je ne peux pas mettre la langue...).

Le lien pour changer de langue est souvent un lien vers la home dans l'autre langue (http://monsite/en).

Si la langue n'est pas définie en session et si elle n'est pas présente dans l'URL, je détermine la langue en fonction des préférences du navigateurs et des langues disponibles sur le site.

A+, Philippe


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

Hors ligne

 

#3 31-05-2007 16:53:34

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

j'ai arriver a faire quel que chose avec Request Object Parameters. 

dans My_Controller_Action  init() :

$lang = $this->_getParam('lang');
$locale = new Zend_Locale($lang);
$this->view->translateTool->setLocale($locale->getLanguage());

Apres il faut creer le Request Object Parameter 'lang' avec le language code... (ie.  ?lang=en)

-mark

Hors ligne

 

#4 31-05-2007 16:58:50

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

Merci Phillippe, mais comment est il possible de regarde la langue fournie dans l'URL?

Hors ligne

 

#5 31-05-2007 18:21:42

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

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

En utilisant le Router_Rewrite, un code du type :

Code:

$controller = Zend_Controller_Front::getInstance();
$router = new Zend_Controller_Router_Rewrite();
$router->addRoute(
    "basic",
    new Zend_Controller_Router_Route(
        "/:language/:controller/:action/:parameter1/:parameter2",
        array(
            "language"=>null,
            "controller"=>"index",
            "action"=>"index",
            "parameter1"=>null,
            "parameter2"=>null)
    )
);

A+, Philippe


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

Hors ligne

 

#6 17-08-2007 17:52:41

lenumero
Nouveau membre
Date d'inscription: 17-08-2007
Messages: 2

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

philippe a écrit:

En utilisant le Router_Rewrite, un code du type :

Code:

$controller = Zend_Controller_Front::getInstance();
$router = new Zend_Controller_Router_Rewrite();
$router->addRoute(
    "basic",
    new Zend_Controller_Router_Route(
        "/:language/:controller/:action/:parameter1/:parameter2",
        array(
            "language"=>null,
            "controller"=>"index",
            "action"=>"index",
            "parameter1"=>null,
            "parameter2"=>null)
    )
);

A+, Philippe

Par contre, comment récupérer cette variable "language" et l'ajouter aux vues, cela sans devoir ajouter le même code dans tout les controllers ?

Hors ligne

 

#7 18-08-2007 16:38:29

Grummfy
Membre
Lieu: Belgique
Date d'inscription: 01-08-2007
Messages: 232
Site web

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

ceci ce met dans le bootstrap et non dans ton controller, sinon en principe avec $this->getParam tu dois pouvoir récupéré langue et autre


Engagez-moi! : Cherche job en Belgique autour de Namur (1 heure de route autour)
blog - ZF Planet

Hors ligne

 

#8 19-08-2007 12:21:40

lenumero
Nouveau membre
Date d'inscription: 17-08-2007
Messages: 2

Re: [Résolu][Zend_Locale]permettre à l'internaute de changer de langue

> ceci ce met dans le bootstrap et non dans ton controller
> sinon en principe avec $this->getParam tu dois pouvoir récupéré langue et autre

Je me doute mais c'est justement le $this->getParam et tout ce qui vient avec que je ne voulais pas avoir à répéter.

Ce que j'ai réussi à faire en utilisant le système de Plugin.

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