sábado, julio 21, 2007

Manage your blogs

Cuando Miguel visita su panel de Blogger, todo el interfaz le aparece en finlandés y le gustaría saber qué hay que hacer para poder disfrutarlo en la lengua de Quevedo. Le he contado que vaya a las opciones avanzadas de su navegador favorito, categoría "General", y seleccione allí "Español" como su idioma preferido y quite los demás idiomas que aparezcan en el listado.

Este listado de idiomas se convierte en la primitiva "Accept-Language" de HTTP que el navegador envía al servidor de páginas web cuando intenta contactarlo por primera vez. En función de los contenidos de esta primitiva, el servidor puede decidir en qué idioma devolver la página solicitada (siempre y cuando ese idioma esté disponible). Pero como del dicho al hecho siempre va un bug, he decidido probarlo yo mismo.

Usando Firefox versión en español, he borrado todas mis cookies (por si en ellas hubiera almacenada alguna preferencia de Google) y he borrado todos los idiomas del listado de opciones. La petición HTTP que envío contiene la siguiente línea en la cabecera:

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Vale, vale, ya sé que hay una actualización 2.0.0.5 de Firefox, eso no viene al caso. No hay en la cabecera ninguna línea Accept-Language de momento, como debería ser. La página web de Blogger me aparece en alemán. Eso significa que, a falta de una sugerencia por parte del usuario, tratan de localizarlo geográficamente por su dirección de IP y deciden que los que estamos en Alemania preferimos ver la página en alemán. Esto podría irritar a más de uno, pero se trata de un intento de Google de ser lo más amable posible. Bienvenido sea.

Ahora incluyo como idioma preferido el español en mi navegador. Así aparece la línea en la petición HTTP:

Accept-Language: es

[es] es el código de dos letras para representar la lengua española según el estándar ISO 639. La página vuelve en español, ¡qué chico más obediente!. Pruebo un par de idiomas para los que sé que existe una versión localizada de Blogger (coreano, italiano, polaco, sueco, turco). Las páginas vuelven en los idiomas respectivos. Ahora pruebo inglés:

Accept-Language: en

¡Y la página vuelve en alemán, como al principio! Repito el experimento con Firefox en finlandés, para asegurarme de que la versión y el lenguaje del navegador (que también se comunica al servidor en la línea User-Agent, como se puede ver algo más arriba) no pintan nada en este entuerto. Los resultados son idénticos.

¿Por qué no respeta el servidor de Blogger en este caso la preferencia de idioma (violando así RFC 2616 y 3282) y devuelve la página en el idioma del lugar en el que cree que me encuentro?

Respuesta corta: no lo sé a ciencia cierta. Respuesta larga: Algunos navegadores en sus versiones "no inglesas" añaden desde el momento de la instalación el idioma inglés a la lista de idiomas preferidos. Podría ser que Google quisiera ser más inteligente que esos navegadores y hacerle un favor al usuario (que no habla inglés nativo) sobreescribiendo sus preferencias por defecto y tratando de localizarlo geográficamente. Mi teoría es apoyada por el hecho de que si ahora añado un segundo idioma (alemán o español, por ejemplo) detrás del inglés en preferencia, la página vuelve en inglés. En este caso el servidor podría saber que no se trata de una configuración por defecto y que prefiero ver la página en inglés.

1 comentario:

Maria & Julia VV dijo...

me has ahorrado una llamada de telefono. Gracias
Miguek