Cette partie devrait être un commentaire (mais c'est un peu long)
La méthode décrite dans le lien que vous avez fourni est un moyen raisonnable d'implémenter le choix du langage, mais une mauvaise façon de détecter le choix.
Votre navigateur indique déjà aux serveurs la ou les langues qu'ils pensent should respond in. Et la plupart des serveurs Web ont un mécanisme pour multiplexing different language content. Cependant, ce dernier moyen de câblage hard-le choix du navigateur sans fournir un moyen facile de contourner le comportement.
L'approche que je l'ai utilisé avant est quelque chose comme ceci:
$use_lang='en-GB';
if (isset($_COOKIE['userlang'])
&& is_language_supported($_COOKIE['userlang'])) {
$use_lang=$_COOKIE['userlang'];
} else if ($proposedlang=supported_lang_in($_SERVER['Accept-Language'])) {
$use_lang=$proposedlang;
}
function supported_lang_in($str)
{
$l=array();
$opts=explode(',', $str);
foreach ($opts as $v) {
list($p, $weight)=explode(';', $v);
if ($weight) {
list($dummy, $weight)=explode('=', $weight);
$weight=float($weight);
}
if (!$weight) {
$weight=1.0;
}
if (isset($l[$weight])) {
$weight-=0.001;
}
$l[$weight]=$p;
}
krsort($p); // preferred first
foreach ($p as $proposed) {
if ('*'==$proposed) {
return false;
}
if (is_language_supported($proposed)) {
return $lang;
}
}
return false;
}
Passons maintenant au problème que vous avez parlé ....
Le maintien des URL différentes pour référencer le même contenu puis déréférencer la langue dans le contenu semble une solution très byzantine au problème. Non seulement vous devez mapper l'entrée à l'URL, mais vous devez réécrire toutes les URL dans la sortie à la représentation appropriée.
Tout en ayant sémantiquement URL significatives est un atout supplémentaire, allant à la grande longueur pour adapter ces dynamiquement peut-être pas pas la meilleure utilisation de votre temps.
vous devriez enregistrer ces noms et utiliser quand lang est changé –