適用於 JavaScript 的 Azure TextTranslation REST 用戶端連結庫 - 1.0.0 版
文字翻譯是翻譯工具服務的雲端式 REST API 功能,使用類神經機器翻譯技術,即時跨所有支援的語言啟用快速且精確的來源對目標文字翻譯。
文字翻譯功能支援下列方法:
語言。 傳回 Translate、Transliterate 和 Dictionary Lookup 作業所支援的語言清單。
翻譯。 使用單一要求,將單一來源語言文字轉譯為多個目標語言文字。
音譯。 將來源語言的字元或字母轉換為目標語言的對應字元或字母。
檢測。 傳回原始程式碼語言程式代碼和布爾值變數,指出偵測到的語言是否支援文字翻譯和音譯。
字典查閱。 傳回目標語言中來源字詞的對等字。
字典範例 會傳回來源字詞和目標字片語的文法結構和內容範例。
請高度依賴我們的 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>
使用 API 金鑰和區域認證建立 TextTranslationClient
取得 API 金鑰和 Region 的值之後,請建立 TranslatorCredential
。
使用 TranslatorCredential
的值,您可以建立 TextTranslationClient:
const translateCedential = new TranslatorCredential(apiKey, region);
const translationClient = TextTranslationClient(endpoint, translateCedential);
例子
下一節提供數個代碼段,這些代碼段使用上建立的
取得支持的語言
取得翻譯工具的其他作業目前支援的語言集合。
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");
如需如何啟用記錄的詳細指示,請參閱