|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

Guide de migration

Alpha

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

Ce guide couvre la migration de l’ancien package Compiler lingo.dev vers le package actuel @lingo.dev/compiler. Le nouveau package introduit un nom npm scindé, une API simplifiée, une intégration Vite via plugin et un nouveau répertoire .lingo/ pour les métadonnées.

Résumé des changements#

ÉlémentAvant (lingo.dev)Après (@lingo.dev/compiler)
Nom du packagelingo.dev@lingo.dev/compiler
Intégration Next.jsModification directe de la configurationWrapper asynchrone withLingo()
Intégration ViteConfiguration manuellelingoCompilerPlugin
LingoProviderProp loadDictionary requiseAucune prop requise
Répertoire de métadonnéeslingo/.lingo/
Directive d’activation'use i18n' requisFacultatif (par défaut : tout traduire)
Importsfrom "lingo.dev/react"from "@lingo.dev/compiler/react"

Migration étape par étape#

1

Remplacer le package

Supprimez l’ancien package et installez le nouveau :

bash
npm uninstall lingo.dev
npm install @lingo.dev/compiler
2

Mettre à jour les imports

Remplacez tous les chemins d’import :

ts
// Before
import { LingoProvider, useLingoContext } from "lingo.dev/react";

// After
import { LingoProvider, useLingoContext } from "@lingo.dev/compiler/react";
3

Mettre à jour la configuration Next.js (si nécessaire)

La configuration Next.js doit désormais être une fonction asynchrone :

ts
// Before
import { withLingo } from "lingo.dev/next";
const nextConfig = {};
export default withLingo(nextConfig, { /* options */ });

// After
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",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr"],
    models: "lingo.dev",
  });
}

Le wrapper de fonction asynchrone est obligatoire. Un export synchrone fera échouer le build. Consultez Intégration Next.js pour en savoir plus.

4

Mettre à jour la configuration Vite (si nécessaire)

Remplacez toute configuration manuelle par lingoCompilerPlugin :

ts
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite";

export default defineConfig({
  plugins: [
    lingoCompilerPlugin({
      sourceRoot: "src",
      sourceLocale: "en",
      targetLocales: ["es", "de", "fr"],
      models: "lingo.dev",
    }),
    react(), // Must come AFTER lingoCompilerPlugin
  ],
});
5

Simplifier LingoProvider

La prop loadDictionary n’est plus nécessaire. Le Compiler gère automatiquement le chargement des dictionnaires :

tsx
// Before
import { LingoProvider } from "lingo.dev/react";

<LingoProvider loadDictionary={loadDictionary}>
  <App />
</LingoProvider>

// After
import { LingoProvider } from "@lingo.dev/compiler/react";

<LingoProvider>
  <App />
</LingoProvider>
6

Déplacer le répertoire de métadonnées

Renommez le répertoire de métadonnées de lingo/ en .lingo/ :

bash
mv lingo/ .lingo/

Mettez à jour votre .gitignore s’il fait référence à l’ancien nom de répertoire. Le répertoire .lingo/ doit être versionné.

7

Mettre à jour les directives 'use i18n' (facultatif)

Dans le nouveau package, 'use i18n' est facultatif. Par défaut, tous les fichiers de sourceRoot sont traduits. Si vous souhaitez conserver un comportement en opt-in, définissez useDirective: true dans votre configuration :

ts
{
  useDirective: true, // Keep requiring 'use i18n' in each file
}

Si vous supprimez useDirective (ou le définissez sur false), vous pouvez aussi supprimer les directives 'use i18n' de vos fichiers : tous les fichiers de sourceRoot seront traduits automatiquement.

8

Recompiler et vérifier

Lancez le serveur de développement et vérifiez que les traductions s’affichent :

bash
npm run dev

Vérifiez que :

  • Le pseudotraducteur produit des marqueurs [!!! ... !!!] (si activé)
  • Toutes les chaînes déjà traduites fonctionnent toujours
  • Le fichier .lingo/metadata.json est créé ou mis à jour

Étapes suivantes#

Configuration
Guide complet de configuration
Référence de configuration
Toutes les nouvelles options de configuration
Intégration Next.js
Détails de migration spécifiques à Next.js
Vite + React
Détails de migration spécifiques à Vite

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

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