你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 JavaScript 的 Azure TextTranslation REST 客户端库 - 版本 1.0.0
文本翻译是翻译器服务的基于云的 REST API 功能,它使用神经网络机器翻译技术跨所有支持的语言实现快速准确的源到目标实时文本翻译。
文本翻译功能支持以下方法:
语言。 返回“翻译”、“音译”和“字典查找”操作支持的语言列表 。
翻译。 使用单个请求将单个源语言文本呈现为多个目标语言文本。
音译。 将源语言的字符或字母转换为目标语言的对应字符或字母。
检测。 返回源代码语言代码以及用于指示文本翻译和音译是否支持检测到的语言的布尔变量。
字典查找。 返回源术语在目标语言中的等效字词。
字典示例 返回源术语和目标术语对的语法结构和上下文示例。
请严重依赖我们的 REST 客户端文档 来使用此库
关键链接:
入门
目前支持的环境
- LTS 版本的 Node.js
- 最新版本的 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 代码片段从翻译器服务资源获取 API 密钥。
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
TextTranslationClient
使用 API 密钥和区域凭据创建
获得 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}'.`
);
}
有关 翻译的概念性讨论,请参阅服务文档。
Transliterate
将源语言的字符或字母转换为目标语言的对应字符或字母。
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}'.`
);
}
有关 transliterate 的概念性讨论,请参阅服务文档。
断句
标识文本段中的句子边界的位置。
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/logger 包文档。