O Google está trabalhando em um novo recurso de tradução da IU no Android 12 que pode traduzir automaticamente aplicativos para o seu idioma nativo.
Com mais de 2,5 bilhões de usuários ativos, o Android é o sistema operacional mais utilizado em todo o mundo. Embora o próprio sistema operacional tenha sido localizado em dezenas de idiomas diferentes, esse não é o caso de muitos aplicativos de terceiros. As empresas maiores podem localizar seus aplicativos internamente ou contratar serviços de tradução profissionais, mas essas opções não são economicamente viáveis para equipes menores ou desenvolvedores de aplicativos independentes. Na melhor das hipóteses, uma equipe menor ou um desenvolvedor de aplicativo independente pode obter traduções de falantes nativos e, na pior das hipóteses, pode usar serviços de tradução automática para fazer o trabalho. No entanto, isso pode mudar em Andróide 12, pois vimos evidências que sugerem que o Google pode estar trabalhando em uma estrutura para traduzir automaticamente a IU de um aplicativo para o idioma nativo do usuário.
Muitas vezes, a desmontagem de um APK pode prever recursos que podem chegar em uma atualização futura de um aplicativo, mas é possível que qualquer um dos recursos mencionados aqui não chegue em uma versão futura. Isso ocorre porque esses recursos não estão atualmente implementados na versão ativa e podem ser retirados a qualquer momento pelos desenvolvedores em uma versão futura.
No início desta semana, obtivemos uma versão inédita do Android 12 que contém um alguns novos recursos e alterações na interface do usuário. Ao pesquisar o lançamento, descobrimos muitas novas classes no framework relacionadas a um novo "serviço de tradução." Nossa busca começou quando descobrimos duas novas permissões adicionadas a esta versão do Android 12: BIND_TRANSLATION_SERVICE
e MANAGE_UI_TRANSLATION
. O SystemUI do Android detém a permissão anterior para vincular-se a um aplicativo que possui a última permissão, que por padrão é definida pelo valor config_defaultTranslationService
. Presumivelmente, um aplicativo como o Google Translate ou o Device Personalization Services pode ser configurado como serviço de tradução, mas o Google pode abri-lo para aplicativos de terceiros como o serviço de tradução. MANAGE_UI_TRANSLATION
permissão tem "função" definida como um dos níveis de proteção suportados. Se você se lembra, o Android 10 adicionou "Funções"que definem aplicativos que devem ter determinados privilégios; é possível que o Google adicione "Tradutor" como função, mas não sabemos se essa função pode ser concedida a aplicativos instalados pelo usuário.
De qualquer forma, encontramos referências a essas permissões no código do framework, onde identificamos evidências de que isso o novo código de tradução está agindo nas visualizações das atividades, e não em uma captura de tela ou nos aplicativos recentes painel. A tradução de texto em capturas de tela ou no painel de aplicativos recentes já pode ser feita pelo Google Lens e, em conjunto com os serviços de personalização de dispositivos, o texto pode ser traduzido diretamente do painel de aplicativos recentes. Enquanto isso, o sistema de intenções do Android já permite o compartilhamento básico de texto para tradução. Este novo quadro, no entanto, parece ser mais complexo e de baixo nível, e acreditamos que visa directamente traduza texto na interface do usuário de um aplicativo, substituindo o texto in-line para tornar a tradução mais nativa.
Examinamos as versões mais recentes do Google Translate e dos serviços de personalização de dispositivos, mas não encontramos nenhuma evidência de integração desta nova API. É possível que esta API não use o Google Translate diretamente, mas sim um endpoint de API diferente. Se esse recurso for implementado de acordo com nossas especulações, duvidamos que o Google cobrará dos usuários por esse recurso. No entanto, é possível que eles habilitem traduções de IU fornecidas pelo Google Translate como um recurso exclusivo do Pixel. Como a estrutura parece estar chegando ao AOSP, é possível que os OEMs possam definir seu próprio serviço de tradução se não quiserem usar o do Google.
Aplicativos de terceiros como TodasTrans há anos oferecem seu próprio recurso de tradução de IU. Desenvolvidos pelo Xposed Framework, esses mods funcionam de forma semelhante a como pensamos que a tradução da IU do Android 12 funcionará, conectando-se diretamente às visualizações de um aplicativo para traduzir e substituir o texto. No entanto, esses mods exigem que os usuários obtenham sua própria chave de API para um serviço de tradução, já que uma chave compartilhada ultrapassaria o limite gratuito rapidamente. Porém, com o Google aparentemente construindo uma estrutura de tradução de UI diretamente no Android 12, os usuários não precisariam mais fazer root em seus dispositivos para traduzir aplicativos para seu idioma nativo. Esperamos que isso torne milhares de aplicativos mais acessíveis para usuários em todo o mundo.
Usando o Xposed Framework, AllTrans se conecta a visualizações de texto em aplicativos para traduzir o texto usando o Tradutor da Microsoft.
Os desenvolvedores também se beneficiarão com traduções automatizadas de UI. Os desenvolvedores que não têm recursos para traduzir seus aplicativos ou que não desejam usar tradução automática podem deixar o sistema operacional cuidar de tudo. Lançar um aplicativo traduzido automaticamente pode resultar em avaliações negativas de usuários que culpam o desenvolvedor pela má tradução, mas fazer com que o usuário eles próprios direcionarem o sistema operacional para traduzir o aplicativo resultará em menos frustração, pois o usuário entende melhor onde colocar a culpa por qualquer erro texto traduzido.
Embora estejamos bastante confiantes de que esse recurso se destina a traduzir a interface do usuário nos aplicativos, não temos 100% de certeza de que seja esse o caso até vermos o recurso em ação. Um uso alternativo desse recurso seria traduzir a interface do usuário no sistema operacional ou apenas nos aplicativos do sistema, mas achamos que isso é improvável porque o sistema operacional já está amplamente localizado e qualquer localização pode ser feita antes do dispositivo sair da fábrica ou por meio de um OTA atualizar. Por outro lado, o Google e os OEMs não conseguem explicar quais idiomas um aplicativo suporta, portanto, esse recurso ajudaria a preencher a lacuna. Considerando que o Google está desenvolvendo esse recurso no nível de visualização, fazendo com que ele possa ser usado em todos os aplicativos, também torna mais provável que ele seja destinado ao uso em aplicativos e não no sistema operacional. Novamente, porém, não teremos certeza até que esse recurso seja lançado, o que pode ou não acontecer na versão estável do Android 12.
Obrigado aos desenvolvedores Quinny899 e kdrag0n por sua ajuda na análise deste código. Agradecemos também à PNF Software por nos fornecer uma licença de uso Descompilador JEB, uma ferramenta de engenharia reversa de nível profissional para aplicativos Android.