@intlayer/docs 6.1.6-canary.0 → 6.1.6

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 (242) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +71 -80
  2. package/dist/cjs/generated/docs.entry.cjs +16 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +16 -0
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +1 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/intlayer_with_angular.md +2 -2
  9. package/docs/ar/intlayer_with_astro.md +246 -0
  10. package/docs/ar/intlayer_with_create_react_app.md +3 -2
  11. package/docs/ar/intlayer_with_express.md +2 -2
  12. package/docs/ar/intlayer_with_nestjs.md +2 -2
  13. package/docs/ar/intlayer_with_nextjs_14.md +2 -2
  14. package/docs/ar/intlayer_with_nextjs_15.md +2 -2
  15. package/docs/ar/intlayer_with_nextjs_page_router.md +2 -2
  16. package/docs/ar/intlayer_with_nuxt.md +2 -2
  17. package/docs/ar/intlayer_with_react_native+expo.md +11 -20
  18. package/docs/ar/intlayer_with_react_router_v7.md +195 -241
  19. package/docs/ar/intlayer_with_tanstack.md +198 -272
  20. package/docs/ar/intlayer_with_vite+preact.md +9 -9
  21. package/docs/ar/intlayer_with_vite+react.md +7 -7
  22. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  23. package/docs/de/intlayer_with_angular.md +2 -2
  24. package/docs/de/intlayer_with_astro.md +246 -0
  25. package/docs/de/intlayer_with_create_react_app.md +2 -2
  26. package/docs/de/intlayer_with_express.md +2 -2
  27. package/docs/de/intlayer_with_nestjs.md +2 -2
  28. package/docs/de/intlayer_with_nextjs_14.md +2 -2
  29. package/docs/de/intlayer_with_nextjs_15.md +2 -2
  30. package/docs/de/intlayer_with_nextjs_page_router.md +2 -2
  31. package/docs/de/intlayer_with_nuxt.md +2 -2
  32. package/docs/de/intlayer_with_react_native+expo.md +11 -20
  33. package/docs/de/intlayer_with_react_router_v7.md +193 -242
  34. package/docs/de/intlayer_with_tanstack.md +194 -266
  35. package/docs/de/intlayer_with_vite+preact.md +9 -9
  36. package/docs/de/intlayer_with_vite+react.md +9 -9
  37. package/docs/de/intlayer_with_vite+vue.md +11 -11
  38. package/docs/de/packages/vite-intlayer/index.md +3 -3
  39. package/docs/en/how_works_intlayer.md +1 -1
  40. package/docs/en/index.md +1 -1
  41. package/docs/en/intlayer_cli.md +1 -1
  42. package/docs/en/intlayer_with_angular.md +4 -4
  43. package/docs/en/intlayer_with_astro.md +246 -0
  44. package/docs/en/intlayer_with_create_react_app.md +4 -4
  45. package/docs/en/intlayer_with_express.md +3 -3
  46. package/docs/en/intlayer_with_lynx+react.md +1 -1
  47. package/docs/en/intlayer_with_nestjs.md +2 -2
  48. package/docs/en/intlayer_with_nextjs_14.md +13 -4
  49. package/docs/en/intlayer_with_nextjs_15.md +13 -4
  50. package/docs/en/intlayer_with_nextjs_page_router.md +5 -5
  51. package/docs/en/intlayer_with_nuxt.md +4 -4
  52. package/docs/en/intlayer_with_react_native+expo.md +46 -24
  53. package/docs/en/intlayer_with_react_router_v7.md +164 -211
  54. package/docs/en/intlayer_with_tanstack.md +166 -241
  55. package/docs/en/intlayer_with_vite+preact.md +12 -12
  56. package/docs/en/intlayer_with_vite+react.md +12 -12
  57. package/docs/en/intlayer_with_vite+solid.md +2 -2
  58. package/docs/en/intlayer_with_vite+svelte.md +2 -2
  59. package/docs/en/intlayer_with_vite+vue.md +12 -12
  60. package/docs/en/introduction.md +1 -1
  61. package/docs/en/packages/next-intlayer/useDictionary.md +1 -1
  62. package/docs/en/packages/next-intlayer/useIntlayer.md +1 -1
  63. package/docs/en/packages/react-intlayer/useDictionary.md +1 -1
  64. package/docs/en/packages/react-intlayer/useI18n.md +1 -1
  65. package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
  66. package/docs/en/releases/v6.md +1 -0
  67. package/docs/en/roadmap.md +1 -1
  68. package/docs/en-GB/intlayer_with_angular.md +3 -3
  69. package/docs/en-GB/intlayer_with_astro.md +246 -0
  70. package/docs/en-GB/intlayer_with_create_react_app.md +5 -4
  71. package/docs/en-GB/intlayer_with_express.md +2 -2
  72. package/docs/en-GB/intlayer_with_nestjs.md +2 -2
  73. package/docs/en-GB/intlayer_with_nextjs_14.md +4 -4
  74. package/docs/en-GB/intlayer_with_nextjs_15.md +2 -2
  75. package/docs/en-GB/intlayer_with_nextjs_page_router.md +2 -2
  76. package/docs/en-GB/intlayer_with_nuxt.md +2 -2
  77. package/docs/en-GB/intlayer_with_react_native+expo.md +11 -20
  78. package/docs/en-GB/intlayer_with_react_router_v7.md +171 -220
  79. package/docs/en-GB/intlayer_with_tanstack.md +174 -248
  80. package/docs/en-GB/intlayer_with_vite+preact.md +9 -9
  81. package/docs/en-GB/intlayer_with_vite+react.md +9 -9
  82. package/docs/en-GB/intlayer_with_vite+vue.md +11 -11
  83. package/docs/en-GB/packages/next-intlayer/useIntlayer.md +1 -1
  84. package/docs/en-GB/packages/react-intlayer/useIntlayer.md +1 -1
  85. package/docs/es/intlayer_with_angular.md +2 -2
  86. package/docs/es/intlayer_with_astro.md +246 -0
  87. package/docs/es/intlayer_with_create_react_app.md +3 -2
  88. package/docs/es/intlayer_with_express.md +2 -2
  89. package/docs/es/intlayer_with_nextjs_14.md +2 -2
  90. package/docs/es/intlayer_with_nextjs_15.md +2 -2
  91. package/docs/es/intlayer_with_react_native+expo.md +11 -20
  92. package/docs/es/intlayer_with_react_router_v7.md +188 -232
  93. package/docs/es/intlayer_with_tanstack.md +203 -273
  94. package/docs/es/intlayer_with_vite+preact.md +7 -7
  95. package/docs/es/intlayer_with_vite+react.md +7 -7
  96. package/docs/es/intlayer_with_vite+vue.md +9 -9
  97. package/docs/fr/intlayer_with_angular.md +2 -2
  98. package/docs/fr/intlayer_with_astro.md +246 -0
  99. package/docs/fr/intlayer_with_create_react_app.md +3 -2
  100. package/docs/fr/intlayer_with_express.md +2 -2
  101. package/docs/fr/intlayer_with_nestjs.md +2 -2
  102. package/docs/fr/intlayer_with_nextjs_14.md +2 -2
  103. package/docs/fr/intlayer_with_react_native+expo.md +11 -20
  104. package/docs/fr/intlayer_with_react_router_v7.md +188 -248
  105. package/docs/fr/intlayer_with_tanstack.md +192 -265
  106. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  107. package/docs/fr/intlayer_with_vite+react.md +7 -7
  108. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  109. package/docs/hi/intlayer_cli.md +1 -4
  110. package/docs/hi/intlayer_with_angular.md +2 -2
  111. package/docs/hi/intlayer_with_astro.md +246 -0
  112. package/docs/hi/intlayer_with_create_react_app.md +2 -2
  113. package/docs/hi/intlayer_with_express.md +2 -2
  114. package/docs/hi/intlayer_with_nestjs.md +2 -2
  115. package/docs/hi/intlayer_with_nextjs_14.md +2 -2
  116. package/docs/hi/intlayer_with_nextjs_15.md +2 -2
  117. package/docs/hi/intlayer_with_nextjs_page_router.md +2 -2
  118. package/docs/hi/intlayer_with_nuxt.md +2 -2
  119. package/docs/hi/intlayer_with_react_native+expo.md +11 -20
  120. package/docs/hi/intlayer_with_react_router_v7.md +199 -243
  121. package/docs/hi/intlayer_with_tanstack.md +210 -285
  122. package/docs/hi/intlayer_with_vite+preact.md +9 -9
  123. package/docs/hi/intlayer_with_vite+react.md +9 -9
  124. package/docs/hi/intlayer_with_vite+solid.md +1 -1
  125. package/docs/hi/intlayer_with_vite+vue.md +11 -11
  126. package/docs/it/intlayer_with_angular.md +2 -2
  127. package/docs/it/intlayer_with_astro.md +246 -0
  128. package/docs/it/intlayer_with_create_react_app.md +3 -2
  129. package/docs/it/intlayer_with_express.md +2 -2
  130. package/docs/it/intlayer_with_nestjs.md +2 -2
  131. package/docs/it/intlayer_with_nextjs_14.md +2 -2
  132. package/docs/it/intlayer_with_nextjs_15.md +2 -2
  133. package/docs/it/intlayer_with_nextjs_page_router.md +2 -2
  134. package/docs/it/intlayer_with_nuxt.md +2 -2
  135. package/docs/it/intlayer_with_react_native+expo.md +11 -21
  136. package/docs/it/intlayer_with_react_router_v7.md +195 -242
  137. package/docs/it/intlayer_with_tanstack.md +203 -267
  138. package/docs/it/intlayer_with_vite+preact.md +9 -9
  139. package/docs/it/intlayer_with_vite+react.md +13 -11
  140. package/docs/it/intlayer_with_vite+vue.md +11 -11
  141. package/docs/ja/intlayer_with_angular.md +2 -2
  142. package/docs/ja/intlayer_with_astro.md +246 -0
  143. package/docs/ja/intlayer_with_create_react_app.md +3 -2
  144. package/docs/ja/intlayer_with_express.md +2 -2
  145. package/docs/ja/intlayer_with_nestjs.md +2 -2
  146. package/docs/ja/intlayer_with_nextjs_14.md +2 -2
  147. package/docs/ja/intlayer_with_nextjs_15.md +2 -2
  148. package/docs/ja/intlayer_with_nextjs_page_router.md +2 -2
  149. package/docs/ja/intlayer_with_nuxt.md +2 -2
  150. package/docs/ja/intlayer_with_react_native+expo.md +18 -29
  151. package/docs/ja/intlayer_with_react_router_v7.md +204 -250
  152. package/docs/ja/intlayer_with_tanstack.md +218 -286
  153. package/docs/ja/intlayer_with_vite+preact.md +9 -9
  154. package/docs/ja/intlayer_with_vite+react.md +11 -11
  155. package/docs/ja/intlayer_with_vite+vue.md +11 -11
  156. package/docs/ko/intlayer_with_angular.md +2 -2
  157. package/docs/ko/intlayer_with_astro.md +246 -0
  158. package/docs/ko/intlayer_with_create_react_app.md +3 -2
  159. package/docs/ko/intlayer_with_express.md +2 -2
  160. package/docs/ko/intlayer_with_nestjs.md +2 -2
  161. package/docs/ko/intlayer_with_nextjs_14.md +2 -2
  162. package/docs/ko/intlayer_with_nextjs_15.md +2 -2
  163. package/docs/ko/intlayer_with_nextjs_page_router.md +2 -2
  164. package/docs/ko/intlayer_with_nuxt.md +2 -2
  165. package/docs/ko/intlayer_with_react_native+expo.md +19 -28
  166. package/docs/ko/intlayer_with_react_router_v7.md +190 -244
  167. package/docs/ko/intlayer_with_tanstack.md +200 -270
  168. package/docs/ko/intlayer_with_vite+preact.md +9 -9
  169. package/docs/ko/intlayer_with_vite+react.md +9 -9
  170. package/docs/ko/intlayer_with_vite+vue.md +11 -11
  171. package/docs/pt/intlayer_with_angular.md +2 -2
  172. package/docs/pt/intlayer_with_astro.md +246 -0
  173. package/docs/pt/intlayer_with_create_react_app.md +3 -2
  174. package/docs/pt/intlayer_with_express.md +2 -2
  175. package/docs/pt/intlayer_with_nestjs.md +2 -2
  176. package/docs/pt/intlayer_with_nextjs_14.md +2 -2
  177. package/docs/pt/intlayer_with_nextjs_15.md +2 -2
  178. package/docs/pt/intlayer_with_nextjs_page_router.md +2 -2
  179. package/docs/pt/intlayer_with_nuxt.md +2 -2
  180. package/docs/pt/intlayer_with_react_native+expo.md +11 -20
  181. package/docs/pt/intlayer_with_react_router_v7.md +7 -13
  182. package/docs/pt/intlayer_with_tanstack.md +183 -258
  183. package/docs/pt/intlayer_with_vite+preact.md +9 -9
  184. package/docs/pt/intlayer_with_vite+react.md +9 -9
  185. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  186. package/docs/ru/intlayer_with_angular.md +2 -2
  187. package/docs/ru/intlayer_with_astro.md +246 -0
  188. package/docs/ru/intlayer_with_create_react_app.md +3 -2
  189. package/docs/ru/intlayer_with_express.md +2 -2
  190. package/docs/ru/intlayer_with_nestjs.md +2 -2
  191. package/docs/ru/intlayer_with_nextjs_14.md +2 -2
  192. package/docs/ru/intlayer_with_nextjs_15.md +2 -2
  193. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  194. package/docs/ru/intlayer_with_nuxt.md +2 -2
  195. package/docs/ru/intlayer_with_react_native+expo.md +11 -20
  196. package/docs/ru/intlayer_with_react_router_v7.md +192 -238
  197. package/docs/ru/intlayer_with_tanstack.md +197 -269
  198. package/docs/ru/intlayer_with_vite+preact.md +9 -9
  199. package/docs/ru/intlayer_with_vite+react.md +9 -9
  200. package/docs/ru/intlayer_with_vite+vue.md +11 -11
  201. package/docs/tr/how_works_intlayer.md +1 -1
  202. package/docs/tr/index.md +1 -1
  203. package/docs/tr/intlayer_cli.md +1 -1
  204. package/docs/tr/intlayer_with_angular.md +4 -4
  205. package/docs/tr/intlayer_with_astro.md +246 -0
  206. package/docs/tr/intlayer_with_create_react_app.md +4 -4
  207. package/docs/tr/intlayer_with_express.md +3 -3
  208. package/docs/tr/intlayer_with_lynx+react.md +1 -1
  209. package/docs/tr/intlayer_with_nestjs.md +2 -2
  210. package/docs/tr/intlayer_with_nextjs_14.md +2 -2
  211. package/docs/tr/intlayer_with_nextjs_15.md +4 -4
  212. package/docs/tr/intlayer_with_nextjs_page_router.md +5 -5
  213. package/docs/tr/intlayer_with_nuxt.md +4 -4
  214. package/docs/tr/intlayer_with_react_native+expo.md +12 -21
  215. package/docs/tr/intlayer_with_react_router_v7.md +222 -267
  216. package/docs/tr/intlayer_with_tanstack.md +400 -303
  217. package/docs/tr/intlayer_with_vite+preact.md +12 -12
  218. package/docs/tr/intlayer_with_vite+react.md +12 -12
  219. package/docs/tr/intlayer_with_vite+solid.md +2 -2
  220. package/docs/tr/intlayer_with_vite+svelte.md +2 -2
  221. package/docs/tr/intlayer_with_vite+vue.md +12 -12
  222. package/docs/tr/introduction.md +1 -1
  223. package/docs/tr/packages/react-intlayer/useDictionary.md +1 -1
  224. package/docs/tr/packages/react-intlayer/useI18n.md +1 -1
  225. package/docs/tr/roadmap.md +1 -1
  226. package/docs/zh/intlayer_with_angular.md +2 -2
  227. package/docs/zh/intlayer_with_astro.md +246 -0
  228. package/docs/zh/intlayer_with_create_react_app.md +3 -2
  229. package/docs/zh/intlayer_with_express.md +2 -2
  230. package/docs/zh/intlayer_with_nestjs.md +2 -2
  231. package/docs/zh/intlayer_with_nextjs_14.md +2 -2
  232. package/docs/zh/intlayer_with_nextjs_15.md +2 -2
  233. package/docs/zh/intlayer_with_nextjs_page_router.md +2 -2
  234. package/docs/zh/intlayer_with_nuxt.md +2 -2
  235. package/docs/zh/intlayer_with_react_native+expo.md +19 -28
  236. package/docs/zh/intlayer_with_react_router_v7.md +200 -248
  237. package/docs/zh/intlayer_with_tanstack.md +208 -283
  238. package/docs/zh/intlayer_with_vite+preact.md +9 -9
  239. package/docs/zh/intlayer_with_vite+react.md +9 -9
  240. package/docs/zh/intlayer_with_vite+vue.md +9 -9
  241. package/package.json +11 -11
  242. package/src/generated/docs.entry.ts +16 -0
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-09-09
3
3
  updatedAt: 2025-09-09
