Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/07/2006, 13:04
Avatar de michaelc
michaelc
 
Fecha de Ingreso: abril-2005
Ubicación: Caracas
Mensajes: 112
Antigüedad: 19 años, 1 mes
Puntos: 3
Hola Amigos,

estuve consultando este foro pues estaba en las mismas que "Urgido", la verdad al consultar el código funciono pero no como yo queria y con mis pocos conocimientos de PHP logré crear un script muy funcional para detectar el idioma de una forma correcta y es compatible con Explorer y Firefox.

Aqui les va:


<?php

$idioma = substr ($HTTP_ACCEPT_LANGUAGE, 0, 2);

if ($idioma == "en") {
Header("Location: en/index.htm");
} else {
Header("Location: es/index.htm");
}

?>

Para los que no saben mucho les explico resumido, la variable "$HTTP_ACCEPT_LANGUAGE" es una variable del PHP que nos devuelve la info del navegador del cliente/usuario que visita nuestra página:

- Explorer devuelve: es-ve (Me devuelve idioma español de venezuela osea mi pais)
- Firefox devuelve: es;es-ar;q.......... (Me devuelve idioma español y luego español de argentina que es el default de firefox en español)

Si bien hay un detalle importante ambos exploradores muestran en sus dos primeros carateres el primer idioma que desea visualizar el usuario, osea el que nos interesa para aplicar el detector de idioma.

para ello usamos la funcion de PHP substr() que nos permite picar una cadena, entonces le decimos que nos lea desde el principio la cadena, hasta dos caracteres mas "(0, 2)" y asi obtenemos "es" o "en" o cualquier idioma q tenga el cliente.

Ahora en mi caso solo debo detectar si tiene idioma ingles, si no es asi, que me muestre por defecto el español. Para aplicarlo a dos o mas idiomas basta con ampliar la estructura If/elseif/else y podran crear el detector con sus necesidades!.

¿Facil verdad? Espero a mas de uno les sirva!, saludos.