@intlayer/docs 8.3.0-canary.4 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/docs/ar/compiler.md +84 -49
  2. package/docs/ar/configuration.md +80 -37
  3. package/docs/ar/intlayer_with_nextjs_16.md +174 -1
  4. package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
  5. package/docs/ar/intlayer_with_react_router_v7.md +224 -1
  6. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
  7. package/docs/ar/intlayer_with_svelte_kit.md +175 -2
  8. package/docs/ar/intlayer_with_tanstack.md +176 -1
  9. package/docs/ar/intlayer_with_vite+preact.md +174 -1
  10. package/docs/ar/intlayer_with_vite+react.md +174 -1
  11. package/docs/ar/intlayer_with_vite+solid.md +174 -1
  12. package/docs/ar/intlayer_with_vite+svelte.md +174 -1
  13. package/docs/ar/intlayer_with_vite+vue.md +174 -1
  14. package/docs/de/compiler.md +83 -48
  15. package/docs/de/configuration.md +434 -212
  16. package/docs/de/intlayer_with_nextjs_16.md +176 -1
  17. package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
  18. package/docs/de/intlayer_with_react_router_v7.md +225 -2
  19. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
  20. package/docs/de/intlayer_with_svelte_kit.md +158 -2
  21. package/docs/de/intlayer_with_tanstack.md +159 -1
  22. package/docs/de/intlayer_with_vite+preact.md +157 -1
  23. package/docs/de/intlayer_with_vite+react.md +157 -1
  24. package/docs/de/intlayer_with_vite+solid.md +159 -3
  25. package/docs/de/intlayer_with_vite+svelte.md +157 -1
  26. package/docs/de/intlayer_with_vite+vue.md +157 -1
  27. package/docs/en/compiler.md +60 -33
  28. package/docs/en/configuration.md +80 -57
  29. package/docs/en/intlayer_with_nextjs_16.md +176 -0
  30. package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
  31. package/docs/en/intlayer_with_react_router_v7.md +159 -0
  32. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
  33. package/docs/en/intlayer_with_svelte_kit.md +159 -0
  34. package/docs/en/intlayer_with_tanstack.md +160 -1
  35. package/docs/en/intlayer_with_vite+preact.md +159 -0
  36. package/docs/en/intlayer_with_vite+react.md +159 -0
  37. package/docs/en/intlayer_with_vite+solid.md +148 -27
  38. package/docs/en/intlayer_with_vite+svelte.md +159 -0
  39. package/docs/en/intlayer_with_vite+vue.md +142 -41
  40. package/docs/en-GB/compiler.md +66 -34
  41. package/docs/en-GB/configuration.md +78 -36
  42. package/docs/es/compiler.md +83 -48
  43. package/docs/es/configuration.md +429 -206
  44. package/docs/es/intlayer_with_adonisjs.md +1 -1
  45. package/docs/es/intlayer_with_express.md +1 -1
  46. package/docs/es/intlayer_with_fastify.md +1 -1
  47. package/docs/es/intlayer_with_hono.md +1 -1
  48. package/docs/es/intlayer_with_nestjs.md +1 -1
  49. package/docs/es/intlayer_with_nextjs_16.md +176 -3
  50. package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
  51. package/docs/es/intlayer_with_nuxt.md +1 -1
  52. package/docs/es/intlayer_with_react_router_v7.md +227 -4
  53. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
  54. package/docs/es/intlayer_with_svelte_kit.md +158 -2
  55. package/docs/es/intlayer_with_tanstack.md +160 -2
  56. package/docs/es/intlayer_with_vite+preact.md +162 -6
  57. package/docs/es/intlayer_with_vite+react.md +160 -4
  58. package/docs/es/intlayer_with_vite+solid.md +163 -7
  59. package/docs/es/intlayer_with_vite+svelte.md +157 -1
  60. package/docs/es/intlayer_with_vite+vue.md +165 -9
  61. package/docs/fr/compiler.md +81 -46
  62. package/docs/fr/configuration.md +355 -134
  63. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  64. package/docs/fr/intlayer_with_express.md +1 -1
  65. package/docs/fr/intlayer_with_fastify.md +1 -1
  66. package/docs/fr/intlayer_with_hono.md +1 -1
  67. package/docs/fr/intlayer_with_nestjs.md +1 -1
  68. package/docs/fr/intlayer_with_nextjs_16.md +183 -7
  69. package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
  70. package/docs/fr/intlayer_with_react_router_v7.md +229 -3
  71. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
  72. package/docs/fr/intlayer_with_svelte_kit.md +158 -2
  73. package/docs/fr/intlayer_with_tanstack.md +159 -1
  74. package/docs/fr/intlayer_with_vite+preact.md +164 -8
  75. package/docs/fr/intlayer_with_vite+react.md +162 -6
  76. package/docs/fr/intlayer_with_vite+solid.md +163 -7
  77. package/docs/fr/intlayer_with_vite+svelte.md +157 -1
  78. package/docs/fr/intlayer_with_vite+vue.md +164 -8
  79. package/docs/hi/compiler.md +81 -46
  80. package/docs/hi/configuration.md +87 -44
  81. package/docs/hi/intlayer_with_nextjs_16.md +174 -1
  82. package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
  83. package/docs/hi/intlayer_with_react_router_v7.md +224 -1
  84. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  85. package/docs/hi/intlayer_with_svelte_kit.md +158 -2
  86. package/docs/hi/intlayer_with_tanstack.md +159 -1
  87. package/docs/hi/intlayer_with_vite+preact.md +157 -1
  88. package/docs/hi/intlayer_with_vite+react.md +157 -1
  89. package/docs/hi/intlayer_with_vite+solid.md +157 -1
  90. package/docs/hi/intlayer_with_vite+svelte.md +157 -1
  91. package/docs/hi/intlayer_with_vite+vue.md +157 -1
  92. package/docs/id/compiler.md +84 -51
  93. package/docs/id/configuration.md +83 -45
  94. package/docs/id/intlayer_with_nextjs_16.md +174 -1
  95. package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
  96. package/docs/id/intlayer_with_react_router_v7.md +224 -1
  97. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
  98. package/docs/id/intlayer_with_svelte_kit.md +158 -2
  99. package/docs/id/intlayer_with_tanstack.md +159 -1
  100. package/docs/id/intlayer_with_vite+preact.md +157 -1
  101. package/docs/id/intlayer_with_vite+react.md +157 -1
  102. package/docs/id/intlayer_with_vite+solid.md +157 -1
  103. package/docs/id/intlayer_with_vite+svelte.md +157 -1
  104. package/docs/id/intlayer_with_vite+vue.md +157 -1
  105. package/docs/it/compiler.md +81 -46
  106. package/docs/it/configuration.md +426 -204
  107. package/docs/it/intlayer_with_nextjs_16.md +174 -1
  108. package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
  109. package/docs/it/intlayer_with_react_router_v7.md +225 -2
  110. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
  111. package/docs/it/intlayer_with_svelte_kit.md +158 -2
  112. package/docs/it/intlayer_with_tanstack.md +159 -1
  113. package/docs/it/intlayer_with_vite+preact.md +157 -1
  114. package/docs/it/intlayer_with_vite+react.md +157 -1
  115. package/docs/it/intlayer_with_vite+solid.md +159 -3
  116. package/docs/it/intlayer_with_vite+svelte.md +157 -1
  117. package/docs/it/intlayer_with_vite+vue.md +157 -1
  118. package/docs/ja/compiler.md +94 -58
  119. package/docs/ja/configuration.md +88 -45
  120. package/docs/ja/intlayer_with_nextjs_16.md +174 -1
  121. package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
  122. package/docs/ja/intlayer_with_react_router_v7.md +184 -394
  123. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
  124. package/docs/ja/intlayer_with_svelte_kit.md +119 -595
  125. package/docs/ja/intlayer_with_tanstack.md +131 -642
  126. package/docs/ja/intlayer_with_vite+preact.md +111 -1231
  127. package/docs/ja/intlayer_with_vite+react.md +129 -1304
  128. package/docs/ja/intlayer_with_vite+solid.md +159 -3
  129. package/docs/ja/intlayer_with_vite+svelte.md +157 -1
  130. package/docs/ja/intlayer_with_vite+vue.md +157 -1
  131. package/docs/ko/compiler.md +88 -52
  132. package/docs/ko/configuration.md +87 -44
  133. package/docs/ko/intlayer_with_nextjs_16.md +174 -1
  134. package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
  135. package/docs/ko/intlayer_with_react_router_v7.md +225 -2
  136. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
  137. package/docs/ko/intlayer_with_svelte_kit.md +158 -2
  138. package/docs/ko/intlayer_with_tanstack.md +159 -1
  139. package/docs/ko/intlayer_with_vite+preact.md +157 -1
  140. package/docs/ko/intlayer_with_vite+react.md +157 -1
  141. package/docs/ko/intlayer_with_vite+solid.md +159 -3
  142. package/docs/ko/intlayer_with_vite+svelte.md +157 -1
  143. package/docs/ko/intlayer_with_vite+vue.md +157 -1
  144. package/docs/pl/compiler.md +84 -51
  145. package/docs/pl/configuration.md +83 -37
  146. package/docs/pl/intlayer_with_nextjs_16.md +174 -1
  147. package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
  148. package/docs/pl/intlayer_with_react_router_v7.md +224 -1
  149. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
  150. package/docs/pl/intlayer_with_svelte_kit.md +158 -2
  151. package/docs/pl/intlayer_with_tanstack.md +159 -1
  152. package/docs/pl/intlayer_with_vite+preact.md +157 -1
  153. package/docs/pl/intlayer_with_vite+react.md +157 -1
  154. package/docs/pl/intlayer_with_vite+solid.md +157 -1
  155. package/docs/pl/intlayer_with_vite+svelte.md +157 -1
  156. package/docs/pl/intlayer_with_vite+vue.md +157 -1
  157. package/docs/pt/compiler.md +81 -46
  158. package/docs/pt/configuration.md +404 -194
  159. package/docs/pt/intlayer_with_nextjs_16.md +174 -1
  160. package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
  161. package/docs/pt/intlayer_with_react_router_v7.md +224 -1
  162. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
  163. package/docs/pt/intlayer_with_svelte_kit.md +158 -2
  164. package/docs/pt/intlayer_with_tanstack.md +159 -1
  165. package/docs/pt/intlayer_with_vite+preact.md +157 -1
  166. package/docs/pt/intlayer_with_vite+react.md +157 -1
  167. package/docs/pt/intlayer_with_vite+solid.md +157 -1
  168. package/docs/pt/intlayer_with_vite+svelte.md +157 -1
  169. package/docs/pt/intlayer_with_vite+vue.md +157 -1
  170. package/docs/ru/compiler.md +90 -57
  171. package/docs/ru/configuration.md +76 -46
  172. package/docs/ru/intlayer_with_nextjs_16.md +174 -1
  173. package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
  174. package/docs/ru/intlayer_with_react_router_v7.md +224 -1
  175. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
  176. package/docs/ru/intlayer_with_svelte_kit.md +158 -2
  177. package/docs/ru/intlayer_with_tanstack.md +159 -1
  178. package/docs/ru/intlayer_with_vite+preact.md +157 -1
  179. package/docs/ru/intlayer_with_vite+react.md +157 -1
  180. package/docs/ru/intlayer_with_vite+solid.md +157 -1
  181. package/docs/ru/intlayer_with_vite+svelte.md +157 -1
  182. package/docs/ru/intlayer_with_vite+vue.md +157 -1
  183. package/docs/tr/compiler.md +85 -52
  184. package/docs/tr/configuration.md +83 -40
  185. package/docs/tr/intlayer_with_nextjs_16.md +174 -1
  186. package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
  187. package/docs/tr/intlayer_with_react_router_v7.md +224 -1
  188. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
  189. package/docs/tr/intlayer_with_svelte_kit.md +158 -2
  190. package/docs/tr/intlayer_with_tanstack.md +159 -1
  191. package/docs/tr/intlayer_with_vite+preact.md +157 -1
  192. package/docs/tr/intlayer_with_vite+react.md +157 -1
  193. package/docs/tr/intlayer_with_vite+solid.md +157 -1
  194. package/docs/tr/intlayer_with_vite+svelte.md +157 -1
  195. package/docs/tr/intlayer_with_vite+vue.md +157 -1
  196. package/docs/uk/compiler.md +96 -61
  197. package/docs/uk/configuration.md +83 -37
  198. package/docs/uk/intlayer_with_nextjs_16.md +174 -1
  199. package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
  200. package/docs/uk/intlayer_with_react_router_v7.md +224 -1
  201. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
  202. package/docs/uk/intlayer_with_svelte_kit.md +157 -1
  203. package/docs/uk/intlayer_with_tanstack.md +159 -1
  204. package/docs/uk/intlayer_with_vite+preact.md +157 -1
  205. package/docs/uk/intlayer_with_vite+react.md +157 -1
  206. package/docs/uk/intlayer_with_vite+solid.md +157 -1
  207. package/docs/uk/intlayer_with_vite+svelte.md +157 -1
  208. package/docs/uk/intlayer_with_vite+vue.md +157 -1
  209. package/docs/vi/compiler.md +85 -50
  210. package/docs/vi/configuration.md +85 -39
  211. package/docs/vi/intlayer_with_nextjs_16.md +174 -1
  212. package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
  213. package/docs/vi/intlayer_with_react_router_v7.md +224 -1
  214. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  215. package/docs/vi/intlayer_with_svelte_kit.md +158 -2
  216. package/docs/vi/intlayer_with_tanstack.md +159 -1
  217. package/docs/vi/intlayer_with_vite+preact.md +157 -1
  218. package/docs/vi/intlayer_with_vite+react.md +157 -1
  219. package/docs/vi/intlayer_with_vite+solid.md +157 -1
  220. package/docs/vi/intlayer_with_vite+svelte.md +157 -1
  221. package/docs/vi/intlayer_with_vite+vue.md +157 -1
  222. package/docs/zh/compiler.md +84 -49
  223. package/docs/zh/configuration.md +80 -37
  224. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  225. package/docs/zh/intlayer_with_express.md +1 -1
  226. package/docs/zh/intlayer_with_fastify.md +1 -1
  227. package/docs/zh/intlayer_with_hono.md +1 -1
  228. package/docs/zh/intlayer_with_nestjs.md +1 -1
  229. package/docs/zh/intlayer_with_nextjs_16.md +174 -1
  230. package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
  231. package/docs/zh/intlayer_with_react_router_v7.md +227 -4
  232. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
  233. package/docs/zh/intlayer_with_svelte_kit.md +158 -2
  234. package/docs/zh/intlayer_with_tanstack.md +159 -1
  235. package/docs/zh/intlayer_with_vite+preact.md +159 -3
  236. package/docs/zh/intlayer_with_vite+react.md +157 -1
  237. package/docs/zh/intlayer_with_vite+solid.md +161 -5
  238. package/docs/zh/intlayer_with_vite+svelte.md +157 -1
  239. package/docs/zh/intlayer_with_vite+vue.md +158 -2
  240. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-11
