Problème d'actualisation d'un <div>

Résolu/Fermé
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 - 8 nov. 2011 à 11:15
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 - 8 nov. 2011 à 16:40
Bonjour,

Dans le cadre d'un stage, on m'a demandé de faire la traduction d'un site internet. J'ai donc incrémenté trois boutons dans un coin de ma page renvoyant vers les différentes versions du site correspondant à chaque langue.

Lorsque je clique sur un de ces boutons, la redirection se fait sans aucun soucis, tout le contenu de mon site est traduit, sauf, et c'est très problématique pour l'utilisateur, le menu que j'ai placé en haut de la page qui permet la navigation dans le site.

Pourtant, et c'est bien ce que je ne comprend pas, la redirection est bien faite. Effectivement, quand je rafraichit ma page, mon menu est traduit.

Ce que j'aimerais c'est pouvoir actualiser ce menu automatiquement quand je clique sur mon bouton de changement de langue (à savoir que j'ai le problème pour toutes les langues), car si moi je le sais, les gens qui passeront sur mon site ne sont pas censés savoir qu'ils doivent refresh la page après avoir sélectionné la langue qu'ils veulent.

En parcourant la toile, j'ai beaucoup entendu parler d'Ajax pour régler ce problème, mais c'est un outil que je n'ai jamais utilisé, et il me semble que ce qu'il propose est une actualisation toutes les x secondes, ce qui ne m'intéresse absolument pas.

Est ce que quelqu'un à eu un soucis similaire ? Parce que je n'ai vu ce soucis de "non actualisation" nulle part dans aucun forum. Le soucis viendrait-il de mon code ?

Bref, si quelqu'un a une solution ou une piste à me donner, ce serait un luxe incroyable. (:

Cordialement.

11 réponses

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 14:39
Oui mais en fait le fait d'actualiser la page revient à cliquer deux fois de suite sur la même langue : ce qui fonctionne également !

Tu dois avoir un problème dans ton code, du genre :
1/ J'affiche le menu
2/ Je récupère la langue à partir de l'URL
3/ J'affiche le reste du site en fonction de l'URL

Et il faudrait alors passer le point 1/ après le 2/.
Enfin, je ne sais pas comment tu gères la langue... Tu as duppliqué le code 3 fois avec une exemplaire par langue ?!
1
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 15:10
Mais quelque chose m'échappe : ton corps de site dépend de la langue, mais tu insères un unique menu avant le switch.

Dès lors, où est gérée la correspondance menu/langue ?!
Dans menu/phtml ?
1
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 8/11/2011 à 12:17
Bonjour,

Tout dépend de comment est inséré le menu en question, et de comment sont gérés tes boutons.
Peux-tu nous donner les grandes lignes du code de ta page, voire un lien vers ton site ?

Xavier
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 13:12
Hello,

En effet sans informations supplémentaires on ne peut rien faire pour toi. Personnellement je suis étonné que la totalité du site soit traduite, excepté le menu. Cela signifie que celui-ci est géré à part, ou du manière différente ?

0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 nov. 2011 à 13:31
À mon avis, le fait qu'il faille faire F5 (rafraîchir) pour que le menu se mette à jour signifie que le menu est affiché dans une frame.
Du coup les boutons ne rechargent que la partie de la page dans laquelle ils sont, hors menu.
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 13:35
Si c'est ça une petite méthode javascript qui rafraichit la source de l'iFrame et hop, c'est réglé !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 14:24
merci pour vos réponses voila le site
http://virtual-it.fr/
j'ai inclus aussi un module de détection de la langue du navigateur mais la encore ça actualise pas le menu je vous laisse voir de vous même merci
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 14:32
Tu as un problème de persistance.

En effet, je clique sur "EN" le menu reste en français ; si ensuite je clique sur ES alors le menu se met en anglais, et ainsi de suite. En fait la langue de ton menu a toujours un temps de retard sur le reste du site.
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
Modifié par Unavailable le 8/11/2011 à 14:38
oui par contre quant tu fait un F5 ça passe
le soucis auquel j'ai droit juste après c'est que le bouton home me réinitialise la langue comment faire pour fixer tout ça?
j'ai fait un système de switch pour la traduction du site c'est peut être pour ça que ça ne traduit pas le menu qui est dans un autre include (il a un switch lui aussi par contre)
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 14:44
oui je te post le code de l'index (avec le switch et sans la partie texte vue que je ne pense pas que celui ci soit en rapport avec le probleme)
<?= $this->render('../includes/header.phtml'); ?>
<?= $this->render('../includes/bandeau.phtml'); ?>
<?= $this->render('../includes/menu.phtml'); ?>



<?php
$langue = new Zend_Session_Namespace('langue');
switch ($langue->code)
{
case 'fr':
include ('FR-fr/index.phtml');
break;
case 'en' :
include ('EN-en/index.phtml');
break;
case 'es':
include ('ES-es/index.phtml');
break;
default:
include ('FR-fr/index.phtml');
break;
}
?>

<div class="sep"></div>



<?= $this->render('../includes/foot.phtml'); ?>
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 14:47
Alors le menu est inséré avant le switch sur la langue, est-ce normal ?
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 14:53
en l'insérant avant je garde le menu en haut
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 15:25
j'inclus donc le menus dans l'include du switch?
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 15:31
Non pas encore, commence par m'expliquer comme tu gères la langue du menu !
Ou plutôt à quel niveau tu la gères ?!
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 16:03
y a un switch a l'intérieur
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 16:05
Peux-tu me le montrer ?
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 16:13
oups non pas un switch je le gère avec un fichier lang.xml je t'en link un bout:
<tu tuid="index.page">
<tuv xml:lang="fr"><seg>racine</seg></tuv>
<tuv xml:lang="en"><seg>root</seg></tuv>
<tuv xml:lang="es"><seg>root</seg></tuv>
</tu>
<tu tuid="index.index.page">
<tuv xml:lang="fr"><seg>accueil</seg></tuv>
<tuv xml:lang="en"><seg>home</seg></tuv>
<tuv xml:lang="es"><seg>inicio </seg></tuv>
</tu>
<tu tuid="index.mention.page">
<tuv xml:lang="fr"><seg>mention légale</seg></tuv>
<tuv xml:lang="en"><seg>mention légale</seg></tuv>
<tuv xml:lang="es"><seg>Mención Legal</seg></tuv>
</tu>
et dans le phtml je les rappelle en
$this->translateC($value['controller'].'.'.$value['action'].'.page')
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
8 nov. 2011 à 16:17
Alors il me faudrait plutôt ce qu'il y a avant cette ligne, dans le phtml
0
Unavailable Messages postés 43 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 20 février 2013 1
8 nov. 2011 à 16:40
je suis passé en sous domaine a l'instant du coup le soucis est réglé merci beaucoup c'est très cool de ta part de m'avoir aidé
0