Если вы не прятались под камнем, вы, вероятно, использовали Google Translate много раз в своей жизни. Всякий раз, когда вы пытаетесь перевести слово или предложение с одного языка на другой, именно API Google Translate дает вам желаемые результаты в фоновом режиме. Хотя вы можете перевести что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API в свои веб-приложения или настольные программы. Самое лучшее в API - это то, что его чрезвычайно легко настроить и использовать.
На самом деле вы можете делать много вещей с помощью Google Translate API, начиная от определения языков и заканчивая простым переводом текста, настройкой исходного и целевого языков и переводом целых списков текстовых фраз. В этой статье вы увидите, как работать с Google Translate API на языке программирования Python.
Установка Google Translate API
Прежде чем вы сможете работать с Google Translate API в Python, вам
необходимо установить его. Есть два разных метода установки API. Первый
метод прост. Просто перейдите в терминал и используйте pip
для
установки API, как и для любой другой библиотеки Python. Для этого
введите в терминале следующую команду:
$ pip install googletrans
Нажмите [Enter,]{.kbd} и модуль Python для Google Translate API будет установлен в вашей системе.
Если вы установили дистрибутив Python для Anaconda, вы можете установить
API с помощью Anaconda Prompt. В этом конкретном методе вы замените
pip
в приведенной выше команде на conda
, как показано в следующем
фрагменте кода:
$ conda install googletrans
Теперь, когда вы установили API, мы увидим его в действии на нескольких примерах.
Список поддерживаемых языков
Google Translate API поддерживает множество языков. Чтобы вывести список всех поддерживаемых языков, запустите следующий скрипт:
import googletrans
print(googletrans.LANGUAGES)
В приведенном выше примере вы используете import
ключевого слова для
импорта модуля googletrans
Впоследствии, вы можете перечислить имена
всех языков, напечатав LANGUAGES
атрибут googletrans
модуля.
При выполнении приведенный выше фрагмент кода перечислит все имена поддерживаемых языков вместе с их сокращенной нотацией. Вот как будет выглядеть результат:
{'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'}
Основное использование
Основное использование Google Translate API - это, конечно, перевод слов
или предложений с одного языка на другой. Для этого нам нужно
импортировать класс Translator
из модуля googletrans
from googletrans import Translator
Далее вам необходимо создать объект класса Translator
translator = Translator()
После того , как объект класса Translator будет создан, вы будете
передавать текст в исходном языке в качестве параметра для translate()
метод в Translator()
объекта класса, как показано ниже:
result = translator.translate('Mitä sinä teet')
В приведенном выше скрипте мы передаем финский текст методу
translate()
Метод translate()
возвращает объект, содержащий информацию о
переведенном тексте, исходном и целевом языках, а также о произношении
текста. По умолчанию метод translate()
возвращает английский перевод
переданного ему текста. В нашем случае объект, возвращаемый методом
translate()
сохраняется в переменной result
Объект, возвращаемый методом translate()
имеет следующие атрибуты:
src
: исходный языкdest
: язык назначения, установленный на английский (en)origin
: Исходный текст, в нашем примере это "Mitä sinä teet"text
: переведенный текст, это будет «что ты делаешь?» в нашем случаеpronunciation
: Произношение переведенного текста
Давайте распечатаем все указанные выше атрибуты и посмотрим, какой результат мы получим:
print(result.src)
print(result.dest)
print(result.origin)
print(result.text)
print(result.pronunciation)
Выход:
fi
en
Mitä sinä teet
What are you doing
What are you doing
Выходные данные показывают, что исходным языком является финский (fi), а
языком назначения - английский (en). Переведенное предложение можно
распечатать с помощью атрибута text
В приведенном выше примере мы не указали исходный язык. Таким образом, Google Translate API пытается сам определить исходный язык. Точно так же мы не указали какой-либо целевой язык, и, таким образом, API перевел исходный язык на английский язык по умолчанию. Но что, если вы хотите указать как исходный, так и целевой языки?
Указание исходного и целевого языков
На самом деле очень легко указать как целевой, так и исходный языки в Google Translate API. Вот код, который вы будете использовать для передачи только исходного языка:
result = translator.translate('Mikä on nimesi', src='fi')
Чтобы добавить только целевой язык, вам нужно добавить dest
, за
которым следует код языка:
result = translator.translate('Mikä on nimesi', dest='fr')
Вы также можете передать исходный и целевой языки одновременно:
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')
Давайте теперь переведем финское предложение на французский, а затем распечатаем исходный и целевой языки, а также переведенный текст. На этот раз мы укажем исходный и целевой языки.
from googletrans import Translator
translator = Translator()
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')
print(result.src)
print(result.dest)
print(result.text)
Приведенный выше фрагмент кода даст следующий результат.
fi
fr
Quel est votre nom
Перевод списка фраз
Также можно перевести список текстовых фраз с помощью Google Translate
API. Основной процесс такой же, как описано выше. Вам просто нужно
передать список, содержащий фразы, в качестве параметра методу
translate()
Это полезно, если пакет фраз переводится отдельно, но все
в одном вызове API.
Создадим список строк, содержащих фразы из французского языка.
sentences = ['Bienvenu', 'Comment allez-vous', 'je vais bien']
Теперь пора вызвать метод translate()
и передать список, исходный язык
и целевой язык в качестве параметров.
result = translator.translate(sentences, src='fr', dest='sw')
В приведенном выше сценарии исходным языком является французский, а языком назначения - суахили.
Метод translate()
возвращает список объектов, если вы передаете ему
список фраз. Каждый объект в списке, возвращаемом методом translate()
соответствует каждой фразе во входном списке, которую нужно перевести.
Лучший способ найти перевод каждой входной фразы в списке - перебрать
список выходных объектов. Затем вы можете использовать text
, origin
, src
и другие атрибуты отдельных объектов, чтобы увидеть перевод
отдельных фраз в списке ввода.
В приведенном ниже скрипте мы перебираем список объектов, возвращаемых
методом translate()
а затем печатаем исходный и переведенный текст:
for trans in result:
print(f'{trans.origin} -> {trans.text}')
На экране отобразится следующий результат.
Bienvenu -> karibu
Comment allez-vous -> Vipi wewe
je vais bien -> Niko sawa
Перевод текстовых документов
Вы также можете переводить текстовые документы с помощью Google
Translate API. Все, что вам нужно сделать, это прочитать текстовый файл
в Python с помощью open
, прочитать текст и передать его методу
translate()
Первым делом нужно открыть файл в режиме «чтение»:
f = open('C:\\Users\\Khurram\\Desktop\\test.txt', 'r')
Вы также можете проверить, находится ли файл в режиме «чтения»,
используя свойство mode
if f.mode == 'r':
Затем вы можете использовать метод f.read()
для чтения содержимого
файла. Содержимое файла можно сохранить в любой переменной. В нашем
случае имя переменной будет contents.
Мы также распечатаем contents
чтобы проверить, правильно ли Python
читает текстовый файл:
contents = f.read()
print(contents)
Вот вывод содержимого файла:
We are going to translate this text file using Python.
Subsequently, we will also translate it into French.
Убедитесь, что в вашем текстовом файле есть указанное выше содержимое, если вы хотите следовать нашему примеру.
Мы убедились, что Python обращается к текстовому файлу и читает его.
Теперь мы переведем результат, импортировав тот же старый Translate
раньше.
from googletrans import Translator
file_translate = Translator()
Следующим шагом является передача contents
содержащей вводимый текст,
в функцию translate()
Наконец, распечатайте text
атрибут объекта,
возвращенный методом translate()
и вы получите переведенную строку.
result = translator.translate(contents, dest='fr')
print(result.text)
Результат должен выглядеть следующим образом:
Nous allons traduire ce fichier texte en Python.
Par la suite, nous le traduirons également en français.
Чтобы записать переведенный текст в тот же файл или в другой текстовый
файл, вы просто откроете файл в режиме записи («w»). Затем вам нужно
вызвать метод write()
и передать ему переведенный текст, как показано
ниже:
with open('C:\\Users\\Khurram\\Desktop\\test_2.txt', 'w') as f:
f.write(result.text)
В приведенном выше примере мы использовали диспетчер
контекста with
чтобы автоматически
открывать и закрывать поток записи. Во-вторых, мы открыли файл в режиме
записи. Наконец, мы использовали метод write()
для записи переведенной
строки в новый файл.
Заключение
Google Translate - это инструмент с API, который помогает вам выполнять множество различных функций, связанных с переводом. Приведенные выше примеры коснулись лишь поверхности. Вам предлагается попрактиковаться в API, а также изучить и понять, как его использовать в реальных приложениях.