A redução de linguagem de aceitação é um esforço para reduzir o uso de técnicas de impressão digital passivas
superfícies reduzindo as preferências de idioma do usuário na
Accept-Language
e envia apenas o idioma de preferência do usuário (apenas um).
A partir da Chrome 109
Beta, vamos abrir
o teste de origem
para redução de idioma de aceitação. Assim, os sites podem optar por receber o
Cabeçalho Accept-Language
. Isso permite que os sites descubram e corrijam problemas
antes que a Accept-Language
reduzida se torne o comportamento padrão no Chrome
versão futura. Para testar o recurso antes do lançamento para uma população estável, verifique
ative e teste antes da data de lançamento do Chrome 109 (atualmente
agendado para 10 de janeiro de 2023).
Confira abaixo os exemplos de cabeçalho Accept-Language
antes e depois da redução.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Confira abaixo uma visão geral do teste de origem e o que esperar. Você pode compartilhar feedback sobre essa mudança ou qualquer problema encontrado durante o teste de origem em a página do GitHub da Accept-Language Reduction repositório.
O que é Accept-Language?
A Aceitar idioma é compartilhada em cada solicitação HTTP e exposta em JavaScript para todos recursos carregados pelo navegador. Atualmente, ele contém todos os atributos idiomas preferidos.
Por que o Accept-Language está sendo reduzido?
A redução de linguagem de aceitação é um esforço para reduzir o uso de técnicas de impressão digital passivas plataformas no Chrome.
No momento, o cabeçalho Accept-Language
é compartilhado por padrão em cada HTTP
e expostos em JavaScript a todos os recursos carregados pelo navegador. Ela
contém todas as preferências de idioma do usuário. Em vez de o navegador enviar
a lista completa de idiomas que o usuário configurou, caso os sites queiram
oferecem conteúdo multilíngue, estamos lançando uma nova forma para os sites indicarem
conteúdo multilíngue, e o navegador será responsável por definir a linguagem
a negociação e exibir o idioma preferido.
Outro motivo é que muitos sites podem não estar usando os cabeçalhos Accept-Language
.
para negociação de idiomas (por exemplo, uma
estudo indica que apenas 7,2% das
10.000 principais sites usam Accept-Language
). O modo de navegação anônima do Chrome já reduziu
Accept-Language
para um.
O que isso significa para os desenvolvedores Web?
Os sites que dependem do Accept-Language
para negociar idiomas precisam
prepare-se para receber Accept-Language
reduzidos e considere participar do
teste de origem. Os valores reduzidos de Accept-Language
aparecerão em:
- O cabeçalho da solicitação HTTP
Accept-Language
. - O getter do JavaScript
navigator.languages
.
O navegador será responsável pela negociação do idioma para selecionar o
idioma preferido do usuário para enviar aos sites. Para que isso aconteça, os sites precisam
adicionar dois cabeçalhos
Variants
(um novo cabeçalho indica sites com suporte para os idiomas) Accept-Language
e
Content-Language
no
com o cabeçalho de resposta da solicitação (confira o exemplo detalhado abaixo).
Os planos reduzidos de Accept-Language
atualmente não incluem iOS e WebView.
essas plataformas vão continuar recebendo lista completa de Accept-Language
.
O suporte para essas plataformas está planejado para uma data futura.
Teste de origem para redução de aceitação de idioma
Um teste de origem exige que o site participante forneça um token na própria
que informa ao navegador para ativar o teste especificado. No entanto,
significa que, na solicitação inicial do navegador ao site, ele não tem como saber
se o site estiver participando de um teste de origem. Isso significa que o registro
solicitação em uma sessão não vai enviar o Accept-Language header
reduzido.
As solicitações de sub-recursos nessa página, sejam de mesma origem ou de origem cruzada, serão
receber o cabeçalho Accept-Language
reduzido. Navegações subsequentes da mesma origem
também receberá o cabeçalho Accept-Language
reduzido. Navegações de origem cruzada
reverte para o envio do cabeçalho completo, enquanto as solicitações de origem cruzada no
página (como solicitações de iframe de terceiros) ainda enviará a redução de Accept-Language
se a solicitação de frame de nível superior tiver um token de teste de origem válido.
Isso é semelhante ao teste de origem de redução do user agent, e se você quiser para saber mais sobre a implementação interna do Chromium, leia mais em Como implementar o cabeçalho HTTP Accept-Language.
Participar do teste de origem Accept-Language Reduction
Você pode ler mais orientações em Primeiros passos com os testes de origem do Chrome, mas as etapas essenciais são mostradas abaixo.
Etapa 1
Para se registrar no teste de origem e receber um token para seus domínios, faça o seguinte: acesse Teste de redução de idiomas aceitos página.
Etapa 2
Atualize os cabeçalhos de resposta HTTP:
- Adicionar
Origin-Trial: <ORIGIN TRIAL TOKEN>
à resposta HTTP cabeçalho, onde <ORIGIN TRIAL TOKEN
> contém o token que você recebeu quando se registrando para o teste de origem. - Adicione
Content-Language
ao cabeçalho de resposta HTTP para indicar os idiomas destinados ao público-alvo. - Adicionar
Variants
ao cabeçalho de resposta HTTP para indicar sites linguagens compatíveis. - [Opcional] Adicione
Vary: Accept-Language
à sua resposta HTTP para criar uma chave de cache para negociação de conteúdo. - Definir esses cabeçalhos só acionará o idioma do navegador negociação (um possível reinício da solicitação inicial) do dado origem. Para fazer com que os sites exibam a representação de idioma correta para os usuários, você também precisa atualizar os sites que enviam o conteúdo com base no o cabeçalho Accept-Language do usuário (veja o exemplo abaixo).
Etapa 3
Carregue seu site no Chrome M109 Beta (ou versão mais recente) e comece a receber os string Accept-Language reduzida.
Envie problemas ou feedback para o GitHub de redução de linguagem de aceitação repositório.
Demonstração
Para a demonstração de um site multilíngue que aceitou o teste de origem (junto com o código-fonte) consulte https://reduce-accept-language.glitch.me/.
Para uma demonstração da ativação e desativação do teste de origem (junto com o o código-fonte), consulte https://reduce-accept-language-ot.glitch.me/.
Por exemplo, example.com
oferece suporte a ja
(japonês) e en
(inglês). Um
pode ser:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
O site sabe que o usuário prefere conteúdo em inglês com base no aceitar-idioma. Os cabeçalhos de resposta podem incluir:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Se o usuário preferir conteúdo em japonês, a solicitação será:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
Nesse caso, o site responde com cabeçalhos para conteúdo em japonês:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
No lado do servidor, o site pode estar procurando suporte a idiomas específicos, mas Vamos voltar ao padrão se nenhum suporte for detectado:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
No exemplo acima, example.com
responde en
ou ja
com base na
Valor Accept-Language
. O padrão será en
se não houver correspondência. Nesse caso, o
site também pode fornecer redirecionamentos para as páginas nos idiomas correspondentes em /en
ou
/ja
com base no valor de Accept-Language
. Confira exemplos detalhados relacionados
redirecionamentos em
documento de implementação.
Suporte ao teste de origem de terceiros
No momento, não é possível registrar seus domínios como um
terceiro para o teste.
Se você opera um serviço que é implementado como um sub-recurso entre origens
(como no caso da veiculação de anúncios ou análise), você só recebe o
Cabeçalho Accept-Language
se o site de nível superior estiver participando da origem
julgamento.
Validar se o teste de origem está funcionando
O guia para resolver problemas de testes de origem do Chrome; fornece uma lista de verificação completa para garantir que seu token esteja configurado corretamente.
Você configura vários idiomas e a prioridade deles a partir de
chrome://settings/languages
ou Configurações → Idiomas. Considere selecionar um
idioma com suporte no seu site não e mova-o para o topo da lista
para garantir o acionamento da renegociação adicional.
Os cabeçalhos da resposta inicial que contêm o token do teste de origem devem ter a aparência como:

