API Google Translate перевод текста на Python

Статьи

API Google Translate перевод текста на Python

Автор: Рамис, 01 сентября 2020

Приветствую всех, в этой статье я покажу как на Python можно создать самого простого переводчика с помощью библиотеки Googletrans.

Знакомство

Googletrans - это бесплатная и неограниченная библиотека Python, в которой реализован API Google Translate. Он использует API Google Translate Ajax для вызова методов перевода и определение языка.

⚠ Примечание по использованию библиотеки:

  • Максимальное количество символов в одном тексте - 15 КБ.
  • Из-за ограничений веб-версии Google Translate этот API не гарантирует, что библиотека будет работать должным образом.
  • Если вы хотите использовать стабильный API, я настоятельно рекомендую вам использовать официальный API перевода Google.
  • Если вы получаете ошибку HTTP 5xx или ошибки типа #6, вероятно это связано с тем, что Google заблокировал IP-адрес вашего клиента.

Быстрый старт

Установим библиотеку через PyPI (Совместим с Python 3.6+).

pip install googletrans

Пример кода, который переведет текст hello world на русский

from googletrans import Translator
translator = Translator()
result = translator.translate('hello world', src='en', dest='ru')
print(result.text)
# Привет мир
  • translate(text, dest='en', src='auto')
    • text - Исходный текст для перевода.
    • src - Язык исходного текста
    • dest - Язык для перевода исходного текста.

Так же можно определить язык текста.

from googletrans import Translator
translator = Translator()
r1 = translator.detect('你好')
r2 = translator.detect('Привет')
print(f'Язык: {r1.lang}, достоверность: {r1.confidence}')
print(f'Язык: {r2.lang}, достоверность: {r2.confidence}')
  • detected(lang, confidence)
    • lang - обнаруженный язык
    • confidence - достоверность результата обнаружения

Языковые коды для перевода

{
    'af': 'afrikaans',
    'sq': 'albanian',
    'am': 'amharic',
    'ar': 'arabic',
    'hy': 'armenian',
    'az': 'azerbaijani',
    'eu': 'basque',
    'be': 'belarusian',
    'bn': 'bengali',
    'bs': 'bosnian',
    'bg': 'bulgarian',
    'ca': 'catalan',
    'ceb': 'cebuano',
    'ny': 'chichewa',
    'zh-cn': 'chinese (simplified)',
    'zh-tw': 'chinese (traditional)',
    'co': 'corsican',
    'hr': 'croatian',
    'cs': 'czech',
    'da': 'danish',
    'nl': 'dutch',
    'en': 'english',
    'eo': 'esperanto',
    'et': 'estonian',
    'tl': 'filipino',
    'fi': 'finnish',
    'fr': 'french',
    'fy': 'frisian',
    'gl': 'galician',
    'ka': 'georgian',
    'de': 'german',
    'el': 'greek',
    'gu': 'gujarati',
    'ht': 'haitian creole',
    'ha': 'hausa',
    'haw': 'hawaiian',
    'iw': 'hebrew',
    'hi': 'hindi',
    'hmn': 'hmong',
    'hu': 'hungarian',
    'is': 'icelandic',
    'ig': 'igbo',
    'id': 'indonesian',
    'ga': 'irish',
    'it': 'italian',
    'ja': 'japanese',
    'jw': 'javanese',
    'kn': 'kannada',
    'kk': 'kazakh',
    'km': 'khmer',
    'ko': 'korean',
    'ku': 'kurdish (kurmanji)',
    'ky': 'kyrgyz',
    'lo': 'lao',
    'la': 'latin',
    'lv': 'latvian',
    'lt': 'lithuanian',
    'lb': 'luxembourgish',
    'mk': 'macedonian',
    'mg': 'malagasy',
    'ms': 'malay',
    'ml': 'malayalam',
    'mt': 'maltese',
    'mi': 'maori',
    'mr': 'marathi',
    'mn': 'mongolian',
    'my': 'myanmar (burmese)',
    'ne': 'nepali',
    'no': 'norwegian',
    'ps': 'pashto',
    'fa': 'persian',
    'pl': 'polish',
    'pt': 'portuguese',
    'pa': 'punjabi',
    'ro': 'romanian',
    'ru': 'russian',
    'sm': 'samoan',
    'gd': 'scots gaelic',
    'sr': 'serbian',
    'st': 'sesotho',
    'sn': 'shona',
    'sd': 'sindhi',
    'si': 'sinhala',
    'sk': 'slovak',
    'sl': 'slovenian',
    'so': 'somali',
    'es': 'spanish',
    'su': 'sundanese',
    'sw': 'swahili',
    'sv': 'swedish',
    'tg': 'tajik',
    'ta': 'tamil',
    'te': 'telugu',
    'th': 'thai',
    'tr': 'turkish',
    'uk': 'ukrainian',
    'ur': 'urdu',
    'uz': 'uzbek',
    'vi': 'vietnamese',
    'cy': 'welsh',
    'xh': 'xhosa',
    'yi': 'yiddish',
    'yo': 'yoruba',
    'zu': 'zulu',
    'fil': 'Filipino',
    'he': 'Hebrew'
}

Так же можно использовать массив для перевода текста

from googletrans import Translator
translator = Translator()

translations = translator.translate(['여보세요', 'Hello', 'Ahoj'], dest='ru')
for translation in translations:
    print(translation.origin, ' -> ', translation.text)
#여보세요  ->  Привет
#Hello  ->  Привет
#Ahoj  ->  Здравствуй

Подробности в документации.

Комментарии

Markdown
Войти

Меню

Объявление

Нашли на сайте баг OR ошибку OR фичу? Прошу Вас сообщить мне через обратную связь, или комментарий.

Есть идеи для сайта? Свяжитесь со мной через форму обратной связи. Наш разработчик всегда рад готов добавить что то новое.