

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

# 翻译处理模式
<a name="processing"></a>

翻译文档时，您可以使用两种不同的翻译处理模式：实时翻译或异步批处理。您使用的模式取决于目标文档的大小和类型，并会影响您提交翻译作业和查看其结果的方式。
+ [实时翻译](sync.md) – 您做出同步翻译少量文本（或文本文件）的请求，Amazon Translate 会立即回复翻译后的文本。
+ [异步批处理](async.md) — 您将一组文档放在亚马逊简单存储服务 (Amazon S3) 的某个位置，然后启动异步处理任务来翻译这些文档。Amazon Translate 将翻译后的输出文档发送到指定的 Amazon S3 地点。

# 实时翻译
<a name="sync"></a>

Amazon Translate 提供实时文档和文本翻译操作，可立即返回翻译。您可以使用控制台或 API 执行实时翻译。

**Topics**
+ [使用控制台进行实时翻译](sync-console.md)
+ [使用 API 进行实时翻译](sync-api.md)

# 使用控制台进行实时翻译
<a name="sync-console"></a>

要使用控制台进行实时翻译，请将输入文本粘贴到**源语言**文本框中，或者以文件形式提供输入文本。或者，您可以设置所需的形式级别、亵渎掩盖、简洁和自定义术语等功能。

