Google sta lavorando a una nuova funzionalità di traduzione dell'interfaccia utente in Android 12 che potrebbe tradurre automaticamente le app nella tua lingua madre.
Con oltre 2,5 miliardi di utenti attivi, Android è il sistema operativo più utilizzato al mondo. Sebbene il sistema operativo stesso sia stato localizzato in dozzine di lingue diverse, non è così per molte app di terze parti. Le aziende più grandi possono localizzare le proprie app internamente o assumere servizi di traduzione professionale, ma queste opzioni non sono economicamente fattibili per team più piccoli o sviluppatori di app indipendenti. Nella migliore delle ipotesi, un team più piccolo o uno sviluppatore di app indipendente può eseguire il crowdsourcing di traduzioni da madrelingua e, nel peggiore dei casi, può utilizzare servizi di traduzione automatica per svolgere il lavoro. Tuttavia, questo potrebbe cambiare Androide 12, poiché abbiamo riscontrato prove che suggeriscono che Google potrebbe lavorare su un framework per tradurre automaticamente l'interfaccia utente di un'app nella lingua madre dell'utente.
Uno smontaggio dell'APK può spesso prevedere funzionalità che potrebbero essere presenti in un futuro aggiornamento di un'applicazione, ma è possibile che qualcuna delle funzionalità menzionate qui non sia presente in una versione futura. Questo perché queste funzionalità non sono attualmente implementate nella build live e potrebbero essere ritirate in qualsiasi momento dagli sviluppatori in una build futura.
All'inizio di questa settimana, abbiamo ottenuto una build Android 12 inedita che contiene a un paio di nuove funzionalità e modifiche all'interfaccia utente. Analizzando il rilascio, abbiamo scoperto tantissime nuove classi nel framework relative a new "servizio di traduzione." La nostra ricerca è iniziata quando abbiamo scoperto due nuove autorizzazioni aggiunte a questa build di Android 12: BIND_TRANSLATION_SERVICE
E MANAGE_UI_TRANSLATION
. La SystemUI di Android detiene la prima autorizzazione per associarsi a un'app che detiene la seconda autorizzazione, che per impostazione predefinita è definita dal valore config_defaultTranslationService
. Presumibilmente, un'app come Google Translate o Device Personalized Services può essere impostata come servizio di traduzione, ma Google potrebbe aprirla ad app di terze parti come servizio di traduzione. MANAGE_UI_TRANSLATION
l'autorizzazione ha un "ruolo" definito come uno dei livelli di protezione supportati. Se ricordi, Android 10 ha aggiunto "Ruoli" che definiscono le app che dovrebbero avere determinati privilegi; è possibile che Google aggiunga "Traduttore" come ruolo, ma non sappiamo se questo ruolo possa essere concesso alle app installate dall'utente.
In ogni caso, abbiamo trovato riferimenti a questi permessi nel codice del framework, dove abbiamo riscontrato la prova che ciò il nuovo codice di traduzione agisce sulle visualizzazioni all'interno delle attività anziché su uno screenshot o sulle app recenti pannello. La traduzione del testo all'interno degli screenshot o del pannello delle app recenti può già essere eseguita da Google Lens e, insieme ai servizi di personalizzazione del dispositivo, il testo può essere tradotto direttamente dal pannello delle app recenti. Nel frattempo, il sistema di intenti di Android consente già la condivisione di base del testo da tradurre. Questo nuovo quadro, tuttavia, sembra essere più complesso e di basso livello e crediamo che mira direttamente a questo tradurre il testo all'interno dell'interfaccia utente di un'app, sostituendo il testo in linea per rendere la traduzione più nativa.
Abbiamo esaminato le ultime versioni di Google Translate e dei servizi di personalizzazione del dispositivo, ma non abbiamo trovato alcuna prova dell'integrazione di questa nuova API. È possibile che questa API non utilizzi direttamente Google Translate ma piuttosto un endpoint API diverso. Se questa funzione viene implementata in linea con le nostre ipotesi, dubitiamo che Google addebiterà agli utenti tale funzione. Tuttavia, è possibile che abilitino le traduzioni dell'interfaccia utente fornite da Google Translate come funzionalità esclusiva di Pixel. Poiché il framework sembra essere in arrivo su AOSP, tuttavia, è possibile che gli OEM possano definire il proprio servizio di traduzione se non desiderano utilizzare quello di Google.
App di terze parti come AllTrans offrono da anni una propria funzionalità di traduzione dell'interfaccia utente. Basate su Xposed Framework, queste mod funzionano in modo simile a come pensiamo funzionerà la traduzione dell'interfaccia utente di Android 12, collegandosi direttamente alle visualizzazioni di un'app per tradurre e sostituire il testo. Tuttavia, queste modifiche richiedono agli utenti di acquisire la propria chiave API per un servizio di traduzione poiché una chiave condivisa supererebbe il limite gratuito abbastanza rapidamente. Con Google che sembra aver creato un framework di traduzione dell’interfaccia utente direttamente in Android 12, tuttavia, gli utenti non avrebbero più bisogno di eseguire il root del proprio dispositivo per tradurre le app nella loro lingua madre. Si spera che ciò renda migliaia di app più accessibili agli utenti di tutto il mondo.
Utilizzando Xposed Framework, AllTrans si collega alle visualizzazioni di testo all'interno delle app per tradurre il testo utilizzando il traduttore di Microsoft.
Gli sviluppatori trarranno vantaggio anche dalle traduzioni automatizzate dell'interfaccia utente. Gli sviluppatori che non hanno le risorse per tradurre la propria app o che non vogliono utilizzare la traduzione automatica possono lasciare che sia il sistema operativo a gestire le cose. Il rilascio di un'app tradotta automaticamente può provocare recensioni negative da parte di utenti che incolpano lo sviluppatore per la scarsa traduzione, ma che l'utente stessi indirizzano il sistema operativo a tradurre l'app si tradurrà in una minore frustrazione poiché l'utente capirà meglio dove attribuire la colpa per eventuali problemi testo tradotto.
Sebbene siamo abbastanza sicuri che questa funzionalità sia intesa a tradurre l'interfaccia utente all'interno delle app, non siamo sicuri al 100% che sia così finché non vediamo la funzionalità in azione. Un uso alternativo di questa funzionalità sarebbe quello di tradurre l'interfaccia utente all'interno del sistema operativo o solo nelle app di sistema, ma riteniamo che sia improbabile perché il sistema operativo è già ampiamente localizzato e qualsiasi localizzazione può essere eseguita prima che il dispositivo lasci la fabbrica o tramite un OTA aggiornamento. D'altra parte, Google e gli OEM non possono tenere conto delle lingue supportate da un'app, quindi questa funzionalità aiuterebbe a colmare il divario. Considerando che Google sta sviluppando questa funzionalità a livello di visualizzazione, facendola in modo che possa essere utilizzata in tutte le app, è anche più probabile che sia destinata all'uso nelle app piuttosto che nel sistema operativo. Ancora una volta, però, non lo sapremo con certezza finché questa funzionalità non verrà rilasciata, cosa che potrebbe verificarsi o meno nella versione stabile di Android 12.
Grazie agli sviluppatori Quinny899 E kdrag0n per il loro aiuto nell'analisi di questo codice. Grazie anche a PNF Software per averci fornito la licenza d'uso Decompilatore JEB, uno strumento di reverse engineering di livello professionale per applicazioni Android.