@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: 2025-09-04
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: React Router v7 i18n - Wie Sie eine React Router v7 App übersetzen in 2026
5
5
  description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer React Router v7-Anwendung mit Intlayer hinzufügen. Folgen Sie dieser umfassenden Anleitung, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
6
6
  keywords:
@@ -38,7 +38,7 @@ history:
38
38
 
39
39
  Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung in React Router v7-Projekten mit lokalisierungsbewusstem Routing, TypeScript-Unterstützung und modernen Entwicklungsmethoden integrieren.
40
40
 
41
- ## Table of Contents
41
+ ## Inhaltsverzeichnis
42
42
 
43
43
  <TOC/>
44
44
 
@@ -506,6 +506,229 @@ export default function RootLayout() {
506
506
  }
507
507
  ```
508
508
 
509
+ ### (Optional) Schritt 12 : Inhalt Ihrer Komponenten extrahieren
510
+
511
+ Wenn Sie eine bestehende Codebasis haben, kann die Transformation von Tausenden von Dateien zeitaufwendig sein.
512
+
513
+ Um diesen Prozess zu erleichtern, bietet Intlayer einen [Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compiler.md) / [Extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/extract.md) an, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren.
514
+
515
+ Um es einzurichten, können Sie einen `compiler`-Abschnitt in Ihrer `intlayer.config.ts`-Datei hinzufügen:
516
+
517
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
518
+ import { type IntlayerConfig } from "intlayer";
519
+
520
+ const config: IntlayerConfig = {
521
+ // ... Rest Ihrer Konfiguration
522
+ compiler: {
523
+ /**
524
+ * Gibt an, ob der Compiler aktiviert sein soll.
525
+ */
526
+ enabled: true,
527
+
528
+ /**
529
+ * Definiert den Pfad der Ausgabedateien
530
+ */
531
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
532
+
533
+ /**
534
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
535
+ */
536
+ saveComponents: false,
537
+
538
+ /**
539
+ * Präfix für Wörterbuchschlüssel
540
+ */
541
+ dictionaryKeyPrefix: "",
542
+ },
543
+ };
544
+
545
+ export default config;
546
+ ```
547
+
548
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
549
+ /** @type {import('intlayer').IntlayerConfig} */
550
+ const config = {
551
+ // ... Rest Ihrer Konfiguration
552
+ compiler: {
553
+ /**
554
+ * Gibt an, ob der Compiler aktiviert sein soll.
555
+ */
556
+ enabled: true,
557
+
558
+ /**
559
+ * Definiert den Pfad der Ausgabedateien
560
+ */
561
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
562
+
563
+ /**
564
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
565
+ */
566
+ saveComponents: false,
567
+
568
+ /**
569
+ * Präfix für Wörterbuchschlüssel
570
+ */
571
+ dictionaryKeyPrefix: "",
572
+ },
573
+ };
574
+
575
+ export default config;
576
+ ```
577
+
578
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
579
+ /** @type {import('intlayer').IntlayerConfig} */
580
+ const config = {
581
+ // ... Rest Ihrer Konfiguration
582
+ compiler: {
583
+ /**
584
+ * Gibt an, ob der Compiler aktiviert sein soll.
585
+ */
586
+ enabled: true,
587
+
588
+ /**
589
+ * Definiert den Pfad der Ausgabedateien
590
+ */
591
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
592
+
593
+ /**
594
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
595
+ */
596
+ saveComponents: false,
597
+
598
+ /**
599
+ * Präfix für Wörterbuchschlüssel
600
+ */
601
+ dictionaryKeyPrefix: "",
602
+ },
603
+ };
604
+
605
+ module.exports = config;
606
+ ```
607
+
608
+ <Tabs>
609
+ <Tab value='Extraktionsbefehl'>
610
+
611
+ Führen Sie den Extractor aus, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren
612
+
613
+ ```bash packageManager="npm"
614
+ npx intlayer extract
615
+ ```
616
+
617
+ ```bash packageManager="pnpm"
618
+ pnpm intlayer extract
619
+ ```
620
+
621
+ ```bash packageManager="yarn"
622
+ yarn intlayer extract
623
+ ```
624
+
625
+ ```bash packageManager="bun"
626
+ bunx intlayer extract
627
+ ```
628
+
629
+ </Tab>
630
+ <Tab value='Babel-Compiler'>
631
+
632
+ Aktualisieren Sie Ihre `vite.config.ts`, um das `intlayerCompiler`-Plugin aufzunehmen:
633
+
634
+ ```ts fileName="vite.config.ts"
635
+ import { defineConfig } from "vite";
636
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
637
+
638
+ export default defineConfig({
639
+ plugins: [
640
+ intlayer(),
641
+ intlayerCompiler(), // Fügt das Compiler-Plugin hinzu
642
+ ],
643
+ });
644
+ ```
645
+
646
+ ```bash packageManager="npm"
647
+ npm run build # Oder npm run dev
648
+ ```
649
+
650
+ ```bash packageManager="pnpm"
651
+ pnpm run build # Oder pnpm run dev
652
+ ```
653
+
654
+ ```bash packageManager="yarn"
655
+ yarn build # Oder yarn dev
656
+ ```
657
+
658
+ ```bash packageManager="bun"
659
+ bun run build # Or bun run dev
660
+ ```
661
+
662
+ </Tab>
663
+ </Tabs>
664
+
665
+ ---
666
+
667
+ ## Configure TypeScript
668
+
669
+ Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
670
+
671
+ Ensure your TypeScript configuration includes the autogenerated types:
672
+
673
+ ```json5 fileName="tsconfig.json"
674
+ {
675
+ // ... your existing configurations
676
+ include: [
677
+ // ... your existing includes
678
+ ".intlayer/**/*.ts", // Include the auto-generated types
679
+ ],
680
+ }
681
+ ```
682
+
683
+ ---
684
+
685
+ ## Git Configuration
686
+
687
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
688
+
689
+ To do this, you can add the following instructions to your `.gitignore` file:
690
+
691
+ ```plaintext fileName=".gitignore"
692
+ # Ignoriere die von Intlayer generierten Dateien
693
+ .intlayer
694
+ ```
695
+
696
+ ---
697
+
698
+ ## VS Code Extension
699
+
700
+ To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
701
+
702
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
703
+
704
+ This extension provides:
705
+
706
+ - **Autocompletion** for translation keys.
707
+ - **Real-time error detection** for missing translations.
708
+ - **Inline previews** of translated content.
709
+ - **Quick actions** to easily create and update translations.
710
+
711
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
712
+
713
+ ---
714
+
715
+ ## Go Further
716
+
717
+ To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
718
+
719
+ ---
720
+
721
+ ## Documentation References
722
+
723
+ - [Intlayer Documentation](https://intlayer.org)
724
+ - [React Router v7 Documentation](https://reactrouter.com/)
725
+ - [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
726
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
727
+ - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
728
+ - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
729
+
730
+ This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 for a fully internationalized application with locale-aware routing and TypeScript support.
731
+
509
732
  ### Schritt 11: Middleware hinzufügen (Optional)
510
733
 
511
734
  Sie können auch das `intlayerProxy` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, erfolgt eine Weiterleitung zur Standard-Locale.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-12-07
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: React Router v7 i18n - Wie Sie eine React Router v7 App übersetzen in 2026
5
5
  description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer React Router v7-Anwendung mit Intlayer und dateisystembasiertem Routing hinzufügen. Folgen Sie dieser umfassenden Anleitung, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
6
6
  keywords:
@@ -36,7 +36,7 @@ Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung
36
36
 
37
37
  Für clientseitiges Routing lesen Sie bitte die Anleitung [Intlayer mit React Router v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_react_router_v7.md).
38
38
 
39
- ## Table of Contents
39
+ ## Inhaltsverzeichnis
40
40
 
41
41
  <TOC/>
42
42
 
@@ -77,102 +77,88 @@ Mit Intlayer können Sie:
77
77
 
78
78
  See [Application Template](https://github.com/aymericzip/intlayer-react-router-v7-fs-routes-template) on GitHub.
79
79
 
80
- ### Schritt 1: Abhängigkeiten installieren
80
+ ---
81
81
 
82
- Installieren Sie die notwendigen Pakete mit Ihrem bevorzugten Paketmanager:
82
+ ## Configure TypeScript
83
83
 
84
- ```bash packageManager="npm"
85
- npm install intlayer react-intlayer
86
- npm install vite-intlayer --save-dev
87
- npm install @react-router/fs-routes --save-dev
88
- npx intlayer init
89
- ```
84
+ Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
90
85
 
91
- ```bash packageManager="pnpm"
92
- pnpm add intlayer react-intlayer
93
- pnpm add vite-intlayer --save-dev
94
- pnpm add @react-router/fs-routes --save-dev
95
- ```
86
+ Ensure your TypeScript configuration includes the autogenerated types:
96
87
 
97
- ```bash packageManager="bun"
98
- bun add intlayer react-intlayer
99
- bun add vite-intlayer --dev
100
- bun add @react-router/fs-routes --dev
101
- bunx intlayer init
88
+ ```json5 fileName="tsconfig.json"
89
+ {
90
+ // ... your existing configurations
91
+ include: [
92
+ // ... your existing includes
93
+ ".intlayer/**/*.ts", // Include the auto-generated types
94
+ ],
95
+ }
102
96
  ```
103
97
 
104
- - **intlayer**
98
+ ---
105
99
 
106
- Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md), Transpilierung und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/index.md) bereitstellt.
100
+ ## Git Configuration
107
101
 
108
- - **react-intlayer**
109
- Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
102
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
110
103
 
111
- - **vite-intlayer**
112
- Enthält das Vite-Plugin zur Integration von Intlayer mit dem [Vite-Bundler](https://vite.dev/guide/why.html#why-bundle-for-production) sowie Middleware zur Erkennung der bevorzugten Sprache des Benutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
104
+ To do this, you can add the following instructions to your `.gitignore` file:
113
105
 
114
- - **@react-router/fs-routes**
115
- Das Paket, das dateisystembasiertes Routing für React Router v7 ermöglicht.
106
+ ```plaintext fileName=".gitignore"
107
+ # Ignoriere die von Intlayer generierten Dateien
108
+ .intlayer
109
+ ```
116
110
 
117
- ### Schritt 2: Konfiguration Ihres Projekts
111
+ ---
118
112
 
119
- Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
113
+ ## VS Code Extension
120
114
 
121
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
122
- import { type IntlayerConfig, Locales } from "intlayer";
115
+ To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
123
116
 
124
- const config: IntlayerConfig = {
125
- internationalization: {
126
- defaultLocale: Locales.ENGLISH, // Standard-Sprache
127
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
128
- },
129
- };
117
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
130
118
 
131
- export default config;
132
- ```
119
+ This extension provides:
133
120
 
134
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
135
- import { Locales } from "intlayer";
121
+ - **Autocompletion** for translation keys.
122
+ - **Real-time error detection** for missing translations.
123
+ - **Inline previews** of translated content.
124
+ - **Quick actions** to easily create and update translations.
136
125
 
137
- /** @type {import('intlayer').IntlayerConfig} */
138
- const config = {
139
- internationalization: {
140
- defaultLocale: Locales.ENGLISH, // Standard-Sprache
141
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
142
- },
143
- };
126
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
144
127
 
145
- export default config;
146
- ```
128
+ ---
147
129
 
148
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
149
- const { Locales } = require("intlayer");
130
+ ## Go Further
150
131
 
151
- /** @type {import('intlayer').IntlayerConfig} */
152
- const config = {
153
- internationalization: {
154
- defaultLocale: Locales.ENGLISH, // Standardsprache
155
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Verfügbare Sprachen
156
- },
157
- };
132
+ To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
158
133
 
159
- module.exports = config;
160
- ```
134
+ ---
135
+
136
+ ## Documentation References
161
137
 
162
- > Über diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einstellen, Intlayer-Logs in der Konsole deaktivieren und vieles mehr. Für eine vollständige Liste der verfügbaren Parameter lesen Sie bitte die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
138
+ - [Intlayer Documentation](https://intlayer.org)
139
+ - [React Router v7 Documentation](https://reactrouter.com/)
140
+ - [React Router fs-routes Documentation](https://reactrouter.com/how-to/file-route-conventions)
141
+ - [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
142
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
143
+ - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
144
+ - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
163
145
 
164
- ### Schritt 3: Integrieren Sie Intlayer in Ihre Vite-Konfiguration
146
+ This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 using file-system based routing for a fully internationalized application with locale-aware routing and TypeScript support.
165
147
 
166
- Fügen Sie das Intlayer-Plugin in Ihre Konfiguration ein:
148
+ ### Schritt 10: Middleware hinzufügen (Optional)
149
+
150
+ Sie können auch das `intlayerProxy` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, erfolgt eine Weiterleitung zur Standard-Locale.
151
+
152
+ > Beachten Sie, dass Sie, um das `intlayerProxy` in der Produktion zu verwenden, das Paket `vite-intlayer` von `devDependencies` zu `dependencies` verschieben müssen.
167
153
 
168
- ```typescript fileName="vite.config.ts"
154
+ ```typescript {3,7} fileName="vite.config.ts"
169
155
  import { reactRouter } from "@react-router/dev/vite";
170
156
  import { defineConfig } from "vite";
171
- import { intlayer } from "vite-intlayer";
157
+ import { intlayer, intlayerProxy } from "vite-intlayer";
172
158
  import tsconfigPaths from "vite-tsconfig-paths";
173
159
 
174
160
  export default defineConfig({
175
- plugins: [reactRouter(), tsconfigPaths(), intlayer()],
161
+ plugins: [reactRouter(), tsconfigPaths(), intlayer(), intlayerProxy()],
176
162
  });
177
163
  ```
178
164
 
@@ -575,23 +561,179 @@ export const useI18nHTMLAttributes = () => {
575
561
 
576
562
  Dieser Hook wird bereits in der Layout-Komponente (`root.tsx`) verwendet, die in Schritt 5 gezeigt wird.
577
563
 
578
- ### Schritt 10: Middleware hinzufügen (Optional)
564
+ ### (Optional) Schritt 11 : Inhalt Ihrer Komponenten extrahieren
579
565
 
580
- Sie können auch das `intlayerProxy` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, erfolgt eine Weiterleitung zur Standard-Locale.
566
+ Wenn Sie eine bestehende Codebasis haben, kann die Transformation von Tausenden von Dateien zeitaufwendig sein.
581
567
 
582
- > Beachten Sie, dass Sie, um das `intlayerProxy` in der Produktion zu verwenden, das Paket `vite-intlayer` von `devDependencies` zu `dependencies` verschieben müssen.
568
+ Um diesen Prozess zu erleichtern, bietet Intlayer einen [Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compiler.md) / [Extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/extract.md) an, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren.
583
569
 
584
- ```typescript {3,7} fileName="vite.config.ts"
585
- import { reactRouter } from "@react-router/dev/vite";
586
- import { defineConfig } from "vite";
587
- import { intlayer, intlayerProxy } from "vite-intlayer";
588
- import tsconfigPaths from "vite-tsconfig-paths";
570
+ Um es einzurichten, können Sie einen `compiler`-Abschnitt in Ihrer `intlayer.config.ts`-Datei hinzufügen:
589
571
 
590
- export default defineConfig({
591
- plugins: [reactRouter(), tsconfigPaths(), intlayer(), intlayerProxy()],
592
- });
572
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
573
+ import { type IntlayerConfig } from "intlayer";
574
+
575
+ const config: IntlayerConfig = {
576
+ // ... Rest Ihrer Konfiguration
577
+ compiler: {
578
+ /**
579
+ * Gibt an, ob der Compiler aktiviert sein soll.
580
+ */
581
+ enabled: true,
582
+
583
+ /**
584
+ * Definiert den Pfad der Ausgabedateien
585
+ */
586
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
587
+
588
+ /**
589
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
590
+ */
591
+ saveComponents: false,
592
+
593
+ /**
594
+ * Präfix für Wörterbuchschlüssel
595
+ */
596
+ dictionaryKeyPrefix: "",
597
+ },
598
+ };
599
+
600
+ export default config;
601
+ ```
602
+
603
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
604
+ /** @type {import('intlayer').IntlayerConfig} */
605
+ const config = {
606
+ // ... Rest Ihrer Konfiguration
607
+ compiler: {
608
+ /**
609
+ * Gibt an, ob der Compiler aktiviert sein soll.
610
+ */
611
+ enabled: true,
612
+
613
+ /**
614
+ * Definiert den Pfad der Ausgabedateien
615
+ */
616
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
617
+
618
+ /**
619
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
620
+ */
621
+ saveComponents: false,
622
+
623
+ /**
624
+ * Präfix für Wörterbuchschlüssel
625
+ */
626
+ dictionaryKeyPrefix: "",
627
+ },
628
+ };
629
+
630
+ export default config;
631
+ ```
632
+
633
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
634
+ /** @type {import('intlayer').IntlayerConfig} */
635
+ const config = {
636
+ // ... Rest Ihrer Konfiguration
637
+ compiler: {
638
+ /**
639
+ * Gibt an, ob der Compiler aktiviert sein soll.
640
+ */
641
+ enabled: true,
642
+
643
+ /**
644
+ * Definiert den Pfad der Ausgabedateien
645
+ */
646
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
647
+
648
+ /**
649
+ * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
650
+ */
651
+ saveComponents: false,
652
+
653
+ /**
654
+ * Präfix für Wörterbuchschlüssel
655
+ */
656
+ dictionaryKeyPrefix: "",
657
+ },
658
+ };
659
+
660
+ module.exports = config;
661
+ ```
662
+
663
+ <Tabs>
664
+ <Tab value='Extraktionsbefehl'>
665
+
666
+ Führen Sie den Extractor aus, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren
667
+
668
+ ```bash packageManager="npm"
669
+ npx intlayer extract
670
+ ```
671
+
672
+ ```bash packageManager="pnpm"
673
+ pnpm intlayer extract
674
+ ```
675
+
676
+ ```bash packageManager="yarn"
677
+ yarn intlayer extract
593
678
  ```
594
679
 
680
+ ```bash packageManager="bun"
681
+ bunx intlayer extract
682
+ ```
683
+
684
+ </Tab>
685
+ <Tab value='Babel-Compiler'>
686
+
687
+ ```bash packageManager="npm"
688
+ npm install @intlayer/babel --save-dev
689
+ ```
690
+
691
+ ```bash packageManager="pnpm"
692
+ pnpm add @intlayer/babel --save-dev
693
+ ```
694
+
695
+ ```bash packageManager="yarn"
696
+ yarn add @intlayer/babel --save-dev
697
+ ```
698
+
699
+ ```bash packageManager="bun"
700
+ bun add @intlayer/babel --dev
701
+ ```
702
+
703
+ ```js fileName="babel.config.js"
704
+ const {
705
+ intlayerExtractBabelPlugin,
706
+ getExtractPluginOptions,
707
+ } = require("@intlayer/babel");
708
+
709
+ module.exports = {
710
+ presets: ["next/babel"],
711
+ plugins: [
712
+ // Inhalt aus Komponenten in Wörterbücher extrahieren
713
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
714
+ ],
715
+ };
716
+ ```
717
+
718
+ ```bash packageManager="npm"
719
+ npm run build # Oder npm run dev
720
+ ```
721
+
722
+ ```bash packageManager="pnpm"
723
+ pnpm run build # Oder pnpm run dev
724
+ ```
725
+
726
+ ```bash packageManager="yarn"
727
+ yarn build # Oder yarn dev
728
+ ```
729
+
730
+ ```bash packageManager="bun"
731
+ bun run build # Or bun run dev
732
+ ```
733
+
734
+ </Tab>
735
+ </Tabs>
736
+
595
737
  ---
596
738
 
597
739
  ## TypeScript konfigurieren