Probleme sur un code multilangue
Bonjour,
Sur mon site en espagnol, la langue par défaut, j'aimerai rajouter le FR et EN
Le site pointe sur une traduction include/language/espagnol.php
J'ai créé 2 autres fichiers de traduction "english.php et french.php)
Sur les codes que j'ai mis en index, le site se traduit bien quand on clic sur les drapeaux du header correspondant aux langues.
Cependant dès qu'on clic sur un lien de l'index, la page suivante se remet par défaut en espagnol.
N'etant vraiment pas un pro je pense avoir une erreur sur le code, ou est-ce que je me suis planté ?
Quelqu'un peut'il m'aider ?
Voici mes codes :
index.php
Code:
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| <?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'] != 'es' && $_GET['langue'] != 'fr')
{
$langue = $_COOKIE['CHOIXlang'];
}
else if (isset ($_COOKIE['CHOIXlang']) && $_GET['langue'] != 'fr' && $_GET['langue'] != 'en')
{
$langue = $_COOKIE['CHOIXlang'];
}
else if (isset ($_COOKIE['CHOIXlang']) && $_GET['langue'] != 'en' && $_GET['langue'] != 'es')
{
$langue = $_COOKIE['CHOIXlang'];
}
// le choix de la langue est déclaré par url
else if ($_GET['langue'] == 'es' || $_GET['langue'] == 'en')
{
$langue = $_GET['langue'];
set_cookie($langue);
}
else if ($_GET['langue'] == 'es' || $_GET['langue'] == 'fr')
{
$langue = $_GET['langue'];
set_cookie($langue);
}
else if ($_GET['langue'] == 'en' || $_GET['langue'] == 'es')
{
$langue = $_GET['langue'];
set_cookie($langue);
}
else if ($_GET['langue'] == 'en' || $_GET['langue'] == 'fr')
{
$langue = $_GET['langue'];
set_cookie($langue);
}
else if ($_GET['langue'] == 'fr' || $_GET['langue'] == 'es')
{
$langue = $_GET['langue'];
set_cookie($langue);
}
else if ($_GET['langue'] == 'fr' || $_GET['langue'] == 'en')
{
$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($HTTP_SERVER_VARS['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 'El cookie no foncionna<br />';
}
else
{
setcookie("CHOIXlang", $langue, time() + $expire);
// echo 'El cookie foncionna<br />';
}
}
?> |
dans le <body>
Code:
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
| <?php
// affichage de la bonne langue
// si le cookie vaut 'es' ou si la requete vaut 'es',
// on inclut le fichier espagnol.php
if ($_GET['langue'] == "es" || $langue == "es")
{
include('includes/language/espagnol.php');
}
// affichage de la bonne langue
// si le cookie vaut 'fr' ou si la requete vaut 'fr',
// on inclut le fichier french.php
elseif ($_GET['langue'] == "fr" || $langue == "fr")
{
include('includes/language/french.php');
}
// affichage de la bonne langue
// si le cookie vaut 'en' ou si la requete vaut 'en',
// on inclut le fichier english.php
elseif ($_GET['langue'] == "en" || $langue == "en")
{
include('includes/language/english.php');
}
?> |
Lien des drapeaux
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
if(empty($_SESSION['connect']))
{
if($param_gen['actif_acc'] == 2 || $param_gen['actif_acc'] == 3) echo '<li class="li_top_header">
<a href="?langue=es" title="Español"><img src="images/flag_es.gif" height="14" alt="Español" /></a>
<a href="?langue=fr" title="Français"><img src="images/flag_fr.gif" height="14" alt="Français" /></a>
<a href="?langue=en" title="English"><img src="images/flag_en.gif" height="14" alt="English" /></a>
<img src="images/top_header_fl.png" alt="" /><a href="acc_conn.php?type=1">'. $language['lien_compte'] .'</a></li>';
if($param_gen['actif_acc'] > 1) echo '<li class="li_top_header"><img src="images/top_header_fl.png" alt="" /><a href="acc_conn.php?type=2">'. $language['lien_compte_pro'] .'</a></li>';
}
else echo '<a href="" title="Español"><img src="images/flag_es.gif" height="14" alt="Español" /></a> <li class="li_top_header"><img src="images/top_header_fl.png" alt="" /><a href="acc_bord.php">'. $language['compte_lien_bord1'] .'</a></li><li class="li_top_header"><img src="images/top_header_fl.png" alt="" /><a href="acc_logout.php">'. $language['compte_lien_bord5'] .'</a></li>';
if($param_gen['actif_acc'] > 1 && $param_gen['active_bout'] == 1) echo '<li class="li_top_header"><img src="images/top_header_fl.png" alt="" /><a href="boutiques_search.php">'. $language['lien_boutiques'] .'</a></li>';
?> |