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

Перед прочтением статьи рекомендуем ознакомиться с Общей информацией об 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=

Понравилось?

7

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

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