@intlayer/docs 9.3.0 → 9.3.2

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 (217) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +24 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +24 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/types/generated/docs.entry.d.ts +1 -0
  24. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  25. package/docs/ar/configuration.md +10 -10
  26. package/docs/ar/eslint.md +336 -0
  27. package/docs/ar/interest_of_intlayer.md +24 -22
  28. package/docs/ar/intlayer_with_express.md +1 -1
  29. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
  30. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  31. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  32. package/docs/ar/intlayer_with_tanstack.md +5 -3
  33. package/docs/ar/lsp.md +114 -175
  34. package/docs/ar/readme.md +25 -25
  35. package/docs/bn/configuration.md +10 -10
  36. package/docs/bn/eslint.md +336 -0
  37. package/docs/bn/interest_of_intlayer.md +24 -22
  38. package/docs/cs/configuration.md +10 -10
  39. package/docs/cs/eslint.md +336 -0
  40. package/docs/cs/interest_of_intlayer.md +24 -22
  41. package/docs/de/configuration.md +10 -10
  42. package/docs/de/eslint.md +336 -0
  43. package/docs/de/interest_of_intlayer.md +24 -22
  44. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/de/intlayer_with_tanstack.md +5 -3
  47. package/docs/de/lsp.md +111 -172
  48. package/docs/de/readme.md +24 -24
  49. package/docs/en/configuration.md +10 -10
  50. package/docs/en/eslint.md +336 -0
  51. package/docs/en/interest_of_intlayer.md +24 -22
  52. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  53. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  54. package/docs/en/intlayer_with_tanstack.md +5 -3
  55. package/docs/en/lsp.md +109 -170
  56. package/docs/en/readme.md +24 -24
  57. package/docs/en-GB/configuration.md +10 -10
  58. package/docs/en-GB/eslint.md +336 -0
  59. package/docs/en-GB/interest_of_intlayer.md +24 -22
  60. package/docs/en-GB/intlayer_with_create_react_app.md +32 -35
  61. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  62. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  63. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  64. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  65. package/docs/en-GB/lsp.md +109 -170
  66. package/docs/en-GB/readme.md +24 -24
  67. package/docs/es/configuration.md +10 -10
  68. package/docs/es/eslint.md +336 -0
  69. package/docs/es/interest_of_intlayer.md +24 -22
  70. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  71. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  72. package/docs/es/intlayer_with_tanstack.md +5 -3
  73. package/docs/es/lsp.md +114 -175
  74. package/docs/es/readme.md +24 -24
  75. package/docs/fr/configuration.md +10 -10
  76. package/docs/fr/eslint.md +336 -0
  77. package/docs/fr/interest_of_intlayer.md +24 -22
  78. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  79. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  80. package/docs/fr/intlayer_with_tanstack.md +5 -3
  81. package/docs/fr/lsp.md +110 -171
  82. package/docs/fr/readme.md +24 -24
  83. package/docs/hi/configuration.md +10 -10
  84. package/docs/hi/eslint.md +336 -0
  85. package/docs/hi/interest_of_intlayer.md +24 -22
  86. package/docs/hi/intlayer_with_express.md +1 -1
  87. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  88. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  89. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  90. package/docs/hi/intlayer_with_tanstack.md +5 -3
  91. package/docs/hi/intlayer_with_vite+svelte.md +2 -2
  92. package/docs/hi/lsp.md +113 -174
  93. package/docs/hi/readme.md +24 -24
  94. package/docs/id/configuration.md +10 -10
  95. package/docs/id/eslint.md +336 -0
  96. package/docs/id/interest_of_intlayer.md +24 -22
  97. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  98. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  99. package/docs/id/intlayer_with_tanstack.md +5 -3
  100. package/docs/id/lsp.md +113 -174
  101. package/docs/id/readme.md +24 -24
  102. package/docs/it/configuration.md +10 -10
  103. package/docs/it/eslint.md +336 -0
  104. package/docs/it/interest_of_intlayer.md +24 -22
  105. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  106. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  107. package/docs/it/intlayer_with_tanstack.md +5 -3
  108. package/docs/it/lsp.md +115 -176
  109. package/docs/it/readme.md +24 -24
  110. package/docs/ja/configuration.md +10 -10
  111. package/docs/ja/eslint.md +336 -0
  112. package/docs/ja/interest_of_intlayer.md +24 -22
  113. package/docs/ja/intlayer_with_react_router_v7.md +1 -146
  114. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  115. package/docs/ja/intlayer_with_tanstack.md +5 -3
  116. package/docs/ja/intlayer_with_vite+react.md +5 -1
  117. package/docs/ja/lsp.md +113 -174
  118. package/docs/ja/readme.md +24 -24
  119. package/docs/ko/configuration.md +10 -10
  120. package/docs/ko/eslint.md +336 -0
  121. package/docs/ko/interest_of_intlayer.md +24 -22
  122. package/docs/ko/intlayer_with_lynx+react.md +4 -0
  123. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
  124. package/docs/ko/intlayer_with_storybook.md +5 -5
  125. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ko/intlayer_with_tanstack.md +5 -3
  128. package/docs/ko/lsp.md +112 -173
  129. package/docs/ko/readme.md +24 -24
  130. package/docs/nl/configuration.md +10 -10
  131. package/docs/nl/eslint.md +336 -0
  132. package/docs/nl/interest_of_intlayer.md +24 -22
  133. package/docs/pl/configuration.md +10 -10
  134. package/docs/pl/eslint.md +336 -0
  135. package/docs/pl/interest_of_intlayer.md +4 -2
  136. package/docs/pl/intlayer_with_astro.md +1 -114
  137. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  138. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  139. package/docs/pl/intlayer_with_tanstack.md +5 -3
  140. package/docs/pl/lsp.md +115 -176
  141. package/docs/pl/migration_from_i18next_to_intlayer.md +4 -0
  142. package/docs/pl/migration_from_next-i18next_to_intlayer.md +8 -4
  143. package/docs/pl/migration_from_next-intl_to_intlayer.md +11 -5
  144. package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  145. package/docs/pl/migration_from_react-i18next_to_intlayer.md +8 -4
  146. package/docs/pl/migration_from_vue-i18n_to_intlayer.md +4 -0
  147. package/docs/pl/readme.md +24 -24
  148. package/docs/pt/configuration.md +10 -10
  149. package/docs/pt/eslint.md +336 -0
  150. package/docs/pt/interest_of_intlayer.md +24 -22
  151. package/docs/pt/intlayer_with_astro.md +1 -114
  152. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  153. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  154. package/docs/pt/intlayer_with_tanstack.md +5 -3
  155. package/docs/pt/lsp.md +113 -174
  156. package/docs/pt/readme.md +24 -24
  157. package/docs/ru/configuration.md +10 -10
  158. package/docs/ru/eslint.md +336 -0
  159. package/docs/ru/interest_of_intlayer.md +24 -22
  160. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  161. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  162. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  163. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  164. package/docs/ru/intlayer_with_tanstack.md +5 -3
  165. package/docs/ru/lsp.md +112 -173
  166. package/docs/ru/readme.md +24 -24
  167. package/docs/tr/configuration.md +10 -10
  168. package/docs/tr/eslint.md +336 -0
  169. package/docs/tr/interest_of_intlayer.md +24 -22
  170. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  171. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  172. package/docs/tr/intlayer_with_tanstack.md +5 -3
  173. package/docs/tr/lsp.md +113 -174
  174. package/docs/tr/readme.md +24 -24
  175. package/docs/uk/configuration.md +10 -10
  176. package/docs/uk/eslint.md +336 -0
  177. package/docs/uk/interest_of_intlayer.md +4 -2
  178. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  179. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  180. package/docs/uk/intlayer_with_tanstack.md +5 -3
  181. package/docs/uk/lsp.md +113 -174
  182. package/docs/uk/packages/angular-intlayer/exports.md +2 -2
  183. package/docs/uk/per_locale_file.md +1 -1
  184. package/docs/uk/readme.md +24 -24
  185. package/docs/ur/configuration.md +10 -10
  186. package/docs/ur/eslint.md +336 -0
  187. package/docs/ur/interest_of_intlayer.md +24 -22
  188. package/docs/vi/configuration.md +10 -10
  189. package/docs/vi/eslint.md +336 -0
  190. package/docs/vi/interest_of_intlayer.md +24 -22
  191. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  192. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  193. package/docs/vi/intlayer_with_tanstack.md +5 -3
  194. package/docs/vi/lsp.md +115 -176
  195. package/docs/vi/readme.md +24 -24
  196. package/docs/zh/configuration.md +10 -10
  197. package/docs/zh/eslint.md +336 -0
  198. package/docs/zh/interest_of_intlayer.md +24 -22
  199. package/docs/zh/intlayer_with_create_react_app.md +4 -0
  200. package/docs/zh/intlayer_with_lynx+react.md +4 -0
  201. package/docs/zh/intlayer_with_nextjs_14.md +0 -2
  202. package/docs/zh/intlayer_with_nextjs_15.md +0 -2
  203. package/docs/zh/intlayer_with_nextjs_page_router.md +0 -2
  204. package/docs/zh/intlayer_with_nuxt.md +1 -1
  205. package/docs/zh/intlayer_with_react_router_v7.md +4 -0
  206. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +4 -0
  207. package/docs/zh/intlayer_with_solid_start.md +1 -1
  208. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  209. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  210. package/docs/zh/intlayer_with_tanstack.md +5 -3
  211. package/docs/zh/intlayer_with_vite+vue.md +0 -2
  212. package/docs/zh/lsp.md +113 -174
  213. package/docs/zh/readme.md +21 -21
  214. package/docs/zh-TW/eslint.md +336 -0
  215. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  216. package/package.json +6 -6
  217. package/src/generated/docs.entry.ts +20 -0
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
404
404
  ai: {
405
405
  /**
406
406
  * Gebruikte AI-provider.
407
- * Opties: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
407
+ * Opties: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
408
408
  * Standaard: 'openai'
409
409
  */
410
410
  provider: "openai",
@@ -1017,15 +1017,15 @@ Intlayer ondersteunt meerdere AI-providers voor maximale flexibiliteit. Momentee
1017
1017
  - **Together.ai**
1018
1018
  - **LM Studio**
1019
1019
 
1020
- | Veld | Beschrijving | Type | Standaard | Voorbeeld | Opmerking |
1021
- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1022
- | `provider` | Provider gebruikt voor AI-functies van Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` | `undefined` | `'anthropic'` | Verschillende providers vereisen verschillende API-sleutels en hebben verschillende prijzen. |
1023
- | `model` | Model gebruikt voor AI-functies. | `string` | Geen | `'gpt-4o-2024-11-20'` | Het specifieke model hangt af van de provider. |
1024
- | `temperature` | Regelt de willekeur van de AI-antwoorden. | `number` | Geen | `0.1` | Hogere temperatuur = creatiever en minder voorspelbaar. |
1025
- | `apiKey` | Uw API-sleutel voor de gekozen provider. | `string` | Geen | `process.env.OPENAI_API_KEY` | Moet geheim worden gehouden; gebruik omgevingsvariabelen. |
1026
- | `applicationContext` | Extra context over uw applicatie om de AI te helpen nauwkeurigere vertalingen te genereren (domein, doelgroep, toon, terminologie). | `string` | Geen | `'Mijn eigen applicatiecontext'` | Kan worden gebruikt om regels toe te voegen (bijv.: `"U moet URL's niet transformeren"`). |
1027
- | `baseURL` | Basis URL voor de AI API. | `string` | Geen | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Kan verwijzen naar een lokaal of aangepast endpoint van de AI API. |
1028
- | `dataSerialization` | Formaat van de dataserialisatie voor AI-functies. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: standaard, betrouwbaar; verbruikt meer tokens.<br/>• `'toon'`: minder tokens, minder stabiel.<br/>• Extra parameters worden als context aan het model doorgegeven (redenaties-inspanning enz.). |
1020
+ | Veld | Beschrijving | Type | Standaard | Voorbeeld | Opmerking |
1021
+ | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1022
+ | `provider` | Provider gebruikt voor AI-functies van Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` &#124; <br/> `'moonshotai'` | `undefined` | `'anthropic'` | Verschillende providers vereisen verschillende API-sleutels en hebben verschillende prijzen. |
1023
+ | `model` | Model gebruikt voor AI-functies. | `string` | Geen | `'gpt-4o-2024-11-20'` | Het specifieke model hangt af van de provider. |
1024
+ | `temperature` | Regelt de willekeur van de AI-antwoorden. | `number` | Geen | `0.1` | Hogere temperatuur = creatiever en minder voorspelbaar. |
1025
+ | `apiKey` | Uw API-sleutel voor de gekozen provider. | `string` | Geen | `process.env.OPENAI_API_KEY` | Moet geheim worden gehouden; gebruik omgevingsvariabelen. |
1026
+ | `applicationContext` | Extra context over uw applicatie om de AI te helpen nauwkeurigere vertalingen te genereren (domein, doelgroep, toon, terminologie). | `string` | Geen | `'Mijn eigen applicatiecontext'` | Kan worden gebruikt om regels toe te voegen (bijv.: `"U moet URL's niet transformeren"`). |
1027
+ | `baseURL` | Basis URL voor de AI API. | `string` | Geen | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Kan verwijzen naar een lokaal of aangepast endpoint van de AI API. |
1028
+ | `dataSerialization` | Formaat van de dataserialisatie voor AI-functies. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: standaard, betrouwbaar; verbruikt meer tokens.<br/>• `'toon'`: minder tokens, minder stabiel.<br/>• Extra parameters worden als context aan het model doorgegeven (redenaties-inspanning enz.). |
1029
1029
 
1030
1030
  ---
1031
1031
 
@@ -0,0 +1,336 @@
1
+ ---
2
+ createdAt: 2026-08-12
3
+ updatedAt: 2026-08-12
4
+ title: ESLint Plugin | Lint-regels voor Intlayer
5
+ description: Detecteer hardgecodeerde strings, dynamische aanroepen die de Intlayer-compiler niet kan optimaliseren en ongebruikte woordenboekinhoud met eslint-plugin-intlayer. Werkt met ESLint en oxlint op React, Vue, Svelte, Angular en Astro.
6
+ keywords:
7
+ - Intlayer
8
+ - ESLint
9
+ - oxlint
10
+ - Linting
11
+ - i18n
12
+ - Internationalisering
13
+ - no-raw-text
14
+ - Hardgecodeerde strings
15
+ - Ongebruikte vertalingen
16
+ - Dode inhoud
17
+ - React
18
+ - Vue
19
+ - Svelte
20
+ - Angular
21
+ slugs:
22
+ - doc
23
+ - eslint
24
+ history:
25
+ - version: 9.3.1
26
+ date: 2026-08-12
27
+ changes: "Initiële geschiedenis"
28
+ author: aymericzip
29
+ ---
30
+
31
+ # ESLint x OXLint Plugin
32
+
33
+ `eslint-plugin-intlayer` detecteert het soort i18n-fouten dat TypeScript niet kan opmerken:
34
+
35
+ 1. **Hardgecodeerde tekst** die nooit in een woordenboek is opgenomen.
36
+ 2. **Dynamische aanroepen** die type-checks doorstaan en functioneren, maar die de Intlayer-compiler niet kan optimaliseren.
37
+ 3. **Dode inhoud (Dead content)** — woordenboeken en velden die nergens in het project worden gelezen (opt-in).
38
+
39
+ Onbekende woordenboeksleutels, onbekende veldpaden en ontbrekende locales zijn al compilatiefouten, dus de plugin herhaalt deze niet.
40
+
41
+ ## Installatie
42
+
43
+ ```bash packageManager="npm"
44
+ npm install --save-dev eslint-plugin-intlayer
45
+ ```
46
+
47
+ ```bash packageManager="pnpm"
48
+ pnpm add --save-dev eslint-plugin-intlayer
49
+ ```
50
+
51
+ ```bash packageManager="yarn"
52
+ yarn add --dev eslint-plugin-intlayer
53
+ ```
54
+
55
+ Vereist ESLint 9 of nieuwer (flat config).
56
+
57
+ ## Gebruik
58
+
59
+ De plugin werkt in zowel ESLint als [oxlint](https://oxc.rs) — dezelfde regels, dezelfde opties.
60
+
61
+ <Tabs defaultTab="eslint">
62
+ <Tab label="ESLint" value="eslint">
63
+
64
+ ```javascript fileName="eslint.config.mjs" codeFormat="esm"
65
+ import intlayer from "eslint-plugin-intlayer";
66
+
67
+ export default [...intlayer.configs.recommended];
68
+ ```
69
+
70
+ Of schakel regels één voor één in:
71
+
72
+ ```javascript fileName="eslint.config.mjs" codeFormat="esm"
73
+ import intlayer from "eslint-plugin-intlayer";
74
+
75
+ export default [
76
+ {
77
+ plugins: { intlayer },
78
+ rules: {
79
+ "intlayer/no-raw-text": "warn",
80
+ "intlayer/static-dictionary-key": "error",
81
+ "intlayer/no-dynamic-field-access": "error",
82
+ "intlayer/enforce-adapter-import": "warn",
83
+ "intlayer/no-unused-content": "warn",
84
+ },
85
+ },
86
+ ];
87
+ ```
88
+
89
+ </Tab>
90
+ <Tab label="oxlint" value="oxlint">
91
+
92
+ ```json fileName=".oxlintrc.json"
93
+ {
94
+ "jsPlugins": ["eslint-plugin-intlayer"],
95
+ "rules": {
96
+ "intlayer/no-raw-text": "warn",
97
+ "intlayer/static-dictionary-key": "error",
98
+ "intlayer/no-dynamic-field-access": "error",
99
+ "intlayer/enforce-adapter-import": "warn"
100
+ }
101
+ }
102
+ ```
103
+
104
+ Twee kanttekeningen: de JS-pluginondersteuning in oxlint is nog in alfa en oxlint ondersteunt geen aangepaste parsers — dus `.vue`-, `.svelte`-, `.astro`-bestanden en Angular-templates worden daar niet gecontroleerd. Voer oxlint uit op uw JS/TS/JSX-bestanden en behoud ESLint voor de rest.
105
+
106
+ `no-unused-content` is hierboven opzettelijk weggelaten: het vereist de werkmap en het gecontroleerde bestandspad uit de regelcontext, wat de alfa JS-plugin-bridge niet garandeert. Voer dit uit onder ESLint.
107
+
108
+ </Tab>
109
+ </Tabs>
110
+
111
+ ### Configuraties
112
+
113
+ | Configuratie | `no-raw-text` | `static-dictionary-key` | `no-dynamic-field-access` | `enforce-adapter-import` | `no-unused-content` |
114
+ | --------------- | --------------------------- | ----------------------- | ------------------------- | ------------------------ | ------------------- |
115
+ | `recommended` | warn | error | error | off | off |
116
+ | `strict` | error (+ niet-JSX literals) | error | error | error | off |
117
+ | `contract-only` | off | error | error | off | off |
118
+
119
+ `recommended` houdt `no-raw-text` opzettelijk op `warn`: als u dit toepast op een bestaande codebase, worden alle onvertaalde strings in één keer zichtbaar, wat uw build niet vanaf dag één zou moeten laten mislukken.
120
+
121
+ `enforce-adapter-import` staat standaard uit — schakel dit expliciet in als u het wilt gebruiken.
122
+
123
+ `no-unused-content` staat uit in elke configuratie, inclusief `strict`. Het is de enige regel die uw Intlayer-configuratie leest en bronbestanden van schijf doorzoekt, dus het inschakelen ervan moet een bewuste keuze zijn in plaats van iets wat een preset automatisch doet.
124
+
125
+ ## Regels
126
+
127
+ ### `no-raw-text`
128
+
129
+ Meldt gebruikersgerichte tekst die niet in een woordenboek is gedeclareerd. Het gebruikt dezelfde detectie als `intlayer extract`, waardoor merknamen, CSS-klassen en technische identifiers worden genegeerd.
130
+
131
+ ```jsx
132
+ // ✗ Gemeld
133
+ <h1>Welcome to our documentation</h1>
134
+ <input placeholder="Enter your email address" />
135
+
136
+ // ✓ Goed
137
+ const { title } = useIntlayer("home");
138
+ <h1>{title}</h1>
139
+ ```
140
+
141
+ Bestanden voor inhoudsdeclaratie (`*.content.ts`, …) worden overgeslagen.
142
+
143
+ Om een heel bestand in één keer te herstellen, voert u `npx intlayer extract` uit en laat u de compiler de strings voor u naar een woordenboek verplaatsen.
144
+
145
+ **Opties**
146
+
147
+ ```javascript fileName="eslint.config.mjs" codeFormat="esm"
148
+ {
149
+ "intlayer/no-raw-text": [
150
+ "warn",
151
+ {
152
+ // Attributen waarvan de waarde gebruikersgerichte tekst is.
153
+ // Standaard: title, placeholder, alt, aria-label, label
154
+ attributes: ["title", "placeholder", "alt", "aria-label", "label"],
155
+
156
+ // Elementen waarvan de inhoud nooit gebruikersgerichte tekst is.
157
+ // Standaard: code, pre, script, style
158
+ ignoreElements: ["code", "pre", "script", "style"],
159
+
160
+ // Reguliere expressies voor tekst die nooit gemeld mag worden.
161
+ ignorePatterns: ["^Powered by"],
162
+
163
+ // Meld ook string-literals buiten markup. Standaard: false
164
+ includeStringLiterals: false,
165
+ },
166
+ ],
167
+ }
168
+ ```
169
+
170
+ ### `static-dictionary-key`
171
+
172
+ Vereist dat de woordenboeksleutel een string-literal is.
173
+
174
+ De compiler kan een woordenboek alleen vooraf laden wanneer deze de sleutel direct op de aanroeplocatie kan lezen. Bij een berekende sleutel wordt de optimalisatie stilzwijgend overgeslagen en worden in plaats daarvan alle woordenboeken gebundeld.
175
+
176
+ ```typescript
177
+ // ✗ Gemeld
178
+ useIntlayer(dictionaryKey);
179
+ useIntlayer(`home-${suffix}`);
180
+ getTranslations({ namespace: page });
181
+
182
+ // ✗ Een variabele is nog steeds geen literal
183
+ const key = "home";
184
+ useIntlayer(key);
185
+
186
+ // ✓ Goed
187
+ useIntlayer("home");
188
+ getTranslations({ namespace: "home" });
189
+ ```
190
+
191
+ Dit geldt voor `useIntlayer`, `getIntlayer` en elke compatibiliteitsadapter (`useTranslation`, `useTranslations`, `formatMessage`, `<FormattedMessage id>`, `<Trans i18nKey>`, …).
192
+
193
+ ### `no-dynamic-field-access`
194
+
195
+ Vereist dat het veld dat u uit een woordenboek leest statisch bekend is.
196
+
197
+ De compiler verwijdert velden waarvan hij niet ziet dat ze worden gebruikt. Een dynamisch berekende toegang is onzichtbaar voor de compiler, waardoor het lezen tijdens runtime `undefined` kan retourneren.
198
+
199
+ ```typescript
200
+ // ✗ Gemeld
201
+ const content = useIntlayer("home");
202
+ content[fieldName];
203
+
204
+ const t = useTranslations("home");
205
+ t(messageKey);
206
+
207
+ // ✓ Goed
208
+ content.title;
209
+ content["title"];
210
+ content.items[0];
211
+ t("hero.title");
212
+ ```
213
+
214
+ ### `enforce-adapter-import`
215
+
216
+ Geeft de voorkeur aan de `@intlayer/*` compatibiliteitsadapter boven het originele pakket. Het origineel verwijst alleen naar Intlayer als de bundler-alias is geconfigureerd; de adapter doet dit altijd. Automatisch te herstellen met `--fix`.
217
+
218
+ ```typescript
219
+ // ✗ Gemeld
220
+ import { useTranslation } from "react-i18next";
221
+ import { getTranslations } from "next-intl/server";
222
+
223
+ // ✓ Goed
224
+ import { useTranslation } from "@intlayer/react-i18next";
225
+ import { getTranslations } from "@intlayer/next-intl/server";
226
+ ```
227
+
228
+ ### `no-unused-content`
229
+
230
+ **Standaard uitgeschakeld.** Meldt inhoud die nergens in uw project wordt gelezen, plus woordenboeksleutels die op meer dan één plek zijn gedeclareerd.
231
+
232
+ ```typescript fileName="src/home.content.ts"
233
+ export default {
234
+ key: "home", // ✗ Gemeld wanneer geen enkele aanroeper in het project om "home" vraagt
235
+ content: {
236
+ title: t({ nl: "Titel", en: "Title" }),
237
+
238
+ // ✗ Gemeld wanneer niets `hero` leest
239
+ hero: {
240
+ subtitle: t({ nl: "Subtitel", en: "Subtitle" }),
241
+ },
242
+ },
243
+ };
244
+ ```
245
+
246
+ In tegenstelling tot de andere regels kan deze regel niet alleen oordelen op basis van het geopende bestand — een veld is alleen ongebruikt ten opzichte van het hele project. Bij de eerste inhoudsdeclaratie van een lint-run laadt deze uw Intlayer-configuratie, scant de bronbestanden die de configuratie declareert (`build.traversePattern`, `compiler.transformPattern`) en voert dezelfde gebruiksanalysator uit die `@intlayer/lsp` en de doorhaling "ongebruikt" in de VS Code-extensie aandrijft. Het resultaat wordt gedurende `cacheTtl` milliseconden in de cache opgeslagen, zodat de scan eenmaal per run plaatsvindt in plaats van per bestand.
247
+
248
+ **Opties**
249
+
250
+ ```javascript fileName="eslint.config.mjs" codeFormat="esm"
251
+ {
252
+ "intlayer/no-unused-content": [
253
+ "warn",
254
+ {
255
+ // Meld woordenboeksleutels waarnaar niets verwijst. Standaard: true
256
+ reportUnusedDictionaries: true,
257
+
258
+ // Meld inhoudsvelden die niets leest. Standaard: true
259
+ reportUnusedFields: true,
260
+
261
+ // Meld sleutels die op meer dan één plek zijn gedeclareerd. Standaard: true
262
+ reportDuplicateKeys: true,
263
+
264
+ // Reguliere expressies voor veldpaden die nooit gemeld mogen worden.
265
+ ignoreFields: ["^meta"],
266
+
267
+ // Projectroot waar de scan begint. Standaard: de werkmap van ESLint
268
+ baseDir: process.cwd(),
269
+
270
+ // Hoe lang een projectscan wordt hergebruikt, in ms. Standaard: 30000
271
+ cacheTtl: 30000,
272
+ },
273
+ ],
274
+ }
275
+ ```
276
+
277
+ Verlaag `cacheTtl` wanneer u lint vanuit een langlopende editorserver en wilt dat bewerkingen sneller worden weergegeven; stel `baseDir` in wanneer een enkele lint-run meerdere Intlayer-projecten in een monorepo omvat.
278
+
279
+ > **Neigt naar stilte.** Een vals-positief resultaat zou hier een vertaling verwijderen, dus er wordt niets gemeld wanneer het woordenboek wordt gebruikt op een manier die de analyse niet kan volgen: het inhoudsobject in zijn geheel doorgegeven, een vertaalfunctie die eraan is gebonden (`const t = useTranslations("home")`), een declaratie bereikt via een directe import (`useDictionary(myDictionary)`), een `nest()` vanuit een ander woordenboek of een veldenlijst die niet-exhaustief is gemaakt door een spread. Single-file componenten (`.vue`, `.svelte`, `.astro`) tellen alsof ze elk veld gebruiken van de woordenboeken die ze vermelden, omdat hun scriptblokken hier niet worden geparseerd.
280
+
281
+ `reportDuplicateKeys` leest de niet-samengevoegde woordenboeken die de build wegschrijft onder `.intlayer/`, dus het blijft stil totdat het project ten minste eenmaal is gebouwd. Twee declaraties die een sleutel delen worden samengevoegd, wat een legitiem patroon is — het rapport bestaat omdat een veld dat aan beide zijden is gedefinieerd stilzwijgend slechts een van de twee waarden behoudt.
282
+
283
+ De analyser wordt geladen vanuit `@intlayer/lsp`, dat als ESM wordt gedistribueerd. De regel vereist daarom een Node-versie die een ES-module kan `require()`-en — Node 20.19+ of 22.12+. Op oudere versies meldt het niets in plaats van de lint-run te laten mislukken.
284
+
285
+ ## Frameworks
286
+
287
+ Elke regel werkt in alle Intlayer-integraties, inclusief binnen Vue-, Svelte- en Angular-templates. U hoeft ESLint alleen te vertellen welke parser elk bestandstype leest.
288
+
289
+ | Framework | Bestanden | Parser |
290
+ | ------------------------- | ----------------- | --------------------------------- |
291
+ | React, Preact, Solid, Lit | `.jsx` `.tsx` | `typescript-eslint` |
292
+ | Next.js | `.jsx` `.tsx` | `typescript-eslint` |
293
+ | Vue, Nuxt | `.vue` | `vue-eslint-parser` |
294
+ | Svelte, SvelteKit | `.svelte` | `svelte-eslint-parser` |
295
+ | Angular | `.ts` | `typescript-eslint` |
296
+ | Angular-templates | `.component.html` | `@angular-eslint/template-parser` |
297
+ | Astro | `.astro` | `astro-eslint-parser` |
298
+
299
+ ```javascript fileName="eslint.config.mjs" codeFormat="esm"
300
+ import intlayer from "eslint-plugin-intlayer";
301
+ import tseslint from "typescript-eslint";
302
+ import vueParser from "vue-eslint-parser";
303
+ import svelteParser from "svelte-eslint-parser";
304
+ import angularTemplateParser from "@angular-eslint/template-parser";
305
+
306
+ export default [
307
+ ...intlayer.configs.recommended,
308
+
309
+ {
310
+ files: ["**/*.{ts,tsx,jsx}"],
311
+ languageOptions: { parser: tseslint.parser },
312
+ },
313
+ {
314
+ files: ["**/*.vue"],
315
+ languageOptions: {
316
+ parser: vueParser,
317
+ parserOptions: { parser: tseslint.parser },
318
+ },
319
+ },
320
+ {
321
+ files: ["**/*.svelte"],
322
+ languageOptions: {
323
+ parser: svelteParser,
324
+ parserOptions: { parser: tseslint.parser },
325
+ },
326
+ },
327
+ {
328
+ files: ["**/*.component.html"],
329
+ languageOptions: { parser: angularTemplateParser },
330
+ },
331
+ ];
332
+ ```
333
+
334
+ Installeer alleen de parsers die uw project nodig heeft.
335
+
336
+ > **Bekende beperking.** In Vue- en Angular-templates wordt een expressie zoals `{{ content[key] }}` niet gecontroleerd door `no-dynamic-field-access`. Dynamische aanroepen geschreven in het scriptblok worden normaal opgevangen.
@@ -207,7 +207,7 @@ export const ComponentExample = () => {
207
207
  Deze benadering stelt u in staat om:
208
208
 
209
209
  1. **De ontwikkelingssnelheid te verhogen**
210
- - `.content.{{ts|mjs|cjs|json}}`-bestanden kunnen worden gemaakt met behulp van een VSCode-extensie
210
+ - `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}`-bestanden kunnen worden gemaakt met behulp van een VSCode-extensie
211
211
  - AI-autovervolledigingstools in uw IDE (zoals GitHub Copilot) kunnen u helpen uw inhoud te declareren, waardoor kopiëren/plakken wordt verminderd
212
212
 
213
213
  2. **Uw codebase schoon te houden**
@@ -231,27 +231,27 @@ Deze benadering stelt u in staat om:
231
231
 
232
232
  ## Extra functies van Intlayer
233
233
 
234
- | Functie | Beschrijving |
235
- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
236
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Cross-Framework Ondersteuning**<br><br>Intlayer is compatibel met alle belangrijke frameworks en bibliotheken, waaronder Next.js, React, Vite, Vue.js, Nuxt, Preact, Express en meer. |
237
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript-gestuurd Inhoudsbeheer**<br><br>Benut de flexibiliteit van JavaScript om uw inhoud efficiënt te definiëren en te beheren. <br><br> - [Inhoudsdeclaratie](https://intlayer.org/doc/concept/content) |
238
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>De Intlayer Compiler extraheert automatisch de inhoud uit de componenten en genereert de woordenboekbestanden.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
239
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Inhoudsdeclaratiebestand per taal**<br><br>Versnel uw ontwikkeling door uw inhoud eenmalig te declareren, vóór de automatische generatie.<br><br> - [Inhoudsdeclaratiebestand per taal](https://intlayer.org/doc/concept/per-locale-file) |
240
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Type-Safe Omgeving**<br><br>Gebruik TypeScript om ervoor te zorgen dat uw inhoudsdefinities en code foutloos zijn, terwijl u ook profiteert van IDE-autovervollediging.<br><br> - [TypeScript-configuratie](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
241
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Vereenvoudigde Setup**<br><br>Ga snel aan de slag met minimale configuratie. Pas instellingen voor internationalisering, routing, AI, build en inhoudsverwerking met gemak aan. <br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
242
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Vereenvoudigd Ophalen van Inhoud**<br><br>Het is niet nodig om uw `t`-functie aan te roepen voor elk stukje inhoud. Haal al uw inhoud direct op met behulp van een enkele hook.<br><br> - [React-integratie](https://intlayer.org/doc/environment/create-react-app) |
243
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Consistente Implementatie van Server Components**<br><br>Perfect geschikt voor Next.js server components: gebruik dezelfde implementatie voor zowel client als server components, zonder dat u uw `t`-functie door de hele componentenboom hoeft door te geven. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
244
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Georganiseerde Codebase**<br><br>Houd uw codebase georganiseerder: 1 component = 1 woordenboek in dezelfde map. Vertalingen dicht bij hun respectievelijke componenten verbeteren de onderhoudbaarheid en duidelijkheid. <br><br> - [Hoe Intlayer werkt](https://intlayer.org/doc/concept/how-works-intlayer) |
245
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Verbeterde Routing**<br><br>Volledige ondersteuning van app-routing, die zich naadloos aanpast aan complexe applicatiestructuren, voor Next.js, React, Vite, Vue.js, enz.<br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
246
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown-ondersteuning**<br><br>Importeer en interpreteer lokale bestanden en externe Markdown voor meertalige inhoud zoals privacybeleid, documentatie, enz. Interpreteer Markdown-metadata en maak deze toegankelijk in uw code.<br><br> - [Inhoudsbestanden](https://intlayer.org/doc/concept/content/file) |
247
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Gratis Visuele Editor & CMS**<br><br>Een gratis visuele editor en CMS zijn beschikbaar voor contentschrijvers, waardoor een extern lokalisatieplatform overbodig is. Houd uw inhoud gesynchroniseerd met behulp van Git, of externaliseer deze geheel of gedeeltelijk met het CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
248
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Inhoud**<br><br>Tree-shakable inhoud, waardoor de grootte van het uiteindelijke pakket wordt verminderd. Laadt inhoud per component en sluit alle ongebruikte inhoud uit uw pakket uit. Ondersteunt lazy loading om de laadefficiëntie van de app te verbeteren. <br><br> - [App build-optimalisatie](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
249
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Statische Rendering**<br><br>Blokeert statische rendering niet. <br><br> - [Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
250
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-gestuurde Vertaling**<br><br>Vertaal uw website met slechts één klik in 231 talen met behulp van de geavanceerde AI-gestuurde vertaaltools van Intlayer met uw eigen AI-provider/API-sleutel. <br><br> - [CI/CD-integratie](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatisch invullen](https://intlayer.org/doc/concept/auto-fill) |
251
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP Serverintegratie**<br><br>Biedt een MCP (Model Context Protocol) server voor IDE-automatisering, waardoor naadloos inhoudsbeheer en i18n-workflows direct binnen uw ontwikkelomgeving mogelijk zijn. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/nl/mcp_server.md) |
252
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode-extensie**<br><br>Intlayer biedt een VSCode-extensie om u te helpen uw inhoud en vertalingen te beheren, uw woordenboeken te bouwen, uw inhoud te vertalen en meer. <br><br> - [VSCode-extensie](https://intlayer.org/doc/vs-code-extension) |
253
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperabiliteit**<br><br>Maakt interoperabiliteit met react-i18next, next-i18next, next-intl en react-intl mogelijk. <br><br> - [Intlayer en react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer en next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer en next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
254
- | Testen op ontbrekende vertalingen (CLI/CI) | ✅ CLI: npx intlayer content test (CI-vriendelijke audit) |
234
+ | Functie | Beschrijving |
235
+ | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
236
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Cross-Framework Ondersteuning**<br><br>Intlayer is compatibel met alle belangrijke frameworks en bibliotheken, waaronder Next.js, React, Vite, Vue.js, Nuxt, Preact, Express en meer. |
237
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript-gestuurd Inhoudsbeheer**<br><br>Benut de flexibiliteit van JavaScript om uw inhoud efficiënt te definiëren en te beheren. <br><br> - [Inhoudsdeclaratie](https://intlayer.org/doc/concept/content) |
238
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>De Intlayer Compiler extraheert automatisch de inhoud uit de componenten en genereert de woordenboekbestanden.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
239
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Inhoudsdeclaratiebestand per taal**<br><br>Versnel uw ontwikkeling door uw inhoud eenmalig te declareren, vóór de automatische generatie.<br><br> - [Inhoudsdeclaratiebestand per taal](https://intlayer.org/doc/concept/per-locale-file) |
240
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Type-Safe Omgeving**<br><br>Gebruik TypeScript om ervoor te zorgen dat uw inhoudsdefinities en code foutloos zijn, terwijl u ook profiteert van IDE-autovervollediging.<br><br> - [TypeScript-configuratie](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
241
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Vereenvoudigde Setup**<br><br>Ga snel aan de slag met minimale configuratie. Pas instellingen voor internationalisering, routing, AI, build en inhoudsverwerking met gemak aan. <br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
242
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Vereenvoudigd Ophalen van Inhoud**<br><br>Het is niet nodig om uw `t`-functie aan te roepen voor elk stukje inhoud. Haal al uw inhoud direct op met behulp van een enkele hook.<br><br> - [React-integratie](https://intlayer.org/doc/environment/create-react-app) |
243
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Consistente Implementatie van Server Components**<br><br>Perfect geschikt voor Next.js server components: gebruik dezelfde implementatie voor zowel client als server components, zonder dat u uw `t`-functie door de hele componentenboom hoeft door te geven. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
244
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Georganiseerde Codebase**<br><br>Houd uw codebase georganiseerder: 1 component = 1 woordenboek in dezelfde map. Vertalingen dicht bij hun respectievelijke componenten verbeteren de onderhoudbaarheid en duidelijkheid. <br><br> - [Hoe Intlayer werkt](https://intlayer.org/doc/concept/how-works-intlayer) |
245
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Verbeterde Routing**<br><br>Volledige ondersteuning van app-routing, die zich naadloos aanpast aan complexe applicatiestructuren, voor Next.js, React, Vite, Vue.js, enz.<br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
246
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown-ondersteuning**<br><br>Importeer en interpreteer lokale bestanden en externe Markdown voor meertalige inhoud zoals privacybeleid, documentatie, enz. Interpreteer Markdown-metadata en maak deze toegankelijk in uw code.<br><br> - [Inhoudsbestanden](https://intlayer.org/doc/concept/content/file) |
247
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Gratis Visuele Editor & CMS**<br><br>Een gratis visuele editor en CMS zijn beschikbaar voor contentschrijvers, waardoor een extern lokalisatieplatform overbodig is. Houd uw inhoud gesynchroniseerd met behulp van Git, of externaliseer deze geheel of gedeeltelijk met het CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
248
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Inhoud**<br><br>Tree-shakable inhoud, waardoor de grootte van het uiteindelijke pakket wordt verminderd. Laadt inhoud per component en sluit alle ongebruikte inhoud uit uw pakket uit. Ondersteunt lazy loading om de laadefficiëntie van de app te verbeteren. <br><br> - [App build-optimalisatie](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
249
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Statische Rendering**<br><br>Blokeert statische rendering niet. <br><br> - [Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
250
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-gestuurde Vertaling**<br><br>Vertaal uw website met slechts één klik in 231 talen met behulp van de geavanceerde AI-gestuurde vertaaltools van Intlayer met uw eigen AI-provider/API-sleutel. <br><br> - [CI/CD-integratie](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatisch invullen](https://intlayer.org/doc/concept/auto-fill) |
251
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP Serverintegratie**<br><br>Biedt een MCP (Model Context Protocol) server voor IDE-automatisering, waardoor naadloos inhoudsbeheer en i18n-workflows direct binnen uw ontwikkelomgeving mogelijk zijn. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/nl/mcp_server.md) |
252
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode-extensie**<br><br>Intlayer biedt een VSCode-extensie om u te helpen uw inhoud en vertalingen te beheren, uw woordenboeken te bouwen, uw inhoud te vertalen en meer. <br><br> - [VSCode-extensie](https://intlayer.org/doc/vs-code-extension) |
253
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperabiliteit**<br><br>Maakt interoperabiliteit met react-i18next, next-i18next, next-intl en react-intl mogelijk. <br><br> - [Intlayer en react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer en next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer en next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer compat-adapters](https://intlayer.org/doc/compatibility) |
254
+ | Testen op ontbrekende vertalingen (CLI/CI) | ✅ CLI: npx intlayer content test (CI-vriendelijke audit) |
255
255
 
256
256
  ## Vergelijking van Intlayer met andere oplossingen
257
257
 
@@ -290,3 +290,5 @@ GitHub-sterren zijn een sterke indicator van de populariteit van een project, he
290
290
  `intlayer` kan u ook helpen bij het beheren van uw `react-intl`, `react-i18next`, `next-intl`, `next-i18next` en `vue-i18n` namespaces.
291
291
 
292
292
  Door `intlayer` te gebruiken, kunt u uw inhoud declareren in het formaat van uw favoriete i18n-bibliotheek, en intlayer genereert uw namespaces op de locatie van uw keuze (voorbeeld: `/messages/{{locale}}/{{namespace}}.json`).
293
+
294
+ Als u de API van uw huidige i18n-bibliotheek wilt blijven gebruiken, biedt `intlayer` ook **compat-adapters**: pakketten die exact dezelfde API blootstellen als `react-i18next`, `next-intl`, `react-intl`, `vue-i18n` en andere, maar die worden bediend door Intlayer-woordenboeken. Zo kunt u geleidelijk migreren zonder uw code te herschrijven. Zie de [documentatie over compat-adapters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md).
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
404
404
  ai: {
405
405
  /**
406
406
  * Wybrany dostawca AI.
407
- * Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
407
+ * Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
408
408
  * Domyślnie: 'openai'
409
409
  */
410
410
  provider: "openai",
@@ -1032,15 +1032,15 @@ Intlayer obsługuje szeroką gamę dostawców AI, aby zapewnić maksymalną elas
1032
1032
  - **Together.ai**
1033
1033
  - **LM Studio**
1034
1034
 
1035
- | Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
1036
- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1037
- | `provider` | Dostawca, który będzie używany do funkcji AI w Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` | `undefined` | `'anthropic'` | Różni dostawcy wymagają różnych kluczy API i mają różne cenniki. |
1038
- | `model` | Model AI do użycia w funkcjach AI. | `string` | Brak | `'gpt-4o-2024-11-20'` | Konkretne modele zależą od dostawcy. |
1039
- | `temperature` | Kontroluje losowość odpowiedzi AI. | `number` | Brak | `0.1` | Wyższa temperatura = bardziej kreatywne, ale mniej niezawodne odpowiedzi. |
1040
- | `apiKey` | Twój klucz API dla wybranego dostawcy. | `string` | Brak | `process.env.OPENAI_API_KEY` | Musi pozostać tajny; używaj zmiennych środowiskowych. |
1041
- | `applicationContext` | Dodatkowy kontekst o Twojej aplikacji, aby pomóc AI generować dokładniejsze tłumaczenia (domena, grupa docelowa, ton, terminologia). | `string` | Brak | `'mój własny kontekst aplikacji'` | Można użyć do dodania zasad (np.: `"Nie powinieneś tłumaczyć swoich URL"` ). |
1042
- | `baseURL` | Bazowy URL dla API AI. | `string` | Brak | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Może wskazywać na lokalne lub własne punkty końcowe API AI. |
1043
- | `dataSerialization` | Format serializacji danych dla funkcji AI. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: domyślnie, niezawodne; zużywa więcej tokenów.<br/>• `'toon'`: mniej tokenów, mniej stabilne.<br/>• Przekazuje modelowi kontekst jako dodatkowy parametr (reasoning effort itp.). |
1035
+ | Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
1036
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1037
+ | `provider` | Dostawca, który będzie używany do funkcji AI w Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` &#124; <br/> `'moonshotai'` | `undefined` | `'anthropic'` | Różni dostawcy wymagają różnych kluczy API i mają różne cenniki. |
1038
+ | `model` | Model AI do użycia w funkcjach AI. | `string` | Brak | `'gpt-4o-2024-11-20'` | Konkretne modele zależą od dostawcy. |
1039
+ | `temperature` | Kontroluje losowość odpowiedzi AI. | `number` | Brak | `0.1` | Wyższa temperatura = bardziej kreatywne, ale mniej niezawodne odpowiedzi. |
1040
+ | `apiKey` | Twój klucz API dla wybranego dostawcy. | `string` | Brak | `process.env.OPENAI_API_KEY` | Musi pozostać tajny; używaj zmiennych środowiskowych. |
1041
+ | `applicationContext` | Dodatkowy kontekst o Twojej aplikacji, aby pomóc AI generować dokładniejsze tłumaczenia (domena, grupa docelowa, ton, terminologia). | `string` | Brak | `'mój własny kontekst aplikacji'` | Można użyć do dodania zasad (np.: `"Nie powinieneś tłumaczyć swoich URL"` ). |
1042
+ | `baseURL` | Bazowy URL dla API AI. | `string` | Brak | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Może wskazywać na lokalne lub własne punkty końcowe API AI. |
1043
+ | `dataSerialization` | Format serializacji danych dla funkcji AI. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: domyślnie, niezawodne; zużywa więcej tokenów.<br/>• `'toon'`: mniej tokenów, mniej stabilne.<br/>• Przekazuje modelowi kontekst jako dodatkowy parametr (reasoning effort itp.). |
1044
1044
 
1045
1045
  ---
1046
1046