Partage
  • Partager sur Facebook
  • Partager sur Twitter

Site Multilingue

Comment Faire?

    24 juin 2006 à 12:47:33

    Bonjours a tous,

    Je suis en train de faire un site en Html + Css, il y aura peut être quelques ajouts de Php.

    Mon problème est le suivant, j'ai déjà toutes les traduction en deux langues, et je veux que lorsque l'on clique sur Anglais, tout le site se traduise dans la langue Choisie.

    Donc la méthoque qui marcherais et que j'ai pensé et de faire toutes les pages en double. :-°

    Mais je pense qu'il y a surement une meilleure méthode. :p

    Voila, merci d'avance :D

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2006 à 12:49:09

      La meilleur méthode c'est le php!
      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2006 à 13:13:19


        if ($_GET['langue']=='francais')
        {
        //Code de ta page en français
        }

        if ($_GET['langue']=='anglais')
        {
        //Code de ta page en anglais
        }

        //Avec deux lien :
        <a href="masuperpage.php?langue=francais">traduction en français</a>
        <a href="masuperpage.php?langue=anglais">traduction en anglais</a>

        ça m'a l'air le plus simple. Sinon tu peu aussi utiliser des templates (voir dans les tutos) différent suivant la langue, ou encore 2 feuilles comme tu le proposais. Je ne vois rien de mieux.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          24 juin 2006 à 13:34:25

          Et pourquoi pas mettre tout ton texte dans des variables et comme ça, tu pourrais faire la traduction de ton site totu en gardant les même pages ;)

          Fichier de configuration français
          <?php
          $_LANG['bienvenue'] = 'Bienvenue';
          ?>


          Fichier de configuration anglais
          <?php
          $_LANG['bienvenue'] = 'Welcome';
          ?>


          Page central
          <?php
          if (isset ($_GET['lang']))
          {
          include($_GET['lang'].'.php');
          }
          else
          {
          include('config_french.php');
          }
          echo $_LANG['bienvenue'];
          ?>


          Code PHP codé à l'arrache :D
          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2006 à 18:03:00

            Merci des vos reponses mais j'avoue ne pas trop comprendre la méthode :-°

            Pouriez vous m'expliquer un peu plus ;)

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              24 juin 2006 à 18:48:57

              Connais-tu le php? Si tu ne connais pas, il vrai que ce que l'on te dit n'est pas évident à comprendre.
              • Partager sur Facebook
              • Partager sur Twitter
                24 juin 2006 à 21:51:42

                Oui je connais pas mal de chose en php, mais j'avoue que je ne me souviens plus de toute les Variables du Cours de mateo , surtout celle qui communique avec la base de donné car je n'ai pas eu l'occassion de les mettres en pratique :p

                Si vous m'expliquez un peu comment utilisez le code et l'appliquez je pourrais le comprendre sans problème :lol:
                • Partager sur Facebook
                • Partager sur Twitter
                  25 juin 2006 à 14:30:52

                  Il utilise des array.
                  Personnellement, je ferais plutôt comme ça (en reprenant l'excellente idée des array) :
                  <?php
                  $bienvenue['francais']='bienvenue';
                  $bienvenue['anglais']='welcome'; /*Ce n'est qu'un exemple, dans la pratique, tu rentrerais dans chaque variable une page (x)html complète*/

                  /*On obtient la langue via un formulaire, ou un cookie, ou une session ou une bdd. On l'appelle $langue*/

                  echo $bienvenue['$langue']; //on affiche le résultat.
                  ?>


                  cette méthode m'a l'air aussi élégante.
                  Ensuite, il faudrait réfléchir ; doit-on écrire le contenu des variables :
                  • dans chaque page ?
                  • dans une page par langue (qu'on inclurait)? [EDIT : absurde en effet]
                  • Dans une seule page qu'on inclurait dans le site entier ?


                  Qu'en pensent les pros de l'optimisation ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    25 juin 2006 à 14:36:00

                    Si tu en viens qu'a inclure tes pages de langue, aussi bien de virer $bienvenu['$langue'] et de mettre français/anglais tout dépendant du fichier inclut :D

                    Sinon, n'oublie pas ta concaténation pour le echo parce que là ... (Dans ce cas si, on ne mets pas de guillemets parce que ce n'est qu'une variable) :p
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 juin 2006 à 14:39:02

                      oups, j'avais pas fait gaffe aux guillemets.
                      Tu as raison, ma solution n'est intéressante que si on veut tout mettre dans un même fichier. je vais rectifier.

                      Autre possibilité, un array à 2 dimensions (c'est possible en C, donc sûrement aussi en php) :
                      $contenu[emplacement sur le site][langue]

                      ce qui donnerait par exemple :


                      <?php
                      $contenu['titre']['francais']='Mon Grand Site';
                      $contenu['titre']['anglais']='My Big site';
                      $contenu['contenu']['francais']='Mon site parle de ...';
                      $contenu['contenu']['francais']='My site speak about ...';
                      ?>


                      Non ? (ps : faite pas gaffe à la traduction, j'ai eu la flemme d'ouvrir mon dico franco-anglais. :-° )
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 juin 2006 à 18:20:50

                        Ya rien du plus simple, le visiteur n'aura même pas à choisir la langue !!!
                        C'est l'ordi qui s'en occupera en regardant la langue de système !!!

                        Bon, alors pour la langue française, tu creer un index en français dont l'extension est .fr , donc index.html.fr et pour l'anglais, tu creer un index dont l'extension est .en, donc index.html.en . Voila
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          25 juin 2006 à 18:22:57

                          Citation : Webmaster de MSN - Portail

                          Ya rien du plus simple, le visiteur n'aura même pas à choisir la langue !!!
                          C'est l'ordi qui s'en occupera en regardant la langue de système !!!

                          Bon, alors pour la langue française, tu creer un index en français dont l'extension est .fr , donc index.html.fr et pour l'anglais, tu creer un index dont l'extension est .en, donc index.html.en . Voila



                          Ça marche réellement ? PArce que chez moi, ça marche pas (je suis en local :D )
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 juin 2006 à 18:26:41

                            Ouais enfin, dans ce cas la je fait toute les pages en double :D

                            Merci de vos reponses, je vais essayez de faire quelque chose qui marche.

                            Je pense que je vais faire toutes les pages en doubles car je comprend pas trop la methode php :p


                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              25 juin 2006 à 18:29:46

                              En fait, ce qu'il faut que tu fasse, c'est un fichier contenant les textes en français placé dans des variables. Ensuite, tu fais un autre fichier contenant les textes anglais toujours placé dans des variable. Mais attention, le nom des variable doivent être pareil dans les deux fichier. Après, dans tes pages (du genre index.php), tu inclut le bon fichier. Si par exemple je veux consulter ton site en anglais, il faudra que tu inclut le fichier contenant les texte anglais. :p
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 juin 2006 à 19:37:25

                                Evitez tout ceci... c'est lourd (variables définies deux fois, dont une ne servira jamais, ce qui s'aggrave lorsque vous utilisez encore plus de langues) et très chiant à gérer.

                                Tout simplement, faites un require($langue.'.php'), ($langue pour la variable de langue, cf. plus bas), et dans le francais.php, utilisez des define pour les constantes.

                                francais.php
                                define ('BIEVENUE', 'Bienvenue',TRUE);


                                anglais.php
                                define ('BIEVENUE', 'Welcome',TRUE);


                                Un simple echo BIENVENUE donnera Welcome ou Bienvenue, au choix.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  25 juin 2006 à 19:40:03

                                  Citation : atlyric

                                  Evitez tout ceci... c'est lourd (variables définies deux fois, dont une ne servira jamais, ce qui s'aggrave lorsque vous utilisez encore plus de langues) et très chiant à gérer.

                                  Tout simplement, faites un require($langue.'.php'), ($langue pour la variable de langue, cf. plus bas), et dans le francais.php, utilisez des define pour les constantes.



                                  heu :euh: ... J'ai bel et bien dit que ça prendrais un fichier pour mettre le texte français et un autre fichier pour le texte anglais donc ta méthode revient à peu près au même que la mienne ;) La seule différence c'est que toi tu utilise des constance et moi non :p
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 juin 2006 à 19:44:37

                                    Ah, j'avais lu la réponse de Mel0r, je l'ai assimilée à la tienne.
                                    Remarque, c'est toujours valable, il vaut mieux ici utiliser des constantes.

                                    Sinon, vous pouvez toujours utiliser les superglobales, notamment la langue préférée du navigateur, ou chercher l'origine de l'ip. M'enfin, laisse le choix, l'humain est meilleur juge que la configuration.
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Site Multilingue

                                    × 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