ForHosting KIT · Monitorar sites

Analise Accept-Language e ordene preferências de localidade

Accept-Language parece simples, mas interpretá-lo corretamente exige mais do que separar uma string por vírgulas.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Cada faixa de idioma pode ter um valor de qualidade, itens com pesos iguais precisam manter a ordem original e tags malformadas devem ser rejeitadas antes da negociação de conteúdo. Este analisador transforma um cabeçalho em uma lista previsível de preferências de localidade. Ele normaliza a capitalização usual de idioma, escrita e região, preserva curingas, valida a qualidade e entrega o resultado em ordem decrescente para roteamento, testes, registros ou seleção de localidade no aplicativo.

Transforme o cabeçalho em preferências explícitas

Um cabeçalho Accept-Language reúne várias escolhas em pouco texto. O navegador pode enviar uma localidade regional primeiro, um idioma mais amplo depois e um curinga como último recurso. Interpretar esse valor diretamente em cada rota favorece código repetido e respostas inconsistentes em casos extremos. O analisador produz um array de preferências no qual cada registro tem uma localidade e um valor numérico de qualidade. Entradas sem qualidade explícita recebem o valor padrão 1. A lista é ordenada da maior para a menor qualidade, enquanto itens com o mesmo peso mantêm a posição informada pelo remetente. Essa estabilidade importa porque a posição é o único sinal restante quando os pesos coincidem. A capitalização também é normalizada: idiomas ficam em minúsculas, regiões de duas letras em maiúsculas e escritas de quatro letras com inicial maiúscula. O asterisco permanece intacto para que seu aplicativo reconheça uma alternativa geral, sem confundi-la com uma localidade específica.

Rejeite cedo entradas ambíguas ou malformadas

O cabeçalho normalmente vem de um cliente e cruza uma fronteira de confiança. Corrigir silenciosamente pode transformar um erro de digitação em uma escolha inesperada, portanto o analisador rejeita a entrada em vez de tentar adivinhar. A faixa deve começar com um subtag alfabético e pode continuar com subtags alfanuméricos separados por hífen. Sublinhados, espaços internos, subtags vazios e pontuação não são válidos. O único curinga aceito é um asterisco como faixa completa. O parâmetro de qualidade deve usar q com um valor de 0 a 1 e no máximo três casas decimais; números maiores, negativos, parâmetros desconhecidos e ponto e vírgula repetido geram erro. Itens vazios entre vírgulas também são recusados. O limite declarado do cabeçalho mantém o processamento controlado. Assim, falhas aparecem na entrada da API e um cabeçalho parcialmente interpretado não seleciona conteúdo que o cliente jamais solicitou.

Aplique o resultado à negociação de localidade

A saída ordenada foi criada para alimentar a política de correspondência do seu aplicativo. Percorra as preferências e compare cada localidade com as traduções disponíveis. Você pode tentar primeiro a variante regional exata, depois reduzir fr-CA ao idioma base e finalmente usar o curinga ou o padrão do produto. O analisador não escolhe essa política: localidades aceitas, regras de fallback e tratamento da qualidade zero dependem do aplicativo. Separar análise e seleção facilita testes e reutilização em gateways, páginas renderizadas no servidor, API e pipelines analíticos. Também simplifica a investigação quando alguém recebe o idioma errado, pois os logs podem guardar a lista estruturada em vez de um cabeçalho opaco. Em automações, cada solicitação custa US$ 0,002. A versão do navegador executa localmente a mesma lógica determinística, permitindo que você examine cabeçalhos durante o desenvolvimento sem enviar seu conteúdo para outro lugar.

Escolha conteúdo localizado

Converta o cabeçalho do navegador em candidatos ordenados antes de compará-los às localidades disponíveis no site.

Teste clientes e proxies

Confira se navegador, SDK ou gateway envia as faixas de idioma e os pesos esperados.

Normalize logs de requisições

Armazene preferências estruturadas para pesquisar e comparar incidentes de roteamento de idioma com consistência.

O que é retornado?

O resultado contém um array de preferências ordenado por qualidade decrescente. Cada item traz uma localidade normalizada e um valor numérico de qualidade.

O que acontece quando q é omitido?

O item recebe qualidade 1, que é a preferência máxima padrão.

Itens com a mesma qualidade mudam de ordem?

Não. Itens com qualidade igual preservam sua ordem relativa original.

O analisador escolhe uma localidade aceita pelo meu sistema?

Não. Ele interpreta e ordena o cabeçalho; seu aplicativo define correspondência exata, fallback e localidade padrão.

Quais valores malformados geram erro?

Alguns exemplos são tags com sublinhado ou subtags vazios, itens em branco, parâmetros desconhecidos e qualidades fora de 0 a 1 ou com mais de três casas decimais.

Quanto custa uma solicitação de API?

Cada solicitação de API custa US$ 0,002. A ferramenta determinística também pode ser executada localmente nesta página.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/web/accept-language-parse

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/web/accept-language-parse \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"en-US,en;q=0.9,fr-CA;q=0.7,*;q=0.1"}'
{
  "text": "en-US,en;q=0.9,fr-CA;q=0.7,*;q=0.1"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.accept_language_parse",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_chars8192
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →