@intlayer/docs 8.3.0-canary.4 → 8.3.1
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.
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
package/docs/fr/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
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:
|
|
@@ -15,23 +15,32 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Déplacer 'baseDir' de la configuration 'content' vers la configuration 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
|
-
date: 2026-03-
|
|
22
|
-
changes: Mise à jour des options du compilateur, ajout du support de
|
|
21
|
+
date: 2026-03-09
|
|
22
|
+
changes: Mise à jour des options du compilateur, ajout du support de 'output' et 'noMetadata'
|
|
23
23
|
- version: 8.1.7
|
|
24
24
|
date: 2026-02-25
|
|
25
25
|
changes: Mise à jour des options du compilateur
|
|
26
|
+
- version: 8.1.5
|
|
27
|
+
date: 2026-02-23
|
|
28
|
+
changes: Ajout de l'option de compilateur 'build-only' et du préfixe de dictionnaire
|
|
26
29
|
- version: 8.0.6
|
|
27
30
|
date: 2026-02-12
|
|
28
31
|
changes: Ajout du support pour les fournisseurs Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face et Together.ai
|
|
29
32
|
- version: 8.0.5
|
|
30
33
|
date: 2026-02-06
|
|
31
34
|
changes: Ajout de `dataSerialization` à la configuration de l'IA
|
|
35
|
+
- version: 8.0.0
|
|
36
|
+
date: 2026-01-24
|
|
37
|
+
changes: Renommer le mode d'importation `live` en `fetch` pour mieux décrire le mécanisme sous-jacent.
|
|
38
|
+
- version: 8.0.0
|
|
39
|
+
date: 2026-01-22
|
|
40
|
+
changes: Déplacer la configuration de build pour `importMode` vers la configuration du dictionnaire.
|
|
32
41
|
- version: 8.0.0
|
|
33
42
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
43
|
+
changes: Ajout de l'option `rewrite` à la configuration du routage
|
|
35
44
|
- version: 8.0.0
|
|
36
45
|
date: 2026-01-18
|
|
37
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.
|
|
@@ -44,9 +53,24 @@ history:
|
|
|
44
53
|
- version: 7.5.0
|
|
45
54
|
date: 2025-12-17
|
|
46
55
|
changes: Ajout de l'option `buildMode`
|
|
56
|
+
- version: 7.0.0
|
|
57
|
+
date: 2025-10-25
|
|
58
|
+
changes: Ajout de la configuration `dictionary`
|
|
59
|
+
- version: 7.0.0
|
|
60
|
+
date: 2025-10-21
|
|
61
|
+
changes: Remplacement du `middleware` par la configuration de `routing`
|
|
62
|
+
- version: 7.0.0
|
|
63
|
+
date: 2025-10-12
|
|
64
|
+
changes: Ajout de l'option `formatCommand`
|
|
65
|
+
- version: 6.2.0
|
|
66
|
+
date: 2025-10-12
|
|
67
|
+
changes: Mise à jour de l'option `excludedPath`
|
|
68
|
+
- version: 6.0.2
|
|
69
|
+
date: 2025-09-23
|
|
70
|
+
changes: Ajout de l'option `outputFormat`
|
|
47
71
|
- version: 6.0.0
|
|
48
|
-
date: 2025-09-
|
|
49
|
-
changes:
|
|
72
|
+
date: 2025-09-21
|
|
73
|
+
changes: Suppression du champ `dictionaryOutput` et du champ `i18nextResourcesDir`
|
|
50
74
|
- version: 6.0.0
|
|
51
75
|
date: 2025-09-16
|
|
52
76
|
changes: Ajout du mode d'importation `live`
|
|
@@ -95,7 +119,7 @@ Intlayer accepte les formats de fichiers de configuration JSON, JS, MJS et TS :
|
|
|
95
119
|
|
|
96
120
|
## Exemple de fichier de configuration
|
|
97
121
|
|
|
98
|
-
|
|
122
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
99
123
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
100
124
|
import { nextjsRewrite } from "intlayer/routing";
|
|
101
125
|
import { z } from "zod";
|
|
@@ -193,7 +217,7 @@ const config: IntlayerConfig = {
|
|
|
193
217
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
194
218
|
* Default: ['cookie', 'header']
|
|
195
219
|
*/
|
|
196
|
-
storage: "cookie",
|
|
220
|
+
storage: ["cookie", "header"],
|
|
197
221
|
|
|
198
222
|
/**
|
|
199
223
|
* Base path for the application URLs.
|
|
@@ -324,12 +348,24 @@ const config: IntlayerConfig = {
|
|
|
324
348
|
/**
|
|
325
349
|
* Global context to guide the AI in generating translations.
|
|
326
350
|
*/
|
|
327
|
-
applicationContext:
|
|
351
|
+
applicationContext:
|
|
352
|
+
"Cette application est un système de réservation de voyages.",
|
|
328
353
|
|
|
329
354
|
/**
|
|
330
355
|
* Base URL for the AI API.
|
|
331
356
|
*/
|
|
332
357
|
baseURL: "http://localhost:3000",
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Sérialisation des données
|
|
361
|
+
*
|
|
362
|
+
* Options :
|
|
363
|
+
* - "json" : Standard, fiable ; utilise plus de jetons.
|
|
364
|
+
* - "toon" : Moins de jetons, moins cohérent que le JSON.
|
|
365
|
+
*
|
|
366
|
+
* Par défaut : "json"
|
|
367
|
+
*/
|
|
368
|
+
dataSerialization: "json",
|
|
333
369
|
},
|
|
334
370
|
|
|
335
371
|
/**
|
|
@@ -352,9 +388,9 @@ const config: IntlayerConfig = {
|
|
|
352
388
|
|
|
353
389
|
/**
|
|
354
390
|
* Output format for generated dictionary files.
|
|
355
|
-
* Default: ['
|
|
391
|
+
* Default: ['cjs', 'esm']
|
|
356
392
|
*/
|
|
357
|
-
outputFormat: ["esm"],
|
|
393
|
+
outputFormat: ["cjs", "esm"],
|
|
358
394
|
|
|
359
395
|
/**
|
|
360
396
|
* Indicates if the build should check TypeScript types.
|
|
@@ -428,43 +464,71 @@ const config: IntlayerConfig = {
|
|
|
428
464
|
*/
|
|
429
465
|
compiler: {
|
|
430
466
|
/**
|
|
431
|
-
*
|
|
467
|
+
* Indique si le compilateur doit être activé.
|
|
468
|
+
*
|
|
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.
|
|
472
|
+
*
|
|
473
|
+
* Par défaut : false
|
|
432
474
|
*/
|
|
433
475
|
enabled: true,
|
|
434
476
|
|
|
435
477
|
/**
|
|
436
|
-
*
|
|
478
|
+
* Définit le chemin des fichiers de sortie. Remplace `outputDir`.
|
|
479
|
+
*
|
|
480
|
+
* - Les chemins `./` sont résolus par rapport au répertoire du composant.
|
|
481
|
+
* - Les chemins `/` sont résolus par rapport à la racine du projet (`baseDir`).
|
|
482
|
+
*
|
|
483
|
+
* - L'inclusion de la variable `{{locale}}` dans le chemin déclenchera la génération de dictionnaires séparés par locale.
|
|
484
|
+
*
|
|
485
|
+
* Exemple :
|
|
486
|
+
* ```ts
|
|
487
|
+
* {
|
|
488
|
+
* // Créer des fichiers .content.ts multilingues proches du composant
|
|
489
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
490
|
+
*
|
|
491
|
+
* // output: './{{fileName}}{{extension}}', // Équivalent utilisant une chaîne de caractères
|
|
492
|
+
* }
|
|
493
|
+
* ```
|
|
494
|
+
*
|
|
495
|
+
* ```ts
|
|
496
|
+
* {
|
|
497
|
+
* // Créer des JSON centralisés par locale à la racine du projet
|
|
498
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
499
|
+
*
|
|
500
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Équivalent utilisant une chaîne de caractères
|
|
501
|
+
* }
|
|
502
|
+
* ```
|
|
503
|
+
*
|
|
504
|
+
* 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.
|
|
437
514
|
*/
|
|
438
|
-
|
|
439
|
-
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
440
|
-
"!**/node_modules/**",
|
|
441
|
-
],
|
|
442
|
-
|
|
443
|
-
/**
|
|
444
|
-
* Modèle à exclure de l'optimisation.
|
|
445
|
-
*/
|
|
446
|
-
excludePattern: ["**/node_modules/**"],
|
|
515
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
447
516
|
|
|
448
517
|
/**
|
|
449
|
-
*
|
|
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é.
|
|
450
520
|
*/
|
|
451
|
-
|
|
521
|
+
saveComponents: false,
|
|
452
522
|
|
|
453
523
|
/**
|
|
454
|
-
* Insérer uniquement le contenu dans le fichier génér
|
|
524
|
+
* Insérer uniquement le contenu dans le fichier généré. Utile pour les sorties JSON i18next ou ICU MessageFormat par locale.
|
|
455
525
|
*/
|
|
456
526
|
noMetadata: false,
|
|
457
527
|
|
|
458
528
|
/**
|
|
459
529
|
* Préfixe de clé de dictionnaire
|
|
460
530
|
*/
|
|
461
|
-
dictionaryKeyPrefix: "", //
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Indique si les composants doivent être sauvegardés après avoir été transformés.
|
|
465
|
-
* De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
466
|
-
*/
|
|
467
|
-
saveComponents: false,
|
|
531
|
+
dictionaryKeyPrefix: "", // Ajouter un préfixe optionnel pour les clés de dictionnaire extraites
|
|
468
532
|
},
|
|
469
533
|
|
|
470
534
|
/**
|
|
@@ -483,7 +547,7 @@ const config: IntlayerConfig = {
|
|
|
483
547
|
};
|
|
484
548
|
|
|
485
549
|
export default config;
|
|
486
|
-
|
|
550
|
+
````
|
|
487
551
|
|
|
488
552
|
## Référence de configuration
|
|
489
553
|
|
|
@@ -619,95 +683,243 @@ Définit les paramètres liés à l'éditeur intégré, y compris le port du ser
|
|
|
619
683
|
- _Exemple_ : `'https://example.com'`
|
|
620
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.
|
|
621
685
|
|
|
622
|
-
### Configuration du
|
|
686
|
+
### Configuration du routage
|
|
623
687
|
|
|
624
|
-
Paramètres qui contrôlent le comportement du
|
|
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.
|
|
625
689
|
|
|
626
690
|
#### Propriétés
|
|
627
691
|
|
|
628
|
-
- **
|
|
629
|
-
- _Type_
|
|
630
|
-
- _Par défaut_
|
|
631
|
-
- _Description_
|
|
632
|
-
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
-
|
|
636
|
-
|
|
637
|
-
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
-
|
|
641
|
-
|
|
642
|
-
-
|
|
643
|
-
|
|
644
|
-
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
-
|
|
656
|
-
|
|
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_:
|
|
657
737
|
- Si l'application est hébergée à `https://example.com/my-app`
|
|
658
738
|
- Le chemin de base est `'/my-app'`
|
|
659
739
|
- L'URL sera `https://example.com/my-app/en`
|
|
660
740
|
- Si le chemin de base n'est pas défini, l'URL sera `https://example.com/en`
|
|
661
741
|
|
|
662
|
-
- **rewrite
|
|
663
|
-
- _Type_
|
|
664
|
-
- _Par défaut_
|
|
665
|
-
- _Description_
|
|
666
|
-
- _Exemple_
|
|
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_:
|
|
667
747
|
```typescript
|
|
668
748
|
routing: {
|
|
669
749
|
mode: "prefix-no-default", // Stratégie de repli
|
|
670
750
|
rewrite: nextjsRewrite({
|
|
671
|
-
"/
|
|
672
|
-
en: "/
|
|
673
|
-
fr: "/
|
|
751
|
+
"/about": {
|
|
752
|
+
en: "/about",
|
|
753
|
+
fr: "/a-propos",
|
|
674
754
|
},
|
|
675
|
-
"/
|
|
676
|
-
en: "/
|
|
677
|
-
fr: "/
|
|
755
|
+
"/product/[slug]": {
|
|
756
|
+
en: "/product/[slug]",
|
|
757
|
+
fr: "/produit/[slug]",
|
|
678
758
|
},
|
|
679
|
-
"/
|
|
680
|
-
en: "/
|
|
681
|
-
fr: "/
|
|
759
|
+
"/blog/[category]/[id]": {
|
|
760
|
+
en: "/blog/[category]/[id]",
|
|
761
|
+
fr: "/journal/[category]/[id]",
|
|
682
762
|
},
|
|
683
763
|
}),
|
|
684
764
|
}
|
|
685
765
|
```
|
|
686
|
-
- _Note_
|
|
687
|
-
- _Note_
|
|
688
|
-
- _Note_
|
|
689
|
-
- _Note_
|
|
690
|
-
- _Reference_
|
|
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).
|
|
691
771
|
|
|
692
|
-
|
|
693
|
-
- _Type_ : `string`
|
|
694
|
-
- _Par défaut_ : `'always'`
|
|
695
|
-
- _Description_ : Règle pour définir le cookie de langue sur le serveur.
|
|
696
|
-
- _Options_ : `'always'`, `'never'`
|
|
697
|
-
- _Exemple_ : `'never'`
|
|
698
|
-
- _Note_ : Contrôle si le cookie de langue est défini à chaque requête ou jamais.
|
|
772
|
+
#### Attributs de Cookie
|
|
699
773
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
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'`)
|
|
790
|
+
|
|
791
|
+
#### Exemples de Configuration
|
|
792
|
+
|
|
793
|
+
Voici quelques exemples courants de configuration pour la nouvelle structure de routage v8 :
|
|
794
|
+
|
|
795
|
+
**Configuration de base (Par défaut)** :
|
|
796
|
+
|
|
797
|
+
```typescript
|
|
798
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
799
|
+
// intlayer.config.ts
|
|
800
|
+
const config: IntlayerConfig = {
|
|
801
|
+
internationalization: {
|
|
802
|
+
locales: ["en", "fr", "es"],
|
|
803
|
+
defaultLocale: "en",
|
|
804
|
+
},
|
|
805
|
+
routing: {
|
|
806
|
+
mode: "prefix-no-default",
|
|
807
|
+
storage: "localStorage",
|
|
808
|
+
basePath: "",
|
|
809
|
+
},
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
export default config;
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
**Configuration conforme au RGPD** :
|
|
816
|
+
|
|
817
|
+
```typescript
|
|
818
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
819
|
+
// intlayer.config.ts
|
|
820
|
+
const config: IntlayerConfig = {
|
|
821
|
+
internationalization: {
|
|
822
|
+
locales: ["en", "fr", "es"],
|
|
823
|
+
defaultLocale: "en",
|
|
824
|
+
},
|
|
825
|
+
routing: {
|
|
826
|
+
mode: "prefix-no-default",
|
|
827
|
+
storage: [
|
|
828
|
+
{
|
|
829
|
+
type: "localStorage",
|
|
830
|
+
name: "user-locale",
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
type: "cookie",
|
|
834
|
+
name: "user-locale",
|
|
835
|
+
secure: true,
|
|
836
|
+
sameSite: "strict",
|
|
837
|
+
httpOnly: false,
|
|
838
|
+
},
|
|
839
|
+
],
|
|
840
|
+
basePath: "",
|
|
841
|
+
},
|
|
842
|
+
};
|
|
843
|
+
|
|
844
|
+
export default config;
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
**Mode Paramètres de Recherche** :
|
|
848
|
+
|
|
849
|
+
```typescript
|
|
850
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
851
|
+
// intlayer.config.ts
|
|
852
|
+
const config: IntlayerConfig = {
|
|
853
|
+
internationalization: {
|
|
854
|
+
locales: ["en", "fr", "es"],
|
|
855
|
+
defaultLocale: "en",
|
|
856
|
+
},
|
|
857
|
+
routing: {
|
|
858
|
+
mode: "search-params",
|
|
859
|
+
storage: "localStorage",
|
|
860
|
+
basePath: "",
|
|
861
|
+
},
|
|
862
|
+
};
|
|
863
|
+
|
|
864
|
+
export default config;
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
**Mode sans préfixe avec stockage personnalisé** :
|
|
868
|
+
|
|
869
|
+
```typescript
|
|
870
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
871
|
+
// intlayer.config.ts
|
|
872
|
+
const config: IntlayerConfig = {
|
|
873
|
+
internationalization: {
|
|
874
|
+
locales: ["en", "fr", "es"],
|
|
875
|
+
defaultLocale: "en",
|
|
876
|
+
},
|
|
877
|
+
routing: {
|
|
878
|
+
mode: "no-prefix",
|
|
879
|
+
storage: {
|
|
880
|
+
type: "sessionStorage",
|
|
881
|
+
name: "app-locale",
|
|
882
|
+
},
|
|
883
|
+
basePath: "/my-app",
|
|
884
|
+
},
|
|
885
|
+
};
|
|
886
|
+
|
|
887
|
+
export default config;
|
|
888
|
+
```
|
|
889
|
+
|
|
890
|
+
**Réécriture d'URL personnalisée avec routes dynamiques** :
|
|
891
|
+
|
|
892
|
+
```typescript
|
|
893
|
+
// intlayer.config.ts
|
|
894
|
+
import { nextjsRewrite } from "intlayer/routing";
|
|
895
|
+
|
|
896
|
+
const config: IntlayerConfig = {
|
|
897
|
+
internationalization: {
|
|
898
|
+
locales: ["en", "fr"],
|
|
899
|
+
defaultLocale: "en",
|
|
900
|
+
},
|
|
901
|
+
routing: {
|
|
902
|
+
mode: "prefix-no-default", // Stratégie de repli pour les chemins non réécrits
|
|
903
|
+
storage: "cookie",
|
|
904
|
+
rewrite: nextjsRewrite({
|
|
905
|
+
"/about": {
|
|
906
|
+
en: "/about",
|
|
907
|
+
fr: "/a-propos",
|
|
908
|
+
},
|
|
909
|
+
"/product/[slug]": {
|
|
910
|
+
en: "/product/[slug]",
|
|
911
|
+
fr: "/produit/[slug]",
|
|
912
|
+
},
|
|
913
|
+
"/blog/[category]/[id]": {
|
|
914
|
+
en: "/blog/[category]/[id]",
|
|
915
|
+
fr: "/journal/[category]/[id]",
|
|
916
|
+
},
|
|
917
|
+
}),
|
|
918
|
+
},
|
|
919
|
+
};
|
|
920
|
+
|
|
921
|
+
export default config;
|
|
922
|
+
```
|
|
711
923
|
|
|
712
924
|
---
|
|
713
925
|
|
|
@@ -945,12 +1157,15 @@ Intlayer prend en charge plusieurs fournisseurs d'IA pour une flexibilité et un
|
|
|
945
1157
|
- _Type_ : `string`
|
|
946
1158
|
- _Par défaut_ : Aucun
|
|
947
1159
|
- _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.
|
|
1160
|
+
- _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").
|
|
1161
|
+
- _Exemple_ : `'Mon contexte d'application'`
|
|
948
1162
|
|
|
949
1163
|
- **baseURL** :
|
|
950
1164
|
- _Type_ : `string`
|
|
951
1165
|
- _Par défaut_ : Aucun
|
|
952
1166
|
- _Description_ : L'URL de base pour l'API d'IA.
|
|
953
1167
|
- _Exemple_ : `'https://api.openai.com/v1'`
|
|
1168
|
+
- _Exemple_ : `'http://localhost:5000'`
|
|
954
1169
|
- _Note_ : Peut être utilisé pour pointer vers un point de terminaison d'API d'IA local ou personnalisé.
|
|
955
1170
|
|
|
956
1171
|
- **dataSerialization**:
|
|
@@ -959,12 +1174,13 @@ Intlayer prend en charge plusieurs fournisseurs d'IA pour une flexibilité et un
|
|
|
959
1174
|
- _Description_: Le format de sérialisation des données à utiliser pour les fonctionnalités d'IA d'Intlayer.
|
|
960
1175
|
- _Exemple_: `'toon'`
|
|
961
1176
|
- _Note_: `json`: Standard, fiable ; utilise plus de tokens. `toon`: Moins de tokens, moins cohérent que le JSON.
|
|
1177
|
+
> 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.
|
|
962
1178
|
|
|
963
|
-
### Configuration
|
|
1179
|
+
### Configuration du Build
|
|
964
1180
|
|
|
965
1181
|
Paramètres qui contrôlent la manière dont Intlayer optimise et construit l'internationalisation de votre application.
|
|
966
1182
|
|
|
967
|
-
Les options de
|
|
1183
|
+
Les options de build s'appliquent aux plugins `@intlayer/babel` et `@intlayer/swc`.
|
|
968
1184
|
|
|
969
1185
|
> En mode développement, Intlayer utilise des imports statiques pour les dictionnaires afin de simplifier l'expérience de développement.
|
|
970
1186
|
|
|
@@ -975,23 +1191,18 @@ Les options de compilation s'appliquent aux plugins `@intlayer/babel` et `@intla
|
|
|
975
1191
|
- **mode** :
|
|
976
1192
|
- _Type_ : `'auto' | 'manual'`
|
|
977
1193
|
- _Par défaut_ : `'auto'`
|
|
978
|
-
- _Description_ : Contrôle le mode
|
|
1194
|
+
- _Description_ : Contrôle le mode du build.
|
|
979
1195
|
- _Exemple_ : `'manual'`
|
|
980
|
-
- _Note_ : Si 'auto',
|
|
981
|
-
- _Note_ : Si 'manual',
|
|
982
|
-
- _Note_ : Peut être utilisé pour désactiver la
|
|
983
|
-
|
|
984
|
-
- **checkTypes** :
|
|
985
|
-
- _Type_ : `boolean`
|
|
986
|
-
- _Default_ : `false`
|
|
987
|
-
- _Description_ : Indique si la compilation doit vérifier les types TypeScript et consigner les erreurs.
|
|
988
|
-
- _Note_ : Cela peut ralentir la compilation.
|
|
1196
|
+
- _Note_ : Si 'auto', le build sera activé automatiquement lors de la construction de l'application.
|
|
1197
|
+
- _Note_ : Si 'manual', le build ne sera activé que lorsque la commande de build est exécutée.
|
|
1198
|
+
- _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.
|
|
989
1199
|
|
|
990
1200
|
- **optimize** :
|
|
991
1201
|
- _Type_ : `boolean`
|
|
992
|
-
- _Par défaut_ : `
|
|
993
|
-
- _Description_ : Contrôle si
|
|
994
|
-
- _Exemple_ : `
|
|
1202
|
+
- _Par défaut_ : `undefined`
|
|
1203
|
+
- _Description_ : Contrôle si le build doit être optimisé.
|
|
1204
|
+
- _Exemple_ : `process.env.NODE_ENV === 'production'`
|
|
1205
|
+
- _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.
|
|
995
1206
|
- _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.
|
|
996
1207
|
- _Note_ : Intlayer remplacera tous les appels de `useIntlayer` par le mode défini via l'option `importMode` et `getIntlayer` par `getDictionary`.
|
|
997
1208
|
- _Note_ : Cette option repose sur les plugins `@intlayer/babel` et `@intlayer/swc`.
|
|
@@ -999,25 +1210,32 @@ Les options de compilation s'appliquent aux plugins `@intlayer/babel` et `@intla
|
|
|
999
1210
|
|
|
1000
1211
|
- **importMode** :
|
|
1001
1212
|
- _Type_ : `'static' | 'dynamic' | 'fetch'`
|
|
1002
|
-
-
|
|
1213
|
+
- _Par défaut_ : `'static'`
|
|
1003
1214
|
- _Description_ : Contrôle la manière dont les dictionnaires sont importés.
|
|
1004
1215
|
- _Exemple_ : `'dynamic'`
|
|
1005
1216
|
- _Note_ : Modes disponibles :
|
|
1006
1217
|
- "static" : Les dictionnaires sont importés statiquement. Remplace `useIntlayer` par `useDictionary`.
|
|
1007
1218
|
- "dynamic" : Les dictionnaires sont importés dynamiquement en utilisant Suspense. Remplace `useIntlayer` par `useDictionaryDynamic`.
|
|
1008
|
-
|
|
1219
|
+
- "fetch" : Les dictionnaires sont récupérés dynamiquement en utilisant l'API de synchronisation en direct. Remplace `useIntlayer` par `useDictionaryDynamic`.
|
|
1009
1220
|
- _Note_ : Les imports dynamiques reposent sur Suspense et peuvent légèrement impacter les performances de rendu.
|
|
1010
1221
|
- _Note_ : Si désactivé, toutes les locales seront chargées en une seule fois, même si elles ne sont pas utilisées.
|
|
1011
1222
|
- _Note_ : Cette option dépend des plugins `@intlayer/babel` et `@intlayer/swc`.
|
|
1012
1223
|
- _Note_ : Assurez-vous que toutes les clés sont déclarées statiquement dans les appels à `useIntlayer`. Par exemple `useIntlayer('navbar')`.
|
|
1013
1224
|
- _Note_ : Cette option sera ignorée si `optimize` est désactivé.
|
|
1014
|
-
- _Note_ : Si réglé sur "fetch", seuls les dictionnaires incluant du contenu distant et marqués
|
|
1015
|
-
- _Note_ : Le mode
|
|
1225
|
+
- _Note_ : Si réglé sur "fetch", seuls les dictionnaires incluant du contenu distant et marqués comme "fetch" seront transformés en mode fetch. Les autres seront importés dynamiquement en mode "dynamic" pour optimiser le nombre de requêtes fetch et les performances de chargement.
|
|
1226
|
+
- _Note_ : Le mode fetch utilisera l'API de synchronisation live pour récupérer les dictionnaires. Si l'appel API échoue, les dictionnaires seront importés dynamiquement en mode "dynamic".
|
|
1016
1227
|
- _Note_ : Cette option n'affectera pas les fonctions `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` et `useDictionaryDynamic`.
|
|
1228
|
+
- _Note_: **Obsolète**: Utilisez `dictionary.importMode` à la place.
|
|
1229
|
+
|
|
1230
|
+
- **checkTypes** :
|
|
1231
|
+
- _Type_ : `boolean`
|
|
1232
|
+
- _Par défaut_ : `false`
|
|
1233
|
+
- _Description_ : Indique si le build doit vérifier les types TypeScript et consigner les erreurs.
|
|
1234
|
+
- _Note_ : Cela peut ralentir le build.
|
|
1017
1235
|
|
|
1018
1236
|
- **outputFormat** :
|
|
1019
|
-
- _Type_ : `'esm' | 'cjs'`
|
|
1020
|
-
- _Par défaut_ : `'esm'`
|
|
1237
|
+
- _Type_ : `('esm' | 'cjs')[]`
|
|
1238
|
+
- _Par défaut_ : `['cjs', 'esm']`
|
|
1021
1239
|
- _Description_ : Contrôle le format de sortie des dictionnaires.
|
|
1022
1240
|
- _Exemple_ : `'cjs'`
|
|
1023
1241
|
- _Note_ : Le format de sortie des dictionnaires.
|
|
@@ -1048,7 +1266,7 @@ Paramètres qui contrôlent le compilateur Intlayer, qui extrait les dictionnair
|
|
|
1048
1266
|
|
|
1049
1267
|
- **dictionaryKeyPrefix** :
|
|
1050
1268
|
- _Type_ : `string`
|
|
1051
|
-
- _Par défaut_ : `'
|
|
1269
|
+
- _Par défaut_ : `''`
|
|
1052
1270
|
- _Description_ : Préfixe pour les clés de dictionnaire extraites.
|
|
1053
1271
|
- _Exemple_ : `'my-key-'`
|
|
1054
1272
|
- _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.
|
|
@@ -1072,22 +1290,25 @@ Paramètres qui contrôlent le compilateur Intlayer, qui extrait les dictionnair
|
|
|
1072
1290
|
- _Description_ : Modèles qui définissent quels fichiers doivent être exclus lors de l'optimisation.
|
|
1073
1291
|
- _Exemple_ : `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1074
1292
|
|
|
1075
|
-
- **outputDir** (Deprecated) :
|
|
1076
|
-
- _Type_ : `string`
|
|
1077
|
-
- _Par défaut_ : `'compiler'`
|
|
1078
|
-
- _Description_ : Le répertoire où les dictionnaires extraits seront stockés, relatif au chemin de base de votre projet.
|
|
1079
|
-
|
|
1080
1293
|
- **output**:
|
|
1081
1294
|
- _Type_: `FilePathPattern`
|
|
1082
|
-
- _Par défaut_: `
|
|
1083
|
-
- _Description_: Définit le chemin des fichiers de sortie. Remplace `outputDir`. Gère les variables dynamiques
|
|
1084
|
-
- _Note_:
|
|
1085
|
-
-
|
|
1295
|
+
- _Par défaut_: `undefined`
|
|
1296
|
+
- _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}}`.
|
|
1297
|
+
- _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`).
|
|
1298
|
+
- _Note_: L'inclusion de la variable `{{locale}}` dans le chemin déclenchera la génération de dictionnaires séparés par locale.
|
|
1299
|
+
- _Exemple_:
|
|
1300
|
+
- **Fichiers multilingues près du composant** :
|
|
1301
|
+
- Chaîne : `'./{{fileName}}{{extension}}'`
|
|
1302
|
+
- Fonction : `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1303
|
+
|
|
1304
|
+
- **JSON centralisé par locale** :
|
|
1305
|
+
- Chaîne : `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1306
|
+
- Fonction : `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1086
1307
|
|
|
1087
1308
|
- **noMetadata**:
|
|
1088
1309
|
- _Type_: `boolean`
|
|
1089
1310
|
- _Par défaut_: `false`
|
|
1090
|
-
- _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).
|
|
1311
|
+
- _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.
|
|
1091
1312
|
- _Note_: Utile si utilisé avec le plugin `loadJSON`.
|
|
1092
1313
|
- _Exemple_: Si `true` :
|
|
1093
1314
|
```json
|