AccueilBac à sableShowcaseAppDocBlog
    • Englishanglais
      EN
    • русскийrusse
      RU
    • 日本語japonais
      JA
    • françaisfrançais
      FR
    • 한국어coréen
      KO
    • 中文chinois
      ZH
    • españolespagnol
      ES
    • Deutschallemand
      DE
    • العربيةarabe
      AR
    • italianoitalien
      IT
    • British Englishanglais britannique
      EN-GB
    • portuguêsportugais
      PT
    • हिन्दीhindi
      HI
    • Türkçeturc
      TR
    • polskipolonais
      PL
    • Indonesiaindonésien
      ID
    • Tiếng Việtvietnamien
      VI
    • українськаukrainien
      UK
    /
    Alt+←
    Qu'est-ce que l'internationalisation (i18n) ?
    SEO et i18n
    Guide
    • i18n avec next-i18next
    • i18n avec next-intl
    Utilisez Intlayer sur votre solution
    • Automatiser next-i18next
    • Automatiser react-i18next
    • Automatiser next-intl
    • Automatiser react-intl
    • Automatiser vue-i18n
    Comparaisons
    • next-i18next vs next-intl vs Intlayer
    • react-i18next vs react-intl vs Intlayer
    Documentation
    1. Blog
    2. Intlayer with next i18next
    Création:2025-08-23Dernière mise à jour:2025-10-29
    Regarder le tutoriel vidéo

    Cette page dispose d'un tutoriel vidéo.

    Référencez cette doc à votre assistant AI préféré
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix

    Historique des versions

    1. Ajout du plugin loadJSON
      v7.0.601/11/2025
    2. Passage au plugin syncJSON et réécriture complète
      v7.0.029/10/2025

    Le contenu de cette page a été traduit à l'aide d'une IA.

    Voir la dernière version du contenu original en anglais
    Modifier cette documentation

    Si 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 documentation
    Copier

    Copier le Markdown du doc dans le presse-papiers

    Internationalisation Next.js (i18n) avec next-i18next et Intlayer

    www.youtube.com

    Table des matières

    Qu'est-ce que next-i18next ?

    next-i18next est l'un des frameworks d'internationalisation (i18n) les plus populaires pour les applications Next.js. Construit sur l'écosystème puissant de i18next, il offre une solution complète pour gérer les traductions, la localisation et le changement de langue dans les projets Next.js.

    Cependant, next-i18next présente certains défis :

    • Configuration complexe : La mise en place de next-i18next nécessite plusieurs fichiers de configuration et une configuration minutieuse des instances i18n côté serveur et côté client.
    • Traductions dispersées : Les fichiers de traduction sont généralement stockés dans des répertoires séparés des composants, ce qui complique le maintien de la cohérence.
    • Gestion manuelle des namespaces : Les développeurs doivent gérer manuellement les namespaces et s'assurer du chargement correct des ressources de traduction.
    • Sécurité de type limitée : Le support de TypeScript nécessite une configuration supplémentaire et ne fournit pas de génération automatique de types pour les traductions.

    Qu'est-ce qu'Intlayer ?

    Intlayer est une bibliothèque d'internationalisation innovante et open-source conçue pour pallier les lacunes des solutions i18n traditionnelles. Elle propose une approche moderne de la gestion de contenu dans les applications Next.js.

    Consultez une comparaison concrète avec next-intl dans notre article de blog next-i18next vs. next-intl vs. Intlayer.

    Pourquoi combiner Intlayer avec next-i18next ?

    Bien qu'Intlayer offre une excellente solution i18n autonome (voir notre guide d'intégration Next.js), vous pourriez vouloir le combiner avec next-i18next pour plusieurs raisons :

    1. Base de code existante : Vous disposez d'une implémentation next-i18next établie et souhaitez migrer progressivement vers la meilleure expérience développeur d'Intlayer.
    2. Exigences héritées : Votre projet nécessite une compatibilité avec les plugins ou workflows i18next existants.
    3. Familiarité de l'équipe : Votre équipe est à l'aise avec next-i18next mais souhaite une meilleure gestion du contenu.

    Pour cela, Intlayer peut être implémenté comme un adaptateur pour next-i18next afin d'automatiser vos traductions JSON dans les pipelines CLI ou CI/CD, tester vos traductions, et plus encore.

    Ce guide vous montre comment tirer parti du système supérieur de déclaration de contenu d'Intlayer tout en maintenant la compatibilité avec next-i18next.


    Guide étape par étape pour configurer Intlayer avec next-i18next

    Étape 1 : Installer les dépendances

    Installez les paquets nécessaires en utilisant votre gestionnaire de paquets préféré :

    bash
    Copier le code

    Copier le code dans le presse-papiers

    npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init

    Explications des paquets :

    • intlayer : Bibliothèque principale pour la déclaration et la gestion de contenu
    • @intlayer/sync-json-plugin : Plugin pour synchroniser les déclarations de contenu Intlayer au format JSON i18next

    Étape 2 : Implémenter le plugin Intlayer pour envelopper le JSON

    Créez un fichier de configuration Intlayer pour définir vos locales supportées :

    Si vous souhaitez également exporter des dictionnaires JSON pour i18next, ajoutez le plugin syncJSON :

    intlayer.config.ts
    Copier le code

    Copier le code dans le presse-papiers

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;

    Le plugin syncJSON enveloppera automatiquement le JSON. Il lira et écrira les fichiers JSON sans modifier l'architecture du contenu.

    Si vous souhaitez faire coexister ce JSON avec les fichiers de déclaration de contenu intlayer (.content), Intlayer procédera de la manière suivante :

    plaintext
    Copier le code

    Copier le code dans le presse-papiers

    1. charger à la fois les fichiers JSON et les fichiers de déclaration de contenu et les transformer en un dictionnaire intlayer.2. s'il y a des conflits entre les fichiers JSON et les fichiers de déclaration de contenu, Intlayer procédera à la fusion de tous ces dictionnaires. Cela dépendra de la priorité des plugins, ainsi que de celle du fichier de déclaration de contenu (tout est configurable).

    Si des modifications sont effectuées via la CLI pour traduire le JSON, ou en utilisant le CMS, Intlayer mettra à jour le fichier JSON avec les nouvelles traductions.

    Pour plus de détails sur le plugin syncJSON, veuillez consulter la documentation du plugin syncJSON.

    Configuration Git

    Exclure les fichiers générés du contrôle de version :

    .gitignore
    Copier le code

    Copier le code dans le presse-papiers

    # Ignorer les fichiers générés par Intlayer.intlayer

    Ces fichiers sont automatiquement régénérés lors du processus de build et n'ont pas besoin d'être commités dans votre dépôt.

    Extension VS Code

    Pour une meilleure expérience développeur, installez l’extension officielle Intlayer VS Code :

    Installer depuis le Marketplace VS Code

    i18n avec next-intl
    Automatiser react-i18next
    Alt+→

    Dans cette page

      Les discussions sont anonymes et régulièrement analysées pour traiter les problèmes fréquents. N'hésitez pas à partager vos idées de fonctionnalités, vos retours sur la documentation ou tout ce qui concerne Intlayer, nous utilisons ces retours pour construire notre roadmap et améliorer le produit.

      npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;
      1. charger à la fois les fichiers JSON et les fichiers de déclaration de contenu et les transformer en un dictionnaire intlayer.2. s'il y a des conflits entre les fichiers JSON et les fichiers de déclaration de contenu, Intlayer procédera à la fusion de tous ces dictionnaires. Cela dépendra de la priorité des plugins, ainsi que de celle du fichier de déclaration de contenu (tout est configurable).
      # Ignorer les fichiers générés par Intlayer.intlayer