¿Cuál es la diferencia entre <html lang = “en”> y <html lang = “en-US”>?


106

¿Cuál es la diferencia entre <html lang="en">y <html lang="en-US">? ¿Qué otros valores pueden seguir al guión?

Según w3.org "Cualquier subcódigo de dos letras se entiende como un código de país [ISO3166]". Entonces, ¿eso significa que cualquier valor listado bajo el código alfa-2 es un valor aceptado?


Puede encontrar más detalles en el RFC vinculado en la especificación .
James Allardice

1
¿Le interesan las diferencias entre los navegadores o la teoría (especificación)?
Aprillion

@deathApril ambos. Quiero decir, ¿esto ayuda de alguna manera más al navegador a mostrar la página?
Celeritas

Respuestas:


130

<html lang="en">
<html lang="en-US">

La primera langetiqueta solo especifica un código de idioma. El segundo especifica un código de idioma, seguido de un código de país.

¿Qué otros valores pueden seguir al guión? Según w3.org "Cualquier subcódigo de dos letras se entiende como un código de país [ISO3166]". Entonces, ¿eso significa que cualquier valor listado bajo el código alfa-2 es un valor aceptado?

Sí, sin embargo, el valor puede tener o no un significado real.

<html lang="en-US">esencialmente significa "esta página está en el estilo de inglés de los Estados Unidos". De manera similar, <html lang="en-GB">significaría "esta página está en el estilo de inglés del Reino Unido".

Si realmente desea especificar una combinación no válida, puede hacerlo. No significaría mucho, pero <html lang="en-ES">es válido según la especificación, según tengo entendido. Sin embargo, esa combinación de idioma / país no servirá de mucho, ya que el inglés no se habla comúnmente en España.

Quiero decir, ¿esto ayuda de alguna manera más al navegador a mostrar la página?

No ayuda al navegador a mostrar la página, pero es útil para motores de búsqueda, lectores de pantalla y otras cosas que podrían leer e intentar interpretar la página, además de los seres humanos.


31
FWIW, los idiomas oficiales de Uganda son en realidad el inglés y el suajili.
Muhammad Alkarouri

34
Ja, buen punto. Qué americano de mi parte. :( Actualicé el ejemplo a España e hice un pequeño trabajo de campo esta vez para asegurarme de que el inglés no sea un idioma oficial allí también. Gracias por el consejo.
Jeremy Wiggins

@JeremyWiggins, sobre las últimas 2 líneas de su respuesta, comenzando con "no ayuda al navegador ...". ¿Qué pasa si el sitio web es internacional (internacionalizado), todavía sería necesario establecer la etiqueta de idioma?
Yustme

4
Con respecto a las dos últimas líneas, si la página usa guiones de CSS ( hyphens: auto), entonces langse requiere el atributo para permitir que el navegador seleccione el conjunto de reglas adecuado.
RobertT

1
No solo se ayuda a la configuración de idioma para motores de búsqueda o lectores de pantalla con una configuración de idioma adecuada, sino que también hay un efecto tipográfico. Por ejemplo, las comillas simples <q> </q> solo se interpretan correctamente con la configuración de idioma correcta que difiere entre de-DE, de-CH, fr y fr-CH, por ejemplo.
theking2

8

Puede usar cualquier código de país, sí, pero eso no significa que un navegador u otro software lo reconozca o haga algo diferente debido a él. Por ejemplo, un lector de pantalla podría manejar "en-US" y "en-GB" de la misma manera si solo admiten un acento estadounidense en inglés. Sin embargo, otra pieza de software que tiene dos voces distintas podría ajustarse según el código del país.


El enlace está inactivo, si encuentra un reemplazo, márquelo para recuperarlo
Taryn

5

Esto debería ayudar: http://www.w3.org/International/articles/language-tags/

La regla de oro al crear etiquetas de idioma es mantener la etiqueta lo más corta posible. Evite regiones, secuencias de comandos u otras subetiquetas, excepto cuando agreguen información de distinción útil. Por ejemplo, use ja para japonés y no ja-JP, a menos que exista una razón particular por la que necesite decir que esto es japonés como se habla en Japón, en lugar de en otros lugares.

La siguiente lista muestra los distintos tipos de subetiquetas disponibles. Trabajaremos nuestro camino a través de estos y cómo se utilizan en las secciones que siguen.

lenguaje-extlang-script-región-variante-extensión-uso privado


1
Algunas aplicaciones de software utilizan de forma predeterminada la ortografía y la localización de EE. UU. Cuando se eligen opciones genéricas en inglés, por ejemplo, Windows hace esto para el paquete de idioma inglés. technet.microsoft.com/en-us/library/cc766191(v=ws.10).aspx Windows (inútilmente) tiene un solo paquete de idioma para algunos países que hablan varios idiomas, como los Países Bajos (holandés, no francés) pero cuatro para España (catalán, gallego, vasco, español). Bélgica obtiene cero, posiblemente porque los múltiples idiomas nacionales son idiomas mayoritarios en otros países.
Mousey

2

RFC 3066 proporciona los detalles de los valores permitidos (énfasis y enlaces agregados):

Todas las subetiquetas de 2 letras se interpretan como códigos de país ISO 3166 alfa-2 de [ISO 3166] , o posteriormente asignados por la agencia de mantenimiento ISO 3166 o los organismos reguladores de normalización, indicando el área a la que se refiere esta variante de lenguaje.

Interpreto que significa que cualquier código de 2 letras válido (según ISO 3166) es válido como subetiqueta. El RFC continúa diciendo:

Las etiquetas con segundas subetiquetas de 3 a 8 letras pueden registrarse en IANA, de acuerdo con las reglas del capítulo 5 de este documento.

Por cierto, parece un error tipográfico, ya que el capítulo 3 parece estar relacionado con el proceso de registro, no con el capítulo 5.

Una búsqueda rápida del registro de la IANA revela una lista muy larga de todas las subetiquetas de idioma disponibles. Aquí hay un ejemplo de la lista (que se usaría como en-scouse):

Tipo: variante

Subetiqueta: scouse

Descripción: Scouse

Agregado: 2006-09-18

Prefijo: en

Comentarios: dialecto de Liverpool en inglés conocido como 'Scouse'

Hay todo tipo de subetiquetas disponibles; ya ha revelado un rápido rollo fr-1694acad(francés del siglo XVII).


La utilidad de algunas de estas etiquetas (yo diría que la gran mayoría), cuando se trata de documentos diseñados para mostrarse en el navegador, es limitada. La especificación de internacionalización del W3C simplemente establece:

Los navegadores y otras aplicaciones pueden usar información sobre el idioma del contenido para entregar a los usuarios la información más apropiada o para presentar información a los usuarios de la manera más apropiada. Cuanto más contenido esté etiquetado y etiquetado correctamente, más útiles y omnipresentes serán dichas aplicaciones.

Estoy luchando por encontrar información detallada sobre cómo se comportan los navegadores cuando se encuentran con etiquetas de diferentes idiomas, pero lo más probable es que ofrezcan algún beneficio a los usuarios que usan un lector de pantalla, que puede usar la etiqueta para determinar el idioma / dialecto / acento. en el que presentar el contenido.


0

El esquema XML requiere que el espacio de nombres xml sea declarado e importado antes de usar xml: lang (y otros valores de espacio de nombres xml) RELAX NG predeclara el espacio de nombres xml, como en XML, por lo que no se necesita ninguna declaración adicional.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.