Partage
  • Partager sur Facebook
  • Partager sur Twitter

Site multilangue avec JSON

    23 juin 2018 à 19:16:16

    Bonjour, je souhaite vous poser une question concernant la gestion de plusieurs langues sur un site web : qu'est ce qui est à la mode en ce moment pour la gestion des langues sur un site ?

    Mon site est un projet dans le cadre de mon cursus en master à la fac. J'ai récupéré un code qui existe depuis des années et refilé de groupe en groupe. Je précise également qu'aucun groupe n'a eu de formation spécifique en javascript, html et css. 

    L'obligation, c'est de bosser côté client avec javascript.

    Je ne sais pas si ça se fait mais toutes les pages html sont doublées (une version française et une version anglaise). Je trouve ça insupportable personnellement et je souhaite changer ça.

    J'ai découvert lors de ce projet le format JSON et je l'utilise beaucoup depuis. C'est peut être la solution à mon problème. En réalité j'ai déjà essayé et j'ai crée des fonctions javascript pour m'occuper du changement de langue... Je voulais savoir si c'était un choix judicieux, voilà comment ça fonctionne :

    - j'ai des fichiers fr.json, en.json et gestion_langues.js

    - mes fonctions javascript analysent la langue du navigateur par défaut et si l'utilisateur choisi sa langue par un clique sur l'image d'un drapeau, je crée un sessionstorage "langue" qui va conserver la langue durant la navigation et vient chercher le fichier json en fonction du choix.

    Mon petit soucis, les balises de texte peuvent être des i, des u, des center,... Du coup je suis obligé de tout transformer en des balises plus classiques type span, div ou p pour pouvoir utiliser mon document.getElementById("").innerHTML convenablement.

    C'est un projet en physique donc je dois m'occuper moi même de la traduction.

    Et dernier point, j'ai un petit soucis avec json. Disons que ça n’empêche pas le navigateur d'afficher ce que je veux mais j'ai un message d’erreur qui apparaît à chaque fois :

    Erreur d’analyse XML : mal formé Emplacement : file:///D:/Users/utilisateur/public_html/js/Langues/fr.json Numéro de ligne 1, Colonne 1 :

    D'où ça peut venir ? J'ai essayé de faire le test sur https://jsonlint.com/ et je n'ai eu aucun soucis....

    { "page_1":
        {
          "titre": "titre",
          "partie":"blabla"
        },
      "page_2":
          {
            "titre": "titre",
            "partie":"blabla"
          }
    }
    function o_recupereJson(){
    	var req = new XMLHttpRequest();
    	var texte;
    	req.open("GET", s_testLangue(), false);
    	req.onreadystatechange = function(){
    		if (req.readyState === 4 && req.status === 200)
        {
    			texte = JSON.parse(req.responseText);
        }
    	};
    	req.send();
    	return texte;
    }




    • Partager sur Facebook
    • Partager sur Twitter
      23 juin 2018 à 19:29:08

      Erreur d’analyse XML : mal formé Emplacement : file:///D:/Users/utilisateur/public_html/js/Langues/fr.json Numéro de ligne 1, Colonne 1 :

      Avant la ligne req.send

      req.overrideMimeType('application/json');

      -
      Edité par DevMercenaire 23 juin 2018 à 19:36:44

      • Partager sur Facebook
      • Partager sur Twitter
        23 juin 2018 à 19:41:06

        Génial ça marche merci :D ça fait tout de suite plus propre ^^

        Concernant ma méthode, elle parait bonne (propre) ?

        • Partager sur Facebook
        • Partager sur Twitter
          23 juin 2018 à 19:53:44

          Matth37 a écrit:

          Génial ça marche merci :D ça fait tout de suite plus propre ^^

          Concernant ma méthode, elle parait bonne (propre) ?


          Oui rien à signaler, tu peux ajouter une gestion d'erreur.

          Elle n'est pas asynchrone, est ce que c'est voulu ?

          • Partager sur Facebook
          • Partager sur Twitter
            23 juin 2018 à 20:03:00

            à vrai dire, en version synchrone ça ne fonctionne pas. Je pense que ça vient du code google analytics qui lui est asynchrone :

            (function(i, s, o, g, r, a, m) {
                        i['GoogleAnalyticsObject'] = r;
                        i[r] = i[r] || function() {
                            (i[r].q = i[r].q || []).push(arguments)
                        }, i[r].l = 1 * new Date();
                        a = s.createElement(o),
                            m = s.getElementsByTagName(o)[0];
                        a.async = 1;
                        a.src = g;
                        m.parentNode.insertBefore(a, m)
                    })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
            
                    ga('create', 'UA-98631213-3', 'auto');
                    ga('send', 'pageview');

            Les encadrants aiment les petits plus qu'offre google ^^

            • Partager sur Facebook
            • Partager sur Twitter

            Site multilangue avec JSON

            × 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