PHP:Tengo una web en varios idiomas, ¿Cómo puedo mostrar a mis visitantes la que más se ajuste a sus preferencias?
De Foros del Web
Usando la cabecera HTTP_ACCEPT_LANGUAGE que nos enviará su navegador al pedirnos que le mostremos la web.
Para leer correctamente esa cabecera y no quedarnos sólo con el primer valor que contenga, usaremos el siguiente script:
if ($HTTP_ACCEPT_LANGUAGE != ''){ # Verificamos que el visitante haya designado algún idioma $idiomes = explode(",", $HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas en que está disponible nuestra web */ for ($i=0; $i<count($idiomes); $i++){ if (!isset($idioma)){ if (substr($idiomes[$i], 0, 2) == "ca"){$idioma = "ca";} if (substr($idiomes[$i], 0, 2) == "es"){$idioma = "es";} if (substr($idiomes[$i], 0, 2) == "en"){$idioma = "en";} if (substr($idiomes[$i], 0, 2) == "fr"){$idioma = "fr";} } } } # Si no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto if (!isset($idioma)){$idioma = "ca";}
--Cain 27 Nov 2002
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
