你当前正在访问 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 门户中的认知服务资源或翻译服务资源信息获取 endpoint
、API key
和 Region
。
或者,使用下面的 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/记录器包文档。