Как онлайн переводчик подключить в приложение по api
Машинный перевод может значительно ускорить работу переводчика, если он органически интегрирован в его CAT (про Computer Aided Translation читайте здесь). Вместо того, чтобы переходить на страничку с Google Translate и копировать текст туда, интегрированный движок машинного перевода автоматически покажет перевод для каждого сегмента. Остаётся только оценить его качество, вставить с помощью горячей клавиши и отредактировать при необходимости. Или проигнорировать и написать текст с нуля.
Где пригодится машинный перевод
Такое использование MT помогает в нескольких сценариях:
Как получить доступ к машинному переводу
Для использования стороннего сервиса машинного перевода ваш CAT должен поддерживать доступ через API. В общих чертах, работает это так:
- Регистрируетесь в сервисе машинного перевода
- Получаете от него ключ API
- Вводите ключ в своём CAT
Теперь в процессе перевода каждый сегмент будет автоматически отправляться на сервер машинного перевода, а результат будет отображаться в CAT. Вот пример, как использовать это в OmegaT.
Топ-3 сервиса машинного перевода с API
UPD: Актуальные сервисы для машинного перевода смотрите в новой заметке от октября 2021 года.
Yandex Translate
Цена: бесплатно до миллиона символов в сутки
Хорошая и фактически бесплатная альтернатива переводчику от Google. Лимит в миллион символов (
550 страниц текста мелким шрифтом) вам преодолеть вряд ли удастся. Получить ключ сейчас очень просто:
Готово, у вас есть ключ для вашего софта.
IBM Watson
Цена: бесплатно до миллиона символов в месяц
Неожиданный бесплатный движок, который не требует привязывать банковскую карту для начала использования.
- Зарегистрируйте аккаунт IBM Watson Cloud
- Нажмите Create resource
- Найдите Language Translator и создайте ресурс
Ключ API будет доступен в настройках ресурса. Для использования в OmegaT понадобится ещё и URL, который указан на той же странице.
Google Cloud
Цена: год бесплатно, потом $20 за миллион символов
Всем знакомый Google Translate. Бесплатный аккаунт действует 1 год, дальше оплата по US $20 за миллион знаков исходного текста, который вы ему передадите. Небольшая плата, если вы зарабатываете на переводах. Либо создавайте по новому аккаунту Google Cloud каждый год 😉
- Зарегистрируйтесь вконсоли разработчика Google
Частным лицам из России как бы недоступно, но вы можете прикинуться компанией; денег платить не нужно. - Создайте проект
- Нажмите Enable APIs and Services в панели управления API & Services
- Включите Cloud Translation API
- Перейдите в раздел Credentialsв панели управления
Там вы найдёте ключи API, которые и нужно подключать в вашем CAT.
Есть ещё машинный перевод от Microsoft Azure, но у него довольно муторная регистрация, и self-hosted движок Apertium с довольно сложной настройкой. О них в другой раз.
На данный момент для использования API переводчика в вашем приложении, нужно сделать следующее
3. Заходим в раздел «приложения», регистрируем новое приложение. Client ID заполняем произвольно, Client secret уже сгенерирован. Redirect URI указываем любой, он не используется.
Приведу пример php-класса, который переводит текст.
protected $msData , $accessToken ;
public function __construct ( $msData ) < //в массиве msdata хранятся client_id и client_secret
$this -> msData = $msData ;
$this -> initAccessToken ( ) ;
>
protected function initAccessToken ( ) < //получаем accessToken
$curl = curl_init ( "datamarket.accesscontrol.windows.net/v2/OAuth2-13/" ) ;
curl_setopt_array ( $curl , array (
CURLOPT_POST => true , //формируем POST-запрос для получения токена
CURLOPT_POSTFIELDS => http_build_query ( array (
'client_id' => $this -> msData [ 'clientid' ] ,
'client_secret' => $this -> msData [ 'clientsecret' ] ,
'scope' => 'http://api.microsofttranslator.com' , //это значение указано в документации
'grant_type' => "client_credentials" //это значение указано в документации
) ) ,
CURLOPT_SSL_VERIFYPEER => false ,
CURLOPT_RETURNTRANSFER => true ,
) ) ;
$response = curl_exec ( $curl ) ;
$err = curl_errno ( $curl ) ;
if ( $err )
throw new Exception ( "curl err $err " ) ;
$r_obj = json_decode ( $response ) ;
if ( ! isset ( $r_obj ) )
throw new Exception ( "illegal response: $response " ) ;
$this -> accessToken = $r_obj -> access_token ;
>
public function translate ( $text , $lang_to , $lang_from ) <
$query_arr = array (
'appId' => 'Bearer ' . $this -> accessToken ,
'text' => $text ,
'from' => $lang_from ,
'to' => $lang_to ,
'contentType' => 'text/plain'
) ;
$query = http_build_query ( $query_arr ) ;
$url = 'http://api.microsofttranslator.com/V2/Http.svc/Translate?' . $query ;
$curl = curl_init ( $url ) ;
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , 1 ) ;
$response = curl_exec ( $curl ) ;
$err = curl_errno ( $curl ) ;
if ( $err )
throw new Exception ( "curl err $err " ) ;
$xml = new SimpleXMLElement ( $response ) ; //получаем строку перевода из xml-ответа
return ( string ) $xml ;
>
>
Надеюсь, этот пост будет полезен тем, кто решит подключить онлайн-переводчик к своему приложению.
Если вы не прятались под скалой, вы, вероятно, много раз использовали 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. Для этого введите в своем терминале следующую команду:
Нажмите Enter и модуль Python для Google Translate API будет установлен в вашей системе.
Если вы установили дистрибутив Python для Anaconda, вы можете установить API с помощью Anaconda Prompt. В этом конкретном методе вы замените в приведенной выше команде pip на conda , как показано в следующем фрагменте кода:
Теперь, когда вы установили API, мы увидим его в действии с помощью нескольких примеров.
Список поддерживаемых языков
Google Translate API поддерживает множество языков. Чтобы вывести список всех поддерживаемых языков, запустите следующий скрипт:
В приведенном выше примере вы используете ключевое слово import для импорта модуля googletrans . Впоследствии вы можете перечислить все названия языков, напечатав атрибут LANGUAGES модуля googletrans .
При выполнении вышеприведенный фрагмент кода перечислит имена всех поддерживаемых языков вместе с их сокращенной записью. Вот как будет выглядеть вывод:
Основное использование
Основное использование Google Translate API - это, конечно, перевод слов или предложений с одного языка на другой. Для этого мы должны импортировать класс Translator из модуля googletrans .
Далее вы должны создать объект класса Translator .
Как только объект класса Translator создан, вы передадите текст на исходном языке в качестве параметра методу translate() объекта класса Translator() , как показано ниже:
В приведенном выше сценарии мы передаем финский текст методу translate() .
Метод translate() возвращает объект, содержащий информацию о переводе текста, источника и назначения языков и произношения текста. По умолчанию метод translate() возвращает английский перевод текста, переданного ему. В нашем случае объект, возвращаемый методом translate() , сохраняется в переменной result .
Объект, возвращаемый методом translate() , имеет следующие атрибуты:
- src : Исходный язык
- dest : Язык назначения, установленный на английский (en)
- origin : Оригинальный текст, в нашем примере это Mitä sinä teet
- text : Переведенный текст, в нашем случае это будет «what are you doing?»
- pronunciation : Произношение переведенного текста
Давайте напечатаем все вышеперечисленные атрибуты и посмотрим, что мы получим
Выходные данные показывают, что исходный язык - финский (fi), а язык назначения - английский (en). Переведенное предложение можно распечатать через атрибут text .
В приведенном выше примере мы не указали исходный язык. Поэтому Google Translate API пытается определить исходный язык. Аналогично, мы также не указали ни одного языка назначения, и поэтому API перевел исходный язык на язык по умолчанию, английский. Но что, если вы хотите указать исходный и целевой языки?
Указание исходного и целевого языков
На самом деле, очень легко указать язык назначения и исходный язык в Google Translate API. Вот код, который вы будете использовать для передачи только исходного языка:
Чтобы добавить только целевой язык, вы должны добавить атрибут dest , за которым следует код языка:
Вы также можете передать исходный и целевой языки одновременно:
Давайте теперь переведем финское предложение на французский, а затем напечатаем исходный и целевой языки, а также переведенный текст. На этот раз мы укажем исходный и целевой языки.
Приведенный выше фрагмент кода даст следующий результат.
Перевод списка фраз
Также можно перевести список текстовых фраз с помощью Google Translate API. Основной процесс такой же, как описано выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра метода translate() . Это полезно для того, чтобы пакет фраз переводился отдельно, но все в одном вызове API.
Давайте создадим список строк, содержащих некоторые фразы из французского языка.
Теперь пришло время вызвать метод translate() и передать в качестве параметров список, исходный язык и язык назначения.
В приведенном выше сценарии исходный язык - французский, а язык назначения - суахили.
Метод translate() возвращает список объектов, если вы передаете список фраз к нему. Каждый объект в списке, возвращаемый методом translate() , соответствует каждой фразе в списке ввода, который должен быть переведен. Лучший способ найти перевод каждой входной фразы в списке - это перебрать список выходных объектов. Затем вы можете использовать text , origin , src и другие атрибуты отдельных объектов, чтобы увидеть перевод отдельных фраз в списке ввода.
В приведенном ниже сценарии мы перебираем список объектов, возвращаемых методом translate() , а затем печатаем источник и переведенный текст:
Следующий результат будет отображаться на экране.
Перевод текстовых документов
Вы также можете переводить текстовые документы через Google Translate API. Все, что вам нужно сделать, это прочитать текстовый файл в Python, используя метод open , прочитать текст и передать его в метод translate() .
Первый шаг - открыть файл в режиме «чтения»:
Вы также можете проверить, находится ли файл в режиме «чтения», используя свойство mode :
Далее вы можете использовать метод f.read() для чтения содержимого файла. Содержимое файла может быть сохранено в любой переменной. В нашем случае имя переменной будет contents .
Мы также напечатаем переменную contents , чтобы проверить, правильно ли Python читает текстовый файл:
Вот вывод содержимого файла:
Убедитесь, что у вас есть вышеуказанный контент в вашем текстовом файле, если вы хотите следовать нашему примеру.
Мы убедились, что Python обращается к текстовому файлу и читает его. Теперь мы переведем результат, импортировав тот же старый класс Translate , что и раньше.
Следующим шагом является передача переменной contents , содержащей входной текст, в функцию translate() . Наконец, напечатайте атрибут text объекта, возвращенного методом translate() , и вы получите переведенную строку.
Вывод должен выглядеть следующим образом:
Чтобы записать переведенный текст в тот же файл или другой текстовый файл, вы просто откроете файл в режиме записи («w»). Затем вам нужно вызвать метод write() и передать ему переведенный текст, как показано ниже:
В приведенном выше примере мы использовали менеджер контекста with для автоматического открытия и закрытия потока записи. Во-вторых, мы открыли файл в режиме записи. Наконец, мы использовали метод write() для записи переведенной строки в новый файл.
Вывод
Google Translate - это инструмент с API, который помогает вам выполнять множество различных функций, связанных с переводом. Мы только поцарапали поверхность с приведенными выше примерами. Вам предлагается практиковать API, а также изучать и понимать, как использовать его в реальных приложениях.
Переводчик Майкрософт API можно использовать для перевода речи и текста с помощью REST API. в этой статье объясняется, как использовать API Переводчик Майкрософт текста для перевода текста с одного языка на другой в Xamarin.Forms приложении.
Обзор
Переводчик API содержит два компонента:
- Преобразование текста REST API для перевода текста с одного языка на другой в тексте на другом языке. API автоматически определяет язык текста, отправленного перед его переводом.
- Перевод речи REST API, чтобы транскрипция речь с одного языка на текст на другом языке. API также сочетает в себе возможности преобразования текста в речь для обратного перевода переведенного текста.
эта статья посвящена преобразованию текста с одного языка на другой с помощью API перевода текстов.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.
чтобы использовать API перевода текстов, необходимо получить ключ API. это можно получить , как зарегистрироваться для получения Переводчик Майкрософт текста API.
дополнительные сведения об API Переводчик Майкрософт текста см. в документации по API перевода текстов.
Аутентификация
В следующем примере кода показано, как запросить маркер доступа из службы маркеров:
Возвращаемый маркер доступа, который является текстом Base64, имеет время действия 10 минут. Таким образом, пример приложения обновляет маркер доступа каждые 9 минут.
маркер доступа должен быть указан в каждом API перевода текстов вызове в качестве Authorization заголовка с префиксом строки Bearer , как показано в следующем примере кода:
Дополнительные сведения о службе маркеров для переприятных служб см. в разделе Проверка подлинности.
Выполнение преобразования текста
TranslateTextAsync Метод создает URI запроса и извлекает маркер доступа из службы маркеров. Затем запрос на перевод текста отправляется в translate API, который возвращает XML-ответ, содержащий результат. XML-ответ анализируется, и результат преобразования возвращается вызывающему методу для вывода.
дополнительные сведения о интерфейсах api для преобразования текста см. в разделе API перевода текстов.
Настройка преобразования текста
Этот метод задает текст для перевода и язык перевода текста. список языков, поддерживаемых Переводчик Майкрософт, см. в разделе поддерживаемые языки в API Переводчик Майкрософт текста.
Если приложению необходимо знать, на каком языке находится текст, Detect можно вызвать API, чтобы определить язык текстовой строки.
Идет отправка запроса
SendRequestAsync Метод делает запрос GET к преобразованию текста REST API и возвращает ответ:
Этот метод создает запрос GET, добавляя маркер доступа к Authorization заголовку с префиксом строки Bearer . Затем запрос GET отправляется в translate API, с URL-адресом запроса, который указывает текст для перевода, и язык, на который нужно перевести текст. Затем ответ считывается и возвращается вызывающему методу.
Обработка ответа
В примере приложения XML-ответ разбивается на XDocument экземпляр, при этом корневое значение XML возвращается вызывающему методу для отображения, как показано на следующих снимках экрана:
Читайте также: