@intlayer/docs 8.6.0 → 8.6.10

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 (197) hide show
  1. package/dist/cjs/doc.cjs.map +1 -1
  2. package/dist/cjs/generated/docs.entry.cjs +60 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/doc.mjs.map +1 -1
  5. package/dist/esm/generated/docs.entry.mjs +60 -0
  6. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  7. package/dist/types/doc.d.ts.map +1 -1
  8. package/dist/types/generated/docs.entry.d.ts +3 -0
  9. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  10. package/docs/ar/cli/index.md +54 -42
  11. package/docs/ar/cli/init.md +32 -20
  12. package/docs/ar/cli/standalone.md +91 -0
  13. package/docs/ar/configuration.md +39 -7
  14. package/docs/ar/custom_domains.md +250 -0
  15. package/docs/ar/intlayer_with_tanstack+solid.md +14 -33
  16. package/docs/ar/intlayer_with_tanstack.md +25 -16
  17. package/docs/ar/intlayer_with_vanilla.md +506 -0
  18. package/docs/bn/cli/index.md +195 -0
  19. package/docs/bn/cli/init.md +96 -0
  20. package/docs/bn/cli/standalone.md +91 -0
  21. package/docs/bn/configuration.md +46 -14
  22. package/docs/bn/custom_domains.md +250 -0
  23. package/docs/bn/intlayer_with_vanilla.md +506 -0
  24. package/docs/cs/cli/index.md +195 -0
  25. package/docs/cs/cli/init.md +96 -0
  26. package/docs/cs/cli/standalone.md +91 -0
  27. package/docs/cs/configuration.md +46 -7
  28. package/docs/cs/custom_domains.md +250 -0
  29. package/docs/cs/intlayer_with_vanilla.md +506 -0
  30. package/docs/de/cli/index.md +53 -41
  31. package/docs/de/cli/standalone.md +91 -0
  32. package/docs/de/configuration.md +46 -7
  33. package/docs/de/custom_domains.md +250 -0
  34. package/docs/de/intlayer_with_tanstack+solid.md +15 -36
  35. package/docs/de/intlayer_with_tanstack.md +25 -16
  36. package/docs/de/intlayer_with_vanilla.md +506 -0
  37. package/docs/en/bundle_optimization.md +288 -23
  38. package/docs/en/cli/index.md +6 -1
  39. package/docs/en/cli/init.md +13 -1
  40. package/docs/en/cli/standalone.md +91 -0
  41. package/docs/en/configuration.md +46 -7
  42. package/docs/en/custom_domains.md +245 -0
  43. package/docs/en/intlayer_with_tanstack+solid.md +15 -36
  44. package/docs/en/intlayer_with_tanstack.md +25 -16
  45. package/docs/en/intlayer_with_vanilla.md +506 -0
  46. package/docs/en-GB/cli/index.md +56 -44
  47. package/docs/en-GB/cli/init.md +28 -21
  48. package/docs/en-GB/cli/standalone.md +91 -0
  49. package/docs/en-GB/configuration.md +53 -14
  50. package/docs/en-GB/custom_domains.md +250 -0
  51. package/docs/en-GB/intlayer_with_tanstack+solid.md +15 -36
  52. package/docs/en-GB/intlayer_with_tanstack.md +25 -16
  53. package/docs/en-GB/intlayer_with_vanilla.md +506 -0
  54. package/docs/es/cli/index.md +65 -53
  55. package/docs/es/cli/init.md +33 -21
  56. package/docs/es/cli/standalone.md +91 -0
  57. package/docs/es/configuration.md +39 -1
  58. package/docs/es/custom_domains.md +250 -0
  59. package/docs/es/intlayer_with_tanstack+solid.md +15 -36
  60. package/docs/es/intlayer_with_tanstack.md +25 -16
  61. package/docs/es/intlayer_with_vanilla.md +506 -0
  62. package/docs/fr/cli/index.md +43 -31
  63. package/docs/fr/cli/init.md +37 -25
  64. package/docs/fr/cli/standalone.md +91 -0
  65. package/docs/fr/configuration.md +46 -7
  66. package/docs/fr/custom_domains.md +250 -0
  67. package/docs/fr/intlayer_with_tanstack+solid.md +15 -36
  68. package/docs/fr/intlayer_with_tanstack.md +25 -16
  69. package/docs/fr/intlayer_with_vanilla.md +506 -0
  70. package/docs/hi/cli/index.md +71 -59
  71. package/docs/hi/cli/init.md +37 -33
  72. package/docs/hi/cli/standalone.md +91 -0
  73. package/docs/hi/configuration.md +39 -7
  74. package/docs/hi/custom_domains.md +250 -0
  75. package/docs/hi/intlayer_with_tanstack+solid.md +14 -33
  76. package/docs/hi/intlayer_with_tanstack.md +25 -16
  77. package/docs/hi/intlayer_with_vanilla.md +506 -0
  78. package/docs/id/cli/index.md +59 -47
  79. package/docs/id/cli/init.md +32 -25
  80. package/docs/id/cli/standalone.md +91 -0
  81. package/docs/id/configuration.md +46 -7
  82. package/docs/id/custom_domains.md +250 -0
  83. package/docs/id/intlayer_with_tanstack+solid.md +14 -33
  84. package/docs/id/intlayer_with_tanstack.md +25 -16
  85. package/docs/id/intlayer_with_vanilla.md +506 -0
  86. package/docs/it/cli/index.md +58 -41
  87. package/docs/it/cli/init.md +37 -38
  88. package/docs/it/cli/standalone.md +91 -0
  89. package/docs/it/configuration.md +46 -7
  90. package/docs/it/custom_domains.md +250 -0
  91. package/docs/it/intlayer_with_tanstack+solid.md +15 -36
  92. package/docs/it/intlayer_with_tanstack.md +25 -16
  93. package/docs/it/intlayer_with_vanilla.md +506 -0
  94. package/docs/ja/cli/index.md +59 -47
  95. package/docs/ja/cli/init.md +36 -24
  96. package/docs/ja/cli/standalone.md +91 -0
  97. package/docs/ja/configuration.md +46 -7
  98. package/docs/ja/custom_domains.md +250 -0
  99. package/docs/ja/intlayer_with_tanstack+solid.md +15 -36
  100. package/docs/ja/intlayer_with_tanstack.md +25 -16
  101. package/docs/ja/intlayer_with_vanilla.md +506 -0
  102. package/docs/ko/cli/index.md +58 -46
  103. package/docs/ko/cli/init.md +39 -35
  104. package/docs/ko/cli/standalone.md +91 -0
  105. package/docs/ko/configuration.md +47 -8
  106. package/docs/ko/custom_domains.md +250 -0
  107. package/docs/ko/intlayer_with_tanstack+solid.md +15 -36
  108. package/docs/ko/intlayer_with_tanstack.md +25 -16
  109. package/docs/ko/intlayer_with_vanilla.md +506 -0
  110. package/docs/nl/cli/index.md +195 -0
  111. package/docs/nl/cli/init.md +96 -0
  112. package/docs/nl/cli/standalone.md +91 -0
  113. package/docs/nl/configuration.md +46 -7
  114. package/docs/nl/custom_domains.md +250 -0
  115. package/docs/nl/intlayer_with_vanilla.md +506 -0
  116. package/docs/pl/cli/index.md +56 -44
  117. package/docs/pl/cli/init.md +36 -32
  118. package/docs/pl/cli/standalone.md +91 -0
  119. package/docs/pl/configuration.md +46 -7
  120. package/docs/pl/custom_domains.md +250 -0
  121. package/docs/pl/intlayer_with_tanstack+solid.md +14 -33
  122. package/docs/pl/intlayer_with_tanstack.md +25 -16
  123. package/docs/pl/intlayer_with_vanilla.md +506 -0
  124. package/docs/pt/cli/index.md +64 -52
  125. package/docs/pt/cli/init.md +35 -31
  126. package/docs/pt/cli/standalone.md +91 -0
  127. package/docs/pt/configuration.md +46 -7
  128. package/docs/pt/custom_domains.md +250 -0
  129. package/docs/pt/intlayer_with_tanstack+solid.md +15 -36
  130. package/docs/pt/intlayer_with_tanstack.md +25 -16
  131. package/docs/pt/intlayer_with_vanilla.md +506 -0
  132. package/docs/ru/cli/index.md +54 -42
  133. package/docs/ru/cli/init.md +31 -27
  134. package/docs/ru/cli/standalone.md +91 -0
  135. package/docs/ru/configuration.md +46 -7
  136. package/docs/ru/custom_domains.md +250 -0
  137. package/docs/ru/intlayer_with_tanstack+solid.md +15 -36
  138. package/docs/ru/intlayer_with_tanstack.md +25 -16
  139. package/docs/ru/intlayer_with_vanilla.md +506 -0
  140. package/docs/tr/cli/index.md +64 -52
  141. package/docs/tr/cli/init.md +37 -30
  142. package/docs/tr/cli/standalone.md +91 -0
  143. package/docs/tr/configuration.md +46 -7
  144. package/docs/tr/custom_domains.md +250 -0
  145. package/docs/tr/intlayer_with_tanstack+solid.md +14 -33
  146. package/docs/tr/intlayer_with_tanstack.md +25 -16
  147. package/docs/tr/intlayer_with_vanilla.md +506 -0
  148. package/docs/uk/cli/index.md +60 -55
  149. package/docs/uk/cli/init.md +32 -20
  150. package/docs/uk/cli/standalone.md +91 -0
  151. package/docs/uk/configuration.md +46 -7
  152. package/docs/uk/custom_domains.md +250 -0
  153. package/docs/uk/intlayer_with_tanstack+solid.md +14 -33
  154. package/docs/uk/intlayer_with_tanstack.md +25 -16
  155. package/docs/uk/intlayer_with_vanilla.md +506 -0
  156. package/docs/ur/cli/index.md +195 -0
  157. package/docs/ur/cli/init.md +96 -0
  158. package/docs/ur/cli/standalone.md +91 -0
  159. package/docs/ur/configuration.md +46 -7
  160. package/docs/ur/custom_domains.md +250 -0
  161. package/docs/ur/intlayer_with_vanilla.md +506 -0
  162. package/docs/vi/cli/index.md +72 -61
  163. package/docs/vi/cli/init.md +33 -21
  164. package/docs/vi/cli/standalone.md +91 -0
  165. package/docs/vi/configuration.md +46 -7
  166. package/docs/vi/custom_domains.md +250 -0
  167. package/docs/vi/intlayer_with_tanstack+solid.md +14 -33
  168. package/docs/vi/intlayer_with_tanstack.md +25 -16
  169. package/docs/vi/intlayer_with_vanilla.md +506 -0
  170. package/docs/zh/cli/index.md +56 -49
  171. package/docs/zh/cli/init.md +30 -18
  172. package/docs/zh/cli/standalone.md +91 -0
  173. package/docs/zh/configuration.md +46 -7
  174. package/docs/zh/custom_domains.md +250 -0
  175. package/docs/zh/intlayer_with_tanstack+solid.md +15 -36
  176. package/docs/zh/intlayer_with_tanstack.md +25 -16
  177. package/docs/zh/intlayer_with_vanilla.md +506 -0
  178. package/package.json +8 -8
  179. package/src/doc.ts +4 -1
  180. package/src/generated/docs.entry.ts +60 -0
  181. package/docs/ar/bundle_optimization.md +0 -185
  182. package/docs/de/bundle_optimization.md +0 -195
  183. package/docs/en-GB/bundle_optimization.md +0 -184
  184. package/docs/es/bundle_optimization.md +0 -194
  185. package/docs/fr/bundle_optimization.md +0 -184
  186. package/docs/hi/bundle_optimization.md +0 -185
  187. package/docs/id/bundle_optimization.md +0 -185
  188. package/docs/it/bundle_optimization.md +0 -185
  189. package/docs/ja/bundle_optimization.md +0 -185
  190. package/docs/ko/bundle_optimization.md +0 -185
  191. package/docs/pl/bundle_optimization.md +0 -185
  192. package/docs/pt/bundle_optimization.md +0 -184
  193. package/docs/ru/bundle_optimization.md +0 -185
  194. package/docs/tr/bundle_optimization.md +0 -184
  195. package/docs/uk/bundle_optimization.md +0 -186
  196. package/docs/vi/bundle_optimization.md +0 -185
  197. package/docs/zh/bundle_optimization.md +0 -185
