IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Gestion multilangue propre


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut Gestion multilangue propre
    Bonsoir,

    je cherche à faire une gestion multilangue 100% client (pas de langage serveur).
    Mon idée initiale était de faire N fichiers pour N langues, chacun des fichiers ayant la structure suivante :

    Code html+js : 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
     
    <script>
    var langue='fr'; //par exemple
    switch(langue) {
    case 'fr' :
    var data1="texte en français";
    etc.
    break;
    case 'en' :
    var data1="text in english";
    etc.
    break;
    etc.
    }
    </script>
    <!-- code identique dans les fichiers de chaque langue -->
    <script>document.write(data1);</script>
    etc.
    Mais plusieurs bémols. D'abord, le document.write est à éviter. Mais comment faire alors ?

    D'autre part, ma solution ne fonctionne pas avec les balises img :
    Code html+js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="<script>document.write(src_image);</script>" />
    Donc comment faire pour que ça fonctionne aussi pour les images ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    OK, ce -1 montre que ma question est mal vue, cependant, avant de la poser, j'ai fait une recherche, et si je la pose, c'est que je n'ai pas trouvé...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    En modifiant le DOM, ça ne marche pas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("identifiant").innerHTML=data1;

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je te remercie de ta réponse qui me semble intéressante. Par contre, j'ai fait un petit essai qui donne juste une page blanche...

    Code html+js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var langue='en';
    if (langue=='en')
    	document.getElementById("identifiant").innerHTML='testen';
    else
    	document.getElementById("identifiant").innerHTML='testfr';
     
     
    </script>
    <span id="identifiant"></span>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Chez moi, ça marche...

    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
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <span id="identifiant"></span>
        <script>
          var langue='en';
          if (langue=='en')
            document.getElementById("identifiant").innerHTML='testen';
          else
            document.getElementById("identifiant").innerHTML='testfr';
        </script>
      </body>
    </html>

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Voilà qui est bien gênant : j'ai essayé avec 3 navigateurs (IE7, FF et Chrome) et comme rien avec chacun, j'ai essayé sur un second PC (j'ai le perso et le professionnel) et ça marche bien sur le perso. Mais cela concerne le boulot, donc il faudrait un code qui marche sur le PC pro. As-tu une idée d'un autre code que je pourrais tester ?

    Pour plus de détail, sur le PC du boulot, le code suivant :
    Code html+js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script>
    document.getElementById("identifiant").innerHTML="testen";
    var langue='en';
    if (langue=='en')
    	document.getElementById("identifiant").innerHTML="testen";
    else
    	document.getElementById("identifiant").innerHTML="testfr";
     
     
    </script>
    <div id="identifiant">&nbsp;</div>
    <script>alert("innerHTML="+document.getElementById("identifiant").innerHTML);</script>
    donne l'affichage innerHTML=&nbsp; (au cas, j'ai fait l'essai avec une DIV à la place du SPAN).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    je crois qu'il te faut avant tout bien comprendre comment marche javascript
    la notion d'événement de DOM etc.

    car tu code me laisse pensé que tu ne maitrise pas les bases
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script> var langue='en';
    if (langue=='en')
            document.getElementById("identifiant").innerHTML='testen';
    else
            document.getElementById("identifiant").innerHTML='testfr';
     
     
    </script>
    <span id="identifiant"></span>
    je lis simplement ce que tu écris

    mettre la valeur 'en' dans la variable langue
    si la variable langue vaut 'en'
    chercher dans le document l'élément dont l'identifiant est 'identifiant"
    insérer le code html 'testen' dans cet élément
    sinon
    chercher dans le document l'élément dont l'identifiant est 'identifiant"
    insérer le code html 'testfr' dans cet élément

    créer dans la page l'élément de type spam dont l'identifiant est 'identifiant'

    en clair tu cherche un élément avant qui ne soit créé.

    Je ne sais pas pourquoi tu cherche à faire ce système mais c'est particulièrement couteux.
    tu vas crée des pages HTML vides donc difficiles à lire et à maintenir
    ces pages seront chargées par le client interprété et instanciées (le navigateur va créer tous les élément de la page)
    ensuite le javascript va entrer en action est quasiment tout refaire.

    je te conseille si tu a un serveur apache de regarder https://www.w3.org/International/que...pache-lang-neg
    cela consiste à faire autant de page html de de langue
    index.fr.html
    index.de.html
    index.en.html
    etc. lorsque le client demande index.html le serveur lui envoi la version correspondant à la langue de sont navigateur.

    Je te conseille de réserver la traduction côté client que si c'est javascript qui construit le DOM en clair le HTML que tu envoi au navigateur est vide et c'est JS qui crée des éléments.
    dans ce cas la tu fais un fichier lang.fr.js lang.en.js etc qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lang = {
      'title': 'mytitle',
      'form' : {
        'cancel':'cancel',
        'ok':'ok'
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lang = {
      'title': 'montitre',
      'form' : {
        'cancel':'annuler',
        'ok':'valider'
      }
    }
    ainsi dans ton js lorsque tu veux utiliser le texte du titre tu as la variable lang.title pour ton formulaire tu as lang.form.ok et lang.form.cancel
    il te suffit de charger le bon fichier.

    au vu de ce que tu as écrit le pense que cela est beaucoup trop compliqué pour toi. c'est pourquoi je te conseille de faire ça côté serveur.

    Mais ne renonce pas à comprendre comment JS fonctionne et à expérimenter. n'hésite à suivre les tutos du site.

    je ne sais pas ce que tu a essayé sur plusieurs navigateur mais le code de eleydet doit fonctionner partout
    A+JYT

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Effectivement, mon manque d'expérience avec le js m'a fait oublier de placer la manipulation du DOM après sa création...J'avais pas vu que eleydet avait inversé cela de mon code avant de dire "ça marche chez moi". Si je le fais aussi, ça marche

    Sinon, dans le cadre de mon application, il faut que tout le code soit localisé dans le body d'un seul fichier, et tout côté client, donc je vais plutôt m'inspirer de mon exemple...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je décoche "résolu" car je n'arrive pas à appliquer la gestion multilangue aux images :
    Code html+js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       <img id="image" src="" />
        <script>
          var langue='en';
          if (langue=='en') {
    		document.getElementById("image").src="images/diagramen.jpg";
    		}
          else {
    		document.getElementById("image").src="images/diagramfr.jpg";
    		}
        </script>

    si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="image" src="images/diagramen.jpg" />
    l'image s'affiche.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #10
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Je viens de tester ce code (avec deux images) à l'instant :
    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
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <img id="image" src="">
        <script>
          var langue='en';
          if (langue=='en') {
    	document.getElementById("image").src="image2.jpg";
          }
          else {
    	document.getElementById("image").src="image1.jpg";
          }
        </script>
      </body>
    </html>
    Chez moi, il fonctionne...

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    C'est visiblement un problème de chemin et de nom de fichier...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  12. #12
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    En retard, je vois que la discussion est close, et pas pour les débutants en JS ! (désolé )

    Je viens de tester i18next : http://i18next.com/.

    Je le trouve utilisable dans une solution client à condition d'en faire un usage modéré (quelques lignes à traduire). Pour la traduction de page entière, il faut toujours utiliser une solution serveur.

    Voici le code de ma page de test (j'utilise ES2015 et le fichier dvjhUtilities, voir mon blog) :

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
      <meta name="author" content="Daniel Hagnoul">
      <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.0.1.css">
      <title>Test</title>
      <style>
        footer {
          margin-top: 2.4rem;
        }
      </style>
      <script src="https://code.jquery.com/qunit/qunit-2.0.1.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/i18next/3.4.1/i18next.min.js"></script>
      <script src="http://danielhagnoul.developpez.com/lib/dvjh/dvjhUtilities-1.3.1.js"></script>
      <script>
        'use strict';
     
        let
          domLoadedHandler = ev => {
            klog( `DOM ready   : ${ new kDvjhDate() }` );
            
            const
              kSalut = k$( "[name='salut']" ),
              kAction = k$( "[name='action']" );
              
            { // bloc i18next
              i18next.init(
                {
                  "lng" : navigator.language, // on applique la langue du navigateur par défaut
                  "resources" : {
                    "en" : {
                      "translation" : {
                        "hello" : "Hello world",
                        "button" : "Go"
                      }
                    },
                    "fr" : {
                      "translation" : {
                        "hello" : "Bonjour",
                        "button" : "Action"
                      }
                    },
                    "ar" : {
                      "translation" : {
                        "hello" : "صباح الخير",
                        "button" : "عمل"
                      }
                    }
                  }
                },
                ( er, t ) => {
                  if ( er ){
                    kerror( er );
                  } else {
                   kSalut.textContent = i18next.t( "hello" );              
                   kAction.textContent = i18next.t( "button" );              
                  }
                }
              );
              
              /*
               * On peut changer de langue de différentes manières,
               * voir la documentation de i18next : "http://i18next.com/".
               *
               * Ici, on prend la valeur de l'attribut lang de l'élément du DOM
               */
              setTimeout( () => {
                
                kSalut.textContent = i18next.t( "hello", { "lng" : kSalut.getAttribute( "lang" ) } );
                kAction.textContent = i18next.t( "button", { "lng" : kAction.getAttribute( "lang" ) } );
                
              }, 5000 ); // 5s avant la modification
              
            }
            
          },
          windowLoadHandler = ev => {
            klog( `Window load : ${ new kDvjhDate() }` );
            
            kIDUnique();
        };
          
        kAddListener( [
          [ document, "DOMContentLoaded", domLoadedHandler ],
          [ window, "load", windowLoadHandler ]
        ] );    
      </script>
    </head>
    <body>
      <main>
        <output name="salut" lang="en"></output>
        <button name="action" lang="ar" dir="rtl"></button>
      </main>
      <footer>
        <section class="qunit">
          <div id="qunit"></div>
          <div id="qunit-fixture"></div>
        </section>
      </footer>
    </body>
    </html>

    Voici le code d'origine pour l'arabe, malheureusement transformé dans le code ci-dessus.
                   "ar" : {
                      "translation" : {
                        "hello" : "صباح الخير",
                        "button" : "عمل"
                      }
     

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je viens de décocher "résolu" car je rencontre un nouveau problème lié au même sujet : si le code document.getElementById("identifiant").innerHTML='xxx'; fonctionne bien si je l'utilise en local, il n'est pas pris en compte par l'outil que j'utilise pour intégrer mon code en plusieurs langues. Cependant, cet outil accepte du js simple (du style alert ou document.write). Existerait-il donc un autre code pour traduire en plusieurs langues ?

    EDIT : je précise que dans mon cas, une solution serveur est impossible (je n'y ai pas accès). Pensez-vous que ce soit possible ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    J'ai repris le code depuis presque 0 et le bug ne se reproduit pas donc je l'avais introduit !
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #15
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Généralement, quand on arrive à ce genre de besoins (internationalisaion, labels dynamiques, accords pluriel/de genre etc...), c'est qu'il est temps d'utiliser une solution de templating (côté serveur ou côté client selon le besoin). J'en profite pour mettre un lien vers mon article sur le templating client: http://sylvainpv.developpez.com/tuto...lating-client/

    i18next est une solution ultra-complète, peut-être un peu trop lourde pour le début. Je recommande de tester une petite lib de micro templating basique pour se faire les armes, puis quand tu arriveras aux points délicats (comme la gestion des dates ou les accords pluriel entre les langues), là il faudra chercher quelque-chose de plus sophistiqué.
    One Web to rule them all

  16. #16
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    je suis entièrement d'accord.
    utiliser un templating permet d'assurer la traduction mais aussi d'adapter l'interface à la langue.
    par exemple lorsque l'écriture est de droit à gauche il est mieux d'avoir les onglet dans le même sens.

    A+JYT

  17. #17
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Mon niveau assez faible nécessite qu'on me prenne par la main, plus que ne le fait ce guide. Donc soit, tu me donnes un exemple plus précis de l'application d'une des méthodes de templating, soit j'en reste au innerHTML (l'ancienne méthode)...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  18. #18
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Si écrire un guide complet ne suffit pas, je ne vois pas quoi faire de plus. L'article comporte tous les liens nécessaires vers les sites officiels des bibliothèques de templating avec leur documentation et guides de démarrage. Il faut se donner les moyens d'appendre
    One Web to rule them all

  19. #19
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bon OK, je regarderai demain car il fera plus clair (jour et idées...)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  20. #20
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 363
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Pour démarrer, j'ai choisi l'une des méthodes de templating. Comme celle de John Resig est appelée "petit bijou", j'ai regardé celle-là. Mais si je vais sur le lien fourni : http://ejohn.org/blog/javascript-micro-templating/, je n'y trouve pas, comme tu le dis, de guide de démarrage...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion multilangue ?
    Par cvneo dans le forum Requêtes
    Réponses: 10
    Dernier message: 17/07/2016, 23h56
  2. [URL rewriting] Gestion multilangue via URL
    Par bannik dans le forum Apache
    Réponses: 2
    Dernier message: 12/11/2012, 17h37
  3. Réponses: 20
    Dernier message: 30/08/2012, 11h35
  4. Réponses: 2
    Dernier message: 06/04/2006, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo