|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

Vite + React

Alpha

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

Le Compiler Lingo.dev s’intègre à Vite via lingoCompilerPlugin, un plugin Vite qui transforme vos composants React à la compilation pour y injecter les traductions. Il prend en charge l’intégralité du Hot Module Replacement, pour des traductions mises à jour instantanément pendant le développement.

Prérequis#

Configuration requise

  • Vite 5+ avec React
  • Node.js 18+
  • @lingo.dev/compiler installé

Installation#

bash
pnpm install @lingo.dev/compiler

Configurer vite.config.ts#

Ajoutez lingoCompilerPlugin à votre configuration Vite. Le plugin doit être placé avant le plugin react() : cet ordre est indispensable, car le compilateur doit transformer le JSX avant son traitement par le plugin React.

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", "ja"],
      models: "lingo.dev",
      dev: {
        usePseudotranslator: true,
      },
    }),
    react(),
  ],
});

L’ordre des plugins est essentiel

Si lingoCompilerPlugin est placé après react(), le plugin React traite le JSX en premier et le compilateur ne peut plus identifier le texte traduisible. Placez toujours le plugin Lingo en tête du tableau plugins.

Ajouter LingoProvider#

Encapsulez la racine de votre application avec LingoProvider dans votre fichier d’entrée :

tsx
// src/main.tsx
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { LingoProvider } from "@lingo.dev/compiler/react";
import App from "./App";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <LingoProvider>
      <App />
    </LingoProvider>
  </StrictMode>
);

LingoProvider initialise le contexte de langue et charge le dictionnaire de traduction approprié pour la langue active.

Hot Module Replacement#

Le plugin s’intègre au système HMR de Vite. Lorsque vous modifiez du texte traduisible dans un composant :

1

Modifier le texte source

Modifiez n’importe quel texte dans votre JSX — par exemple, remplacez un titre de "Welcome" à "Welcome back".

2

Le compilateur détecte la modification

Le plugin intercepte la mise à jour HMR, identifie la chaîne modifiée et génère une nouvelle traduction (ou une pseudo-traduction en mode développement).

3

Le navigateur se met à jour instantanément

Le composant traduit est rerendu sans rechargement complet de la page. Les métadonnées de traduction dans .lingo/metadata.json sont mises à jour sur le disque.

Configuration de sourceRoot#

L’option sourceRoot détermine les fichiers que le compilateur analyse pour y repérer le texte traduisible. Pour un projet Vite + React standard :

ts
{
  sourceRoot: "src",
}
Structure du projetsourceRoot recommandé
Standard (src/)"src"
Monorepo avec packages partagés"." (racine du projet)
Répertoire personnaliséChemin vers votre répertoire de composants

Sur les grandes bases de code, un sourceRoot ciblé réduit les temps de compilation. Si vous n’avez besoin de traductions que dans certains fichiers, activez useDirective: true et ajoutez 'use i18n' à ces fichiers. Voir Structure du projet.

Exemple de structure de projet#

text
my-vite-app/
  src/
    main.tsx          # LingoProvider wraps <App />
    App.tsx           # Translatable components
    components/
      Header.tsx      # Automatically scanned
      Footer.tsx      # Automatically scanned
  .lingo/
    metadata.json     # Translation cache (commit this)
  vite.config.ts      # lingoCompilerPlugin configured here

Étapes suivantes#

Configuration
Guide complet de configuration avec authentification
Référence de configuration
Toutes les options de configuration
Changement de langue
Ajoutez un sélecteur de langue à votre application
Outils de développement
Pseudo-traducteur et serveur de développement

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

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