Google pracuje nad nową funkcją tłumaczenia interfejsu użytkownika w systemie Android 12, która może automatycznie tłumaczyć aplikacje na Twój język ojczysty.
Z ponad 2,5 miliarda aktywnych użytkowników, Android jest najpopularniejszym systemem operacyjnym na świecie. Chociaż sam system operacyjny został zlokalizowany na dziesiątki różnych języków, nie dotyczy to wielu aplikacji innych firm. Większe firmy mogą lokalizować swoje aplikacje we własnym zakresie lub wynajmować profesjonalne usługi tłumaczeniowe, ale te opcje nie są ekonomicznie wykonalne dla mniejszych zespołów lub niezależnych twórców aplikacji. W najlepszym wypadku mniejszy zespół lub niezależny twórca aplikacji może pozyskać tłumaczenia od rodzimych użytkowników języka, a w najgorszym – skorzystać z usług tłumaczeń maszynowych. To jednak może się zmienić Androida 12, ponieważ z naszych dowodów wynika, że Google może pracować nad strukturą automatycznego tłumaczenia interfejsu aplikacji na język ojczysty użytkownika.
Porzucenie pakietu APK często pozwala przewidzieć funkcje, które mogą pojawić się w przyszłej aktualizacji aplikacji, ale możliwe jest, że którakolwiek z funkcji, o których tutaj wspominamy, może nie zostać uwzględniona w przyszłej wersji. Dzieje się tak, ponieważ te funkcje nie są obecnie zaimplementowane w aktualnej wersji i mogą zostać pobrane przez programistów w dowolnym momencie w przyszłej wersji.
Na początku tego tygodnia otrzymaliśmy niewydaną jeszcze kompilację Androida 12, która zawiera: kilka nowych funkcji i zmian w interfejsie użytkownika. Przeglądając wydanie, odkryliśmy mnóstwo nowych klas w frameworku związanych z new "serwis tłumaczeń." Nasze poszukiwania rozpoczęły się, gdy odkryliśmy dwa nowe uprawnienia dodane do tej wersji Androida 12: BIND_TRANSLATION_SERVICE
I MANAGE_UI_TRANSLATION
. SystemUI systemu Android posiada poprzednie pozwolenie na powiązanie z aplikacją posiadającą drugie uprawnienie, które domyślnie jest zdefiniowane przez wartość config_defaultTranslationService
. Prawdopodobnie jako usługę tłumaczeniową można skonfigurować aplikację taką jak Tłumacz Google lub Usługi personalizacji urządzenia, ale Google może udostępnić ją aplikacjom innych firm jako MANAGE_UI_TRANSLATION
uprawnienie ma „rolę” zdefiniowaną jako jeden z obsługiwanych poziomów ochrony. Jeśli pamiętasz, Android 10 dodał „Role", które definiują aplikacje, które powinny mieć określone uprawnienia; możliwe, że Google doda „Tłumacz” jako rolę, ale nie wiemy, czy tę rolę można nadać aplikacjom zainstalowanym przez użytkownika.
W każdym razie znaleźliśmy odniesienia do tych uprawnień w kodzie frameworka, gdzie znaleźliśmy dowody na to, że this nowy kod tłumaczenia oddziałuje na widoki w ramach działań, a nie na zrzut ekranu lub najnowsze aplikacje płyta. Tłumaczenie tekstu na zrzutach ekranu lub w panelu najnowszych aplikacji można już wykonać za pomocą Google Lens, a w połączeniu z usługami personalizacji urządzenia tekst może być przetłumaczone bezpośrednio z panelu najnowszych aplikacji. Tymczasem system intencji Androida pozwala już na podstawowe udostępnianie tekstu do tłumaczenia. Te nowe ramy wydają się jednak bardziej złożone i mają niższy poziom i wierzymy, że mają na celu bezpośrednio przetłumacz tekst w interfejsie aplikacji, zastępując tekst w wierszu, aby tłumaczenie było bardziej natywne.
Sprawdziliśmy najnowsze wersje usług Tłumacza Google i personalizacji urządzenia, ale nie znaleźliśmy żadnych dowodów na integrację tego nowego interfejsu API. Możliwe, że ten interfejs API nie będzie korzystał bezpośrednio z Tłumacza Google, ale z innego punktu końcowego interfejsu API. Jeśli ta funkcja zostanie wdrożona zgodnie z naszymi spekulacjami, wątpimy, czy Google będzie pobierać od użytkowników opłaty za tę funkcję. Możliwe jednak, że włączą tłumaczenia interfejsu użytkownika obsługiwane przez Tłumacza Google jako funkcję wyłączną dla Pixela. Ponieważ wydaje się jednak, że framework pojawi się w AOSP, możliwe jest, że producenci OEM będą mogli zdefiniować własne usługi tłumaczeniowe, jeśli nie chcą korzystać z usług Google.
Aplikacje innych firm, takie jak AllTrans od lat oferują własną funkcję tłumaczenia interfejsu użytkownika. Mody te, oparte na Xposed Framework, działają podobnie do tego, jak naszym zdaniem będzie działać tłumaczenie interfejsu użytkownika Androida 12, bezpośrednio łącząc się z widokami aplikacji w celu przetłumaczenia i zamiany tekstu. Jednak te mody wymagają od użytkowników pobrania własnego klucza API dla usługi tłumaczenia, ponieważ klucz współdzielony dość szybko przekroczyłby bezpłatny limit. Ponieważ jednak Google najwyraźniej tworzy platformę tłumaczenia interfejsu użytkownika bezpośrednio w systemie Android 12, użytkownicy nie będą już musieli rootować swoich urządzeń, aby tłumaczyć aplikacje na swój język ojczysty. Miejmy nadzieję, że dzięki temu tysiące aplikacji będzie bardziej dostępnych dla użytkowników na całym świecie.
Korzystając z Xposed Framework, AllTrans łączy się z widokami tekstu w aplikacjach, aby przetłumaczyć tekst za pomocą tłumacza Microsoftu.
Programiści skorzystają również z automatycznych tłumaczeń interfejsu użytkownika. Programiści, którzy nie mają zasobów do tłumaczenia swojej aplikacji lub nie chcą korzystać z tłumaczenia maszynowego, mogą pozwolić systemowi operacyjnemu zająć się tym. Wydanie aplikacji przetłumaczonej maszynowo może skutkować negatywnymi recenzjami użytkowników, którzy obwiniają programistę za słabe tłumaczenie, ale użytkownik sami kierują systemem operacyjnym w celu przetłumaczenia aplikacji, co spowoduje mniej frustracji, ponieważ użytkownik lepiej zrozumie, gdzie można zrzucić winę za wszelkie błędy przetłumaczony tekst.
Chociaż jesteśmy całkiem pewni, że ta funkcja ma na celu tłumaczenie interfejsu użytkownika w aplikacjach, nie jesteśmy w 100% pewni, że tak jest, dopóki nie zobaczymy jej w działaniu. Alternatywnym zastosowaniem tej funkcji byłoby przetłumaczenie interfejsu użytkownika w systemie operacyjnym lub tylko w aplikacjach systemowych, ale uważamy, że jest to mało prawdopodobne ponieważ system operacyjny jest już szeroko zlokalizowany, a dowolną lokalizację można przeprowadzić, zanim urządzenie opuści fabrykę lub za pośrednictwem OTA aktualizacja. Z drugiej strony Google i producenci OEM nie są w stanie określić, jakie języki obsługuje aplikacja, więc ta funkcja pomogłaby wypełnić lukę. Biorąc pod uwagę, że Google rozwija tę funkcję na poziomie widoku, dzięki czemu można jej używać we wszystkich aplikacjach, zwiększa się również prawdopodobieństwo, że będzie ona przeznaczona do użytku w aplikacjach, a nie w systemie operacyjnym. Jednak znowu nie będziemy tego pewni, dopóki ta funkcja nie zostanie udostępniona, co może, ale nie musi, nastąpić w stabilnej wersji Androida 12.
Dzięki deweloperom Quinny899 I kdrag0n za pomoc w analizie tego kodu. Dziękujemy także firmie PNF Software za udostępnienie nam licencji na użytkowanie Dekompilator JEB, profesjonalne narzędzie inżynierii wstecznej dla aplikacji na Androida.