la verdad no se que le haces, si es de php o no el problema, el asunto es que si no te genera la variable de sesion algo hay allí, yo traduje una web fué de esta manera:
Este codigo recibe la peticion de idioma y lo cargo por medio de un include en la cabecera de las paginas
Código PHP:
Ver originalheader('Cache-control: private'); // IE 6 FIX
if(isset($_GET['lang'])){ $lang = $_GET['lang'];
//registra sesion
$_SESSION['lang'] = $lang;
//define cookie
//busca en variables cookie y session
}else if(isset($_SESSION['lang'])){ $lang = $_SESSION['lang'];
}else if(isset($_COOKIE['lang'])){ $lang = $_COOKIE['lang'];
}else{
$lang = 'es';
}
switch ($lang) {
case 'en':
$lang_file = 'lang/lang.en.php';
break;
case 'es':
$lang_file = 'lang/lang.es.php';
break;
case 'po':
$lang_file = 'lang/lang.po.php';
break;
default:
$lang_file = 'lang/lang.es.php';
}
include_once $lang_file;
y la traducción la hago de esta manera:
Código PHP:
Ver original/*
------------------
Language: English
------------------
*/
define('LANG_TIT1' , '¿WHY CHOOSE US?'); define('LANG_RESTIT1','We are a company that offers a modern, innovative and unique management system Occupational Safety and Health, designed to simplify the work plans of the safety program with a systematic approach, an easy, fast, safe and efficient.');
y así con cada linea en la que tenga que definir el idioma, luego en el archvo solo cargo esto donde debo hacer la traducción:
y ya está, me funciona en cualquier navegador y hasta en los móviles sin problemas. Saludos y espero te sirva