Перевести текст

Чтобы перевести текст, воспользуйтесь методом translate.

Примеры

Чтобы воспользоваться примерами в этом разделе:

  1. На странице биллинга убедитесь, что платежный аккаунт находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
  2. Убедитесь, что у вас установлена утилита cURL, используемая в примерах.
  3. Получите идентификатор любого каталога, на который у вашего аккаунта есть роль editor или выше.
  4. Получите IAM-токен для своего аккаунта на Яндексе.

Чтобы выполнять эти операции от имени сервисного аккаунта:

  1. Назначьте сервисному аккаунту роль editor или выше на каталог, в котором он был создан.
  2. Не указывайте в запросе идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
  3. Выберите способ аутентификации: получите IAM-токен или API-ключ.

Hello, world

В этом примере мы переведем на русский язык две строки с текстом: Hello и World.

  1. Узнайте код языка, на который вы хотите перевести текст, с помощью метода listLanguages:

    $ export IAM_TOKEN=CggaATEVAgA...
    $ curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer ${IAM_TOKEN}" \
        -d "{\"folder_id\": \"${FOLDER_ID}\"}" \
        "https://translate.api.cloud.yandex.net/translate/v2/languages"
    

    Ответ будет содержать список языков с названиями на соответствующем языке:

    {
        "languages": [
            ...
            {
            "code": "ru",
            "name": "русский"
            },
            ...
        ]
    }
    
  2. Создайте файл с телом запроса, например body.json. Строки текста для перевода перечислите в поле texts. В поле targetLanguageCode укажите язык, на который необходимо перевести текст.

    {
        "folder_id": "b1gvmob95yysaplct532",
        "texts": ["Hello", "World"],
        "targetLanguageCode": "ru"
    }
    
  3. Передайте файл на перевод с помощью метода translate:

    $ export IAM_TOKEN=CggaATEVAgA...
    $ curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer ${IAM_TOKEN}" \
        -d @body.json \
        "https://translate.api.cloud.yandex.net/translate/v2/translate"
    

    В ответе сервис вернет переведенные строки текста:

    {
        "translations": [
            {
            "text": "Привет",
            "detectedLanguageCode": "en"
            },
            {
            "text": "Мир",
            "detectedLanguageCode": "en"
            }
        ]
    }
    

Укажите язык исходного текста

Есть слова, которые пишутся одинаково в разных языках, но переводятся по-разному. Например, слово angel в английском языке означает духовное существо, а в немецком — удочку. Если переданный текст состоит из таких слов, то SpeechKit может ошибиться при определении языка текста.

Чтобы избежать ошибки, укажите в поле sourceLanguageCode язык, с которого необходимо перевести текст:

{
    "folder_id": "b1gvmob95yysaplct532",
    "texts": ["angel"],
    "targetLanguageCode": "ru",
    "sourceLanguageCode": "de"
}

Сохраните тело запроса в файле, например body.json, и передайте его с помощью метода translate:

$ export IAM_TOKEN=CggaATEVAgA...
$ curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${IAM_TOKEN}" \
    -d @body.json \
    "https://translate.api.cloud.yandex.net/translate/v2/translate"

{
    "translations": [
        {
            "text": "удочка"
        }
    ]
}