Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 03/06/2011, 11h05   #1
Membre à l'essai
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 40
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2011
Messages : 40
Points : 23
Points : 23
Par défaut Internialisation et module language

Bonjour,

Je suis actuellement en stage et je développe depuis 1 mois un site sous symfony. Mon site devra prend en compte le multilangue, et donc j'ai suivi le tuto de jobeet pour la création du module langue (et le changement manuel de langue).

J'ai donc un module language avec dans le dossier actions :

- actions.class.php
Code :
1
2
3
4
5
6
7
8
9
10
 
public function executeIndex(sfWebRequest $request)
{
  	$form = new sfFormLanguage(
  	  $this->getUser(),
  	  array('languages' => array('en', 'fr'))
  	  );
 
  	  $form->process($request);
}
- components.class.php
Code :
1
2
3
4
5
6
7
8
 
public function executeLanguage(sfWebRequest $request)
{
		$this->form = new sfFormLanguage(
		  $this->getUser(),
		  array('languages' => array('en', 'fr'))
		  );
}
dans le dossier templates :

- _language.php
Code :
1
2
3
4
 
<form action="<?php echo url_for('@change_language') ?>">
  <?php echo $form ?><input type="submit" value="ok" />
</form>
et mon routing :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/10-Routing
 
# default rules
homepage:
  url:   /
  param: { module: login, action: index }
 
# generic rules
# please, remove them by adding more specific rules
default_index:
  url:   /:sf_culture/:module
  param: { action: index }
 
default:
  url:   /:sf_culture/:module/:action/
 
localized_homepage:
  url: /:sf_culture/:module/
  param: { module: login, action: index }
  requirements:
    sf_culture: (?:fr|en)
 
change_language:
  url:   /language/
  param: { module: language, action: index }
 
equipement:
  url:   /:sf_culture/equipement/
  param: { module: equipement, action: index }
  requirements:
    sf_culture: (?:fr|en)
 
organisme:
  url:   /:sf_culture/organisme/
  param: { module: organisme, action: index }
  requirements:
    sf_culture: (?:fr|en)
Tous marche sans soucis, je n'ai pas de message d'erreur, et le changement de langue se fait bien. Mon seul soucis, c'est qu'il retourne sur la page d'accueil au changement de langue, ce qui est logique au vu du code, mais je ne vois pas trop comment faire pour le qu'il retourne sur la page précédente. Je parle quand je change la langue via la liste déroulante des langues qui est sur toute les pages.

Avez vous une idée de la marche à suivre ?

Merci d'avance
micky86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 14h12   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
L'idée est en général de retrouver la valeur de la précédente url dans l'objet sfRequest qui est donnée en argument de l'action.

Sauf qu'ici, il n'aura pas la bonne langue. Il faudra donc modifier l'url récupérée pour changer la langue dans la nouvelle. Avec le risque que tous les modules ne disposent pas d'une langue adaptée...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h27.


 
 
 
 
Partenaires

Hébergement Web