idioma + valor da região do atributo lang HTML5


11

Estou trabalhando em um site que oferecerá conteúdo localizado seguindo a language+regionabordagem descrita nesta página do W3.org (por exemplo, fr-CApara conteúdo em francês canadense e fr-FRpara conteúdo em "francês francês"). Como consideramos o conteúdo de cada um language+regioncomo único, é crucial para nós que os mecanismos de pesquisa identifiquem e veiculem adequadamente o conteúdo.

Ao pesquisar na Internet (por exemplo, esta pergunta ), parece que a maioria das pessoas recomenda o uso de um código de idioma ISO639 no langatributo HTML para descrever o idioma do conteúdo. Seguindo essa recomendação, usaríamos o <html lang="fr">que não permitiria a diferenciação entre as language+regioncombinações mencionadas acima .

Ao revisar a especificação HTML4 , parece que usar language+regioncomo código de linguagem seria perfeitamente bom, pois o en-USexemplo é dado como um valor possível. No entanto, não consegui encontrar nenhuma confirmação disso na especificação HTML5, que parece não fornecer nenhum exemplo quanto aos possíveis valores permitidos.

A partir daí, tentei obter uma resposta de fato olhando o que os gigantes da web estão fazendo. Eu observei o que o Facebook está fazendo: eles oferecem versões em francês e francês francês dos sites da Candian com conteúdo (ligeiramente) diferente, enquanto o langvalor do HTML permanece o mesmo:


URL fr-CA : http://fr-ca.facebook.com
Atributo HTML lang: <html lang="fr">
tradução da palavra 'email':courriel


URL fr-FR : http://fr-fr.facebook.com/
Atributo HTML lang: <html lang="fr">
tradução da palavra 'email':Adresse électronique

Qual é a maneira recomendada / padrão de descrever o conteúdo localizado usando a language+regionabordagem em HTML5?

Respostas:


5

O W3C fornece este guia muito longo sobre a escolha de tags / subtags de idioma.

Os bits importantes:

A sintaxe da tag de idioma é definida pelo BCP 47 da IETF . No passado, era necessário consultar listas de códigos em vários padrões ISO para encontrar as subtags corretas, mas agora você só precisa procurar no Registro de sub-etiquetas de idiomas da IANA . Vamos descrever o novo registro abaixo.

Este artigo fornece conselhos sobre como escolher os componentes de uma marca de idioma. Para uma visão geral dos conceitos definidos no BCP 47, consulte Tags de idioma em HTML e XML .

...

Existem ferramentas disponíveis que fornecem ajuda adicional ao pesquisar o registro, como a ferramenta Pesquisa de subtags de idioma de Richard Ishida .

...

Verifique se você possui o idioma correto. Às vezes, vale a pena verificar algumas alternativas. Mark Davis, co-autor do BCP47, escreve "Muitas vezes não está claro qual identificador de idioma usar. Por exemplo, o que a maioria das pessoas chama de Punjabi no Paquistão realmente tem o código 'lah' e o nome formal 'Lahnda'. Existem muitos outros casos em que o mesmo nome é usado para idiomas diferentes ou onde o nome que as pessoas pesquisam não está listado no registro da IANA. "

Você pode procurar informações sobre o idioma no Ethnologue SIL e fazer referência cruzada dessas informações com a Wikipedia . O Ethnologue usa os mesmos códigos de três letras do BCP47, mas você precisará converter os códigos de duas letras do BCP47 em seu equivalente ISO 639-3 para procurar um idioma por código. ( A ferramenta de Richard Ishida faz isso por você.)

Há um pequeno número de casos em que códigos de idiomas diferentes estão disponíveis para o que muitas pessoas considerariam o mesmo idioma, por exemplo. Filipino e Tagalo, ou Twi e Akan. Não há indicação no registro sobre qual você deve usar, mas tente garantir que, dentro de um único aplicativo ou contexto, você seja consistente.

(Ênfase minha.)

Deve-se observar que o registro de sub-etiqueta de idioma da IANA é meio difícil de usar. Com exceção das tags de entrada (como en-GB-oed), você deve procurar a tag da família de idiomas e as sub-tags de região / variante separadamente. E as tags / subtags são organizadas por tipo e não por hierarquia. Então, poupe tempo e problemas e use a incrível ferramenta de pesquisa de Richard Ishida .


2

Usando <html lang="fr-FR">e <html lang="fr-CA">está bem, se eles correspondem ao conteúdo real. Mas eles são ignorados pelos mecanismos de pesquisa, exatamente como <html lang="fr">são.

HTML5 não significa alterar o uso de códigos de idioma. O sistema dos códigos, conforme definido no BCP 47 e suas extensões, é muito elaborado e permite especificar uma variante de idioma com precisão dolorosa. O estado da arte está em níveis muito, muito mais simples, e fr-FR e fr-CA representam a melhor granularidade que você pode obter atualmente em software; frequentemente, apenas o código principal (aqui, fr) é importante.

Não há evidências de que os mecanismos de pesquisa realmente prestem atenção a quaisquer declarações de código de idioma, como langatributos. Outros softwares, como hifenizadores, verificadores ortográficos, sintetizadores de fala e algoritmos de seleção de fonte padrão, podem levar langem consideração os atributos. Mas os mecanismos de pesquisa realizam suas análises heurísticas com base no conteúdo real.

É difícil culpá-los por isso, pois isso produz melhores resultados do que confiar nos langatributos. Por exemplo, muitas ferramentas de criação geram automaticamente lang="en"independentemente do conteúdo real, sem informar o autor.


2

[Esta não é minha área mais forte, por isso estou apenas citando a documentação aqui, mas parece que você ignorou alguma coisa.]

A especificação HTML5 requer que o langvalor seja uma tag BCP 47 válida . Nesse documento, o bit relevante parece estar na seção 3.4:

Por exemplo, uma implementação pode mapear os intervalos de idioma estendidos para intervalos básicos. Outra possibilidade seria uma implementação retornar a tag correspondente que é a primeira na ordem ASCII. Se o intervalo de idiomas fosse "* -CH" ('CH' representa a Suíça) e o conjunto de tags incluísse "de-CH" (alemão usado na Suíça), "fr-CH" (francês, Suíça) e "it -CH "(italiano, Suíça), a tag" de-CH "seria retornada.

... que, quando você olha, é basicamente o que você obteve da especificação do HTML 4, citando a RFC1766, apenas com muito mais detalhes.


Estou com dificuldades para localizar o parágrafo que você citou (procurei algumas de suas palavras-chave no link que forneci e na seção 3.4 e não consegui encontrar nada). Você pode me fornecer um link para isso, por favor? (idealmente com tag hash, se possível).
Max

A especificação do HTML 5 refere-se apenas ao formato necessário. O bit citado é do link BCP 47, no qual esse formato foi realmente definido.
Su '
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.