Google работает над новой функцией перевода пользовательского интерфейса в Android 12, которая сможет автоматически переводить приложения на ваш родной язык.
Android, насчитывающий более 2,5 миллиардов активных пользователей, является наиболее широко используемой операционной системой в мире. Хотя сама ОС локализована на десятки различных языков, это не относится ко многим сторонним приложениям. Более крупные компании могут локализовать свои приложения самостоятельно или нанять профессиональные услуги по переводу, но эти варианты экономически невыгодны для небольших команд или независимых разработчиков приложений. В лучшем случае небольшая команда или независимый разработчик приложений может получить переводы от носителей языка, а в худшем — использовать для выполнения этой работы услуги машинного перевода. Однако это может измениться в Андроид 12, поскольку мы увидели доказательства того, что Google, возможно, работает над системой автоматического перевода пользовательского интерфейса приложения на родной язык пользователя.
Разборка APK часто позволяет предсказать функции, которые могут появиться в будущем обновлении приложения, но возможно, что любая из упомянутых здесь функций может не появиться в будущем выпуске. Это связано с тем, что эти функции в настоящее время не реализованы в действующей сборке и могут быть добавлены разработчиками в любое время в будущей сборке.
Ранее на этой неделе мы получили невыпущенную сборку Android 12, содержащую пара новых функций и изменений пользовательского интерфейса. Изучая релиз, мы обнаружили множество новых классов в фреймворке, связанных с новым «служба переводов». Наш поиск начался, когда мы обнаружили два новых разрешения, добавленных в эту сборку Android. 12: BIND_TRANSLATION_SERVICE
и MANAGE_UI_TRANSLATION
. SystemUI Android имеет первое разрешение на привязку к приложению, имеющему последнее разрешение, которое по умолчанию определяется значением config_defaultTranslationService
. Предположительно, такое приложение, как Google Translate или Службы персонализации устройств, можно настроить в качестве службы перевода, но Google может открыть его для сторонних приложений, поскольку MANAGE_UI_TRANSLATION
разрешение имеет «роль», определенную как один из поддерживаемых уровней защиты. Если вы помните, в Android 10 добавлено «Роли", которые определяют приложения, которые должны иметь определенные привилегии; возможно, Google добавит «Переводчик» в качестве роли, но мы не знаем, можно ли предоставить эту роль приложениям, установленным пользователем.
В любом случае, мы нашли ссылки на эти разрешения в коде фреймворка, где мы обнаружили свидетельства того, что это новый код перевода действует на представления внутри действий, а не на снимок экрана или недавние приложения. панель. Перевод текста на снимках экрана или на панели последних приложений уже можно выполнить с помощью Google Lens, а в сочетании со службами персонализации устройств текст можно переведено прямо с панели последних приложений. Между тем, система намерений Android уже позволяет осуществлять базовый обмен текстом для перевода. Однако эта новая структура кажется более сложной и низкоуровневой, и мы считаем, что она направлена непосредственно на переводите текст в пользовательском интерфейсе приложения, заменяя текст в строке, чтобы перевод выглядел более естественным.
Мы проверили последние версии Google Translate и служб персонализации устройств, но не обнаружили никаких свидетельств интеграции этого нового API. Возможно, этот API будет использовать не Google Translate напрямую, а другую конечную точку API. Если эта функция будет реализована в соответствии с нашими предположениями, мы сомневаемся, что Google будет взимать с пользователей плату за эту функцию. Однако вполне возможно, что они могут включить перевод пользовательского интерфейса с помощью Google Translate в качестве эксклюзивной функции Pixel. Однако, поскольку инфраструктура, похоже, будет добавлена в AOSP, вполне возможно, что OEM-производители смогут определить свою собственную службу перевода, если они не хотят использовать службу Google.
Сторонние приложения, такие как АллТранс уже много лет предлагают собственную функцию перевода пользовательского интерфейса. Эти моды, основанные на Xposed Framework, работают аналогично тому, как, по нашему мнению, будет работать перевод пользовательского интерфейса Android 12, напрямую подключаясь к представлениям приложения для перевода и замены текста. Однако эти моды требуют, чтобы пользователи получили свой собственный ключ API для службы перевода, поскольку общий ключ довольно быстро превысит свободный лимит. Однако, поскольку Google, похоже, встраивает платформу перевода пользовательского интерфейса непосредственно в Android 12, пользователям больше не нужно будет рутировать свое устройство для перевода приложений на родной язык. Мы надеемся, что это сделает тысячи приложений более доступными для пользователей по всему миру.
Используя Xposed Framework, AllTrans подключается к текстовым представлениям в приложениях для перевода текста с помощью переводчика Microsoft.
Разработчики также получат выгоду от автоматического перевода пользовательского интерфейса. Разработчики, у которых нет ресурсов для перевода своего приложения или которые не хотят использовать машинный перевод, могут позволить ОС справиться со всем. Выпуск приложения с машинным переводом может привести к негативным отзывам со стороны пользователей, которые обвиняют разработчика в плохом переводе, но при этом пользователь сами направляют ОС на перевод приложения, что приведет к меньшему разочарованию, поскольку пользователь лучше поймет, на кого возложить вину за неправильные действия. переведенный текст.
Хотя мы вполне уверены, что эта функция предназначена для перевода пользовательского интерфейса в приложениях, мы не уверены на 100%, что это так, пока не увидим эту функцию в действии. Альтернативным использованием этой функции может быть перевод пользовательского интерфейса внутри ОС или только системных приложений, но мы считаем, что это маловероятно. поскольку операционная система уже широко локализована, и любая локализация может быть выполнена до того, как устройство покинет завод или через OTA. обновлять. С другой стороны, Google и OEM-производители не могут определить, какие языки поддерживает приложение, поэтому эта функция поможет восполнить этот пробел. Учитывая, что Google разрабатывает эту функцию на уровне представления, что позволяет использовать ее во всех приложениях, это также повышает вероятность того, что она предназначена для использования в приложениях, а не в ОС. Опять же, мы не будем знать наверняка, пока эта функция не будет выпущена, что может произойти, а может и не произойти в стабильной версии Android 12.
Спасибо разработчикам Куинни899 и kdrag0n за помощь в анализе этого кода. Также спасибо PNF Software за предоставление нам лицензии на использование. JEB-декомпилятор, инструмент профессионального уровня для обратного проектирования приложений Android.