Bonjour,
Je suis actuellement ce tutoriel : http://j-place.developpez.com/tutori...avec-symfony2/ (j'ai suivi le précédent aussi) et j'en suis à l'internationalisation de l'application.
Mon problème est que lorsque je mets la ligne :
dans le fichier app/config/config.yml, mon internationalisation fonctionne bien (le fait de cliquer sur les liens de langue change la langue). Mais lorsque je change cette ligne par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part translator: { fallback: en }
l'application reste toujours en français.
Code : Sélectionner tout - Visualiser dans une fenêtre à part translator: { fallback: fr }
Voici mon routing.yml :
mon fichier de vue (src/MyApp/FilmothequeBundle/Resources/views/Acteur/lister.html.twig) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50 myapp_accueil: pattern: / defaults: { _controller: MyAppFilmothequeBundle:Default:index } myapp_choisir_langue: pattern: /choisir-langue/{langue} defaults: { _controller: MyAppFilmothequeBundle:Default:choisirLangue } myapp_acteur_lister: pattern: /acteur/ defaults: { _controller: MyAppFilmothequeBundle:Acteur:lister } myapp_acteur_ajouter: pattern: /acteur/ajouter defaults: { _controller: MyAppFilmothequeBundle:Acteur:editer } myapp_acteur_modifier: pattern: /acteur/modifier/{id} defaults: { _controller: MyAppFilmothequeBundle:Acteur:editer } myapp_acteur_supprimer: pattern: /acteur/supprimer/{id} defaults: { _controller: MyAppFilmothequeBundle:Acteur:supprimer } myapp_acteur_rechercher: pattern: /acteur/rechercher defaults: { _controller: MyAppFilmothequeBundle:Acteur:rechercher } requirements: _method: POST myapp_categorie_lister: pattern: /categorie/ defaults: { _controller: MyAppFilmothequeBundle:Categorie:lister } myapp_categorie_ajouter: pattern: /categorie/ajouter defaults: { _controller: MyAppFilmothequeBundle:Categorie:editer } myapp_categorie_modifier: pattern: /categorie/modifier/{id} defaults: { _controller: MyAppFilmothequeBundle:Categorie:editer } myapp_categorie_supprimer: pattern: /categorie/supprimer/{id} defaults: { _controller: MyAppFilmothequeBundle:Categorie:supprimer } myapp_film_lister: pattern: /film/ defaults: { _controller: MyAppFilmothequeBundle:Film:lister } myapp_film_ajouter: pattern: /film/ajouter defaults: { _controller: MyAppFilmothequeBundle:Film:editer } myapp_film_modifier: pattern: /film/modifier/{id} defaults: { _controller: MyAppFilmothequeBundle:Film:editer } myapp_film_supprimer: pattern: /film/supprimer/{id} defaults: { _controller: MyAppFilmothequeBundle:Film:supprimer }
et mon contrôleur (ActeurController) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 {% extends 'MyAppFilmothequeBundle::layout.html.twig' %} {% block title %}{{ "acteur.liste" | trans }}{% endblock %} {% block content %} <form id="form_recherche" action="{{ path('myapp_acteur_rechercher') }}" method="post"> {{ form_widget(form) }} <input type="submit" value="Rechercher" /> </form> <div class="loading"></div> <div id="resultats_recherche"> {% include 'MyAppFilmothequeBundle:Acteur:liste.html.twig' with {'acteurs' : acteurs} %} </div> <p><a href="{{ path('myapp_acteur_ajouter') }}">Ajouter un acteur</a> <script> $(".loading").hide(); $("#form_recherche").submit(function() { $('.loading').show(); var motcle = $("#acteurrecherche_motcle").val(); var DATA = 'motcle='+motcle; $.ajax({ type: "POST", url: "{{ path('myapp_acteur_rechercher') }}", data: DATA, cache: false, success: function(data) { $("#resultats_recherche").html(data); $('.loading').hide(); } }); return false; }); </script> {% endblock %}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126 <?php namespace MyApp\FilmothequeBundle\Controller; use Symfony\Component\DependencyInjection\ContainerAware; use Symfony\Component\httpFoundation\RedirectResponse; use Symfony\Component\HttpKernel\Exception\notFoundHttpException; use MyApp\FilmothequeBundle\Entity\Acteur; use MyApp\FilmothequeBundle\Form\ActeurForm; use MyApp\FilmothequeBundle\Form\ActeurRechercheForm; class Acteurcontroller extends ContainerAware { public function listerAction() { $em = $this->container->get('doctrine')->getEntityManager(); $acteurs = $em->getRepository('MyAppFilmothequeBundle:Acteur')->findAll(); $form = $this->container->get('form.factory')->create(new ActeurRechercheForm()); return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:lister.html.twig', array('acteurs' => $acteurs, 'form' => $form->createView()) ); } public function editerAction($id = null) { $message = ''; $em = $this->container->get('doctrine')->getEntityManager(); if(isset($id)) { // modification d'un acteur existant : on recherche ses données $acteur = $em->find('MyAppFilmothequeBundle:Acteur', $id); if (!$acteur) { $message = 'Aucun acteur trouvé !'; } } else { // ajout d'un nouvel acteur $acteur = new Acteur(); } $form = $this->container->get('form.factory')->create(new ActeurForm(), $acteur); $request = $this->container->get('request'); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { $em->persist($acteur); $em->flush(); if (isset($id)) { $message = 'Acteur modifié avec succès !'; } else { $message = 'Acteur ajouté avec succès !'; } } } return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:editer.html.twig', array('form' => $form->createView(), 'message' => '')); } public function supprimerAction($id) { $em = $this->container->get('doctrine')->getEntityManager(); $acteur = $em->find('MyAppFilmothequeBundle:Acteur', $id); if(!$acteur) { throw new NotFoundHttpException("Acteur non trouvé"); } $em->remove($acteur); $em->flush(); return new RedirectResponse($this->container->get('router')->generate('myapp_acteur_lister')); } public function topAction($max = 5) { $em = $this->container->get('doctrine')->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->select('a') ->from('MyAppFilmothequeBundle:Acteur', 'a') ->orderBy('a.dateNaissance', 'DESC') ->setMaxResults($max); $query = $qb->getQuery(); $acteurs = $query->getResult(); return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:liste.html.twig', array( 'acteurs' => $acteurs, )); } public function rechercherAction() { $request = $this->container->get('request'); if ($request->isXmlHttpRequest()) { $motcle=''; $motcle = $request->request->get('motcle'); $em = $this->container->get('doctrine')->getEntityManager(); if ($motcle != '') { $qb = $em->createQuerybuilder(); $qb->select('a') ->from('MyAppFilmothequeBundle:Acteur', 'a') ->where("a.nom LIKE :motcle OR a.prenom LIKE :motcle") ->orderBy('a.nom', 'ASC') ->setParameter('motcle', '%'.$motcle.'%'); $query = $qb->getQuery(); $acteurs = $query->getResult(); } else { $acteurs = $em->getRepository('MyAppFilmothequeBundle:Acteur')->findAll(); } return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:liste.html.twig', array('acteurs' => $acteurs)); } else { return $this->listerAction(); } } } ?>
Partager