Os cabeçalhos de solicitação subsequentes contendo a classe Accept-Language reduzida têm esta aparência:

Parar de participar do teste de origem
A qualquer momento durante o teste, você pode interromper a participação e receber a lista completa de Accept-Language do usuário. Para deixar de participar:
- Remova o cabeçalho
Origin-Trial
da política Accept-Language Reduction da sua resposta HTTP. - [Opcional] Remova o cabeçalho
Variants
, que é adicionado para ativar teste de origem na sua resposta HTTP se não tiver interesse em enviar neste cabeçalho. Também é possível usarVariants
com um valor vazio para realizar isso. - [Opcional] Remova o cabeçalho
Content-Language
, que é adicionado à ativar o teste de origem na sua resposta HTTP se não tiver interesse em ao enviar esse cabeçalho.
Duração do teste de origem
o teste de origem com a opção de aceitar/reduzir o idioma vai durar pelo menos seis meses, o que corresponde a cerca de seis marcos do Chrome. O teste de origem vai aparecer na versão M109 e terminam na versão M114. Isso significa a última versão do Chrome com o teste disponíveis). Nesse momento, o Chrome vai avaliar o feedback da origem antes de prosseguir com o envio da string Accept-Language reduzida em um em fases: primeiro reduza o cabeçalho HTTP Accept-Language e, em seguida, JS. Se um site precisar de mais tempo para teste, ele poderá ativar uma teste de origem, o que permitiria acessar a versão completa a string Accept-Language por pelo menos mais seis meses. Vamos publicar mais detalhes sobre o teste de descontinuação quando ele estiver pronto.
Compartilhar feedback
Envie problemas ou feedback para o GitHub de redução de linguagem de aceitação repositório.