共用方式為


適用於 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 入口網站中的認知服務資源或翻譯工具服務資源資訊,取得 endpointAPI keyRegion

或者,使用下列 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");

如需如何啟用記錄的詳細指示,請參閱@azure/記錄器套件檔。