4
4
  title: Erste Schritte mit Intlayer in Tanstack Start
5
- description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer Tanstack Start-Anwendung mit Intlayer hinzufügen. Folgen Sie diesem umfassenden Leitfaden, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
5
+ description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer Tanstack Start-Anwendung mit Intlayer hinzufügen. Folgen Sie dieser umfassenden Anleitung, um Ihre App mehrsprachig mit lokalisierungsbewusstem Routing zu machen.
6
6
  keywords:
7
7
  - Internationalisierung
8
8
  - Dokumentation
@@ -11,19 +11,17 @@ keywords:
11
11
  - React
12
12
  - i18n
13
13
  - TypeScript
14
- - Lokalisierungsrouting
14
+ - Locale Routing
15
15
  slugs:
16
16
  - doc
17
17
  - environment
18
- - vite-and-react
19
18
  - tanstack-start
20
- applicationTemplate: https://github.com/AydinTheFirst/tanstack-start-intlayer
21
- author: AydinTheFirst
19
+ applicationTemplate: https://github.com/aymericzip/intlayer-tanstack-start-template
22
20
  ---
23
21
 
24
- # Erste Schritte mit der Internationalisierung (i18n) mit Intlayer und Tanstack Start
22
+ # Erste Schritte zur Internationalisierung (i18n) mit Intlayer und Tanstack Start
25
23
 