3
+ updatedAt: 2026-03-12
4
4
  title: Konfiguration
5
5
  description: Erfahren Sie, wie Sie Intlayer für Ihre Anwendung konfigurieren. Verstehen Sie die verschiedenen Einstellungen und Optionen, um Intlayer an Ihre Bedürfnisse anzupassen.
6
6
  keywords:
@@ -13,25 +13,33 @@ slugs:
13
13
  - doc
14
14
  - concept
15
15
  - configuration
16
- history:
17
- - version: 8.3.0
18
- data: 2026-03-11
16
+ history - version: 8.3.0
17
+ date: 2026-03-11
19
18
  changes: Verschiebe 'baseDir' von 'content' nach 'system' Konfiguration
20
19
  - version: 8.2.0
21
- date: 2026-03-10
20
+ date: 2026-03-09
22
21
  changes: Compiler-Optionen aktualisieren, Unterstützung für 'output' und 'noMetadata' hinzufügen
23
22
  - version: 8.1.7
24
23
  date: 2026-02-25
25
24
  changes: Compiler-Optionen aktualisieren
25
+ - version: 8.1.5
26
+ date: 2026-02-23
27
+ changes: Compiler-Option 'build-only' und Wörterbuch-Präfix hinzugefügt
26
28
  - version: 8.0.6
27
29
  date: 2026-02-12
28
30
  changes: Unterstützung für Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face und Together.ai Provider hinzufügen
29
31
  - version: 8.0.5
30
32
  date: 2026-02-06
31
33
  changes: Hinzufügen von `dataSerialization` zur KI-Konfiguration
