Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changement de langue avec gettext

    22 juillet 2017 à 19:02:41

    Bonjour,

    J'utilise la librairie gettext php afin de gérer les traductions de mon portfolio (anglais et français). J'ai un script javascript qui au clic sur un lien du menu modifie l'url de ma page afin de changer la valeur de $_GET['lang'] et me permettre de changer la langue de mon site. Jusque là tout marche. Mon problème c'est que je veut également changer une image et un pdf afin de donner leur version anglaise, mais étant donné que j'utilise window.location, je pense que la suite de mon script passe à la trappe... Vu qu'une image vaut mieux qu'un long discours :

    <li><a class="white-text" id="fr">FR</a></li>
    <li><a class="white-text" id="en">EN</a></li>

    Au clic là dessus, je charge mon script :

    var citation = document.getElementById("citation"),
    	cv = document.getElementById("cv"),
    	fr = document.getElementById("fr"),
    	en = document.getElementById("en"),
    	adresse = window.location;
    
    function francais() {
    	'use strict';
    	window.location = adresse + '?lang=fr_FR.utf8';
    	citation.src = "medias/images/site/citation_fr.png";
    	cv.href = "medias/pdf/CV_Francais.pdf";
    }
    
    function anglais() {
    	'use strict';
    	window.location = adresse + '?lang=en_US.utf8';
    	citation.src = "medias/images/site/citation_en.png";
    	cv.href = "medias/pdf/CV_Anglais.pdf";
    }
    fr.addEventListener("click", francais);
    en.addEventListener("click", anglais);


    Ma page change bien et mes textes passes bien de l'anglais au français et vice-versa mais impossible de faire changer les attributs src et href, si je commente les lignes avec window.location là pas de problème, l'image et le pdf changent correctement. J'en déduis donc que le problème survient lors du chargement de la page. 

    Ma question est donc la suivante : y a t'il un moyen de gérer ce changement de langue ET les changement de l'image et du pdf ? Si oui comment ? Je pensais utiliser ajax pour éviter un rechargement complet de la page, mais je ne suis pas familier avec cette technologie donc je ne vois pas trop comment faire (enfin si, apprendre à l'utiliser :p)

    Merci d'avance pour vos réponses ^^

    Edit : Bon, plutôt que de vouloir utiliser Ajax que je ne maîtrise pas, je me suis plutôt penché sur ce que je connais bien, j'ai donc crée une fonction JS que j'appelle au chargement de la page et qui vérifie la langue actuellement utilisée et change l'image et le pdf en fonction de celle ci. En pratique ça donne ça :

    <script>
    		var citation = document.getElementById("citation"),
    			cv = document.getElementById("cv");
    
    		function verifLangue() {
    			'use strict';
    			var url = window.location.href;
    			if (url === "http://localhost/parallax-template/?lang=en_US.utf8") {
    				citation.src = "medias/images/site/citation_en.png";
    				cv.href = "medias/pdf/CV_Anglais.pdf";
    			} else {
    				citation.src = "medias/images/site/citation_fr.png";
    				cv.href = "medias/pdf/CV_Francais.pdf";
    			}
    		}
    
    </script>
    </head>
    
    <body onload="verifLangue()">

    Voilà, ce n'est peut être pas la meilleur méthode ni la plus rapide, mais ça à le mérite de me dépanner le temps que j'apprenne à utiliser Ajax ^^

    Merci à ceux qui ont réfléchit à mon problème :)

    -
    Edité par eressea667 24 juillet 2017 à 10:02:41

    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2017 à 18:39:34

      Quand tu fais window.location = adresse + '?lang=en_US.utf8, tu recharges la page et donc ça n'execute pas la suite.

      tu devrais en php, suivant $_GET["lang"], changer les urls et href. Quelque chose du genre:

      <?php if( isset( $_GET["lang"]) && false === strpos( $_GET["lang"], "fr") ):?>
      
      <img src="medias/images/site/citation_en.png" />
      
      <?php else: ?>
      
      <img src="medias/images/site/citation_fr.png" />
      
      <?php endif; ?>



      • Partager sur Facebook
      • Partager sur Twitter

      Changement de langue avec gettext

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown