La tecla de acceso 'n' lleva a la navegación de la página. Ir al inicio del contenido.

Este documento es una traducción. En caso de discrepancias o errores, la única versión normativa es el último original en inglés. Los derechos de autor originales corresponden al W3C, como puede verse al final de la página.

Traductor: Spanish Translation Team, Spanish Translation US.

s_gotoW3cHome Internacionalización
 

HTTP y metadatos para información sobre el idioma

Audiencia de destino: XHTML/HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), Web project managers, and anyone who needs to better understand how best to mark up their HTML with language information.

Nota: Desde la traducción de este documento se han producido modificaciones en el original en Inglés. Consulte el registro de cambios.

Pregunta

¿Debo identificar el idioma de mi documento XHTML con el atributo de idioma, con el encabezado de HTTP Content-Language (idioma del contenido) o con un metaelemento?

Información preliminar

En la práctica actual, se pueden encontrar documentos XHTML que proporcionen información sobre el idioma de una página de distintas maneras.

Un método es utilizar los atributos lang y xml:lang en la etiqueta html.

Ejemplo:
<html lang="en" xml:lang="en">

De manera alternativa, puede encontrar documentos que proporcionen esta información mediante un metaelemento.

Ejemplo:
<meta http-equiv="Content-Language" content="en" />

También puede encontrarse información sobre el idioma en el encabezado HTTP que se envía con un documento (véase la última línea en el siguiente ejemplo de un encabezado HTTP).

Ejemplo:
HTTP/1.1 200 OK
Date: Wed, 05 Nov 2003 10:46:04 GMT
Server: Apache/1.3.28 (Unix) PHP/4.2.3
Content-Location: CSS2-REC.en.html
Vary: negotiate,accept-language,accept-charset
TCN: choice
P3P: policyref=http://www.w3.org/2001/05/P3P/p3p.xml
Cache-Control: max-age=21600
Expires: Wed, 05 Nov 2003 16:46:04 GMT
Last-Modified: Tue, 12 May 1998 22:18:49 GMT
ETag: "3558cac9;36f99e2b"
Accept-Ranges: bytes
Content-Length: 10734
Connection: close
Content-Type: text/html; charset=iso-8859-1
Content-Language: en

También vale la pena observar que tanto el metaelemento como el encabezado HTTP admiten una lista de valores. El ejemplo que aparece abajo identifica que los idiomas primarios del documento están en alemán, francés e italiano (en igual medida).

Ejemplo:
<meta http-equiv="Content-Language" content="de, fr, it" />

La pregunta es: ¿cuál de estos métodos es el mejor enfoque?

Respuesta

Para responder esta pregunta, debe distinguirse entre (1) la especificación del idioma utilizado para procesar el contenido, y (2) el uso de metadatos para identificar el público del documento. Se recomienda que los atributos lang y xml:lang se utilicen para lo primero, y que la configuración de Content-Language de HTTP o un metaelemento se utilicen para lo segundo, si fuera necesario y adecuado. El resto de la respuesta intentará explicar esta distinción con más claridad.

Especificación del idioma de procesamiento de textos

Al especificar el idioma de procesamiento de textos, usted identifica el idioma en el que, de hecho, está escrita una extensión de texto específica, de modo que el agente de usuario o las aplicaciones como navegadores de voz o correctores ortográficos pueden manejar con eficacia el texto en cuestión. De manera que, por una cuestión de necesidad, estamos hablando de relacionar un idioma único con una extensión de texto específica. Los elementos encerrados heredan el valor identificado pero, por supuesto, usted puede invalidar una declaración inicial especificando un idioma diferente en elementos incrustados cuando modifique el idioma.

Especificación de metadatos del archivo

Numerosos documentos en la Web contienen fragmentos de contenido incrustados en un idioma diferente del contenido general. Sin embargo, en términos generales, la página aún se dirige a hablantes de un idioma en particular. Por ejemplo, una guía turística en alemán para Pekín puede contener frases útiles en chino, pero el idioma primario de la página es el alemán, es decir, está dirigido a público hablante de ese idioma.

Sin embargo, es posible imaginar una situación donde una página web contiene la misma información en más de un idioma. Por ejemplo, puede ser una página que da la bienvenida a lectores canadienses, con contenido en francés en la columna izquierda, y el mismo contenido en inglés en la columna derecha. Aquí el documento está dirigido por igual a hablantes de ambos idiomas. Esta situación no es tan común en la Web como en el material impreso, dado que es fácil vincular una página separada en la Web para distintos públicos, pero aún es posible.