34
+ - version: 8.0.0
35
+ date: 2026-01-24
36
+ changes: Importmodus `live` in `fetch` umbenannt, um den zugrunde liegenden Mechanismus besser zu beschreiben.
37
+ - version: 8.0.0
38
+ date: 2026-01-22
39
+ changes: Build-Konfiguration für `importMode` in die Wörterbuch-Konfiguration verschoben.
32
40
  - version: 8.0.0
33
41
  date: 2026-01-22
34
- changes: Build-Konfiguration für importMode in die Wörterbuch-Konfiguration verschoben.
42
+ changes: Option `rewrite` zur Routing-Konfiguration hinzugefügt
35
43
  - version: 8.0.0
36
44
  date: 2026-01-18
37
45
  changes: Systemkonfiguration von der Inhaltskonfiguration trennen. Interne Pfade zur Eigenschaft `system` verschieben. `codeDir` hinzufügen, um Inhaltsdateien von der Codetransformation zu trennen.
@@ -44,6 +52,24 @@ history:
44
52
  - version: 7.5.0
45
53
  date: 2025-12-17
46
54
  changes: Hinzufügen der Option `buildMode`
55
+ - version: 7.0.0
56
+ date: 2025-10-25
57
+ changes: Konfiguration für `dictionary` hinzugefügt
58
+ - version: 7.0.0
59
+ date: 2025-10-21
60
+ changes: `middleware` durch `routing`-Konfiguration ersetzt
61
+ - version: 7.0.0
62
+ date: 2025-10-12
63
+ changes: Option `formatCommand` hinzugefügt
64
+ - version: 6.2.0
65
+ date: 2025-10-12
66
+ changes: Option `excludedPath` aktualisiert
67
+ - version: 6.0.2
68
+ date: 2025-09-23
69
+ changes: Option `outputFormat` hinzugefügt
70
+ - version: 6.0.0
71
+ date: 2025-09-21
72
+ changes: Feld `dictionaryOutput` und Feld `i18nextResourcesDir` entfernt
47
73
  - version: 6.0.0
48
74
  date: 2025-09-16
49
75
  changes: `live` Importmodus hinzugefügt
@@ -58,7 +84,7 @@ history:
58
84
  changes: Ändere das Standard-`contentDir` von `['src']` zu `['.']`
59
85
  - version: 5.5.11
60
86
  date: 2025-06-29
61
- changes: Füge `docs`-Befehle hinzu
87
+ changes: Füge `docs`-Befehle hinzue `docs`-Befehle hinzu
62
88
  ---
63
89
 
64
90
  # Intlayer Konfigurationsdokumentation
@@ -92,7 +118,7 @@ Intlayer akzeptiert JSON-, JS-, MJS- und TS-Konfigurationsdateiformate:
92
118
 
93
119
  ## Beispiel für eine Konfigurationsdatei
94
120
 
95
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
121
+ ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
122
  import { Locales, type IntlayerConfig } from "intlayer";
97
123
  import { nextjsRewrite } from "intlayer/routing";
98
124
  import { z } from "zod";
@@ -190,7 +216,7 @@ const config: IntlayerConfig = {
190
216
  * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
191
217
  * Default: ['cookie', 'header']
192
218
  */
193
- storage: "cookie",
219
+ storage: ["cookie", "header"],
194
220
 
195
221
  /**
196
222
  * Base path for the application URLs.
@@ -321,12 +347,23 @@ const config: IntlayerConfig = {
321
347
  /**
322
348
  * Global context to guide the AI in generating translations.
323
349
  */
324
- applicationContext: "This is a travel booking application.",
350
+ applicationContext: "Dies ist eine App zur Reisebuchung.",
325
351
 
326
352
  /**
327
353
  * Base URL for the AI API.
328
354
  */
329
355
  baseURL: "http://localhost:3000",
356
+
357
+ /**
358
+ * Datenserialisierung
359
+ *
360
+ * Optionen:
361
+ * - "json": Standard, zuverlässig; verbraucht mehr Token.
362
+ * - "toon": Weniger Token, weniger konsistent als JSON.
363
+ *
364
+ * Standard: "json"
365
+ */
366
+ dataSerialization: "json",
330
367
  },
331
368
 
332
369
  /**
@@ -349,9 +386,9 @@ const config: IntlayerConfig = {
349
386
 
350
387
  /**
351
388
  * Output format for generated dictionary files.
352
- * Default: ['esm', 'cjs']
389
+ * Default: ['cjs', 'esm']
353
390
  */
354
- outputFormat: ["esm"],
391
+ outputFormat: ["cjs", "esm"],
355
392
 
356
393
  /**
357
394
  * Indicates if the build should check TypeScript types.
@@ -426,42 +463,70 @@ const config: IntlayerConfig = {
426
463
  compiler: {
427
464
  /**
428
465
  * Gibt an, ob der Compiler aktiviert werden soll.
466
+ *
467
+ * - false : Deaktiviert den Compiler.
468
+ * - true : Aktiviert den Compiler.
469
+ * - "build-only" : Überspringt den Compiler während der Entwicklung, um die Startzeiten zu beschleunigen.
470
+ *
471
+ * Standardwert : false
429
472
  */
430
473
  enabled: true,
431
474
 
432
475
  /**
433
- * Pattern to traverse the code to optimize.
434
- */
435
- transformPattern: [
436
- "**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
437
- "!**/node_modules/**",
438
- ],
439
-
440
- /**
441
- * Pattern to exclude from the optimization.
442
- */
443
- excludePattern: ["**/node_modules/**"],
444
-
445
- /**
446
- * Ausgabeverzeichnis für die optimierten Wörterbücher.
476
+ * Definiert den Pfad der Ausgabedateien. Ersetzt `outputDir`.
477
+ *
478
+ * - `./` Pfade werden relativ zum Verzeichnis der Komponente aufgelöst.
479
+ * - `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst.
480
+ *
481
+ * - Das Einbeziehen der Variable `{{locale}}` im Pfad löst die Generierung separater Wörterbücher pro Sprache aus.
482
+ *
483
+ * Beispiel:
484
+ * ```ts
485
+ * {
486
+ * // Erstelle mehrsprachige .content.ts-Dateien in der Nähe der Komponente
487
+ * output: ({ fileName, extension }) => `./${fileName}${extension}`,
488
+ *
489
+ * // output: './{{fileName}}{{extension}}', // Äquivalent mit einem Template-String
490
+ * }
491
+ * ```
492
+ *
493
+ * ```ts
494
+ * {
495
+ * // Erstelle zentralisierte JSON-Dateien pro Sprache im Projektstamm
496
+ * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
497
+ *
498
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // Äquivalent mit einem Template-String
499
+ * }
500
+ * ```
501
+ *
502
+ * Liste der Variablen:
503
+ * - `fileName`: Der Name der Datei.
504
+ * - `key`: Der Schlüssel des Inhalts.
505
+ * - `locale`: Die Sprache des Inhalts.
506
+ * - `extension`: Die Dateierweiterung.
507
+ * - `componentFileName`: Der Dateiname der Komponente.
508
+ * - `componentExtension`: Die Dateierweiterung der Komponente.
509
+ * - `format`: Das Wörterbuchformat.
510
+ * - `componentFormat`: Das Wörterbuchformat der Komponente.
511
+ * - `componentDirPath`: Der Verzeichnispfad der Komponente.
447
512
  */
448
513
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
449
514
 
450
515
  /**
451
- * Fügen Sie nur den Inhalt in die generierte Datei ein, ohne Schlüssel.
516
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
517
+ * Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
452
518
  */
453
- noMetadata: false,
519
+ saveComponents: false,
454
520
 
455
521
  /**
456
- * Wörterbuch-Präfix
522
+ * Nur Inhalt in die generierte Datei einfügen. Nützlich für i18next- oder ICU-MessageFormat-JSON-Ausgaben pro Sprache.
457
523
  */
458
- dictionaryKeyPrefix: "", // Remove base prefix
524
+ noMetadata: false,
459
525
 
460
526
  /**
461
- * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
462
- * Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
527
+ * Wörterbuch-Schlüssel-Präfix
463
528
  */
464
- saveComponents: false,
529
+ dictionaryKeyPrefix: "", // Optionales Präfix für extrahierte Wörterbuchschlüssel hinzufügen
465
530
  },
466
531
 
