次の方法で共有


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

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

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

言語。 Translate、Transliterate、Dictionary Lookup の各操作でサポートされている言語の一覧を返します。

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

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

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

辞書検索。 ターゲット言語のソース用語に対応する単語を返します。

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

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

主要なリンク:

はじめ

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

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

前提 条件

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

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

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

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

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

Translator リソース の作成に従って Translator リソースを作成できます。

ブラウザーのサポート

JavaScript バンドル

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

クライアントを認証する

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

API キーを取得する

endpointAPI key、および Region は、Azure 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 キーとリージョンの値を取得したら、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 つの要求で単一のソース言語テキストを複数のターゲット言語テキストにレンダリングします。

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

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

サービスによって返されるさまざまなエラー コードは、サービス ドキュメントにあります。

伐採

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

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

setLogLevel("info");

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