Documentation de Configuration d'Intlayer
Vue d'ensemble
Les fichiers de configuration d'Intlayer permettent la personnalisation de divers aspects du plugin, tels que l'internationalisation, les middleware et la gestion du contenu. Ce document fournit une description détaillée de chaque propriété de la configuration.
Formats de fichiers de configuration pris en charge
Intlayer accepte les formats de fichiers de configuration suivants : 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;
// intlayer.config.cjs
const { Locales } = require("intlayer");
/** @type {import('intlayer').IntlayerConfig} */
const config = {
internationalization: {
locales: [Locales.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
module.exports = config;
// .intlayerrc
{
"internationalization": {
"locales": ["en"],
},
"content": {
"typesDir": "content/types",
},
"middleware": {
"noPrefix": false,
},
}
Référence de Configuration
Les sections suivantes décrivent les différentes options de configuration disponibles pour Intlayer.
Configuration de l'Internationalisation
Définit les paramètres liés à l'internationalisation, y compris les langues disponibles et la langue par défaut de l'application.
Propriétés
- locales :
- Type : string[]
- Défaut : ['en']
- Description : La liste des langues prises en charge par l'application.
- Exemple : ['en', 'fr', 'es']
strictMode :
- Type : string
- Défaut : required_only
- Description : Assure une implémentation stricte du contenu internationalisé en utilisant TypeScript.
- Note : Si défini sur "strict", la fonction de traduction t exigera que chaque langue déclarée soit définie. Si une langue manque ou n'est pas déclarée dans votre configuration, une erreur sera générée.
- Note : Si défini sur "required_only", la fonction de traduction t exigera que chaque langue déclarée soit définie. Si une langue manque, un avertissement sera émis. Cependant, il acceptera une langue non déclarée dans votre configuration mais existante.
- Note : Si défini sur "loose", la fonction de traduction t acceptera toute langue existante.
defaultLocale :
- Type : string
- Défaut : 'en'
- Description : La langue par défaut utilisée comme repli si la langue demandée n'est pas trouvée.
- Exemple : 'en'
- Note : Utilisé pour déterminer la langue 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 d'activation.
Propriétés
backendURL:
- Type: string
- Default: https://back.intlayer.org
- Description: L'URL du serveur de backend.
- Example: http://localhost:4000
enabled :
- Type : boolean
- Défaut : true
- Description : Indique si l'éditeur est actif.
- Exemple : true
- Note : Peut être défini en utilisant NODE_ENV ou une autre variable d'environnement dédiée.
clientId :
- Type : string | undefined
- Default : undefined
- Description : Le clientId et le clientSecret permettent aux packages intlayer de s'authentifier avec le backend en utilisant oAuth2. Un accès à un token est utilisé pour s'authentifier sur le projet. Pour obtenir un accès à un token, 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 en sécurité et non partagés publiquement. Assurez-vous de garder ces paramètres dans un environnement sécurisé, comme un fichier de configuration.
clientSecret :
- Type : string | undefined
- Default : undefined
- Description : Le clientId et le clientSecret permettent aux packages intlayer de s'authentifier avec le backend en utilisant oAuth2. Un accès à un token est utilisé pour s'authentifier sur le projet. Pour obtenir un accès à un token, 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 en sécurité et non partagés publiquement. Assurez-vous de garder ces paramètres dans un environnement sécurisé, comme un fichier de configuration.
Configuration du Middleware
Paramètres qui contrôlent le comportement des 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
- Défaut : 'x-intlayer-locale'
- Description : Le nom de l'en-tête HTTP utilisé pour déterminer la langue.
- Exemple : 'x-custom-locale'
- Note : Utile pour la détermination de la langue basée sur l'API.
- cookieName :
- Type : string
- Défaut : 'intlayer-locale'
- Description : Le nom du cookie utilisé pour stocker la langue.
- Exemple : 'custom-locale'
- Note : Utilisé pour conserver la langue entre les sessions.
- prefixDefault :
- Type : boolean
- Défaut : true
- Description : Indique si la langue par défaut doit être incluse dans l'URL.
- Exemple : false
- Note : Si false, les URL pour la langue par défaut ne contiendront pas de préfixe de langue.
- basePath :
- Type : string
- Défaut : ''
- Description : Le chemin de base pour les URL de l'application.
- Exemple : '/my-app'
- Note : Cela affecte la construction des URL de l'application.
- serverSetCookie :
- Type : string
- Défaut : 'always'
- Description : Règle pour définir le cookie de langue sur le serveur.
- Options : 'always', 'never'
- Exemple : 'never'
- Note : Contrôle si le cookie de langue est défini à chaque requête ou jamais.
- noPrefix :
- Type : boolean
- Défaut : false
- Description : Indique si le préfixe de langue doit être omis des URL.
- Exemple : true
- Note : Si true, les URL ne contiendront pas d'informations de langue.
Configuration du Contenu
Paramètres relatifs à 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
- fileExtensions :
- Type : string[]
- 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']
- Note : La personnalisation des extensions de fichiers peut aider à éviter les conflits.
- baseDir :
- Type : string
- Défaut : process.cwd()
- Description : Le répertoire de base du projet.
- Exemple : '/path/to/project'
- Note : Utilisé pour résoudre tous les répertoires liés à Intlayer.
- dictionaryOutput :
- Type : string[]
- Défaut : ['intlayer']
- Description : Le type de sortie de dictionnaire à utiliser, par exemple 'intlayer' ou 'i18next'.
- contentDirName :
- Type : string
- Défaut : 'src'
- Description : Le nom du répertoire où le contenu est stocké.
- Exemple : 'data', 'content', 'locales'
- Note : Si ce répertoire n'est pas au niveau de la base, mettez à jour contentDir.
contentDir :
- Type : string
- Dérivé de : 'baseDir' / 'contentDirName'
- Description : Le chemin du répertoire où le contenu est stocké.
- resultDirName :
- Type : string
- Défaut : '.intlayer'
- Description : Le nom du répertoire où les résultats sont stockés.
- Exemple : 'outputOFIntlayer'
- Note : Si ce répertoire n'est pas au niveau de la base, mettez à jour resultDir.
resultDir :
- Type : `string
`
- Dérivé de : 'baseDir' / 'resultDirName'
Description : Le chemin du répertoire pour stocker les résultats intermédiaires ou finaux.
moduleAugmentationDirName :
- Type : string
- Défaut : 'types'
- Description : Répertoire pour l'augmentation de module, permettant de meilleures suggestions IDE et vérifications de type.
- Exemple : 'intlayer-types'
- Note : Veillez à inclure cela dans tsconfig.json.
moduleAugmentationDir :
- Type : string
- Dérivé de : 'baseDir' / 'moduleAugmentationDirName'
- Description : Le chemin pour l'augmentation de module et les définitions de type supplémentaires.
- dictionariesDirName :
- Type : string
- Défaut : 'dictionary'
- Description : Répertoire pour stocker les dictionnaires.
- Exemple : 'translations'
- Note : Si ce répertoire n'est pas au niveau des résultats, mettez à jour dictionariesDir.
dictionariesDir :
- Type : string
- Dérivé de : 'resultDir' / 'dictionariesDirName'
- Description : Le répertoire pour stocker les dictionnaires de localisation.
- i18nDictionariesDirName :
- Type : string
- Défaut : 'i18n_dictionary'
- Description : Répertoire pour stocker les dictionnaires i18n.
- Exemple : 'translations'
- Note : Si ce répertoire n'est pas au niveau des résultats, mettez à jour i18nDictionariesDir.
- Note : Assurez-vous que la sortie des dictionnaires i18n inclut i18next pour construire les dictionnaires pour i18next.
i18nDictionariesDir :
- Type : string
- Dérivé de : '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
- Défaut : 'types'
- Description : Répertoire pour stocker les types de dictionnaires.
- Exemple : 'intlayer-types'
- Note : Si ce répertoire n'est pas au niveau des résultats, mettez à jour typesDir.
typesDir :
- Type : string
- Dérivé de : 'resultDir' / 'typeDirName'
- Description : Le répertoire pour stocker les types de dictionnaires.
- mainDirName :
- Type : string
- Défaut : 'main'
- Description : Répertoire pour stocker les fichiers principaux.
- Exemple : 'intlayer-main'
- Note : Si ce répertoire n'est pas au niveau des résultats, mettez à jour mainDir.
- mainDir :
- Type : string
- Dérivé de : 'resultDir' / 'mainDirName'
- Description : Le répertoire où les fichiers principaux de l'application sont stockés.
- excludedPath :
- Type : string[]
- Défaut : ['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.