1001Ferramentas
🌐Dev

Accept-Language Ordenar por q

Faz parse do header Accept-Language e ordena por qualidade (q).

Ordenado

Ler o Accept-Language na ordem certa

O cabeçalho Accept-Language chega do navegador como uma lista aparentemente arrumada, mas a ordem em que os idiomas aparecem no texto não é a ordem de preferência. Quem manda é o parâmetro q, o fator de qualidade, que vai de 0 a 1. Um item sem q vale 1 por padrão. Então "en;q=0.5,pt-BR" tem português na frente, mesmo escrito depois.

Cole o cabeçalho como ele chega na requisição e a página separa cada entrada, lê o q de cada uma e reordena da maior preferência para a menor, mostrando o valor efetivo ao lado. Serve tanto para conferir o que um navegador de verdade está enviando quanto para entender por que uma negociação de idioma no servidor escolheu o idioma que escolheu.

Um detalhe que costuma confundir: pt-BR e pt são valores diferentes, e um servidor que só compara strings exatas não encontra "pt" quando o cliente pede "pt-BR". A regra de casamento da RFC 4647 manda truncar o rótulo por hífens até achar correspondência — a página ordena, mas quem decide o casamento é a sua aplicação. Um q=0 tem sentido próprio: significa "não me mande isso", não "tanto faz".

Perguntas frequentes

O que acontece quando dois idiomas têm o mesmo q?
A especificação não define desempate, e cada servidor resolve à sua maneira — a prática mais comum é manter a ordem em que apareceram no cabeçalho, que é o que esta página faz. Se o desempate importa para o seu caso, não confie nele: trate a preferência do usuário explicitamente.
O asterisco no fim significa o quê?
O * é o curinga que casa com qualquer idioma não citado. Ele costuma vir com q baixo, como em "pt-BR,pt;q=0.9,*;q=0.1", e é a forma do cliente dizer que aceita qualquer coisa se nenhuma das preferências estiver disponível.
Posso confiar nesse cabeçalho para escolher o idioma do site?
Como padrão inicial, sim, e é melhor que adivinhar por endereço IP. Mas ele reflete a configuração do sistema operacional, que nem sempre é a preferência da pessoa naquele momento. O caminho seguro é usar o cabeçalho na primeira visita, oferecer um seletor visível e guardar a escolha.

Ferramentas Relacionadas