Google працює над новою функцією перекладу інтерфейсу користувача в Android 12, яка може автоматично перекладати програми на вашу рідну мову.
Маючи понад 2,5 мільярда активних користувачів, Android є найпоширенішою операційною системою в усьому світі. Хоча сама ОС була локалізована на десятки різних мов, це не стосується багатьох програм сторонніх розробників. Великі компанії можуть локалізувати свої додатки власними силами або найняти професійні послуги перекладу, але ці варіанти економічно недоцільні для менших команд або незалежних розробників додатків. У кращому випадку менша команда або незалежний розробник додатків може залучати переклади носіїв мови, а в гіршому випадку вони можуть використовувати служби машинного перекладу для виконання роботи. Однак це може змінитися Android 12, оскільки ми бачили докази того, що Google може працювати над інфраструктурою для автоматичного перекладу інтерфейсу користувача програми на рідну мову користувача.
Розбирання APK часто може передбачити функції, які можуть з’явитися в майбутньому оновленні програми, але можливо, що жодна з функцій, які ми тут згадуємо, може не потрапити в майбутній випуск. Це пояснюється тим, що ці функції наразі не реалізовані в живій збірці та можуть бути вилучені розробниками в будь-який час у майбутній збірці.
Раніше цього тижня ми отримали неопубліковану збірку Android 12, яка містить a кілька нових функцій і змін інтерфейсу. Переглядаючи випуск, ми виявили безліч нових класів у фреймворку, пов’язаних із новим "служба перекладу". Наш пошук почався, коли ми виявили два нових дозволи, додані до цієї збірки Android 12: BIND_TRANSLATION_SERVICE
і MANAGE_UI_TRANSLATION
. Android SystemUI має перший дозвіл на прив’язку до програми, яка має останній дозвіл, який за замовчуванням визначається значенням config_defaultTranslationService
. Імовірно, такий додаток, як Google Translate або Device Personalization Services, можна налаштувати як службу перекладу, але Google може відкрити його для програм сторонніх розробників як MANAGE_UI_TRANSLATION
дозвіл має "роль", визначену як один із підтримуваних рівнів захисту. Якщо ви пам’ятаєте, Android 10 додав "Ролі", які визначають програми, які повинні мати певні привілеї; можливо, Google може додати «Перекладач» як роль, але ми не знаємо, чи можна надати цю роль додаткам, встановленим користувачем.
У будь-якому випадку, ми знайшли посилання на ці дозволи в коді фреймворку, де ми помітили докази цього новий код перекладу діє на перегляди в межах діяльності, а не на знімок екрана чи останні програми панель. Google Lens уже може перекладати текст на скріншотах або на панелі останніх додатків, а в поєднанні зі службами персоналізації пристрою текст можна перекладено прямо з панелі останніх програм. Тим часом система намірів Android уже дозволяє базовий обмін текстом для перекладу. Ця нова структура, однак, здається більш складною та низькорівневою, і ми вважаємо, що вона спрямована безпосередньо на це перекладайте текст в інтерфейсі користувача програми, замінюючи текст у рядку, щоб зробити переклад більш рідним.
Ми перевірили останні версії Google Translate і Device Personalization Services, але не знайшли доказів інтеграції цього нового API. Цілком можливо, що цей API використовуватиме не безпосередньо Google Translate, а іншу кінцеву точку API. Якщо цю функцію буде реалізовано згідно з нашими припущеннями, ми сумніваємося, що Google стягуватиме плату з користувачів за цю функцію. Однак, можливо, вони можуть увімкнути переклад інтерфейсу користувача за допомогою Google Translate як ексклюзивну функцію Pixel. Однак, оскільки структура, здається, надходить до AOSP, можливо, що OEM-виробники зможуть визначити свою власну службу перекладу, якщо вони не хочуть використовувати службу Google.
Додатки сторонніх розробників, як AllTrans роками пропонують власну функцію перекладу інтерфейсу користувача. На базі Xposed Framework ці моди працюють так само, як ми думаємо, що працюватиме переклад інтерфейсу Android 12, безпосередньо підключаючись до переглядів програми для перекладу та заміни тексту. Однак ці моди вимагають від користувачів отримати власний ключ API для служби перекладу, оскільки спільний ключ досить швидко перевищить безкоштовний ліміт. Оскільки Google, здавалося б, будує структуру перекладу інтерфейсу користувача безпосередньо в Android 12, однак користувачам більше не потрібно буде рутувати свій пристрій, щоб перекладати програми на рідну мову. Сподіваємось, це зробить тисячі програм більш доступними для користувачів у всьому світі.
Використовуючи Xposed Framework, AllTrans підключається до подання тексту в програмах для перекладу тексту за допомогою Перекладача Microsoft.
Розробники також отримають вигоду від автоматизованих перекладів інтерфейсу користувача. Розробники, які не мають ресурсів для перекладу свого додатка або не хочуть використовувати машинний переклад, можуть дозволити ОС виконувати все. Випуск програми з машинним перекладом може призвести до негативних відгуків користувачів, які звинувачують розробника в поганому перекладі, але користувач самі спрямовують ОС на переклад програми, це призведе до меншого розчарування, оскільки користувач краще розуміє, на кого покладати провину за будь-які невдачі перекладений текст.
Хоча ми досить впевнені, що ця функція призначена для перекладу інтерфейсу користувача в програмах, ми не на 100% впевнені, що це так, доки не побачимо цю функцію в дії. Альтернативним використанням цієї функції є переклад інтерфейсу користувача в ОС або лише системних програмах, але ми вважаємо, що це малоймовірно тому що ОС уже широко локалізована, і будь-яку локалізацію можна виконати до того, як пристрій покине завод або через OTA оновлення. З іншого боку, Google і OEM-виробники не можуть врахувати, які мови підтримує програма, тому ця функція допоможе заповнити прогалину. Враховуючи, що Google розробляє цю функцію на рівні перегляду, щоб її можна було використовувати в усіх програмах, також більш імовірно, що вона призначена для використання в програмах, а не в ОС. Знову ж таки, ми не будемо знати напевно, доки ця функція не буде випущена, що може відбутися або не відбутися в стабільній версії Android 12.
Спасибі розробникам Quinny899 і kdrag0n за допомогу в аналізі цього коду. Також дякуємо PNF Software за надання нам ліцензії на використання Декомпілятор JEB, професійний інструмент зворотного проектування для програм Android.