Bonjour,

Je ne suis pas expert et souhaite de l'aide sur la mise en place en php du changement de langue pour mon site web.
Après avoir parcouru le net a la recherche de code, j'ai trouvé ce que je souhaite mais n'ai pas la connaissance face à un problème que je vais exposé et vous demande de bien vouloir me corriger.
Nous avons 5 pages une index.php, forum.php, en_lang.php, fr_lang.php et lang.php
Mon problème est le suivant : 2 fichier lang différent sont posté
1 est capable de détecté la langue du navigateur afin d'affiché la page dans la langue du navigateur concerné mais impossible de choisir la langue si l'on veut changer par la suite
L'autre est en mesure de swiché correctement la langue et les liens tout en restant dans la langue défini par la suite mais affiche un message de langue non défini lors de changement de page.
Mon problème est le suivant ?
Je souhaite pouvoir définir la langue sur chaque entré de page et de pouvoir la modifier tout en restant sur la même langue pendant la navigation sans ce message d'erreur de code
Fonctionnel par cookies sur le deuxième fichier lang mais avec donc ce message d'erreur que je n'arrive pas a comprendre.
je ne suis pas informaticien et apprend par mes propres moyen merci de votre aide.

----------------------------------------------------------------------------------------
INDEX
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php require("lang.php");?>
 
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Document sans titre</title>
</head>
 
<body>
<a href="?langue=fr" >FR</a> | <a href="?langue=en" >EN</a> 
	<a href="forum.php">forum</a>
<h1><?php echo TXT_TITRE_INDEX; ?></h1>
<p><?php echo TXT_SLOGAN_INDEX; ?></p>
</body>
</html>
----------------------------------------------------------------------------------------
FORUM
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php require("lang.php");?>
 
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Document sans titre</title>
</head>
 
<body>
<a href="?langue=fr" >FR</a> | <a href="?langue=en" >EN</a> 
	<a href="index.php">index</a>
<h1><?php echo TXT_TITRE_FORUM; ?></h1>
<p><?php echo TXT_SLOGAN_FORUM; ?></p>
</body>
</html>
----------------------------------------------------------------------------------------
FR_LANG
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
    //Début index.php (français)
 
    define('TXT_TITRE_INDEX', "Bienvenue "); 
    define('TXT_SLOGAN_INDEX', "LE CONCEPT");
 
    //Fin index.php (français)
 
 
    //Début forum.php (français)
 
    define('TXT_TITRE_FORUM', 'Forums');
    define('TXT_SLOGAN_FORUM', 'Une question ? Posez-la sur le forum :)');
 
    //Fin forum.php (français)
 
?>
----------------------------------------------------------------------------------------
EN_LANG
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
    //Début index.php (français)
 
    define('TXT_TITRE_INDEX', "Welcome"); 
    define('TXT_SLOGAN_INDEX', "THE CONCEPT");
 
    //Fin index.php (français)
 
 
    //Début forum.php (français)
 
    define('TXT_TITRE_FORUM', 'Forums');
    define('TXT_SLOGAN_FORUM', 'Get a question ? Post it on the forum :)');
 
    //Fin forum.php (français)
 
?>
----------------------------------------------------------------------------------------
LANG (pour détection de langue navigateur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
//On vérifie si le cookie existe déjà
if(isset($_COOKIE['langue'])) {
 
        //Si oui, on créer une variable $lang avec pour valeur celle du cookie.
    $langue = $_COOKIE['langue'];
 
}
 
else {
    // si le cookie n'existe pas on tente de reconnaitre la langue par défaut du navigateur utilisé
    $langue = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
}
 
//On définit la durée du cookie (avant son expiration)
$expire = 365*24*3600;
//Puis on créé le cookie
setcookie("langue", $langue, time() + $expire);
 
switch($langue) {
    //Si lang=fr on inclut le fichier de langue française
    case 'fr':
        include('fr-lang.php');
    break;
    //Si lang=en on inclut le fichier de langue anglaise
    case 'en':
        include('en-lang.php');
    break;
}
?>
----------------------------------------------------------------------------------------
LANG (permettant l'enregistrement des cookies pour poursuivre dans la même langue)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php 
 
// si langue déclarée par cookie et qu'il ny a pas de requete 
// pour le choix de la langue alors on choisit le cookie 
if (isset ($_COOKIE['CHOIXlang']) && $_GET['langue'] != 'fr' && $_GET['langue'] != 'en') { $langue = $_COOKIE['CHOIXlang']; } 
// le choix de la langue est déclaré par url 
else if ($_GET['langue'] == 'en' || $_GET['langue'] == 'fr') { $langue = $_GET['langue']; set_cookie($langue); } 
// si aucune langue n'est déclarée on tente de reconnaitre 
// la langue par défaut du navigateur 
else { $langue = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); set_cookie($langue); } 
function set_cookie($langue) { 
	//définition de la durée du cookie (1 an) 
	$expire = 365*24*3600; //enregistrement du cookie au nom de CHOIXlang + détection si erreur 
	if (setcookie("CHOIXlang", $langue, time() + $expire) != TRUE) { 
		// 
		echo 'Le cookie na pas marché<br />'; 
	} else { setcookie("CHOIXlang", $langue, time() + $expire); 
			//	
			echo 'Le cookie a marché<br />';	} } ?>
<?php 
// affichage de la bonne langue 
// si le cookie vaut 'fr' ou si la requete vaut 'fr', 
// on inclut le fichier fr-lang.php 
if ($_GET['langue'] == "fr" || $langue == "fr") { include('fr-lang.php'); } 
// affichage de la bonne langue 
// si le cookie vaut 'en' ou si la requete vaut 'en', 
// on inclut le fichier fr-lang.php 
elseif ($_GET['langue'] == "en" || $langue == "en") { include('en-lang.php'); } ?>
<?php 
$GETlangue = isset($_GET['langue']) ? $_GET['langue']:''; 
 
if (isset ($_COOKIE['CHOIXlang']) && $GETlangue != 'fr' && $GETlangue != 'en')	
{ 
$langue = $_COOKIE['CHOIXlang']; 
} 
else if ($GETlangue == 'en' || $GETlangue == 'fr') 
{ 
$langue = $GETlangue; 
set_cookie($langue); 
} 
else 
{ 
$langue = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); 
$langue = strtolower(substr(chop($langue[0]),0,2)); 
set_cookie($langue); 
} 
?>