A Google az Android 12 új UI fordítási funkcióján dolgozik, amely automatikusan lefordíthatja az alkalmazásokat az Ön anyanyelvére.
Több mint 2,5 milliárd aktív felhasználójával az Android a legszélesebb körben használt operációs rendszer világszerte. Míg magát az operációs rendszert több tucat különböző nyelvre lokalizálták, ez sok harmadik féltől származó alkalmazás esetében nem így van. A nagyobb vállalatok házon belül lokalizálhatják alkalmazásaikat, vagy professzionális fordítói szolgáltatásokat vehetnek igénybe, de ezek a lehetőségek gazdaságilag nem megvalósíthatók kisebb csapatok vagy független alkalmazásfejlesztők számára. Legjobb esetben egy kisebb csapat vagy független alkalmazásfejlesztő gyűjtheti össze a fordításokat anyanyelvi beszélőktől, legrosszabb esetben pedig gépi fordítói szolgáltatásokat vehet igénybe a feladat elvégzéséhez. Ez azonban változhat Android 12, mivel olyan bizonyítékokat láttunk, amelyek arra utalnak, hogy a Google egy olyan keretrendszeren dolgozik, amely automatikusan lefordítja egy alkalmazás felhasználói felületét a felhasználó anyanyelvére.
Az APK lebontása gyakran megjósolhatja azokat a funkciókat, amelyek egy alkalmazás jövőbeli frissítésében érkezhetnek meg, de előfordulhat, hogy az itt említett funkciók bármelyike nem fog megjelenni egy jövőbeli kiadásban. Ennek az az oka, hogy ezek a funkciók jelenleg nincsenek implementálva az élő összeállításban, és a fejlesztők bármikor levonhatják őket egy jövőbeli buildből.
A hét elején beszereztünk egy kiadatlan Android 12 buildet, amely a néhány új funkció és felhasználói felület változás. A kiadás átkutatásakor rengeteg új osztályt fedeztünk fel a keretrendszerben, amelyek egy újhoz kapcsolódnak "fordító szolgáltatás." Keresésünk akkor kezdődött, amikor felfedeztük, hogy két új engedélyt adtunk ehhez az Android-verzióhoz 12: BIND_TRANSLATION_SERVICE
és MANAGE_UI_TRANSLATION
. Az Android SystemUI-ja rendelkezik az előbbi engedéllyel, hogy kapcsolódjon egy alkalmazáshoz, amely rendelkezik az utóbbi engedéllyel, amelyet alapértelmezés szerint az érték határozza meg. config_defaultTranslationService
. Feltehetően egy olyan alkalmazás, mint a Google Fordító vagy a Device Personalization Services beállítható fordítási szolgáltatásként, de a Google megnyithatja azt harmadik féltől származó alkalmazások számára. MANAGE_UI_TRANSLATION
Az engedély a támogatott védelmi szintek egyikeként meghatározott "szerepkörrel". Ha emlékszel, az Android 10 hozzátette:Szerepek", amelyek meghatározzák azokat az alkalmazásokat, amelyeknek bizonyos jogosultságokkal kell rendelkezniük; lehetséges, hogy a Google hozzáadhatja a „Translator”-t szerepkörként, de nem tudjuk, hogy ez a szerepkör megadható-e a felhasználó által telepített alkalmazásoknak.
Mindenesetre találtunk hivatkozásokat ezekre az engedélyekre a keretkódban, ahol bizonyítékot találtunk erre Az új fordítási kód a tevékenységeken belüli nézetekre hat, nem pedig a képernyőképekre vagy a legutóbbi alkalmazásokra panel. A képernyőképeken vagy a legutóbbi alkalmazások panelen belüli szöveg fordítását már a Google Lens is meg tudja tenni, és az Eszköz személyre szabási szolgáltatásokkal együtt a szöveg közvetlenül a legutóbbi alkalmazások panelről lefordítva. Eközben az Android intent rendszere már lehetővé teszi a lefordítandó szöveg alapvető megosztását. Ez az új keretrendszer azonban összetettebbnek és alacsonyabb szintűnek tűnik, és úgy gondoljuk, hogy közvetlenül is ezt célozza lefordíthat szöveget egy alkalmazás felhasználói felületén, a szöveget soron belül lecserélve, hogy a fordítás natívabb legyen.
Megvizsgáltuk a Google Fordító és a Device Personalization Services legújabb verzióit, de nem találtunk bizonyítékot az új API integrálására. Lehetséges, hogy ez az API nem közvetlenül a Google Fordítót használja, hanem egy másik API-végpontot. Ha ezt a funkciót spekulációinknak megfelelően alkalmazzák, kétségeink szerint a Google díjat számít fel a felhasználóknak ezért a funkcióért. Előfordulhat azonban, hogy kizárólag Pixel funkcióként engedélyezik a Google Fordító által üzemeltetett UI fordításokat. Mivel azonban úgy tűnik, hogy a keretrendszer megérkezik az AOSP-hez, lehetséges, hogy az OEM-ek saját fordítószolgáltatást határozhatnak meg, ha nem akarják a Google-t használni.
Harmadik féltől származó alkalmazások, mint pl AllTrans évek óta kínálnak egy saját UI fordítási funkciót. Az Xposed Framework által működtetett modok ugyanúgy működnek, mint ahogyan azt gondoljuk, hogy az Android 12 UI fordítása működni fog, közvetlenül az alkalmazás nézeteihez kapcsolva a szöveg lefordításához és cseréjéhez. Ezek a modok azonban megkövetelik a felhasználóktól, hogy megragadják a saját API-kulcsukat egy fordítási szolgáltatáshoz, mivel a megosztott kulcs meglehetősen gyorsan túllépi az ingyenes korlátot. Ha azonban a Google látszólag közvetlenül az Android 12-be épít egy UI fordítási keretrendszert, a felhasználóknak többé nem kell rootolniuk eszközeiket, hogy az alkalmazásokat anyanyelvükre fordíthassák. Ezzel remélhetőleg több ezer alkalmazás válik elérhetőbbé a felhasználók számára világszerte.
Az Xposed Framework használatával az AllTrans az alkalmazásokon belüli szöveges nézetekhez kapcsolódik, hogy lefordítsa a szöveget a Microsoft Translator segítségével.
A fejlesztők számára is előnyösek lesznek az automatizált felhasználói felület fordítások. Azok a fejlesztők, akik nem rendelkeznek az alkalmazásuk lefordításához szükséges erőforrásokkal, vagy akik nem akarnak gépi fordítást használni, hagyhatják, hogy az operációs rendszer kezelje a dolgokat. Egy géppel fordított alkalmazás kiadása negatív véleményeket eredményezhet a felhasználók részéről, akik a fejlesztőt hibáztatják a rossz fordításért, de a felhasználót ha maguk irányítják az operációs rendszert az alkalmazás lefordítására, ez kevesebb frusztrációt eredményez, mivel a felhasználó jobban megérti, hol okolható a rossz lefordított szöveg.
Bár meglehetősen biztosak vagyunk abban, hogy ennek a funkciónak az a célja, hogy lefordítsa az alkalmazásokon belüli felhasználói felületet, nem vagyunk 100%-ig biztosak abban, hogy ez a helyzet, amíg meg nem látjuk a funkciót működés közben. Ennek a funkciónak egy másik felhasználási módja az lenne, ha lefordítaná a felhasználói felületet az operációs rendszeren belül vagy csak a rendszeralkalmazásokon belül, de úgy gondoljuk, hogy ez nem valószínű mert az operációs rendszer már széles körben lokalizált, és bármilyen lokalizáció elvégezhető még azelőtt, hogy az eszköz elhagyná a gyárat, vagy OTA-n keresztül frissítés. Másrészt a Google és az OEM-ek nem tudják figyelembe venni, hogy egy alkalmazás mely nyelveket támogatja, így ez a funkció segít pótolni a hiányt. Figyelembe véve, hogy a Google nézet szinten fejleszti ezt a funkciót, így minden alkalmazásban használható, valószínűbb, hogy az operációs rendszer helyett alkalmazásokban való használatra szánják. Mindaddig azonban nem tudjuk biztosan, amíg ez a funkció meg nem jelenik, ami az Android 12 stabil kiadásában előfordulhat, de előfordulhat, hogy nem.
Köszönet a fejlesztőknek Quinny899 és kdrag0n a kód elemzésében nyújtott segítségükért. Szintén köszönet a PNF Software-nek, hogy engedélyt adott nekünk a használatra JEB Decompiler, egy professzionális minőségű visszafejtő eszköz Android alkalmazásokhoz.