Faire un site multilingue (array) + cookie

0/5 (14 avis)

Snippet vu 31 516 fois - Téléchargée 34 fois

Contenu du snippet

Voici comment faire simplement un site multilingue. Vous aurez besoin pour cela de créer une ou plusieurs pages...et on utilisera les tableaux (array). Ci-dessous, nous allons faire un site bilinuge, Anglais et Français. Nous allons en plus enregistrer la langue que le visiteur aura choisi dans un cookie

Source / Exemple :


Tout d'abord, nous allons créer donc deux fichiers, contenant les textes des deux langues : lang_fr.php et lang_en.php
lang_fr.php :
<?
$lang = array("welcome" => "Bienvenue",
"text1" => "Mon texte 1",
"text2" => "Mon texte 2",
);
?>

lang_en.php :
<?
$lang = array("welcome" => "Welcome",
"text1" => "My text 1",
"text2" => "My text 2",
);
?>

Très important : Il faut que les noms soit exactement les mêmes dans chaque fichiers...

Ensuite, voici par exemple votre page d'accueil, qui contiendra ces textes..

<html>
<?
include('lang_fr.php'); // include('lang_en.php') si vous voulez la langue anglaise.
echo $lang["welcome"] . "<br>" . $lang["text1"] . "<br>" . $lang["text2"];
?>
</html>

Le problème est que votre page est soit en Français, soit en Anglais. Nous allons donc demander dans une nouvelle page au visiteurs de choisir une langue, ca pourrait être la page d'accueil. Vous pouvez aussi faire la même chose dans la page principale, ou dans les pages secondaires... Par exemple :

<html>
Choisissez votre langue :<br>
<a href="choix_lang.php?lang=fr">Francais</a> ou <a href="choix_lang.php?lang=en">Anglais</a>
</html>

On dit que la page choix_lang.php est la page qui va envoyer un cookie chez le visiteur :

<?
if(!$_GET["lang"])
{
echo "Erreur, aucune langue n'a été choisie...";
}
else
{
SetCookie("monsite_lang",$_GET["lang"]); // on enregistre un cookie qui s'éffacera a la fermeture de la page. Si vous avez choisi langue française, alors $_GET["lang"] aura comme valeur "fr"...
Header( "Location: accueil.php");
}
?>

Ensuite, nous allons faire un fichier qui inclura le bon fichier de langue, selon le cookie. On pourra inclure ce fichier dans toutes les pages...
select_lang.php :

<?
if (!$HTTP_COOKIE_VARS["monsite_lang"])
{
include("lang_fr.php"): // si pas de cookie pour include la langue, on inclue une langue par défuat, le français par exemple.
}
else
{
$lang = $HTTP_COOKIE_VARS["monsite_lang"];
include("lang_" . $lang . ".php");
}
?>

Donc le code de la page d'accueil sera :

<html>
<?
include("select_lang.php");
echo $lang["welcome"] . "<br>" . $lang["text1"] . "<br>" . $lang["text2"];
?>
</html>

Conclusion :


Voilà, si il y a des problèmes (il risque d'en avoir, je n'ai pas vérifié...) dites-le moi dans les commentaires...
@+ !

A voir également

Ajouter un commentaire Commentaires
cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015
30 sept. 2008 à 23:16
salut, definir une langue par defaut si l'on ne veux pas clicker il y a moyen ?
kmimi Messages postés 1 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 août 2008
14 août 2008 à 14:04
Merci pour ce code et ses corrigés, qui marche très bien.
est-il possible de ne pas avoir 2 pages:page=fr et page=en
mais le chargement se fait sur le même page c'est à dire index
merci
pblake Messages postés 2 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 20 avril 2006
20 avril 2006 à 13:33
quel est le code qui permet de conserver la langue choisie par exemple sur la page d'accueil sur toutes les autres pages d'un site ?
tonio2004 Messages postés 1 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 3 mai 2005
3 mai 2005 à 15:13
est il possible d'appliquer cette méthode à l'asp?
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
4 janv. 2005 à 19:15
PS ::::: Omigo:
N'utilise pas " alt="" />.

Honte à moi lol :D

Mais plutôt :

<?php
$language = ( isset ( $_COOKIE[ 'monsite_lang' ] ) ) ? $_COOKIE[ 'monsite_lang' ] : 'default_language';
?>
" alt="" />
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.