JavaScript SDK

Lingo.dev JavaScript SDKはウェブアプリケーション、Node.jsサーバー、フロントエンドフレームワークにリアルタイムAI駆動の翻訳機能を追加します。このSDKはチャットメッセージ、ユーザーコメント、即時翻訳が必要なライブデータなどの動的コンテンツを処理します。

Lingo.dev CLIによる静的ファイルのローカライゼーションとは異なり、SDKはオンデマンドでコンテンツを処理するため、コンテンツが常に変化するチャットアプリケーション、メールクライアント、ソーシャルメディアツールに最適です。

インストール

npm install lingo.dev

基本設定

import { LingoDotDevEngine } from "lingo.dev/sdk";

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
});

テキスト翻訳

シンプルなテキストを翻訳する:

const result = await lingoDotDev.localizeText("Hello, world!", {
  sourceLocale: "en",
  targetLocale: "es",
});
// 戻り値: "¡Hola Mundo!"

複数の言語に翻訳する:

const results = await lingoDotDev.batchLocalizeText("Hello, world!", {
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de"],
});
// 戻り値: ['¡Hola Mundo!', 'Bonjour le monde!', 'Hallo Welt!']

オブジェクト翻訳

構造化データを翻訳する:

const content = {
  greeting: "Hello",
  farewell: "Goodbye",
  message: "Welcome to our platform",
};

const translated = await lingoDotDev.localizeObject(content, {
  sourceLocale: "en",
  targetLocale: "es",
});
// 戻り値: { greeting: "Hola", farewell: "Adiós", message: "Bienvenido a nuestra plataforma" }

このメソッドはネストされたオブジェクトを処理し、テキスト値を翻訳しながら元の構造を保持します。

チャット翻訳

会話配列を翻訳する:

const conversation = [
  { name: "Alice", text: "Hello!" },
  { name: "Bob", text: "How are you?" },
  { name: "Alice", text: "I'm doing well, thanks!" },
];

const translated = await lingoDotDev.localizeChat(conversation, {
  sourceLocale: "en",
  targetLocale: "es",
});
// 同じ構造で翻訳された会話を返します

チャットメソッドはユーザー名などのメタデータを保持しながら、テキストコンテンツのみを翻訳します。

HTML翻訳

マークアップを保持しながらHTMLを翻訳:

const html = "<div>Hello <strong>world</strong></div>";

const translated = await lingoDotDev.localizeHtml(html, {
  sourceLocale: "en",
  targetLocale: "es",
});
// 戻り値: "<div>Hola <strong>mundo</strong></div>"

HTML翻訳はすべてのタグ、属性、構造を維持しながら、テキストコンテンツのみを翻訳します。

言語検出

ソース言語を自動検出:

const locale = await lingoDotDev.recognizeLocale("Bonjour le monde");
// 戻り値: 'fr'

自動検出と併用:

const result = await lingoDotDev.localizeText("Bonjour le monde", {
  sourceLocale: null, // 自動検出
  targetLocale: "en",
});
// 戻り値: "Hello world"

言語検出は処理時間が追加されるため、ソース言語が不明な場合にのみ使用してください。

設定オプション

SDKの動作を設定:

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
  batchSize: 100, // APIリクエストごとの最大アイテム数(デフォルト: 50、最大: 250)
  idealBatchItemSize: 1000, // バッチごとの目標単語数(デフォルト: 500、最大: 2500)
});

バッチサイズは各APIリクエストで送信されるアイテム数を制御します。値が大きいほどAPI呼び出しは減少しますが、リクエストサイズは増加します。

理想的なバッチアイテムサイズは、最適な処理効率のための目標単語数を制御します。

翻訳パラメータ

速度と品質のコントロール:

const result = await lingoDotDev.localizeText("Hello world", {
  sourceLocale: "en",
  targetLocale: "es",
  fast: true, // 品質よりも速度を優先
});

fastパラメータは、時間的制約のあるアプリケーション向けに、品質が若干低下する可能性がある代わりに、より迅速な翻訳を可能にします。

進捗追跡

大規模な翻訳ジョブの監視:

await lingoDotDev.localizeObject(
  largeObject,
  { sourceLocale: "en", targetLocale: "es" },
  (progress) => {
    console.log(`翻訳進捗: ${progress}%`);
    // UIプログレスバーの更新
  },
);

進捗コールバックは、大規模な翻訳操作のリアルタイムフィードバックを提供し、ユーザーインターフェースの更新に役立ちます。

エラー処理

適切なエラー処理を実装する:

try {
  const result = await lingoDotDev.localizeText("Hello", {
    sourceLocale: "en",
    targetLocale: "es",
  });
} catch (error) {
  console.error("Translation failed:", error.message);
  // エラーを適切に処理する
}

SDKにはネットワーク問題に対する自動リトライ機能が含まれていますが、アプリケーションレベルのエラー処理も重要です。