Intlayer Configuration Documentation

    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é dans la configuration.


    Support 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: {
        typesDir: "content/types",
      },
      middleware: {
        noPrefix: false,
      },
    };
    
    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 pour l'application.

    Propriétés

    • locales:
      • Type: string[]
      • Default: ['en']
      • Description: La liste des locales prises en charge dans l'application.
      • Example: ['en', 'fr', 'es']
    • strictMode:

      • Type: string
      • Default: required_only
      • Description: Garantit une forte mise en œuvre d'un contenu internationalisé en utilisant TypeScript.
      • Note: 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, cela déclenchera une erreur.
      • Note: Si défini sur "required_only", la fonction de traduction t exigera que chaque locale déclarée soit définie. Si une locale est manquante, cela déclenchera un avertissement. Mais cela acceptera si une locale n'est pas déclarée dans votre configuration, mais existe.
      • Note: Si défini sur "loose", la fonction de traduction t acceptera toute locale existante.
    • defaultLocale:

      • Type: string
      • Default: 'en'
      • Description: La locale par défaut utilisée comme solution de secours si la locale demandée n'est pas trouvée.
      • Example: 'en'
      • Note: Ceci est utilisé pour déterminer la locale lorsque 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

    • backendURL:

      • Type: string
      • Default: https://back.intlayer.org
      • Description: L'URL du serveur backend.
      • Example: http://localhost:4000
    • enabled:

      • Type: boolean
      • Default: true
      • Description: Indique si l'éditeur est actif.
      • Example: true
      • Note: Peut être défini en utilisant NODE_ENV ou d'autres variables d'environnement dédiées.
    • clientId:

      • Type: string | undefined
      • Default: undefined
      • Description: clientId et clientSecret permettent aux paquets intlayer de s'authentifier avec le backend en utilisant l'authentification oAuth2. Un token d'accès est utilisé pour authentifier l'utilisateur lié au projet. Pour obtenir un token d'accès, allez sur https://back.intlayer.org/dashboard/project et créez un compte.
      • Example: true
      • Note: Important : Le clientId et le clientSecret doivent être gardés secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un endroit sûr, comme des variables d'environnement.
    • clientSecret:

      • Type: string | undefined
      • Default: undefined
      • Description: clientId et clientSecret permettent aux paquets intlayer de s'authentifier avec le backend en utilisant l'authentification oAuth2. Un token d'accès est utilisé pour authentifier l'utilisateur lié au projet. Pour obtenir un token d'accès, allez sur https://back.intlayer.org/dashboard/project et créez un compte.
      • Example: true
      • Note: Important : Le clientId et le clientSecret doivent être gardés secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un endroit sûr, comme des variables d'environnement.

    Configuration du middleware

    Paramètres qui contrôlent le comportement du middleware, notamment la façon dont l'application gère les cookies, les en-têtes et les préfixes d'URL pour la gestion des locales.

    Propriétés

    • headerName:
      • Type: string
      • Default: 'x-intlayer-locale'
      • Description: Le nom de l'en-tête HTTP utilisé pour déterminer la locale.
      • Example: 'x-custom-locale'
      • Note: Ceci est utile pour la détermination de la locale basée sur l'API.
    • cookieName:
      • Type: string
      • Default: 'intlayer-locale'
      • Description: Le nom du cookie utilisé pour stocker la locale.
      • Example: 'custom-locale'
      • Note: Utilisé pour persister la locale à travers les sessions.
    • prefixDefault:
      • Type: boolean
      • Default: true
      • Description: Si oui ou non inclure la locale par défaut dans l'URL.
      • Example: false
      • Note: Si false, les URLs pour la locale par défaut n'auront pas de préfixe de locale.
    • basePath:
      • Type: string
      • Default: ''
      • Description: Le chemin de base pour les URLs de l'application.
      • Example: '/my-app'
      • Note: Ceci affecte la façon dont les URLs sont construites pour l'application.
    • serverSetCookie:
      • Type: string
      • Default: 'always'
      • Description: Règle pour définir le cookie de locale sur le serveur.
      • Options: 'always', 'never'
      • Example: 'never'
      • Note: Contrôle si le cookie de locale est défini à chaque requête ou jamais.
    • noPrefix:
      • Type: boolean
      • Default: false
      • Description: Si oui ou non omettre le préfixe de locale des URLs.
      • Example: true
      • Note: Si true, les URLs ne contiendront pas d'informations sur la locale.

    Configuration du contenu

    Paramètres liés à la gestion du contenu au sein de 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
      • Default: process.env.NODE_ENV === 'development'
      • Description: Indique si Intlayer doit surveiller les modifications dans les fichiers de déclaration de contenu dans l'application pour reconstruire les dictionnaires associés.
    • fileExtensions:
      • Type: string[]
      • Default: ['.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.
      • Example: ['.data.ts', '.data.js', '.data.json']
      • Note: La personnalisation des extensions de fichiers peut aider à éviter les conflits.
    • baseDir:
      • Type: string
      • Default: process.cwd()
      • Description: Le répertoire de base pour le projet.
      • Example: '/path/to/project'
      • Note: Ceci est utilisé pour résoudre tous les répertoires liés à Intlayer.
    • dictionaryOutput:
      • Type: string[]
      • Default: ['intlayer']
      • Description: Le type de sortie du dictionnaire à utiliser, par exemple, 'intlayer' ou 'i18next'.
    • contentDirName:
      • Type: string
      • Default: 'src'
      • Description: Le nom du répertoire où le contenu est stocké.
      • Example: 'data', 'content', 'locales'
      • Note: Si ce n'est pas au niveau du répertoire de base, mettez à jour le contentDir.
    • contentDir:

      • Type: string
      • DerivedFrom: 'baseDir' / 'contentDirName'
      • Description: Le chemin du répertoire où le contenu est stocké.
    • resultDirName:
      • Type: string
      • Default: '.intlayer'
      • Description: Le nom du répertoire où les résultats sont stockés.
      • Example: 'outputOFIntlayer'
      • Note: Si ce répertoire n'est pas au niveau de base, mettez à jour resultDir.
    • resultDir:

      • Type: string
      • DerivedFrom: 'baseDir' / 'resultDirName'
      • Description: Le chemin du répertoire pour stocker les résultats intermédiaires ou de sortie.
    • moduleAugmentationDirName:

      • Type: string
      • Default: 'types'
      • Description: Répertoire pour l'augmentation de module, permettant de meilleures suggestions IDE et un contrôle de type.
      • Example: 'intlayer-types'
      • Note: Assurez-vous d'inclure cela dans tsconfig.json.
    • moduleAugmentationDir:

      • Type: string
      • DerivedFrom: 'baseDir' / 'moduleAugmentationDirName'
      • Description: Le chemin pour l'augmentation de module et les définitions de type supplémentaires.
    • dictionariesDirName:
      • Type: string
      • Default: 'dictionary'
      • Description: Répertoire pour stocker les dictionnaires.
      • Example: 'translations'
      • Note: Si ce n'est pas au niveau du répertoire de résultat, mettez à jour dictionariesDir.
    • dictionariesDir:

      • Type: string
      • DerivedFrom: 'resultDir' / 'dictionariesDirName'
      • Description: Le répertoire pour stocker les dictionnaires de localisation.
    • i18nDictionariesDirName:
      • Type: string
      • Default: 'i18n_dictionary'
      • Description: Répertoire pour stocker les dictionnaires i18n.
      • Example: 'translations'
      • Note: Si ce n'est pas au niveau du répertoire de résultat, mettez à jour i18nDictionariesDir.
      • Note: Assurez-vous que la sortie des dictionnaires i18n inclut i18next pour construire les dictionnaires pour i18next.
    • i18nDictionariesDir:

      • Type: string
      • DerivedFrom: 'resultDir' / 'i18nDictionariesDirName'
      • Description: Le répertoire pour stocker les dictionnaires i18n.
      • Note: Assurez-vous que ce répertoire est configuré pour le type de sortie i18next.
    • typeDirName:

      • Type: string
      • Default: 'types'
      • Description: Répertoire pour stocker les types de dictionnaire.
      • Example: 'intlayer-types'
      • Note: Si ce n'est pas au niveau du répertoire de résultat, mettez à jour typesDir.
    • typesDir:

      • Type: string
      • DerivedFrom: 'resultDir' / 'typeDirName'
      • Description: Le répertoire pour stocker les types de dictionnaire.
    • mainDirName:
      • Type: string
      • Default: 'main'
      • Description: Répertoire pour stocker les fichiers principaux.
      • Example: 'intlayer-main'
      • Note: Si ce n'est pas au niveau du répertoire de résultat, mettez à jour mainDir.
    • mainDir:
      • Type: string
      • DerivedFrom: 'resultDir' / 'mainDirName'
      • Description: Le répertoire où les fichiers principaux de l'application sont stockés.
    • excludedPath:
      • Type: string[]
      • Default: ['node_modules']
      • Description: Répertoires exclus de la recherche de contenu.
      • Note: Ce paramètre n'est pas encore utilisé, mais prévu pour une implémentation future.

    Configuration du logger

    Paramètres qui contrôlent le logger, y compris le niveau de journalisation et le préfixe à utiliser.

    Propriétés

    • enabled:
      • Type: boolean
      • Default: true
      • Description: Indique si le logger est activé.
      • Example: true
      • Note: Peut être défini en utilisant NODE_ENV ou d'autres variables d'environnement dédiées.
    • level:
      • Type: 'info' | 'warn' | 'debug' | 'log'
      • Default: 'log'
      • Description: Le niveau du logger.
      • Example: 'info'
      • Note: Le niveau du logger. Il peut être soit 'log', 'info', 'warn', 'error', ou 'debug'.
    • prefix:
      • Type: string
      • Default: '[intlayer] '
      • Description: Le préfixe du logger.
      • Example: '[my custom prefix] '
      • Note: Le préfixe du logger.

    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