@intlayer/docs 8.4.5 → 8.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +20 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +20 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/configuration.md +520 -722
  8. package/docs/ar/intlayer_with_storybook.md +521 -0
  9. package/docs/bn/configuration.md +922 -0
  10. package/docs/bn/intlayer_with_hono.md +428 -0
  11. package/docs/de/configuration.md +369 -743
  12. package/docs/de/intlayer_with_storybook.md +521 -0
  13. package/docs/en/configuration.md +181 -507
  14. package/docs/en/intlayer_with_storybook.md +521 -0
  15. package/docs/en-GB/configuration.md +456 -657
  16. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  17. package/docs/es/configuration.md +379 -754
  18. package/docs/es/intlayer_with_storybook.md +521 -0
  19. package/docs/fr/configuration.md +376 -757
  20. package/docs/fr/intlayer_with_storybook.md +521 -0
  21. package/docs/hi/configuration.md +532 -728
  22. package/docs/hi/intlayer_with_storybook.md +521 -0
  23. package/docs/id/configuration.md +371 -684
  24. package/docs/id/intlayer_with_storybook.md +521 -0
  25. package/docs/it/configuration.md +397 -775
  26. package/docs/it/intlayer_with_storybook.md +521 -0
  27. package/docs/ja/configuration.md +525 -724
  28. package/docs/ja/intlayer_with_storybook.md +521 -0
  29. package/docs/ko/configuration.md +525 -724
  30. package/docs/ko/intlayer_with_storybook.md +521 -0
  31. package/docs/pl/configuration.md +430 -734
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/configuration.md +375 -746
  34. package/docs/pt/intlayer_with_storybook.md +521 -0
  35. package/docs/ru/configuration.md +532 -701
  36. package/docs/ru/intlayer_with_storybook.md +521 -0
  37. package/docs/tr/configuration.md +527 -719
  38. package/docs/tr/intlayer_with_storybook.md +521 -0
  39. package/docs/uk/configuration.md +425 -744
  40. package/docs/uk/intlayer_with_storybook.md +521 -0
  41. package/docs/ur/configuration.md +922 -0
  42. package/docs/ur/intlayer_with_hono.md +428 -0
  43. package/docs/vi/configuration.md +412 -753
  44. package/docs/vi/intlayer_with_storybook.md +521 -0
  45. package/docs/zh/configuration.md +521 -714
  46. package/docs/zh/intlayer_with_storybook.md +521 -0
  47. package/package.json +6 -6
  48. package/src/generated/docs.entry.ts +20 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
3
+ updatedAt: 2026-03-20
4
4
  title: Configuration
5
5
  description: Apprenez à configurer Intlayer pour votre application. Comprenez les différents paramètres et options disponibles pour personnaliser Intlayer selon vos besoins.
6
6
  keywords:
@@ -14,12 +14,15 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 8.4.0
18
+ date: 2026-03-20
19
+ changes: Ajout de la notation d'objet par locale pour 'compiler.output' et 'dictionary.fill'
17
20
  - version: 8.3.0
18
21
  date: 2026-03-11
19
- changes: Déplacer 'baseDir' de la configuration 'content' vers la configuration 'system'
22
+ changes: Déplacement de 'baseDir' de la configuration 'content' vers la configuration 'system'
20
23
  - version: 8.2.0
21
24
  date: 2026-03-09
22
- changes: Mise à jour des options du compilateur, ajout du support de 'output' et 'noMetadata'
25
+ changes: Mise à jour des options du compilateur (compiler), ajout du support pour 'output' et 'noMetadata'
23
26
  - version: 8.1.7
24
27
  date: 2026-02-25
25
28
  changes: Mise à jour des options du compilateur
@@ -31,25 +34,25 @@ history:
31
34
  changes: Ajout du support pour les fournisseurs Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face et Together.ai
32
35
  - version: 8.0.5
33
36
  date: 2026-02-06
34
- changes: Ajout de `dataSerialization` à la configuration de l'IA
37
+ changes: Ajout de `dataSerialization` à la configuration AI
35
38
  - version: 8.0.0
36
39
  date: 2026-01-24
37
- changes: Renommer le mode d'importation `live` en `fetch` pour mieux décrire le mécanisme sous-jacent.
40
+ changes: Renommage du mode d'importation `live` en `fetch` pour mieux décrire le mécanisme sous-jacent.
38
41
  - version: 8.0.0
39
42
  date: 2026-01-22
40
- changes: Déplacer la configuration de build pour `importMode` vers la configuration du dictionnaire.
43
+ changes: Déplacement de la configuration de build `importMode` vers la configuration `dictionary`.
41
44
  - version: 8.0.0
42
45
  date: 2026-01-22
43
- changes: Ajout de l'option `rewrite` à la configuration du routage
46
+ changes: Ajout de l'option `rewrite` à la configuration de routage
44
47
  - version: 8.0.0
45
48
  date: 2026-01-18
46
- changes: Séparer la configuration système de la configuration du contenu. Déplacer les chemins internes vers la propriété `system`. Ajouter `codeDir` pour séparer les fichiers de contenu de la transformation du code.
49
+ changes: Séparation de la configuration système de la configuration de contenu. Déplacement des chemins internes vers la propriété `system`. Ajout de `codeDir` pour séparer les fichiers de contenu et la transformation de code.
47
50
  - version: 8.0.0
48
51
  date: 2026-01-18
49
52
  changes: Ajout des options de dictionnaire `location` et `schema`
50
53
  - version: 7.5.1
51
54
  date: 2026-01-10
52
- changes: Ajout du support des formats de fichiers JSON5 et JSONC
55
+ changes: Ajout du support pour les formats de fichiers JSON5 et JSONC
53
56
  - version: 7.5.0
54
57
  date: 2025-12-17
55
58
  changes: Ajout de l'option `buildMode`
@@ -58,7 +61,7 @@ history:
58
61
  changes: Ajout de la configuration `dictionary`
59
62
  - version: 7.0.0
60
63
  date: 2025-10-21
61
- changes: Remplacement du `middleware` par la configuration de `routing`
64
+ changes: Remplacement de `middleware` par la configuration de routage `routing`
62
65
  - version: 7.0.0
63
66
  date: 2025-10-12
64
67
  changes: Ajout de l'option `formatCommand`
@@ -82,21 +85,21 @@ history:
82
85
  changes: Remplacement de `activateDynamicImport` par l'option `importMode`
83
86
  - version: 5.6.0
84
87
  date: 2025-07-13
85
- changes: Changement du répertoire par défaut `contentDir` de `['src']` à `['.']`
88
+ changes: Modification du contentDir par défaut de `['src']` à `['.']`
86
89
  - version: 5.5.11
87
90
  date: 2025-06-29
88
91
  changes: Ajout des commandes `docs`
89
92
  ---
90
93
 
91
- # Documentation de Configuration d'Intlayer
94
+ # Documentation de Configuration Intlayer
92
95
 
93
- ## Vue d'ensemble
96
+ ## Aperçu
94
97
 
95
- 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.
98
+ Les fichiers de configuration Intlayer vous permettent de personnaliser divers aspects du plugin, tels que l'internationalisation (internationalization), le middleware et la gestion du contenu. Cette documentation fournit une description détaillée de chaque propriété de la configuration.
96
99
 
97
100
  ---
98
101
 
99
- ## Table des matières
102
+ ## Table des Matières
100
103
 
101
104
  <TOC/>
102
105
 
@@ -125,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
125
128
  import { z } from "zod";
126
129
 
127
130
  /**
128
- * Example Intlayer configuration file showing all available options.
131
+ * Exemple de fichier de configuration Intlayer affichant toutes les options disponibles.
129
132
  */