您可以将自动语言检测与实时翻译配合使用，但可能需要付费。有关更多信息，请参阅 [自动语言检测](how-it-works.md#how-to-auto)。

**Topics**
+ [翻译文本](#sync-console-text)
+ [翻译文档](#sync-console-document)
+ [查看等效的 API 请求和响应数据](#sync-console-output)
+ [使用翻译特征](#sync-console-features)

## 翻译文本
<a name="sync-console-text"></a>

使用 Amazon Translate 控制台翻译多达 10000 字节的文本。

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

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

1. 在**源语言**中，选择源文本的语言，或者将该值保留为**自动**以自动进行检测。

1. 在**目标语言**中，选择一种语言。

1. 在**源语言**文本框中输入或粘贴文本。控制台在**目标语言**文本框中显示翻译后的文本。  
![\[Amazon Translate 控制台的翻译文本页面。\]](http://docs.aws.amazon.com/zh_cn/translate/latest/dg/images/gs-10.png)

## 翻译文档
<a name="sync-console-document"></a>

实时文档翻译支持从英语翻译成任何支持的语言，以及从任何支持的语言翻译成英语。

要使用 Amazon Translate 控制台翻译文档，请执行以下操作：

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

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

1. 在翻译面板中，选择**文档**选项卡。  
![\[Amazon Translate 控制台的翻译文档屏幕。\]](http://docs.aws.amazon.com/zh_cn/translate/latest/dg/images/gs-12.png)

1. 在**源语言**中，选择源文本的语言，或选择**自动**以自动进行检测。

1. 在**目标语言**中，选择一种语言。如果源语言不是英语，您必须选择英语作为目标语言。

1. 在**上传文件**下，选择**选择文件**，然后输入源文件的路径。最大文件大小为 100 KB。

1. 在**文档类型**中，选择翻译源文件的格式。文档翻译支持纯文本、HTML 或 Word (.docx) 输入文件。

1. 选择**翻译**。

   翻译任务完成后，选择**下载翻译**，将翻译后的文档下载到本地硬盘。翻译后的文档格式（文本、HTML 或 Word）与输入的文档相同。

## 查看等效的 API 请求和响应数据
<a name="sync-console-output"></a>

使用控制台翻译输入文本或文档后，您可以查看 JSON 格式的等效 API 请求数据和响应数据。

1. 在**翻译**面板下方，展开**应用程序集成**面板。

   控制台以 JSON 格式显示等效翻译请求数据。  
![\[用于翻译文本的 JSON 代码示例。\]](http://docs.aws.amazon.com/zh_cn/translate/latest/dg/images/gs-20.png)

1. 您可以复制 **JSON 请求**以在[TranslateText](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateText.html)或 [TranslateDocument](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateDocument.html)API 操作中使用。

1. **JSON 响应面板**中的 JSON 输出与 API 生成的输出相匹配。

## 使用翻译特征
<a name="sync-console-features"></a>

要在 Amazon Translate 控制台中使用翻译特征，请执行以下操作：

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

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

1. 如前面的步骤所述，提供源语言、目标语言和输入数据（文本或文档）。

1. 在**其他设置**下，您可以选择使用以下设置自定义翻译作业的输出：  
**自定义术语**  
选择自定义术语文件。如果文件的输入文本中包含源术语条目，则 Amazon Translate 将使用术语文件中的译文。  
有关更多信息，请参阅 [使用自定义术语自定义您的翻译](how-custom-terminology.md)。  
**简洁**  
缩短大多数翻译的翻译输出的长度（与不简洁的翻译输出相比）。Amazon Translate 支持简洁翻译文本，但不支持翻译文档。为简洁起见，如果源语言和目标语言构成不支持的语言对，Amazon Translate 将忽略简洁设置。  
有关支持的语言的信息，请参阅[在 Amazon Translate 中使用简洁性](customizing-translations-brevity.md)。  
**脏话**  
掩蔽翻译输出中的污言秽语。Amazon Translate 并不是在所有受支持的语言中都支持掩盖脏话。  
有关更多信息，请参阅 [在 Amazon Translate 中掩蔽污言秽语](customizing-translations-profanity.md)。  
**正式性**  
对于某些目标语言，您可以将**正式性**设置为正式或非正式。如果目标语言不支持正式性设置，Amazon Translate 将忽略该设置。  
有关更多信息，请参阅 [在 Amazon Translate 中设置正式性](customizing-translations-formality.md)。

1. 对于文档翻译，请选择 **Translate** 以使用所选特征翻译文档。

   对于文本翻译，在您选择每项特征后，控制台会将翻译特征应用于翻译后的文本。

# 使用 API 进行实时翻译
<a name="sync-api"></a>

Amazon Translate 提供以下实时翻译操作来支持交互式应用程序：
+  [TranslateText](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateText.html)— 翻译一段文本。
+  [TranslateDocument](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateDocument.html)— 翻译文件的内容（纯文本、HTML 或.docx）。

这些同步操作会直接将翻译结果返回到您的应用程序。如果您在这些操作中使用自动语言检测，则可能会产生费用。有关更多信息，请参阅 [自动语言检测](how-it-works.md#how-to-auto)。

## 翻译文本
<a name="sync-api-text"></a>

使用该[TranslateText](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateText.html)操作翻译单个文本块。

### 使用命令行翻译文本
<a name="sync-api-cli-command-line"></a>

以下示例说明如何通过命令行使用该[TranslateText](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateText.html)操作。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

在命令行输入以下命令。

```
aws translate translate-text \
            --region region \
            --source-language-code "en" \
            --target-language-code "es" \
            --text "hello, world"
```

命令使用以下 JSON 进行响应：

```
{
    "TargetLanguageCode": "es",
    "TranslatedText": "Hola, mundo",
    "SourceLanguageCode": "en"
}
```

### 使用 JSON 文件翻译文本
<a name="sync-api-cli-json-file"></a>

此示例演示如何使用 JSON 文件翻译更长的文本块。您可以在命令行上指定源语言和目标语言，或在 JSON 文件中指定。

**注意**  
示例 JSON 文件已设置为便于阅读的格式。重新设置 `"Text"` 字段的格式以删除换行符。  
此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

**使用 JSON 文件翻译文本**

1. 将以下文本复制到名为 `translate.json` 的 JSON 文件中：

   ```
   {
       "Text": "Amazon Translate translates documents between languages in 
       real time. It uses advanced machine learning technologies 
       to provide high-quality real-time translation. Use it to 
       translate documents or to build applications that work in 
       multiple languages.", 
       "SourceLanguageCode": "en", 
       "TargetLanguageCode": "fr"
   }
   ```

1. 在中 AWS CLI，运行以下命令：

   ```
   aws translate translate-text \
               --region region \
               --cli-input-json file://translate.json > translated.json
   ```

   此命令将输出包含以下 JSON 文本的 JSON 文件：

   ```
   {
       "TargetLanguageCode": "fr", 
       "TranslatedText": "Amazon Translate traduit les documents entre 
       les langue en temps réel. Il utilise des technologies 
       avancées d'apprentissage de la machine pour fournir 
       une traduction en temps réel de haute qualité. Utilisez-le 
       pour traduire des documents ou pour créer des applications 
       qui fonctionnent en plusieurs langues.", 
       "SourceLanguageCode": "en"
   }
   ```

## 翻译文档
<a name="sync-api-document"></a>

使用该[TranslateDocument](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateDocument.html)操作翻译文本、HTML 或 Word (.docx) 文档，并将翻译结果直接返回到您的应用程序。

实时文档翻译支持从英语翻译成任何支持的语言，以及从任何支持的语言翻译成英语。您可以指定源语言代码或使用自动检测。

### 使用命令行翻译文档
<a name="sync-api-documenti-cli"></a>

以下示例说明如何通过命令行使用该[TranslateDocument](https://docs.aws.amazon.com/translate/latest/APIReference/API_TranslateDocument.html)操作。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

在命令行输入以下命令。

```
aws translate translate-document \
            --region region \
            --source-language-code "en" \
            --target-language-code "es" \
            --document-content fileb://source-lang.txt 
            --document ContentType=text/plain 
            --query "TranslatedDocument.Content" 
            --output text | base64 
            --decode > target-lang.txt
```

命令使用以下 JSON 进行响应：

```
{
    "SourceLanguageCode": "en",
    "TargetLanguageCode": "es",
    "TranslatedDocument":{
      "Content": blob
    }
}
```

# 使用 Amazon Translate 进行异步批处理
<a name="async"></a>

要翻译大量文档（大小不超过 5 GB），请使用 Amazon Translate 异步批处理操作[StartTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_StartTextTranslationJob.html)。此操作最适合短文档集合，如社交媒体帖子或用户评论，或任何不需要即时翻译的情况。

要执行异步批量翻译，通常执行以下步骤：

1. 将一组文档存储在 Amazon S3 存储桶内的输入文件夹中。

1. 启动批量翻译作业。

1. 作为请求的一部分，向 Amazon Translate 提供一个对输入 Amazon S3 文件夹及其所有子文件夹具有读取权限的 IAM 角色。该角色还必须对输出 Amazon S3 存储桶具有读写访问权限。

1. 监控批量翻译作业的进度。

1. 从指定的输出存储桶中检索批量翻译作业的结果。

## 区域可用性
<a name="async-regions"></a>

以下 AWS 区域支持 Batch 翻译：
+ 美国东部（俄亥俄州）
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（北加利福尼亚）
+ 美国西部（俄勒冈州）
+ 亚太地区（孟买）
+ 亚太地区（首尔）
+ 亚太地区（新加坡） 
+ 亚太地区（悉尼） 
+ 亚太地区（东京）
+ 加拿大（中部）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ 欧洲地区（巴黎）
+ 欧洲地区（斯德哥尔摩）

**Topics**
+ [区域可用性](#async-regions)
+ [批量翻译作业的先决条件](async-prereqs.md)
+ [运行批量翻译作业](async-start.md)
+ [监控和分析批量翻译作业](async-monitor.md)
+ [获取批量翻译结果](async-results.md)

# 批量翻译作业的先决条件
<a name="async-prereqs"></a>

Amazon Translate 要成功执行批量翻译作业，必须满足以下先决条件：
+ 包含输入和输出文档的 Amazon S3 存储桶必须与您调用的 API 端点位于同一 AWS 区域中。
+ 批处理输入文档的集合大小必须不超过 5 GB。
+ 一个批量翻译作业中最多可提交 100 万份文档。
+ 每个输入文档必须不超过 20 MB，并且必须包含少于 100 万个字符。
+ 您的文件必须位于 Amazon S3 存储桶中的文件夹中。如果您将输入文件添加到存储桶的顶层，则在您尝试运行批量翻译任务时，Amazon Translate 会引发错误。此要求适用于输入文件。输出文件不需要文件夹，Amazon Translate 可以将其放置于 Amazon S3 存储桶的顶层。
+ 您的输入文件文件夹可以包含嵌套文件夹。确保没有任何嵌套文件夹命名为 **details**，否则在您尝试运行批量翻译任务时，Amazon Translate 会引发错误。

## 支持的文件格式
<a name="async-prereqs-formats"></a>

Amazon Translate 支持以下类型的文件用于批量翻译作业：
+ 纯文本。
+ HTML。
+ Word 文档 (.docx)。
+ PowerPoint 演示文件 (.pptx)。
+ Excel 工作簿文件 (.xlsx)。
+ XML 本地化交换文件格式 (XLIFF) 文件 (.xlf)。Amazon Translate 仅支持 XLIFF 版本 1.2。

Amazon Translate 要求文件采用 UTF-8 编码。

## 必备权限
<a name="async-prereqs-permissions"></a>

在运行批量翻译任务之前，您的 AWS 账户必须在 IAM 中拥有服务角色。该角色必须具有向 Amazon Translate 授权的权限策略：
+ 对 Amazon S3 中您的输入文件夹及其所有子文件夹的读取权限。
+ 对输出存储桶的读取和写入访问权限。

还必须包含一项信任策略，允许 Amazon Translate 代入该角色并获取其权限。此信任策略必须允许 `translate.amazonaws.com` 服务主体执行 `sts:AssumeRole` 操作。

在使用 Amazon Translate 控制台创建批量翻译作业时，您可以选择允许 Amazon Translate 自动为您创建此角色。当您使用 AWS CLI 或 Amazon Translate API 运行批量翻译任务时，您需要在请求中提供该角色的亚马逊资源名称 (ARN)。

有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**Example 权限策略**  
以下示例权限策略授予对 Amazon S3 存储桶中输入文件夹的读取访问权限，并且授予对输出存储桶的读取和写入访问权限。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": [
        "arn:aws:s3:::input-bucket-name/*",
        "arn:aws:s3:::output-bucket-name/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": [
        "arn:aws:s3:::input-bucket-name",
        "arn:aws:s3:::output-bucket-name"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::output-bucket-name/*"
    }
  ]
}
```

**Example 信任策略**  
以下信任策略允许 Amazon Translate 代入该策略所属的 IAM 角色。  
我们建议您验证使用信任策略的 AWS 账户，以缓解 Confused [副手](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)问题。此示例使用 **aws:SourceArn** 和 **aws:SourceAccount** 条件键来验证源账户。输入提交批量翻译作业的 AWS 账户。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "translate.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
            "aws:SourceArn": "arn:aws:translate:*:111122223333:*"
        },
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

## 自定义加密的必备权限
<a name="async-prereqs-permissions-custom-encryption"></a>

您可以在 Amazon Translate 中自定义您的加密设置，但必须首先在 IAM 中为服务角色添加权限。

Amazon Translate 会对您在运行批量翻译作业时产生的翻译输出进行加密。默认情况下，它使用 *AWS 托管式密钥* 进行此加密。此类密钥由您的账户创建 AWS 并存储在 AWS Key Management Service (AWS KMS) 中。但是，您无法自己管理此 KMS 密钥，只能由 AWS代表您管理和使用。

或者，您可以选择使用*客户托管密钥加密输出，该密钥*是您在 AWS 账户中创建、拥有和管理的 KMS 密钥。

您的密钥必须具有允许 Amazon Translate 使用的密钥政策。密钥政策通过将其权限授予允许 Amazon Translate 访问 Amazon S3 存储桶的服务角色来实现这一点。

密钥策略允许服务角色执行加密输出所需的 AWS KMS 操作，如以下示例策略声明所示。

**Example KMS 密钥政策语句：**  

```
{
  "Effect": "Allow",
  "Principal":
  {
    "AWS":
    [
      "arn:aws:iam::111122223333:role/AmazonTranslateServiceRoleS3FullAccess"
    ]
  },
  "Action":
  [
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:CreateGrant",
    "kms:RetireGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

有关更多信息，请参阅《AWS Key Management Service 开发人员指南》**中的 [AWS KMS中的密钥政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

### 使用其他 AWS 账户 AWS KMS 密钥的权限
<a name="async-prereqs-permissions-custom-encryption-cross-account"></a>

如果您想使用与您使用 Amazon Translate 不同的 AWS 账户的 KMS 密钥，则必须：

1. 在 IAM 中更新 Amazon Translate 的服务角色。

1. 更新中的密钥政策 AWS KMS。

要更新您的服务角色，请附加一个允许其使用其他 AWS 账户中的 KMS 密钥执行必要 AWS KMS 操作的策略，如以下示例所示。

**Example 用于授予不同账户中 KMS 密钥访问权限的 IAM policy**  

```
{
  "Effect": "Allow",
  "Action":
  [
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:CreateGrant",
    "kms:RetireGrant",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/key-id"
}
```

要更新您的 KMS 密钥政策，请将服务角色和管理员用户添加为允许使用密钥的委托人，如以下示例策略语句所示。

**Example 允许 IAM 角色使用密钥的 KMS 密钥政策语句**  

```
{
  "Effect": "Allow",
  "Principal":
  {
    "AWS":
    [
      "arn:aws:iam::444455556666:role/AmazonTranslateServiceRoleS3FullAccess",
      "arn:aws:iam::444455556666:admin"
    ]
  },
  "Action":
  [
    "kms:Decrypt",
    "kms:CreateGrant",
    "kms:GenerateDataKey",
    "kms:RetireGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

有关更多信息，请参阅《*AWS Key Management Service 开发者指南》*[中的允许其他账户中的用户使用 AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)

# 运行批量翻译作业
<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)操作。

# 监控和分析批量翻译作业
<a name="async-monitor"></a>

您可以使用作业的 ID 来监控其进度并获取其输出文档的 Amazon S3 位置。要监视特定作业，请使用 [DescribeTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_DescribeTextTranslationJob.html) 操作。您还可以使用 [ListTextTranslationJobs](https://docs.aws.amazon.com/translate/latest/APIReference/API_ListTextTranslationJobs.html) 操作检索账户中所有翻译作业的信息。要将结果限制为符合特定条件的作业，请使用[ListTextTranslationJobs](https://docs.aws.amazon.com/translate/latest/APIReference/API_ListTextTranslationJobs.html)操作的`filter`参数。您可以按作业名称、作业状态或提交作业的日期和时间筛选结果。

**Example describe-text-translation-job 命令**  
以下示例使用运行[DescribeTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_DescribeTextTranslationJob.html)命令来检查作业的状态： AWS CLI   

```
$ aws translate describe-text-translation-job --job-id 1c1838f470806ab9c3e0057f14717bed
```
此命令将返回以下输出：  

```
{
  "TextTranslationJobProperties": {
    "InputDataConfig": {
      "ContentType": "text/plain",
      "S3Uri": "s3://input-bucket-name/folder"
    },
    "EndTime": 1576551359.483,
    "SourceLanguageCode": "en",
    "DataAccessRoleArn": "arn:aws:iam::012345678901:role/service-role/AmazonTranslateInputOutputAccess",
    "JobId": "1c1838f470806ab9c3e0057f14717bed",
    "TargetLanguageCodes": [
      "fr"
    ],
    "JobName": "batch-test",
    "SubmittedTime": 1576544017.357,
    "JobStatus": "COMPLETED",
    "Message": "Your job has completed successfully.",
    "JobDetails": {
      "InputDocumentsCount": 77,
      "DocumentsWithErrorsCount": 0,
      "TranslatedDocumentsCount": 77
    },
    "OutputDataConfig": {
      "S3Uri": "s3://bucket-name/output/012345678901-TranslateText-1c1838f470806ab9c3e0057f14717bed/"
    }
  }
}
```

您可以通过使用 [StopTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_StopTextTranslationJob.html) 操作在批处理翻译作业的状态为 `IN_PROGRESS` 时停止此作业。

**Example stop-text-translation-job 命令**  
以下示例使用运行[StopTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_StopTextTranslationJob.html)命令来停止批量翻译： AWS CLI   

```
$ aws translate stop-text-translation-job --job-id 5236d36ce5192abdb3e2519f3ab8b065
```
此命令将返回以下输出：  

```
{
  "TextTranslationJobProperties": {
    "InputDataConfig": {
      "ContentType": "text/plain",
      "S3Uri": "s3://input-bucket-name/folder"
    },
    "SourceLanguageCode": "en",
    "DataAccessRoleArn": "arn:aws:iam::012345678901:role/service-role/AmazonTranslateInputOutputAccess",
    "TargetLanguageCodes": [
      "fr"
    ],
    "JobName": "canceled-test",
    "SubmittedTime": 1576558958.167,
    "JobStatus": "STOP_REQUESTED",
    "JobId": "5236d36ce5192abdb3e2519f3ab8b065",
    "OutputDataConfig": {
      "S3Uri": "s3://output-bucket-name/012345678901-TranslateText-5236d36ce5192abdb3e2519f3ab8b065/"
    }
  }
}
```

# 获取批量翻译结果
<a name="async-results"></a>

作业的状态为 `COMPLETED` 或 `COMPLETED_WITH_ERROR` 后，您的输出文档将在您指定的 Amazon S3 文件夹中可用。输出文档名称与输入文档名称相匹配，但添加目标语言代码作为前缀。例如，如果您将一个名为 `mySourceText.txt` 的文档翻译成法语，则输出文档将名为 `fr.mySourceText.txt`。

如果批处理翻译作业的状态为 `FAILED`，则 [DescribeTextTranslationJob](https://docs.aws.amazon.com/translate/latest/APIReference/API_DescribeTextTranslationJob.html) 操作响应包括一个 `Message` 字段，用于描述作业未成功完成的原因。

每个批量翻译作业还会生成一个辅助文件，其中包含有关所执行翻译的信息，例如翻译的总字符数和遇到的错误数。此文件（称为 `target-language-code.auxiliary-translation-details.json`）在输出文件夹的 `details` 子文件夹中生成。

以下是批量翻译辅助文件的示例。

```
{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "fr",
  "charactersTranslated": "105",
  "documentCountWithCustomerError": "0",
  "documentCountWithServerError": "0",
  "inputDataPrefix": "s3://input-bucket-name/folder",
  "outputDataPrefix": "s3://output-bucket-name/012345678901-TranslateText-1c1838f470806ab9c3e0057f14717bed/",
  "details": [
    {
      "sourceFile": "mySourceText.txt",
      "targetFile": "fr.mySourceText.txt",
      "auxiliaryData": {
        "appliedTerminologies": [
          {
            "name": "TestTerminology",
            "terms": [
              {
                "sourceText": "Amazon",
                "targetText": "Amazon"
              }
            ]
          }
        ]
      }
    },
    {
      "sourceFile": "batchText.txt",
      "targetFile": "fr.batchText.txt",
      "auxiliaryData": {
        "appliedTerminologies": [
          {
            "name": "TestTerminology",
            "terms": [
              {
                "sourceText": "Amazon",
                "targetText": "Amazon"
              }
            ]
          }
        ]
      }
    }
  ]
}
```