|Labs
Réserver une démoPlateforme
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)CLI historique (v0)
Déconseillé

Lingo.dev Compiler

  • Fonctionnement
  • Configuration
  • Compiler : prise en main rapide

Frameworks

  • Intégration à Next.js
  • Vite + React

Guides

  • Changement de langue
  • Pluralisation automatique
  • Remplacements manuels
  • Modes de build
  • Structure du projet
  • Fournisseurs de traduction
  • Résolveurs de langue personnalisés
  • Outils de développement

Référence

  • Bonnes pratiques
  • Référence de configuration
  • Dépannage
  • Guide de migration
  • Optimisation
  • Formats de sortie

Référence de configuration

Alpha

Lingo.dev Compiler est en alpha. Il reste instable, n’est pas recommandé en production et ses API peuvent évoluer d’une version à l’autre.

L’objet de configuration de Lingo.dev Compiler détermine comment votre application React est traduite au moment du build. Cette page documente chaque option disponible, avec son type, sa valeur par défaut et des exemples d’utilisation.

Options principales#

OptionTypePar défautDescription
sourceRootstring"src"Répertoire contenant les composants à traduire. Chemin relatif à la racine du projet.
lingoDirstring".lingo"Répertoire des métadonnées de traduction et des fichiers de cache.
sourceLocalestringobligatoireCode de langue de votre contenu source (par ex. "en").
targetLocalesstring[]obligatoireListe des codes de langue cibles (par ex. ["es", "de", "fr"]).
useDirectivebooleanfalseLorsque true, seuls les fichiers contenant la directive 'use i18n' sont traduits. Lorsque false, tous les fichiers de sourceRoot sont traduits.
modelsstring | object"lingo.dev"Configuration du fournisseur de traduction. Une chaîne définit la valeur par défaut pour toutes les paires de langues. Un objet associe chaque paire de langues à un fournisseur spécifique.
promptstringundefinedPrompt système personnalisé pour le LLM de traduction. Prend en charge les placeholders {SOURCE_LOCALE} et {TARGET_LOCALE}.
buildMode"translate" | "cache-only""translate"Détermine si le Compiler génère de nouvelles traductions ou utilise uniquement les traductions en cache.

Options de développement#

Les options sous la clé dev contrôlent le comportement en phase de développement :

OptionTypePar défautDescription
dev.usePseudotranslatorbooleanfalseGénère instantanément de fausses traductions (par ex. [!!! Welcome !!!]) au lieu d’appeler un LLM. Aucune clé API n’est nécessaire.
dev.translationServerStartPortnumber60000Port de départ du serveur de traduction local. Le Compiler trouve automatiquement un port disponible dans la plage 60000-60099.
dev.translationServerUrlstringundefinedRemplace l’URL du serveur de traduction. Utile pour les configurations personnalisées ou les serveurs de traduction distants.

Persistance de la langue#

Les options sous localePersistence déterminent comment la langue sélectionnée par l’utilisateur est enregistrée et récupérée :

OptionTypePar défautDescription
localePersistence.typestring"cookie"Mécanisme de persistance. Prend actuellement en charge "cookie".
localePersistence.config.namestring"locale"Nom du cookie utilisé pour stocker la langue.
localePersistence.config.maxAgenumber31536000Durée de vie maximale du cookie, en secondes (1 an par défaut).

Pour une logique de persistance personnalisée (localStorage, URL, en-têtes), voir Custom Locale Resolvers.

Pluralisation#

Les options sous pluralization contrôlent la détection et la génération automatiques des formes plurielles :

OptionTypePar défautDescription
pluralization.enabledbooleantrueActive ou désactive la détection automatique de la pluralisation.
pluralization.modelstring"groq:llama-3.1-8b-instant"Modèle LLM utilisé pour détecter les formes plurielles dans le texte source. Un modèle plus petit et plus rapide est recommandé, car cette détection est plus simple que la traduction.

Voir Automatic Pluralization pour en savoir plus sur le fonctionnement de la détection des pluriels.

Variables d’environnement#

Les variables d’environnement remplacent ou complètent la configuration :

VariableQuand elle est requiseDescription
LINGO_BUILD_MODEFacultatifRemplace l’option de configuration buildMode. À définir sur "translate" ou "cache-only".
LINGODOTDEV_API_KEYLors de l’utilisation de modèles "lingo.dev"Clé API du moteur de localisation Lingo.dev. Disponible via npx lingo.dev@latest login.
OPENAI_API_KEYLors de l’utilisation de modèles "openai:*"Clé API OpenAI.
ANTHROPIC_API_KEYLors de l’utilisation de modèles "anthropic:*"Clé API Anthropic.
GOOGLE_API_KEYLors de l’utilisation de modèles "google:*"Clé API Google AI.
GROQ_API_KEYLors de l’utilisation de modèles "groq:*"Clé API Groq.
MISTRAL_API_KEYLors de l’utilisation de modèles "mistral:*"Clé API Mistral.
OPENROUTER_API_KEYLors de l’utilisation de modèles "openrouter:*"Clé API OpenRouter.

Exemple complet#

ts
// next.config.ts
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";

const nextConfig: NextConfig = {};

export default async function (): Promise<NextConfig> {
  return await withLingo(nextConfig, {
    sourceRoot: "./app",
    lingoDir: ".lingo",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr", "ja"],
    useDirective: false,
    models: {
      "*:*": "lingo.dev",
      "*:ja": "anthropic:claude-3-5-sonnet",
    },
    prompt: "Translate UI text from {SOURCE_LOCALE} to {TARGET_LOCALE}. Keep it concise.",
    buildMode: "translate",
    dev: {
      usePseudotranslator: true,
      translationServerStartPort: 60000,
    },
    localePersistence: {
      type: "cookie",
      config: {
        name: "locale",
        maxAge: 31536000,
      },
    },
    pluralization: {
      enabled: true,
      model: "groq:llama-3.1-8b-instant",
    },
  });
}

Étapes suivantes#

Fournisseurs de traduction
Tous les fournisseurs LLM pris en charge et le mappage par paire de langues
Modes de build
Workflows de développement, de CI et de production
Custom Locale Resolvers
Mettre en place une détection de langue personnalisée
Bonnes pratiques
Approches recommandées pour la production

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a 4 mois·4 min de lecture