Android 12 peut traduire automatiquement les applications dans votre langue maternelle

Google travaille sur une nouvelle fonctionnalité de traduction de l'interface utilisateur dans Android 12 qui pourrait traduire automatiquement les applications dans votre langue maternelle.

Avec plus de 2,5 milliards d’utilisateurs actifs, Android est le système d’exploitation le plus utilisé au monde. Bien que le système d'exploitation lui-même ait été localisé dans des dizaines de langues différentes, ce n'est pas le cas de nombreuses applications tierces. Les grandes entreprises peuvent localiser leurs applications en interne ou faire appel à des services de traduction professionnels, mais ces options ne sont pas économiquement réalisables pour les petites équipes ou les développeurs d'applications indépendants. Au mieux, une petite équipe ou un développeur d'applications indépendant peut collecter des traductions auprès de locuteurs natifs, et au pire, ils peuvent utiliser des services de traduction automatique pour faire le travail. Toutefois, cela pourrait changer dans Android 12, car nous avons vu des preuves suggérant que Google travaille peut-être sur un cadre permettant de traduire automatiquement l'interface utilisateur d'une application dans la langue maternelle de l'utilisateur.

Un démontage d'un APK peut souvent prédire des fonctionnalités qui pourraient arriver dans une future mise à jour d'une application, mais il est possible que l'une des fonctionnalités que nous mentionnons ici ne soit pas disponible dans une version future. En effet, ces fonctionnalités ne sont actuellement pas implémentées dans la version live et peuvent être extraites à tout moment par les développeurs dans une version future.

Plus tôt cette semaine, nous avons obtenu une version inédite d'Android 12 qui contient un quelques nouvelles fonctionnalités et modifications de l'interface utilisateur. En parcourant la version, nous avons découvert de nombreuses nouvelles classes dans le framework liées à un nouveau "service de traduction." Notre recherche a commencé lorsque nous avons découvert deux nouvelles autorisations ajoutées à cette version d'Android 12: BIND_TRANSLATION_SERVICE et MANAGE_UI_TRANSLATION. SystemUI d'Android détient la première autorisation pour se lier à une application qui détient la dernière autorisation, qui est définie par défaut par la valeur config_defaultTranslationService. Vraisemblablement, une application telle que Google Translate ou Device Personality Services peut être configurée comme service de traduction, mais Google peut l'ouvrir à des applications tierces en tant que service de traduction. MANAGE_UI_TRANSLATION l'autorisation a un « rôle » défini comme l'un des niveaux de protection pris en charge. Si vous vous en souvenez bien, Android 10 a ajouté "Les rôles" qui définissent les applications qui doivent avoir certains privilèges; il est possible que Google ajoute « Traducteur » comme rôle, mais nous ne savons pas si ce rôle peut être accordé aux applications installées par l'utilisateur.

Quoi qu'il en soit, nous avons trouvé des références à ces autorisations dans le code-cadre, où nous avons repéré des preuves que cela le nouveau code de traduction agit sur les vues au sein des activités plutôt que sur une capture d'écran ou les applications récentes panneau. La traduction du texte dans les captures d'écran ou dans le panneau des applications récentes peut déjà être effectuée par Google Lens, et en conjonction avec les services de personnalisation des appareils, le texte peut être traduit directement depuis le panneau des applications récentes. Pendant ce temps, le système d'intention d'Android permet déjà le partage de base du texte à traduire. Ce nouveau cadre semble cependant plus complexe et de moindre niveau, et nous pensons qu'il vise directement à traduire du texte dans l'interface utilisateur d'une application, en remplaçant le texte en ligne pour rendre la traduction plus native.

Nous avons examiné les dernières versions de Google Translate et des services de personnalisation des appareils, mais n'avons trouvé aucune preuve de l'intégration de cette nouvelle API. Il est possible que cette API n'utilise pas directement Google Translate, mais plutôt un autre point de terminaison d'API. Si cette fonctionnalité est mise en œuvre conformément à nos spéculations, nous doutons que Google facturera cette fonctionnalité aux utilisateurs. Cependant, il est possible qu'ils activent les traductions de l'interface utilisateur optimisées par Google Translate en tant que fonctionnalité exclusive à Pixel. Étant donné que le cadre semble arriver sur AOSP, il est possible que les OEM puissent définir leur propre service de traduction s'ils ne souhaitent pas utiliser celui de Google.

Applications tierces comme TousTrans proposent depuis des années leur propre fonctionnalité de traduction d’interface utilisateur. Propulsés par Xposed Framework, ces mods fonctionnent de la même manière que nous pensons que la traduction de l'interface utilisateur d'Android 12 fonctionnera, en se connectant directement aux vues d'une application pour traduire et remplacer le texte. Cependant, ces mods obligent les utilisateurs à récupérer leur propre clé API pour un service de traduction, car une clé partagée dépasserait assez rapidement la limite gratuite. Google construisant apparemment un cadre de traduction d’interface utilisateur directement dans Android 12, les utilisateurs n’auraient plus besoin de rooter leur appareil pour traduire les applications dans leur langue maternelle. Nous espérons que cela rendra des milliers d’applications plus accessibles aux utilisateurs du monde entier.

À l'aide du Xposed Framework, AllTrans s'intègre aux vues de texte des applications pour traduire le texte à l'aide du traducteur de Microsoft.

Les développeurs bénéficieront également de traductions automatisées de l’interface utilisateur. Les développeurs qui ne disposent pas des ressources nécessaires pour traduire leur application ou qui ne souhaitent pas utiliser la traduction automatique peuvent laisser le système d'exploitation gérer les choses. La publication d'une application traduite automatiquement peut entraîner des critiques négatives de la part des utilisateurs qui blâment le développeur pour la mauvaise traduction, mais obligeant l'utilisateur à demander au système d'exploitation de traduire l'application entraînera moins de frustration, car l'utilisateur comprendra mieux où placer la faute en cas de problème. texte traduit.

Bien que nous soyons assez convaincus que cette fonctionnalité est destinée à traduire l'interface utilisateur dans les applications, nous ne sommes pas sûrs à 100 % que ce soit le cas tant que nous n'avons pas vu la fonctionnalité en action. Une autre utilisation de cette fonctionnalité serait de traduire l'interface utilisateur dans le système d'exploitation ou uniquement dans les applications système, mais nous pensons que cela est peu probable. car le système d'exploitation est déjà largement localisé et toute localisation peut être effectuée avant que l'appareil ne quitte l'usine ou via un OTA mise à jour. D'un autre côté, Google et les OEM ne peuvent pas prendre en compte les langues prises en charge par une application. Cette fonctionnalité contribuerait donc à combler cette lacune. Étant donné que Google développe cette fonctionnalité au niveau de la vue, ce qui permet de l'utiliser dans toutes les applications, il est également plus probable qu'elle soit destinée à être utilisée dans des applications plutôt que dans le système d'exploitation. Encore une fois, cependant, nous ne le saurons pas avec certitude jusqu'à ce que cette fonctionnalité soit publiée, ce qui peut ou non se produire dans la version stable d'Android 12.

Merci aux développeurs Quinny899 et kdrag0n pour leur aide dans l'analyse de ce code. Merci également à PNF Software de nous avoir fourni une licence d'utilisation Décompilateur JEB, un outil d'ingénierie inverse de qualité professionnelle pour les applications Android.