Recevez des notifications en avant-première sur les prochains lancements de Intlayer
    Création:2024-08-13Dernière mise à jour:2025-06-29

    Documentation de Configuration d'Intlayer

    Vue d'ensemble

    Les fichiers de configuration d'Intlayer permettent de personnaliser divers aspects du plugin, tels que l'internationalisation, le middleware et la gestion du contenu. Ce document fournit une description détaillée de chaque propriété de la configuration.


    Prise en charge des fichiers de configuration

    Intlayer accepte les formats de fichiers de configuration JSON, JS, MJS et TS :

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Exemple de fichier de configuration

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    contentDir: ["src", "../ui-library"],  },  middleware: {    noPrefix: false,  },  editor: {    applicationURL: "https://example.com",  },  ai: {    apiKey: process.env.OPENAI_API_KEY,    applicationContext: "Ceci est une application de test", // Contexte de l'application  },  build: {    activateDynamicImport: true, // Active l'importation dynamique  },};export default config;

    Référence de Configuration

    Les sections suivantes décrivent les différents paramètres de configuration disponibles pour Intlayer.


    Configuration de l’Internationalisation

    Définit les paramètres liés à l’internationalisation, y compris les locales disponibles et la locale par défaut de l’application.

    Propriétés

    • locales :

      • Type : string[]
      • Par défaut : ['en']
      • Description : La liste des locales prises en charge dans l’application.
      • Exemple : ['en', 'fr', 'es']
    • requiredLocales :
      • Type : string[]
      • Par défaut : []
      • Description : La liste des locales requises dans l’application.
      • Exemple : []
      • Remarque : Si vide, toutes les locales sont requises en mode strict.
      • Remarque : Assurez-vous que les locales requises sont également définies dans le champ locales.
    • strictMode :

      • Type : string
      • Par défaut : inclusive
      • Description : Garantit une implémentation rigoureuse du contenu internationalisé à l’aide de TypeScript.
      • Remarque : Si défini sur "strict", la fonction de traduction t exigera que chaque locale déclarée soit définie. Si une locale est manquante, ou si une locale n’est pas déclarée dans votre configuration, une erreur sera levée.
      • Remarque : Si défini sur "inclusive", la fonction de traduction t exigera que chaque locale déclarée soit définie. Si une locale est manquante, un avertissement sera émis. Mais elle acceptera une locale non déclarée dans votre configuration si elle existe.
      • Remarque : Si défini sur "loose", la fonction de traduction t acceptera toute locale existante.
    • defaultLocale :

      • Type : string
      • Par défaut : 'en'
      • Description : La locale par défaut utilisée comme solution de repli si la locale demandée n’est pas trouvée.
      • Exemple : 'en'
      • Remarque : Ceci est utilisé pour déterminer la locale lorsqu’aucune n’est spécifiée dans l’URL, le cookie ou l’en-tête.

    Configuration de l’éditeur

    Définit les paramètres liés à l’éditeur intégré, y compris le port du serveur et le statut actif.

    Propriétés

    • applicationURL :

      • Type : string
      • Par défaut : http://localhost:3000
      • Description : L’URL de l’application. Utilisée pour restreindre l’origine de l’éditeur pour des raisons de sécurité.
      • Exemple :
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Remarque : L’URL de l’application. Utilisée pour restreindre l’origine de l’éditeur pour des raisons de sécurité. Si définie à '*', l’éditeur est accessible depuis n’importe quelle origine.
    • port :

      • Type : number
      • Par défaut : 8000
      • Description : Le port utilisé par le serveur de l’éditeur visuel.
    • editorURL :

      • Type : string
      • Par défaut : 'http://localhost:8000'
      • Description : L’URL du serveur de l’éditeur. Utilisée pour restreindre l’origine de l’éditeur pour des raisons de sécurité.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Note : L’URL du serveur de l’éditeur à atteindre depuis l’application. Utilisée pour restreindre les origines pouvant interagir avec l’application pour des raisons de sécurité. Si définie à '*', l’éditeur est accessible depuis n’importe quelle origine. Doit être définie si le port est modifié ou si l’éditeur est hébergé sur un domaine différent.
    • cmsURL :

      • Type : string
      • Valeur par défaut : 'https://intlayer.org'
      • Description : L’URL du CMS Intlayer.
      • Exemple : 'https://intlayer.org'
      • Note : L’URL du CMS Intlayer.
    • backendURL :

      • Type : string
      • Valeur par défaut : https://back.intlayer.org
      • Description : L’URL du serveur backend.
      • Exemple : http://localhost:4000
    • enabled :

      • Type : boolean
      • Valeur par défaut : true
      • Description : Indique si l'application interagit avec l'éditeur visuel.
      • Exemple : process.env.NODE_ENV !== 'production'
      • Note : Si vrai, l'éditeur pourra interagir avec l'application. Si faux, l'éditeur ne pourra pas interagir avec l'application. Dans tous les cas, l'éditeur ne peut être activé que par l'éditeur visuel. Désactiver l'éditeur pour certains environnements est un moyen de renforcer la sécurité.
    • clientId :

      • Type : string | undefined
      • Valeur par défaut : undefined
      • Description : clientId et clientSecret permettent aux paquets intlayer de s’authentifier auprès du backend en utilisant l’authentification oAuth2. Un jeton d’accès est utilisé pour authentifier l’utilisateur lié au projet. Pour obtenir un jeton d’accès, rendez-vous sur https://intlayer.org/dashboard/project et créez un compte.
      • Exemple : true
      • Remarque : Important : le clientId et le clientSecret doivent rester secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un emplacement sécurisé, tel que des variables d’environnement.
    • clientSecret :

      • Type : string | undefined
      • Valeur par défaut : undefined
      • Description : clientId et clientSecret permettent aux paquets intlayer de s’authentifier auprès du backend en utilisant l’authentification oAuth2. Un jeton d’accès est utilisé pour authentifier l’utilisateur lié au projet. Pour obtenir un jeton d’accès, rendez-vous sur https://intlayer.org/dashboard/project et créez un compte.
      • Exemple : true
      • Remarque : Important : le clientId et le clientSecret doivent rester secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un emplacement sécurisé, tel que des variables d’environnement.
    • hotReload :

      • Type : boolean
      • Par défaut : false
      • Description : Indique si l’application doit recharger à chaud les configurations de langue lorsqu’un changement est détecté.
      • Exemple : true
      • Note : Par exemple, lorsqu’un nouveau dictionnaire est ajouté ou mis à jour, l’application mettra à jour le contenu à afficher sur la page.
      • Note : Comme le rechargement à chaud nécessite une connexion continue au serveur, il est uniquement disponible pour les clients du plan enterprise.
    • dictionaryPriorityStrategy :

      • Type : string
      • Par défaut : 'local_first'
      • Description : La stratégie pour prioriser les dictionnaires lorsqu’il existe à la fois des dictionnaires locaux et distants. Si la valeur est 'distant_first', l’application priorisera les dictionnaires distants par rapport aux dictionnaires locaux. Si la valeur est 'local_first', l’application priorisera les dictionnaires locaux par rapport aux dictionnaires distants.
      • Exemple : 'distant_first'

    Configuration du Middleware

    Paramètres qui contrôlent le comportement du middleware, y compris la gestion des cookies, des en-têtes et des préfixes d’URL pour la gestion des langues.

    Propriétés

    • headerName :

      • Type : string
      • Par défaut : 'x-intlayer-locale'
      • Description : Le nom de l’en-tête HTTP utilisé pour déterminer la langue.
      • Exemple : 'x-custom-locale'
      • Remarque : Utile pour la détermination de la langue basée sur une API.
    • cookieName :

      • Type : string
      • Par défaut : 'intlayer-locale'
      • Description : Le nom du cookie utilisé pour stocker la langue.
      • Exemple : 'custom-locale'
      • Remarque : Utilisé pour conserver la langue entre les sessions.
    • prefixDefault :

      • Type : boolean
      • Par défaut : true
      • Description : Indique s’il faut inclure la langue par défaut dans l’URL.
      • Exemple : false
      • Remarque : Si false, les URL pour la langue par défaut n'auront pas de préfixe de langue.
    • basePath :

      • Type : string
      • Par défaut : ''
      • Description : Le chemin de base pour les URL de l'application.
      • Exemple : '/my-app'
      • Remarque : Cela affecte la manière dont les URL sont construites pour l'application.
    • serverSetCookie :

      • Type : string
      • Par défaut : 'always'
      • Description : Règle pour définir le cookie de langue sur le serveur.
      • Options : 'always', 'never'
      • Exemple : 'never'
      • Remarque : Contrôle si le cookie de langue est défini à chaque requête ou jamais.
    • noPrefix :

      • Type : boolean
      • Par défaut : false
      • Description : Indique s’il faut omettre le préfixe de langue dans les URL.
      • Exemple : true
      • Remarque : Si true, les URLs ne contiendront pas d'information de langue.

    Configuration du contenu

    Paramètres liés à la gestion du contenu dans l'application, y compris les noms de répertoires, les extensions de fichiers et les configurations dérivées.

    Propriétés

    • watch :

      • Type : boolean
      • Par défaut : process.env.NODE_ENV === 'development'
      • Description : Indique si Intlayer doit surveiller les modifications dans les fichiers de déclaration de contenu de l'application pour reconstruire les dictionnaires associés.
    • fileExtensions :

      • Type : string[]
      • Par défaut : ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • Description : Extensions de fichiers à rechercher lors de la construction des dictionnaires.
      • Exemple : ['.data.ts', '.data.js', '.data.json']
      • Remarque : Personnaliser les extensions de fichiers peut aider à éviter les conflits.
    • baseDir :

      • Type : string
      • Par défaut : process.cwd()
      • Description : Le répertoire de base du projet.
      • Exemple : '/path/to/project'
      • Remarque : Utilisé pour résoudre tous les répertoires liés à Intlayer.
    • dictionaryOutput :

      • Type : string[]
      • Par défaut : ['intlayer']
      • Description : Le type de sortie de dictionnaire à utiliser, par exemple 'intlayer' ou 'i18next'.
    • contentDir :

      • Type : string[]
      • Par défaut : ['src']
      • Exemple : ['src', '../../ui-library', require.resolve("@my-package/content")]
      • Description : Le chemin du répertoire où le contenu est stocké.
    • dictionariesDir :

      • Type : string
      • Par défaut : '.intlayer/dictionaries'
      • Description : Le chemin du répertoire pour stocker les résultats intermédiaires ou finaux.
    • moduleAugmentationDir :

      • Type : string
      • Par défaut : '.intlayer/types'
      • Description : Répertoire pour l'augmentation de module, permettant de meilleures suggestions dans l'IDE et une vérification des types.
      • Exemple : 'intlayer-types'
      • Remarque : Assurez-vous d'inclure ce répertoire dans le fichier tsconfig.json.
    • unmergedDictionariesDir :

      • Type : string
      • Par défaut : '.intlayer/unmerged_dictionary'
      • Description : Répertoire pour stocker les dictionnaires non fusionnés.
      • Exemple : 'translations'
    • dictionariesDir :

      • Type : string
      • Par défaut : '.intlayer/dictionary'
      • Description : Répertoire pour stocker les dictionnaires de localisation.
      • Exemple : 'translations'
    • i18nextResourcesDir :

      • Type : string
      • Par défaut : 'i18next_dictionary'
      • Description : Le répertoire pour stocker les dictionnaires i18n.
      • Exemple : 'translations'
      • Remarque : Assurez-vous que ce répertoire est configuré pour le type de sortie i18next.
    • typesDir :

      • Type : string
      • Par défaut : 'types'
      • Description : Le répertoire pour stocker les types de dictionnaires.
      • Exemple : 'intlayer-types'
    • mainDir :

      • Type : string
      • Par défaut : 'main'
      • Description : Le répertoire où sont stockés les fichiers principaux de l'application.
      • Exemple : 'intlayer-main'
    • excludedPath :

      • Type : string[]
      • Par défaut : ['node_modules']
      • Description : Répertoires exclus de la recherche de contenu.
      • Remarque : Ce paramètre n'est pas encore utilisé, mais prévu pour une future implémentation.

    Configuration du Journaliseur

    Paramètres qui contrôlent le journaliseur, y compris le préfixe à utiliser.

    Propriétés

    • mode :

      • Type : string
      • Par défaut : default
      • Description : Indique le mode du journaliseur.
      • Options : default, verbose, disabled
      • Exemple : default
      • Remarque : Le mode du journaliseur. Le mode verbeux enregistrera plus d'informations, utile pour le débogage. Le mode désactivé désactivera le journaliseur.
    • prefix :

      • Type : string
      • Par défaut : '[intlayer] '
      • Description : Le préfixe du journaliseur.
      • Exemple : '[mon préfixe personnalisé] '
      • Remarque : Le préfixe du journaliseur.

    Configuration de l'IA

    Paramètres qui contrôlent les fonctionnalités d'IA d'Intlayer, y compris le fournisseur, le modèle et la clé API. Cette configuration est facultative si vous êtes inscrit sur le Tableau de bord Intlayer en utilisant une clé d'accès. Intlayer gérera automatiquement la solution d'IA la plus efficace et la plus économique selon vos besoins. Utiliser les options par défaut garantit une meilleure maintenabilité à long terme, car Intlayer est continuellement mis à jour pour utiliser les modèles les plus pertinents.

    Si vous préférez utiliser votre propre clé API ou un modèle spécifique, vous pouvez définir votre propre configuration d'IA.
    Cette configuration d'IA sera utilisée globalement dans votre environnement Intlayer. Les commandes CLI utiliseront ces paramètres comme valeurs par défaut pour les commandes (par exemple fill), ainsi que le SDK, l'Éditeur Visuel et le CMS. Vous pouvez remplacer ces valeurs par défaut pour des cas d'utilisation spécifiques en utilisant les paramètres de commande. Intlayer prend en charge plusieurs fournisseurs d'IA pour une flexibilité et un choix accrus. Les fournisseurs actuellement pris en charge sont :

    • OpenAI (par défaut)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Meta Llama

    Propriétés

    • provider :

      • Type : string
      • Par défaut : 'openai'
      • Description : Le fournisseur à utiliser pour les fonctionnalités d'IA d'Intlayer.
      • Options : 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
      • Exemple : 'anthropic'
      • Remarque : Différents fournisseurs peuvent nécessiter des clés API différentes et avoir des modèles de tarification différents.
    • model :

      • Type : string
      • Par défaut : Aucun
      • Description : Le modèle à utiliser pour les fonctionnalités d'IA d'Intlayer.
      • Exemple : 'gpt-4o-2024-11-20'
      • Remarque : Le modèle spécifique à utiliser varie selon le fournisseur.
    • temperature :

      • Type : number
      • Par défaut : Aucun
      • Description : La température contrôle le degré d'aléatoire des réponses de l'IA.
      • Exemple : 0.1
      • Remarque : Une température plus élevée rendra l'IA plus créative et moins prévisible.
    • apiKey :

      • Type : string
      • Par défaut : Aucun
      • Description : Votre clé API pour le fournisseur sélectionné.
      • Exemple : process.env.OPENAI_API_KEY
      • Remarque : Important : Les clés API doivent rester secrètes et ne pas être partagées publiquement. Veuillez vous assurer de les conserver dans un emplacement sécurisé, tel que des variables d’environnement.
    • applicationContext :

      • Type : string
      • Par défaut : Aucun
      • Description : Fournit un contexte supplémentaire sur votre application au modèle d'IA, l’aidant à générer des traductions plus précises et adaptées au contexte. Cela peut inclure des informations sur le domaine de votre application, le public cible, le ton ou une terminologie spécifique.

    Configuration de Build

    Paramètres qui contrôlent la manière dont Intlayer optimise et construit l'internationalisation de votre application.

    Les options de build s'appliquent aux plugins @intlayer/babel et @intlayer/swc.

    En mode développement, Intlayer utilise une importation statique centralisée pour les dictionnaires afin de simplifier l'expérience de développement.

    En optimisant le build, Intlayer remplacera tous les appels aux dictionnaires pour optimiser le découpage. Ainsi, le bundle final importera uniquement les dictionnaires utilisés.

    • Remarque : @intlayer/babel est disponible par défaut dans le package vite-intlayer, mais @intlayer/swc n’est pas installé par défaut dans le package next-intlayer car les plugins SWC sont encore expérimentaux sur Next.js.

    Propriétés

    • optimize :

      • Type : boolean
      • Par défaut : process.env.NODE_ENV === 'production'
      • Description : Contrôle si la construction doit être optimisée.
      • Exemple : true
      • Remarque : Cela permettra d'importer uniquement les dictionnaires utilisés dans le bundle. Mais toutes les importations resteront des importations statiques afin d’éviter un traitement asynchrone lors du chargement des dictionnaires.
      • Remarque : Lorsqu’il est activé, Intlayer optimisera le découpage des dictionnaires en remplaçant tous les appels à useIntlayer par useDictionary et getIntlayer par getDictionary.
      • Remarque : Assurez-vous que toutes les clés soient déclarées statiquement dans les appels à useIntlayer. Par exemple : useIntlayer('navbar').
    • activateDynamicImport :

      • Type : boolean
      • Par défaut : false
      • Description : Contrôle si le contenu du dictionnaire doit être importé dynamiquement par locale.
      • Exemple : true
      • Remarque : Cela permettra d'importer dynamiquement le contenu du dictionnaire uniquement pour la locale actuelle.
      • Remarque : Les imports dynamiques reposent sur React Suspense et peuvent légèrement impacter les performances de rendu. Mais si cette option est désactivée, toutes les locales seront chargées en même temps, même si elles ne sont pas utilisées.
      • Remarque : Lorsqu'elle est activée, Intlayer optimisera le découpage des dictionnaires en remplaçant tous les appels à useIntlayer par useDynamicDictionary.
      • Remarque : Cette option sera ignorée si optimize est désactivé.
      • Remarque : Assurez-vous que toutes les clés soient déclarées statiquement dans les appels à useIntlayer. Par exemple : useIntlayer('navbar').
    • traversePattern :

      • Type : string[]
      • Valeur par défaut : ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']
      • Description : Motifs qui définissent quels fichiers doivent être parcourus lors de l’optimisation.
        • Exemple : ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
      • Remarque : Utilisez ceci pour limiter l’optimisation aux fichiers de code pertinents et améliorer les performances de compilation.
      • Remarque : Cette option sera ignorée si optimize est désactivé.
      • Remarque : Utilisez un motif glob.

    Historique de la documentation

    • 5.5.11 - 2025-06-29 : Ajout des commandes docs
    Recevez des notifications en avant-première sur les prochains lancements de Intlayer