適用於 JavaScript 的 Azure TextTranslation REST 用戶端連結庫 - 1.0.1 版

文字翻譯是翻譯工具服務的雲端式 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);

例子

下一節提供數個代碼段,這些代碼段使用上建立的 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。 或者,您可以在運行時間啟用記錄,方法是在 setLogLevel中呼叫 @azure/logger:

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

setLogLevel("info");

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