В индексном файле у меня есть код:
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
include './units/get_arg.php';
if ($GET['lang']==='ru') {
$lang=$GET['lang'];
SetCookie('language','ru');
include ('./language/ru.php');
}
elseif ($GET['lang']==='en') {
$lang=$GET['lang'];
SetCookie('language','en');
include ('./language/en.php');
}
else {
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('./404.html'));
}
...
Эта часть ответственна за то, что когда в нее приходит разобранный url в массив, взять элемент этого массива с языком и сделать с ним нужные операции.
А вот часть файла get_arg.php, подключаемого ранее
...
if (isset($_COOKIE['language']))
$GET = array(
'lang' => $_COOKIE['language'],
'page' => 'main',
'mode' => 'all',
'id' => 0,
);
else
$GET = array(
'lang' => 'ru',
'page' => 'main',
'mode' => 'all',
'id' => 0,
);
...
Здесь я сделал проверку, что если кукис уже установлены, то в качестве языка берется язык, который уже был раньше. И в дальнейшем в этом файле ведется разбор url'а.
Мне кажется что, я что-то упустил из виду. Либо какое-то свойство кукис, либо просто скосячил.