Google werkt aan een nieuwe UI-vertaalfunctie in Android 12 die apps automatisch naar uw moedertaal kan vertalen.
Met ruim 2,5 miljard actieve gebruikers is Android het meest gebruikte besturingssysteem ter wereld. Hoewel het besturingssysteem zelf in tientallen verschillende talen is gelokaliseerd, is dat voor veel apps van derden niet het geval. Grotere bedrijven kunnen hun apps intern lokaliseren of professionele vertaaldiensten inhuren, maar deze opties zijn economisch niet haalbaar voor kleinere teams of onafhankelijke app-ontwikkelaars. In het beste geval kan een kleiner team of een onafhankelijke app-ontwikkelaar vertalingen van moedertaalsprekers crowdsourcen, en in het slechtste geval kunnen ze daarvoor machinevertaaldiensten gebruiken. Dit zou echter kunnen veranderen Androïde 12, omdat we bewijs hebben gezien dat suggereert dat Google mogelijk werkt aan een raamwerk voor het automatisch vertalen van de gebruikersinterface van een app naar de moedertaal van de gebruiker.
Een APK-demontage kan vaak functies voorspellen die in een toekomstige update van een applicatie kunnen verschijnen, maar het is mogelijk dat een van de functies die we hier noemen mogelijk niet in een toekomstige release wordt opgenomen. Dit komt omdat deze functies momenteel niet zijn geïmplementeerd in de live build en op elk moment door de ontwikkelaars kunnen worden ingetrokken in een toekomstige build.
Eerder deze week hebben we een nog niet uitgebrachte Android 12-build verkregen die een een aantal nieuwe functies en wijzigingen in de gebruikersinterface. Terwijl we de release doorzochten, ontdekten we heel veel nieuwe klassen in het raamwerk die verband hielden met een nieuw "vertaaldienst." Onze zoektocht begon toen we ontdekten dat er twee nieuwe machtigingen aan deze build van Android waren toegevoegd 12: BIND_TRANSLATION_SERVICE
En MANAGE_UI_TRANSLATION
. De SystemUI van Android heeft de voormalige toestemming om te binden aan een app die de laatste toestemming heeft, die standaard wordt gedefinieerd door de waarde config_defaultTranslationService
. Vermoedelijk kan een app als Google Translate of Device Personalisation Services worden ingesteld als vertaalservice, maar Google kan deze openstellen voor apps van derden als de MANAGE_UI_TRANSLATION
per machtiging is 'rol' gedefinieerd als een van de ondersteunde beveiligingsniveaus. Als je het je herinnert, heeft Android 10 toegevoegd "Rollen"die apps definiëren die bepaalde rechten moeten hebben; het is mogelijk dat Google 'Vertaler' als rol toevoegt, maar we weten niet of deze rol kan worden toegekend aan apps die door de gebruiker zijn geïnstalleerd.
In ieder geval hebben we verwijzingen naar deze machtigingen gevonden in de raamwerkcode, waar we bewijs hebben gevonden dat dit het geval is nieuwe vertaalcode werkt op weergaven binnen activiteiten in plaats van op een screenshot of de recente apps paneel. Het vertalen van tekst in schermafbeeldingen of het paneel met recente apps kan al worden gedaan door Google Lens, en in combinatie met Device Personalization Services kan tekst worden rechtstreeks vertaald vanuit het paneel met recente apps. Ondertussen maakt het intentiesysteem van Android al het basisdelen van tekst mogelijk om te vertalen. Dit nieuwe raamwerk lijkt echter complexer en laagdrempeliger te zijn, en wij denken dat het daar rechtstreeks op gericht is vertaal tekst binnen de gebruikersinterface van een app en vervang tekst in-line om de vertaling meer native te laten aanvoelen.
We hebben de nieuwste versies van Google Translate en Device Personalisation Services onderzocht, maar hebben geen enkel bewijs gevonden voor de integratie van deze nieuwe API. Het is mogelijk dat deze API Google Translate niet rechtstreeks gebruikt, maar eerder een ander API-eindpunt. Als deze functie wordt geïmplementeerd in overeenstemming met onze speculaties, betwijfelen we of Google gebruikers voor deze functie kosten in rekening zal brengen. Het is echter mogelijk dat ze UI-vertalingen, mogelijk gemaakt door Google Translate, inschakelen als exclusieve Pixel-functie. Omdat het raamwerk echter naar AOSP lijkt te komen, is het mogelijk dat OEM's hun eigen vertaalservice kunnen definiëren als ze die van Google niet willen gebruiken.
Apps van derden, zoals AllesTrans bieden al jaren een eigen UI-vertaalfunctie aan. Deze mods worden aangedreven door het Xposed Framework en werken op dezelfde manier als we denken dat de UI-vertaling van Android 12 zal werken, waarbij ze rechtstreeks aansluiten bij de weergaven van een app om de tekst te vertalen en te vervangen. Deze modificaties vereisen echter dat gebruikers hun eigen API-sleutel voor een vertaalservice pakken, omdat een gedeelde sleutel vrij snel de vrije limiet zou overschrijden. Nu Google schijnbaar een UI-vertaalframework rechtstreeks in Android 12 heeft gebouwd, hoeven gebruikers hun apparaat niet langer te rooten om apps naar hun moedertaal te vertalen. Hopelijk zullen hierdoor duizenden apps toegankelijker worden voor gebruikers over de hele wereld.
Met behulp van het Xposed Framework haakt AllTrans in op tekstweergaven binnen apps om de tekst te vertalen met behulp van Microsoft's Translator.
Ontwikkelaars zullen ook profiteren van geautomatiseerde UI-vertalingen. Ontwikkelaars die niet over de middelen beschikken om hun app te vertalen of die geen automatische vertaling willen gebruiken, kunnen het besturingssysteem de zaken laten afhandelen. Het uitbrengen van een machinaal vertaalde app kan resulteren in negatieve recensies van gebruikers die de ontwikkelaar de schuld geven van de slechte vertaling, maar de gebruiker zelf het besturingssysteem aansturen om de app te vertalen, zal tot minder frustratie leiden, omdat de gebruiker beter begrijpt waar hij de schuld voor eventuele problemen moet leggen vertaalde tekst.
Hoewel we er vrij zeker van zijn dat deze functie bedoeld is om de gebruikersinterface binnen apps te vertalen, zijn we er niet 100% zeker van dat dit het geval is totdat we de functie in actie zien. Een alternatief gebruik van deze functie zou zijn om de gebruikersinterface binnen het besturingssysteem te vertalen of alleen systeem-apps, maar we denken dat dit onwaarschijnlijk is omdat het besturingssysteem al breed gelokaliseerd is en elke lokalisatie kan worden uitgevoerd voordat het apparaat de fabriek verlaat of via een OTA update. Aan de andere kant kunnen Google en OEM's niet verklaren welke talen een app ondersteunt, dus deze functie zou het gat helpen opvullen. Gezien het feit dat Google deze functie op weergaveniveau ontwikkelt, waardoor deze in alle apps kan worden gebruikt, is de kans groter dat deze bedoeld is voor gebruik in apps in plaats van voor het besturingssysteem. Maar nogmaals, we zullen het pas zeker weten als deze functie wordt uitgebracht, wat wel of niet kan gebeuren in de stabiele versie van Android 12.
Met dank aan ontwikkelaars Quinny899 En kdrag0n voor hun hulp bij het analyseren van deze code. Ook dank aan PNF Software voor het verstrekken van een gebruikslicentie JEB-decompiler, een professionele reverse engineering-tool voor Android-applicaties.