26
- Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung in Tanstack Start-Projekten mit lokalisierungsbewusstem Routing, TypeScript-Unterstützung und modernen Entwicklungspraktiken integrieren.
24
+ Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung in Tanstack Start-Projekten mit lokalisierungsbewusstem Routing, TypeScript-Unterstützung und modernen Entwicklungsmethoden integrieren.
27
25
 
28
26
  ## Was ist Intlayer?
29
27
 
@@ -31,10 +29,10 @@ Diese Anleitung zeigt, wie Sie **Intlayer** für nahtlose Internationalisierung
31
29
 
32
30
  Mit Intlayer können Sie:
33
31
 
34
- - **Übersetzungen einfach verwalten** durch deklarative Wörterbücher auf Komponentenebene.
32
+ - **Übersetzungen einfach verwalten** mithilfe deklarativer Wörterbücher auf Komponentenebene.
35
33
  - **Metadaten, Routen und Inhalte dynamisch lokalisieren**.
36
34
  - **TypeScript-Unterstützung sicherstellen** mit automatisch generierten Typen, die die Autovervollständigung und Fehlererkennung verbessern.
37
- - **Von fortschrittlichen Funktionen profitieren**, wie dynamischer Spracherkennung und -umschaltung.
35
+ - **Von erweiterten Funktionen profitieren**, wie dynamische Lokalerkennung und -umschaltung.
38
36
  - **Lokalisierungsbewusstes Routing aktivieren** mit dem dateibasierten Routing-System von Tanstack Start.
