翻訳の開始

この API を使用して、Document Translation サービスで翻訳要求を開始します。 各要求には複数のドキュメントを含めることができ、各ドキュメントのソースと宛先のコンテナーが含まれている必要があります。

フォルダーをフィルター処理するには、プレフィックスとサフィックスのフィルター (指定された場合) を使用します。 プレフィックスは、コンテナー名の後のサブパスに適用されます。

用語集および翻訳メモリは、要求に含めることができ、ドキュメントが翻訳されるときにサービスによって適用されます。

翻訳中に用語集が無効であったり、到達できなかったりした場合は、ドキュメントの状態にエラーが表示されます。 同じ名前のファイルが宛先に既に存在する場合、ジョブは失敗します。 各ターゲット言語の targetUrl は一意でなければなりません。

要求 URL

POST 要求の送信先は次のとおりです。

POST https://<NAME-OF-YOUR-RESOURCE>.cognitiveservices.azure.com/translator/text/batch/v1.0/batches

カスタム ドメイン名を見つける方法について説明します。

重要

  • ドキュメント翻訳サービスへのすべての API 要求には、カスタム ドメイン エンドポイントが必要です
  • ドキュメント翻訳への HTTP 要求を行うために、Azure portal リソースの [キーとエンドポイント] ページで見つかるエンドポイントも、グローバル Translator エンドポイント api.cognitive.microsofttranslator.com も使用することはできません。

要求ヘッダー

要求ヘッダーを次に示します。

ヘッダー 説明
Ocp-Apim-Subscription-Key 必要な要求ヘッダー

要求本文: バッチ送信要求

名前 Type 説明
inputs BatchRequest[] 下に示される BatchRequest。 ドキュメントまたはドキュメントを含むフォルダーの入力リストです。 メディアの種類: "application/json"、"text/json"、"application/*+json"。

入力

入力バッチの翻訳要求に関する定義。

名前 Type 必須 説明
source SourceInput[] はい 下に示される inputs.source。 入力ドキュメントのソースです。
storageType StorageInputType[] False 下に示される inputs.storageType。 入力ドキュメントのソース文字列のストレージ型です。 1 つのドキュメントを翻訳する場合にのみ必要です。
ターゲット TargetInput[] はい 下に示される inputs.target。 出力先の場所です。

inputs.source

入力ドキュメントのソースです。

名前 Type 必須 説明
filter DocumentFilter[] いいえ 下に示される DocumentFilter[]。
filter.prefix string いいえ 翻訳対象のソースパス内のドキュメントをフィルター処理するための、大文字と小文字を区別するプレフィックス文字列。 たとえば、Azure ストレージ BLOB の URI を使用する場合は、プレフィックスを使用して、翻訳対象のサブフォルダーを制限します。
filter.suffix string いいえ 翻訳対象のソースパス内のドキュメントをフィルター処理するための、大文字と小文字を区別するサフィックス文字列。 これは、ファイル拡張子に対して最もよく使用されます。
language string いいえ 言語コードが指定されていない場合は、ドキュメントに対して自動検出を実行します。
sourceUrl string True ドキュメントを含むフォルダーまたはコンテナーあるいは単一ファイルの場所。
storageSource StorageSource いいえ 下に示される StorageSource。
storageSource.AzureBlob string いいえ

inputs.storageType

入力ドキュメントのソース文字列のストレージ型です。

名前 Type
file string
folder string

inputs.target

完成した翻訳済みドキュメントの宛先。

名前 Type 必須 説明
category string いいえ 翻訳要求のカテゴリまたはカスタム システム。
用語集 Glossary[] いいえ 下に示される用語集。 用語集の一覧。
glossaries.format string いいえ フォーマットします。
glossaries.glossaryUrl string True (用語集を使用する場合) 用語集の場所。 format パラメーターが指定されていない場合は、ファイル拡張子を使用して書式設定を抽出します。 翻訳言語のペアが用語集に存在しない場合は、適用されません。
glossaries.storageSource StorageSource いいえ 上に示される StorageSource。
glossaries.version string いいえ バージョン (省略可能)。 指定しない場合は、既定値が使用されます。
targetUrl string True ドキュメントを含むフォルダーまたはコンテナーの場所。
language string True 2 文字のターゲット言語コード。 言語コードの一覧に関するページを参照してください。
storageSource StorageSource [] いいえ 上に示される StorageSource []。

