Qual é a diferença entre <html lang="en">
e <html lang="en-US">
? Que outros valores podem seguir o traço?
De acordo com w3.org "Qualquer subcódigo de duas letras é entendido como um código de país [ISO3166]." então isso significa que qualquer valor listado no código alfa-2 é um valor aceito?
Respostas:
A primeira
lang
tag especifica apenas um código de idioma. O segundo especifica um código de idioma, seguido por um código de país.Sim, porém o valor pode ou não ter algum significado real.
<html lang="en-US">
significa essencialmente "esta página está no estilo inglês dos EUA". De forma semelhante,<html lang="en-GB">
significaria "esta página está no estilo inglês do Reino Unido".Se você realmente quisesse especificar uma combinação inválida, você poderia. Não significaria muito, mas
<html lang="en-ES">
é válido de acordo com a especificação, pelo que entendi. No entanto, essa combinação de idioma / país não fará muito, já que o inglês não é comumente falado na Espanha.Não ajuda o navegador a exibir a página, mas é útil para mecanismos de busca, leitores de tela e outras coisas que podem ler e tentar interpretar a página, além de seres humanos.
fonte
hyphens: auto
), olang
atributo é necessário para permitir que o navegador selecione o conjunto adequado de regras.Você pode usar qualquer código de país, sim, mas isso não significa que um navegador ou outro software irá reconhecê-lo ou fazer algo diferente por causa dele. Por exemplo, um leitor de tela pode lidar com "en-US" e "en-GB" da mesma forma se eles suportarem apenas o sotaque americano em inglês. Outro software que possui duas vozes distintas, porém, pode se ajustar de acordo com o código do país.
fonte
Isso deve ajudar: http://www.w3.org/International/articles/language-tags/
fonte
RFC 3066 fornece os detalhes dos valores permitidos (ênfase e links adicionados):
Eu interpreto isso como significando que qualquer código de 2 letras válido (de acordo com a ISO 3166) é válido como uma subetiqueta. O RFC prossegue afirmando:
A propósito, isso parece um erro de digitação, já que o capítulo 3 parece estar relacionado ao processo de registro, não o capítulo 5.
Uma busca rápida pelo registro da IANA revela uma lista muito longa de todas as subetiquetas de idioma disponíveis. Aqui está um exemplo da lista (que seria usado como
en-scouse
):Existem todos os tipos de subtags disponíveis; um rápido pergaminho já revelou
fr-1694acad
(francês do século 17).A utilidade de algumas dessas tags (eu diria que a grande maioria delas), quando se trata de documentos projetados para exibição no navegador, é limitada. A especificação de internacionalização do W3C simplesmente afirma:
Estou lutando para encontrar informações detalhadas sobre como os navegadores se comportam ao encontrar tags de idiomas diferentes, mas eles provavelmente vão oferecer algum benefício aos usuários que usam um leitor de tela, que pode usar a tag para determinar o idioma / dialeto / sotaque no qual apresentar o conteúdo.
fonte
O esquema XML requer que o namespace xml seja declarado e importado antes de usar xml: lang (e outros valores de namespace xml) RELAX NG pré-declara o namespace xml, como em XML, portanto, nenhuma declaração adicional é necessária.
fonte
Bem, a primeira pergunta é fácil. Existem muitos
en
s (ingleses), mas (principalmente) apenas um inglês americano. Seria acho que existemen-CN
,en-GB
,en-AU
. Acho que pode até haver inglês austríaco, mas isso é mais sim, você pode do que sim.fonte