include avec condition (détection de langue)
Posté : 05 nov. 2011, 14:04
Bonjour à tous !
Comme vous le devinerez je débute en PHP.
Je suis entrain de réaliser un site en 3 langues différentes (en, fr, nl)... il y a donc un script de détection de la langue qui redirige vers
index_en.php
ou index_fr.php
ou index_nl.php.
Tout le texte de mon site se trouve dans un fichier externe en 3 langues :
m_lang_en_inc.php,
m_lang_fr_inc.php,
m_lang_nl_inc.php.
(fichier inclus directement dans l'une des 3 version "index").
Par exemple : m_lang_en_inc.php est inclus directement dans index_en.php
Jusque là tout fonctionne.
Maintenant mon problème:
Certain liens renvoie à une page commune au 3 versions de langues. Par exemple : fichier.php
(c'est pour éviter de créer 3 fichiers : fichier_en.php, fichier_fr.php, fichier_nl.php et donc plus de modifications).
J'ai donc mon script php qui détecte la langue (en, fr ou nl) et sous condition inclura l'un des 3 fichiers contenant le texte du site.
Voici le script :
J'ai parcourus le NET, essayé maintes solutions en vain...
Alors si quelqu'un peut m'aider ce serait vraiment sympa car je ne sais plus comment faire.
Merci à tous.
jrmy7
Comme vous le devinerez je débute en PHP.
Je suis entrain de réaliser un site en 3 langues différentes (en, fr, nl)... il y a donc un script de détection de la langue qui redirige vers
index_en.php
ou index_fr.php
ou index_nl.php.
Tout le texte de mon site se trouve dans un fichier externe en 3 langues :
m_lang_en_inc.php,
m_lang_fr_inc.php,
m_lang_nl_inc.php.
(fichier inclus directement dans l'une des 3 version "index").
Par exemple : m_lang_en_inc.php est inclus directement dans index_en.php
Jusque là tout fonctionne.
Maintenant mon problème:
Certain liens renvoie à une page commune au 3 versions de langues. Par exemple : fichier.php
(c'est pour éviter de créer 3 fichiers : fichier_en.php, fichier_fr.php, fichier_nl.php et donc plus de modifications).
J'ai donc mon script php qui détecte la langue (en, fr ou nl) et sous condition inclura l'un des 3 fichiers contenant le texte du site.
Voici le script :
<?php
if (!isset($langue_user) && !isset($_SESSION["ch_langue"])){
$langue_user=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
switch($langue_user){
case"fr":
$_SESSION["ch_langue"] = "fr";
include("m_lang_fr_inc.php");
break;
case "en":
$_SESSION["ch_langue"] = "en";
include("m_lang_en_inc.php");
break;
case "nl":
$_SESSION["ch_langue"] = "nl";
include("m_lang_nl_inc.php");
break;
default:
$_SESSION["ch_langue"] = "en";
include(".m_lang_en_inc.php");
break;
}
}
?>
Le problème c'est qu'il m'inclus automatiquement les 3 fichiers et utilise le premier par défaut (soit "m_lang_fr_inc.php") au lieu d'inclure seulement le fichiers correspondant à la langue détectée.J'ai parcourus le NET, essayé maintes solutions en vain...
Alors si quelqu'un peut m'aider ce serait vraiment sympa car je ne sais plus comment faire.
Merci à tous.
jrmy7