Accept-Language

O cabeçalho HTTP Accept-Language anuncia quais linguas o cliente é capaz de entender, e qual é a preferência do variante do Locale. (Por Linguas, queremos dizer linguas como Inglês e portugues) Usando content negotiation, o servidor seleciona uma das propostas, usa ela e informa o cliente da sua escolha com o Content-Language cabeçalho de responsta. Navegadores configuram valores adequados para este cabeçalhos de acordo com a língua configurada pelo usuario. 

Este cabeçalho é uma dica a ser usada pelo servicor quando ele não possui outra forma de determinar a lingua do cliente, como uma URL específica, que é controlada por uma decisão explicita do usuário. É recomendado que o servidor nunca sobreescreva uma decisão explícita. O conteúdo de Accept-Language está comumente fora do controle do usuário (em uma viagem a outro país por exemplo); O usuário pode querer acessar a pagina em outra lingua diferente da decidida pelo navegador.

Se o servicor não encontrar uma língua correspondente, ele pode, teóricamente responder com o código de erro406 (Not Acceptable) . Mas, para uma melhor experiencia de usuário, iss o raramente é feito. Mais comumente, quando isso ocorre, o cabeçalho é ignorado.

Tipo de Cabeçalho Request header
Forbidden header name no
CORS-safelisted request-header (en-US) yes

Syntax

Accept-Language: <language>
Accept-Language: *

// Multiple types, weighted with the quality value (en-US) syntax:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

Diretivas

<language>

A tag language (a qual pode ser chamada de "identificador de Locale") consiste de uma tag de 2 a 3 letras representando a lingua, opcionalmente pode ser seguida de um '-' separa outras informações extras. A mais comum informação extra é a região do país (como'pt-BR' ou 'pt-PT') ou o tipo do alfabeto a ser usado (como'sr-Latn'). Outras variantes como o tipo de ortografia ('de-DE-1996') normalmente não são utilizadas no contexto deste cabeçalho.

*
Qualquer lingua; '*' é utilizado como curinga.
;q= (q-factor weighting)
Any value placed in an order of preference expressed using a relative quality value (en-US) called weight.

Examples

Accept-Language: de

Accept-Language: de-CH

Accept-Language: en-US,en;q=0.5

Specifications

Specification Title
RFC 7231, sessão 5.3.5: Accept-Language Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
BCP 47 Tags for the Identification of Language

Compatibilidade com navegadores

BCD tables only load in the browser

See also