467
532
  /**
@@ -480,7 +545,7 @@ const config: IntlayerConfig = {
480
545
  };
481
546
 
482
547
  export default config;
483
- ```
548
+ ````
484
549
 
485
550
  ## Konfigurationsreferenz
486
551
 
@@ -616,95 +681,243 @@ Definiert Einstellungen im Zusammenhang mit dem integrierten Editor, einschließ
616
681
  - _Beispiel_: `'https://example.com'`
617
682
  - _Hinweis_: Standardmäßig zeigt es auf localhost, kann aber auf jede beliebige URL geändert werden, falls ein entfernter Live-Sync-Server verwendet wird.
618
683
 
619
- ### Middleware-Konfiguration
684
+ ### Routing-Konfiguration
620
685
 
621
- Einstellungen, die das Verhalten der Middleware steuern, einschließlich wie die Anwendung Cookies, Header und URL-Präfixe für die Verwaltung von Sprachversionen behandelt.
686
+ Einstellungen, die das Routing-Verhalten steuern, einschließlich URL-Struktur, Locale-Speicherung und Middleware-Handhabung.
622
687
 
623
688
  #### Eigenschaften
624
689
 
625
- - **headerName**:
626
- - _Typ_: `string`
627
- - _Standard_: `'x-intlayer-locale'`
628
- - _Beschreibung_: Der Name des HTTP-Headers, der zur Bestimmung der Sprache verwendet wird.
629
- - _Beispiel_: `'x-custom-locale'`
630
- - _Hinweis_: Nützlich für die sprachliche Bestimmung über APIs.
631
-
632
- - **cookieName**:
633
- - _Typ_: `string`
634
- - _Standard_: `'intlayer-locale'`
635
- - _Beschreibung_: Der Name des Cookies, das zur Speicherung der Sprache verwendet wird.
636
- - _Beispiel_: `'custom-locale'`
637
- - _Hinweis_: Wird verwendet, um die Locale über Sitzungen hinweg zu speichern.
638
-
639
- - **prefixDefault**:
640
- - _Typ_: `boolean`
641
- - _Standard_: `false`
642
- - _Beschreibung_: Ob die Standard-Locale in der URL enthalten sein soll.
643
- - _Beispiel_: `true`
644
- - _Hinweis_:
645
- - Wenn `true` und `defaultLocale = 'en'`: Pfad = `/en/dashboard` oder `/fr/dashboard`
646
- - Wenn `false` und `defaultLocale = 'en'`: Pfad = `/dashboard` oder `/fr/dashboard`
690
+ - **mode**:
691
+ - _Typ_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
692
+ - _Standard_: `'prefix-no-default'`
693
+ - _Beschreibung_: URL-Routing-Modus zur Handhabung von Locales.
694
+ - _Beispiele_:
695
+ - `'prefix-no-default'`: `/dashboard` (en) oder `/fr/dashboard` (fr)
696
+ - `'prefix-all'`: `/en/dashboard` (en) oder `/fr/dashboard` (fr)
697
+ - `'no-prefix'`: `/dashboard` (Ländererkennung durch andere Mittel)
698
+ - `'search-params'`: `/dashboard?locale=fr`
699
+ - _Hinweis_: Diese Einstellung hat keinen Einfluss auf die Cookie-Verwaltung oder die Locale-Speicherung.
700
+
701
+ - **storage**:
702
+ - _Typ_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
703
+ - _Standard_: `['cookie', 'header']`
704
+ - _Beschreibung_: Konfiguration zur Speicherung der Locale beim Client.
705
+
706
+ - **cookie**:
707
+ - _Beschreibung_: Speichert Daten in Cookies, kleinen im Browser des Clients gespeicherten Datenfragmenten, die sowohl client- als auch serverseitig zugänglich sind.
708
+ - _Hinweis_: Stellen Sie für eine DSGVO-konforme Speicherung sicher, dass die Zustimmung des Nutzers vor der Verwendung eingeholt wird.
709
+ - _Hinweis_: Cookie-Parameter sind anpassbar, wenn sie als CookiesAttributes definiert sind (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
710
+
711
+ - **localStorage**:
712
+ - _Beschreibung_: Speichert Daten im Browser ohne Ablaufdatum, was eine Datenpersistenz über Sitzungen hinweg ermöglicht; nur clientseitig zugänglich.
713
+ - _Hinweis_: Ideal für die langfristige Datenspeicherung, beachten Sie jedoch Datenschutz- und Sicherheitsimplikationen.
714
+ - _Hinweis_: Local Storage ist nur clientseitig zugänglich; der Intlayer-Proxy kann darauf nicht zugreifen.
715
+ - _Hinweis_: Local Storage-Parameter sind anpassbar, wenn sie als StorageAttributes definiert sind (`{ type: 'localStorage', name: 'custom-locale' }`).
716
+
717
+ - **sessionStorage**:
718
+ - _Beschreibung_: Speichert Daten für die Dauer einer Seitensitzung, d.h. sie werden gelöscht, sobald der Tab oder das Fenster geschlossen wird; nur clientseitig zugänglich.
719
+ - _Hinweis_: Geeignet für die temporäre Datenspeicherung pro Sitzung.
720
+ - _Hinweis_: Local Storage ist nur clientseitig zugänglich; der Intlayer-Proxy kann darauf nicht zugreifen.
721
+ - _Hinweis_: Local Storage-Parameter sind anpassbar, wenn sie als StorageAttributes definiert sind (`{ type: 'sessionStorage', name: 'custom-locale' }`).
722
+
723
+ - **header**:
724
+ - _Beschreibung_: Verwendet HTTP-Header zum Speichern oder Übertragen von Locale-Daten, geeignet für die serverseitige Sprachbestimmung.
725
+ - _Hinweis_: Nützlich bei API-Aufrufen, um konsistente Spracheinstellungen über Anfragen hinweg beizubehalten.
726
+ - _Hinweis_: Der Header ist nur serverseitig zugänglich; die Clientseite kann darauf nicht zugreifen.
727
+ - _Hinweis_: Der Header-Name ist anpassbar, wenn er als StorageAttributes definiert ist (`{ type: 'header', name: 'custom-locale' }`).
647
728
 
648
729
  - **basePath**:
649
730
  - _Typ_: `string`
650
731
  - _Standard_: `''`
651
- - _Beschreibung_: Der Basis-Pfad für die Anwendungs-URLs.
732
+ - _Beschreibung_: Der Basispfad für die Anwendungs-URLs.
652
733
  - _Beispiel_: `'/my-app'`
653
734
  - _Hinweis_:
654
- - Wenn die Anwendung unter `https://example.com/my-app` gehostet wird
655
- - Der Basis-Pfad ist `'/my-app'`
656
- - Die URL wird `https://example.com/my-app/en` sein
657
- - Wenn der Basis-Pfad nicht gesetzt ist, wird die URL `https://example.com/en` sein.
735
+ - Wenn die Anwendung unter `https://example.com/my-app` gehostet wird,
736
+ - ist der Basispfad `'/my-app'`.
737
+ - Die URL lautet dann `https://example.com/my-app/en`.
738
+ - Wenn kein Basispfad gesetzt ist, lautet die URL `https://example.com/en`.
658
739
 
659
740
  - **rewrite**:
660
741
  - _Typ_: `Record<string, StrictModeLocaleMap<string>>`
661
742
  - _Standard_: `undefined`
662
- - _Beschreibung_: Benutzerdefinierte URL-Umschreiberegeln, die den Standard-Routing-Modus für bestimmte Pfade überschreiben. Ermöglicht die Definition sprachspezifischer Pfade, die sich vom Standard-Routing-Verhalten unterscheiden. Unterstützt dynamische Routenparameter mit der Syntax `[param]`.
743
+ - _Beschreibung_: Benutzerdefinierte URL-Umschreibungsregeln, die den Standard-Routing-Modus für bestimmte Pfade außer Kraft setzen. Ermöglicht die Definition sprachspezifischer Pfade, die vom Standard-Routing-Verhalten abweichen. Unterstützt dynamische Routenparameter mit der Syntax `[param]`.
663
744
  - _Beispiel_:
664
745
  ```typescript
665
746
  routing: {
666
747
  mode: "prefix-no-default", // Fallback-Strategie
667
748
  rewrite: nextjsRewrite({
668
- "/[locale]/about": {
669
- en: "/[locale]/about",
670
- fr: "/[locale]/a-propos",
749
+ "/about": {
750
+ en: "/about",
751
+ fr: "/a-propos",
671
752
  },
672
- "/[locale]/product/[slug]": {
673
- en: "/[locale]/product/[slug]",
674
- fr: "/[locale]/produit/[slug]",
753
+ "/product/[slug]": {
754
+ en: "/product/[slug]",
755
+ fr: "/produit/[slug]",
675
756
  },
676
- "/[locale]/blog/[category]/[id]": {
677
- en: "/[locale]/blog/[category]/[id]",
678
- fr: "/[locale]/journal/[category]/[id]",
757
+ "/blog/[category]/[id]": {
758
+ en: "/blog/[category]/[id]",
759
+ fr: "/journal/[category]/[id]",
679
760
  },
680
761
  }),
681
762
  }
682
763
  ```
683
- - _Hinweis_: Die Umschreiberegeln haben Vorrang vor dem Standard-`mode`-Verhalten. Wenn ein Pfad mit einer Umschreiberegel übereinstimmt, wird der lokalisierte Pfad aus der Umschreibkonfiguration anstelle der Standard-Sprachpräfixierung verwendet.
684
- - _Hinweis_: Dynamische Routenparameter werden mit der Klammernotation unterstützt (z. B. `[slug]`, `[id]`). Die Parameterwerte werden automatisch aus der URL extrahiert und in den umgeschriebenen Pfad interpoliert.
685
- - _Hinweis_: Funktioniert mit Next.js- und Vite-Anwendungen. Der Middleware/Proxy schreibt eingehende Anfragen automatisch um, um der internen Routenstruktur zu entsprechen.
686
- - _Hinweis_: Beim Generieren von URLs mit `getLocalizedUrl()` werden die Umschreiberegeln automatisch angewendet, wenn sie mit dem bereitgestellten Pfad übereinstimmen.
764
+ - _Hinweis_: Umschreibungsregeln haben Vorrang vor dem Standard-`mode`-Verhalten. Wenn ein Pfad mit einer Umschreibungsregel übereinstimmt, wird der lokalisierte Pfad aus der Umschreibungskonfiguration anstelle des Standard-Sprachpräfixes verwendet.
765
+ - _Hinweis_: Dynamische Routenparameter werden über die Klammernotation unterstützt (z. B. `[slug]`, `[id]`). Parameterwerte werden automatisch aus der URL extrahiert und in den umgeschriebenen Pfad interpoliert.
766
+ - _Hinweis_: Funktioniert mit Next.js- und Vite-Anwendungen. Die Middleware/der Proxy schreibt eingehende Anfragen automatisch um, damit sie der internen Routenstruktur entsprechen.
767
+ - _Hinweis_: Beim Generieren von URLs mit `getLocalizedUrl()` werden Umschreibungsregeln automatisch angewendet, wenn sie mit dem angegebenen Pfad übereinstimmen.
687
768
  - _Referenz_: Weitere Informationen finden Sie unter [Benutzerdefinierte URL-Umschreibungen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/custom_url_rewrites.md).
688
769
 
689
- - **serverSetCookie**:
690
- - _Typ_: `string`
691
- - _Standard_: `'always'`
692
- - _Beschreibung_: Regel zum Setzen des Locale-Cookies auf dem Server.
693
- - _Optionen_: `'always'`, `'never'`
694
- - _Beispiel_: `'never'`
695
- - _Hinweis_: Steuert, ob das Locale-Cookie bei jeder Anfrage oder nie gesetzt wird.
770
+ #### Cookie-Attribute
696
771
 
697
- - **noPrefix**:
698
- - _Typ_: `boolean`
699
- - _Standard_: `false`
700
- - _Beschreibung_: Ob das Locale-Präfix in URLs weggelassen wird.
701
- - _Beispiel_: `true`
702
- - _Hinweis_:
703
- - Wenn `true`: Kein Präfix in der URL
704
- - Wenn `false`: Präfix in der URL
705
- - Beispiel mit `basePath = '/my-app'`:
706
- - Wenn `noPrefix = false`: URL wird `https://example.com/my-app/en` sein
707
- - Wenn `noPrefix = true`: URL wird `https://example.com` sein
772
+ Bei Verwendung der Cookie-Speicherung können Sie zusätzliche Cookie-Attribute konfigurieren:
773
+
774
+ - **name**: Cookie-Name (Standard: `'INTLAYER_LOCALE'`)
775
+ - **domain**: Cookie-Domain (Standard: undefined)
776
+ - **path**: Cookie-Pfad (Standard: undefined)
777
+ - **secure**: Erfordert HTTPS (Standard: undefined)
778
+ - **httpOnly**: HTTP-only Flag (Standard: undefined)
779
+ - **sameSite**: SameSite-Richtlinie (`'strict' | 'lax' | 'none'`)
780
+ - **expires**: Ablaufdatum oder Tage (Standard: undefined)
781
+
782
+ #### Locale-SpeicherAttribute
783
+
784
+ Bei Verwendung von localStorage oder sessionStorage:
785
+
786
+ - **type**: Speichertyp (`'localStorage' | 'sessionStorage'`)
787
+ - **name**: Name des Speicherschlüssels (Standard: `'INTLAYER_LOCALE'`)
788
+
789
+ #### Konfigurationsbeispiele
790
+
791
+ Hier sind einige gängige Konfigurationsbeispiele für die neue Routing-Struktur (v8):
792
+
793
+ **Basiskonfiguration (Standard)**:
794
+
795
+ ```typescript
796
+ import { Locales, type IntlayerConfig } from "intlayer";
797
+ // intlayer.config.ts
798
+ const config: IntlayerConfig = {
799
+ internationalization: {
800
+ locales: ["en", "fr", "es"],
801
+ defaultLocale: "en",
802
+ },
803
+ routing: {
804
+ mode: "prefix-no-default",
805
+ storage: "localStorage",
806
+ basePath: "",
807
+ },
808
+ };
809
+
810
+ export default config;
811
+ ```
812
+
813
+ **DSGVO-konforme Konfiguration**:
814
+
815
+ ```typescript
816
+ import { Locales, type IntlayerConfig } from "intlayer";
817
+ // intlayer.config.ts
818
+ const config: IntlayerConfig = {
819
+ internationalization: {
820
+ locales: ["en", "fr", "es"],
821
+ defaultLocale: "en",
822
+ },
823
+ routing: {
824
+ mode: "prefix-no-default",
825
+ storage: [
826
+ {
827
+ type: "localStorage",
828
+ name: "user-locale",
829
+ },
830
+ {
831
+ type: "cookie",
832
+ name: "user-locale",
833
+ secure: true,
834
+ sameSite: "strict",
835
+ httpOnly: false,
836
+ },
837
+ ],
838
+ basePath: "",
839
+ },
840
+ };
841
+
842
+ export default config;
843
+ ```
844
+
845
+ **Suchparameter-Modus**:
846
+
847
+ ```typescript
848
+ import { Locales, type IntlayerConfig } from "intlayer";
849
+ // intlayer.config.ts
850
+ const config: IntlayerConfig = {
851
+ internationalization: {
852
+ locales: ["en", "fr", "es"],
853
+ defaultLocale: "en",
854
+ },
855
+ routing: {
856
+ mode: "search-params",
857
+ storage: "localStorage",
858
+ basePath: "",
859
+ },
860
+ };
861
+
862
+ export default config;
863
+ ```
864
+
865
+ **Präfixfreier Modus mit benutzerdefiniertem Speicher**:
866
+
867
+ ```typescript
868
+ import { Locales, type IntlayerConfig } from "intlayer";
869
+ // intlayer.config.ts
870
+ const config: IntlayerConfig = {
871
+ internationalization: {
872
+ locales: ["en", "fr", "es"],
873
+ defaultLocale: "en",
874
+ },
875
+ routing: {
876
+ mode: "no-prefix",
877
+ storage: {
878
+ type: "sessionStorage",
879
+ name: "app-locale",
880
+ },
881
+ basePath: "/my-app",
882
+ },
883
+ };
884
+
885
+ export default config;
886
+ ```
887
+
888
+ **Benutzerdefinierte URL-Umschreibung mit dynamischen Routen**:
889
+
890
+ ```typescript
891
+ // intlayer.config.ts
892
+ import { nextjsRewrite } from "intlayer/routing";
893
+
894
+ const config: IntlayerConfig = {
895
+ internationalization: {
896
+ locales: ["en", "fr"],
897
+ defaultLocale: "en",
898
+ },
899
+ routing: {
900
+ mode: "prefix-no-default", // Fallback-Strategie für nicht umgeschriebene Pfade
901
+ storage: "cookie",
902
+ rewrite: nextjsRewrite({
903
+ "/about": {
904
+ en: "/about",
905
+ fr: "/a-propos",
906
+ },
907
+ "/product/[slug]": {
908
+ en: "/product/[slug]",
909
+ fr: "/produit/[slug]",
910
+ },
911
+ "/blog/[category]/[id]": {
912
+ en: "/blog/[category]/[id]",
913
+ fr: "/journal/[category]/[id]",
914
+ },
915
+ }),
916
+ },
917
+ };
918
+
919
+ export default config;
920
+ ```
708
921
 
709
922
  ---
710
923
 
@@ -903,125 +1116,130 @@ Intlayer unterstützt mehrere KI-Anbieter für erhöhte Flexibilität und Auswah
903
1116
 
904
1117
  #### Eigenschaften
905
1118
 
906
- - **provider**:
907
- - _Typ_: `string`
908
- - _Standard_: `'openai'`
909
- - _Beschreibung_: Der Anbieter, der für die KI-Funktionen von Intlayer verwendet wird.
910
- - _Optionen_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
911
- - _Beispiel_: `'anthropic'`
912
- - _Hinweis_: Verschiedene Anbieter können unterschiedliche API-Schlüssel erfordern und haben unterschiedliche Preismodelle.
913
-
914
- - **model**:
915
- - _Typ_: `string`
916
- - _Standard_: Keine
917
- - _Beschreibung_: Das Modell, das für die KI-Funktionen von Intlayer verwendet wird.
918
- - _Beispiel_: `'gpt-4o-2024-11-20'`
919
- - _Hinweis_: Das spezifische Modell variiert je nach Anbieter.
920
-
921
- - **temperature**:
922
- - _Typ_: `number`
923
- - _Standard_: Keine
924
- - _Beschreibung_: Die Temperatur steuert die Zufälligkeit der Antworten der KI.
925
- - _Beispiel_: `0.1`
926
- - _Hinweis_: Eine höhere Temperatur macht die KI kreativer und weniger vorhersehbar.
927
-
928
- - **apiKey**:
929
- - _Typ_: `string`
930
- - _Standard_: Keine
931
- - _Beschreibung_: Ihr API-Schlüssel für den ausgewählten Anbieter.
932
- - _Beispiel_: `process.env.OPENAI_API_KEY`
933
- - _Hinweis_: Wichtig: API-Schlüssel sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass sie an einem sicheren Ort aufbewahrt werden, wie z. B. in Umgebungsvariablen.
934
-
935
- - **applicationContext**:
936
- - _Typ_: `string`
937
- - _Standard_: Keine
938
- - _Beschreibung_: Bietet dem KI-Modell zusätzlichen Kontext zu Ihrer Anwendung, um genauere und kontextuell passendere Übersetzungen zu erzeugen. Dies kann Informationen über die Domäne Ihrer App, die Zielgruppe, den Tonfall oder spezifische Terminologie umfassen.
939
-
940
- - **baseURL**:
941
- - _Typ_: `string`
942
- - _Standard_: Keine
943
- - _Beschreibung_: Die Basis-URL für die KI-API.
944
- - _Beispiel_: `'https://api.openai.com/v1'`
945
- - _Hinweis_: Kann verwendet werden, um auf einen lokalen oder benutzerdefinierten KI-API-Endpunkt zu verweisen.
1119
+ - **provider** :
1120
+ - _Typ_ : `string`
1121
+ - _Standard_ : `'openai'`
1122
+ - _Beschreibung_ : Der Provider, der für die KI-Funktionen von Intlayer verwendet werden soll.
1123
+ - _Optionen_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
1124
+ - _Beispiel_ : `'anthropic'`
1125
+ - _Hinweis_: Verschiedene Provider erfordern möglicherweise unterschiedliche API-Schlüssel und haben unterschiedliche Preismodelle.
1126
+
1127
+ - **model** :
1128
+ - _Typ_ : `string`
1129
+ - _Standard_ : Keiner
1130
+ - _Beschreibung_ : Das Modell, das für die KI-Funktionen von Intlayer verwendet werden soll.
1131
+ - _Beispiel_ : `'gpt-4o-2024-11-20'`
1132
+ - _Hinweis_ : Das spezifische zu verwendende Modell variiert je nach Provider.
1133
+
1134
+ - **temperature** :
1135
+ - _Typ_ : `number`
1136
+ - _Standard_ : Keine
1137
+ - _Beschreibung_ : Die Temperatur steuert die Zufälligkeit der KI-Antworten.
1138
+ - _Beispiel_ : `0.1`
1139
+ - _Hinweis_ : Eine höhere Temperatur macht die KI kreativer und weniger vorhersehbar.
1140
+
1141
+ - **apiKey** :
1142
+ - _Typ_ : `string`
1143
+ - _Standard_ : Keine
1144
+ - _Beschreibung_ : Ihr API-Schlüssel für den ausgewählten Provider.
1145
+ - _Beispiel_ : `process.env.OPENAI_API_KEY`
1146
+ - _Hinweis_ : Wichtig: API-Schlüssel sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass sie an einem sicheren Ort, wie z.B. Umgebungsvariablen, aufbewahrt werden.
1147
+
1148
+ - **applicationContext** :
1149
+ - _Typ_ : `string`
1150
+ - _Standard_ : Keiner
1151
+ - _Beschreibung_ : Bietet dem KI-Modell zusätzlichen Kontext über Ihre Anwendung, um genauere und kontextbezogenere Übersetzungen zu generieren. Dies kann Informationen über das Anwendungsgebiet Ihrer App, die Zielgruppe, den Tonfall oder spezifische Terminologie enthalten.
1152
+ - _Hinweis_: Sie können dies verwenden, um dem KI-Modell weitere Regeln hinzuzufügen (z. B. "Sie dürfen URLs nicht transformieren").
1153
+ - _Beispiel_ : `'Mein Anwendungskontext'`
1154
+
1155
+ - **baseURL** :
1156
+ - _Typ_ : `string`
1157
+ - _Standard_ : Keine
1158
+ - _Beschreibung_ : Die Basis-URL für die KI-API.
1159
+ - _Beispiel_ : `'https://api.openai.com/v1'`
1160
+ - _Beispiel_ : `'http://localhost:5000'`
1161
+ - _Hinweis_ : Kann verwendet werden, um auf einen lokalen oder benutzerdefinierten KI-API-Endpunkt zu verweisen.
946
1162
 
947
1163
  - **dataSerialization**:
948
1164
  - _Typ_: `'json' | 'toon'`
949
1165
  - _Standard_: `'json'`
950
- - _Beschreibung_: Das Datenserialisierungsformat für die KI-Funktionen von Intlayer.
1166
+ - _Beschreibung_: Das Datenserialisierungsformat, das für die KI-Funktionen von Intlayer verwendet werden soll.
951
1167
  - _Beispiel_: `'toon'`
952
- - _Hinweis_: `json`: Standard, zuverlässig; verbraucht mehr Token. `toon`: Weniger Token, weniger konsistent als JSON.
1168
+ - _Hinweis_: `json`: Standard, zuverlässig; verbraucht mehr Tokens. `toon`: Weniger Tokens, weniger konsistent als JSON.
1169
+ > Wenn Sie zusätzliche Parameter angeben, wird Intlayer diese als Kontext an das KI-Modell übergeben. Dies kann verwendet werden, um den Reasoning-Aufwand, die Text-Ausführlichkeit usw. anzupassen.
953
1170
 
954
1171
  ### Build-Konfiguration
955
1172
 
956
1173
  Einstellungen, die steuern, wie Intlayer die Internationalisierung Ihrer Anwendung optimiert und baut.
957
1174
 
958
- Build-Optionen gelten für die Plugins `@intlayer/babel` und `@intlayer/swc`.
1175
+ Die Build-Optionen gelten für die Plugins `@intlayer/babel` und `@intlayer/swc`.
959
1176
 
960
- > Im Entwicklungsmodus verwendet Intlayer statische Importe für Wörterbücher, um die Entwicklungserfahrung zu vereinfachen.
1177
+ > Im Entwicklungsmodus verwendet Intlayer statische Importe für die Wörterbücher, um die Entwicklungserfahrung zu vereinfachen.
961
1178
 
962
- > Wenn optimiert, ersetzt Intlayer Wörterbuchaufrufe, um das Chunking zu optimieren, sodass das endgültige Bundle nur die tatsächlich verwendeten Wörterbücher importiert.
1179
+ > Wenn optimiert, wird Intlayer die Aufrufe an die Wörterbücher ersetzen, um das Splitting zu optimieren, so dass das finale Paket nur die tatsächlich verwendeten Wörterbücher importiert.
963
1180
 
964
1181
  #### Eigenschaften
965
1182
 
966
- - **mode**:
967
- - _Typ_: `'auto' | 'manual'`
968
- - _Standard_: `'auto'`
969
- - _Beschreibung_: Steuert den Modus des Builds.
970
- - _Beispiel_: `'manual'`
971
- - _Hinweis_: Wenn 'auto', wird der Build automatisch aktiviert, wenn die Anwendung gebaut wird.
972
- - _Hinweis_: Wenn 'manual', wird der Build nur gesetzt, wenn der Build-Befehl ausgeführt wird.
973
- - _Hinweis_: Kann verwendet werden, um die Erstellung von Wörterbüchern zu deaktivieren, z.B. wenn die Ausführung in einer Node.js-Umgebung vermieden werden sollte.
974
-
975
- - **checkTypes**:
976
- - _Typ_: `boolean`
977
- - _Standard_: `false`
978
- - _Beschreibung_: Gibt an, ob der Build TypeScript-Typen überprüfen und Fehler protokollieren soll.
979
- - _Hinweis_: Dies kann den Build-Vorgang verlangsamen.
980
-
981
- - **optimize**:
982
- - _Typ_: `boolean`
983
- - _Standard_: `process.env.NODE_ENV === 'production'`
984
- - _Beschreibung_: Steuert, ob der Build optimiert werden soll.
985
- - _Beispiel_: `true`
986
- - _Hinweis_: Wenn aktiviert, ersetzt Intlayer alle Wörterbuchaufrufe, um das Chunking zu optimieren. So importiert das endgültige Bundle nur die verwendeten Wörterbücher. Alle Importe bleiben statisch, um asynchrone Verarbeitung beim Laden der Wörterbücher zu vermeiden.
987
- - _Hinweis_: Intlayer ersetzt alle Aufrufe von `useIntlayer` durch den im `importMode`-Parameter definierten Modus und `getIntlayer` durch `getDictionary`.
988
- - _Hinweis_: Diese Option basiert auf den Plugins `@intlayer/babel` und `@intlayer/swc`.
989
- - _Hinweis_: Stellen Sie sicher, dass alle Schlüssel statisch in den `useIntlayer`-Aufrufen deklariert sind, z.B. `useIntlayer('navbar')`.
990
-
991
- - **importMode**:
992
- - _Hinweis_: **Deprecated**: Use `dictionary.importMode` instead.
993
- - _Typ_: `'static' | 'dynamic' | 'fetch'`
994
- - _Standard_: `'static'`
995
- - _Beschreibung_: Steuert, wie Wörterbücher importiert werden.
996
- - _Beispiel_: `'dynamic'`
997
- - _Hinweis_: Verfügbare Modi:
998
- - "static": Wörterbücher werden statisch importiert. Ersetzt `useIntlayer` durch `useDictionary`.
999
- - "dynamic": Wörterbücher werden dynamisch mit Suspense importiert. Ersetzt `useIntlayer` durch `useDictionaryDynamic`.
1000
- - "fetch": Wörterbücher werden dynamisch über die Live-Sync-API abgerufen. Ersetzt `useIntlayer` durch `useDictionaryFetch`.
1001
- - _Hinweis_: Dynamische Importe basieren auf Suspense und können die Rendering-Leistung leicht beeinträchtigen.
1002
- - _Hinweis_: Wenn deaktiviert, werden alle Sprachversionen auf einmal geladen, auch wenn sie nicht verwendet werden.
1003
- - _Hinweis_: Diese Option basiert auf den Plugins `@intlayer/babel` und `@intlayer/swc`.
1004
- - _Hinweis_: Stellen Sie sicher, dass alle Schlüssel statisch in den `useIntlayer`-Aufrufen deklariert sind, z.B. `useIntlayer('navbar')`.
1005
- - _Hinweis_: Diese Option wird ignoriert, wenn `optimize` deaktiviert ist.
1006
- - _Hinweis_: Wenn auf "live" gesetzt, werden nur die Wörterbücher, die entfernte Inhalte enthalten und als "live" markiert sind, im Live-Modus transformiert. Andere werden dynamisch im "dynamic"-Modus importiert, um die Anzahl der Abrufanfragen und die Ladeleistung zu optimieren.
1007
- - _Hinweis_: Der Live-Modus verwendet die Live-Sync-API, um die Wörterbücher abzurufen. Wenn der API-Aufruf fehlschlägt, werden die Wörterbücher dynamisch im "dynamic"-Modus importiert.
1008
- - _Hinweis_: Diese Option hat keine Auswirkungen auf die Funktionen `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` und `useDictionaryDynamic`.
1009
-
1010
- - **outputFormat**:
1011
- - _Typ_: `'esm' | 'cjs'`
1012
- - _Standard_: `'esm'`
1013
- - _Beschreibung_: Steuert das Ausgabeformat der Wörterbücher.
1014
- - _Beispiel_: `'cjs'`
1015
- - _Hinweis_: Das Ausgabeformat der Wörterbücher.
1016
-
1017
- - **traversePattern**:
1018
- - _Typ_: `string[]`
1019
- - _Standard_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1020
- - _Beschreibung_: Muster, die definieren, welche Dateien während der Optimierung durchlaufen werden sollen.
1021
- - _Beispiel_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1022
- - _Hinweis_: Verwenden Sie dies, um die Optimierung auf relevante Code-Dateien zu beschränken und die Build-Leistung zu verbessern.
1023
- - _Hinweis_: Diese Option wird ignoriert, wenn `optimize` deaktiviert ist.
1024
- - _Hinweis_: Verwenden Sie Glob-Muster.
1183
+ - **mode** :
1184
+ - _Typ_ : `'auto' | 'manual'`
1185
+ - _Standard_ : `'auto'`
1186
+ - _Beschreibung_ : Steuert den Build-Modus.
1187
+ - _Beispiel_ : `'manual'`
1188
+ - _Hinweis_ : Wenn 'auto', wird der Build automatisch während des App-Builds ausgelöst.
1189
+ - _Hinweis_ : Wenn 'manual', wird der Build erst ausgelöst, wenn der Build-Befehl ausgeführt wird.
1190
+ - _Hinweis_ : Kann verwendet werden, um den Bau von Wörterbüchern zu deaktivieren, z.B. wenn die Ausführung in einer Node.js-Umgebung vermieden werden soll.
1191
+
1192
+ - **optimize** :
1193
+ - _Typ_ : `boolean`
1194
+ - _Standard_ : `undefined`
1195
+ - _Beschreibung_ : Steuert, ob der Build optimiert werden soll.
1196
+ - _Beispiel_ : `process.env.NODE_ENV === 'production'`
1197
+ - _Hinweis_ : Standardmäßig ist die Build-Optimierung nicht festgelegt. Wenn sie nicht definiert ist, wird Intlayer die Build-Optimierung während des Baus Ihrer Anwendung (vite / nextjs / etc) aktivieren. Das Setzen auf `true` erzwingt die Build-Optimierung, auch im Entwicklungsmodus. Das Setzen auf `false` deaktiviert die Build-Optimierung.
1198
+ - _Hinweis_ : Wenn aktiviert, wird Intlayer alle Aufrufe an die Wörterbücher ersetzen, um das Splitting zu optimieren. Das finale Paket wird daher nur die verwendeten Wörterbücher importieren. Alle Importe bleiben statische Importe, um asynchrone Verarbeitung beim Laden der Wörterbücher zu vermeiden.
1199
+ - _Hinweis_ : Intlayer wird alle Aufrufe von `useIntlayer` durch den über die Option `importMode` definierten Modus ersetzen und `getIntlayer` durch `getDictionary`.
1200
+ - _Hinweis_ : Diese Option ist abhängig von den Plugins `@intlayer/babel` und `@intlayer/swc`.
1201
+ - _Hinweis_ : Stellen Sie sicher, dass alle Schlüssel in `useIntlayer`-Aufrufen statisch deklariert sind. Zum Beispiel `useIntlayer('navbar')`.
1202
+
1203
+ - **importMode** :
1204
+ - _Typ_ : `'static' | 'dynamic' | 'fetch'`
1205
+ - _Standard_ : `'static'`
1206
+ - _Beschreibung_ : Steuert, wie die Wörterbücher importiert werden.
1207
+ - _Beispiel_ : `'dynamic'`
1208
+ - _Hinweis_ : Verfügbare Modi:
1209
+ - "static": Die Wörterbücher werden statisch importiert. Ersetzt `useIntlayer` durch `useDictionary`.
1210
+ - "dynamic": Die Wörterbücher werden dynamisch mit Suspense importiert. Ersetzt `useIntlayer` durch `useDictionaryDynamic`.
1211
+ - "fetch": Die Wörterbücher werden dynamisch über die Live-Sync-API abgerufen. Ersetzt `useIntlayer` durch `useDictionaryDynamic`.
1212
+ - _Hinweis_ : Dynamische Importe sind von Suspense abhängig und können die Rendering-Performance leicht beeinflussen.
1213
+ - _Hinweis_ : Wenn deaktiviert, werden alle Locales auf einmal geladen, auch wenn sie nicht verwendet werden.
1214
+ - _Hinweis_ : Diese Option ist abhängig von den Plugins `@intlayer/babel` und `@intlayer/swc`.
1215
+ - _Hinweis_ : Stellen Sie sicher, dass alle Schlüssel in `useIntlayer`-Aufrufen statisch deklariert sind. Zum Beispiel `useIntlayer('navbar')`.
1216
+ - _Hinweis_ : Diese Option wird ignoriert, wenn `optimize` deaktiviert ist.
1217
+ - _Hinweis_ : Wenn auf "fetch" gesetzt, werden nur jene Wörterbücher, die Remote-Inhalte enthalten und als "fetch" markiert sind, in den Fetch-Modus transformiert. Die anderen werden weiterhin im Modus "dynamic" dynamisch importiert, um die Anzahl der Fetch-Anfragen und die Lade-Performance zu optimieren.
1218
+ - _Hinweis_ : Der Fetch-Modus verwendet die Live-Sync-API, um die Wörterbücher abzurufen. Wenn der API-Aufruf fehlschlägt, werden die Wörterbücher im Modus "dynamic" dynamisch importiert.
1219
+ - _Hinweis_ : Diese Option hat keinen Einfluss auf die Funktionen `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` und `useDictionaryDynamic`.
1220
+ - _Hinweis_: **Veraltet**: Verwenden Sie stattdessen `dictionary.importMode`.
1221
+
1222
+ - **checkTypes** :
1223
+ - _Typ_ : `boolean`
1224
+ - _Standard_ : `false`
1225
+ - _Beschreibung_ : Gibt an, ob der Build die TypeScript-Typen überprüfen und Fehler protokollieren soll.
1226
+ - _Hinweis_ : Dies kann den Build verlangsamen.
1227
+
1228
+ - **outputFormat** :
1229
+ - _Typ_ : `('esm' | 'cjs')[]`
1230
+ - _Standard_ : `['cjs', 'esm']`
1231
+ - _Beschreibung_ : Steuert das Ausgabeformat der Wörterbücher.
1232
+ - _Beispiel_ : `'cjs'`
1233
+ - _Hinweis_ : Das Ausgabeformat der Wörterbücher.
1234
+
1235
+ - **traversePattern** :
1236
+ - _Typ_ : `string[]`
1237
+ - _Standard_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1238
+ - _Beschreibung_ : Muster, die definieren, welche Dateien während der Optimierung durchlaufen werden sollen.
1239
+ - _Beispiel_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1240
+ - _Hinweis_ : Verwenden Sie dies, um die Optimierung auf relevante Codedateien zu beschränken und die Build-Performance zu verbessern.
1241
+ - _Hinweis_ : Diese Option wird ignoriert, wenn `optimize` deaktiviert ist.
1242
+ - _Hinweis_ : Verwenden Sie ein Glob-Muster.
1025
1243
 
1026
1244
  ---
1027
1245
 
@@ -1040,7 +1258,7 @@ Einstellungen zur Steuerung des Intlayer-Compilers, der Wörterbücher direkt au
1040
1258
 
1041
1259
  - **dictionaryKeyPrefix**:
1042
1260
  - _Typ_: `string`
1043
- - _Standard_: `'comp-'`
1261
+ - _Standard_: `''`
1044
1262
  - _Beschreibung_: Präfix für die extrahierten Wörterbuchschlüssel.
1045
1263
  - _Beispiel_: `'my-key-'`
1046
1264
  - _Hinweis_: Wenn Wörterbücher extrahiert werden, wird der Schlüssel basierend auf dem Dateinamen generiert. Dieses Präfix wird dem generierten Schlüssel hinzugefügt, um Konflikte zu vermeiden.
@@ -1064,24 +1282,28 @@ Einstellungen zur Steuerung des Intlayer-Compilers, der Wörterbücher direkt au
1064
1282
  - _Beschreibung_: Muster, die definieren, welche Dateien während der Optimierung ausgeschlossen werden sollen.
1065
1283
  - _Beispiel_: `['**/node_modules/**', '!**/node_modules/react/**']`
1066
1284
 
1067
- - **outputDir**:
1068
- - _Typ_: `string`
1069
- - _Standard_: `'compiler'`
1070
- - _Beschreibung_: Das Verzeichnis, in dem die extrahierten Wörterbücher gespeichert werden, relativ zum Basispfad Ihres Projekts.
1071
-
1072
1285
  - **output**:
1073
1286
  - _Typ_: `FilePathPattern`
1074
- - _Standard_: `({ key }) => 'compiler/${key}.content.json'`
1075
- - _Beschreibung_: Definiert den Pfad der Ausgabedateien. Ersetzt `outputDir`. Verarbeitet dynamische Variablen wie `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Kann als String im Format `'my/{{var}}/path'` oder als Funktion festgelegt werden.
1076
- - _Hinweis_: `./**/*` Pfade werden relativ zur Komponente aufgelöst. `/**/*` Pfade werden relativ zum Intlayer `baseDir` aufgelöst.
1077
- - _Beispiel_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
1287
+ - _Standard_: `undefined`
1288
+ - _Beschreibung_: Definiert den Pfad der Ausgabedateien. Ersetzt `outputDir`. Verarbeitet dynamische Variablen über Template-Strings oder eine Funktion. Unterstützte Variablen: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` und `{{componentDirPath}}`.
1289
+ - _Hinweis_: `./` Pfade werden relativ zum Verzeichnis der Komponente aufgelöst. `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst.
1290
+ - _Hinweis_: Das Einfügen der Variable `{{locale}}` in den Pfad löst die Generierung separater Wörterbücher pro Locale aus.
1291
+ - _Beispiel_:
1292
+ - **Mehrsprachige Dateien in der Nähe der Komponente** :
1293
+ - String: `'./{{fileName}}{{extension}}'`
1294
+ - Funktion: `({ fileName, extension }) => \`./${fileName}${extension}\``
1295
+
1296
+ - **Zentralisierte JSON-Dateien pro Locale** :
1297
+ - String: `'/locales/{{locale}}/{{key}}.content.json'`
1298
+ - Funktion: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
1078
1299
 
1079
1300
  - **noMetadata**:
1080
1301
  - _Typ_: `boolean`
1081
1302
  - _Standard_: `false`
1082
- - _Beschreibung_: Gibt an, ob die Metadaten in der Datei gespeichert werden sollen. Wenn true, speichert der Compiler nicht die Metadaten der Wörterbücher (Schlüssel, Content-Wrapper).
1083
- - _Hinweis_: Nützlich bei Verwendung mit dem `loadJSON`-Plugin.
1084
- - _Beispiel_: Wenn `true`:
1303
+ - _Beschreibung_: Gibt an, ob die Metadaten in der Datei gespeichert werden sollen. Wenn wahr, speichert der Compiler nicht die Metadaten der Wörterbücher (Schlüssel, Inhaltscontainer). Nützlich für i18next- oder ICU-MessageFormat-JSON-Ausgaben pro Sprache.
1304
+ - _Hinweis_: Nützlich bei Verwendung mit dem Plugin `loadJSON`.
1305
+ - _Beispiel_:
1306
+ Wenn `true` :
1085
1307
  ```json
1086
1308
  {
1087
1309
  "key": "value"