Google dela na novi funkciji prevajanja uporabniškega vmesnika v sistemu Android 12, ki bi lahko samodejno prevedla aplikacije v vaš materni jezik.
Z več kot 2,5 milijarde aktivnih uporabnikov je Android najbolj razširjen operacijski sistem na svetu. Čeprav je sam operacijski sistem lokaliziran na desetine različnih jezikov, to ne velja za številne aplikacije tretjih oseb. Večja podjetja lahko lokalizirajo svoje aplikacije v podjetju ali najamejo profesionalne prevajalske storitve, vendar te možnosti niso ekonomsko izvedljive za manjše ekipe ali neodvisne razvijalce aplikacij. V najboljšem primeru lahko manjša ekipa ali neodvisni razvijalec aplikacij pridobi prevode naravnih govorcev, v najslabšem primeru pa lahko za delo uporabi storitve strojnega prevajanja. Vendar bi se to lahko spremenilo Android 12, saj smo videli dokaze, ki kažejo, da Google morda dela na ogrodju za samodejno prevajanje uporabniškega vmesnika aplikacije v materni jezik uporabnika.
Razgradnja APK-ja lahko pogosto predvidi funkcije, ki bodo morda prispele v prihodnji posodobitvi aplikacije, vendar je možno, da katera od funkcij, ki jih tukaj omenjamo, morda ne bo prišla v prihodnjo izdajo. To je zato, ker te funkcije trenutno niso implementirane v gradnji v živo in jih lahko razvijalci kadar koli umaknejo v prihodnji gradnji.
V začetku tega tedna smo pridobili neobjavljeno gradnjo Android 12, ki vsebuje nekaj novih funkcij in sprememb uporabniškega vmesnika. Med brskanjem po izdaji smo odkrili veliko novih razredov v ogrodju, povezanih z novim "prevajalski servis". Naše iskanje se je začelo, ko smo odkrili dve novi dovoljenji, dodani tej različici Androida 12: BIND_TRANSLATION_SERVICE
in MANAGE_UI_TRANSLATION
. Androidov SystemUI ima prvo dovoljenje za povezovanje z aplikacijo, ki ima drugo dovoljenje, ki je privzeto definirano z vrednostjo config_defaultTranslationService
. Predvidoma je mogoče aplikacijo, kot je Google Translate ali Device Personalization Services, nastaviti kot prevajalsko storitev, vendar jo lahko Google odpre aplikacijam tretjih oseb kot MANAGE_UI_TRANSLATION
dovoljenje ima "vlogo", opredeljeno kot eno od podprtih ravni zaščite. Če se spomnite, je Android 10 dodal "Vloge" ki določajo aplikacije, ki bi morale imeti določene privilegije; možno je, da bo Google dodal "Prevajalec" kot vlogo, vendar ne vemo, ali je to vlogo mogoče dodeliti aplikacijam, ki jih je namestil uporabnik.
V vsakem primeru smo našli sklicevanja na ta dovoljenja v okvirni kodi, kjer smo opazili dokaze, da je to nova prevodna koda deluje na poglede znotraj dejavnosti in ne na posnetek zaslona ali nedavne aplikacije panel. Prevajanje besedila na posnetkih zaslona ali plošči nedavnih aplikacij lahko že izvede Google Lens, v povezavi s storitvami za prilagajanje naprav pa lahko besedilo preveden neposredno iz plošče nedavnih aplikacij. Medtem Androidov sistem namenov že omogoča osnovno skupno rabo besedila za prevajanje. Vendar se zdi, da je ta novi okvir bolj zapleten in na nizki ravni, in verjamemo, da cilja neposredno na to prevajajte besedilo v uporabniškem vmesniku aplikacije in zamenjajte besedilo v vrstici, da bo prevod bolj izviren.
Pregledali smo najnovejše različice storitev Google Translate in Device Personalization Services, vendar nismo našli nobenega dokaza o integraciji tega novega API-ja. Možno je, da ta API ne bo neposredno uporabljal Google Prevajalnika, temveč drugo končno točko API-ja. Če bo ta funkcija implementirana v skladu z našimi špekulacijami, dvomimo, da bo Google uporabnikom zaračunal to funkcijo. Vendar pa je možno, da omogočijo prevode uporabniškega vmesnika, ki jih poganja Google Translate, kot ekskluzivno funkcijo za Pixel. Ker se zdi, da ogrodje prihaja v AOSP, je možno, da proizvajalci originalne opreme določijo lastno prevajalsko storitev, če ne želijo uporabljati Googlove.
Aplikacije tretjih oseb, kot je AllTrans že leta ponujajo lastno funkcijo prevajanja uporabniškega vmesnika. Te modifikacije, ki jih poganja Xposed Framework, delujejo podobno kot mislimo, da bo deloval prevod uporabniškega vmesnika Androida 12, saj se neposredno povežejo s pogledi aplikacije za prevajanje in zamenjavo besedila. Vendar te modifikacije od uporabnikov zahtevajo, da zgrabijo lasten ključ API za prevajalsko storitev, saj bi skupni ključ precej hitro presegel brezplačno omejitev. Ker je Google navidezno vgradil ogrodje za prevajanje uporabniškega vmesnika neposredno v Android 12, pa uporabnikom ne bi bilo več treba rootati svoje naprave za prevajanje aplikacij v njihov materni jezik. Upajmo, da bo na tisoče aplikacij bolj dostopnih uporabnikom po vsem svetu.
Z uporabo ogrodja Xposed Framework se AllTrans vključi v poglede besedila znotraj aplikacij za prevajanje besedila z Microsoftovim prevajalnikom.
Razvijalcem bodo koristili tudi avtomatizirani prevodi uporabniškega vmesnika. Razvijalci, ki nimajo sredstev za prevajanje svoje aplikacije ali ki ne želijo uporabljati strojnega prevajanja, lahko OS prepustijo urejanju stvari. Izdaja strojno prevedene aplikacije lahko povzroči negativne ocene uporabnikov, ki za slab prevod krivijo razvijalca, vendar ima uporabnik sami usmerjajo operacijski sistem, da prevede aplikacijo, kar bo imelo za posledico manj frustracij, saj bo uporabnik bolje razumel, kam naj pripiše krivdo za kakršno koli slabo prevedeno besedilo.
Čeprav smo dokaj prepričani, da je ta funkcija namenjena prevajanju uporabniškega vmesnika znotraj aplikacij, nismo 100 % prepričani, da je tako, dokler ne vidimo funkcije v akciji. Alternativna uporaba te funkcije bi bila prevajanje uporabniškega vmesnika znotraj operacijskega sistema ali samo sistemskih aplikacij, vendar menimo, da je to malo verjetno ker je operacijski sistem že široko lokaliziran in je morebitno lokalizacijo mogoče izvesti, preden naprava zapusti tovarno ali prek OTA nadgradnja. Po drugi strani pa Google in proizvajalci originalne opreme ne morejo upoštevati, katere jezike podpira aplikacija, zato bi ta funkcija pomagala zapolniti vrzel. Glede na to, da Google razvija to funkcijo na ravni pogleda, tako da jo je mogoče uporabljati v vseh aplikacijah, je tudi bolj verjetno, da je namenjena uporabi v aplikacijah in ne v OS. Še enkrat, ne bomo zagotovo vedeli, dokler ta funkcija ne bo izdana, kar se lahko zgodi ali pa tudi ne v stabilni izdaji Android 12.
Hvala razvijalcem Quinny899 in kdrag0n za njihovo pomoč pri analizi te kode. Hvala tudi programski opremi PNF, ker nam je zagotovila licenco za uporabo JEB Decompiler, profesionalno orodje za obratni inženiring za aplikacije Android.