Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !  
CONCOURS
 
 
PLUS DE PHP
 
 
PLUS DE JAVASCRIPT
 
COMMENT CA MARCHE
 
 
EXPLIQUE-MOI
 
 
NEWS LETTER
 

 
PARTENAIRES
 
Découvrez scriptsphp.org
Découvrez phpteam.net
Tout sur les expressions régulières
IE sucks :-)
 
DESIGN DU SITE
 
Site multi-langues
Tuto écrit par Benji, revu en août 2004 par Molokai et Raf
 

Nous allons voir dans ce tutorial comment proposer plusieurs langues sur un site grâce à PHP. Vous allez voir ce n'est vraiment pas sorcier, il suffit de connaître le principe qui est assez proche du multi-couleurs.

Principe

Nous allons utiliser un concept assez simple pour avoir plusieurs langues avec une seule page ! (Etonnant, n'est-ce pas ?) Pour cela il faut remplacer le texte par des variables, si vous ne comprenez pas trop pour l'instant, ne vous inquiétez pas, vous allez vite comprendre avec la suite du cours. Nous aurons besoin de plusieurs fichiers :

  • Un fichier contenant les constantes pour chaque langue.
  • Un cookie qui garde en mémoire la langue choisie par le visiteur pour la prochaine visite.

Pré-requis

  • Utilisation et définition de constantes.
  • Utilisation et création de cookies.

Création

1 . Les fichiers langues

Nous allons tout d'abord créer les fichiers contenant les variables pour chaque langue.

Remarques
  • Nous utiliserons des constantes pour le gain de temps d'exécution du script de plus cela permet de distinguer les constantes utilisées pour les langues des autres variables classiques du site.
  • Par convention, une constante est toujours notée en majuscules (cf doc).

Astuces
  • Je vous conseille pour vous y retrouver d'organiser vos fichiers langues avec des commentaires voire de faire un fichier par page ...
  • Aussi, créez un sous-répertoire 'lang/' pour y mettre vos différents fichiers langues, avant que votre FTP ne prenne l'allure de ma chambre ! ;o)

Code PHP - Exemple : fr-lang.php
 1   <?php
 2  
 3  //---------------------------------------------------------
 4  // index.php
 5  //---------------------------------------------------------
 6  
 7  define('TXT_ACCUEIL_INDEX', 'Bienvenue sur PHP Débutant !');
 8  define('TXT_METEO', 'Il fait un soleil radieux !');
 9  define('TXT_CONSEIL_INDEX', 'Faites du PHP !');
 10  
 11  //---------------------------------------------------------
 12  // page1.php
 13  //---------------------------------------------------------
 14  
 15  define('TXT_ACCUEIL_PAGE1', 'Bienvenue sur la page 1 du site PHP Débutant !');
 16  define('TXT_CONSEIL_PAGE2', 'Installez Linux !');
 17  
 18  //---------------------------------------------------------
 19  // Fin
 20  //---------------------------------------------------------
 21   
 22  ?>

Vous me direz, quelle est l'utilité si on ne dispose que d'un fichier langue francais pour le site ? Aucune ! Mais nous allons justement créer un second fichier en anglais par exemple. Attention ! Les noms des constantes doivent être identiques d'un fichier a l'autre !

Code PHP - Exemple : en-lang.php
 1   <?php
 2  
 3  //---------------------------------------------------------
 4  // index.php
 5  //---------------------------------------------------------
 6  
 7   define('TXT_ACCUEIL_INDEX', 'Welcome on PHP Débutant !');
 8   define('TXT_METEO', 'The sun is shining !');
 9   define('TXT_CONSEIL_INDEX', 'Let's do some PHP !');
 10  
 11  //---------------------------------------------------------
 12  // page1.php
 13  //---------------------------------------------------------
 14  
 15   define('TXT_ACCUEIL_PAGE1', 'Welcome on PHP Débutant's first page !');
 16   define('TXT_CONSEIL_PAGE2', 'Install Linux !');
 17  
 18  //---------------------------------------------------------
 19  // Fin
 20  //---------------------------------------------------------
 21   
 22  ?>

Nous voilà avec deux fichiers langues (fr-lang.php et en-lang.php) qui se trouvent normalement dans un repertoire langue. Je suis d'accord vous ne pouvez pas en faire grand chose pour l'instant, mais ne vous impatientez pas, ça vient !

2 . Script du choix de la langue

Maintenant que nous disposons des fichiers langues, il nous faut créer un script permettant de changer de langue, de créer un cookie etc... Je vais vous donner le code de base puis vous proposer un exercice permettant d'ajouter une fonctionnalité au script !


Code PHP - Script de Base : decide-lang.php
 1    <?php
 2   
 3   if ($_GET['lang']=='fr') {           // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
 4   include('lang/fr-lang.php');
 5   
 6   
 7   else if ($_GET['lang']=='en') {      // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
 8   include('lang/en-lang.php');
 9   }
 10   
 11   else {                       // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut
 12   include('lang/fr-lang.php');
 13   }
 14   
 15   ?>

Exercice 1 - Cookies *
  • Consigne: Dans cet exercice, le but et de gérer l'envoi d'un cookie pour pouvoir mémoriser la langue choisie par l'utilisateur.
  • Indice: Pour vous aider, vous pouvez voir la doc sur les cookies, le cours ou jetter un coup d'oeil au tutorial sur le multi-couleur pour avoir un exemple concret d'utilisation de cookies.
  • Plus: Vous pouvez aussi essayer d'implémenter une reconnaissance de la langue du navigateur.
  • Après avoir tester vos capacités vous pouvez allez voir la correction ici : Correction

3 . Intégration du choix de la langue dans les pages

Ne vous découragez pas, vous avez fait le plus dur , il ne nous reste plus qu'à intégrer le script dans vos pages, ce qui devrait être très facile par rapport au début du tutorial ! ;o) Pour çela, il faut remplacer votre texte par les constantes définies dans les fichiers langues et intégrer le script de choix de la langue au début de chaque page. Vos pages .php actuelles doivent ressembler à peu près à ça :

Vos pages actuelles (html ou php)
Vos pages modifiées (php)
 1   <html>
 2  <body>
 3  Bienvenue sur PHP Debutant
 4  <br>
 5   Meteo du jour : Il fait un soleil radieux !
 6  <br>
 7  Conseil du jour : Faites du PHP !
 8  </body>
 9  </html>
 1   <?php
 2  require("decide-lang.php");
 3  ?>
 4  <html>
 5  <body>
 6  <?php echo TXT_ACCUEIL_INDEX?>
 7  <br>
 8  Meteo du jour : <?php echo TXT_METEO?>
 9  <br>
 10  Conseil du jour : <?php echo TXT_CONSEIL_INDEX?>
 11  </body>
 12  </html>

Pour accéder à vos pages vous utiliserez ce chemin:
http://www.votresite.com/page.php?lang=en (pour l'anglais) par exemple.
Si vous testez vos pages sur votre serveur, vous obtiendrez ce code HTML :


Page générée : index.php?lang=fr
Page générée : index.php?lang=en
 1  <html>
 2   <body>
 3   Bienvenue sur PHP Débutant !
 4   <br>
 5   Meteo du jour : Il fait un soleil radieux !
 6   <br>
 7   Conseil du jour : Faites du PHP !
 8   </body>
 9   </html>
 1  <html>
 2   <body>
 3   Welcome on PHP Débutant !
 4   <br>
 5   Meteo du jour : The sun is shining !
 6   <br>
 7   Conseil du jour : Let's do some PHP !
 8   </body>
 9   </html>

Voilà c'est fini ! Vous pouvez désormais proposer plusieurs langages à vos visiteurs sans pour autant refaire votre site en entier. Grâce à ce cours ainsi que celui pour la création d'un site multi-couleurs, vous pourrez satisfaire de plus en plus de visiteurs.


Ajouter une réponse
Nom
Email
Titre

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Mémoriser mon nom et mon email : Oui Non
www.phpdebutant.org © 2024 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement
DEBUTEZ !
 
  0.  Introduction
  1.  Afficher une phrase ou une image
  2.  Afficher la date et l'heure
  3.  PHP dans du code HTML
  4.  La concaténation
  5.  Récupérer les valeurs d'un formulaire
  6.  Les structures de contrôle
  7.  Ecrire et lire dans un fichier texte
  8.  Les fonctions utilisateurs
  9.  Les variables d'environnement
  10.  Quelques fonctions utiles
  11.  SQL/MySQL (Create, Alter & Drop)
  12.  SQL/MySQL (Insert et Select)
  13.  SQL/MySQL (Delete et Update)
  14.  SQL/MySQL (Where)
  15.  Fonctions PHP pour mySQL
  16.  Interroger une table MySQL
  17.  Alimenter une ou plusieurs tables mySQL
  18.  Les pseudos-frames
  19.  Les sessions php4
  20.  Affichage page par page
  21.  Images dynamiques
  22.  Ca marche pas ?
  23.  Variables globales à OFF
  24.  Les variables dynamiques