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

Langage PHP Discussion :

Site en 3 langues


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut Site en 3 langues
    Bonjour à tous,

    Je débute la création d'un nouveau site, et je souhaiterais qu'il soit disponible en 3 langues.
    Faut-il passer la variable langue à chaque page ou creer 3 repertoire pour chaque langue? Dans ce deuxième cas, ou mettre la page index.php?
    Je sais qu'il est également possible de détecter la langue du navigateur mais si l'utilisateur souhaite changer quand meme...
    Vous l'aurez compris, je ne vois pas trop comment articuler les truc.

    Deux petites précisions:

    je ne souhaite pas faire une page avec les 3 langues qui redirige après avoir choisi, en tant qu'utilisateur ca m'ennuie alors je ne vais pas l'imposer aux autres...
    Je ne souhaite pas non plus un traducteur automatique, j'écrirai les contenus dans les trois langues moi même.

    Pour ne pas parler dans le vide, voici la partie de mon code qui pourrait vous aider:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
    if ((isset($_GET["page"])) AND ereg("[1-5]", $_GET["page"]))
    $page = $_GET["page"];
    else $page = 1;
     
    $numero = rand(1, 15);
    ?>
     
    <body style="background-image: url('image/fond<?php echo $page; ?>.png')">
     
    <div class="logo">
    <img src="image/francais.png" alt="Français">
    <img src="image/nederlands.png" alt="Nederlands">
    <img src="image/english.png" alt="English">
    </div>
     
    <div class="menu">
    <a href="?page=1"><img src="image/bouton1.gif" /></a>
    <a href="?page=2"><img src="image/bouton2.gif" /></a>
    <a href="?page=3"><img src="image/bouton3.gif" /></a>
    </div>
     
    <div class="bandeau"><img src="image/bandeau<?php echo $numero; ?>.jpg"></div>
     
    <div class="contenu">
    <?php
    switch ($page) {
    case 1 : include("ok1.html"); break;
    case 2 : include("ok2.html"); break;
    case 3 : include("ok3.html"); break;
    }
    ?>
    </div>
     
    </body>
    Voila, j'espere avoir explique clairement mon probleme.

    Help

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Pour te répondre, ce n'est pas forcément la technique
    qui compte, mais le savoir-faire.

    Si tu souhaite en rester là,
    Oui ta question se résoud a faire trois site web, ayant le même
    look, les mêmes pages mais dans trois langues différentes.
    C 'est facile a faire.

    Si tu fais un site multilingue, ce n'est pas pour un petit site
    de 2 ou 3 pages Alors ça mérite d' aller plus loin

    Il suffit de découper chaque page PHP en morceaux
    chaque page fera donc des includes pour

    le haut de page et son menu
    la page elle même
    le bas de page

    Tu as intéret a garder des drapeaux pour changer de lange
    comme on veut quand on veut ...
    Ainsi dans chaque page on peut la lire dans la langue de son choix !

    Par ailleur je te conseille de creer un session pour connaitre la langue en cour lors du changement de page

    ainsi tu aurais dans TOUTES tes pages
    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
     
    <?php
    session_start();
    if (!isset($_SESSION['langue'])) {$_SESSION['langue']="fr";$langue="fr";}
         else {$langue=$_SESSION['langue'];}
     
    $I="";
    if (isset($_GET["lalangue"])) $I=htmlentities(trim($_GET["lalangue"]));
    if( $I=="fr" || $I=="en" || $I=="sp" ) {$_SESSION['langue']=$I;$langue=$I;}
     
     
     
    include("commun/menu_".$langue.".php");
    //ETC...............
    ?>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup, cela fonctionne parfaitement.
    J'ai ajouté une ligne pour tester la langue du navigateur si la variable session n'existais pas.

    Petite question, pourquoi mettre cette ligne au début ?
    Dois-je écrire ceci pour la page à afficher ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $page="";
    if (isset($_GET["page"])) $page=htmlentities(trim($_GET["page"]));
    if ($page=="1" OR $page=="2" OR $page=="3" OR $page=="4" OR $page=="5") {$page=$_GET["page"];}
    else {$page="1";}

    Alors pour les trois langues, en belgique il y a deja 3 langues nationales (fr, nl, de) sans compter l'anglais! Donc le site n'est pas gros mais mon pays est compliqué, mdr.

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    La variable I doit exister pour éviter une erreur
    regardes le seul cas ou $I est créé est si le 1er if s 'execute

    s'il ne s'exécute pas alors le deuxiéme if créerait une erreur ...
    on peut utiliser isset a nouveau mais c' est plus simple comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    if (isset($_GET["lalangue"])) $I=htmlentities(trim($_GET["lalangue"]));
     
     
    if( $I=="fr" || $I=="en" || $I=="sp" ) {$_SESSION['langue']=$I;$langue=$I;}

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelapinrusse Voir le message
    Merci beaucoup,Dois-je écrire ceci pour la page à afficher ?
    N' utilises pas OR mais plus-tôt ||
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $page="";
    if (isset($_GET["page"])) $page=htmlentities(trim($_GET["page"]));
    if ($page=="1" || $page=="2" || $page=="3" || $page=="4" || $page=="5")   
       {$cok=99;}  else {$page="1";}
    Ou bien (plus propre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $page="";
    if (isset($_GET["page"])) $page=htmlentities(trim($_GET["page"]));
    if ($page!="1" && $page!="2" && $page!="3" && $page!="4" && $page!="5")   
        {$page="1";}

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

Discussions similaires

  1. Site web multi langues
    Par piotrr dans le forum Langage
    Réponses: 8
    Dernier message: 10/01/2008, 16h25
  2. Un site en plusieur langue (Besoin de faire en russe)
    Par benbax dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 04/01/2008, 16h30
  3. [Cookies] Gérer mon site en 2 langues
    Par ludo007 dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2007, 17h39
  4. [Tableaux] site en deux langues
    Par clovis200 dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2006, 21h08
  5. site en deux langues
    Par clovis200 dans le forum Langage
    Réponses: 1
    Dernier message: 01/06/2006, 23h45

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