Não tente adivinhar meu idioma
(vitonsky.net)- Quando um serviço web define o idioma exibido com base na geolocalização por IP, usuários com VPN, viajando, morando no exterior ou em países multilíngues podem ver um idioma indesejado
- País e idioma não têm uma relação 1:1: a Bélgica usa 3 idiomas oficiais, a Suíça usa 4, a Índia usa 22, e o Canadá é oficialmente bilíngue
- O navegador envia o cabeçalho Accept-Language com base nas configurações do sistema operacional ou do navegador; um exemplo é
Accept-Language: en-US,en;q=0.9,de;q=0.8 - Uma implementação melhor é priorizar
Accept-Languagee lembrar o idioma alterado manualmente pelo usuário em cookies ou parâmetros de URL - É melhor usar GeoIP em áreas que exigem localização, como moeda, entrega e requisitos legais, e não na seleção de idioma, para distorcer menos as preferências do usuário
A geolocalização por IP não informa a preferência de idioma
- Um endereço IP mostra apenas de onde a solicitação veio; ele não informa qual idioma o usuário quer ou entende
- Em casos de VPN, viagens, residência no exterior ou países com vários idiomas oficiais, a escolha de idioma baseada em IP erra facilmente
- Países e idiomas não se correspondem de forma simples
- Bélgica: 3 idiomas oficiais
- Suíça: 4 idiomas oficiais
- Índia: 22 idiomas oficiais
- Canadá: oficialmente bilíngue e, informalmente, um ambiente multilíngue
- Usuários de VPN podem ver idiomas aleatórios sempre que o IP muda, e há casos em que, ao acessar o Google, aparece um idioma que eles não entendem
- Quando um banco de dados de IP incorreto é priorizado em relação às informações de idioma do navegador, o usuário recebe um idioma de UI indesejado
O Accept-Language do navegador deve ter prioridade
- Todos os navegadores enviam o cabeçalho
Accept-Languagecom os idiomas preferidos do usuário - Esse valor se baseia nas configurações do sistema operacional ou do navegador, não na localização nem no IP
- Exemplo:
Accept-Language: en-US,en;q=0.9,de;q=0.8
- Um fluxo de tratamento razoável é simples
- Ler o
Accept-Language - Respeitar esse valor
- Permitir que o usuário altere o idioma se precisar
- Lembrar a escolha alterada em um cookie ou parâmetro de URL
- Ler o
- Mesmo quando GeoIP for necessário, o adequado é limitá-lo a áreas como moeda, entrega e requisitos legais, não ao idioma
1 comentários
Comentários do Hacker News
É realmente irritante não aceitar o Accept-Language
Pior ainda é que muitos sites multilíngues traduzem até o botão de troca de idioma e a lista de idiomas para o idioma atual, um design idiota que destrói o próprio propósito
A Wikipedia faz isso direito. O botão de troca de idioma é claro, com um ícone multilíngue universal, e a lista de idiomas mostra o nome de cada idioma no próprio idioma, geralmente em ordem alfabética, colocando no topo os candidatos mais prováveis
Por exemplo, uma página da Wikipedia em inglês mostra idiomas recomendados como
Deutsch,Français,Nederlands. Se você presume o idioma arbitrariamente, todo mundo acaba se cansando; basta fazer como a WikipediaAlguns têm botão de fechar, mas muitos não têm, o que irrita ainda mais
中文eItalianoaparecem como recomendações, e o restante estava agrupado por região geográfica, sem ser exatamente em ordem alfabéticaNa parte da Europa parece haver um grupo em alfabeto cirílico, mas
Қазақшаaparece depois deУкраїнська, o que não é correto nem pelo critério do cazaque e pode ser inesperado para quem não conheceҚ. As variantes do chinês também não parecem estar ordenadas por número de traços, e o coreano fica abaixo delasA localização da Wikipedia é excelente, mas isso é só um pequeno complemento sobre como “ordenar alfabeticamente” fica ambíguo quando os nomes dos idiomas são exibidos no próprio idioma
O documento de suporte do Google https://support.google.com/youtube/answer/87604 explicava em inglês quais botões apertar, mas eu não sabia amárico e, na época, nem sabia que idioma era aquele. A tradução do iPhone também não reconhecia esse idioma etíope
Foi uma situação constrangedora que poderia ter sido facilmente evitada com um único ícone multilíngue universal
Mas, quando aparece um sistema de escrita desconhecido, como o bengali, vira um problema
Por isso, talvez seja uma boa ideia incluir inglês e chinês em forma não localizada em todos os menus de seleção de idioma, como rota de fuga. Quase todos os usuários da web conseguiriam reconhecer o suficiente para tatear pelo menu e encontrar seu idioma de verdade
Odeio também a “funcionalidade” do YouTube que traduz automaticamente os títulos dos vídeos para o idioma configurado. Eu entendo inglês; não preciso dessas traduções automáticas, e elas são realmente incômodas
Se eu não sei o idioma, aquele vídeo provavelmente não é para mim. Vídeos voltados a um público internacional em geral estão em inglês ou, pelo menos, foram traduzidos pelo próprio criador
Títulos são frases curtas, então falta contexto para a tradução. Já vi em português um título como
Vamos assistir uma conexão com o passado; literalmente era “vamos ver uma conexão com o passado”, e precisei fazer a tradução reversa na cabeça para perceber que o título original eraLet's play A Link to the PastMateriais online também são bons para praticar uma segunda língua, então eu gostaria que não subestimassem a minha capacidade. No mínimo, deixem-me ler o original; se eu precisar, posso usar o Google Translate ou um dicionário
Reconheço que esse recurso amplia o acesso a conteúdo online, mas, se piora a experiência, pelo menos deveria ser possível desativá-lo
Algo como
Lidl is worth it, ja!Alguns YouTubers que assisto com frequência estão expandindo os idiomas com faixas de áudio traduzidas feitas por fãs, e às vezes o inglês é uma delas. Sempre que vejo esses vídeos, os trocadilhos ou sentidos ocultos do idioma original desaparecem na tradução, então preciso trocar manualmente para o idioma original toda vez
Como o YouTube não gosta do Firefox e das extensões relacionadas ao YouTube, o vídeo começa antes de todos os controles carregarem; muitas vezes preciso até voltar o vídeo para trocar a faixa de idioma
Em outra resposta linkaram uma extensão que ajuda, então pretendo testar, mas é irritante que nas configurações do YouTube não exista um simples toggle “sempre usar o idioma original”. Quando eu quiser áudio traduzido, posso ativar manualmente; como falo algumas línguas em certo nível, isso é raro no conteúdo que assisto
Se a intenção fosse atrapalhar bloqueadores de anúncios ou empurrar anúncios, eu até entenderia, mas isso é só um recurso de “conveniência” mal implementado. Ainda assim, imagino que algum PM tenha sido elogiado por isso
Mas, se me mostram um título em norueguês traduzido por máquina e horrível no lugar de um título em inglês que eu consigo ler, pela minha experiência isso é um sinal de que o canal é um canal de baixa qualidade que corre atrás do algoritmo, então acabo clicando em “não recomendar este canal”
Não gosto desse tipo de design porque ele parte da suposição implícita de que “todo mundo entende apenas um idioma”
Consigo ler seu idioma confortavelmente e, em geral, prefiro o original a uma localização ruim. Por isso, quando tentam adivinhar meu idioma preferido com base no IP, quase sempre erram
Eu já informo quais idiomas consigo usar pelas configurações de idioma do navegador, então não há motivo para presumir que o usuário não é inteligente o suficiente para configurá-las corretamente
A dublagem por IA ativada por padrão no YouTube é ainda pior. Em cerca de metade dos vídeos que assisto, preciso abrir o vídeo, clicar nas configurações, desativar a dublagem por IA, voltar para o início e começar de novo. Não demora muito, mas incomoda demais
Também odeio quando o título aparece traduzido. É muito estranho assistir a um vídeo falado em inglês e ver o título em outro idioma
Não sou fluente em espanhol, mas uma das boas maneiras de ficar fluente é consumir conteúdo no idioma original, e o YouTube dificulta isso
O mais irritante é o Google. Ele sabe quem eu sou, sabe que estou viajando e sabe que minha preferência de idioma é inglês, mas em certas páginas ainda mostra o idioma com base na localização
Já que permiti que o Google me rastreie, gostaria que usasse isso não só para anúncios, mas também para uma boa experiência do usuário
Mesmo morando nos EUA, o Google tenta me entregar resultados em espanhol até em buscas relacionadas ao catalão. Por exemplo, prefere a Wikipédia em espanhol. O comportamento do buscador oscilou ao longo dos anos, mas nunca foi bom
É um grande problema para meus filhos, que não entendem espanhol, e também para regiões catalanófonas fora da Espanha, incluindo Andorra
O Gemini facilmente marcava conteúdo em catalão como inseguro e impedia a continuação da conversa. Isso acontecia até com prompts como “resuma este artigo para mim”; talvez tenha melhorado recentemente
O Google de antigamente era um exemplo de grande empresa responsável e sensível à diversidade do mundo. Ainda valorizo os esforços de várias equipes, mas parece claro que isso não é mais uma prioridade
Recentemente, parece ter decidido que é errado traduzir automaticamente para o inglês avaliações do Maps escritas no idioma local. Ele traduz todos os outros idiomas para o inglês, mas presume que, por eu morar naquela região, eu também saiba o idioma local e não precise de inglês
Os resultados de busca são a mesma coisa. Como fiquei lá por bastante tempo, ele acha que obviamente vou querer a Wikipédia no idioma local. Só pesquiso no idioma local porque preciso fazer isso para encontrar informações locais, mas ele interpreta isso como um sinal de preferência
Isso também se aplica à tendência geral de “o software deve ser inteligente e adivinhar todas as preferências”. Como o Google fracassa de forma tão consistente nisso e ainda continua fazendo, é difícil explicar por qualquer coisa que não seja arrogância corporativa equivocada
Ele disse que, por eficiência, há etapas na renderização do conteúdo e que, ao criar a estrutura da página principal, ainda não há informações do usuário. Mas isso não faz sentido, porque mesmo nessa etapa o cabeçalho Accept-Language deveria estar disponível imediatamente
Mudar o país não foi fácil, e eu teria que abrir mão do país antigo e dos apps dele. Como costumo ir e voltar, acabei comprando um segundo celular e criando uma conta para o novo país
É engraçado, porque parece que ele continua fazendo isso já que pode cobrar do anunciante, mesmo sabendo muito bem que eu não entendo
Um princípio muito mais importante é não traduza conteúdo automaticamente para o idioma do usuário
Basta mostrar o idioma em que os dados realmente existem. Se o usuário quiser, ele é inteligente o suficiente para clicar no botão “traduzir” do navegador, e é bem provável que a qualidade dessa tradução seja melhor
Inglês não é minha língua materna nem minha segunda língua, mas entendo bem o suficiente para usá-lo no trabalho todos os dias. Não quero ter que vasculhar uma pilha de lixo traduzido automaticamente para encontrar o botão que mostra a versão original em inglês
Curiosamente, esse problema aparece principalmente com o inglês. Sites em outros idiomas geralmente não fazem isso, e esse fato por si só já é um sinal suficiente de que visitantes estrangeiros detestam isso
Se você pretende usar tradução automática em um site, deveria fazer uma retrotradução em todos os idiomas antes de publicar. Traduza, cole o resultado de volta e traduza novamente para o idioma original; assim você verá mais ou menos qual era o conteúdo que estava prestes a publicar. Melhor não fazer isso
Mesmo que eu não soubesse inglês, acho que esse conteúdo traduzido não valeria a pena
A função para trocar o idioma ou mostrar o original é difícil de encontrar e muda conforme você está no app, na web móvel ou na web desktop
O esforço exagerado para me fazer baixar o app é outro problema à parte
A suposição de que “todos os navegadores enviam o cabeçalho Accept-Language, informam o idioma preferido com base nas configurações do sistema operacional ou do navegador do usuário, e o usuário pode mudar isso se quiser” também está quebrada
Para começar, Accept-Language é uma lista ordenada, mas pessoas que usam vários idiomas no dia a dia muitas vezes têm preferências por assunto, não uma ordem absoluta de preferência
Mesmo que um site de notícias em inglês tenha uma versão traduzida para o francês, e mesmo que a pessoa seja mais fluente em francês, ela pode querer a versão em inglês
Por isso, o usuário acaba especificando o idioma mais prático, não sua preferência real. Por exemplo, sites locais não ingleses tendem a aprontar menos do que sites internacionais em inglês; então, se você configurar o idioma apenas como inglês, os primeiros forçam a exibição em inglês e a maioria dos outros sites é pouco afetada
Pelo contrário, nesses casos ajuda quando um site francês ignora todas as preferências e empurra por padrão a versão em francês
No fim, o que eu queria é que operadores de sites parassem de tentar bancar os espertos e oferecessem uma interface muito clara e rápida para trocar para outra versão. A Wikipedia faz isso razoavelmente bem
Se for um site multilíngue, ele deve oferecer apenas conjuntos de traduções totalmente traduzidos e verificados. Traduzir a UI e o conteúdo próprio para alguns idiomas pode fazer sentido para uma empresa, dependendo do público-alvo, mas tudo isso precisa ser mantido e sincronizado
Conteúdo de usuários não deve ser mexido. Não deve ser traduzido automaticamente, a menos que seja colocado como um recurso auxiliar sob um botão do tipo “Espanhol detectado. Clique para ver uma tradução automática em inglês”; e, na verdade, até isso é melhor deixar para o navegador
Basta escolher o idioma pelo Accept-Language e oferecer também uma forma de alternar
A Wikipedia, na verdade, não funciona oferecendo traduções do mesmo conteúdo. Cada idioma é uma instância separada e, fora as mensagens da UI do MediaWiki, não são traduções do mesmo artigo, mas artigos diferentes em outros idiomas, com alguma sobreposição. A versão em neerlandês do verbete
Languagenão afirma ser uma tradução para o neerlandês do mesmo texto, e fica deliberadamente em um subdomínio e caminho diferentesAcho que há muito espaço para melhoria tanto nos navegadores quanto nos sites
Sites deveriam permitir que o usuário sobrescrevesse o idioma solicitado pelo navegador. Navegadores também deveriam permitir escolher, por site, opções como “padrão do site”, “solicitar idioma padrão do sistema”, “solicitar inglês”, “solicitar chinês”, “solicitar espanhol” etc.
A melhor abordagem é o site expor a lista de idiomas suportados. Por exemplo, isso poderia ficar em
manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... O formato poderia ser algo comoMap>A seleção de idioma deveria acontecer no lado do cliente, não no servidor
Se você quer a versão em inglês de um site de notícias em inglês mesmo que exista uma tradução para o francês, basta colocar os dois idiomas na mesma prioridade
Dada a realidade de que muitos, talvez quase todos os sites não respeitam o cabeçalho Accept-Language, é difícil imaginar que os usuários estejam fazendo esse tipo de teoria dos jogos mental ao escolher essa configuração
Já participei de um projeto para implementar acessibilidade e suporte multilíngue em um site ligado ao governo
Usamos Accept-Language para escolher o padrão entre os idiomas suportados, mas o PM reverteu essa decisão e forçou o inglês como padrão
O auditor de acessibilidade colocou “uso de Accept-Language” como item vermelho no relatório de auditoria e, ao saber que isso havia sido implementado inicialmente e depois revertido, repreendeu duramente a empresa
Graças a essa e outras decisões idiotas parecidas, acabamos tendo mais algumas semanas de trabalho no contrato
Já que parece ser um espaço para desabafar sobre problemas de idioma, também tenho uma reclamação sobre o Apple TV
Tenho familiares que só falam japonês, e minha conta Apple é da Finlândia. Tentamos assistir juntos a
The Martian, mas, embora uma faixa de áudio dublada em japonês claramente exista, não era possível selecioná-laOpções sem relação com o país da conta simplesmente nem são mostradas, e para contornar isso é preciso mudar a conta Apple inteira para outro país
Só que, se você tiver uma assinatura ativa do Apple TV, nem essa mudança dá para fazer. Resultado: não conseguimos assistir Apple TV em família
Se minha memória não falha, havia uma configuração de idioma da conta, e para assistir a
Kim's Convenienceera preciso configurá-la em inglês. Não era necessário VPN nem fingir estar em outro país, mas, se você não definisse o idioma correto, o conteúdo ficava ocultoIsso acontecia mesmo ao assistir ao conteúdo com UI em finlandês e legendas em inglês
Quando estou no exterior, isso é realmente absurdo; e, mesmo no meu país, é irritante quando a versão localizada não é equivalente, como em documentação de programação
Mesmo no caso ideal, é bem provável que eu prefira o original em inglês; na prática, muitas vezes é tradução automática, o que é muito pior
Outra coisa extremamente irritante que tenho visto com mais frequência ultimamente é aparecerem nos resultados de busca versões traduzidas automaticamente do conteúdo. O Reddit faz isso agora, e é horrível
Um dos principais motivos para usar termos de busca que não estão em inglês é obter resultados que não estejam em inglês. Por exemplo, quando se procura informação sobre um tema que não se aplica ao mundo inteiro
O resto do mundo consegue entender bem vários idiomas
Não testei se é baseado em localização ou em Accept-Language, mas o comportamento é realmente enlouquecedor
Se faço uma busca na web, aparece o resultado da versão em inglês; ao abrir, assim que o JavaScript carrega, ele muda para PT-BR e, alguns segundos depois, quando a página termina de carregar, volta para o inglês, deixando o slug
/pt-br/na URLÉ óbvio demais que a tradução não foi feita nem revisada por humanos. Além disso, sou usuário de PT-PT, então as diferenças em relação ao PT-BR tornam tudo ainda mais irritante
Uma vez criei um pequeno sistema que analisava o Accept-Language, atribuía pesos às prioridades do usuário e escolhia, entre as opções que oferecíamos, o idioma mais próximo da preferência dele
Por exemplo, se havia tradução para português do Brasil, mas não para português de Portugal, entregávamos a primeira para um usuário que pedisse a segunda, a menos que houvesse uma correspondência exata com prioridade mais baixa
Tecnicamente funcionava bem, o código era limpo e foi divertido de fazer
Mas, do ponto de vista do usuário, a maioria simplesmente queria inglês, independentemente do cabeçalho Accept-Language. Dava para mudar no rodapé, mas acho que não era visível o suficiente
Agora nós simplesmente perguntamos, e os usuários ficam mais satisfeitos
É difícil saber como permanecer exatamente na página em que cliquei. Fico em dúvida se o botão “continue” aplica o valor pré-selecionado ou apenas fecha o pop-up e continua mostrando a página atual
Se for o primeiro caso, nem sei se o valor pré-selecionado é o idioma da página atual ou outro idioma, e fico pensando se devo tentar adivinhar o locale atual, selecioná-lo e então fechar o pop-up. Chego a pensar se dá para contornar removendo o modal nas ferramentas de desenvolvedor. Até um pequeno botão de fechar é um luxo nesses muros de idioma
Em 95 de cada 100 vezes, estou bem com o idioma em que cliquei. Se eu precisar das informações regionais de entrega ou das opções de pagamento da versão em alemão, vou procurar o seletor de idioma no canto superior direito ou no rodapé
Acho que a web seria muito mais feliz se ele estivesse em um desses dois lugares, sem pop-ups de JavaScript aparecendo o tempo todo
Tenho curiosidade sobre padrões para oferecer opções. Este texto é bom por rejeitar ícones, mas não gosto da forma como reduz várias regiões a um único idioma: https://usersnap.com/blog/design-language-switch/