39
37
 
40
38
  ---
@@ -63,21 +61,21 @@ pnpm add vite-intlayer --save-dev
63
61
 
64
62
  - **intlayer**
65
63
 
66
- Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md), Transpilierung und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_cli.md) bereitstellt.
64
+ Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md), Transpilation und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_cli.md) bereitstellt.
67
65
 
68
66
  - **react-intlayer**
69
67
 
70
- Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
68
+ Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontextanbieter und Hooks für die Internationalisierung in React bereit.
71
69
 
72
70
  - **vite-intlayer**
73
71
 
74
- Beinhaltet 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 Nutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
72
+ 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.
75
73
 
76
74
  ### Schritt 3: Konfiguration Ihres Projekts
77
75
 
78
76
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
79
77
 
80
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
78
+ ```typescript fileName="intlayer.config.ts"
81
79
  import type { IntlayerConfig } from "intlayer";
82
80
 
83
81
  import { Locales } from "intlayer";
@@ -85,90 +83,40 @@ import { Locales } from "intlayer";
85
83
  const config: IntlayerConfig = {
86
84
  internationalization: {
87
85
  defaultLocale: Locales.ENGLISH,
88
- locales: [
89
- Locales.ENGLISH,
90
- Locales.FRENCH,
91
- Locales.SPANISH,
92
- // Ihre weiteren Sprachversionen
93
- ],
86
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
94
87
  },
95
88
  };
96
89
 
97
90
  export default config;
98
91
  ```
99
92
 
100
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
101
- import { Locales } from "intlayer";
102
-
103
- /** @type {import('intlayer').IntlayerConfig} */
104
- const config = {
105
- internationalization: {
106
- defaultLocale: Locales.ENGLISH,
107
- locales: [
108
- Locales.ENGLISH,
109
- Locales.FRENCH,
110
- Locales.SPANISH,
111
- // Ihre weiteren Sprachen
112
- ],
113
- },
114
- };
115
-
116
- export default config;
117
- ```
118
-
119
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
120
- const { Locales } = require("intlayer");
121
-
122
- /** @type {import('intlayer').IntlayerConfig} */
123
- const config = {
124
- internationalization: {
125
- defaultLocale: Locales.ENGLISH,
126
- locales: [
127
- Locales.ENGLISH,
128
- Locales.FRENCH,
129
- Locales.SPANISH,
130
- // Ihre weiteren Sprachen
131
- ],
132
- },
133
- };
134
-
135
- module.exports = config;
136
- ```
137
-
138
- > Durch diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Protokolle in der Konsole deaktivieren und vieles mehr. Für eine vollständige Liste der verfügbaren Parameter konsultieren Sie bitte die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
93
+ > Über diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Logs in der Konsole deaktivieren und mehr. Für eine vollständige Liste der verfügbaren Parameter verweisen wir auf die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
139
94
 
140
95
  ### Schritt 4: Integrieren Sie Intlayer in Ihre Vite-Konfiguration
141
96
 
142
97
  Fügen Sie das Intlayer-Plugin in Ihre Konfiguration ein:
143
98
 
144
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
99
+ ```typescript fileName="vite.config.ts"
145
100
  import { reactRouter } from "@react-router/dev/vite";
146
101
  import { defineConfig } from "vite";
147
- import { intlayerMiddlewarePlugin, intlayer } from "vite-intlayer";
102
+ import { intlayer } from "vite-intlayer";
148
103
  import tsconfigPaths from "vite-tsconfig-paths";
149
104
 
150
105
  export default defineConfig({
151
- plugins: [
152
- reactRouter(),
153
- tsconfigPaths(),
154
- intlayer(),
155
- intlayerMiddlewarePlugin(),
156
- ],
106
+ plugins: [reactRouter(), tsconfigPaths(), intlayer()],
157
107
  });
158
108
  ```
159
109
 