要求の例

バッチ要求の例を下に示します。

注意

次の例では、Shared Access Signature (SAS) トークンを使用して、Azure Storage コンテナーのコンテンツに制限付きアクセスが許可されています。

コンテナー内のすべてのドキュメントを翻訳する

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr"
                }
            ]
        }
    ]
}

コンテナー内のすべてのドキュメントを翻訳して用語集を適用する

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr",
                    "glossaries": [
                        {
                            "glossaryUrl": "https://my.blob.core.windows.net/glossaries/en-fr.xlf?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=BsciG3NWoOoRjOYesTaUmxlXzyjsX4AgVkt2AsxJ9to%3D",
                            "format": "xliff",
                            "version": "1.2"
                        }
                    ]

                }
            ]
        }
    ]
}

コンテナー内の特定のフォルダーを翻訳する

フィルターでプレフィックスとしてフォルダー名 (大文字と小文字が区別されます) を指定していることを確認してください。

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D",
                "filter": {
                    "prefix": "MyFolder/"
                }
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr"
                }
            ]
        }
    ]
}

コンテナー内の特定のドキュメントを翻訳する

  • "storageType": "File" を指定します
  • 特定の BLOB/ドキュメントのソース URL と SAS トークンを作成します。
  • ターゲット URL の一部としてターゲット ファイル名を指定します (ただし、SAS トークンはコンテナー用のままです)。

下のサンプル要求では、1 つのドキュメントが 2 つのターゲット言語に翻訳されています

{
    "inputs": [
        {
            "storageType": "File",
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en/source-english.docx?sv=2019-12-12&st=2021-01-26T18%3A30%3A20Z&se=2021-02-05T18%3A30%3A00Z&sr=c&sp=rl&sig=d7PZKyQsIeE6xb%2B1M4Yb56I%2FEEKoNIF65D%2Fs0IFsYcE%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-Spanish.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "es"
                },
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-German.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "de"
                }
            ]
        }
    ]
}

応答状態コード

要求によって返される可能性のある HTTP 状態コードを次に示します。

状態コード 説明
202 受理されました。 要求が成功し、サービスによってバッチ要求が作成されます。 ヘッダー Operation-Location は、ID.HeadersOperation-Location: string という操作の状態 URL を示します
400 正しくない要求。 無効な要求です。 入力パラメーターを確認してください。
401 権限がありません。 資格情報を確認してください。
429 要求レートが高すぎます。
500 内部サーバー エラー。
503 現在サービスが使用できません。 後でもう一度やり直してください。
その他の状態コード
  • 要求が多すぎます
  • サーバーが一時的に使用できません

エラー応答

名前 Type 説明
code string 高レベルのエラー コードを含む列挙型。 指定できる値
  • InternalServerError
  • InvalidArgument
  • InvalidRequest
  • RequestRateTooHigh
  • ResourceNotFound
  • ServiceUnavailable
  • 権限がありません
message string 高レベルのエラー メッセージを取得します。
innerError InnerTranslationError Cognitive Services API のガイドラインに準拠した新しい内部エラー形式。 必須プロパティとして ErrorCode、message、省略可能プロパティとして target、details (キーと値のペア)、inner error (入れ子が可能) が含まれています。
inner.Errorcode string コード エラー文字列を取得します。
innerError.message string 高レベルのエラー メッセージを取得します。
innerError.target string エラーのソースを取得します。 たとえば、ドキュメントが無効な場合 "documents" または "document ID" となります。

成功した応答の例

成功した応答では、次の情報が返されます。

ジョブ ID は、POST メソッドの応答ヘッダー Operation-Location URL 値で確認できます。 URL の最後のパラメーターは、操作のジョブ ID ("/operation/" に続く文字列) です。

Operation-Location: https://<NAME-OF-YOUR-RESOURCE>.cognitiveservices.azure.com/translator/text/batch/v1.0/operation/0FA2822F-4C2A-4317-9C20-658C801E0E55

エラー応答の例

{
  "error": {
    "code": "ServiceUnavailable",
    "message": "Service is temporary unavailable",
    "innerError": {
      "code": "ServiceTemporaryUnavailable",
      "message": "Service is currently unavailable.  Please try again later"
    }
  }
}

次のステップ

クイックスタートに従って、ドキュメント翻訳とクライアント ライブラリの使用について学習します。