Usa una variable de sesion para almacenar el idioma. Al principio de todas tus paginas, mira si existe un parametro en la url para el cambio de idioma, si es valido asignas ese valor a la variable de sesion. Si no existe el parametro, y no existe la variable de sesion, averigua el idioma por el navegador y asignas el valor a la variable de sesion.
Código PHP:
if (!empty($_GET['idioma']) && in_array($_GET['idioma'],$array_idiomas)) {
$_SESSION['idioma']=$_GET['idioma'];
} elseif (!isset($_SESSION['idioma'])) {
$_SESSION['idioma']=idiomaNavegador();
}
$idioma=$_SESSION['idioma'];