160
- > Das `intlayer()` Vite-Plugin wird verwendet, um Intlayer in Vite zu integrieren. Es sorgt für den Aufbau der Inhaltsdeklarationsdateien und überwacht diese im Entwicklungsmodus. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich stellt es Aliase bereit, um die Leistung zu optimieren.
110
+ > Das `intlayer()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es sorgt für den Aufbau der Content-Deklarationsdateien und überwacht diese im Entwicklungsmodus. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich stellt es Aliase bereit, um die Leistung zu optimieren.
161
111
 
162
112
  ### Schritt 5: Erstellen Sie Layout-Komponenten
163
113
 
164
- Richten Sie Ihr Root-Layout und lokalisierte Layouts ein:
114
+ Richten Sie Ihr Root-Layout und sprachspezifische Layouts ein:
165
115
 
166
116
  #### Root-Layout
167
117
 
168
- ```tsx fileName="src/routes/{-$locale}/route.tsx" codeFormat="typescript"
169
- // src/routes/{-$locale}/route.tsx
118
+ ```tsx fileName="src/routes/{-$locale}/route.tsx"
170
119
  import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
171
- import { configuration } from "intlayer";
172
120
  import { IntlayerProvider, useLocale } from "react-intlayer";
173
121
 
174
122
  import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes";
@@ -178,10 +126,11 @@ export const Route = createFileRoute("/{-$locale}")({
178
126
  });
179
127
 
180
128
  function LayoutComponent() {
129
+ const { defaultLocale } = useLocale();
181
130
  const { locale } = Route.useParams();
182
131
 
183
132
  return (
184
- <IntlayerProvider locale={locale}>
133
+ <IntlayerProvider locale={defaultLocale}>
185
134
  <Outlet />
186
135
  </IntlayerProvider>
187
136
  );
@@ -192,7 +141,7 @@ function LayoutComponent() {
192
141
 
193
142
  Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
194
143
 
195
- ```tsx fileName="src/contents/page.content.ts" contentDeclarationFormat="typescript"
144
+ ```tsx fileName="src/contents/page.content.ts"
196
145
  import type { Dictionary } from "intlayer";
197
146
 
198
147
  import { t } from "intlayer";
@@ -201,25 +150,29 @@ const appContent = {
201
150
  content: {
202
151
  links: {
203
152
  about: t({
153
+ de: "Über",
204
154
  en: "About",
205
155
  es: "Acerca de",
206
156
  fr: "À propos",
207
157
  }),
208
158
  home: t({
209
- en: "Startseite",
159
+ de: "Startseite",
160
+ en: "Home",
210
161
  es: "Inicio",
211
162
  fr: "Accueil",
212
163
  }),
213
164
  },
214
165
  meta: {
215
166
  description: t({
216
- en: "Dies ist ein Beispiel für die Verwendung von Intlayer mit TanStack Router",
167
+ de: "Dies ist ein Beispiel für die Verwendung von Intlayer mit TanStack Router",
168
+ en: "This is an example of using Intlayer with TanStack Router",
217
169
  es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
218
170
  fr: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
219
171
  }),
220
172
  },
221
173
  title: t({
222
- en: "Willkommen bei Intlayer + TanStack Router",
174
+ de: "Willkommen bei Intlayer + TanStack Router",
175
+ en: "Welcome to Intlayer + TanStack Router",
223
176
  es: "Bienvenido a Intlayer + TanStack Router",
224
177
  fr: "Bienvenue à Intlayer + TanStack Router",
225
178
  }),
@@ -230,7 +183,7 @@ const appContent = {
230
183
  export default appContent;
231
184
  ```
232
185
 
233
- > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das Verzeichnis `contentDir` aufgenommen werden (standardmäßig `./app`). Und sie müssen der Dateierweiterung für Inhaltsdeklarationen entsprechen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
186
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das `contentDir`-Verzeichnis (standardmäßig `./app`) aufgenommen werden. Und sie müssen der Dateierweiterung der Inhaltsdeklaration entsprechen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
234
187
 
235
188
  > Für weitere Details siehe die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md).
236
189
 
@@ -238,59 +191,99 @@ export default appContent;
238
191
 
239
192
  Erstellen Sie eine `LocalizedLink`-Komponente für lokalisierungsbewusste Navigation:
240
193
 
241
- ```tsx fileName="src/components/localized-link.tsx" codeFormat="typescript"
242
- // src/components/localized-link.tsx
243
- // eslint-disable-next-line no-restricted-imports
244
- import { Link, type LinkProps } from "@tanstack/react-router";
245
- import { getLocalizedUrl } from "intlayer";
246
- import { useLocale } from "reactintlayer";
194
+ ```tsx fileName="src/components/localized-link.tsx"
195
+ import type { FC } from "react";
196
+
197
+ import { Link, type LinkComponentProps } from "@tanstack/react-router";
198
+ import { useLocale } from "react-intlayer";
199
+
200
+ export const LOCALE_ROUTE = "{-$locale}" as const;
201
+
202
+ // Hauptfunktion
203
+ export type RemoveLocaleParam<T> = T extends string
204
+ ? RemoveLocaleFromString<T>
205
+ : T;
206
+
207
+ export type To = RemoveLocaleParam<LinkComponentProps["to"]>;
208
+
209
+ type CollapseDoubleSlashes<S extends string> =
210
+ S extends `${infer H}//${infer T}` ? CollapseDoubleSlashes<`${H}/${T}`> : S;
247
211
 
248
212
  type LocalizedLinkProps = {
249
- to: string;
250
- } & Omit<LinkProps, "to">;
213
+ to?: To;
214
+ } & Omit<LinkComponentProps, "to">;
251
215
 
252
- export function LocalizedLink(props: LocalizedLinkProps) {
253
- const { locale } = useLocale();
216
+ // Hilfsfunktionen
217
+ type RemoveAll<
218
+ S extends string,
219
+ Sub extends string,
220
+ > = S extends `${infer H}${Sub}${infer T}` ? RemoveAll<`${H}${T}`, Sub> : S;
254
221
 
255
- const isExternal = (to: string) => {
256
- return /^(https?:)?\/\//.test(to);
257
- };
222
+ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
223
+ RemoveAll<S, typeof LOCALE_ROUTE>
224
+ >;
258
225
 
259
- const to = isExternal(props.to)
260
- ? props.to
261
- : getLocalizedUrl(props.to, locale);
226
+ export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
227
+ const { locale } = useLocale();
262
228
 
263
- return <Link {...props} to={to as LinkProps["to"]} />;
264
- }
229
+ return (
230
+ <Link
231
+ {...props}
232
+ params={{
233
+ locale,
234
+ ...(typeof props?.params === "object" ? props?.params : {}),
235
+ }}
236
+ to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
237
+ />
238
+ );
239
+ };
265
240
  ```
266
241
 
267
- Erstellen Sie einen `useLocalizedNavigate` Hook für die programmatische Navigation:
242
+ Diese Komponente verfolgt zwei Ziele:
268
243
 
269
- ```tsx fileName="src/hooks/useLocalizedNavigate.tsx" codeFormat="typescript"
270
- // src/hooks/useLocalizedNavigate.tsx
271
- // eslint-disable-next-line no-restricted-imports
272
- import { NavigateOptions, useNavigate } from "@tanstack/react-router";
273
- import { getLocalizedUrl } from "intlayer";
274
- import { useLocale } from "react-intlayer";
244
+ - Entfernen des unnötigen `{-$locale}`-Präfixes aus der URL.
245
+ - Einfügen des Locale-Parameters in die URL, um sicherzustellen, dass der Benutzer direkt zur lokalisierten Route weitergeleitet wird.
275
246
 
