Hola! No conocía esta solución, pero tiene un problema. El primero, que "es" o "en" se encuentre en la url. Por otro lado, en tu caso no, pero imaginemos un caso más complejo en que en español tienes /es/contacto.php y en inglés /en/contact.php, pero se trata del mismo archivo, y que además tienes páginas dinámicas, es decir ese mismo archivo php puede corresponder a unas cuantas páginas....
En este caso, la solución que implanté yo es la siguiente, por si te pudiera ser de interés (sobretodo por la importancia de tener keywords en la url, por lo tanto, que sea diferente en los idiomas varios). Aviso que esto lo he hecho yo y seguro que hay opciones más simples, por eso acepto cualquer tipo de comentarios, ideas o lo que sea:
-crear un archivo php con un array multidimensional, que incluyo en todos los archivos, del siguiente tipo:
Código PHP:
Ver original "linces"=>"http://www.dominio.com/es",
"lincen"=>"http://www.dominio.com/en"
),
"linces"=>"/es/contacto.html",
"lincen"=>"/es/contact.html"
etc etc
De esta manera, cualquier enlace que tengas en la página lo podrás llamar de la siguiente manera, suponiendo que el idioma lo pases por el url:
Código PHP:
Ver originalif ($id == "es"){
$linc="linces";
}
elseif ($idl == "en"){
$linc="lincen";
}
luego el link: {$enllacos["1"]["$linc"]} donde el número corresponde a la página que desees, independientemente del idioma
Finalmente, para lo de la bandera, tengo el siguiente codigo para localizar en qué url nos encontramos y devolver la correspondiente en el idioma que indique la bandera:
Código PHP:
Ver original$urlactual = $_SERVER['REQUEST_URI']; // la que se ve en el navegador, no la real
$posicio = 0;
if ($urlactual == "/es" or $urlactual == "/en" or $urlactual == "/404.php") { // esto me evita errores cuando me encuentro en página de inicio, no se porqué...
$posicio = 1;
$valor = 1; // esto para saltarme el while siguiente, y que me devuelva 0 que corresponden a las paginas de inicio
}
while ($valor == NULL){
$posicio++;
if ($posicio == 100){ //para evitar bucle infinito si hay error.
$valor = 1;
$posicio = 1; // si se da error i bucle, al final me mandará a las paginas de inicio
}
}
$posicio--;
$urles = $enllacos["$posicio"]["linces"];
$urlen = $enllacos["$posicio"]["lincen"];
Finalmente, en la bandera española pones el enlace $urles y a la inglesa $urlen.
Saludos