Site bilingue en PHP

Fermé
Hervé - 17 déc. 2007 à 22:55
Rente Messages postés 129 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 6 juin 2011 - 27 oct. 2008 à 09:32
Bonjour,
Je désirerais créer un site bilingue français / anglais.
Ce site se composera essentiellement de formulaires (nom, prénom, date de naissance, ...).
Comment faire pour créer un site qui charge par défaut l'anglais, mais qui lors d'un clic sur français charge la page en français.
J'avais essayé quelque chose dans le genre, mais comme je ne connais pas très bien PHP (je m'y mets !) , je ne sais pas si j'ai le droit et si s'est la bonne manière de faire... Je pensais créer toutes les variables à double et que PHP "choisisse celles associées à la langue choisie (un bout de code qui illustre ce que je pensais faire). J'espère que mes explications seront compréhensibles... il n'est pas toujours facile de traduire ses idées en phrases!
Merci d'avance de toutes vos contributions.

Hervé.

<?php
  $langue="anglais"; /* valeur par défaut */
  if ($langue=="anglais"){
   $titre="Welcome";
    $mois=Array("January",......);
  }
  else{
   $titre="Bienvenue";
    $mois=Array("Janvier",........);
  }
?>
/* le début de ma page */
<html>
  <head>
    <title>
      <?php print $titre; ?>
   </tile>
  </head>
<body>
.....
    <select id="mois" name="mois">
     <?php
         for ($moi=0;$moi<12/*Nombre de mois*/;++$moi){
             print "<option value=$moi">$mois[$moi]</option>
        }
     ?>
        </select>
.....
</body>
</html>
A voir également:

8 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 déc. 2007 à 13:40
Bonjour,

Si tu veux le gérer uniquement en PHP, tu peux faire comme suit :
- créer un fichier PHP de définition de variable par langue.
- Loader le bon fichier en fonction d'un paramètre dans ton script principal

Ainsi tu aura par exemple un fichier 'vars.fr.php' :
<?php
$titre = "Bienvenu";
?>


Un fichier 'vars.en.php' :
<?php
$titre = "Welcome";
?>


Et ta page principale :
<?php
  $langue="en"; /* valeur par défaut */

  if (isset($_GET["langue"]) && !empty($_GET["langue"]) && $_GET['langue'] == "fr" ){
     $langue = "fr";
  }

 if ( $langue == "en" )
     include "vars.en.php";
 else if ($langue == "fr" )
     include "vars.fr.php";


 // --- Et ensuite le code de ta page


Ca a le mérite d'être clair et de regroupé dans un seul fichier toutes les variables qui sont succeptibles de changer en fonction de la langue.
4
Merci beaucoup. C'est ce que je pensais faire mais en bien plus propre!
Par contre j'aurais encore une question: Comment créer mes liens permettant de changer la langue?
Désolé si ma question paraît un peu basique, mais je ne connais pas encore très bien le PHP.

<a href="vars.fr.php">Français</a> ou <a href="index.php">Français</a> ou encore autre chose?!
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 déc. 2007 à 18:15
Il faut faire un lien sur la même page mais avec le paramètre "langue" différent :
<a href="index.php?langue=fr">Francais</a>
<a href="index.php?langue=en">Anglais</a>

0
Rente Messages postés 129 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 6 juin 2011 7
27 oct. 2008 à 09:32
Bonjour,
je suis dans une école d'ergonomie et design et un prof de site web nous a demandé un taff pour mi-novembre...
un cas réel qui nous demande de faire un site pour une école primaire... et c'est un école francaise et allemande...
donc, vu que je sais un peu programmer (xHTML et PHP), je souhaite "essayer d'apprendre" à faire un site bilingue...
donc, j'avais "pensé" faire ce qui est dit plus haut... là je vous remercie car les codes sont propres et clair!
mais il y à 20 pages à créer pour le site avec pas mal de textes... donc j'ai juste une petite question...
POUR MON CAS : faudrai mettre les deux drapeaux (fr) et (all) sur l'index.php et une variable ($langue), cette variable est transmise de pages en pages... et avec un if qui teste la variable ($langue)devant chaque echo...
je sais pas trop si je suis clair ou pas...
merci de vous y interresser...
0
Merci beaucoup. On voit vraiment que je débute en PHP !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour.
J'ai encore quelques soucis pour réaliser mon formulaire.
- Tout d'abord, comment faire pour récupérer les données rentrées depuis un autre fichier ?
- Ensuite, si je souhaite faire plusieurs pages pour mon formulaire (une par fichier), dois-je inclure le début (if ($lang=="fr")) dans chaque fichier?
Une nouvelle fois merci de votre aide!
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
27 déc. 2007 à 11:49
Pour répondre à la deuxieme question : oui il faut que tu inclus ce "dictionnaire" au début de chaque page réelle (pas forcément chaque fichier PHP, mais au moins chaque page, puisqu'une page peut etre formée de plusieurs fichiers PHP ou autres).

Pour ce qui est de la première question, tuto sur la réalisation d'un formulaire :
http://wiki.mediabox.fr/tutoriaux/php/recuperer-des-donne-formulaire-php

Tu en trouvera bien d'autres en tapant des mots tels que 'tutoriel PHP formulaire' sur google.
0
Auriez-vous quelques bons liens vers des tutoriaux ou de bons livres sur le développement (design, programmation, ...) de sites web? Merci.
0
Kemich Messages postés 207 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 11 mars 2011 22
28 déc. 2007 à 14:59
Bonjour,

Allez donc faire un tour sur http://www.phpdebutant.org (très bon site avec des tutoriels très bien détaillés)
0
Bonjour,

Comment faire pour vérifier si un formulaire a été complètement rempli et si ce n'est pas le cas, recharger le formulaire avec les valeurs déjà entrée par l'utilisateur?

De même, comment faire un formulaire sur plusieurs pages, qui récupère la valeur de la variable $langue? C'est-à-dire que si l'utilisateur a choisi d'afficher la première page en français, la deuxième s'affiche également en français?

Merci beaucoup.
0