Google arbejder på en ny UI-oversættelsesfunktion i Android 12, der automatisk kan oversætte apps til dit modersmål.
Med over 2,5 milliarder aktive brugere er Android det mest udbredte styresystem på verdensplan. Mens selve operativsystemet er blevet lokaliseret til snesevis af forskellige sprog, er det ikke tilfældet for mange tredjepartsapps. Større virksomheder kan lokalisere deres apps internt eller hyre professionelle oversættelsestjenester, men disse muligheder er ikke økonomisk gennemførlige for mindre teams eller uafhængige app-udviklere. I bedste fald kan et mindre team eller en indie app-udvikler crowd-source oversættelser fra indfødte højttalere, og i værste fald kan de bruge maskinoversættelsestjenester til at udføre arbejdet. Dette kan dog ændre sig Android 12, som vi har set beviser, der tyder på, at Google muligvis arbejder på en ramme til automatisk at oversætte en apps brugergrænseflade til brugerens modersmål.
En APK-teardown kan ofte forudsige funktioner, der kan ankomme i en fremtidig opdatering af en applikation, men det er muligt, at nogen af de funktioner, vi nævner her, muligvis ikke kommer med i en fremtidig udgivelse. Dette skyldes, at disse funktioner i øjeblikket ikke er implementeret i live-builden og kan trækkes til enhver tid af udviklerne i en fremtidig build.
Tidligere på ugen fik vi en uudgivet Android 12 build, der indeholder en et par nye funktioner og ændringer i brugergrænsefladen. Mens vi gravede gennem udgivelsen, opdagede vi masser af nye klasser i rammerne relateret til en ny "oversættelsestjeneste." Vores søgning begyndte, da vi opdagede to nye tilladelser tilføjet til denne Android-version 12: BIND_TRANSLATION_SERVICE
og MANAGE_UI_TRANSLATION
. Androids SystemUI har førstnævnte tilladelse til at binde til en app, der har sidstnævnte tilladelse, som som standard er defineret af værdien config_defaultTranslationService
. Formentlig kan en app som Google Translate eller Device Personalization Services konfigureres som oversættelsestjenesten, men Google kan åbne den for tredjepartsapps som MANAGE_UI_TRANSLATION
tilladelse har "rolle" defineret som et af de understøttede beskyttelsesniveauer. Hvis du kan huske det, tilføjede Android 10 "Roller", der definerer apps, der skal have visse privilegier; det er muligt, at Google tilføjer "Oversætter" som en rolle, men vi ved ikke, om denne rolle kan tildeles apps, der er installeret af brugeren.
Under alle omstændigheder fandt vi referencer til disse tilladelser i rammekode, hvor vi så beviser for, at dette ny oversættelseskode virker på visninger i aktiviteter i stedet for på et skærmbillede eller de seneste apps panel. Oversættelse af tekst i skærmbilleder eller panelet med de seneste apps kan allerede udføres af Google Lens, og i forbindelse med Device Personalization Services kan tekst oversat direkte fra panelet seneste apps. I mellemtiden tillader Androids hensigtssystem allerede den grundlæggende deling af tekst til oversættelse. Denne nye ramme ser dog ud til at være mere kompleks og på lavt niveau, og vi mener, at den sigter mod direkte oversætte tekst inden for brugergrænsefladen af en app, og erstatte tekst in-line for at få oversættelsen til at føles mere naturlig.
Vi har undersøgt de seneste versioner af Google Translate og Device Personalization Services, men vi fandt ingen beviser for at integrere denne nye API. Det er muligt, at denne API ikke bruger Google Oversæt direkte, men snarere et andet API-slutpunkt. Hvis denne funktion implementeres i overensstemmelse med vores spekulationer, tvivler vi på, at Google vil opkræve brugere for denne funktion. Det er dog muligt, at de kan aktivere UI-oversættelser drevet af Google Translate som en Pixel-eksklusiv funktion. Da rammen ser ud til at komme til AOSP, er det dog muligt, at OEM'er kan definere deres egen oversættelsestjeneste, hvis de ikke ønsker at bruge Googles.
Tredjeparts apps som AllTrans har i årevis tilbudt en egen UI-oversættelsesfunktion. Drevet af Xposed Framework fungerer disse mods på samme måde som, hvordan vi tror, at Android 12s UI-oversættelse vil fungere, og de kobler sig direkte ind i en apps visninger for at oversætte og erstatte teksten. Disse mods kræver dog, at brugerne får fat i deres egen API-nøgle til en oversættelsestjeneste, da en delt nøgle ville gå over den gratis grænse ret hurtigt. Da Google tilsyneladende bygger en UI-oversættelsesramme direkte ind i Android 12, behøver brugerne dog ikke længere at roote deres enhed for at oversætte apps til deres modersmål. Dette vil forhåbentlig gøre tusindvis af apps mere tilgængelige for brugere over hele verden.
Ved hjælp af Xposed Framework kobles AllTrans ind i tekstvisninger i apps for at oversætte teksten ved hjælp af Microsofts Translator.
Udviklere vil også drage fordel af automatiserede UI-oversættelser. Udviklere, der ikke har ressourcerne til at oversætte deres app, eller som ikke ønsker at bruge maskinoversættelse, kan lade OS håndtere tingene. Frigivelse af en maskinoversat app kan resultere i negative anmeldelser fra brugere, der giver udvikleren skylden for den dårlige oversættelse, men som har brugeren selv beordre operativsystemet til at oversætte appen, vil resultere i mindre frustration, da brugeren bedre forstår, hvor de skal placere skylden for eventuelle dårlige oversat tekst.
Selvom vi er ret sikre på, at denne funktion er beregnet til at oversætte brugergrænsefladen i apps, er vi ikke 100 % sikre på, at det er tilfældet, før vi ser funktionen i aktion. En alternativ brug af denne funktion ville være at oversætte brugergrænsefladen inden for OS eller kun systemapps, men vi tror, det er usandsynligt fordi operativsystemet både allerede er bredt lokaliseret, og enhver lokalisering kan udføres, før enheden forlader fabrikken eller via en OTA opdatering. På den anden side kan Google og OEM'er ikke redegøre for, hvilke sprog en app understøtter, så denne funktion ville hjælpe med at udfylde hullet. I betragtning af at Google udvikler denne funktion på View-niveau, hvilket gør den så den kan bruges i alle apps, gør det også mere sandsynligt, at den er beregnet til brug i apps i stedet for OS. Men igen, vi ved det ikke med sikkerhed, før denne funktion bliver frigivet, hvilket måske eller måske ikke sker i den stabile Android 12-udgivelse.
Tak til udviklere Quinny899 og kdrag0n for deres hjælp til at analysere denne kode. Også tak til PNF Software for at give os en licens til at bruge JEB Decompiler, et professionelt reverse engineeringværktøj til Android-applikationer.