亚马逊AWS官方博客

Amazon Translate 支持新语言:希腊语、匈牙利语、罗马尼亚语、泰国语、乌克兰语、乌尔都语和越南语

技术宣传官出差的时间很多,在演示 Amazon Translate 时客户提出最多的问题是:“是否支持我的母语”。今天我很高兴地宣布,如果您的语言是希腊语、匈牙利语、罗马尼亚语、泰国语、乌克兰语、乌尔都语和越南语,我们的回答将是“支持”。事实上,使用 Amazon Translate,我们甚至可以用优雅的方言来说“ναί”、“igen”、“da”、“ใช่”、“так”、“جی ہاں”和 “có”… !

增加这些语言后,Amazon Translate 现已支持 32 种语言:阿拉伯语、中文(简体)、中文(繁体)、捷克语、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、希伯来语、印地语、匈牙利语、印度尼西亚语、意大利语、日本语、韩语、马来语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄罗斯语、西班牙语、瑞典语、泰国语、土耳其语、乌克兰语、乌尔都语和越南语。

在这些语言之间,我们的服务共支持 987 个翻译组合:有关支持的语言对的完整列表请访问文档页面。

Amazon Translate 的使用
Amazon Translate 的使用极为简单。让我们在 AWS 控制台中快速测试以下我非常喜欢的一首诗:

开发人员当然更喜欢调用 TranslateText API。下面是一个使用 AWS CLI 的示例。

$ aws translate translate-text --source-language-code auto --target-language-code hu --text "Les sanglots longs des violons de l’automne blessent mon coeur d’une langueur monotone"
{
"TranslatedText": "Az őszi hegedű hosszú zokogása monoton bágyadtsággal fáj a szívem",
"SourceLanguageCode": "fr",
"TargetLanguageCode": "hu"
}

当然,此 API 也可在任何 AWS 开发工具包中调用。秉承语言多样性的精神,再来一个 C++ 的示例如何? 下面是一个翻译磁盘上存储的文本文件的简短程序。

#include <aws/core/Aws.h>
#include <aws/core/utils/Outcome.h>
#include <aws/translate/TranslateClient.h>
#include <aws/translate/model/TranslateTextRequest.h>
#include <aws/translate/model/TranslateTextResult.h>

#include <fstream>
#include <iostream>
#include <string>

# define MAX_LINE_LENGTH 5000

int main(int argc, char **argv) {
  if (argc != 4) {
    std::cout << "Usage: translate_text_file 'target language code' 'input file' 'output file'"
         << std::endl;
    return -1;
  }

  const Aws::String target_language = argv[1];
  const std::string input_file = argv[2];
  const std::string output_file = argv[3];

  std::ifstream fin(input_file.c_str(), std::ios::in);
  if (!fin.good()) {
    std::cerr << "Input file is invalid." << std::endl;
    return -1;
  }

  std::ofstream fout(output_file.c_str(), std::ios::out);
  if (!fout.good()) {
    std::cerr << "Output file is invalid." << std::endl;
    return -1;
  }

  Aws::SDKOptions options;
  Aws::InitAPI(options);
  {
    Aws::Translate::TranslateClient translate_client;
    Aws::Translate::Model::TranslateTextRequest request;
    request = request.WithSourceLanguageCode("auto").WithTargetLanguageCode(target_language);

    Aws::String line;
    while (getline(fin, line)) {
      if (line.empty()) {
        continue;
      }

      if (line.length() > MAX_LINE_LENGTH) {
        std::cerr << "Line is too long." << std::endl;
        break;
      }

      request.SetText(line);
      auto outcome = translate_client.TranslateText(request);

      if (outcome.IsSuccess()) {
        auto translation = outcome.GetResult().GetTranslatedText();
        fout << translation << std::endl;
      } else {
        std::cout << "TranslateText error: " << outcome.GetError().GetExceptionName()
             << " - " << outcome.GetError().GetMessage() << std::endl;
        break;
      }
    }
  }
  Aws::ShutdownAPI(options);
}

代码构建完成后,让我们将这首完整的诗翻译为泰国语:

$ translate_text_file th verlaine.txt verlaine-th.txt

$ cat verlaine-th.txt

“เสียงสะอื้นยาวของไวโอลินฤดูใบไม้ร่วงทำร้ายหัวใจของฉันด้วยความอ่อนเพลียที่น่าเบื่อ ทั้งหมดหายใจไม่ออกและซีดเมื่อชั่วโมงดังผมจำได้ว่าวันเก่าและร้องไห้ และฉันไปที่ลมเลวร้ายที่พาฉันออกไปจากที่นี่ไกลกว่าเช่นใบไม้ที่ตายแล้ว” - Paul Verlaine บทกวีของดาวเสาร์

您可以看到,在您自己的应用程序中集成 Amazon Translate 也极为简单。一个 API 即可搞定!

现已推出!
从现在开始,在提供 Amazon Translate 服务的所有区域都可使用这些新的语言。从您首次请求翻译开始,免费套餐在前 12 个月每月为您提供 200 万个字符的翻译。

我们期待您的反馈! 请将反馈发布到 AWS 论坛Amazon Translate 版块,或者将其发送给您常用的 AWS Support 联系人。

Julien