Google arbeitet an einer neuen UI-Übersetzungsfunktion in Android 12, die Apps automatisch in Ihre Muttersprache übersetzen könnte.
Mit über 2,5 Milliarden aktiven Nutzern ist Android das weltweit am weitesten verbreitete Betriebssystem. Während das Betriebssystem selbst in Dutzende verschiedener Sprachen lokalisiert wurde, ist dies bei vielen Drittanbieter-Apps nicht der Fall. Größere Unternehmen können ihre Apps intern lokalisieren oder professionelle Übersetzungsdienste beauftragen, diese Optionen sind jedoch für kleinere Teams oder unabhängige App-Entwickler wirtschaftlich nicht machbar. Im besten Fall kann ein kleineres Team oder ein unabhängiger App-Entwickler Übersetzungen von Muttersprachlern per Crowdsourcing beschaffen, und im schlimmsten Fall können sie maschinelle Übersetzungsdienste nutzen, um diese Aufgabe zu erledigen. Dies könnte sich jedoch ändern Android 12, da wir Hinweise darauf gesehen haben, dass Google möglicherweise an einem Framework zur automatischen Übersetzung der Benutzeroberfläche einer App in die Muttersprache des Benutzers arbeitet.
Ein APK-Teardown kann oft Funktionen vorhersagen, die in einem zukünftigen Update einer Anwendung verfügbar sein werden, aber es ist möglich, dass eine der hier erwähnten Funktionen in einer zukünftigen Version nicht verfügbar sein wird. Dies liegt daran, dass diese Funktionen derzeit im Live-Build nicht implementiert sind und von den Entwicklern jederzeit in einem zukünftigen Build übernommen werden können.
Anfang dieser Woche haben wir einen unveröffentlichten Android 12-Build erhalten, der Folgendes enthält: einige neue Funktionen und Änderungen an der Benutzeroberfläche. Während wir uns durch die Version wühlten, entdeckten wir jede Menge neue Klassen im Framework, die sich auf ein neues beziehen "Übersetzungsdienst." Unsere Suche begann, als wir zwei neue Berechtigungen entdeckten, die dieser Android-Version hinzugefügt wurden 12: BIND_TRANSLATION_SERVICE
Und MANAGE_UI_TRANSLATION
. Die SystemUI von Android verfügt über die erstere Berechtigung zum Binden an eine App, die über die letztere Berechtigung verfügt, die standardmäßig durch den Wert definiert wird config_defaultTranslationService
. Vermutlich kann eine App wie Google Translate oder Device Personalization Services als Übersetzungsdienst eingerichtet werden, Google öffnet ihn jedoch möglicherweise auch für Apps von Drittanbietern MANAGE_UI_TRANSLATION
Für die Berechtigung ist „Rolle“ als eine der unterstützten Schutzstufen definiert. Wenn Sie sich erinnern, hat Android 10 hinzugefügt:Rollen„, die Apps definieren, die bestimmte Berechtigungen haben sollten; Es ist möglich, dass Google „Übersetzer“ als Rolle hinzufügt, wir wissen jedoch nicht, ob diese Rolle den vom Benutzer installierten Apps gewährt werden kann.
Auf jeden Fall haben wir Hinweise auf diese Berechtigungen im Framework-Code gefunden, wo wir Beweise dafür entdeckt haben Der neue Übersetzungscode wirkt sich auf Ansichten innerhalb von Aktivitäten aus und nicht auf einen Screenshot oder die letzten Apps Panel. Das Übersetzen von Text in Screenshots oder im Bereich „Letzte Apps“ kann bereits von Google Lens durchgeführt werden, und in Verbindung mit Device Personalization Services ist dies auch für Text möglich direkt aus dem Bereich „Letzte Apps“ übersetzt. Mittlerweile ermöglicht das Intent-System von Android bereits die grundlegende Freigabe von zu übersetzendem Text. Dieses neue Rahmenwerk scheint jedoch komplexer und auf niedrigerer Ebene zu sein, und wir glauben, dass es direkt darauf abzielt Übersetzen Sie Text innerhalb der Benutzeroberfläche einer App und ersetzen Sie den Text in der Zeile, damit sich die Übersetzung nativer anfühlt.
Wir haben die neuesten Versionen von Google Translate und Device Personalization Services untersucht, aber keine Hinweise darauf gefunden, dass diese neue API integriert ist. Möglicherweise verwendet diese API nicht direkt Google Translate, sondern einen anderen API-Endpunkt. Wenn diese Funktion gemäß unserer Vermutung implementiert wird, bezweifeln wir, dass Google den Nutzern diese Funktion in Rechnung stellen wird. Es ist jedoch möglich, dass sie UI-Übersetzungen mit Google Translate als Pixel-exklusive Funktion aktivieren. Da das Framework jedoch anscheinend bei AOSP verfügbar wird, ist es möglich, dass OEMs ihren eigenen Übersetzungsdienst definieren können, wenn sie nicht den von Google verwenden möchten.
Apps von Drittanbietern wie AllTrans bieten seit Jahren eine eigene UI-Übersetzungsfunktion an. Basierend auf dem Xposed Framework funktionieren diese Mods ähnlich wie wir denken, dass die UI-Übersetzung von Android 12 funktionieren wird, indem sie sich direkt in die Ansichten einer App einbinden, um den Text zu übersetzen und zu ersetzen. Allerdings erfordern diese Mods, dass Benutzer ihren eigenen API-Schlüssel für einen Übersetzungsdienst besorgen, da ein gemeinsamer Schlüssel das kostenlose Limit ziemlich schnell überschreiten würde. Da Google jedoch scheinbar ein UI-Übersetzungs-Framework direkt in Android 12 integriert, müssten Benutzer ihr Gerät nicht mehr rooten, um Apps in ihre Muttersprache zu übersetzen. Dadurch werden hoffentlich Tausende von Apps für Benutzer weltweit zugänglicher.
Mit dem Xposed Framework verbindet sich AllTrans mit Textansichten in Apps, um den Text mit dem Übersetzer von Microsoft zu übersetzen.
Entwickler profitieren auch von automatisierten UI-Übersetzungen. Entwickler, die nicht über die Ressourcen zum Übersetzen ihrer App verfügen oder keine maschinelle Übersetzung verwenden möchten, können die Arbeit dem Betriebssystem überlassen. Die Veröffentlichung einer maschinell übersetzten App kann zu negativen Bewertungen von Benutzern führen, die den Entwickler für die schlechte Übersetzung verantwortlich machen, den Benutzer jedoch nicht Wenn Sie das Betriebssystem selbst anweisen, die App zu übersetzen, wird dies zu weniger Frustration führen, da der Benutzer besser versteht, wo er die Schuld für etwaige Mängel in die Schuhe schieben kann übersetzter Text.
Obwohl wir ziemlich sicher sind, dass diese Funktion dazu gedacht ist, die Benutzeroberfläche in Apps zu übersetzen, sind wir uns nicht zu 100 % sicher, ob dies der Fall ist, bis wir die Funktion in Aktion sehen. Eine alternative Verwendung dieser Funktion wäre die Übersetzung der Benutzeroberfläche innerhalb des Betriebssystems oder nur von System-Apps, aber wir halten das für unwahrscheinlich weil das Betriebssystem bereits weitgehend lokalisiert ist und jede Lokalisierung erfolgen kann, bevor das Gerät das Werk verlässt, oder über einen OTA aktualisieren. Andererseits können Google und OEMs nicht berücksichtigen, welche Sprachen eine App unterstützt, daher würde diese Funktion helfen, die Lücke zu schließen. Wenn man bedenkt, dass Google diese Funktion auf Ansichtsebene entwickelt, sodass sie in allen Apps verwendet werden kann, ist es wahrscheinlicher, dass sie eher für die Verwendung in Apps als für das Betriebssystem gedacht ist. Aber auch hier werden wir es nicht genau wissen, bis diese Funktion veröffentlicht wird, was in der stabilen Version von Android 12 der Fall sein kann oder auch nicht.
Danke an die Entwickler Quinny899 Und kdrag0n für ihre Unterstützung bei der Analyse dieses Codes. Vielen Dank auch an PNF Software für die Bereitstellung einer Nutzungslizenz JEB-Decompiler, ein professionelles Reverse-Engineering-Tool für Android-Anwendungen.