![](https://habrastorage.org/webt/mc/rm/tz/mcrmtzlvb0xunzpjkdpdyt61vqa.jpeg)
Разработчик и IT-эксперт Дан Петров обнаружил, что перевод сообщений на другие языки в последней версии Telegram в версии для Android работает через API Google Translate, но в обход официальному способу. Мессенджер использует для этого недокументированные функции, что позволяет ему фактически бесплатно делать перевод, а также не попасть на блокировку со стороны Google.
В новой версии Telegram для iOS 15 используется встроенная функция «Системный перевод» и там все в порядке с легальностью схемы перевода сообщений и их безопасностью.
Петров выяснил, что Telegram использует неофициальный метод для вызова запросов в API Google Translate. Мессенджер делает это так, чтобы облачной системе перевода Google казалось, что запрос идет от Google Chrome и других браузеров через штатную функцию перевода сайтов. При каждом запросе на перевод клиент выполняет ротацию идентификатора пользовательского агента. Этот метод часто используется веб-парсерами, чтобы избежать ограничения скорости при подключении к облачным серверам или попадания в черный список веб-служб.
Исследователь пояснил в своем блоге, как именно в данном случае Telegram обходит коммерческий способ использования API Google Cloud Translate. Также он уточнил, что этот вариант наиболее безопасен для пользователей. В случае, если бы Telegram официально оплачивал доступ к API Google Translate, то в открытом исходном коде мессенджера должен быть приватный ключ для использования сервиса перевода от Google. Но его там нет.
Петров подытожил, что текущий вариант выдачи и получения Telegram запросов в API Google Cloud Translate хоть и бесплатный, но непонятный для простых разработчиков, что не удобно для изучения исходного кода. По его мнению для этого лучше использовать текущую версию официального Java SDK от Google и использовать RPC через HTTP для экономии полосы пропускания, что станет скоро необходимо, учитывая более 500 млн активных пользователей Telegram под конец 2021 года.
По данным источника «Кода Дурова», это действительно не совсем стандартное и временное решение. Этот подход разработчики месенджера решили применить, чтобы оценить спрос на функцию перевода в Telegram на Android. Инсайдер пояснил, что вскоре планируется реализовать полноценное серверное решение для перевода на стороне месенджера, но разработчики ещё думают над нужной архитектурой и мощностями. Они даже планировали в самом простом случае задействовать вариант перевода полностью на стороне клиента, но тесты показали, что качество в этом случае оказалось ниже, чем при текущей реализации перевода.