次の方法で共有


JavaScript 用 Azure TextTranslation REST クライアント ライブラリ - バージョン 1.0.0

テキスト翻訳は、Translator サービスのクラウドベースの REST API 機能で、ニューラル機械翻訳テクノロジを使用して、サポートされているすべての言語でソースからターゲットへの迅速かつ正確なテキスト翻訳をリアルタイムで実現します。

テキスト翻訳機能では、次のメソッドがサポートされています。

Languages。 Translate、Transliterate、および辞書検索操作でサポートされる言語の一覧を返します。

Translate。 1 つの要求で、1 つのソース言語テキストを複数のターゲット言語テキストにレンダリングします。

Transliterate。 ソース言語の文字を、ターゲット言語の対応する文字に変換します。

検出。 ソース コードの言語コードと、検出された言語がテキスト翻訳と表記変換でサポートされているかどうかを示すブール型変数を返します。

辞書検索。 ターゲット言語から、ソース用語に相当する単語を返します。

辞書の例 ソース用語とターゲット用語のペアの文法構造とコンテキストの例を返します。

このライブラリを使用するには、 REST クライアント ドキュメント に大きく依存してください

主要リンク:

はじめに

現在サポートされている環境

  • Node.js の LTS バージョン
  • Edge、Chrome、Safar、Firefox の最新バージョン

前提条件

  • 既存の Translator サービスまたは Cognitive Services リソース。

@azure-rest/ai-translation-text パッケージのインストール

を使用して、JavaScript 用の Azure Text Translation REST クライアント ライブラリを npmインストールします。

npm install @azure-rest/ai-translation-text

Translator サービス リソースを作成する

Translator リソースの作成に関するページ で Translator リソースを作成できます。

ブラウザーのサポート

JavaScript バンドル

ブラウザーでこのクライアント ライブラリを使用するには、まず bundler を使用する必要があります。 これを行う方法の詳細については、 バンドルに関するドキュメントを参照してください。

クライアントを認証する

クライアント ライブラリを使用したサービスとの対話は、 まず TextTranslationClient クラスのインスタンスの作成から始まります。 API キーTokenCredentialまたはクライアント オブジェクトをインスタンス化する必要があります。 コグニティブ サービスを使用した認証の詳細については、「 Translator Service への要求を認証する」を参照してください。

API キーを取得する

および は、endpointAPI keyRegionAzure Portal の Cognitive Services リソースまたは Translator サービス リソース情報から取得できます。

または、以下の Azure CLI スニペットを使用して、Translator サービス リソースから 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使用したコード スニペットをいくつか示し、このクライアント ライブラリに存在する主な機能について説明します。

サポートされている言語を取得する

Translator の他の操作で現在サポートされている一連の言語を取得します。

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}`
    );
  }
}

言語の概念的な説明については、サービスドキュメントを参照してください。

翻訳

1 つの要求で、1 つのソース言語テキストを複数のターゲット言語テキストにレンダリングします。

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}'.`
  );
}

音訳の概念については、サービスドキュメントを参照してください。

文の分割

文章内で文の境界の位置を識別します。

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 クライアント ライブラリを使用して Translator Service と対話する場合、Translator サービスによって返されるエラーは、REST API 要求に対して返されるのと同じ HTTP 状態コードに対応します。

たとえば、ターゲット翻訳言語なしで翻訳要求を送信すると、 400 "Bad Request" を示すエラーが返されます。

サービスによって返されるさまざまなエラー コードについては、 サービスドキュメントを参照してください

ログの記録

ログの記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、環境変数 AZURE_LOG_LEVELinfo に設定します。 または、@azure/loggersetLogLevel を呼び出して、実行時にログ記録を有効にすることもできます。

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

setLogLevel("info");

ログを有効にする方法の詳細については、@azure/logger パッケージに関するドキュメントを参照してください。