Автор оригинала: Guest Contributor.
Если вы не прятались под камнем, вы, вероятно, использовали Google Translate во многих случаях в своей жизни. Всякий раз, когда вы пытаетесь перевести слово или предложение с одного языка на другой, именно API Google Translate приносит вам желаемые результаты в фоновом режиме. Хотя вы можете перевести что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API в свои веб-приложения или настольные программы. Самое лучшее в API-это то, что он чрезвычайно прост в настройке и использовании.
На самом деле с помощью API Google Translate можно сделать очень многое-от обнаружения языков до простого перевода текста, настройки исходного и целевого языков и перевода целых списков текстовых фраз. В этой статье вы увидите, как работать с API Google Translate на языке программирования Python.
Установка API Google Translate
Прежде чем вы сможете работать с API Google Translate на Python, вам придется установить его. Существует два различных метода установки API. Первый способ прост. Просто зайдите в терминал и используйте установщик pip
для установки API, как и для любой другой библиотеки Python. Для этого введите в терминале следующую команду:
$ pip install googletrans
Нажмите Enter , и модуль Python для Google Translate API будет установлен в вашей системе.
Если вы установили дистрибутив Python Anaconda, вы можете установить API с помощью приглашения Anaconda. В этом конкретном методе вы замените pipe
в приведенной выше команде на conda
, как показано в следующем фрагменте кода:
$ conda install googletrans
Теперь, когда вы установили API, мы увидим его в действии с помощью некоторых примеров.
Список Поддерживаемых языков
API Google Translate поддерживает множество языков. Чтобы перечислить все поддерживаемые языки, выполните следующий сценарий:
import googletrans print(googletrans.LANGUAGES)
В приведенном выше примере вы используете ключевое слово import
для импорта модуля google trans
. Впоследствии вы можете перечислить все названия языков, напечатав атрибут LANGUAGES
модуля google trans
.
При выполнении приведенного выше фрагмента кода будут перечислены все имена поддерживаемых языков вместе с их сокращенной нотацией. Вот как будет выглядеть вывод:
{'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'}
Основное Использование
Самое основное использование API Google Translate-это, конечно же, перевод слов или предложений с одного языка на другой. Для этого нам нужно импортировать класс Translator
из модуля google trans
.
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ä teeth” в нашем примеретекст
: Переведенный текст, который будет “что вы делаете?” в нашем случаепроизношение
: Произношение переведенного текста
Давайте напечатаем все вышеперечисленные атрибуты и посмотрим, какой результат мы получим:
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 перевел исходный язык на язык по умолчанию-английский. Но что делать, если вы хотите указать как исходный, так и конечный языки?
Указание исходного и целевого языков
На самом деле очень легко указать как целевой, так и исходный языки в API Google Translate. Вот код, который вы будете использовать для передачи только исходного языка:
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
Перевод списка фраз
Также можно перевести список текстовых фраз с помощью API Google Translate. Основной процесс такой же, как и описанный выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра методу 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)
В приведенном выше примере мы использовали context manager |/with для автоматического открытия и закрытия потока записи. Во-вторых, мы открыли файл в режиме записи. Наконец, мы использовали метод
write() для записи переведенной строки в новый файл.
Вывод
Google Translate-это инструмент с API, который помогает вам выполнять множество различных функций, связанных с переводом. Мы только поцарапали поверхность с приведенными выше примерами. Вам рекомендуется практиковать API, а также учиться и понимать, как использовать его в реальных приложениях.