Puede ser útil emplear metadatos para expresar si un documento en particular se dirige a sus lectores en uno o más idiomas, y cuáles son esos idiomas. Sin embargo, observe que aquí estamos hablando acerca del documento en su conjunto. No decimos que cualquier extensión de texto en particular esté en un idioma en particular, como lo haríamos si estuviéramos especificando el idioma para procesamiento de textos. Ni tampoco enumeramos los idiomas de todos los fragmentos de texto en el documento. Proporcionamos metadatos para indicar quién es el público al que está dirigido el documento.

Selección entre atributos de idioma, encabezados HTTP y metaelementos

Para especificar el idioma de fragmentos dentro de un documento XHTML, no hay otra opción más que utilizar los atributos lang y/o xml:lang en los elementos adecuados. El encabezado HTTP o la información sobre el elemento no son relevantes en este caso.

Por extensión, usted debe especificar el idioma de procesamiento del texto del contenido en su conjunto mediante los atributos lang y/o xml:lang en la etiqueta html. Dado que todos los demás elementos del documento son un subgrupo de la etiqueta html, naturalmente heredan este valor hasta que los atributos adicionales lo invaliden.

Esto se ajusta a las actuales recomendaciones sobre mejores prácticas, y hoy los agentes de usuario existentes reconocen valores de idioma declarados de esta manera cuando aplican un estilo específico del idioma, fuentes predeterminadas para chino, japonés y coreano, etc.

Las declaraciones de idiomas en el encabezado HTTP o los metaelementos deben utilizarse para expresar metadatos acerca de un archivo.

Las siguientes son razones adecuadas para declarar el idioma de procesamiento de textos:

Por otra parte, es muy útil para describir metadatos que un metaelemento o encabezado HTTP puedan especificar más de un idioma a la vez. Dado que los atributos lang y xml:lang describen elementos y se limitan a especificar sólo un idioma a la vez, no son adecuados para esta tarea.

La utilidad de identificar metadatos acerca de un archivo mediante el encabezado HTTP o el metaelemento, así como la elección de cuál es el mejor enfoque, dependen de convenciones para el uso de esa información. Estas cuestiones no están aclaradas en la especificación HTML, pero podrían estar estandarizadas por otras tecnologías como motores de búsqueda u otras herramientas. Por otra parte, no hay inconveniente en utilizar estos conceptos.

Otras consideraciones

Hay problemas potenciales relacionados con el uso del encabezado Content-Language HTTP que se relaciona con el mantenimiento y el empleo de información del área del servidor. Es posible que a muchos autores les resulte difícil acceder a las configuraciones del servidor, particularmente cuando se trata de un ISP. De manera que este enfoque no es una solución que esté disponible siempre.

Además, puede resultar útil para que los encargados de resolución de problemas y los administradores de procesos puedan identificar el o los idiomas de un archivo mirando dentro del documento. Por lo tanto, es útil tener información dentro del documento incluso si emplea el encabezado HTTP.

A propósito

Observe que este análisis es muy diferente del referido al uso de la declaración meta charset y el encabezado charset HTTP. No hay un concepto de etiquetado alternativo en XHTML para declarar la codificación de caracteres de un documento, y el encabezado HTTP prevalece sobre la meta declaración.

Cuando un documento tiene dos o más idiomas primarios iguales, como se describió anteriormente, es difícil saber cómo manejar el elemento título si contiene texto en más de un idioma. Únicamente puede etiquetarse como uno solo, porque no puede contener etiquetas y no puede repetirse.

Dinos qué piensas (en Inglés).

Suscripción a feed RSS.

Nuevos recursos

Noticias de la página de inicio

Twitter (Noticias de la página de inicio)

‎@webi18n

Lecturas complementarias

De: Richard Ishida, W3C. Traductor: Spanish Translation Team, Spanish Translation US..

XHTML 1.0 válido
CSS válido
Codificado en UTF-8

Traducido del inglés con fecha 2004-07-02. Traducción modificada por última vez el 2011-05-04 6:02 GMT.

Para ver el historial de cambios del documento, busque qa-http-and-lang en la bitácora de internacionalización.