276
- type LocalizedNavigateOptions = {
277
- to: string;
278
- } & Omit<NavigateOptions, "to">;
247
+ Anschließend können wir einen `useLocalizedNavigate`-Hook für die programmatische Navigation erstellen:
248
+
249
+ ```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
250
+ import { useLocale } from "react-intlayer";
251
+ import { useNavigate } from "@tanstack/react-router";
252
+ import { LOCALE_ROUTE } from "@/components/localized-link";
253
+ import type { FileRouteTypes } from "@/routeTree.gen";
279
254
 
280
255
  export const useLocalizedNavigate = () => {
281
256
  const navigate = useNavigate();
257
+
282
258
  const { locale } = useLocale();
283
259
 
284
- const isExternal = (to: string) => {
285
- return /^(https?:)?\/\//.test(to);
286
- };
260
+ type StripLocalePrefix<T extends string> = T extends
261
+ | `/${typeof LOCALE_ROUTE}`
262
+ | `/${typeof LOCALE_ROUTE}/`
263
+ ? "/"
264
+ : T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
265
+ ? `/${Rest}`
266
+ : never;
267
+
268
+ type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
269
+
270
+ interface LocalizedNavigate {
271
+ (to: LocalizedTo): ReturnType<typeof navigate>;
272
+ (
273
+ opts: { to: LocalizedTo } & Record<string, unknown>
274
+ ): ReturnType<typeof navigate>;
275
+ }
276
+
277
+ const localizedNavigate: LocalizedNavigate = (args: any) => {
278
+ if (typeof args === "string") {
279
+ return navigate({ to: `/${LOCALE_ROUTE}${args}`, params: { locale } });
280
+ }
287
281
 
288
- const localizedNavigate = (options: LocalizedNavigateOptions) => {
289
- const to = isExternal(options.to)
290
- ? options.to
291
- : getLocalizedUrl(options.to, locale);
282
+ const { to, ...rest } = args;
292
283
 
293
- navigate({ ...options, to: to as NavigateOptions["to"] });
284
+ const localedTo = `/${LOCALE_ROUTE}${to}` as any;
285
+
286
+ return navigate({ to: localedTo, params: { locale, ...rest } as any });
294
287
  };
295
288
 
296
289
  return localizedNavigate;
@@ -301,23 +294,9 @@ export const useLocalizedNavigate = () => {
301
294
 
302
295
  Greifen Sie in Ihrer gesamten Anwendung auf Ihre Inhaltswörterbücher zu:
303
296
 
304
- #### Root-Weiterleitungsseite
305
-
306
- ```tsx fileName="src/routes/page.tsx" codeFormat="typescript"
307
- // src/routes/page.tsx
308
- import { useLocale } from "react-intlayer";
309
- import { Navigate } from "react-router";
310
-
311
- export default function Page() {
312
- const { locale } = useLocale();
313
-
314
- return <Navigate replace to={locale} />;
315
- }
316
- ```
317
-
318
297
  #### Lokalisierte Startseite
319
298
 
320
- ```tsx fileName="src/routes/{-$locale}/index.tsx" codeFormat="typescript"
299
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
321
300
  import { createFileRoute } from "@tanstack/react-router";
322
301
  import { getIntlayer } from "intlayer";
323
302
  import { useIntlayer } from "react-intlayer";