130
133
  const config: IntlayerConfig = {
131
134
  /**
132
- * Configuration for internationalization settings.
135
+ * Configuration pour les paramètres d'internationalisation.
133
136
  */
134
137
  internationalization: {
135
138
  /**
136
- * List of supported locales in the application.
137
- * Default: [Locales.ENGLISH]
139
+ * Liste des locales supportées dans l'application.
140
+ * Par défaut : [Locales.ENGLISH]
138
141
  */
139
142
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
140
143
 
141
144
  /**
142
- * List of required locales that must be defined in every dictionary.
143
- * If empty, all locales are required in `strict` mode.
144
- * Default: []
145
+ * Liste des locales obligatoires qui doivent être définies dans chaque dictionnaire.
146
+ * Si vide, toutes les locales sont obligatoires en mode `strict`.
147
+ * Par défaut : []
145
148
  */
146
149
  requiredLocales: [Locales.ENGLISH],
147
150
 
148
151
  /**
149
- * Strictness level for internationalized content.
150
- * - "strict": Errors if any declared locale is missing or undeclared.
151
- * - "inclusive": Warnings if a declared locale is missing.
152
- * - "loose": Accepts any existing locale.
153
- * Default: "inclusive"
152
+ * Niveau de stricte conformité pour le contenu internationalisé.
153
+ * - "strict": Erreur si une locale déclarée est manquante ou non déclarée.
154
+ * - "inclusive": Avertissement si une locale déclarée est manquante.
155
+ * - "loose": Accepte n'importe quelle locale existante.
156
+ * Par défaut : "inclusive"
154
157
  */
155
158
  strictMode: "inclusive",
156
159
 
157
160
  /**
158
- * Default locale used as a fallback if the requested locale is not found.
159
- * Default: Locales.ENGLISH
161
+ * Locale par défaut utilisée comme solution de secours si la locale demandée n'est pas trouvée.
162
+ * Par défaut : Locales.ENGLISH
160
163
  */
161
164
  defaultLocale: Locales.ENGLISH,
162
165
  },
163
166
 
164
167
  /**
165
- * Settings that control dictionary operations and fallback behavior.
168
+ * Paramètres contrôlant les opérations de dictionnaire et le comportement de repli.
166
169
  */
167
170
  dictionary: {
168
171
  /**
169
- * Controls how dictionaries are imported.
170
- * - "static": Statically imported at build time.
171
- * - "dynamic": Dynamically imported using Suspense.
172
- * - "fetch": Fetched dynamically via the live sync API.
173
- * Default: "static"
172
+ * Contrôle la manière dont les dictionnaires sont importés.
173
+ * - "static": Importé statiquement au moment du build.
174
+ * - "dynamic": Importé dynamiquement en utilisant Suspense.
175
+ * - "fetch": Récupéré dynamiquement via l'API live sync.
176
+ * Par défaut : "static"
174
177
  */
175
178
  importMode: "static",
176
179
 
177
180
  /**
178
- * Strategy for auto-filling missing translations using AI.
179
- * Can be a boolean or a path pattern to store filled content.
180
- * Default: true
181
+ * Stratégie pour remplir automatiquement les traductions manquantes à l'aide de l'IA.
182
+ * Peut être une valeur booléenne ou un motif de chemin pour enregistrer le contenu rempli.
183
+ * Par défaut : true
181
184
  */
182
185
  fill: true,
183
186
 
184
187
  /**
185
- * Physical location of the dictionary files.
186
- * - "local": Stored in the local filesystem.
187
- * - "remote": Stored in the Intlayer CMS.
188
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
189
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
190
- * Default: "local"
188
+ * Emplacement physique des fichiers de dictionnaire.
189
+ * - "local": Stocké dans le système de fichiers local.
190
+ * - "remote": Stocké dans l'Intlayer CMS.
191
+ * - "hybrid": Stocké à la fois localement et dans l'Intlayer CMS.
192
+ * - "plugin" (ou toute chaîne personnalisée) : Fourni par un plugin ou une source personnalisée.
193
+ * Par défaut : "local"
191
194
  */
192
195
  location: "local",
193
196
 
194
197
  /**
195
- * Whether to automatically transform content (e.g., Markdown to HTML).
196
- * Default: false
198
+ * Indique si le contenu doit être automatiquement transformé (ex: Markdown en HTML).
199
+ * Par défaut : false
197
200
  */
198
201
  contentAutoTransformation: false,
199
202
  },
200
203
 
201
204
  /**
202
- * Routing and middleware configuration.
205
+ * Configuration du routage et du middleware.
203
206
  */
204
207
  routing: {
205
208
  /**
206
- * Locale routing strategy.
207
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
208
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
209
- * - "no-prefix": No locale in the URL.
210
- * - "search-params": Use ?locale=...
211
- * Default: "prefix-no-default"
209
+ * Stratégie de routage des locales.
210
+ * - "prefix-no-default": Préfixe tout sauf la locale par défaut (ex: /dashboard, /fr/dashboard).
211
+ * - "prefix-all": Préfixe toutes les locales (ex: /en/dashboard, /fr/dashboard).
212
+ * - "no-prefix": Pas de locale dans l'URL.
213
+ * - "search-params": Utilise ?locale=...
214
+ * Par défaut : "prefix-no-default"
212
215
  */
213
216
  mode: "prefix-no-default",
214
217
 
215
218
  /**
216
- * Where to store the user's selected locale.
217
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
218
- * Default: ['cookie', 'header']
219
+ * stocker la locale sélectionnée par l'utilisateur.
220
+ * Options : 'cookie', 'localStorage', 'sessionStorage', 'header', ou un tableau de ceux-ci.
221
+ * Par défaut : ['cookie', 'header']
219
222
  */
220
223
  storage: ["cookie", "header"],
221
224
 
222
225
  /**
223
- * Base path for the application URLs.
224
- * Default: ""
226
+ * Chemin de base pour les URL de l'application.
227
+ * Par défaut : ""
225
228
  */
226
229
  basePath: "",
227
230
 
228
231
  /**
229
- * Custom URL rewriting rules for locale-specific paths.
232
+ * Règles de réécriture d'URL personnalisées pour des chemins spécifiques par locale.
230
233
  */
231
234
  rewrite: nextjsRewrite({
232
235
  "/[locale]/about": {
@@ -237,131 +240,130 @@ const config: IntlayerConfig = {
237
240
  },
238
241
 
239
242
  /**
240
- * Settings for finding and processing content files.
243
+ * Paramètres relatifs à la recherche et au traitement des fichiers de contenu.
241
244
  */
242
245
  content: {
243
246
  /**
244
- * File extensions to scan for dictionaries.
245
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
247
+ * Extensions de fichiers pour le scan des dictionnaires.
248
+ * Par défaut : ['.content.ts', '.content.js', '.content.json', etc.]
246
249
  */
247
250
  fileExtensions: [".content.ts", ".content.js", ".content.json"],
248
251
 
249
252
  /**
250
- * Directories where .content files are located.
251
- * Default: ["."]
253
+ * Répertoires se trouvent les fichiers .content.
254
+ * Par défaut : ["."]
252
255
  */
253
256
  contentDir: ["src"],
254
257
 
255
258
  /**
256
- * Directories where source code is located.
257
- * Used for build optimization and code transformation.
258
- * Default: ["."]
259
+ * se trouve le code source.
260
+ * Utilisé pour l'optimisation du build et la transformation de code.
261
+ * Par défaut : ["."]
259
262
  */
260
263
  codeDir: ["src"],
261
264
 
262
265
  /**
263
- * Patterns to exclude from scanning.
264
- * Default: ['node_modules', '.intlayer', etc.]
266
+ * Motifs exclus du scan.
267
+ * Par défaut : ['node_modules', '.intlayer', etc.]
265
268
  */
266
269
  excludedPath: ["node_modules"],
267
270
 
268
271
  /**
269
- * Whether to watch for changes and rebuild dictionaries in development.
270
- * Default: true in development
272
+ * Indique s'il faut surveiller les modifications et reconstruire les dictionnaires pendant le développement.
273
+ * Par défaut : true en développement
271
274
  */
272
275
  watch: true,
273
276
 
274
277
  /**
275
- * Command to format newly created / updated .content files.
278
+ * Commande utilisée pour formater les fichiers .content nouvellement créés / mis à jour.
276
279
  */
277
280
  formatCommand: 'npx prettier --write "{{file}}"',
278
281
  },
279
282
 
280
283
  /**
281
- * Visual Editor configuration.
284
+ * Configuration de l'Éditeur Visuel (Visual Editor).
282
285
  */
283
286
  editor: {
284
287
  /**
285
- * Whether the visual editor is enabled.
286
- * Default: false
288
+ * Indique si l'éditeur visuel est activé.
289
+ * Par défaut : false
287
290
  */
288
291
  enabled: true,
289
292
 
290
293
  /**
291
- * URL of your application for origin validation.
292
- * Default: ""
294
+ * L'URL de votre application pour la validation de l'origine.
295
+ * Par défaut : ""
293
296
  */
294
297
  applicationURL: "http://localhost:3000",
295
298
 
296
299
  /**
297
- * Port for the local editor server.
298
- * Default: 8000
300
+ * Port pour le serveur local de l'éditeur.
301
+ * Par défaut : 8000
299
302
  */
300
303
  port: 8000,
301
304
 
302
305
  /**
303
- * Public URL for the editor.
304
- * Default: "http://localhost:8000"
306
+ * URL publique de l'éditeur.
307
+ * Par défaut : "http://localhost:8000"
305
308
  */
306
309
  editorURL: "http://localhost:8000",
307
310
 
308
311
  /**
309
- * Intlayer CMS URL.
310
- * Default: "https://app.intlayer.org"
312
+ * URL de l'Intlayer CMS.
313
+ * Par défaut : "https://app.intlayer.org"
311
314
  */
312
315
  cmsURL: "https://app.intlayer.org",
313
316
 
314
317
  /**
315
- * Backend API URL.
316
- * Default: "https://back.intlayer.org"
318
+ * URL de l'API Backend.
319
+ * Par défaut : "https://back.intlayer.org"
317
320
  */
318
321
  backendURL: "https://back.intlayer.org",
319
322
 
320
323
  /**
321
- * Whether to enable real-time content synchronization.
322
- * Default: false
324
+ * Indique s'il faut activer la synchronisation du contenu en temps réel.
325
+ * Par défaut : false
323
326
  */
324
327
  liveSync: true,
325
328
  },
326
329
 
327
330
  /**
328
- * AI-powered translation and generation settings.
331
+ * Paramètres de traduction et de construction basés sur l'IA.
329
332
  */
330
333
  ai: {
331
334
  /**
332
- * AI provider to use.
333
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
334
- * Default: 'openai'
335
+ * Fournisseur d'IA à utiliser.
336
+ * Options : 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
+ * Par défaut : 'openai'
335
338
  */
336
339
  provider: "openai",
337
340
 
338
341
  /**
339
- * Model to use from the selected provider.
342
+ * Modèle du fournisseur sélectionné à utiliser.
340
343
  */
341
344
  model: "gpt-4o",
342
345
 
343
346
  /**
344
- * Provider API key.
347
+ * Clé API du fournisseur.
345
348
  */
346
349
  apiKey: process.env.OPENAI_API_KEY,
347
350
 
348
351
  /**
349
- * Global context to guide the AI in generating translations.
352
+ * Contexte global pour guider l'IA dans la génération des traductions.
350
353
  */
351
- applicationContext:
352
- "Cette application est un système de réservation de voyages.",
354
+ applicationContext: "Ceci est une application de réservation de voyages.",
353
355
 
354
356
  /**
355
- * Base URL for the AI API.
357
+ * URL de base pour l'API AI.
356
358
  */
357
359
  baseURL: "http://localhost:3000",
358
360
 
359
361
  /**
360
- * Sérialisation des données
362
+ * Sérialisation des données (Data Serialization)
361
363
  *
362
364
  * Options :
363
- * - "json" : Standard, fiable ; utilise plus de jetons.
364
- * - "toon" : Moins de jetons, moins cohérent que le JSON.
365
+ * - "json" : Par défaut, robuste ; consomme plus de tokens.
366
+ * - "toon" : Consomme moins de tokens, peut ne pas être aussi cohérent que le JSON.
365
367
  *
366
368
  * Par défaut : "json"
367
369
  */
@@ -369,170 +371,170 @@ const config: IntlayerConfig = {
369
371
  },
370
372
 
371
373
  /**
372
- * Build and optimization settings.
374
+ * Paramètres de build et d'optimisation.
373
375
  */
374
376
  build: {
375
377
  /**
376
- * Build execution mode.
377
- * - "auto": Automatic build during app build.
378
- * - "manual": Requires explicit build command.
379
- * Default: "auto"
378
+ * Mode d'exécution du build.
379
+ * - "auto": Construit automatiquement pendant le build de l'application.
380
+ * - "manual": Nécessite une commande de build explicite.
381
+ * Par défaut : "auto"
380
382
  */
381
383
  mode: "auto",
382
384
 
383
385
  /**
384
- * Whether to optimize the final bundle by pruning unused dictionaries.
385
- * Default: true in production
386
+ * Indique s'il faut optimiser le bundle final en supprimant les dictionnaires inutilisés.
387
+ * Par défaut : true en production
386
388
  */
387
389
  optimize: true,
388
390
 
389
391
  /**
390
- * Output format for generated dictionary files.
391
- * Default: ['cjs', 'esm']
392
+ * Format de sortie pour les fichiers de dictionnaire générés.
393
+ * Par défaut : ['cjs', 'esm']
392
394
  */
393
395
  outputFormat: ["cjs", "esm"],
394
396
 
395
397
  /**
396
- * Indicates if the build should check TypeScript types.
397
- * Default: false
398
+ * Indique si le build doit vérifier les types TypeScript.
399
+ * Par défaut : false
398
400
  */
399
401
  checkTypes: false,
400
402
  },
401
403
 
402
404
  /**
403
- * Logger configuration.
405
+ * Configuration du Logger.
404
406
  */
405
407
  log: {
406
408
  /**
407
- * Logging level.
408
- * - "default": Standard logging.
409
- * - "verbose": Detailed debug logging.
410
- * - "disabled": No logging.
411
- * Default: "default"
409
+ * Niveau de log.
410
+ * - "default": Logging standard.
411
+ * - "verbose": Logging de débogage approfondi.
412
+ * - "disabled": Désactive le logging.
413
+ * Par défaut : "default"
412
414
  */
413
415
  mode: "default",
414
416
 
415
417
  /**
416
- * Prefix for all log messages.
417
- * Default: "[intlayer]"
418
+ * Préfixe pour tous les messages de log.
419
+ * Par défaut : "[intlayer]"
418
420
  */
419
421
  prefix: "[intlayer]",
420
422
  },
421
423
 
422
424
  /**
423
- * System configuration (Advanced use cases)
425
+ * Configuration Système (Pour usage avancé)
424
426
  */
425
427
  system: {
426
428
  /**
427
- * Directory for storing localization dictionaries.
429
+ * Répertoire pour stocker les dictionnaires localisés.
428
430
  */
429
431
  dictionariesDir: ".intlayer/dictionary",
430
432
 
431
433
  /**
432
- * Directory for module augmentation.
434
+ * Répertoire pour l'augmentation de modules TypeScript.
433
435
  */
434
436
  moduleAugmentationDir: ".intlayer/types",
435
437
 
436
438
  /**
437
- * Directory for storing unmerged dictionaries.
439
+ * Répertoire pour stocker les dictionnaires non fusionnés.
438
440
  */
439
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
440
442
 
441
443
  /**
442
- * Directory for storing dictionary types.
444
+ * Répertoire pour stocker les types de dictionnaires.
443
445
  */
444
446
  typesDir: ".intlayer/types",
445
447
 
446
448
  /**
447
- * Directory where main application files are stored.
449
+ * Répertoire sont stockés les fichiers principaux de l'application.
448
450
  */
449
451
  mainDir: ".intlayer/main",
450
452
 
451
453
  /**
452
- * Directory where the configuration files are stored.
454
+ * Répertoire sont stockés les fichiers de configuration.
453
455
  */
454
456
  configDir: ".intlayer/config",
455
457
 
456
458
  /**
457
- * Directory where the cache files are stored.
459
+ * Répertoire sont stockés les fichiers de cache.
458
460
  */
459
461
  cacheDir: ".intlayer/cache",
460
462
  },
461
463
 
462
464
  /**
463
- * Compiler configuration (Advanced use cases)
465
+ * Configuration du Compilateur (Pour usage avancé)
464
466
  */
465
467
  compiler: {
466
468
  /**
467
- * Indique si le compilateur doit être activé.
469
+ * Indique si le compilateur (compiler) doit être activé.
468
470
  *
469
- * - false : Désactive le compilateur.
470
- * - true : Active le compilateur.
471
- * - "build-only" : Ignore le compilateur pendant le développement et accélère les temps de démarrage.
471
+ * - false: Désactive le compilateur.
472
+ * - true: Active le compilateur.
473
+ * - "build-only": Ignore le compilateur pendant le développement et accélère le temps de démarrage.
472
474
  *
473
475
  * Par défaut : false
474
476
  */
475
477
  enabled: true,
476
478
 
477
479
  /**
478
- * Définit le chemin des fichiers de sortie. Remplace `outputDir`.
480
+ * Définit le chemin pour les fichiers de sortie. Remplace `outputDir`.
479
481
  *
480
482
  * - Les chemins `./` sont résolus par rapport au répertoire du composant.
481
483
  * - Les chemins `/` sont résolus par rapport à la racine du projet (`baseDir`).
482
484
  *
483
- * - L'inclusion de la variable `{{locale}}` dans le chemin déclenchera la génération de dictionnaires séparés par locale.
485
+ * - L'inclusion de la variable `{{locale}}` dans le chemin déclenchera la création de dictionnaires séparés par langue.
484
486
  *
485
487
  * Exemple :
486
488
  * ```ts
487
489
  * {
488
- * // Créer des fichiers .content.ts multilingues proches du composant
490
+ * // Créer des fichiers .content.ts multilingues à côté du composant
489
491
  * output: ({ fileName, extension }) => `./${fileName}${extension}`,
490
492
  *
491
- * // output: './{{fileName}}{{extension}}', // Équivalent utilisant une chaîne de caractères
493
+ * // output: './{{fileName}}{{extension}}', // Équivalent en utilisant une chaîne de caractères
492
494
  * }
493
495
  * ```
494
496
  *
495
497
  * ```ts
496
498
  * {
497
- * // Créer des JSON centralisés par locale à la racine du projet
499
+ * // Créer des JSON centralisés par langue à la racine du projet
498
500
  * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
499
501
  *
500
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Équivalent utilisant une chaîne de caractères
502
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // Équivalent en utilisant une chaîne de caractères
501
503
  * }
502
504
  * ```
503
505
  *
504
506
  * Liste des variables :
505
- * - `fileName` : Le nom du fichier.
506
- * - `key` : La clé du contenu.
507
- * - `locale` : La locale du contenu.
508
- * - `extension` : L'extension du fichier.
509
- * - `componentFileName` : Le nom du fichier du composant.
510
- * - `componentExtension` : L'extension du fichier du composant.
511
- * - `format` : Le format du dictionnaire.
512
- * - `componentFormat` : Le format du dictionnaire du composant.
513
- * - `componentDirPath` : Le chemin du répertoire du composant.
507
+ * - `fileName`: Nom du fichier.
508
+ * - `key`: Clé du contenu.
509
+ * - `locale`: Locale du contenu.
510
+ * - `extension`: Extension du fichier.
511
+ * - `componentFileName`: Nom du fichier du composant.
512
+ * - `componentExtension`: Extension du fichier du composant.
513
+ * - `format`: Format du dictionnaire.
514
+ * - `componentFormat`: Format du dictionnaire du composant.
515
+ * - `componentDirPath`: Chemin du répertoire du composant.
514
516
  */
515
517
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
516
518
 
517
519
  /**
518
- * Indique si les composants doivent être sauvegardés après avoir été transformés.
519
- * De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
520
+ * Indique si les composants doivent être enregistrés après avoir été transformés.
521
+ * De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application et peut ensuite être supprimé.
520
522
  */
521
523
  saveComponents: false,
522
524
 
523
525
  /**
524
- * Insérer uniquement le contenu dans le fichier généré. Utile pour les sorties JSON i18next ou ICU MessageFormat par locale.
526
+ * Insère uniquement le contenu dans le fichier généré. Utile pour une sortie JSON par langue pour i18next ou ICU MessageFormat.
525
527
  */
526
528
  noMetadata: false,
527
529
 
528
530
  /**
529
531
  * Préfixe de clé de dictionnaire
530
532
  */
531
- dictionaryKeyPrefix: "", // Ajouter un préfixe optionnel pour les clés de dictionnaire extraites
533
+ dictionaryKeyPrefix: "", // Ajoutez un préfixe optionnel aux clés de dictionnaire extraites
532
534
  },
533
535
 
534
536
  /**
535
- * Custom schemas to validate the dictionaries content.
537
+ * Schémas personnalisés pour valider le contenu du dictionnaire.
536
538
  */
537
539
  schemas: {
538
540
  "my-schema": z.object({
@@ -541,7 +543,7 @@ const config: IntlayerConfig = {
541
543
  },
542
544
 
543
545
  /**
544
- * Plugins configuration.
546
+ * Configuration des plugins.
545
547
  */
546
548
  plugins: [],
547
549
  };
@@ -549,250 +551,116 @@ const config: IntlayerConfig = {
549
551
  export default config;
550
552
  ````
551
553
 
552
- ## Référence de configuration
554
+ ---
555
+
556
+ ## Référence de Configuration
553
557
 
554
- Les sections suivantes décrivent les différents paramètres de configuration disponibles pour Intlayer.
558
+ Les sections suivantes décrivent les différents paramètres de configuration disponibles dans Intlayer.
555
559
 
556
560
  ---
557
561
 
558
- ### Configuration de l'internationalisation
562
+ ### Configuration de l'Internationalisation (Internationalization Configuration)
559
563
 
560
564
  Définit les paramètres liés à l'internationalisation, y compris les locales disponibles et la locale par défaut de l'application.
561
565
 
562
- #### Propriétés
563
-
564
- - **locales** :
565
- - _Type_ : `string[]`
566
- - _Par défaut_ : `['en']`
567
- - _Description_ : La liste des locales supportées dans l'application.
568
- - _Exemple_ : `['en', 'fr', 'es']`
569
-
570
- - **requiredLocales** :
571
- - _Type_ : `string[]`
572
- - _Par défaut_ : `[]`
573
- - _Description_ : La liste des locales requises dans l'application.
574
- - _Exemple_ : `[]`
575
- - _Note_ : Si vide, toutes les locales sont requises en mode `strict`.
576
- - _Note_ : Assurez-vous que les locales requises sont également définies dans le champ `locales`.
577
- - **strictMode** :
578
- - _Type_ : `string`
579
- - _Défaut_ : `inclusive`
580
- - _Description_ : Assure une implémentation stricte du contenu internationalisé en utilisant TypeScript.
581
- - _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 générera une erreur.
582
- - _Note_ : 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, cela générera un avertissement. Mais acceptera si une locale n'est pas déclarée dans votre configuration, mais existe.
583
- - _Note_ : Si défini sur "loose", la fonction de traduction `t` acceptera n'importe quelle locale existante.
584
-
585
- - **defaultLocale** :
586
- - _Type_ : `string`
587
- - _Défaut_ : `'en'`
588
- - _Description_ : La locale par défaut utilisée comme solution de repli si la locale demandée n'est pas trouvée.
589
- - _Exemple_ : `'en'`
590
- - _Note_ : 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.
566
+ | Champ | Type | Description | Exemple | Note |
567
+ | ----------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
568
+ | `locales` | `string[]` | Liste des locales supportées dans l'application. Par défaut : `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
+ | `requiredLocales` | `string[]` | Liste des locales obligatoires dans l'application. Par défaut : `[]` | `[]` | Si vide, toutes les locales sont obligatoires en mode `strict`. Assurez-vous que les locales obligatoires sont également définies dans le champ `locales`. |
570
+ | `strictMode` | `string` | Garantit une implémentation robuste du contenu internationalisé en utilisant TypeScript. Par défaut : `inclusive` | | Si `"strict"`: la fonction `t` nécessite que chaque locale déclarée soit définie — renvoie une erreur si l'une d'elles est manquante ou non déclarée. Si `"inclusive"`: avertit des locales manquantes mais accepte les locales non déclarées existantes. Si `"loose"`: accepte n'importe quelle locale existante. |
571
+ | `defaultLocale` | `string` | Locale par défaut utilisée comme solution de secours si la locale demandée n'est pas trouvée. Par défaut : `Locales.ENGLISH` | `'en'` | Utilisé pour déterminer la locale lorsqu'aucune n'est spécifiée dans l'URL, le cookie ou l'en-tête. |
591
572
 
592
573
  ---
593
574
 
594
- ### Configuration de l'éditeur
595
-
596
- Définit les paramètres liés à l'éditeur intégré, y compris le port du serveur et le statut actif.
597
-
598
- #### Propriétés
599
-
600
- - **applicationURL** :
601
- - _Type_ : `string`
602
- - _Défaut_ : `http://localhost:3000`
603
- - _Description_ : L'URL de l'application. Utilisée pour restreindre l'origine de l'éditeur pour des raisons de sécurité.
604
- - _Exemple_ :
605
- - `'http://localhost:3000'`
606
- - `'https://example.com'`
607
- - `process.env.INTLAYER_EDITOR_URL`
608
- - _Note_ : L'URL de l'application. Utilisée pour restreindre l'origine de l'éditeur pour des raisons de sécurité. Si elle est définie sur `'*'`, l'éditeur est accessible depuis n'importe quelle origine.
609
-
610
- - **port** :
611
- - _Type_ : `number`
612
- - _Défaut_ : `8000`
613
- - _Description_ : Le port utilisé par le serveur de l'éditeur visuel.
614
-
615
- - **editorURL** :
616
- - _Type_ : `string`
617
- - _Défaut_ : `'http://localhost:8000'`
618
- - _Description_ : L'URL du serveur de l'éditeur. Utilisée pour restreindre l'origine de l'éditeur pour des raisons de sécurité.
619
- - `'http://localhost:3000'`
620
- - `'https://example.com'`
621
- - `process.env.INTLAYER_EDITOR_URL`
622
- - _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.
623
-
624
- - **cmsURL** :
625
- - _Type_ : `string`
626
- - _Défaut_ : `'https://intlayer.org'`
627
- - _Description_ : L’URL du CMS Intlayer.
628
- - _Exemple_ : `'https://intlayer.org'`
629
- - _Note_ : L’URL du CMS Intlayer.
630
-
631
- - **backendURL** :
632
- - _Type_ : `string`
633
- - _Défaut_ : `https://back.intlayer.org`
634
- - _Description_ : L’URL du serveur backend.
635
- - _Exemple_ : `http://localhost:4000`
636
-
637
- - **enabled** :
638
- - _Type_ : `boolean`
639
- - _Défaut_ : `true`
640
- - _Description_ : Indique si l'application interagit avec l'éditeur visuel.
641
- - _Exemple_ : `process.env.NODE_ENV !== 'production'`
642
- - _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 des environnements spécifiques est une manière de renforcer la sécurité.
643
-
644
- - **clientId** :
645
- - _Type_ : `string` | `undefined`
646
- - _Par défaut_ : `undefined`
647
- - _Description_ : clientId et clientSecret permettent aux packages 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://app.intlayer.org/project et créez un compte.
648
- - _Exemple_ : `true`
649
- - _Note_ : Important : Le clientId et le clientSecret doivent rester secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un endroit sécurisé, comme des variables d'environnement.
650
-
651
- - **clientSecret** :
652
- - _Type_ : `string` | `undefined`
653
- - _Défaut_ : `undefined`
654
- - _Description_ : clientId et clientSecret permettent aux packages 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://app.intlayer.org/project et créez un compte.
655
- - _Exemple_ : `true`
656
- - _Note_ : Important : Le clientId et le clientSecret doivent rester secrets et ne pas être partagés publiquement. Veuillez vous assurer de les conserver dans un endroit sécurisé, comme des variables d'environnement.
657
-
658
- - **dictionaryPriorityStrategy** :
659
- - _Type_ : `string`
660
- - _Défaut_ : `'local_first'`
661
- - _Description_ : La stratégie pour prioriser les dictionnaires dans le cas où des dictionnaires locaux et distants sont présents. Si défini sur `'distant_first'`, l'application priorisera les dictionnaires distants par rapport aux dictionnaires locaux. Si défini sur `'local_first'`, l'application priorisera les dictionnaires locaux par rapport aux dictionnaires distants.
662
- - _Exemple_ : `'distant_first'`
663
-
664
- - **liveSync** :
665
- - _Type_ : `boolean`
666
- - _Par défaut_ : `false`
667
- - _Description_ : Indique si le serveur de l'application doit recharger à chaud le contenu de l'application lorsqu'un changement est détecté sur le CMS / Éditeur Visuel / Backend.
668
- - _Exemple_ : `true`
669
- - _Note_ : Par exemple, lorsqu'un nouveau dictionnaire est ajouté ou mis à jour, l'application mettra à jour le contenu à afficher dans la page.
670
- - _Note_ : La synchronisation en direct nécessite d'externaliser le contenu de l'application vers un autre serveur. Cela signifie que cela peut légèrement impacter les performances de l'application. Pour limiter cela, nous recommandons d'héberger l'application et le serveur de synchronisation en direct sur la même machine. De plus, la combinaison de la synchronisation en direct et de `optimize` peut générer un nombre conséquent de requêtes vers le serveur de synchronisation en direct. En fonction de votre infrastructure, nous recommandons de tester les deux options ainsi que leur combinaison.
671
-
672
- - **liveSyncPort** :
673
- - _Type_ : `number`
674
- - _Par défaut_ : `4000`
675
- - _Description_ : Le port du serveur de synchronisation en direct.
676
- - _Exemple_ : `4000`
677
- - _Note_ : Le port du serveur de synchronisation en direct.
678
-
679
- - **liveSyncURL** :
680
- - _Type_ : `string`
681
- - _Par défaut_ : `'http://localhost:{liveSyncPort}'`
682
- - _Description_ : L'URL du serveur de synchronisation en direct.
683
- - _Exemple_ : `'https://example.com'`
684
- - _Note_ : Pointe vers localhost par défaut mais peut être modifiée vers n'importe quelle URL dans le cas d'un serveur de synchronisation en direct distant.
685
-
686
- ### Configuration du routage
687
-
688
- Paramètres qui contrôlent le comportement du routage, y compris la structure de l'URL, le stockage de la locale et la gestion du middleware.
689
-
690
- #### Propriétés
691
-
692
- - **mode**:
693
- - _Type_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
694
- - _Par défaut_: `'prefix-no-default'`
695
- - _Description_: Mode de routage d'URL pour la gestion des locales.
696
- - _Exemples_:
697
- - `'prefix-no-default'`: `/dashboard` (en) ou `/fr/dashboard` (fr)
698
- - `'prefix-all'`: `/en/dashboard` (en) ou `/fr/dashboard` (fr)
699
- - `'no-prefix'`: `/dashboard` (locale gérée par d'autres moyens)
700
- - `'search-params'`: `/dashboard?locale=fr`
701
- - _Note_: Ce paramètre n'impacte pas la gestion des cookies ou du stockage de la locale.
702
-
703
- - **storage**:
704
- - _Type_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
705
- - _Par défaut_: `['cookie', 'header']`
706
- - _Description_: Configuration pour stocker la locale chez le client.
707
-
708
- - **cookie**:
709
- - _Description_: Stocke les données dans les cookies, de petits morceaux de données stockés sur le navigateur du client, accessibles côté client et côté serveur.
710
- - _Note_: Pour un stockage conforme au RGPD, assurez-vous du consentement de l'utilisateur avant utilisation.
711
- - _Note_: Les paramètres des cookies sont personnalisables s'ils sont définis comme CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
712
-
713
- - **localStorage**:
714
- - _Description_: Stocke les données dans le navigateur sans date d'expiration, permettant la persistance des données entre les sessions, accessible uniquement côté client.
715
- - _Note_: Idéal pour stocker des données à long terme mais attention aux implications en matière de confidentialité et de sécurité.
716
- - _Note_: Le local storage n'est accessible que côté client, le proxy intlayer ne pourra pas y accéder.
717
- - _Note_: Les paramètres du local storage sont personnalisables s'ils sont définis comme StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
718
-
719
- - **sessionStorage**:
720
- - _Description_: Stocke les données pour la durée d'une session de page, ce qui signifie qu'elles sont effacées une fois l'onglet ou la fenêtre fermés, accessible uniquement côté client.
721
- - _Note_: Convient pour le stockage temporaire de données pour chaque session.
722
- - _Note_: Le local storage n'est accessible que côté client, le proxy intlayer ne pourra pas y accéder.
723
- - _Note_: Les paramètres du local storage sont personnalisables s'ils sont définis comme StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
724
-
725
- - **header**:
726
- - _Description_: Utilise les en-têtes HTTP pour stocker ou transmettre les données de locale, adapté à la détermination de la langue côté serveur.
727
- - _Note_: Utile dans les appels API pour maintenir des paramètres de langue cohérents entre les requêtes.
728
- - _Note_: L'en-tête n'est accessible que côté serveur, le côté client ne pourra pas y accéder.
729
- - _Note_: Le nom de l'en-tête est personnalisable s'il est défini comme StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
730
-
731
- - **basePath**:
732
- - _Type_: `string`
733
- - _Par défaut_: `''`
734
- - _Description_: Le chemin de base pour les URLs de l'application.
735
- - _Exemple_: `'/my-app'`
736
- - _Note_:
737
- - Si l'application est hébergée à `https://example.com/my-app`
738
- - Le chemin de base est `'/my-app'`
739
- - L'URL sera `https://example.com/my-app/en`
740
- - Si le chemin de base n'est pas défini, l'URL sera `https://example.com/en`
741
-
742
- - **rewrite**:
743
- - _Type_: `Record<string, StrictModeLocaleMap<string>>`
744
- - _Par défaut_: `undefined`
745
- - _Description_: Règles de réécriture d'URL personnalisées qui remplacent le mode de routage par défaut pour des chemins spécifiques. Permet de définir des chemins spécifiques par locale qui diffèrent du comportement de routage standard. Prend en charge les paramètres de route dynamiques en utilisant la syntaxe `[param]`.
746
- - _Exemple_:
747
- ```typescript
748
- routing: {
749
- mode: "prefix-no-default", // Stratégie de repli
750
- rewrite: nextjsRewrite({
751
- "/about": {
752
- en: "/about",
753
- fr: "/a-propos",
754
- },
755
- "/product/[slug]": {
756
- en: "/product/[slug]",
757
- fr: "/produit/[slug]",
758
- },
759
- "/blog/[category]/[id]": {
760
- en: "/blog/[category]/[id]",
761
- fr: "/journal/[category]/[id]",
762
- },
763
- }),
764
- }
765
- ```
766
- - _Note_: Les règles de réécriture l'emportent sur le comportement du `mode` par défaut. Si un chemin correspond à une règle de réécriture, le chemin localisé de la configuration de réécriture sera utilisé à la place du préfixage de locale standard.
767
- - _Note_: Les paramètres de route dynamiques sont pris en charge en utilisant la notation entre crochets (par exemple, `[slug]`, `[id]`). Les valeurs des paramètres sont automatiquement extraites de l'URL et interpolées dans le chemin réécrit.
768
- - _Note_: Fonctionne avec les applications Next.js et Vite. Le middleware/proxy réécrira automatiquement les requêtes entrantes pour correspondre à la structure de route interne.
769
- - _Note_: Lors de la génération d'URLs avec `getLocalizedUrl()`, les règles de réécriture sont automatiquement appliquées si elles correspondent au chemin fourni.
770
- - _Reference_: Pour plus d'informations, voir [Réécritures d'URL personnalisées](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/custom_url_rewrites.md).
771
-
772
- #### Attributs de Cookie
773
-
774
- Lorsque vous utilisez le stockage par cookie, vous pouvez configurer des attributs de cookie supplémentaires :
775
-
776
- - **name**: Nom du cookie (par défaut : `'INTLAYER_LOCALE'`)
777
- - **domain**: Domaine du cookie (par défaut : undefined)
778
- - **path**: Chemin du cookie (par défaut : undefined)
779
- - **secure**: Nécessite HTTPS (par défaut : undefined)
780
- - **httpOnly**: Drapeau HTTP-only (par défaut : undefined)
781
- - **sameSite**: Politique SameSite (`'strict' | 'lax' | 'none'`)
782
- - **expires**: Date d'expiration ou nombre de jours (par défaut : undefined)
783
-
784
- #### Attributs de Stockage de Locale
785
-
786
- Lorsque vous utilisez localStorage ou sessionStorage :
787
-
788
- - **type**: Type de stockage (`'localStorage' | 'sessionStorage'`)
789
- - **name**: Nom de la clé de stockage (par défaut : `'INTLAYER_LOCALE'`)
575
+ ### Configuration de l'Éditeur (Editor Configuration)
576
+
577
+ Définit les paramètres liés à l'éditeur intégré, y compris le port du serveur et l'état d'activité.
578
+
579
+ | Champ | Type | Description | Exemple | Note |
580
+ | ---------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
+ | `applicationURL` | `string` | L'URL de votre application. Par défaut : `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilisé pour restreindre l'origine de l'éditeur pour des raisons de sécurité. Si défini sur `'*'`, l'éditeur peut être accédé depuis n'importe quelle origine. |
582
+ | `port` | `number` | Port utilisé par le serveur de l'Éditeur Visuel. Par défaut : `8000` | | |
583
+ | `editorURL` | `string` | URL du serveur de l'éditeur. Par défaut : `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilisé pour restreindre les origines pouvant interagir avec l'application. Si défini sur `'*'`, accessible de n'importe quel origine. Doit être défini en cas de changement de port ou si l'éditeur est hébergé sur un domaine différent. |
584
+ | `cmsURL` | `string` | URL de l'Intlayer CMS. Par défaut : `'https://intlayer.org'` | `'https://intlayer.org'` | |
585
+ | `backendURL` | `string` | URL du serveur backend. Par défaut : `https://back.intlayer.org` | `http://localhost:4000` | |
586
+ | `enabled` | `boolean` | Indique si l'application interagira avec l'éditeur visuel. Par défaut : `true` | `process.env.NODE_ENV !== 'production'` | Si `false`, l'éditeur ne peut pas interagir avec l'application. Le désactiver pour des environnements spécifiques renforce la sécurité. |
587
+ | `clientId` | `string &#124; undefined` | Permet aux paquets intlayer de s'authentifier auprès du backend à l'aide d'oAuth2. Pour obtenir un jeton d'accès, rendez-vous sur [intlayer.org/project](https://app.intlayer.org/project). Par défaut : `undefined` | | Garder secret ; stocker dans les variables d'environnement. |
588
+ | `clientSecret` | `string &#124; undefined` | Permet aux paquets intlayer de s'authentifier auprès du backend à l'aide d'oAuth2. Pour obtenir un jeton d'accès, rendez-vous sur [intlayer.org/project](https://app.intlayer.org/project). Par défaut : `undefined` | | Garder secret ; stocker dans les variables d'environnement. |
589
+ | `dictionaryPriorityStrategy` | `string` | Stratégie de priorisation des dictionnaires lorsque des dictionnaires locaux et distants sont présents. Par défaut : `'local_first'` | `'distant_first'` | `'distant_first'`: donne la priorité au distant sur le local. `'local_first'`: donne la priorité au local sur le distant. |
590
+ | `liveSync` | `boolean` | Indique si le serveur de l'application doit recharger le contenu à chaud lorsqu'un changement est détecté sur le CMS / Éditeur Visuel / Backend. Par défaut : `true` | `true` | Lorsqu'un dictionnaire est ajouté/mis à jour, l'application met à jour le contenu de la page. La synchronisation en direct externalise le contenu vers un autre serveur, ce qui peut affecter légèrement les performances. Il est recommandé d'héberger les deux sur la même machine. |
591
+ | `liveSyncPort` | `number` | Port du serveur de synchronisation en direct. Par défaut : `4000` | `4000` | |
592
+ | `liveSyncURL` | `string` | URL du serveur de synchronisation en direct. Par défaut : `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Pointe vers localhost par défaut ; peut être changé pour un serveur de synchronisation en direct distant. |
593
+
594
+ ### Configuration du Routage (Routing Configuration)
595
+
596
+ Paramètres contrôlant le comportement du routage, y compris la structure des URL, le stockage des locales et la gestion du middleware.
597
+
598
+ | Champ | Type | Description | Exemple | Note |
599
+ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
600
+ | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | Mode de routage d'URL pour la gestion des locales. Par défaut : `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) ou `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: la locale est gérée par d'autres moyens. `'search-params'`: `/dashboard?locale=fr` | N'affecte pas la gestion des cookies ou du stockage des locales. |
601
+ | `storage` | `false &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; Array` | Configuration pour stocker la locale sur le client. Par défaut : `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Voir le tableau des Options de Stockage ci-dessous. |
602
+ | `basePath` | `string` | Chemin de base pour les URL de l'application. Par défaut : `''` | `'/my-app'` | Si l'application est sur `https://example.com/my-app`, basePath est `'/my-app'` et les URL deviennent `https://example.com/my-app/en`. |
603
+ | `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Règles de réécritures d'URL personnalisées qui surchargent le mode de routage par défaut pour des chemins spécifiques. Supporte les paramètres dynamiques `[param]`. Par défaut : `undefined` | Voir l'exemple ci-dessous | Les règles de réécriture ont la priorité sur le `mode`. Fonctionne avec Next.js et Vite. `getLocalizedUrl()` applique automatiquement les règles correspondantes. Voir [Réécritures d'URL Personnalisées](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/custom_url_rewrites.md). |
604
+
605
+ **Exemple de `rewrite`** :
606
+
607
+ ```typescript
608
+ routing: {
609
+ mode: "prefix-no-default", // Stratégie de repli
610
+ rewrite: nextjsRewrite({
611
+ "/about": {
612
+ en: "/about",
613
+ fr: "/a-propos",
614
+ },
615
+ "/product/[slug]": {
616
+ en: "/product/[slug]",
617
+ fr: "/produit/[slug]",
618
+ },
619
+ "/blog/[category]/[id]": {
620
+ en: "/blog/[category]/[id]",
621
+ fr: "/journal/[category]/[id]",
622
+ },
623
+ }),
624
+ }
625
+ ```
626
+
627
+ #### Options de Stockage (Storage Options)
628
+
629
+ | Valeur | Description | Note |
630
+ | ------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
631
+ | `'cookie'` | Stocke la locale dans les cookies — accessible par les côtés client et serveur. | Pour la conformité au RGPD, assurez-vous d'obtenir le consentement approprié de l'utilisateur. Personnalisable via `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
632
+ | `'localStorage'` | Stocke la locale dans le navigateur sans date d'expiration — côté client uniquement. | N'expire pas à moins d'être explicitement effacé. Le proxy Intlayer ne peut pas y accéder. Personnalisable via `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
633
+ | `'sessionStorage'` | Stocke la locale pendant la durée de la session de la page — côté client uniquement. | Effacé à la fermeture de l'onglet/fenêtre. Le proxy Intlayer ne peut pas y accéder. Personnalisable via `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
634
+ | `'header'` | Stocke ou transmet la locale via les en-têtes HTTP — côté serveur uniquement. | Utile pour les appels d'API. Le côté client ne peut pas y accéder. Personnalisable via `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
635
+
636
+ #### Attributs de Cookie (Cookie Attributes)
637
+
638
+ Lors du stockage par cookie, vous pouvez configurer des attributs supplémentaires :
639
+
640
+ | Champ | Type | Description |
641
+ | ---------- | ------------------------------------- | -------------------------------------------------------------- |
642
+ | `name` | `string` | Nom du cookie. Par défaut : `'INTLAYER_LOCALE'` |
643
+ | `domain` | `string` | Domaine du cookie. Par défaut : `undefined` |
644
+ | `path` | `string` | Chemin du cookie. Par défaut : `undefined` |
645
+ | `secure` | `boolean` | Nécessite HTTPS. Par défaut : `undefined` |
646
+ | `httpOnly` | `boolean` | Drapeau HTTP-only. Par défaut : `undefined` |
647
+ | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | Politique SameSite. |
648
+ | `expires` | `Date &#124; number` | Date d'expiration ou nombre de jours. Par défaut : `undefined` |
649
+
650
+ #### Attributs de Stockage de Locale (Locale Storage Attributes)
651
+
652
+ Lors de l'utilisation de localStorage ou sessionStorage :
653
+
654
+ | Champ | Type | Description |
655
+ | ------ | ---------------------------------------- | ----------------------------------------------------------- |
656
+ | `type` | `'localStorage' &#124; 'sessionStorage'` | Type de stockage. |
657
+ | `name` | `string` | Nom de la clé de stockage. Par défaut : `'INTLAYER_LOCALE'` |
790
658
 
791
659
  #### Exemples de Configuration
792
660
 
793
- Voici quelques exemples courants de configuration pour la nouvelle structure de routage v8 :
661
+ Voici quelques exemples courants de configuration pour la nouvelle structure de routage v7 :
794
662
 
795
- **Configuration de base (Par défaut)** :
663
+ **Configuration Basique (Par Défaut)** :
796
664
 
797
665
  ```typescript
798
666
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -812,7 +680,7 @@ const config: IntlayerConfig = {
812
680
  export default config;
813
681
  ```
814
682
 
815
- **Configuration conforme au RGPD** :
683
+ **Configuration Conforme au RGPD** :
816
684
 
817
685
  ```typescript
818
686
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -844,7 +712,7 @@ const config: IntlayerConfig = {
844
712
  export default config;
845
713
  ```
846
714
 
847
- **Mode Paramètres de Recherche** :
715
+ **Mode Paramètres de Recherche (Search Parameters Mode)** :
848
716
 
849
717
  ```typescript
850
718
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -864,7 +732,7 @@ const config: IntlayerConfig = {
864
732
  export default config;
865
733
  ```
866
734
 
867
- **Mode sans préfixe avec stockage personnalisé** :
735
+ **Mode Sans Préfixe avec Stockage Personnalisé**:
868
736
 
869
737
  ```typescript
870
738
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -887,7 +755,7 @@ const config: IntlayerConfig = {
887
755
  export default config;
888
756
  ```
889
757
 
890
- **Réécriture d'URL personnalisée avec routes dynamiques** :
758
+ **Réécriture d'URL Personnalisée avec Chemins Dynamiques**:
891
759
 
892
760
  ```typescript
893
761
  // intlayer.config.ts
@@ -899,7 +767,7 @@ const config: IntlayerConfig = {
899
767
  defaultLocale: "en",
900
768
  },
901
769
  routing: {
902
- mode: "prefix-no-default", // Stratégie de repli pour les chemins non réécrits
770
+ mode: "prefix-no-default", // Repli pour les chemins non réécrits
903
771
  storage: "cookie",
904
772
  rewrite: nextjsRewrite({
905
773
  "/about": {
@@ -923,381 +791,132 @@ export default config;
923
791
 
924
792
  ---
925
793
 
926
- ### Configuration du contenu
927
-
928
- Paramètres liés à la gestion du contenu au sein de l'application, incluant les noms de répertoires, les extensions de fichiers et les configurations dérivées.
929
-
930
- #### Propriétés
931
-
932
- - **autoFill** :
933
- - _Type_ : `boolean | string | FilePathPattern | { [key in Locales]?: string }`
934
- - _Défaut_ : `undefined`
935
- - _Description_ : Indique comment le contenu doit être automatiquement rempli à l'aide de l'IA. Peut être déclaré globalement dans le fichier `intlayer.config.ts`.
936
- - _Exemple_ : true
937
- - _Exemple_ : `'./{{fileName}}.content.json'`
938
- - _Exemple_ : `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
939
- - _Note_ : La configuration de remplissage automatique. Elle peut être :
940
- - boolean : Activer le remplissage automatique pour toutes les locales
941
- - string : Chemin vers un fichier unique ou un modèle avec variables
942
- - object : Chemins de fichiers par locale
943
-
944
- - **watch** :
945
- - _Type_ : `boolean`
946
- - _Défaut_ : `process.env.NODE_ENV === 'development'`
947
- - _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.
948
-
949
- - **fileExtensions** :
950
- - _Type_ : `string[]`
951
- - _Défaut_ : `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
952
- - _Description_ : Extensions de fichiers à rechercher lors de la construction des dictionnaires.
953
- - _Exemple_ : `['.data.ts', '.data.js', '.data.json']`
954
- - _Note_ : Personnaliser les extensions de fichiers peut aider à éviter les conflits.
955
-
956
- - **contentDir** :
957
- - _Type_ : `string[]`
958
- - _Défaut_ : `['.']`
959
- - _Exemple_ : `['src', '../../ui-library', require.resolve("@my-package/content")]`
960
- - _Description_ : Le chemin du répertoire où les fichiers de définition de contenu (`.content.*`) sont stockés.
961
- - _Note_ : Ceci est utilisé pour surveiller les fichiers de contenu afin de reconstruire les dictionnaires.
962
-
963
- - **codeDir** :
964
- - _Type_ : `string[]`
965
- - _Défaut_ : `['.']`
966
- - _Exemple_ : `['src', '../../ui-library']`
967
- - _Description_ : Le chemin du répertoire où le code est stocké, relatif au répertoire de base.
968
- - _Note_ : Ceci est utilisé pour surveiller les fichiers de code à transformer (élaguer, optimiser). Garder cela séparé de `contentDir` peut améliorer les performances de compilation en évitant les analyses inutiles des fichiers de contenu.
969
-
970
- - **excludedPath** :
971
- - _Type_ : `string[]`
972
- - _Défaut_ : `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
973
- - _Description_ : Répertoires exclus de la recherche de contenu.
974
- - _Note_ : Ce paramètre n'est pas encore utilisé, mais est prévu pour une future mise en œuvre.
975
-
976
- - **formatCommand** :
977
- - _Type_ : `string`
978
- - _Défaut_ : `undefined`
979
- - _Description_ : La commande pour formater le contenu. Lorsqu'Intlayer écrit vos fichiers .content localement, cette commande sera utilisée pour formater le contenu.
980
- - _Exemple_ : `'npx prettier --write "{{file}}" --log-level silent'` Utilisation de Prettier
981
- - _Exemple_ : `'npx biome format "{{file}}" --write --log-level none'` Utilisation de Biome
982
- - _Exemple_ : `'npx eslint --fix "{{file}}" --quiet'` Utilisation d'ESLint
983
- - _Note_ : Intlayer remplacera {{file}} par le chemin du fichier à formater.
984
- - _Note_ : Si non défini, Intlayer essaiera de détecter automatiquement la commande de formatage. En essayant de résoudre les commandes suivantes : prettier, biome, eslint.
794
+ ### Configuration du Contenu (Content Configuration)
795
+
796
+ Paramètres relatifs au traitement du contenu dans l'application (noms de répertoires, extensions de fichiers et configurations dérivées).
797
+
798
+ | Champ | Type | Description | Exemple | Note |
799
+ | ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
800
+ | `watch` | `boolean` | Indique si Intlayer doit surveiller les modifications des fichiers de déclaration de contenu pour reconstruire les dictionnaires. Par défaut : `process.env.NODE_ENV === 'development'` | | |
801
+ | `fileExtensions` | `string[]` | Extensions de fichiers utilisées pour scanner les fichiers de déclaration de contenu. Par défaut : `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
802
+ | `contentDir` | `string[]` | Chemins vers les répertoires où se trouvent les fichiers de déclaration de contenu. Par défaut : `['.']` | `['src/content']` | |
803
+ | `codeDir` | `string[]` | Chemins vers les répertoires se trouvent les fichiers du code source de votre application. Par défaut : `['.']` | `['src']` | Utilisé pour optimiser le build et garantir que la transformation de code et le rechargement à chaud ne s'appliquent qu'aux fichiers nécessaires. |
804
+ | `excludedPath` | `string[]` | Chemins exclus du scan de contenu. Par défaut : `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
805
+ | `formatCommand` | `string` | Commande qui sera exécutée pour formater les fichiers de contenu nouvellement créés ou mis à jour. Par défaut : `undefined` | `'npx prettier --write "{{file}}"'` | Utilisé lors de l'extraction de contenu ou via l'éditeur visuel. |
985
806
 
986
807
  ---
987
808
 
988
- ### Configuration système
989
-
990
- Paramètres liés aux chemins internes et aux résultats de sortie d'Intlayer. Ces paramètres sont généralement internes et ne devraient pas avoir besoin d'être modifiés par l'utilisateur.
991
-
992
- #### Propriétés
993
-
994
- - **baseDir** :
995
- - _Type_ : `string`
996
- - _Défaut_ : `process.cwd()`
997
- - _Description_ : Le répertoire de base pour le projet.
998
- - _Exemple_ : `'/path/to/project'`
999
- - _Note_ : Ceci est utilisé pour résoudre tous les répertoires liés à Intlayer.
1000
-
1001
- - **dictionariesDir** :
1002
- - _Type_ : `string`
1003
- - _Par défaut_ : `'.intlayer/dictionary'`
1004
- - _Description_ : Le chemin du répertoire pour stocker les dictionnaires de localisation.
1005
-
1006
- - **moduleAugmentationDir** :
1007
- - _Type_ : `string`
1008
- - _Par défaut_ : `'.intlayer/types'`
1009
- - _Description_ : Répertoire pour l'augmentation de module, permettant de meilleures suggestions IDE et vérifications de types.
1010
- - _Exemple_ : `'intlayer-types'`
1011
- - _Note_ : Veillez à inclure ce répertoire dans `tsconfig.json`.
1012
-
1013
- - **unmergedDictionariesDir** :
1014
- - _Type_ : `string`
1015
- - _Par défaut_ : `'.intlayer/unmerged_dictionary'`
1016
- - _Description_ : Le répertoire pour stocker les dictionnaires non fusionnés.
1017
-
1018
- - **typesDir** :
1019
- - _Type_ : `string`
1020
- - _Par défaut_ : `'.intlayer/types'`
1021
- - _Description_ : Le répertoire pour stocker les types de dictionnaires.
1022
-
1023
- - **mainDir** :
1024
- - _Type_ : `string`
1025
- - _Par défaut_ : `'.intlayer/main'`
1026
- - _Description_ : Le répertoire sont stockés les fichiers principaux de l'application.
1027
-
1028
- - **configDir** :
1029
- - _Type_ : `string`
1030
- - _Par défaut_ : `'.intlayer/config'`
1031
- - _Description_ : Le répertoire sont stockés les fichiers de configuration.
1032
-
1033
- - **cacheDir** :
1034
- - _Type_ : `string`
1035
- - _Par défaut_ : `'.intlayer/cache'`
1036
- - _Description_ : Le répertoire où sont stockés les fichiers de cache.
1037
-
1038
- ### Configuration du dictionnaire
1039
-
1040
- Paramètres qui contrôlent les opérations du dictionnaire, y compris le comportement de remplissage automatique et la génération de contenu.
1041
-
1042
- Cette configuration de dictionnaire sert à deux fins principales :
1043
-
1044
- 1. **Valeurs par défaut** : Définir les valeurs par défaut lors de la création de fichiers de déclaration de contenu
1045
- 2. **Comportement de repli** : Fournir des valeurs de repli lorsque des champs spécifiques ne sont pas définis, vous permettant de définir le comportement des opérations du dictionnaire globalement
1046
-
1047
- Pour plus d'informations sur les fichiers de déclaration de contenu et la façon dont les valeurs de configuration sont appliquées, consultez la [Documentation du fichier de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md).
1048
-
1049
- #### Propriétés
1050
-
1051
- - **fill**
1052
- - **description**
1053
- - **locale**
1054
- - **location**
1055
- - **importMode**:
1056
- - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
1057
- - _Type_: `'static' | 'dynamic' | 'fetch'`
1058
- - _Par défaut_: `'static'`
1059
- - _Description_: Controls how dictionaries are imported.
1060
- - _Exemple_: `'dynamic'`
1061
- - **priority**
1062
- - **live**
1063
- - **schema**
1064
- - **title**
1065
- - **tags**
1066
- - **version**
809
+ ### Configuration du Dictionnaire (Dictionary Configuration)
810
+
811
+ Paramètres contrôlant les opérations de dictionnaire, y compris le comportement de remplissage automatique et la génération de contenu.
812
+
813
+ Cette configuration de dictionnaire sert deux objectifs principaux :
814
+
815
+ 1. **Valeurs par Défaut** : Définir des valeurs par défaut lors de la création de fichiers de déclaration de contenu.
816
+ 2. **Comportement de Repli** : Fournir des valeurs de repli lorsque des champs spécifiques ne sont pas définis, vous permettant de définir globalement le comportement des opérations de dictionnaire.
817
+
818
+ Pour plus d'informations sur les fichiers de déclaration de contenu et sur la manière dont les valeurs de configuration sont appliquées, consultez la [Documentation des fichiers de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md).
819
+
820
+ | Champ | Type | Description | Exemple | Note |
821
+ | --------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
822
+ | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | Contrôle la manière dont les fichiers de sortie de remplissage automatique (traduction par IA) sont générés. Par défaut : `true` | Voir l'exemple ci-dessous | `true`: chemin par défaut (même fichier que la source). `false`: désactiver. Un modèle de chaîne/fonction génère des fichiers par locale. Objet par locale : chaque locale correspond à son propre modèle ; `false` ignore cette locale. L'inclusion de `{{locale}}` déclenche la génération par locale. Le `fill` au niveau du dictionnaire a toujours la priorité sur cette configuration globale. |
823
+ | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | Contrôle la manière dont les dictionnaires sont importés. Par défaut : `'static'` | `'dynamic'` | `'static'`: importé statiquement. `'dynamic'`: importé dynamiquement via Suspense. `'fetch'`: récupéré dynamiquement via l'API live sync. N'affecte pas `getIntlayer`, `getDictionary`, `useDictionary`, etc. |
824
+ | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | Où sont stockés les dictionnaires. Par défaut : `'local'` | `'remote'` | `'local'`: système de fichiers. `'remote'`: Intlayer CMS. `'hybrid'`: les deux. |
825
+ | `contentAutoTransformation` | `boolean` | Indique si les fichiers de contenu doivent être automatiquement transformés (ex: de Markdown à HTML). Par défaut : `false` | `true` | Utile pour traiter les champs Markdown via @intlayer/markdown. |
826
+
827
+ **Exemple de `fill`** :
828
+
829
+ ```ts
830
+ dictionary: {
831
+ fill: {
832
+ en: '/locales/en/{{key}}.content.json',
833
+ fr: ({ key }) => `/locales/fr/${key}.content.json`,
834
+ es: false,
835
+ }
836
+ }
837
+ ```
838
+
839
+ ---
840
+
841
+ ### Configuration AI (AI Configuration)
842
+
843
+ Définit les paramètres pour les fonctionnalités basées sur l'IA d'Intlayer, telles que la construction de traductions.
844
+
845
+ | Champ | Type | Description | Exemple | Note |
846
+ | -------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
847
+ | `provider` | `string` | Fournisseur d'IA à utiliser. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
848
+ | `model` | `string` | Modèle d'IA à utiliser. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
849
+ | `apiKey` | `string` | Clé API pour le fournisseur sélectionné. | `process.env.OPENAI_API_KEY` | |
850
+ | `applicationContext` | `string` | Contexte supplémentaire sur votre application pour améliorer la précision de la traduction par l'IA. | `'Une plateforme d'apprentissage pour les enfants.'` | |
851
+ | `baseURL` | `string` | URL de base optionnelle pour les appels d'API. | | Utile si vous utilisez un proxy ou un déploiement d'IA local. |
852
+ | `dataSerialization` | `'json' &#124; 'toon'` | Définit comment les données sont envoyées à l'IA. Par défaut : `'json'` | `'json'` | `'json'`: plus robuste et précis. `'toon'`: consomme moins de tokens mais peut être moins stable. |
853
+
854
+ ---
855
+
856
+ ### Configuration de Build (Build Configuration)
857
+
858
+ Paramètres pour le processus de build et d'optimisation d'Intlayer.
859
+
860
+ | Champ | Type | Description | Exemple | Note |
861
+ | -------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- | ---- |
862
+ | `mode` | `'auto' &#124; 'manual'` | Indique si Intlayer doit s'exécuter automatiquement pendant les étapes de pré-build de l'application. Par défaut : `'auto'` | | |
863
+ | `optimize` | `boolean` | Indique si les dictionnaires compilés doivent être optimisés pour l'exécution. Par défaut : `true` en production | | |
864
+ | `outputFormat` | `('cjs' &#124; 'esm')[]` | Format de sortie pour les fichiers de dictionnaire générés. Par défaut : `['cjs', 'esm']` | | |
865
+ | `checkTypes` | `boolean` | Indique si Intlayer doit vérifier les types dans les fichiers générés. Par défaut : `false` | | |
1067
866
 
1068
867
  ---
1069
868
 
1070
- ### Configuration du Logger
1071
-
1072
- Paramètres qui contrôlent le logger, y compris le préfixe à utiliser.
1073
-
1074
- #### Propriétés
1075
-
1076
- - **mode** :
1077
- - _Type_ : `string`
1078
- - _Default_ : `default`
1079
- - _Description_ : Indique le mode du logger.
1080
- - _Options_ : `default`, `verbose`, `disabled`
1081
- - _Example_ : `default`
1082
- - _Note_ : Le mode du logger. Le mode verbose enregistrera plus d'informations, mais peut être utilisé à des fins de débogage. Le mode disabled désactivera le logger.
1083
-
1084
- - **prefix** :
1085
- - _Type_ : `string`
1086
- - _Default_ : `'[intlayer] '`
1087
- - _Description_ : Le préfixe du logger.
1088
- - _Example_ : `'[my custom prefix] '`
1089
- - _Note_: Le préfixe du logger.
1090
-
1091
- ### Configuration de l'IA
1092
-
1093
- Paramètres qui contrôlent les fonctionnalités d'IA d'Intlayer, y compris le fournisseur, le modèle et la clé API.
1094
-
1095
- Cette configuration est optionnelle si vous êtes inscrit sur le [Tableau de bord Intlayer](https://app.intlayer.org/project) en utilisant une clé d'accès. Intlayer gérera automatiquement la solution d'IA la plus efficace et la plus rentable pour vos besoins. Utiliser les options par défaut garantit une meilleure maintenabilité à long terme, car Intlayer met continuellement à jour pour utiliser les modèles les plus pertinents.
1096
-
1097
- Si vous préférez utiliser votre propre clé API ou un modèle spécifique, vous pouvez définir votre configuration IA personnalisée.
1098
- Cette configuration IA sera utilisée globalement dans votre environnement Intlayer. Les commandes CLI utiliseront ces paramètres 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 des paramètres de commande.
1099
-
1100
- Intlayer prend en charge plusieurs fournisseurs d'IA pour une flexibilité et un choix accrus. Les fournisseurs actuellement pris en charge sont :
1101
-
1102
- - **OpenAI** (par défaut)
1103
- - **Anthropic Claude**
1104
- - **Mistral AI**
1105
- - **DeepSeek**
1106
- - **Google Gemini**
1107
- - **Meta Llama**
1108
- - **Ollama**
1109
- - **OpenRouter**
1110
- - **Alibaba Cloud**
1111
- - **Fireworks**
1112
- - **Hugging Face**
1113
- - **Groq**
1114
- - **Amazon Bedrock**
1115
- - **Google AI Studio**
1116
- - **Google Vertex**
1117
- - **Together.ai**
1118
- - **ollama**
1119
-
1120
- #### Propriétés
1121
-
1122
- - **provider** :
1123
- - _Type_ : `string`
1124
- - _Par défaut_ : `'openai'`
1125
- - _Description_ : Le fournisseur à utiliser pour les fonctionnalités IA d'Intlayer.
1126
- - _Options_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
1127
- - _Exemple_ : `'anthropic'`
1128
- - _Note_: Différents fournisseurs peuvent nécessiter des clés API différentes et avoir des modèles de tarification différents.
1129
-
1130
- - **model** :
1131
- - _Type_ : `string`
1132
- - _Par défaut_ : Aucun
1133
- - _Description_ : Le modèle à utiliser pour les fonctionnalités d'IA d'Intlayer.
1134
- - _Exemple_ : `'gpt-4o-2024-11-20'`
1135
- - _Note_ : Le modèle spécifique à utiliser varie selon le fournisseur.
1136
-
1137
- - **temperature** :
1138
- - _Type_ : `number`
1139
- - _Par défaut_ : Aucun
1140
- - _Description_ : La température contrôle l'aléatoire des réponses de l'IA.
1141
- - _Exemple_ : `0.1`
1142
- - _Note_ : Une température plus élevée rendra l'IA plus créative et moins prévisible.
1143
-
1144
- - **apiKey** :
1145
- - _Type_ : `string`
1146
- - _Par défaut_ : Aucun
1147
- - _Description_ : Votre clé API pour le fournisseur sélectionné.
1148
- - _Exemple_ : `process.env.OPENAI_API_KEY`
1149
- - _Note_ : Important : Les clés API doivent être gardées secrètes et ne doivent pas être partagées publiquement. Veuillez vous assurer de les conserver dans un endroit sécurisé, comme des variables d'environnement.
1150
-
1151
- - **applicationContext** :
1152
- - _Type_ : `string`
1153
- - _Par défaut_ : Aucun
1154
- - _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 contextuellement appropriées. Cela peut inclure des informations sur le domaine de votre application, le public cible, le ton ou une terminologie spécifique.
1155
- - _Note_: Vous pouvez l'utiliser pour ajouter plus de règles au modèle d'IA (par exemple "Vous ne devez pas transformer les urls").
1156
- - _Exemple_ : `'Mon contexte d'application'`
1157
-
1158
- - **baseURL** :
1159
- - _Type_ : `string`
1160
- - _Par défaut_ : Aucun
1161
- - _Description_ : L'URL de base pour l'API d'IA.
1162
- - _Exemple_ : `'https://api.openai.com/v1'`
1163
- - _Exemple_ : `'http://localhost:5000'`
1164
- - _Note_ : Peut être utilisé pour pointer vers un point de terminaison d'API d'IA local ou personnalisé.
1165
-
1166
- - **dataSerialization**:
1167
- - _Type_: `'json' | 'toon'`
1168
- - _Par défaut_: `'json'`
1169
- - _Description_: Le format de sérialisation des données à utiliser pour les fonctionnalités d'IA d'Intlayer.
1170
- - _Exemple_: `'toon'`
1171
- - _Note_: `json`: Standard, fiable ; utilise plus de tokens. `toon`: Moins de tokens, moins cohérent que le JSON.
1172
- > Si vous fournissez des paramètres supplémentaires, Intlayer les transmettra au modèle d'IA en tant que contexte. Cela peut être utilisé pour personnaliser l'effort de raisonnement, la verbosité du texte, etc.
1173
-
1174
- ### Configuration du Build
1175
-
1176
- Paramètres qui contrôlent la manière dont Intlayer optimise et construit l'internationalisation de votre application.
1177
-
1178
- Les options de build s'appliquent aux plugins `@intlayer/babel` et `@intlayer/swc`.
1179
-
1180
- > En mode développement, Intlayer utilise des imports statiques pour les dictionnaires afin de simplifier l'expérience de développement.
1181
-
1182
- > Lorsqu'il est optimisé, Intlayer remplacera les appels aux dictionnaires pour optimiser le découpage, de sorte que le bundle final importe uniquement les dictionnaires réellement utilisés.
1183
-
1184
- #### Propriétés
1185
-
1186
- - **mode** :
1187
- - _Type_ : `'auto' | 'manual'`
1188
- - _Par défaut_ : `'auto'`
1189
- - _Description_ : Contrôle le mode du build.
1190
- - _Exemple_ : `'manual'`
1191
- - _Note_ : Si 'auto', le build sera activé automatiquement lors de la construction de l'application.
1192
- - _Note_ : Si 'manual', le build ne sera activé que lorsque la commande de build est exécutée.
1193
- - _Note_ : Peut être utilisé pour désactiver la construction des dictionnaires, par exemple lorsque l'exécution dans un environnement Node.js doit être évitée.
1194
-
1195
- - **optimize** :
1196
- - _Type_ : `boolean`
1197
- - _Par défaut_ : `undefined`
1198
- - _Description_ : Contrôle si le build doit être optimisé.
1199
- - _Exemple_ : `process.env.NODE_ENV === 'production'`
1200
- - _Note_ : Par défaut, l'optimisation du build n'est pas fixée. Si elle n'est pas définie, Intlayer déclenchera l'optimisation du build lors de la construction de votre application (vite / nextjs / etc). La définir sur `true` forcera l'optimisation du build, y compris en mode développement. La définir sur `false` désactivera l'optimisation du build.
1201
- - _Note_ : Lorsqu'activé, Intlayer remplacera tous les appels aux dictionnaires pour optimiser le découpage. Ainsi, le bundle final n'importera que les dictionnaires utilisés. Tous les imports resteront des imports statiques pour éviter un traitement asynchrone lors du chargement des dictionnaires.
1202
- - _Note_ : Intlayer remplacera tous les appels de `useIntlayer` par le mode défini via l'option `importMode` et `getIntlayer` par `getDictionary`.
1203
- - _Note_ : Cette option repose sur les plugins `@intlayer/babel` et `@intlayer/swc`.
1204
- - _Note_ : Assurez-vous que toutes les clés sont déclarées statiquement dans les appels `useIntlayer`. Par exemple `useIntlayer('navbar')`.
1205
-
1206
- - **checkTypes** :
1207
- - _Type_ : `boolean`
1208
- - _Par défaut_ : `false`
1209
- - _Description_ : Indique si le build doit vérifier les types TypeScript et consigner les erreurs.
1210
- - _Note_ : Cela peut ralentir le build.
1211
-
1212
- - **outputFormat** :
1213
- - _Type_ : `('esm' | 'cjs')[]`
1214
- - _Par défaut_ : `['cjs', 'esm']`
1215
- - _Description_ : Contrôle le format de sortie des dictionnaires.
1216
- - _Exemple_ : `'cjs'`
1217
- - _Note_ : Le format de sortie des dictionnaires.
1218
-
1219
- - **traversePattern** :
1220
- - _Type_ : `string[]`
1221
- - _Par défaut_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1222
- - _Description_ : Modèles qui définissent quels fichiers doivent être parcourus lors de l'optimisation.
1223
- - _Exemple_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1224
- - _Note_ : Utilisez ceci pour limiter l'optimisation aux fichiers de code pertinents et améliorer les performances de construction.
1225
- - _Note_ : Cette option sera ignorée si `optimize` est désactivé.
1226
- - _Note_ : Utilisez un motif glob.
869
+ ### Configuration Système (System Configuration)
870
+
871
+ Ces paramètres sont destinés aux cas d'utilisation avancés et à la configuration interne d'Intlayer.
872
+
873
+ | Champ | Type | Description | Par défaut |
874
+ | ------------------------- | -------- | -------------------------------------------------- | --------------------------------- |
875
+ | `dictionariesDir` | `string` | Répertoire des dictionnaires compilés. | `'.intlayer/dictionary'` |
876
+ | `moduleAugmentationDir` | `string` | Répertoire d'augmentation de modules TypeScript. | `'.intlayer/types'` |
877
+ | `unmergedDictionariesDir` | `string` | Répertoire des dictionnaires non fusionnés. | `'.intlayer/unmerged_dictionary'` |
878
+ | `typesDir` | `string` | Répertoire des types générés. | `'.intlayer/types'` |
879
+ | `mainDir` | `string` | Répertoire du fichier principal d'Intlayer. | `'.intlayer/main'` |
880
+ | `configDir` | `string` | Répertoire des fichiers de configuration compilés. | `'.intlayer/config'` |
881
+ | `cacheDir` | `string` | Répertoire des fichiers de cache. | `'.intlayer/cache'` |
1227
882
 
1228
883
  ---
1229
884
 
1230
- ### Configuration du compilateur
1231
-
1232
- Paramètres qui contrôlent le compilateur Intlayer, qui extrait les dictionnaires directement de vos composants.
1233
-
1234
- #### Propriétés
1235
-
1236
- - **enabled** :
1237
- - _Type_ : `boolean | 'build-only'`
1238
- - _Par défaut_ : `true`
1239
- - _Description_ : Indique si le compilateur doit être activé pour extraire les dictionnaires.
1240
- - _Exemple_ : `'build-only'`
1241
- - _Note_ : Le régler sur `'build-only'` ignorera le compilateur en mode développement pour accélérer les temps de démarrage. Il ne s'exécutera que sur les commandes de build.
1242
-
1243
- - **dictionaryKeyPrefix** :
1244
- - _Type_ : `string`
1245
- - _Par défaut_ : `''`
1246
- - _Description_ : Préfixe pour les clés de dictionnaire extraites.
1247
- - _Exemple_ : `'my-key-'`
1248
- - _Note_ : Lorsque les dictionnaires sont extraits, la clé est générée à partir du nom du fichier. Ce préfixe est ajouté à la clé générée pour éviter les conflits.
1249
-
1250
- - **saveComponents** :
1251
- - _Type_ : `boolean`
1252
- - _Par défaut_ : `false`
1253
- - _Description_ : Indique si les composants doivent être sauvegardés après avoir été transformés.
1254
- - _Note_ : Si vrai, le compilateur remplacera les fichiers originaux par les fichiers transformés. De cette façon, le compilateur ne peut être exécuté qu'une seule fois pour transformer l'application, puis il peut être supprimé.
1255
-
1256
- - **transformPattern** :
1257
- - _Type_ : `string | string[]`
1258
- - _Par défaut_ : `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
1259
- - _Description_ : Modèles qui définissent quels fichiers doivent être parcourus lors de l'optimisation.
1260
- - _Exemple_ : `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
1261
- - _Note_ : Utilisez ceci pour limiter l'optimisation aux fichiers de code pertinents et améliorer les performances de build.
1262
-
1263
- - **excludePattern** :
1264
- - _Type_ : `string | string[]`
1265
- - _Par défaut_ : `['**/node_modules/**']`
1266
- - _Description_ : Modèles qui définissent quels fichiers doivent être exclus lors de l'optimisation.
1267
- - _Exemple_ : `['**/node_modules/**', '!**/node_modules/react/**']`
1268
-
1269
- - **output**:
1270
- - _Type_: `FilePathPattern`
1271
- - _Par défaut_: `undefined`
1272
- - _Description_: Définit le chemin des fichiers de sortie. Remplace `outputDir`. Gère les variables dynamiques via des chaînes de modèles ou une fonction. Variables prises en charge : `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, et `{{componentDirPath}}`.
1273
- - _Note_: Les chemins `./` sont résolus par rapport au répertoire du composant. Les chemins `/` sont résolus par rapport à la racine du projet (`baseDir`).
1274
- - _Note_: L'inclusion de la variable `{{locale}}` dans le chemin déclenchera la génération de dictionnaires séparés par locale.
1275
- - _Exemple_:
1276
- - **Fichiers multilingues près du composant** :
1277
- - Chaîne : `'./{{fileName}}{{extension}}'`
1278
- - Fonction : `({ fileName, extension }) => \`./${fileName}${extension}\``
1279
-
1280
- - **JSON centralisé par locale** :
1281
- - Chaîne : `'/locales/{{locale}}/{{key}}.content.json'`
1282
- - Fonction : `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
1283
-
1284
- - **noMetadata**:
1285
- - _Type_: `boolean`
1286
- - _Par défaut_: `false`
1287
- - _Description_: Indique si les métadonnées doivent être enregistrées dans le fichier. Si vrai, le compilateur n'enregistrera pas les métadonnées des dictionnaires (clé, enveloppe de contenu). Utile pour les sorties JSON i18next ou ICU MessageFormat par locale.
1288
- - _Note_: Utile si utilisé avec le plugin `loadJSON`.
1289
- - _Exemple_: Si `true` :
1290
- ```json
1291
- {
1292
- "key": "value"
1293
- }
1294
- ```
1295
- Si `false` :
1296
- ```json
1297
- {
1298
- "key": "value",
1299
- "content": {
1300
- "key": "value"
1301
- }
1302
- }
1303
- ```
885
+ ### Configuration du Compilateur (Compiler Configuration)
886
+
887
+ Paramètres pour le compilateur Intlayer (`intlayer compiler`).
888
+
889
+ | Champ | Type | Description | Par défaut |
890
+ | --------------------- | ------------------------ | ----------------------------------------------------------------------------------------------- | ---------- |
891
+ | `enabled` | `boolean` | Indique si le compilateur est actif. | `false` |
892
+ | `output` | `string &#124; Function` | Chemin de sortie pour les dictionnaires extraits. | |
893
+ | `saveComponents` | `boolean` | Indique si les fichiers sources originaux doivent être remplacés par les versions transformées. | `false` |
894
+ | `noMetadata` | `boolean` | Si `true`, le compilateur n'inclura pas de métadonnées dans les fichiers générés. | `false` |
895
+ | `dictionaryKeyPrefix` | `string` | Préfixe de clé de dictionnaire optionnel. | `''` |
896
+
897
+ ---
898
+
899
+ ### Configuration du Logger (Logger Configuration)
900
+
901
+ Paramètres pour personnaliser la sortie des logs d'Intlayer.
902
+
903
+ | Champ | Type | Description | Par défaut |
904
+ | -------- | ---------------------------------------------- | --------------------------------- | -------------- |
905
+ | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Mode de logging. | `'default'` |
906
+ | `prefix` | `string` | Préfixe pour les messages de log. | `'[intlayer]'` |
907
+
908
+ ---
909
+
910
+ ### Schémas Personnalisés (Custom Schemas)
911
+
912
+ | Champ | Type | Description |
913
+ | --------- | --------------------------- | --------------------------------------------------------------------------------- |
914
+ | `schemas` | `Record<string, ZodSchema>` | Permet de définir des schémas Zod pour valider la structure de vos dictionnaires. |
915
+
916
+ ---
917
+
918
+ ### Plugins
919
+
920
+ | Champ | Type | Description |
921
+ | --------- | ------------------ | ------------------------------------- |
922
+ | `plugins` | `IntlayerPlugin[]` | Liste des plugins Intlayer à activer. |