Как перестать выбирать между Google и DeepL — обзор универсального переводчика Translatepy
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Знакомая ситуация: вы пишете скрипт, которому нужно переводить тексты, и встаете перед мучительным выбором. Google Translate привычен, но иногда выдает «машинный» бред. DeepL чертовски хорош, но капризен в плане лимитов. А есть еще Яндекс, Bing, Reverso... Неужели под каждый сервис придется писать отдельный обертку и разбираться в их API?
К счастью, разработчик под ником Anime no Sekai задался тем же вопросом и создал translatepy — швейцарский нож в мире машинного перевода для Python.
Что это такое и зачем оно вам
translatepy — это не просто библиотека, а унифицированный интерфейс для целой пачки переводчиков. Представьте, что у вас есть один объект-переводчик, который сам знает, куда постучаться, как обработать ответ и что делать, если один из сервисов внезапно «отвалился».
Библиотека объединяет в себе возможности Google, DeepL, Bing, Yandex, Reverso и еще нескольких сервисов помельче. Причем она умеет не только переводить: тут вам и определение языка, и транслитерация, и даже проверка орфографии.
В чем главные фишки проекта
1. Единый вход для всех сервисов
Вам не нужно учить специфику каждого API. Хотите Google? Пожалуйста. Нужно переключиться на Yandex? Одной строчкой.
from translatepy import Translator
translator = Translator()
# Он сам выберет лучший доступный сервис по умолчанию
result = translator.translate("Hello world", "Russian")
print(result.result) # "Привет, мир"
2. Умная работа с языками
Одна из самых крутых вещей в проекте — класс Language. Он понимает названия языков почти на любом наречии. Вы можете написать "French", "Français", "fra" или даже "японский" (на японском) — библиотека поймет, о чем речь. Более того, в нее встроен поиск по сходству: если вы опечатаетесь и напишете "Englesh", система догадается, что вы имели в виду.
3. Транслитерация и spellcheck
Это то, чего часто не хватает в стандартных библиотеках. Нужно превратить кириллицу в латиницу или проверить текст на ошибки перед отправкой в БД? translatepy делает это «из коробки», используя мощности тех же движков Microsoft или Google.
4. CLI и интерактивная оболочка
Если вы не хотите писать код прямо сейчас, а нужно просто что-то быстро перевести в терминале, у библиотеки есть отличный интерактивный режим:
translatepy shell
Там вас ждет удобное меню, где можно выбрать действие, целевой язык и сразу видеть результат.
Как это устроено внутри
Архитектура проекта довольно прозрачна: есть базовый класс BaseTranslator, от которого наследуются конкретные реализации для каждого сервиса. Это значит, что если какой-то API изменится, починить его в одном месте будет несложно.
Интересно реализована работа с User-Agents. Чтобы сервисы не блокировали запросы как «ботовские», библиотека использует вспомогательный модуль pyuseragents, который генерирует реалистичные заголовки браузеров.
Кстати, о производительности: в проекте реализовано кэширование. Если вы переводите одни и те же фразы по кругу (например, элементы интерфейса), библиотека не будет каждый раз дергать сеть, а возьмет готовый результат из памяти.
Кому это пригодится
В моей практике такие инструменты незаменимы в нескольких случаях:
- Локализация приложений: когда нужно быстро набросать переводы для десятков языков, чтобы потом отдать их на правку живому переводчику.
- Парсинг данных: если вы собираете отзывы или новости со всего мира и хотите привести их к понятному виду.
- Телеграм-боты:
translatepyидеально ложится в логику ботов-переводчиков благодаря своей простоте.
Небольшой нюанс (Disclaimer)
Автор проекта честно предупреждает: не стоит использовать эту библиотеку в крупных коммерческих проектах «как есть». Поскольку она делает запросы к публичным веб-интерфейсам переводчиков, при очень больших нагрузках вас могут временно ограничить. Для серьезного бизнеса лучше купить официальный API-ключ. Но для пет-проектов, автоматизации рутины и небольших сервисов — это идеальный вариант.
translatepy — это тот случай, когда маленькая библиотека решает большую головную боль. Она избавляет от необходимости «изобретать велосипед» каждый раз, когда вашему Python-скрипту нужно заговорить на другом языке.
Попробовать проект можно простой командой:
pip install translatepy
А если вы чувствуете в себе силы, проект открыт для контрибьютов — например, можно добавить поддержку новых сервисов или улучшить алгоритмы транслитерации.
Полезные ссылки:
Удачного кодинга и пусть ваши программы понимают друг друга без слов!
