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 | yes |
Syntax
Accept-Language: <language> Accept-Language: * // Multiple types, weighted with the quality value 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 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 |
Browser compatibility
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
See also
- HTTP content negotiation
- Header with the result of the content negotiation:
Content-Language
- Other similar headers:
TE
,Accept-Encoding
,Accept-Charset
,Accept