Ok la idea es la misma pero en vez de comprobar el idioma en cada carga y arrastrarlo en la url, solo debes usarlo en una zona concreta (un form para cambiar de idioma, el propio form de registro, donde quieras) que te redirige a un php para crear una variable de sesion con el identificador de idioma y un retorno a la HTTP_REFERER para recargar el documento con el nuevo idioma como si no hubiera pasado nada (bueno esto ultimo es opcional); siguiendo el codigo que has colgado la cosa te quedaria
Código:
//archivo cambia_idioma.php
<?php
if($comprovaciones_de_error_y_todo_eso == TODO_OK) {
$_SESSION ["usuario"] ["idiomaSesion"] = $_POST['idioma_seleccionado'];
}
redirige_a_documento_anterior();
?>
Y en el documento puedes dejar un sidebar o lo que quieras con un form para esta accion con las tipicas banderas (o una llamada ajax o lo que mas se adapte)
Seguramente ya habias llegado a esta conclusión como unica solucion aceptable, pero te la comento de todas formas
Saludos
vosk