Si el contenido de la página es igual para todos los idiomas puedes hacerlo por cookies o sessiones, pero si varía para mejorar el posicionamiento es mejor hacerlo por dominio, subdominio o simular carpeta. Aún así el posicionamiento que mejor se hará será el del idioma por defecto.
Código PHP:
session_start();
$idiomas = array('en', 'es');
function obtenerIdioma()
{
global $idiomas;
static $idioma;
if (!$idioma)
{
if (isset($_GET['lang']) && in_array($_GET['lang'], $idiomas))
{
$idioma = $_GET['lang'];
}
elseif (isset($_SESSION['idioma']))
{
$idioma = $_SESSION['idioma'];
}
else
{
$idioma = 'en';
}
}
return $idioma;
}
echo obtenerIdioma();