@@ -346,16 +325,15 @@ function RouteComponent() {
346
325
  const navigate = useLocalizedNavigate();
347
326
 
348
327
  return (
349
- <div className="grid place-items-center h-screen">
350
- <div className="flex flex-col gap-4 items-center text-center">
328
+ <div>
329
+ <div>
351
330
  {content.title}
352
331
  <LocaleSwitcher />
353
- <div className="flex gap-4">
354
- <a href="/">Index</a>
332
+ <div>
355
333
  <LocalizedLink to="/">{content.links.home}</LocalizedLink>
356
334
  <LocalizedLink to="/about">{content.links.about}</LocalizedLink>
357
335
  </div>
358
- <div className="flex gap-4">
336
+ <div>
359
337
  <button onClick={() => navigate({ to: "/" })}>
360
338
  {content.links.home}
361
339
  </button>
@@ -371,65 +349,73 @@ function RouteComponent() {
371
349
 
372
350
  > Um mehr über den `useIntlayer` Hook zu erfahren, siehe die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useIntlayer.md).
373
351
 
374
- ### Schritt 9: Erstellen einer Sprachumschalter-Komponente
352
+ ### Schritt 9: Erstellen Sie eine Sprachumschalter-Komponente
375
353
 
376
354
  Erstellen Sie eine Komponente, die es Benutzern ermöglicht, die Sprache zu wechseln:
377
355
 
378
- ```tsx fileName="src/components/locale-switcher.tsx" codeFormat="typescript"
356
+ ```tsx fileName="src/components/locale-switcher.tsx"
357
+ import type { FC } from "react";
358
+
379
359
  import { useLocation } from "@tanstack/react-router";
380
- import {
381
- getHTMLTextDir,
382
- getLocaleName,
383
- getLocalizedUrl,
384
- Locales,
385
- } from "intlayer";
386
- import { useIntlayer, useLocale } from "react-intlayer";
387
-
388
- export default function LocaleSwitcher() {
389
- const { pathname, searchStr } = useLocation();
390
- const content = useIntlayer("locale-switcher");
391
-
392
- const { availableLocales, locale, setLocale } = useLocale({
393
- onLocaleChange: (newLocale) => {
394
- const pathWithLocale = getLocalizedUrl(pathname + searchStr, newLocale);
395
- location.replace(pathWithLocale);
396
- },
397
- });
360
+ import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
361
+ import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
362
+
363
+ import { LocalizedLink, To } from "./localized-link";
364
+
365
+ export const LocaleSwitcher: FC = () => {
366
+ const { localeSwitcherLabel } = useIntlayer("locale-switcher");
367
+ const { pathname } = useLocation();
368
+
369
+ const { availableLocales, locale } = useLocale();
370
+
371
+ const pathWithoutLocale = getPathWithoutLocale(pathname);
398
372
 
399
373
  return (
400
- <select
401
- aria-label={content.label.toString()}
402
- onChange={(e) => setLocale(e.target.value)}
403
- value={locale}
404
- >
405
- {availableLocales.map((localeItem) => (
406
- <option
407
- dir={getHTMLTextDir(localeItem)}
408
- key={localeItem}
409
- lang={localeItem}
410
- value={localeItem}
411
- >
412
- {/* Beispiel: Français (Französisch) */}
413
- {getLocaleName(localeItem, locale)} (
414
- {getLocaleName(localeItem, Locales.ENGLISH)})
415
- </option>
374
+ <ol>
375
+ {availableLocales.map((localeEl) => (
376
+ <li key={localeEl}>
377
+ <LocalizedLink
378
+ aria-current={localeEl === locale ? "page" : undefined}
379
+ aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
380
+ onClick={() => setLocaleCookie(localeEl)}
381
+ params={{ locale: localeEl }}
382
+ to={pathWithoutLocale as To}
383
+ >
384
+ <span>
385
+ {/* Gebietsschema - z.B. FR */}
386
+ {localeItem}
387
+ </span>
388
+ <span>
389
+ {/* Sprache in ihrem eigenen Gebietsschema - z.B. Français */}
390
+ {getLocaleName(localeItem, locale)}
391
+ </span>
392
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
393
+ {/* Sprache im aktuellen Gebietsschema - z.B. Francés mit aktuellem Gebietsschema auf Locales.SPANISH gesetzt */}
394
+ {getLocaleName(localeItem)}
395
+ </span>
396
+ <span dir="ltr" lang={Locales.ENGLISH}>
397
+ {/* Sprache auf Englisch - z.B. French */}
398
+ {getLocaleName(localeItem, Locales.ENGLISH)}
399
+ </span>
400
+ </LocalizedLink>
401
+ </li>
416
402
  ))}
417
- </select>
403
+ </ol>
418
404
  );
419
- }
405
+ };
420
406
  ```
421
407
 
422
408
  > Um mehr über den `useLocale` Hook zu erfahren, siehe die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useLocale.md).
423
409
 
424
410
  ### Schritt 10: HTML-Attribute-Verwaltung hinzufügen (Optional)
425
411
 
426
- Erstellen Sie einen Hook zur Verwaltung der HTML-Attribute lang und dir:
412
+ Erstelle einen Hook, um die HTML-Attribute lang und dir zu verwalten:
427
413
 
428
- ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
414
+ ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
429
415
  // src/hooks/useI18nHTMLAttributes.tsx
430
416
  import { getHTMLTextDir } from "intlayer";
431
417
  import { useEffect } from "react";
432
- import { useLocale } from "intlayer";
418
+ import { useLocale } from "react-intlayer";
433
419
 
434
420
  export const useI18nHTMLAttributes = () => {
435
421
  const { locale } = useLocale();
@@ -441,12 +427,11 @@ export const useI18nHTMLAttributes = () => {
441
427
  };
442
428
  ```
443
429
 
444
- Dann verwenden Sie es in Ihrer Root-Komponente:
430
+ Dann verwende ihn in deiner Root-Komponente:
445
431
 
446
- ```tsx fileName="src/routes/{-$locale}/index.tsx" codeFormat="typescript"
432
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
447
433
  import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
448
- import { configuration } from "intlayer";
449
- import { IntlayerProvider, useLocale } from "intlayer";
434
+ import { IntlayerProvider, useLocale } from "react-intlayer";
450
435
 
451
436
  import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; // importiere den Hook
452
437
 
@@ -457,67 +442,68 @@ export const Route = createFileRoute("/{-$locale}")({
457
442
  function LayoutComponent() {
458
443
  useI18nHTMLAttributes(); // diese Zeile hinzufügen
459
444
 
445
+ const { defaultLocale } = useLocale();
460
446
  const { locale } = Route.useParams();
461
447
 
462
448
  return (
463
- <IntlayerProvider locale={locale}>
449
+ <IntlayerProvider locale={locale ?? defaultLocale}>
464
450
  <Outlet />
465
451
  </IntlayerProvider>
466
452
  );
467
453
  }
468
454
  ```
469
455
 
470
- ### Schritt 11: Erstellen und Ausführen Ihrer Anwendung
456
+ ---
471
457
 
472
- Erstellen Sie die Inhaltswörterbücher und starten Sie Ihre Anwendung:
458
+ ### Schritt 11: Middleware hinzufügen (Optional)
473
459
 
474
- ```bash packageManager="npm"
475
- # Intlayer-Wörterbücher erstellen
476
- npm run intlayer:build
460
+ Sie können auch das `intlayerMiddleware` 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.
477
461
 
478
- # Entwicklungsserver starten
479
- npm run dev
480
- ```
462
+ > Beachten Sie, dass Sie, um das `intlayerMiddleware` in der Produktion zu verwenden, das `vite-intlayer`-Paket von `devDependencies` zu `dependencies` wechseln müssen.
481
463
 
482
- ```bash packageManager="pnpm"
483
- # Intlayer-Wörterbücher erstellen
484
- pnpm intlayer:build
464
+ ```typescript {3,7} fileName="vite.config.ts"
465
+ import { reactRouter } from "@react-router/dev/vite";
466
+ import tailwindcss from "@tailwindcss/vite";
467
+ import { defineConfig } from "vite";
468
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
469
+ import tsconfigPaths from "vite-tsconfig-paths";
485
470
 
486
- # Entwicklungsserver starten
487
- pnpm dev
471
+ export default defineConfig({
472
+ plugins: [
473
+ tailwindcss(),
474
+ reactRouter(),
475
+ tsconfigPaths(),
476
+ intlayer(),
477
+ intlayerMiddleware(),
478
+ ],
479
+ });
488
480
  ```
489
481
 
490
- ```bash packageManager="yarn"
491
- # Intlayer-Wörterbücher erstellen
492
- yarn intlayer:build
493
-
494
- # Entwicklungsserver starten
495
- yarn dev
496
- ```
482
+ ---
497
483
 
498
484
  ### Schritt 12: TypeScript konfigurieren (optional)
499
485
 
500
- Intlayer verwendet Modulaugmentation, um die Vorteile von TypeScript zu nutzen und Ihren Code stabiler zu machen.
486
+ Intlayer verwendet Module Augmentation, um die Vorteile von TypeScript zu nutzen und Ihren Code robuster zu machen.
501
487
 
502
488
  Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generierten Typen einschließt:
503
489
 
504
490
  ```json5 fileName="tsconfig.json"
505
491
  {
506
- compilerOptions: {
507
- // ... Ihre bestehenden TypeScript-Konfigurationen
508
- },
492
+ // ... Ihre bestehenden Konfigurationen
509
493
  include: [
510
494
  // ... Ihre bestehenden Includes
511
- ".intlayer/**/*.ts", // Einschluss der automatisch generierten Typen
495
+ ".intlayer/**/*.ts", // Einschließen der automatisch generierten Typen
512
496
  ],
513
497
  }
514
498
  ```
515
499
 
500
+ ---
501
+
516
502
  ### Git-Konfiguration
517
503
 
518
- Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. So vermeiden Sie, dass diese Dateien in Ihr Git-Repository committet werden.
504
+ Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. So vermeiden Sie, diese versehentlich in Ihr Git-Repository zu committen.
519
505
 
520
- Fügen Sie dazu folgende Anweisungen in Ihre `.gitignore`-Datei ein:
506
+ Um dies zu tun, können Sie die folgenden Anweisungen zu Ihrer `.gitignore`-Datei hinzufügen:
521
507
 
522
508
  ```plaintext fileName=".gitignore"
523
509
  # Ignoriere die von Intlayer generierten Dateien
@@ -526,64 +512,6 @@ Fügen Sie dazu folgende Anweisungen in Ihre `.gitignore`-Datei ein:
526
512
 
527
513
  ---
528
514
 
529
- ### Schritt 13: Weiterleitung erstellen (Optional)
530
-
531
- ```typescript fileName="src/routes/{-$locale}/rotue.tsx" codeFormat="typescript"
532
- function LayoutComponent() {
533
- useI18nHTMLAttributes();
534
-
535
- const { locale } = Route.useParams();
536
- const { locale: selectedLocale } = useLocale();
537
- const { defaultLocale } = configuration.internationalization;
538
- const { prefixDefault } = configuration.middleware;
539
-
540
- // Weiterleitung zur Standardsprache, wenn keine Sprache in der URL vorhanden ist und prefixDefault wahr ist
541
- if (selectedLocale === defaultLocale && !locale && prefixDefault) {
542
- return <Navigate replace to={defaultLocale} />;
543
- }
544
-
545
- // Weiterleitung zur ausgewählten Sprache, wenn die Sprache in der URL nicht mit der ausgewählten Sprache übereinstimmt
546
- if (selectedLocale !== defaultLocale && !locale) {
547
- return <Navigate replace to={selectedLocale} />;
548
- }
549
-
550
- return (
551
- <IntlayerProvider locale={locale}>
552
- <Outlet />
553
- </IntlayerProvider>
554
- );
555
- }
556
- ```
557
-
558
- ## Produktionsbereitstellung
559
-
560
- Beim Bereitstellen Ihrer Anwendung:
561
-
562
- 1. **Bauen Sie Ihre Anwendung:**
563
-
564
- ```bash
565
- npm run build
566
- ```
567
-
568
- 2. **Bauen Sie die Intlayer-Wörterbücher:**
569
-
570
- ```bash
571
- npm run intlayer:build
572
- ```
573
-
574
- 3. **Verschieben Sie `vite-intlayer` in die Abhängigkeiten**, wenn Sie Middleware in der Produktion verwenden:
575
- ```bash
576
- npm install vite-intlayer --save
577
- ```
578
-
579
- Ihre Anwendung unterstützt nun:
580
-
581
- - **URL-Struktur**: `/en`, `/en/about`, `/tr`, `/tr/about`
582
- - **Automatische Spracherkennung** basierend auf den Browsereinstellungen
583
- - **Sprachbewusstes Routing** mit Tanstack Start
584
- - **TypeScript-Unterstützung** mit automatisch generierten Typen
585
- - **Server-seitiges Rendering** mit korrekter Sprachbehandlung
586
-
587
515
  ## VS Code Erweiterung
588
516
 
589
517
  Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle **Intlayer VS Code Erweiterung** installieren.
@@ -597,7 +525,7 @@ Diese Erweiterung bietet:
597
525
  - **Inline-Vorschauen** des übersetzten Inhalts.
598
526
  - **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
599
527
 
600
- Für weitere Details zur Verwendung der Erweiterung lesen Sie bitte die [Intlayer VS Code Erweiterungsdokumentation](https://intlayer.org/doc/vs-code-extension).
528
+ Für weitere Details zur Verwendung der Erweiterung siehe die [Intlayer VS Code Extension Dokumentation](https://intlayer.org/doc/vs-code-extension).
601
529
 
602
530
  ---
603
531
 
@@ -622,4 +550,4 @@ Dieser umfassende Leitfaden bietet alles, was Sie benötigen, um Intlayer mit Ta
622
550
 
623
551
  | Version | Datum | Änderungen |
624
552
  | ------- | ---------- | ------------------------------ |
625
- | 5.8.1 | 2025-09-09 | Für Tanstack Start hinzugefügt |
553
+ | 5.8.1 | 2025-09-09 | Hinzugefügt für Tanstack Start |