Changement de langue pour sites bilingues avec détection de la langue par défaut du navigateur.

Soyez le premier à donner votre avis sur cette source.

Vue 8 801 fois - Téléchargée 794 fois

Description

Permet de mettre en place assez simplement un site bilingue sans devoir faire un double du site. Les pages se mettent automatiquement à la langue par défaut du navigateur sauf si l'utilisateur demande une langue en particulier.
Il suffit de mettre un lien vers le fichier lang.php avec lang=fr ou lang=en comme paramètre pour changer de langue.

Source / Exemple :


// A insérer tout au début des pages
<?
session_start();
if (!session_is_registered("langue")){
 session_register("langue");
 $langue = substr(strtolower($HTTP_ACCEPT_LANGUAGE), 0, 2);
 }
?>

//les textes en 2 versions
<? if ($langue == "en") echo "Hello World !";
	else echo "Salut tout le monde !";
?>

//contenu du fichier lang.php
<?
session_start();
if (!session_is_registered("langue")) session_register("langue");
$langue = $lang;
header("Location: $HTTP_REFERER");
?>

Conclusion :


Voir l'exemple dans le zip.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015
-
Salut
- Pourquoi stocker la langue dans une session alors que HTTP_ACCEPT_LANGUAGE est toujours définie et ne risque pas de changer
- Tu ne tient pas compte des poids et donc par conséquent la langue choisie n'est pas nécessairement la préférée de l'utilisateur (HTTP_ACCEPT_LANGUAGE indique plusieurs langues avec des priorités différentes)

Il y a un code bien plus fonctionnel sur http://www.phpcs.com/codes/SITE-MULTILINGUE-AVEC-DETECTION-LANGUE-EXPLORATEUR_30657.aspx
sc0rpX
Messages postés
5
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
7 mars 2008
-
Je ne suis pas sur mais il me semble que ton code ne peux pas fonctionner en php5. session_register("langue");


Je vis au Canada et y a ca-fr ca-en, on fait comment quand y a plusieurs langue dans un pays.

J'ai pas regarder dans tes fichiers de définitions de langage est-ce que tu remplace les mots ou phrase par un define ?

De simple questions parce que j'ai déjà ce genre de choses auxquelles je me suis déjà répondu.

Envoie-moi un courriel si tu veux ma source, ça pourrait t'éclairer.

-michel
cs_Mizuka
Messages postés
66
Date d'inscription
jeudi 4 août 2005
Statut
Membre
Dernière intervention
16 décembre 2009
-
Bonjour,

J'mets que 5 parce que la source est vraiment pas terrible pourtant l'idée est sympa.
Déjà, faudrait penser à passer à PHP5.
L'utilisation de session_register est déconseillée déjà depuis PHP4.
Préférer $_SESSION[ 'lang' ] = ..;

Cordialement,
dours
Messages postés
5
Date d'inscription
mercredi 22 février 2006
Statut
Membre
Dernière intervention
27 décembre 2007
-
Salut,

Ton code m'intéresse malheureusement en lançant test.php ds Easyphp j'ai :

Notice: Undefined variable: langue in c:\program files\easyphp1-8\www\ex1_php\test.php on line 16

Faut-il mettre "langue" en variable globale ?
ebookmal1
Messages postés
1
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
22 février 2008
-
salut a vous .

je ne conprend pas comment inserer ton codes
pourai tu le contacter sur mon site stp.merci d'avance

http://commentgagnerdelargent.eu

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.