Краткое руководство по интеграции контента со Smartcat

 

Документация для разработчиков перенесена на выделенный ресурс developers.smartcat.com. Данная страница более не поддерживается, но временно остаётся доступной для вашего удобства. 

 

Перед прочтением статьи рекомендуем ознакомиться с Общей информацией об API Smartcat.

Терминология

В данном сценарии рассматривается два основных объекта: проект и документ.

Проекту соответствует один исходный и один или несколько целевых языков, срок исполнения, выбранные лингвистические ресурсы и движки машинного перевода.

Документ — это конкретный файл, импортированный в Smartcat и подлежащий переводу на выбранное подмножество языков проекта. По умолчанию, документу соответствуют ВСЕ языки проекта. У документа нет срока исполнения. (Он есть у назначений на документ — но это тема для другой статьи.) В процессе работы в проект можно добавлять новые документы или обновлять существующие, заменяя их старые версии новыми.

У каждого проекта и у каждого документа — свой уникальный идентификатор.

Создаём проект и импортируем документ

Сперва давайте создадим проект при помощи метода POST project/create. Мы укажем только самые базовые данные для него: имя и исходный/целевой языки. Другими параметрами вы сможете поиграться позднее. Параметр assignToVendor установите в значение false. Если вы тестируете метод через Swagger, НЕ заполняйте поля Content-Disposition, Content-Type и Boundary.

Пример: project/create

Request URL: 
https://smartcat.ai/api/integration/v1/project/create

Headers:
Content-Type: multipart/form-data; boundary=--------------------SmartCATe8bf0f27d7
Authorization: Basic dGVzdGFwaUJhY2t1cDoxMjM0NTY=

Body:
----------------------SmartCATe8bf0f27d7
Content-Disposition: form-data; name="Test"; filename="test.txt"
Content-Type: application/octetstream
One. Two. Three.
----------------------SmartCATe8bf0f27d7
Content-Disposition: form-data; name="model"
Content-Type: application/json
{
"name":" API Project",
"sourceLanguage": "en",
"targetLanguages": ["ru"],
"assignToVendor": false
}
----------------------SmartCATe8bf0f27d7--

Вы можете загрузить первый документ сразу при создании проекта, используя модель documentProperties, или же загрузить его позже. Чтобы добавить документ в проект, используйте метод POST project/document. В базовом сценарии большинство параметров необязательны, поэтому мы их пока опустим.

Пример: project/document

Request URL:
https://smartcat.ai/api/integration/v1/project/document?projectId={projectId}

Headers:
Content-Type: multipart/form-data; boundary=--------------------SmartCATe8bf0f27d7
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Body:
----------------------SmartCATe8bf0f27d7
Content-Disposition: form-data; name="txt"; filename="txt.txt"
Content-Type: application/octetstream
Text
----------------------SmartCATe8bf0f27d7--

Обновляем документ документ

Если исходный документ изменился, его можно обновить методом PUT document/update. Соответствующий документ в Smartcat будет перезаписан. Все уже имеющиеся переводы будут подставлены в сегменты обновлённого документа.

Пример: document/update

Request URL:
https://smartcat.ai/api/integration/v1/document/update?documentId={documentId_languageId}

Headers:
Content-Type: multipart/form-data; boundary=--------------------SmartCATe8bf0f27d7
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Body:
----------------------SmartCATe8bf0f27d7
Content-Disposition: form-data; name="txt"; filename="txt.txt" Content-Type: application/octetstream
Text update
----------------------SmartCATe8bf0f27d7--

Расчет статистики

Иногда вам будет нужно рассчитать количество слов в документе и наличие совпадений в памяти переводов. Это можно сделать методом GET project/{projectid}/statistics.

Пример: project/{projectId}/statistics

Request URL: 
https://smartcat.ai/api/integration/v1/project/{projectId}/statistics?onlyExactMatches=false

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Обратите внимание: статистика рассчитывается для всех документов проекта вместе. Статистику по отдельному документу можно получить методом GET document/statistics.

Пример: document/statistics

Request URL: 
https://smartcat.ai/api/integration/v1/document/statistics?documentId={documentId_languageId}&onlyExactMatches=false

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Если же вы хотите просто узнать общее количество слов, без разбивки по совпадениям с памятью переводов, вы просто можете использовать параметр wordsCount, передаваемый в ответе на GET document.

Пример: document

Request URL: 
https://smartcat.ai/api/integration/v1/document?documentId={documentId_languageId}

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Отслеживаем статус перевода

Вы можете отслеживать текущий статус перевода, а именно процент выполнения каждого этапа, статус задач, назначения и т. д., при помощи метода GET document. Пример см. выше.
Чтобы узнать процент выполнения и статусы всех документов проекта вместе, используйте вместо этого метод GET project/{projectid}.

Пример: project/{projectId}

Request URL: 
https://smartcat.ai/api/integration/v1/project/{projectId}

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Вы также можете настроить колбэки при изменении статуса перевода.

Экспортируем перевод

Переведённый документ можно экспортировать методом POST document/export. В этом случае Smartcat начнёт собирать финальный документ. Если документ небольшой, в ответе на запрос вы получите идентификатор задачи экспорта. Сборка более крупных документов может занять некоторое время. В этом случае после завершения сборки Smartcat отправит вам колбэк с идентификатором задачи по адресу <callbackURL>/document/exportRequestCompleted.

Пример: document/export

Request URL: 
https://smartcat.ai/api/integration/v1/document/export?documentIds={documentId_languageId}&type=target&stageNumber=1

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Чтобы экспортировать документ, необязательно дожидаться завершения перевода. В таком случае Smartcat соберёт частично переведённую версию документа.
Получив идентификатор задачи, вы можете загрузить финальный документ методом GET document/export/{taskid}.

Пример: document/export/{taskId}

Request URL: 
https://smartcat.ai/api/integration/v1/document/export/{taskid}

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Информация оказалась полезной?

9

Похожие статьи:

    Нет похожих статей