J'ai repris un site bilingue (Français et Anglais) et je doit rajouter l'allemand comme 3ème langue. Aidez moi à modifier le code PHP de gestion de langues. Merci
Voici le code PHP de départ avec les 2 langues :
<?php
/*
Gestion de langue Front End
-------------------------------------------------------------------------- */
$Lang_List=array("fr","en");
// Règles
if (isset($_GET['l'])&&(@in_array($_GET['l'],$Lang_List))) {
define('LG', $_GET['l']);
}
elseif (isset($_SESSION["userLg"])) {
define('LG', $_SESSION["userLg"]);
}
elseif (!defined('LG')) {
define('LG', "fr");
}
else {
$Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
reset($Accept_Lang);
while (list($Index, $Language)=@each($Accept_Lang)) {
if (eregi("^(.+);q=([0-9.]*)$", $Language, $Part)) {
$Accept_Lang[$Index]=$Part[2].';'.strtolower($Part[1]);
}
else {
$Accept_Lang[$Index]='1.0;'.strtolower($Accept_Lang[$Index]);
}
}
//tri par ordre de préférence
arsort($Accept_Lang);
reset($Accept_Lang);
while (list(,$ALang)=@each($Accept_Lang)) {
reset($Lang_List);
while (list(,$Language)=@each($Lang_List)) {
if (strpos($ALang,$Language)!=0) {
define('LG', $Language);
break 2;
}
}
}
unset($Accept_Lang, $ALang, $Language);
}
$_SESSION["userLg"]=LG;
/*
GET control
------------------------------------------------------------------------- */
function getControl($getter) {
return htmlentities(stripslashes($getter), ENT_QUOTES, 'UTF-8');
}
/*
GET link
------------------------------------------------------------------------- */
function getLink($url) {
return PATH.'/'.getControl(LG).'/'.$url;
}
/*
GET title
------------------------------------------------------------------------- */
function getTitle($fr, $en) {
switch(LG) {
case 'fr' : return $fr;
break;
case 'en' : return $en;
break;
}
}
/*------------------------------------------------------------------------*/
function getCurrent($url) {
return substr(strrchr($url, '/'), 0);
}
Voici le code PHP avec la 3ème langue et là ça bug, ça plante le site :
<?php
/*
Gestion de langue Front End
-------------------------------------------------------------------------- */
$Lang_List=array("fr","en", "de");
// Règles
if (isset($_GET['l'])&&(@in_array($_GET['l'],$Lang_List))) {
define('LG', $_GET['l']);
}
elseif (isset($_SESSION["userLg"])) {
define('LG', $_SESSION["userLg"]);
}
elseif (!defined('LG')) {
define('LG', "fr");
}
else {
$Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
reset($Accept_Lang);
while (list($Index, $Language)=@each($Accept_Lang)) {
if (eregi("^(.+);q=([0-9.]*)$", $Language, $Part)) {
$Accept_Lang[$Index]=$Part[2].';'.strtolower($Part[1]);
}
else {
$Accept_Lang[$Index]='1.0;'.strtolower($Accept_Lang[$Index]);
}
}
//tri par ordre de préférence
arsort($Accept_Lang);
reset($Accept_Lang);
while (list(,$ALang)=@each($Accept_Lang)) {
reset($Lang_List);
while (list(,$Language)=@each($Lang_List)) {
if (strpos($ALang,$Language)!=0) {
define('LG', $Language);
break 2;
}
}
}
unset($Accept_Lang, $ALang, $Language);
}
$_SESSION["userLg"]=LG;
/*
GET control
------------------------------------------------------------------------- */
function getControl($getter) {
return htmlentities(stripslashes($getter), ENT_QUOTES, 'UTF-8');
}
/*
GET link
------------------------------------------------------------------------- */
function getLink($url) {
return PATH.'/'.getControl(LG).'/'.$url;
}
/*
GET title
------------------------------------------------------------------------- */
function getTitle($fr, $en, $de) {
switch(LG) {
case 'fr' : return $fr;
break;
case 'en' : return $en;
break;
case 'de' : return $de;
break;
}
}
/*------------------------------------------------------------------------*/
function getCurrent($url) {
return substr(strrchr($url, '/'), 0);
}