¿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?
Respuestas:
La primera
lang
etiqueta solo especifica un código de idioma. El segundo especifica un código de idioma, seguido de un código de país.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.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.
fuente
hyphens: auto
), entonceslang
se requiere el atributo para permitir que el navegador seleccione el conjunto de reglas adecuado.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.
fuente
Esto debería ayudar: http://www.w3.org/International/articles/language-tags/
fuente
RFC 3066 proporciona los detalles de los valores permitidos (énfasis y enlaces agregados):
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:
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
):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:
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.
fuente
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.
fuente
Bueno, la primera pregunta es sencilla. Hay muchos
en
s (ingleses) pero (en su mayoría) solo un inglés estadounidense. Uno se imaginaría que hayen-CN
,en-GB
,en-AU
. Supongo que incluso podría haber inglés austriaco, pero eso es más sí que sí que sí.fuente