Também disponível em: English · Español · Français · العربية
Códigos de línguas
A lista ISO 639 completa com as três formas de código, e uma resposta clara sobre qual pertence à sua marcação.
O que são os códigos ISO de línguas
Um código de língua é o identificador curto que se põe num atributo lang de HTML, num nome de ficheiro, num cabeçalho Accept-Language ou numa coluna de base de dados. Há três formas. A ISO 639-1 é a de duas letras, a conhecida: pt, en, de. A ISO 639-2 é de três letras e abrange muitas mais línguas. A ISO 639-3 vai ainda mais longe, até cerca de sete mil.
Esta página lista a ISO 639-2 inteira, directamente da Biblioteca do Congresso, que é a autoridade de registo da norma. São 487 linhas: 486 línguas mais uma entrada que não é língua nenhuma e que a tabela assinala. Cada linha mostra o código de duas letras quando existe, os dois códigos de três letras e qual deve usar.
Essa última coluna existe por causa de algo que a norma faz e que apanha muita gente desprevenida: para vinte línguas há dois códigos de três letras diferentes, ambos oficiais e ambos em vigor. Nenhum é gralha nem um nome herdado.
Como usar esta página
- Procure pelo nome ou por qualquer um dos três códigos. Escrever «de», «ger», «deu» ou «alemão» leva à mesma linha, e o nome na sua língua também. As correspondências exactas de código vêm primeiro, o que importa porque «is» é o código do islandês e ao mesmo tempo uma subcadeia de dezenas de nomes.
- Marque o filtro para ver apenas as vinte ambíguas. São as línguas em que os dois códigos de três letras divergem. A lista por baixo da tabela mostra cada par lado a lado com a razão da diferença.
- Veja a coluna «use este» e copie dali. Dá o código de duas letras quando existe e o terminológico de três letras nos restantes casos, que é o que a BCP 47 exige e portanto o que pertence ao HTML, ao HTTP e a tudo o que um navegador leia.
Porque vinte línguas têm dois códigos
A ISO 639-2 atribui códigos segundo dois princípios diferentes que, em vinte línguas, não coincidem. O código bibliográfico segue o nome inglês da língua: o alemão é ger, o francês fre, o chinês chi, o neerlandês dut, o galês wel. O código terminológico segue o nome que os falantes lhe dão: Deutsch dá deu, français dá fra, Zhōngwén dá zho, Nederlands dá nld, Cymraeg dá cym.
Os códigos bibliográficos existem porque os catálogos de biblioteca foram construídos sobre eles muito antes de alguém precisar de etiquetar a língua de uma página web, e mudá-los teria partido todos os ficheiros do mundo. Os terminológicos existem porque nomear uma língua como lhe chamam os seus falantes é o princípio melhor. Sobreviveram os dois, portanto ambos estão em vigor, e qual é «o correcto» depende de estar a catalogar um livro ou a etiquetar um documento.
As vinte são o albanês, o arménio, o basco, o birmanês, o chinês, o checo, o neerlandês, o francês, o georgiano, o alemão, o grego, o islandês, o macedónio, o malaio, o maori, o persa, o romeno, o eslovaco, o tibetano e o galês. Todas as outras línguas da norma — 466 — têm um só código de três letras e nenhuma ambiguidade.
Há um padrão que vale a pena notar, e não é coincidência: as vinte são línguas cujo nome inglês difere muito daquele que os próprios falantes usam. Ninguém teve de escolher entre dois códigos para o japonês, porque jpn serve pelos dois caminhos.
Qual usar realmente
Para a web, nenhum dos dois. Use o de duas letras, e isto não é preferência: é o que a especificação diz. A BCP 47, a norma por trás do atributo lang do HTML, do cabeçalho Accept-Language e de todas as APIs de língua dos navegadores, exige a subetiqueta mais curta disponível. Quando uma língua tem código ISO 639-1, esse código é a única etiqueta correcta e as formas de três letras são simplesmente erradas nesse contexto.
Isso resolve a ambiguidade por completo, e a razão é uma propriedade e não um acaso: as vinte línguas com dois códigos de três letras têm também um código de duas letras. Verificamos isso em vez de o afirmar, porque uma única excepção quebraria a regra. Portanto a web nunca tem de escolher entre ger e deu: usa de, e ambas as grafias de três letras se canonizam exactamente nisso, coisa que também verificamos.
A ambiguidade só o alcança se trabalhar com códigos de três letras: registos MARC, alguns formatos de legendas, bases terminológicas antigas, tudo o que siga a prática das bibliotecas. Aí a convenção costuma ser a bibliográfica, e o prudente é dizer no seu esquema qual das duas usa, em vez de assumir que quem o ler partilha o seu critério.
Limites honestos
A maioria das línguas não tem código de duas letras. Só 183 das 486 o têm; as outras 303 têm três letras e nada mais curto. O cebuano, falado por mais de vinte milhões de pessoas, é ceb e não tem forma ISO 639-1. Portanto uma coluna char(2) não consegue guardar a maior parte das línguas do mundo, e um selector de língua construído a partir da lista de duas letras está a excluir em silêncio a maioria delas.
Uma linha do ficheiro não é uma língua. A entrada qaa-qtz é um intervalo que representa 520 códigos reservados para uso privado: qualquer pessoa os pode usar internamente para uma língua que a norma não cobre, e nenhum será alguma vez atribuído. A tabela mostra-a como uma linha e identifica-a, em vez de fingir que é uma língua ou de a descartar em silêncio.
Os nomes localizados vêm do Unicode CLDR, que não tem nome para todas as entradas. Os códigos colectivos como «línguas banto» e muitas línguas antigas ou construídas não têm nome no CLDR em língua nenhuma, portanto essas linhas recorrem ao nome inglês da autoridade de registo. Cerca de 419 das 486 estão nomeadas em cada língua, e o número exacto difere ligeiramente entre elas — que é precisamente o aspecto de uma lacuna real nos dados, por oposição a uma pesquisa que falha.
Por fim, isto é a ISO 639-2 e não a 639-3. A norma maior abrange cerca de sete mil línguas, quase todas as que alguma vez foram documentadas, e é mantida à parte pela SIL International. Se lhe falta aqui uma língua, é lá que deve procurar.
Porque é grátis
Porque é uma tabela e uma caixa de procura. A lista inteira está na página que já carregou, a pesquisa corre no seu navegador e nada do que escreve sai dali.
Portanto não há conta, nem registo, nem nada guardado atrás de um. O gerador que constrói isto a partir da lista da Biblioteca do Congresso e do Unicode CLDR está no repositório ao lado da página, com as 2011 verificações que conferem os códigos, os vinte pares ambíguos e a propriedade da BCP 47, incluindo os controlos negativos que impedem esses testes de passar pela razão errada.