JavaScript SDK

Lingo.dev JavaScript SDK fügt Webanwendungen, Node.js-Servern und Frontend-Frameworks KI-gestützte Echtzeit-Übersetzung hinzu. Das SDK verarbeitet dynamische Inhalte wie Chat-Nachrichten, Benutzerkommentare und Live-Daten, die sofortige Übersetzung benötigen.

Im Gegensatz zur statischen Datei-Lokalisierung mit Lingo.dev CLI verarbeitet das SDK Inhalte bei Bedarf, was es ideal für Chat-Anwendungen, E-Mail-Clients und Social-Media-Tools macht, bei denen sich Inhalte ständig ändern.

Installation

npm install lingo.dev

Grundlegende Einrichtung

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

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

Text-Übersetzung

Einfachen Text übersetzen:

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

In mehrere Sprachen übersetzen:

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

Objekt-Übersetzung

Strukturierte Daten übersetzen:

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

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

Diese Methode verarbeitet verschachtelte Objekte und behält die ursprüngliche Struktur bei, während Textwerte übersetzt werden.

Chat-Übersetzung

Konversations-Arrays übersetzen:

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",
});
// Returns translated conversation with same structure

Die Chat-Methode behält Metadaten wie Benutzernamen bei und übersetzt nur den Textinhalt.

HTML-Übersetzung

HTML übersetzen unter Beibehaltung der Markup-Struktur:

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

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

Die HTML-Übersetzung behält alle Tags, Attribute und Strukturen bei, während nur der Textinhalt übersetzt wird.

Spracherkennung

Automatische Erkennung der Quellsprache:

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

Verwendung mit automatischer Erkennung:

const result = await lingoDotDev.localizeText("Bonjour le monde", {
  sourceLocale: null, // Auto-detect
  targetLocale: "en",
});
// Returns: "Hello world"

Die Spracherkennung erhöht die Verarbeitungszeit, daher sollte sie nur verwendet werden, wenn die Quellsprache unbekannt ist.

Konfigurationsoptionen

SDK-Verhalten konfigurieren:

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
  batchSize: 100, // Max items per API request (default: 50, max: 250)
  idealBatchItemSize: 1000, // Target word count per batch (default: 500, max: 2500)
});

Batch-Größe steuert, wie viele Elemente in jeder API-Anfrage gesendet werden. Höhere Werte reduzieren API-Aufrufe, erhöhen jedoch die Anfragegröße.

Ideale Batch-Elementgröße steuert die Zielwortanzahl für optimale Verarbeitungseffizienz.

Übersetzungsparameter

Geschwindigkeit vs. Qualitätskontrolle:

const result = await lingoDotDev.localizeText("Hello world", {
  sourceLocale: "en",
  targetLocale: "es",
  fast: true, // Prioritize speed over quality
});

Der Parameter fast ermöglicht schnellere Übersetzungen mit potenziell reduzierter Qualität für zeitkritische Anwendungen.

Fortschrittsverfolgung

Überwachung großer Übersetzungsaufträge:

await lingoDotDev.localizeObject(
  largeObject,
  { sourceLocale: "en", targetLocale: "es" },
  (progress) => {
    console.log(`Translation progress: ${progress}%`);
    // Update UI progress bar
  },
);

Fortschritts-Callbacks bieten Echtzeit-Feedback für umfangreiche Übersetzungsvorgänge, was für Benutzeroberflächen-Updates nützlich ist.

Fehlerbehandlung

Implementieren Sie eine ordnungsgemäße Fehlerbehandlung:

try {
  const result = await lingoDotDev.localizeText("Hello", {
    sourceLocale: "en",
    targetLocale: "es",
  });
} catch (error) {
  console.error("Translation failed:", error.message);
  // Handle error appropriately
}

Das SDK beinhaltet automatische Wiederholungsversuche bei Netzwerkproblemen, aber die Fehlerbehandlung auf Anwendungsebene bleibt wichtig.