SDK JavaScript

Le SDK JavaScript Lingo.dev ajoute la traduction en temps réel propulsée par l'IA aux applications web, aux serveurs Node.js et aux frameworks frontend. Le SDK gère le contenu dynamique comme les messages de chat, les commentaires des utilisateurs et les données en direct nécessitant une traduction instantanée.

Contrairement à la localisation de fichiers statiques avec Lingo.dev CLI, le SDK traite le contenu à la demande, ce qui le rend idéal pour les applications de chat, les clients de messagerie et les outils de médias sociaux où le contenu change constamment.

Installation

npm install lingo.dev

Configuration de base

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

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

Traduction de texte

Traduire du texte simple :

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

Traduire vers plusieurs langues :

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

Traduction d'objets

Traduire des données structurées :

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

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

Cette méthode gère les objets imbriqués et préserve la structure originale tout en traduisant les valeurs textuelles.

Traduction de chat

Traduire des tableaux de conversation :

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",
});
// Retourne la conversation traduite avec la même structure

La méthode de chat préserve les métadonnées comme les noms d'utilisateurs tout en traduisant uniquement le contenu textuel.

Traduction HTML

Traduire du HTML tout en préservant le balisage :

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

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

La traduction HTML maintient tous les tags, attributs et la structure tout en traduisant uniquement le contenu textuel.

Détection de langue

Détecter automatiquement la langue source :

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

Utilisation avec détection automatique :

const result = await lingoDotDev.localizeText("Bonjour le monde", {
  sourceLocale: null, // Détection automatique
  targetLocale: "en",
});
// Retourne : "Hello world"

La détection de langue ajoute du temps de traitement, donc ne l'utilisez que lorsque la langue source est inconnue.

Options de configuration

Configurer le comportement du SDK :

const lingoDotDev = new LingoDotDevEngine({
  apiKey: "your-api-key-here",
  batchSize: 100, // Nombre maximum d'éléments par requête API (défaut : 50, max : 250)
  idealBatchItemSize: 1000, // Nombre cible de mots par lot (défaut : 500, max : 2500)
});

La taille du lot contrôle combien d'éléments sont envoyés dans chaque requête API. Des valeurs plus élevées réduisent les appels API mais augmentent la taille des requêtes.

La taille idéale d'élément par lot contrôle le nombre cible de mots pour une efficacité de traitement optimale.

Paramètres de traduction

Contrôle vitesse vs qualité :

const result = await lingoDotDev.localizeText("Hello world", {
  sourceLocale: "en",
  targetLocale: "es",
  fast: true, // Prioriser la vitesse plutôt que la qualité
});

Le paramètre fast permet des traductions plus rapides avec une qualité potentiellement réduite pour les applications sensibles au temps.

Suivi de progression

Surveiller les tâches de traduction volumineuses :

await lingoDotDev.localizeObject(
  largeObject,
  { sourceLocale: "en", targetLocale: "es" },
  (progress) => {
    console.log(`Progression de la traduction : ${progress}%`);
    // Mettre à jour la barre de progression de l'interface utilisateur
  },
);

Les callbacks de progression fournissent un retour en temps réel pour les opérations de traduction volumineuses, utile pour les mises à jour d'interface utilisateur.

Gestion des erreurs

Implémentez une gestion d'erreurs appropriée :

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

Le SDK inclut des mécanismes automatiques de nouvelles tentatives en cas de problèmes réseau, mais la gestion des erreurs au niveau de l'application reste importante.