Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Init history"v8.13.005/06/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Migrer de next-intl à Intlayer
Pourquoi migrer de next-intl à Intlayer ?
Au lieu de charger des fichiers JSON massifs dans vos pages, ne chargez que le contenu nécessaire. Intlayer aide à réduire la taille de votre bundle et de vos pages jusqu'à 50 %.
Scoper le contenu de votre application facilite la maintenance pour les applications à grande échelle. Vous pouvez dupliquer ou supprimer un dossier de fonctionnalité entier sans avoir la charge mentale de revoir toute votre base de code de contenu. De plus, Intlayer est entièrement typé pour garantir l'exactitude de votre contenu.
Intlayer est également la solution avec le développement le plus actif dans l'écosystème i18n — les problèmes sont résolus rapidement, de nouveaux adaptateurs de framework arrivent régulièrement, et l'API principale est continuellement affinée en fonction des retours de production réels.
Colocaliser le contenu réduit le contexte nécessaire pour les Grands Modèles de Langage (LLM). Intlayer est également livré avec une suite d'outils, tels qu'une CLI pour tester les traductions manquantes, LSP, MCP, et des compétences d'agent, pour rendre l'expérience développeur (DX) encore plus fluide pour les agents IA.
Utilisez l'automatisation pour traduire dans votre pipeline CI/CD en utilisant le LLM de votre choix au coût de votre fournisseur d'IA. Intlayer propose également un compilateur pour automatiser l'extraction de contenu, ainsi qu'une plateforme web pour aider à traduire en arrière-plan.
Connecter des fichiers JSON massifs aux composants peut entraîner des problèmes de performance et de réactivité. Intlayer optimise le chargement de votre contenu au moment de la construction.
Plus qu'une simple solution i18n, Intlayer fournit un éditeur visuel auto-hébergé et un CMS complet pour vous aider à gérer votre contenu multilingue en temps réel, rendant la collaboration avec les traducteurs, les rédacteurs et les autres membres de l'équipe transparente. Le contenu peut être stocké localement et/ou à distance.
Stratégie de migration
L'approche recommandée pour les applications existantes est l'adaptateur de compatibilité : installez @intlayer/next-intl, qui expose exactement la même API que next-intl mais délègue tout le travail de traduction à Intlayer en coulisses.
Vous conservez vos useTranslations, getTranslations, NextIntlClientProvider existants et autres amis — le seul changement est le chemin d'importation. Aucun refactoring des signatures d'appel, des formes de prop ou de la structure des composants n'est requis.
Au fil du temps, vous pouvez optionnellement migrer des fichiers individuels vers le format .content.ts plus riche d'Intlayer pour débloquer l'éditeur visuel, le CMS et la portée du contenu par composant — mais cette étape est entièrement facultative et peut être effectuée de manière incrémentielle.
Table des Matières
Migration rapide
Les étapes suivantes sont le minimum requis pour faire fonctionner votre application next-intl existante sur Intlayer avec zéro changement de code.
Installer les Dépendances
Installez les packages principaux d'Intlayer et l'adaptateur de compatibilité
@intlayer/next-intl:Gardez
next-intlinstallé — il est toujours requis pour le routage URL (createNavigation,createMiddleware,Link,redirect,usePathname,useRouter). L'adaptateur de compatibilité ne remplace pas la couche de routage.Configurer Intlayer
La commande
intlayer initcrée un fichierintlayer.config.tsde démarrage. Mettez-le à jour pour qu'il corresponde à vos paramètres régionaux existants et pointez le pluginsyncJSONsur vos fichiers de messages :sourcemappe un paramètre régional à son chemin de fichier JSON.locationindique à l'observateur Intlayer quel dossier surveiller pour les modifications. L'optionformat: 'icu'garantit que les espaces réservés ICU comme{name}et{count, plural, one {# item} other {# items}}sont analysés correctement.Pour une liste complète des options de configuration, consultez la documentation de configuration.
Ajouter le Plugin Intlayer à Next.js
Enveloppez votre configuration Next.js existante avec
createNextIntlPlugindepuis@intlayer/next-intl/plugin. Cette enveloppe composewithIntlayeret enregistre les aliasnext-intl→@intlayer/next-intlpour vous :createNextIntlPlugin()enveloppewithIntlayer, détecte automatiquement Webpack ou Turbopack, configure la surveillance du contenu, la compilation des dictionnaires et — point critique — injecte des alias de module afin que vos appels existantsimport … from 'next-intl'soient redirigés de manière transparente vers@intlayer/next-intllors de la construction. L'entrée de routagenext-intl/routingreste pointée vers le package réel. Aucun changement de fichier source n'est nécessaire.Préférez-vous le
withIntlayersimple denext-intlayer/server? Il compilera vos dictionnaires, mais n'ajoutera pas les aliasnext-intl— vous devrez alors renommer les imports vers@intlayer/next-intlmanuellement (voir l'étape 4).Vous n'avez plus besoin de
getRequestConfigou deloadMessages. Avecnext-intl, vous deviez écrire un fichiersrc/i18n.tsqui chargeait des bundles de messages JSON à chaque requête viagetRequestConfig. Intlayer compile tous les dictionnaires au moment de la construction, il n'y a donc pas d'étape de chargement à l'exécution. Vous pouvez supprimer ce fichier entièrement (ou ne conserver que les parties de routage si vous utilisez toujourscreateNavigation).
C'est tout pour la migration rapide. Votre application fonctionne désormais sur Intlayer tout en conservant chaque import et API next-intl intacts.
Clés de traduction typées — automatiques. Une fois qu'Intlayer a compilé vos dictionnaires,
useTranslationsetgetTranslationssont typés par rapport à votre contenu réel. Les clés sont autocomplétées dans votre IDE et les chemins invalides provoquent des erreurs TypeScript au moment de la construction — aucune configuration supplémentaire n'est requise.
Migration complète
Les étapes ci-dessous sont facultatives et peuvent être effectuées de manière incrémentielle. Elles débloquent l'ensemble des fonctionnalités d'Intlayer : éditeur visuel, CMS, fichiers de contenu typés, traduction alimentée par l'IA, et plus encore.
Renommage explicite des imports (optionnel)
FacultatifL'enveloppe
createNextIntlPlugin()gère déjà l'aliassagenext-intl→@intlayer/next-intlau niveau du bundler. Si vous préférez rendre la dépendance explicite dans vos fichiers sources (et utiliser le pluginwithIntlayersimple à la place), vous pouvez renommer les imports manuellement :Afficher tout le contenu du tableauOuvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
Avant Après import { useTranslations } from 'next-intl'import { useTranslations } from '@intlayer/next-intl'import { useLocale } from 'next-intl'import { useLocale } from '@intlayer/next-intl'import { NextIntlClientProvider } from 'next-intl'import { NextIntlClientProvider } from '@intlayer/next-intl'import { getTranslations } from 'next-intl/server'import { getTranslations } from '@intlayer/next-intl/server'import { getLocale } from 'next-intl/server'import { getLocale } from '@intlayer/next-intl/server'import { setLocale } from 'next-intl/server'import { setLocale } from '@intlayer/next-intl/server'import { getMessages } from 'next-intl/server'import { getMessages } from '@intlayer/next-intl/server'Conservez toujours les imports de routage du vrai
next-intl— l'adaptateur de compatibilité ne remplace pas la couche de routage URL :Alternativement, vous pouvez utiliser
defineRoutingdepuis@intlayer/next-intl/routingqui fusionne automatiquement la configuration des paramètres régionaux de votreintlayer.config.ts.Activer l'automatisation de la traduction alimentée par l'IA
FacultatifUne fois Intlayer configuré, vous pouvez utiliser sa CLI pour remplir automatiquement les traductions manquantes en utilisant le LLM de votre choix :
Ajoutez une clé
OPENAI_API_KEY(ou la clé de votre fournisseur préféré) à votre fichier.env, puis étendez votreintlayer.config.ts:Consultez la documentation de la CLI Intlayer pour toutes les options disponibles.
Ce que vous pouvez supprimer après la migration
Une fois @intlayer/next-intl en place, le code standard next-intl suivant peut être supprimé :
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Fichier / modèle | Pourquoi ce n'est plus nécessaire |
|---|---|
L'exportation getRequestConfig dans src/i18n.ts | Intlayer compile les dictionnaires au moment de la construction ; il n'y a pas de chargement de message par requête. Conservez le fichier uniquement s'il exporte également les aides de routage createNavigation. |
Appel de loadMessages() / getMessages() dans la mise en page | Le NextIntlClientProvider de @intlayer/next-intl lit à partir de la sortie compilée ; aucune propriété messages n'est requise. |
Imports de locales/{locale}/*.json dans la mise en page | Les bundles JSON ne sont nécessaires que si vous utilisez encore le plugin syncJSON. Une fois que vous migrez vers des fichiers .content.ts, vous pouvez supprimer le dossier JSON. |
Lorsque vous êtes prêt à aller plus loin, Intlayer découvre automatiquement tous les fichiers .content.ts et .content.json n'importe où dans votre base de code (par défaut, n'importe où dans ./src). Vous pouvez placer un fichier about.content.ts juste à côté de votre about/page.tsx et Intlayer le détectera au moment de la construction sans configuration supplémentaire — pas d'imports, pas d'enregistrement, pas besoin de fichier d'index centralisé. Cela rend la colocalisation des traductions avec les pages et les composants complètement transparente.
Configurer TypeScript
Intlayer utilise l'augmentation de module pour fournir une intellisense TypeScript complète pour vos clés de traduction. Assurez-vous que votre tsconfig.json inclut les types générés automatiquement :
Configuration Git
Ajoutez le répertoire généré par Intlayer à votre .gitignore :
Aller plus loin
- Éditeur visuel — Gérez les traductions visuellement dans votre navigateur : Éditeur visuel Intlayer
- CMS — Externalisez et gérez le contenu à distance : Intlayer CMS
- Extension VS Code — Obtenez l'autocomplétion et la détection d'erreurs de traduction en temps réel : Extension VS Code Intlayer
- Référence CLI — Liste complète des commandes CLI : Intlayer CLI
- Intlayer avec Next.js — Guide d'installation complet pour Next.js : intlayerwithnextjs_16.md