

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 运行批量翻译作业
<a name="async-start"></a>

您可以使用 Amazon Translate 控制台 AWS CLI、或 Amazon Translate API 运行批量翻译作业。

**注意**  
批量翻译作业是长时间运行的操作，可能需要大量时间才能完成。例如，对小型数据集进行批量翻译可能需要几分钟时间，而非常大的数据集可能需要 2 天甚至更长时间。完成时间也取决于资源的可用性。

## Amazon Translate 控制台
<a name="async-start-console"></a>

要使用 Amazon Translate 控制台运行翻译作业，请使用**批量翻译**页面创建作业：

1. 打开 [Amazon Translate 控制台](https://console.aws.amazon.com/translate/home)。

1. 在左侧导航菜单中，选择**批量翻译**。

1. 在**翻译作业**页面上，选择**创建作业**。控制台显示**创建翻译作业**页面。

1. 在**作业设置**下，执行以下操作：

   1. 在**名称**中，输入批量翻译作业的自定义名称。

   1. 在**源语言**中，选择源文件的语言。如果您不知道源文件的语言，或者您的输入文档包含不同源语言，请选择 `auto`。Amazon Translate 会自动检测每个文件的源语言。

   1. 在**目标语言**中，最多可选择 10 种语言。Amazon Translate 会将每个源文件翻译成每种目标语言。

1. 在**输入数据**下，执行以下操作：

   1. 在**输入 S3 位置**中，指定在 Amazon S3 中包含翻译源文件的输入文件夹。要通过在 Amazon S3 中导航到该文件夹来提供该文件夹，请选择**选择文件夹**。

   1. 在**文件格式**中，选择翻译源文件的格式。

1. 在**输入数据**下，执行以下操作：

   1. 在**输出 S3 位置**中，指定 Amazon Translate 在 Amazon S3 中存放翻译输出的输出文件夹。要通过在 Amazon S3 中导航到该文件夹来提供该文件夹，请选择**选择文件夹**。

   1. 或者，如果您要使用您**在 () 中管理的客户管理的密钥来加密输出，请选择自定义加密设置 AWS Key Management Service （高级**AWS KMS）。

      默认情况下，Amazon Translate 使用由 AWS代表您创建、管理和使用的 KMS 密钥。如果您想改用您自己的 KMS 密钥加密输出，请选择此选项。

      如果要使用来自当前 AWS 账户的 KMS 密钥，请在选择** AWS Key Management Service 密钥下将其选**中。或者，如果您希望使用来自其他 AWS 账户的 KMS 密钥，请输入该密钥的 Amazon 资源名称 (ARN)。
**注意**  
在使用您自己的 KMS 密钥之前，您必须在 IAM 中为 Amazon Translate 的服务角色添加权限。如果您想使用其他账户的 KMS 密钥，还必须更新中的密钥策略 AWS KMS。有关更多信息，请参阅 [自定义加密的必备权限](async-prereqs.md#async-prereqs-permissions-custom-encryption)。

1. 在**自定义 - 可选**下，您可以选择使用以下设置自定义翻译作业的输出：  
**脏话**  
掩蔽翻译输出中的污言秽语。如果您为作业指定了多种目标语言，所有目标语言都必须支持脏话掩蔽。如果任何目标语言不支持脏话掩蔽，翻译作业将不会在任何目标语言中掩蔽脏话。  
有关更多信息，请参阅 [在 Amazon Translate 中掩蔽污言秽语](customizing-translations-profanity.md)。  
**简洁**  
Amazon Translate 不支持批量翻译作业的简洁性。  
有关更多信息，请参阅 [在 Amazon Translate 中使用简洁性](customizing-translations-brevity.md)。  
**正式性**  
对于某些目标语言，您可以将**正式性**设置为正式或非正式。如果您为作业指定了多种目标语言，对于任何不支持正式性设置的目标语言，Translate 将忽略该设置。  
 有关更多信息，请参阅 [在 Amazon Translate 中设置正式性](customizing-translations-formality.md)。  
**自定义术语**  
由示例源术语和每个术语的所需翻译组成。如果您为作业指定了多种目标语言，对于每种在术语文件中具有源术语条目的请求的目标语言，Translate 会为这些语言使用指定的术语。  
有关更多信息，请参阅 [使用自定义术语自定义您的翻译](how-custom-terminology.md)。  
**并行数据**  
由展示您希望如何翻译文本句段的示例组成。如果您为作业指定了多种目标语言，则并行数据文件必须包含所有目标语言的翻译。  
向批量翻译作业添加并行数据时，即创建了一个*活动自定义翻译*作业。  
与其他不使用并行数据的作业相比，活动自定义翻译作业的定价更高。有关更多信息，请参阅 [Amazon Translate 定价](https://aws.amazon.com/translate/pricing/)。
有关更多信息，请参阅 [使用并行数据自定义您的翻译（活动自定义翻译）](customizing-translations-parallel-data.md)。

1. 在**访问权限**下，为 Amazon Translate 提供一个 IAM 角色，该角色向你授予在 Amazon S3 中输入和输出文件所需的权限：
   + 如果您的账户中已有此 IAM 角色，请选择**使用现有 IAM 角色**，然后在 **IAM 角色**下选择该角色。
   + 如果您的账户中还没有此 IAM 角色，请选择**创建 IAM 角色**。在 **IAM 角色**中，选择**输入和输出 S3 存储桶**。在**角色名称**中，提供一个自定义名称。当您创建翻译任务时，Amazon Translate 会自动创建角色。IAM 中的角色名称以 *AmazonTranslateServiceRole-* 为前缀。
**注意**  
如果您选择使用自己的 KMS 密钥加密翻译输出，则无法选择**创建 IAM 角色**。在这种情况下，您必须使用先前存在的 IAM 角色，并且您的 KMS 密钥必须具有允许该角色使用密钥的密钥政策。  
有关更多信息，请参阅 [自定义加密的必备权限](async-prereqs.md#async-prereqs-permissions-custom-encryption)

1. 请选择**创建任务**。

   控制台会返回**翻译作业**页面，其中的作业创建状态显示在页面顶部的横幅中。几分钟后，表中会显示您的作业。

1. 在**名称**列中选择作业名称，以打开作业详细信息页面。

   您的翻译作业运行时，**状态**字段会显示**正在进行**。

1. 当状态变为**已完成**时，选择**输出文件位置**下的链接进入翻译输出。控制台会转到您在 Amazon S3 中的输出存储桶。

1. 要下载输出文件，请选中每个文件的复选框，然后选择**下载**。

## AWS CLI
<a name="async-start-cli"></a>

要使用运行翻译作业 AWS CLI，请使用[https://docs.aws.amazon.com/cli/latest/reference/translate/start-text-translation-job.html](https://docs.aws.amazon.com/cli/latest/reference/translate/start-text-translation-job.html)命令，然后为`parallel-data-names`参数指定 parallel 数据资源的名称。

**Example Start-text-translation-job 命令**  
以下示例通过提交存储在 Amazon S3 中输入存储桶中的 Excel 文件来运行翻译任务。此任务由请求中包含的并行数据进行自定义。  

```
$ aws translate start-text-translation-job \
> --input-data-config ContentType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,S3Uri=s3://amzn-s3-demo-bucket/input/ \
> --output-data-config S3Uri=s3://amzn-s3-demo-bucket/output/ \
> --data-access-role-arn arn:aws:iam::111122223333:role/my-iam-role \
> --source-language-code en \
> --target-language-codes es it \
> --job-name my-translation-job
```
如果命令成功，Amazon Translate 将返回作业 ID 和状态：  

```
{
    "JobId": "4446f95f20c88a4b347449d3671fbe3d",
    "JobStatus": "SUBMITTED"
}
```
如果您想要自定义翻译作业的输出，可以使用以下参数：    
`--settings`  
用于配置翻译输出的设置，包括以下选项：  
在翻译输出中开启简洁功能。Amazon Translate 不支持批量翻译作业的简洁性。有关更多信息，请参阅 [在 Amazon Translate 中使用简洁性](customizing-translations-brevity.md)。  
启用脏话设置以掩蔽污言秽语。要启用该设置，请将脏话参数设置为 `Profanity=MASK`。有关更多信息，请参阅 [在 Amazon Translate 中掩蔽污言秽语](customizing-translations-profanity.md)。如果任何目标语言不支持脏话掩蔽，翻译作业将不会掩蔽任何目标语言中的脏话。  
在翻译输出中设置正式程度。将 `Formality` 参数设置为 `FORMAL` 或 `INFORMAL`。如果您为作业指定了多种目标语言，对于任何不支持正式性设置的目标语言，Translate 将忽略该设置。有关更多信息，请参阅 [在 Amazon Translate 中设置正式性](customizing-translations-formality.md)。  
`--terminology-names`  
要添加到翻译作业中的自定义术语资源的名称。此资源列出了示例资源术语和每个术语所需的翻译。如果您为作业指定了多种目标语言，对于每种在术语文件中具有源术语条目的请求的目标语言，Translate 会为这些语言使用指定的术语。  
此参数仅接受一个自定义术语资源。  
要查看可用的自定义术语资源列表，请使用 [https://docs.aws.amazon.com/cli/latest/reference/translate/list-terminologies.html](https://docs.aws.amazon.com/cli/latest/reference/translate/list-terminologies.html) 命令。  
有关更多信息，请参阅 [使用自定义术语自定义您的翻译](how-custom-terminology.md)。  
`--parallel-data-names`  
要添加到翻译作业的并行数据资源的名称。此资源由展示您希望如何翻译文本句段的示例组成。如果您为作业指定了多种目标语言，则并行数据文件必须包含所有目标语言的翻译。  
向翻译作业添加并行数据时，即创建了一个*活动自定义翻译*作业。  
此参数仅接受一个并行数据资源。  
与其他不使用并行数据的作业相比，活动自定义翻译作业的定价更高。有关更多信息，请参阅 [Amazon Translate 定价](https://aws.amazon.com/translate/pricing/)。
要查看可用并行数据资源的列表，请使用 [https://docs.aws.amazon.com/cli/latest/reference/translate/list-parallel-data.html](https://docs.aws.amazon.com/cli/latest/reference/translate/list-parallel-data.html) 命令。  
有关更多信息，请参阅 [使用并行数据自定义您的翻译（活动自定义翻译）](customizing-translations-parallel-data.md)。

要查看翻译作业，请使用 [https://docs.aws.amazon.com/cli/latest/reference/translate/describe-text-translation-job.html](https://docs.aws.amazon.com/cli/latest/reference/translate/describe-text-translation-job.html) 命令。

**Example Describe-text-translation-job 命令**  

以下示例通过提供作业 ID 来检查作业状态。此 ID 由 Amazon Translate 在使用 `start-text-translation-job` 命令启动作业时提供的。

```
$ aws translate describe-text-translation-job \
> --job-id 4446f95f20c88a4b347449d3671fbe3d
```

Amazon Translate 使用任务属性进行响应，其中包括其状态：

```
{
    "TextTranslationJobProperties": {
        "JobId": "4446f95f20c88a4b347449d3671fbe3d",
        "JobName": "my-translation-job",
        "JobStatus": "COMPLETED",
        "JobDetails": {
            "TranslatedDocumentsCount": 0,
            "DocumentsWithErrorsCount": 0,
            "InputDocumentsCount": 1
        },
        "SourceLanguageCode": "en",
        "TargetLanguageCodes": [
            "es", 
            "it" 
        ],
        "SubmittedTime": 1598661012.468,
        "InputDataConfig": {
            "S3Uri": "s3://amzn-s3-demo-bucket/input/",
            "ContentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        },
        "OutputDataConfig": {
            "S3Uri": "s3://amzn-s3-demo-bucket/output/111122223333-TranslateText-4446f95f20c88a4b347449d3671fbe3d/"
        },
        "DataAccessRoleArn": "arn:aws:iam::111122223333:role/my-iam-role"
    }
}
```

如果 `JobStatus` 值为 `IN_PROGRESS`，请等待几分钟，然后再次运行 [https://docs.aws.amazon.com/cli/latest/reference/translate/describe-text-translation-job.html](https://docs.aws.amazon.com/cli/latest/reference/translate/describe-text-translation-job.html)，直到状态变为 `COMPLETED`。作业完成后，您可以在 `OutputDataConfig` 下的 `S3Uri` 字段提供的位置中下载翻译结果。

## Amazon Translate API
<a name="async-start-api"></a>

要使用 Amazon Translate API 提交批量翻译作业，请使用[StartTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_StartTextTranslationJob.html)操作。