你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 JavaScript 的 Azure TextTranslation REST 客户端库 - 版本 1.0.1

文本翻译是翻译服务的基于云的 REST API 功能,它使用神经机器翻译技术实时在所有受支持的语言中实时实现快速、准确的源到目标文本翻译。

文本翻译功能支持以下方法:

语言。 返回 Translate、Transliterate 和 Dictionary Lookup作支持的语言列表。

翻译。 使用单个请求将单个源语言文本呈现到多个目标语言文本。

音译。 将源语言的字符或字母转换为目标语言的相应字符或字母。

检测。 返回源代码语言代码和布尔变量,该变量指示检测到的语言是否支持文本翻译和音译。

字典查找。 返回目标语言中源词的等效字词。

字典示例返回源术语和目标术语对的语法结构和上下文示例。

请严重依赖 REST 客户端文档, 使用此库

关键链接:

开始

当前支持的环境

  • Node.js 的 LTS 版本
  • Edge、Chrome、Safar 和 Firefox 的最新版本

先决条件

  • 现有的翻译服务或认知服务资源。

安装 @azure-rest/ai-translation-text

使用 npm安装适用于 JavaScript 的 Azure 文本翻译 REST 客户端库:

npm install @azure-rest/ai-translation-text

创建翻译器服务资源

可以在 创建翻译器资源创建翻译器资源。

浏览器支持

JavaScript 捆绑包

若要在浏览器中使用此客户端库,首先需要使用捆绑程序。 有关如何执行此作的详细信息,请参阅我们的 捆绑文档

对客户端进行身份验证

使用客户端库与服务交互首先创建 TextTranslationClient 类的实例。 需要 API 密钥TokenCredential 来实例化客户端对象。 有关使用认知服务进行身份验证的详细信息,请参阅 对翻译服务的请求进行身份验证

获取 API 密钥

可以从 Azure 门户中的认知服务资源或翻译服务资源信息获取 endpointAPI keyRegion

或者,使用下面的 Azure CLI 代码片段从 Translator 服务资源获取 API 密钥。

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

使用 API 密钥和区域凭据创建 TextTranslationClient

获取 API 密钥和区域的值后,请创建一个 TranslatorCredential

使用 TranslatorCredential 的值可以创建 TextTranslationClient

const translateCedential = new TranslatorCredential(apiKey, region);
const translationClient = TextTranslationClient(endpoint, translateCedential);

例子

以下部分提供了几个代码片段,这些代码片段使用上面创建的 client,并涵盖此客户端库中提供的主要功能。

获取支持的语言

获取翻译器的其他作当前支持的语言集。

const langResponse = await translationClient.path("/languages").get();

if (isUnexpected(langResponse)) {
  throw langResponse.body;
}

const languages = langResponse.body;

if (languages.translation) {
  console.log("Translated languages:");
  for (const key in languages.translation) {
    const translationLanguage = languages.translation[key];
    console.log(`${key} -- name: ${translationLanguage.name} (${translationLanguage.nativeName})`);
  }
}

if (languages.transliteration) {
  console.log("Transliteration languages:");
  for (const key in languages.transliteration) {
    const transliterationLanguage = languages.transliteration[key];
    console.log(
      `${key} -- name: ${transliterationLanguage.name} (${transliterationLanguage.nativeName})`,
    );
  }
}

if (languages.dictionary) {
  console.log("Dictionary languages:");
  for (const key in languages.dictionary) {
    const dictionaryLanguage = languages.dictionary[key];
    console.log(
      `${key} -- name: ${dictionaryLanguage.name} (${dictionaryLanguage.nativeName}), supported target languages count: ${dictionaryLanguage.translations.length}`,
    );
  }
}

有关 语言的概念性讨论,请参阅服务文档。

翻译

使用单个请求将单个源语言文本呈现到多个目标语言文本。

const inputText = [{ text: "This is a test." }];
const parameters = {
  to: "cs",
  from: "en",
};
const translateResponse = await translationClient.path("/translate").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(translateResponse)) {
  throw translateResponse.body;
}

const translations = translateResponse.body;
for (const translation of translations) {
  console.log(
    `Text was translated to: '${translation?.translations[0]?.to}' and the result is: '${translation?.translations[0]?.text}'.`,
  );
}

有关 翻译的概念性讨论,请参阅服务文档。

音译

将源语言的字符或字母转换为目标语言的相应字符或字母。

const inputText = [{ text: "这是个测试。" }];
const parameters = {
  language: "zh-Hans",
  fromScript: "Hans",
  toScript: "Latn",
};
const transliterateResponse = await translationClient.path("/transliterate").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(transliterateResponse)) {
  throw transliterateResponse.body;
}

const translations = transliterateResponse.body;
for (const transliteration of translations) {
  console.log(
    `Input text was transliterated to '${transliteration?.script}' script. Transliterated text: '${transliteration?.text}'.`,
  );
}

有关 音译的概念性讨论,请参阅服务文档。

中断句子

标识句子边界在一段文本中的位置。

const inputText = [{ text: "zhè shì gè cè shì。" }];
const parameters = {
  language: "zh-Hans",
  script: "Latn",
};
const breakSentenceResponse = await translationClient.path("/breaksentence").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(breakSentenceResponse)) {
  throw breakSentenceResponse.body;
}

const breakSentences = breakSentenceResponse.body;
for (const breakSentence of breakSentences) {
  console.log(`The detected sentece boundaries: '${breakSentence?.sentLen.join(", ")}'.`);
}

有关 断句的概念性讨论,请参阅服务文档。

字典查找

返回目标语言中源词的等效字词。

const inputText = [{ text: "fly" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/lookup").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryEntries = dictionaryResponse.body;
for (const dictionaryEntry of dictionaryEntries) {
  console.log(
    `For the given input ${dictionaryEntry?.translations?.length} entries were found in the dictionary.`,
  );
  console.log(
    `First entry: '${dictionaryEntry?.translations[0]?.displayTarget}', confidence: ${dictionaryEntry?.translations[0]?.confidence}.`,
  );
}

有关 字典查找的概念性讨论,请参阅服务文档。

字典示例

返回源术语和目标术语对的语法结构和上下文示例。

const inputText = [{ text: "fly", translation: "volar" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/examples").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryExamples = dictionaryResponse.body;
for (const dictionaryExample of dictionaryExamples) {
  console.log(
    `For the given input ${dictionaryExample?.examples?.length} examples were found in the dictionary.`,
  );
  const firstExample = dictionaryExample?.examples[0];
  console.log(
    `Example: '${firstExample.targetPrefix + firstExample.targetTerm + firstExample.targetSuffix}'.`,
  );
}

有关 字典示例的概念性讨论,请参阅服务文档

故障 排除

使用 TextTranslator 客户端库与翻译服务交互时,翻译器服务返回的错误对应于为 REST API 请求返回的相同 HTTP 状态代码。

例如,如果提交没有目标翻译语言的翻译请求,则会返回 400 错误,指示“请求错误”。

可以在 服务文档中找到服务返回的不同错误代码。

伐木

启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL 环境变量设置为 info。 或者,可以通过在 @azure/logger中调用 setLogLevel 在运行时启用日志记录:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

有关如何启用日志的更详细说明,可以查看 @azure/记录器包文档