С более чем 2,5 миллиардами активных пользователей Android является самой используемой операционной системой в мире. Хотя сама ОС локализована на десятки разных языков, это не относится ко многим сторонним приложениям. Крупные компании могут локализовать свои приложения самостоятельно или нанять профессиональных переводчиков, но эти варианты экономически нецелесообразны для небольших команд или независимых разработчиков приложений. В лучшем случае небольшая команда или инди-разработчик приложений могут использовать коллективный перевод от носителей языка, а в худшем использовать машинный перевод. Однако в Android 12 это может измениться, поскольку появились свидетельства того, что Google работает над платформой для автоматического перевода пользовательского интерфейса приложения на родной язык пользователя.
На прошлой неделе появилась сборка Android 12, которая содержит несколько новых функций и изменений в пользовательском интерфейсе. В ней появилось множество новых классов во фреймворке, связанном с новой «службой перевода». Поиски начались, когда разработчики обнаружили два новых разрешения, добавленных в эту сборку Android 12: BIND_TRANSLATION_SERVICE и MANAGE_UI_TRANSLATION. Предположительно, такое приложение, как Google Translate или Device Personalization Services, можно настроить как службу перевода, и Google может открыть ее для сторонних приложений, поскольку разрешение MANAGE_UI_TRANSLATION имеет системную «роль». Такие «роли» появились в Android 10, они выдаются приложениям, которые должны иметь определенные привилегии. Возможно, что Google может добавить «Переводчик» в качестве роли, но пока непонятно, может ли эта роль быть предоставлена приложениям, установленным пользователем.
В любом случае ссылки на эти разрешения в коде фреймворка говорят о том, что этот новый код действует на View внутри Activity. Система Намерений Android уже позволяет осуществлять базовый обмен текстами для перевода. Однако эта новая структура кажется более сложной и низкоуровневой, и предположительно она направлена на прямой перевод текста в пользовательском интерфейсе приложения, заменяя текст в строке, чтобы сделать перевод более естественным.
В Google Translate и Device Personalization Services пока нет никаких доказательств интеграции этого нового API. Возможно, этот API не будет использовать Google Translate напрямую, а будет использовать другую конечную точку. Если эта функция будет реализована в соответствии с предположениями, вряд ли Google будет взимать плату с пользователей за эту функцию. Однако компания может включить перевод пользовательского интерфейса с помощью Google Translate в качестве эксклюзивной функции Pixel. Однако, поскольку фреймворк, похоже, будет и в AOSP, вполне возможно, что OEM-производители смогут определить свою собственную службу перевода, если они не захотят использовать службу Google.
Сторонние приложения, такие как AllTrans, уже много лет предлагают собственную функцию перевода пользовательского интерфейса. Эти моды на базе Xposed Framework работают аналогично тому, как, вероятно, будет работать перевод пользовательского интерфейса в Android 12, напрямую подключаясь к View для перевода и замены текста. Однако эти моды требуют, чтобы пользователи получали свой собственный ключ API для службы перевода, поскольку общий ключ довольно быстро превышает лимит бесплатного использования. Однако, поскольку Google, похоже, создает платформу перевода пользовательского интерфейса непосредственно в Android 12, пользователям больше не нужно будет получать рут в своем устройстве, чтобы переводить приложения на свой родной язык.
Разработчики также получат выгоду от автоматического перевода пользовательского интерфейса. Разработчики, у которых нет ресурсов для перевода своего приложения или которые не хотят использовать машинный перевод, могут позволить ОС справиться со всем этим. Выпуск приложения с машинным переводом может привести к негативным отзывам пользователей, которые обвиняют разработчика в плохом переводе, но если пользователь сам будет использовать ОС для перевода приложения, это приведет к меньшему разочарованию, поскольку пользователь лучше поймет, кто ответственен за плохо переведенный текст.