Qual é a diferença entre <html lang = “en”> e <html lang = “en-US”>?

106

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?

Celeritas
fonte
Você pode encontrar mais detalhes no RFC vinculado às especificações .
James Allardice
1
você está interessado nas diferenças entre navegadores ou na teoria (especificação)?
abril
@deathApril ambos. Quer dizer, isso ajuda ainda mais o navegador a exibir a página?
Celeritas

Respostas:

130

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

A primeira langtag especifica apenas um código de idioma. O segundo especifica um código de idioma, seguido por um código de país.

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?

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.

Quer dizer, isso ajuda ainda mais o navegador a exibir a página?

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.

Jeremy Wiggins
fonte
31
FWIW, as línguas oficiais de Uganda são, na verdade, o inglês e o suaíli.
Muhammad Alkarouri
34
Ha, bom ponto. Quão americano da minha parte. :( Atualizei o exemplo para a Espanha e fiz um pouco de trabalho braçal desta vez para garantir que o inglês não seja o idioma oficial lá também. Obrigado pela dica.
Jeremy Wiggins
@JeremyWiggins, sobre suas últimas 2 linhas em sua resposta, começando com "isso não ajuda o navegador ....". E se o site for internacional (internacionalizado), a configuração da tag de idioma ainda será necessária?
Yustme
4
Em relação às duas últimas linhas - se a página usa hifenização de CSS ( hyphens: auto), o langatributo é necessário para permitir que o navegador selecione o conjunto adequado de regras.
RobertT
1
Além de as configurações de idioma para mecanismos de pesquisa ou leitores de tela serem ajudadas com as configurações de idioma adequadas, há também um efeito tipográfico. Por exemplo, aspas simples <q> </q> só são interpretadas corretamente com as configurações de idioma corretas, diferindo entre de-DE, de-CH, fr e fr-CH, por exemplo.
theking2
8

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.

woz
fonte
O link está inoperante. Se você encontrar um substituto, sinalize para cancelar a exclusão
Taryn
5

Isso deve ajudar: http://www.w3.org/International/articles/language-tags/

A regra de ouro ao criar tags de idioma é manter a tag o mais curta possível. Evite região, script ou outras subtags, exceto onde eles adicionam informações úteis de distinção. Por exemplo, use ja para japonês e não ja-JP, a menos que haja um motivo específico para você precisar dizer que é o japonês falado no Japão, e não em outro lugar.

A lista abaixo mostra os vários tipos de subetiqueta disponíveis. Iremos trabalhar nosso caminho através deles e como eles são usados ​​nas seções a seguir.

language-extlang-script-region-variant-extension-privateuse

Alfred D'Souza
fonte
1
Alguns aplicativos de software padronizam a ortografia e localização dos EUA quando opções genéricas em inglês são escolhidas, por exemplo, o Windows faz isso para o pacote de idioma inglês. technet.microsoft.com/en-us/library/cc766191(v=ws.10).aspx O Windows (inútil) tem um único pacote de idioma para alguns países que falam vários idiomas, como a Holanda (holandês, não francês), mas quatro para a Espanha (catalão, galego, basco, espanhol). A Bélgica obtém zero, possivelmente porque as várias línguas nacionais são ambas línguas majoritárias em outros países.
Mousey
2

RFC 3066 fornece os detalhes dos valores permitidos (ênfase e links adicionados):

Todas as subetiquetas de 2 letras são interpretadas como códigos de país ISO 3166 alfa-2 de [ISO 3166] , ou posteriormente atribuídas pela agência de manutenção ISO 3166 ou órgãos de padronização governantes, denotando a área à qual essa variante de idioma se refere.

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:

As marcas com segundas subetiquetas de 3 a 8 letras podem ser registradas na IANA, de acordo com as regras do capítulo 5 deste documento.

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):

Tipo: variante

Subtag: scouse

Descrição: Scouse

Adicionado: 18/09/2006

Prefixo: en

Comentários: dialeto inglês de Liverpudlian conhecido como '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:

Navegadores e outros aplicativos podem usar informações sobre o idioma do conteúdo para fornecer aos usuários as informações mais adequadas ou para apresentar as informações aos usuários da maneira mais apropriada. Quanto mais conteúdo for marcado e marcado corretamente, mais úteis e difundidos esses aplicativos se tornarão.

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.

James Allardice
fonte
0

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.

olá
fonte
-1

Bem, a primeira pergunta é fácil. Existem muitos ens (ingleses), mas (principalmente) apenas um inglês americano. Seria acho que existem en-CN, en-GB, en-AU. Acho que pode até haver inglês austríaco, mas isso é mais sim, você pode do que sim.

Wes Miller
fonte
6
EN-UK is en-gb ... veja aqui uma boa lista de 10 englishes andiamo.co.uk/language-resources/iso-language-codes.aspx
Codemwnci
1
mas há apenas um zulu! : o)
Codemwnci