Démarrage rapide pour React Router (v6)

Comment configurer Lingo.dev Compiler avec React Router (v6)

Introduction

Lingo.dev Compiler est un outil basé sur l'IA qui vous permet de localiser des applications React sans modifier les composants existants. Il vous suffit de configurer quelques éléments, d'envelopper votre application dans un fournisseur de contexte, et c'est tout — votre application est localisée.

Ce guide explique comment configurer Lingo.dev Compiler avec la v6 de React Router, une bibliothèque de routage côté client pour React. Si vous utilisez la v7, consultez Démarrage rapide pour React Router (v7).

Ce que vous allez apprendre

  • Comment initialiser Lingo.dev Compiler dans React Router
  • Comment configurer le compilateur pour qu'il soit compatible avec React Router
  • Comment mettre en place un sélecteur de langue pour basculer entre les locales

Étape 1. Configurer une clé API

Lingo.dev Compiler utilise des modèles de langage avancés (LLM) pour localiser des applications avec l'IA. Pour utiliser l'un de ces modèles, vous avez besoin d'une clé API d'un fournisseur pris en charge.

Pour démarrer le plus rapidement possible, nous recommandons d'utiliser Lingo.dev Engine — notre propre plateforme hébergée qui offre 10 000 tokens d'utilisation mensuelle gratuite.

Pour configurer une clé API :

  1. Connectez-vous à Lingo.dev Engine.

  2. Accédez à la page Projects.

  3. Cliquez sur API key > Copy.

  4. Stockez la clé API dans une variable d'environnement :

    export LINGODOTDEV_API_KEY="<your_api_key>"

Alternative : Fournisseurs LLM personnalisés

Vous n'êtes pas obligé d'utiliser Lingo.dev Engine. Vous pouvez configurer le compilateur pour l'intégrer à plusieurs fournisseurs LLM personnalisés, notamment :

  • Groq
  • Google
  • Mistral
  • Ollama
  • OpenRouter

Étape 2. Installer le package

Lingo.dev Compiler est distribué dans le cadre du package npm lingo.dev. Pour l'installer, utilisez votre gestionnaire de packages préféré :

npm install lingo.dev

Étape 3. Initialiser le compilateur

Le Compilateur Lingo.dev s'intègre avec Vite et s'exécute au moment de la compilation. Pour s'intégrer au processus de build de Vite, effectuez les modifications suivantes dans le fichier vite.config.ts :

  1. Importez le compilateur :

    import lingoCompiler from "lingo.dev/compiler";
  2. Initialisez le compilateur avec la méthode vite :

    const withLingo = lingoCompiler.vite({
      sourceRoot: "src",
      lingoDir: "lingo",
      sourceLocale: "en",
      targetLocales: ["es"],
      rsc: false,
      useDirective: false,
      debug: false,
      models: "lingo.dev",
    });

    Pour la compatibilité avec React Router, assurez-vous que :

    • sourceRoot est défini sur "src"
    • rsc est défini sur false

    Pour en savoir plus sur les options disponibles, consultez Options du compilateur.

  3. Encapsulez votre configuration Vite existante avec le compilateur :

    const viteConfig: UserConfig = {
      plugins: [react()],
    };
    
    export default withLingo(viteConfig);

Avec cette configuration en place, le Compilateur Lingo.dev va :

  • Parcourir l'arbre de syntaxe abstraite (AST) de la base de code
  • Trouver le contenu localisable (c'est-à-dire le texte dans les éléments JSX et certaines valeurs d'attributs)
  • Utiliser le(s) modèle(s) d'IA configuré(s) pour générer des traductions
  • Stocker le contenu original et traduit dans un fichier dictionary.js
  • Remplacer le contenu localisé par des placeholders

Étape 4. Charger le contenu localisé

Après que le compilateur a traité votre application et généré des traductions, vous devez charger et servir ce contenu localisé à vos utilisateurs. Cela implique :

  • Charger le dictionnaire approprié en fonction des préférences de langue de l'utilisateur
  • Fournir les traductions chargées à votre application via un fournisseur de contexte

Chargement du dictionnaire

Dans votre fichier de route racine :

  1. Importez la fonction loadDictionary depuis lingo.dev/react/react-router :

    import { loadDictionary } from "lingo.dev/react/react-router";

    Cette fonction :

    • Récupère la locale actuelle depuis le cookie lingo-locale
    • Utilise "en" comme valeur par défaut lorsqu'une locale n'est pas définie
    • Charge le contenu localisé depuis le fichier dictionary.js
  2. Appelez la fonction loadDictionary depuis la fonction loader :

    import { LoaderFunctionArgs } from "react-router-dom";
    
    export async function loader({ request }: LoaderFunctionArgs) {
      const lingoDictionary = await loadDictionary(request);
      return {
        lingoDictionary,
      };
    }

Fournir les traductions

Dans votre composant racine :

  1. Importez le composant LingoProvider depuis lingo.dev/react/client :

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

    Ce composant est un fournisseur de contexte React qui remplace les placeholders créés par le compilateur par le contenu localisé.

  2. Dans votre composant racine, récupérez les données du chargeur de données :

    const data = useLoaderData<typeof loader>();
  3. Encapsulez l'application dans le composant LingoProvider :

    <LingoProvider dictionary={data?.lingoDictionary}>
      {/* Code existant de l'application */}
    </LingoProvider>

Étape 5. Configurer un sélecteur de langue

Pour permettre aux utilisateurs de basculer entre les langues, importez le composant LocaleSwitcher du package lingo.dev. Il s'agit d'un composant non stylisé qui :

  • Affiche un menu déroulant des langues disponibles
  • Permet aux utilisateurs de sélectionner une langue
  • Mémorise la langue sélectionnée pour les visites ultérieures

Pour utiliser ce composant, intégrez-le n'importe où dans votre application et définissez la propriété locales comme un tableau contenant les langues source et cibles configurées :

import { LocaleSwitcher } from "lingo.dev/react/client";

<LocaleSwitcher locales={["en", "es"]} />;

Alternative : Sélecteur de langue personnalisé

Vous n'êtes pas obligé d'utiliser le composant LocaleSwitcher. Vous pouvez implémenter une logique et une interface utilisateur personnalisées pour le changement de langue. La seule exigence est de lire et d'écrire la langue active dans le cookie lingo-locale.

Étape 6. Exécuter l'application

Pour vérifier que le Compilateur Lingo.dev a été correctement configuré :

  1. Démarrez le serveur de développement :

    npm run dev
  2. Accédez à localhost:5173.

  3. Utilisez le composant LocaleSwitcher pour basculer entre les langues.

La page devrait se recharger et afficher le contenu localisé.

Alternative : Définir les cookies manuellement

Si vous n'utilisez pas le composant LocaleSwitcher, une alternative pour vérifier que la localisation fonctionne est de définir manuellement le cookie lingo-locale.

Si vous utilisez Google Chrome, suivez ces instructions :

  1. Naviguez vers Affichage > Développeur > Outils de développement.
  2. Allez dans l'onglet Application.
  3. Dans la barre latérale gauche, sous Stockage, développez Cookies et sélectionnez l'URL du site.
  4. Dans le tableau des cookies, faites un clic droit n'importe où et sélectionnez Ajouter.
  5. Dans la colonne Nom, saisissez lingo-locale.
  6. Dans la colonne Valeur, saisissez la locale souhaitée (par exemple, fr).
  7. Appuyez sur Entrée pour sauvegarder le cookie.
  8. Rafraîchissez la page pour appliquer le cookie.

Lecture complémentaire