Tal vez no haga falta que te compliques tanto, el el array
$_SERVER esta la variable HTTP_ACCEPT_LANGUAGE
http://ar.php.net/reserved.variables
Más alla de eso, supongo (ya que no lo he probado) que tal vez seria mejor agregarle la funcion is_set para validar el post
if (!is_set($_POST["lang"])) {
$idioma = "ES";
} else {
$idioma = $_POST['lang'];
}
Espero que te haya sido util
Jose