@@ -0,0 +1,96 @@
1
+ ---
2
+ createdAt: 2025-12-30
3
+ updatedAt: 2025-12-30
4
+ title: Initialiseer Intlayer
5
+ description: Leer hoe u Intlayer in uw project kunt initialiseren.
6
+ keywords:
7
+ - Initialiseren
8
+ - CLI
9
+ - Intlayer
10
+ - AI
11
+ slugs:
12
+ - doc
13
+ - concept
14
+ - cli
15
+ - init
16
+ history:
17
+ - version: 8.6.4
18
+ date: 2026-03-31
19
+ changes: "Optie --no-gitignore toegevoegd"
20
+ - version: 7.5.9
21
+ date: 2025-12-30
22
+ changes: "Commando init toegevoegd"
23
+ ---
24
+
25
+ # Initialiseer Intlayer
26
+
27
+ ```bash
28
+ npx intlayer init
29
+ ```
30
+
31
+ Het `init` commando configureert Intlayer automatisch in uw project door de benodigde bestanden en instellingen aan te maken. Dit is de aanbevolen manier om met Intlayer aan de slag te gaan.
32
+
33
+ ## Aliassen:
34
+
35
+ - `npx intlayer init`
36
+
37
+ ## Argumenten:
38
+
39
+ - `--project-root [projectRoot]` - Optioneel. Specificeer de hoofdmap van het project. Indien niet opgegeven, zoekt het commando naar de projectmap vanaf de huidige werkmap.
40
+ - `--no-gitignore` - Optioneel. Slaat het automatisch bijwerken van het `.gitignore`-bestand over. Als deze vlag is ingesteld, wordt `.intlayer` niet toegevoegd aan `.gitignore`.
41
+
42
+ ## Wat het doet:
43
+
44
+ Het `init` commando voert de volgende configuratietaken uit:
45
+
46
+ 1. **Valideert projectstructuur** - Garandeert dat u zich in een geldige projectmap bevindt met een `package.json` bestand.
47
+ 2. **Werkt `.gitignore` bij** - Voegt `.intlayer` toe aan uw `.gitignore` bestand om gegenereerde bestanden uit te sluiten van versiebeheer (kan worden overgeslagen met `--no-gitignore`).
48
+ 3. **Configureert TypeScript** - Werkt eventuele `tsconfig.json` bestanden bij om Intlayer type-definities op te nemen (`.intlayer/**/*.ts`).
49
+ 4. **Maakt configuratiebestand aan** - Genereert een `intlayer.config.ts` (voor TypeScript-projecten) of `intlayer.config.mjs` (voor JavaScript-projecten) met standaardinstellingen.
50
+ 5. **Werkt Vite-config bij** - Indien een Vite-configuratiebestand wordt gedetecteerd, wordt de import voor de `vite-intlayer` plugin toegevoegd.
51
+ 6. **Werkt Next.js-config bij** - Indien een Next.js-configuratiebestand wordt gedetecteerd, wordt de import voor de `next-intlayer` plugin toegevoegd.
52
+
53
+ ## Voorbeelden:
54
+
55
+ ### Basis initialisatie:
56
+
57
+ ```bash
58
+ npx intlayer init
59
+ ```
60
+
61
+ Dit initialiseert Intlayer in de huidige map en detecteert automatisch de hoofdmap van het project.
62
+
63
+ ### Initialiseren met aangepaste projectmap:
64
+
65
+ ```bash
66
+ npx intlayer init --project-root ./mijn-project
67
+ ```
68
+
69
+ Dit initialiseert Intlayer in de opgegeven directory.
70
+
71
+ ### Initialiseren zonder .gitignore bij te werken:
72
+
73
+ ```bash
74
+ npx intlayer init --no-gitignore
75
+ ```
76
+
77
+ Dit configureert alle configuratiebestanden maar wijzigt uw `.gitignore` niet.
78
+
79
+ ## Voorbeeld van uitvoer:
80
+
81
+ ```bash
82
+ npx intlayer init
83
+ Checking Intlayer configuration...
84
+ ✓ Added .intlayer to .gitignore
85
+ ✓ Updated tsconfig.json to include intlayer types
86
+ ✓ Created intlayer.config.ts
87
+ ✓ Injected import into vite.config.ts
88
+ ✓ Intlayer init setup complete.
89
+ ```
90
+
91
+ ## Opmerkingen:
92
+
93
+ - Het commando is idempotent - u kunt het veilig meerdere keren uitvoeren. Reeds geconfigureerde stappen worden overgeslagen.
94
+ - Indien er al een configuratiebestand bestaat, wordt dit niet overschreven.
95
+ - TypeScript-configuratiebestanden zonder een `include` array (bijv. solution-style configuraties met references) worden overgeslagen.
96
+ - Het commando stopt met een foutmelding als er geen `package.json` wordt gevonden in de hoofdmap van het project.
@@ -0,0 +1,91 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2026-03-31
4
+ title: Standalone Bundel
5
+ description: Leer hoe u een zelfstandige JavaScript-bundel van de applicatie-inhoud kunt maken.
6
+ keywords:
7
+ - Standalone
8
+ - Bundel
9
+ - CLI
10
+ - Intlayer
11
+ - Editor
12
+ - CMS
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - standalone
18
+ history:
19
+ - version: 8.6.4
20
+ date: 2026-03-31
21
+ changes: "Initialisatie van de documentatie voor het standalone commando"
22
+ ---
23
+
24
+ # Standalone Bundel
25
+
26
+ Met het `standalone` commando kunt u een zelfstandige JavaScript-bundel maken die Intlayer en eventuele andere gespecificeerde pakketten bevat. Dit is met name handig voor het gebruik van Intlayer in omgevingen zonder pakketbeheerder of bundler, zoals een eenvoudige HTML/JS-applicatie.
27
+
28
+ De bundel maakt gebruik van [esbuild](https://esbuild.github.io/) om de gevraagde pakketten en hun afhankelijkheden te combineren in een enkel bestand dat eenvoudig in elk webproject kan worden geïmporteerd.
29
+
30
+ ## Gebruik
31
+
32
+ ```bash
33
+ npx intlayer standalone --packages [pakketten...] [opties]
34
+ ```
35
+
36
+ ## Opties
37
+
38
+ - `-o, --outfile [outfile]` - Optioneel. De naam van het uitvoerbestand. Standaard: `intlayer-bundle.js`.
39
+ - `--packages [pakketten...]` - Vereist. Een lijst met pakketten die in de bundel moeten worden opgenomen (bijv. `intlayer`, `vanilla-intlayer`).
40
+ - `--version [version]` - Optioneel. De versie van de pakketten die gebundeld moeten worden. Indien niet gespecificeerd, wordt standaard de versie van de Intlayer CLI gebruikt.
41
+ - `--minify` - Optioneel. Of de uitvoer moet worden geminimaliseerd. Standaard: `true`.
42
+ - `--platform [platform]` - Optioneel. Het doelplatform voor de bundel (bijv. `browser`, `node`). Standaard: `browser`.
43
+ - `--format [format]` - Optioneel. Het uitvoerformaat voor de bundel (bijv. `esm`, `cjs`, `iife`). Standaard: `esm`.
44
+
45
+ ## Algemene Opties
46
+
47
+ - `--env-file [envFile]` - Omgevingsbestand.
48
+ - `-e, --env [env]` - Omgeving.
49
+ - `--base-dir [baseDir]` - Basisdirectory.
50
+ - `--no-cache` - Cache uitschakelen.
51
+ - `--verbose` - Gedetailleerde uitvoer.
52
+
53
+ ## Voorbeelden:
54
+
55
+ ### Een bundel maken voor Vanilla JS:
56
+
57
+ ```bash
58
+ npx intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
59
+ ```
60
+
61
+ Dit maakt een bestand `intlayer.js` aan met daarin zowel de `intlayer` als `vanilla-intlayer` pakketten, geminimaliseerd en in ESM-formaat, klaar voor gebruik in een browser via een `<script>` tag.
62
+
63
+ ### Een specifieke versie bundelen:
64
+
65
+ ```bash
66
+ npx intlayer standalone --packages intlayer --version 8.6.4
67
+ ```
68
+
69
+ ### Bundelen met een ander formaat:
70
+
71
+ ```bash
72
+ npx intlayer standalone --packages intlayer --format iife
73
+ ```
74
+
75
+ ## Wat het doet:
76
+
77
+ 1. **Maakt een tijdelijke omgeving aan** - Richt een tijdelijke directory in om afhankelijkheden te beheren.
78
+ 2. **Installeert pakketten** - Gebruikt `npm` of `bun` (indien beschikbaar) om de gevraagde pakketten en hun afhankelijkheden te installeren.
79
+ 3. **Genereert een toegangspunt** - Maakt een tijdelijk toegangspuntbestand aan dat alle gevraagde pakketten exporteert en ze blootstelt als globale variabelen bij uitvoering in een browser.
80
+ 4. **Bundelt met esbuild** - Gebruikt esbuild om alles te combineren in een enkel bestand, met toepassing van minimalisatie en formatering zoals gevraagd.
81
+ 5. **Genereert het bestand** - Schrijft de resulterende bundel naar het opgegeven uitvoerpad.
82
+
83
+ ## Globale Variabelen
84
+
85
+ Wanneer de bundel in een browser wordt geladen, stelt deze de gevraagde pakketten bloot als globale variabelen op het `window` object. De variabelenamen zijn gebaseerd op de pakketnamen (bijv. `intlayer` wordt `Intlayer`, `vanilla-intlayer` wordt `VanillaIntlayer`).
86
+
87
+ ```javascript
88
+ // Toegang tot Intlayer vanuit de bundel
89
+ const { getLocaleName } = window.Intlayer;
90
+ const { installIntlayer, useIntlayer } = window.VanillaIntlayer;
91
+ ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-20
3
+ updatedAt: 2026-04-08
4
4
  title: Configuratie (Configuration)
5
5
  description: Leer hoe u Intlayer configureert voor uw applicatie. Begrijp de verschillende instellingen en opties die beschikbaar zijn om Intlayer aan uw behoeften aan te passen.
6
6
  keywords:
@@ -14,6 +14,12 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 8.7.0
18
+ date: 2026-04-08
19
+ changes: "Opties `prune` en `minify` toegevoegd aan de buildconfiguratie"
20
+ - version: 8.7.0
21
+ date: 2026-04-03
22
+ changes: "`currentDomain` optie toegevoegd"
17
23
  - version: 8.4.0
18
24
  date: 2026-03-20
19
25
  changes: "Objectnotatie per locale toegevoegd voor 'compiler.output' en 'dictionary.fill'"
@@ -237,6 +243,17 @@ const config: IntlayerConfig = {
237
243
  fr: "/[locale]/a-propos",
238
244
  },
239
245
  }),
246
+
247
+ /**
248
+ * Koppelt locales aan domeinhastnamen voor domeingebaseerde routing.
249
+ * URL's voor deze locales zullen absoluut zijn (bijv. https://intlayer.cn/).
250
+ * Het domein impliceert de locale, dus er wordt geen locale-voorvoegsel aan het pad toegevoegd.
251
+ * Standaard: undefined
252
+ */
253
+ domains: {
254
+ en: "intlayer.org",
255
+ zh: "intlayer.cn",
256
+ },
240
257
  },
241
258
 
242
259
  /**
@@ -388,6 +405,25 @@ const config: IntlayerConfig = {
388
405
  */
389
406
  optimize: true,
390
407
 
408
+ /**
409
+ * Minimaliseer de woordenboeken om de bundelgrootte te verkleinen.
410
+ * Standaard: false
411
+ *
412
+ * Opmerking:
413
+ * - Deze optie wordt genegeerd als `optimize` is uitgeschakeld.
414
+ * - Deze optie wordt genegeerd als `editor.enabled` op true staat.
415
+ */
416
+ minify: true,
417
+
418
+ /**
419
+ * Verwijder ongebruikte sleutels in woordenboeken.
420
+ * Standaard: false
421
+ *
422
+ * Opmerking:
423
+ * - Deze optie wordt genegeerd als `optimize` is uitgeschakeld.
424
+ */
425
+ purge: true,
426
+
391
427
  /**
392
428
  * Uitvoerformaat voor gegenereerde woordenboekbestanden.
393
429
  * Standaard: ['cjs', 'esm']
@@ -597,12 +633,13 @@ Definieert de instellingen voor de ingebouwde visuele editor, inclusief de serve
597
633
 
598
634
  Instellingen die het gedrag van routing regelen, inclusief URL-structuur, opslag van locales en beheer van middleware.
599
635
 
600
- | Veld | Beschrijving | Type | Standaard | Voorbeeld | Opmerking |
601
- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
602
- | `mode` | URL routingmodus voor het beheer van locales. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) of `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: locale wordt op andere manieren beheerd. `'search-params'`: `/dashboard?locale=fr` | Heeft geen invloed op het beheer van cookies of opslag van locales. |
603
- | `storage` | Configuratie van de opslag van de locale op de client. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Zie de tabel met opslagparameters hieronder. |
604
- | `basePath` | Basispad voor de URL's van de applicatie. | `string` | `''` | `'/my-app'` | Als de applicatie op het adres `https://example.com/my-app` werkt, is basePath `'/my-app'` en worden URL's `https://example.com/my-app/en`. |
605
- | `rewrite` | Aangepaste URL-herschrijfregels die de standaard routingmodus overschrijven voor specifieke paden. Ondersteunt dynamische parameters `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Zie voorbeeld hieronder | • Herschrijfregels hebben voorrang op `mode`.<br/>• Werkt met Next.js en Vite.<br/>• `getLocalizedUrl()` past automatisch de juiste regels toe.<br/>• Zie [Aangepaste URL-herschrijvingen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
636
+ | Veld | Beschrijving | Type | Standaard | Voorbeeld | Opmerking |
637
+ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
638
+ | `mode` | URL routingmodus voor het beheer van locales. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) of `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: locale wordt op andere manieren beheerd. `'search-params'`: `/dashboard?locale=fr` | Heeft geen invloed op het beheer van cookies of opslag van locales. |
639
+ | `storage` | Configuratie van de opslag van de locale op de client. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Zie de tabel met opslagparameters hieronder. |
640
+ | `basePath` | Basispad voor de URL's van de applicatie. | `string` | `''` | `'/my-app'` | Als de applicatie op het adres `https://example.com/my-app` werkt, is basePath `'/my-app'` en worden URL's `https://example.com/my-app/en`. |
641
+ | `rewrite` | Aangepaste URL-herschrijfregels die de standaard routingmodus overschrijven voor specifieke paden. Ondersteunt dynamische parameters `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Zie voorbeeld hieronder | • Herschrijfregels hebben voorrang op `mode`.<br/>• Werkt met Next.js en Vite.<br/>• `getLocalizedUrl()` past automatisch de juiste regels toe.<br/>• Zie [Aangepaste URL-herschrijvingen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
642
+ | `domains` | Koppelt locales aan domeinhastnamen voor domeingebaseerde routing. Wanneer ingesteld, gebruiken URL's voor die locale dat domein als basis (absolute URL) en wordt er geen locale-voorvoegsel aan het pad toegevoegd. | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • Het standaardprotocol is `https://` wanneer dit niet in de hostnaam is opgenomen.<br/>• Het domein zelf identificeert de locale, dus er wordt geen `/zh/` voorvoegsel toegevoegd.<br/>• `getLocalizedUrl('/', 'zh')` retourneert `https://intlayer.zh/`. |
606
643
 
607
644
  **Voorbeeld `rewrite`**:
608
645
 
@@ -906,6 +943,8 @@ Build-opties worden toegepast op de plug-ins `@intlayer/babel` en `@intlayer/swc
906
943
  | ----------------- | --------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
907
944
  | `mode` | Beheert de buildmodus. | `'auto'` &#124; <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: de build wordt automatisch gestart tijdens de build van de applicatie.<br/>• `'manual'`: wordt alleen uitgevoerd bij een expliciete build-opdracht.<br/>• Kan worden gebruikt om de build van woordenboeken uit te schakelen (bijv. om uitvoering in Node.js-omgevingen te stoppen). |
908
945
  | `optimize` | Beheert of er build-optimalisatie moet plaatsvinden. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Indien niet gedefinieerd, wordt optimalisatie gestart bij de build van het framework (Vite/Next.js).<br/>• `true` forceert optimalisatie zelfs in dev-modus.<br/>• `false` schakelt het uit.<br/>• Indien ingeschakeld, vervangt het woordenboekaanroepen voor chunking-optimalisatie.<br/>• Vereist plug-ins `@intlayer/babel` en `@intlayer/swc`. |
946
+ | `minify` | Minimaliseer de woordenboeken om de bundelgrootte te verkleinen. | `boolean` | `false` | | • Geeft aan of de bundel moet worden geminimaliseerd.<br/>• Standaard: `true` in productie.<br/>• Deze optie wordt genegeerd als `optimize` is uitgeschakeld.<br/>• Deze optie wordt genegeerd als `editor.enabled` is waar. |
947
+ | `purge` | Verwijder ongebruikte sleutels in woordenboeken. | `boolean` | `false` | | • Geeft aan of de bundel moet worden opgeschoond.<br/>• Standaard: `true` in productie.<br/>• Deze optie wordt genegeerd als `optimize` is uitgeschakeld. |
909
948
  | `checkTypes` | Geeft aan of de build TypeScript types moet controleren en fouten moet loggen. | `boolean` | `false` | | Kan het buildproces vertragen. |
910
949
  | `outputFormat` | Beheert het uitvoerformaat van woordenboeken. | `('esm' &#124; 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
911
950
  | `traversePattern` | Patronen die definieren welke bestanden tijdens de optimalisatie moeten worden gescand. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Beperk de optimalisatie tot relevante bestanden voor het verhogen van de buildprestaties.<br/>• Zou worden genegeerd als `optimize` was uitgeschakeld.<br/>• Gebruikt glob-patronen. |
@@ -0,0 +1,250 @@
1
+ ---
2
+ createdAt: 2026-04-02
3
+ updatedAt: 2026-04-02
4
+ title: Aangepaste domeinen
5
+ description: Leer hoe u domeingebaseerde locale routing configureert in Intlayer om verschillende locales te bedienen vanaf speciale hostnames.
6
+ keywords:
7
+ - Aangepaste domeinen
8
+ - Domeinrouting
9
+ - Routing
10
+ - Internationalisering
11
+ - i18n
12
+ slugs:
13
+ - doc
14
+ - concept
15
+ - custom_domains
16
+ history:
17
+ - version: 8.5.0
18
+ date: 2026-04-02
19
+ changes: "Domeingebaseerde locale routing toegevoegd via de routing.domains-configuratie."
20
+ ---
21
+
22
+ # Aangepaste domeinen
23
+
24
+ Intlayer ondersteunt domeingebaseerde locale routing, waardoor u specifieke locales kunt bedienen vanaf speciale hostnames. Chinese bezoekers kunnen bijvoorbeeld worden doorgeleid naar `intlayer.zh` in plaats van `intlayer.org/zh`.
25
+
26
+ ## Hoe het werkt
27
+
28
+ De `domains`-map in `routing` koppelt elke locale aan een hostname. Intlayer gebruikt deze map op twee plaatsen:
29
+
30
+ 1. **URL-generatie** (`getLocalizedUrl`): wanneer de doel-locale op een _ander_ domein staat dan de huidige pagina, wordt een absolute URL geretourneerd (bijv. `https://intlayer.zh/about`). Wanneer beide domeinen overeenkomen, wordt een relatieve URL geretourneerd (bijv. `/fr/about`).
31
+ 2. **Serverproxy** (Next.js & Vite): inkomende verzoeken worden omgeleid of herschreven op basis van het domein waarop ze binnenkomen.
32
+
33
+ ### Exclusieve vs. gedeelde domeinen
34
+
35
+ Het belangrijkste onderscheid is **exclusiviteit**:
36
+
37
+ - **Exclusief domein** — er is slechts één locale aan die hostname gekoppeld (bijv. `zh → intlayer.zh`). Het domein zelf identificeert de locale, dus er wordt geen locale-prefix aan het pad toegevoegd. `https://intlayer.zh/about` bedient Chinese inhoud.
38
+ - **Gedeeld domein** — er zijn meerdere locales aan dezelfde hostname gekoppeld (bijv. zowel `en` als `fr` zijn gekoppeld aan `intlayer.org`). Normale prefixgebaseerde routing is van toepassing. `intlayer.org/fr/about` bedient Franse inhoud.
39
+
40
+ ## Configuratie
41
+
42
+ ```typescript fileName="intlayer.config.ts"
43
+ import { Locales, type IntlayerConfig } from "intlayer";
44
+
45
+ const config: IntlayerConfig = {
46
+ internationalization: {
47
+ locales: [
48
+ Locales.ENGLISH,
49
+ Locales.FRENCH,
50
+ Locales.SPANISH,
51
+ Locales.CHINESE,
52
+ ],
53
+ defaultLocale: Locales.ENGLISH,
54
+ },
55
+ routing: {
56
+ mode: "prefix-no-default",
57
+ domains: {
58
+ // Gedeeld domein — en en fr gebruiken prefix-routing op intlayer.org
59
+ en: "intlayer.org",
60
+ // Exclusief domein — zh heeft een eigen hostname, geen /zh/-prefix nodig
61
+ zh: "intlayer.zh",
62
+ },
63
+ },
64
+ };
65
+
66
+ export default config;
67
+ ```
68
+
69
+ Locales die niet in `domains` staan, blijven de standaard prefix-routing gebruiken zonder domeinoverschrijving.
70
+
71
+ ## URL-generatie
72
+
73
+ `getLocalizedUrl` genereert automatisch het juiste URL-type op basis van de aanroepende context.
74
+
75
+ ### Dezelfde-domein locale (relatieve URL)
76
+
77
+ ```ts
78
+ // Huidige pagina: intlayer.org/about
79
+ getLocalizedUrl("/about", "fr", { currentDomain: "intlayer.org" });
80
+ // → "/fr/about"
81
+
82
+ getLocalizedUrl("/about", "en", { currentDomain: "intlayer.org" });
83
+ // → "/about" (standaard locale, geen prefix)
84
+ ```
85
+
86
+ ### Domeinoverschrijdende locale (absolute URL)
87
+
88
+ ```ts
89
+ // Huidige pagina: intlayer.org/about
90
+ getLocalizedUrl("/about", "zh", { currentDomain: "intlayer.org" });
91
+ // → "https://intlayer.zh/about" (exclusief domein, geen /zh/-prefix)
92
+ ```
93
+
94
+ ### Bedienen vanaf het eigen domein van de locale
95
+
96
+ ```ts
97
+ // Huidige pagina: intlayer.zh/about
98
+ getLocalizedUrl("/about", "zh", { currentDomain: "intlayer.zh" });
99
+ // → "/about" (al op het juiste domein — relatieve URL)
100
+
101
+ getLocalizedUrl("/about", "fr", { currentDomain: "intlayer.zh" });
102
+ // → "https://intlayer.org/fr/about" (domeinoverschrijdende link terug naar intlayer.org)
103
+ ```
104
+
105
+ ### Automatische detectie van het huidige domein
106
+
107
+ `currentDomain` is optioneel. Indien weggelaten, lost `getLocalizedUrl` dit in deze volgorde op:
108
+
109
+ 1. De hostname van een absolute input-URL (bijv. `https://intlayer.org/about` → `intlayer.org`).
110
+ 2. `window.location.hostname` in browseromgevingen.
111
+ 3. Als geen van beide beschikbaar is (SSR zonder expliciete optie), wordt een relatieve URL geretourneerd voor locales op hetzelfde domein en wordt er geen absolute URL gegenereerd — dit is de veilige fallback.
112
+
113
+ ```ts
114
+ // Browser — window.location.hostname === 'intlayer.org'
115
+ getLocalizedUrl("/about", "zh");
116
+ // → "https://intlayer.zh/about" (automatisch gedetecteerd door window)
117
+
118
+ // Vanaf een absolute URL — domein automatisch gedetecteerd
119
+ getLocalizedUrl("https://intlayer.org/about", "zh");
120
+ // → "https://intlayer.zh/about"
121
+ ```
122
+
123
+ ### `getMultilingualUrls` met domeinen
124
+
125
+ `getMultilingualUrls` roept `getLocalizedUrl` aan voor elke locale, dus het genereert een mix van relatieve en absolute URL's afhankelijk van het domein van de aanroeper:
126
+
127
+ ```ts
128
+ // currentDomain: 'intlayer.org'
129
+ getMultilingualUrls("/about", { currentDomain: "intlayer.org" });
130
+ // {
131
+ // en: "/about",
132
+ // fr: "/fr/about",
133
+ // es: "/es/about",
134
+ // zh: "https://intlayer.zh/about",
135
+ // }
136
+ ```
137
+
138
+ Deze absolute URL's zijn klaar voor gebruik in `<link rel="alternate" hreflang="...">` tags voor SEO.
139
+
140
+ ## Proxy-gedrag
141
+
142
+ ### Next.js
143
+
144
+ De `intlayerProxy`-middleware handelt domeinrouting automatisch af. Voeg deze toe aan uw `middleware.ts`:
145
+
146
+ ```typescript fileName="middleware.ts"
147
+ export { intlayerProxy as default } from "next-intlayer/proxy";
148
+
149
+ export const config = {
150
+ matcher: "/((?!api|static|assets|robots|sitemap|.*\\..*|_next).*)",
151
+ };
152
+ ```
153
+
154
+ **Redirect** — verzoek komt binnen op het verkeerde domein voor een gegeven locale-prefix:
155
+
156
+ ```
157
+ GET intlayer.org/zh/about
158
+ → 301 https://intlayer.zh/about
159
+ ```
160
+
161
+ **Rewrite** — verzoek komt binnen op het exclusieve domein van de locale zonder prefix:
162
+
163
+ ```
164
+ GET intlayer.zh/about
165
+ → herschrijven naar /zh/about (alleen interne Next.js-routing, URL blijft schoon)
166
+ ```
167
+
168
+ ### Vite
169
+
170
+ De `intlayerProxy` Vite-plugin past dezelfde logica toe tijdens ontwikkeling:
171
+
172
+ ```typescript fileName="vite.config.ts"
173
+ import { defineConfig } from "vite";
174
+ import { intlayerProxy } from "vite-intlayer";
175
+
176
+ export default defineConfig({
177
+ plugins: [intlayerProxy()],
178
+ });
179
+ ```
180
+
181
+ > **Opmerking**: bij lokale ontwikkeling bevindt u zich meestal op `localhost`, dus domeinoverschrijdende omleidingen verwijzen naar de live domeinen in plaats van naar een andere lokale poort. Gebruik een hosts-bestandsoverschrijving (bijv. `127.0.0.1 intlayer.zh`) of een reverse proxy als u multidomeinrouting lokaal wilt testen.
182
+
183
+ ## Locale-kiezer (Locale Switcher)
184
+
185
+ De `useLocale`-hook van `next-intlayer` handelt domeinbewuste navigatie automatisch af. Wanneer een gebruiker overschakelt naar een locale op een ander domein, voert de hook een volledige paginanavigatie uit (`window.location.href`) in plaats van een client-side routerpush, omdat de Next.js-router geen cross-origin navigatie kan uitvoeren.
186
+
187
+ ```tsx fileName="components/LocaleSwitcher.tsx"
188
+ "use client";
189
+
190
+ import { useLocale } from "next-intlayer";
191
+
192
+ export const LocaleSwitcher = () => {
193
+ const { availableLocales, locale, setLocale } = useLocale();
194
+
195
+ return (
196
+ <ul>
197
+ {availableLocales.map((localeEl) => (
198
+ <li key={localeEl}>
199
+ <button
200
+ onClick={() => setLocale(localeEl)}
201
+ aria-current={localeEl === locale ? "true" : undefined}
202
+ >
203
+ {l.toUpperCase()}
204
+ </button>
205
+ </li>
206
+ ))}
207
+ </ul>
208
+ );
209
+ };
210
+ ```
211
+
212
+ Er is geen extra configuratie vereist — `useLocale` detecteert intern `window.location.hostname` en beslist tussen `router.replace` (hetzelfde domein) en `window.location.href` (ander domein).
213
+
214
+ ## SEO: `hreflang` alternatieve links
215
+
216
+ Domeingebaseerde routing wordt vaak gebruikt in combinatie met `hreflang` om zoekmachines te laten weten welke URL ze moeten indexeren voor elke taal. Gebruik `getMultilingualUrls` om de volledige set alternatieve URL's te genereren:
217
+
218
+ ```tsx fileName="app/[locale]/layout.tsx"
219
+ import { getMultilingualUrls } from "intlayer";
220
+ import type { Metadata } from "next";
221
+
222
+ export const generateMetadata = (): Metadata => {
223
+ const alternates = getMultilingualUrls("/", {
224
+ currentDomain: process.env.NEXT_PUBLIC_DOMAIN, // bijv. "intlayer.org"
225
+ });
226
+
227
+ return {
228
+ alternates: {
229
+ languages: alternates,
230
+ },
231
+ };
232
+ };
233
+ ```
234
+
235
+ Dit genereert:
236
+
237
+ ```html
238
+ <link rel="alternate" hreflang="en" href="https://intlayer.org/" />
239
+ <link rel="alternate" hreflang="fr" href="https://intlayer.org/fr/" />
240
+ <link rel="alternate" hreflang="es" href="https://intlayer.org/es/" />
241
+ <link rel="alternate" hreflang="zh" href="https://intlayer.zh/" />
242
+ ```
243
+
244
+ ## Kern-utilities
245
+
246
+ | Utility | Beschrijving |
247
+ | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
248
+ | `getLocalizedUrl(url, locale, { currentDomain })` | Retourneert relatieve of absolute URL, afhankelijk van of de doel-locale op het huidige domein staat. |
249
+ | `getMultilingualUrls(url, { currentDomain })` | Retourneert een locale-keyed map van gelokaliseerde URL's, waarbij relatief en absoluut naar behoefte worden gemengd. |
250
+ | `getPrefix(locale, { domains })` | Retourneert een lege prefix voor exclusieve domeinlocales, anders de normale prefix. |