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