А что смущает то в такой работе. Заголовок выдает язык пользователя, зачем ещё лесть куда-то ?
Вот боевой пример
if (isset($_GET["lang"])) {
setcookie("lang", htmlspecialchars($_GET["lang"]), time() + 3600*24*31*100, '/');
header('Location: '.$_SERVER['HTTP_REFERER'].'' );
die();
}
if (isset($_GET["language"])) {
header('Location: '.$_SERVER['HTTP_REFERER'].'' );
die();
}
if (isset($_COOKIE["lang"])) {
switch ($_COOKIE["lang"]){
case "rus":
define("LANG","rus");
break;
case "eng":
define("LANG","eng");
break;
default:
setcookie("lang", "rus", time() + 3600*24*31*100, '/');
header('Location: '.$_SERVER['HTTP_REFERER'].'' );
die();
break;
}
} else {
preg_match('/^\w{2}/',$_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
switch (strtolower($matches[0])){
case "ru":
define("LANG","rus");
break;
case "en":
define("LANG","eng");
break;
case "us":
define("LANG","eng");
break;
default:
define("LANG","rus");
break;
}
}
include_once '_lang_'.LANG.'.php';