Participar do teste de origem para redução de aceitação de idioma

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.

Atual
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Proposta
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:

  1. 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.
  2. Adicione Content-Language ao cabeçalho de resposta HTTP para indicar os idiomas destinados ao público-alvo.
  3. Adicionar Variants ao cabeçalho de resposta HTTP para indicar sites linguagens compatíveis.
  4. [Opcional] Adicione Vary: Accept-Language à sua resposta HTTP para criar uma chave de cache para negociação de conteúdo.
  5. 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:

Uma captura de tela do cabeçalho da solicitação com a opção Accept-Language de redução.

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

Os cabeçalhos da resposta inicial que contêm o token do teste de origem.

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:

  1. Remova o cabeçalho Origin-Trial da política Accept-Language Reduction da sua resposta HTTP.
  2. [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 usar Variants com um valor vazio para realizar isso.
  3. [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.