@intlayer/docs 5.5.11 → 5.5.12

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 (313) hide show
  1. package/blog/ar/intlayer_with_next-intl.md +0 -1
  2. package/blog/ar/list_i18n_technologies/CMS/wordpress.md +1 -1
  3. package/blog/ar/list_i18n_technologies/frameworks/angular.md +1 -1
  4. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +1 -1
  5. package/blog/ar/list_i18n_technologies/frameworks/react-native.md +1 -1
  6. package/blog/ar/list_i18n_technologies/frameworks/react.md +1 -1
  7. package/blog/ar/list_i18n_technologies/frameworks/svelte.md +1 -1
  8. package/blog/ar/list_i18n_technologies/frameworks/vue.md +1 -1
  9. package/blog/ar/what_is_internationalization.md +2 -2
  10. package/blog/de/intlayer_with_next-intl.md +0 -1
  11. package/blog/de/list_i18n_technologies/CMS/wordpress.md +1 -1
  12. package/blog/de/list_i18n_technologies/frameworks/angular.md +1 -1
  13. package/blog/de/list_i18n_technologies/frameworks/flutter.md +1 -1
  14. package/blog/de/list_i18n_technologies/frameworks/react-native.md +1 -1
  15. package/blog/de/list_i18n_technologies/frameworks/react.md +1 -1
  16. package/blog/de/list_i18n_technologies/frameworks/svelte.md +1 -1
  17. package/blog/de/list_i18n_technologies/frameworks/vue.md +1 -1
  18. package/blog/de/what_is_internationalization.md +2 -2
  19. package/blog/en/intlayer_with_next-intl.md +0 -1
  20. package/blog/en/list_i18n_technologies/CMS/wordpress.md +1 -1
  21. package/blog/en/list_i18n_technologies/frameworks/angular.md +1 -1
  22. package/blog/en/list_i18n_technologies/frameworks/flutter.md +1 -1
  23. package/blog/en/list_i18n_technologies/frameworks/react-native.md +1 -1
  24. package/blog/en/list_i18n_technologies/frameworks/react.md +1 -1
  25. package/blog/en/list_i18n_technologies/frameworks/svelte.md +1 -1
  26. package/blog/en/list_i18n_technologies/frameworks/vue.md +1 -1
  27. package/blog/en/what_is_internationalization.md +2 -2
  28. package/blog/en-GB/intlayer_with_next-intl.md +0 -1
  29. package/blog/en-GB/list_i18n_technologies/CMS/wordpress.md +1 -1
  30. package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +1 -1
  31. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +1 -1
  32. package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +1 -1
  33. package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +1 -1
  34. package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +1 -1
  35. package/blog/en-GB/what_is_internationalization.md +2 -2
  36. package/blog/es/intlayer_with_next-intl.md +0 -1
  37. package/blog/es/list_i18n_technologies/CMS/wordpress.md +1 -1
  38. package/blog/es/list_i18n_technologies/frameworks/angular.md +1 -1
  39. package/blog/es/list_i18n_technologies/frameworks/flutter.md +1 -1
  40. package/blog/es/list_i18n_technologies/frameworks/react-native.md +1 -1
  41. package/blog/es/list_i18n_technologies/frameworks/react.md +1 -1
  42. package/blog/es/list_i18n_technologies/frameworks/svelte.md +1 -1
  43. package/blog/es/list_i18n_technologies/frameworks/vue.md +1 -1
  44. package/blog/es/what_is_internationalization.md +2 -2
  45. package/blog/fr/intlayer_with_next-intl.md +0 -1
  46. package/blog/fr/list_i18n_technologies/CMS/wordpress.md +1 -1
  47. package/blog/fr/list_i18n_technologies/frameworks/angular.md +1 -1
  48. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +1 -1
  49. package/blog/fr/list_i18n_technologies/frameworks/react-native.md +1 -1
  50. package/blog/fr/list_i18n_technologies/frameworks/react.md +1 -1
  51. package/blog/fr/list_i18n_technologies/frameworks/svelte.md +1 -1
  52. package/blog/fr/list_i18n_technologies/frameworks/vue.md +1 -1
  53. package/blog/fr/what_is_internationalization.md +2 -2
  54. package/blog/hi/list_i18n_technologies/CMS/wordpress.md +1 -1
  55. package/blog/hi/list_i18n_technologies/frameworks/angular.md +1 -1
  56. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +1 -1
  57. package/blog/hi/list_i18n_technologies/frameworks/react-native.md +1 -1
  58. package/blog/hi/list_i18n_technologies/frameworks/react.md +1 -1
  59. package/blog/hi/list_i18n_technologies/frameworks/svelte.md +1 -1
  60. package/blog/hi/list_i18n_technologies/frameworks/vue.md +1 -1
  61. package/blog/hi/what_is_internationalization.md +2 -2
  62. package/blog/it/intlayer_with_next-intl.md +0 -1
  63. package/blog/it/list_i18n_technologies/CMS/wordpress.md +1 -1
  64. package/blog/it/list_i18n_technologies/frameworks/angular.md +1 -1
  65. package/blog/it/list_i18n_technologies/frameworks/react-native.md +1 -1
  66. package/blog/it/list_i18n_technologies/frameworks/react.md +1 -1
  67. package/blog/it/list_i18n_technologies/frameworks/svelte.md +1 -1
  68. package/blog/it/list_i18n_technologies/frameworks/vue.md +1 -1
  69. package/blog/it/what_is_internationalization.md +2 -2
  70. package/blog/ja/intlayer_with_next-intl.md +0 -1
  71. package/blog/ja/list_i18n_technologies/CMS/wordpress.md +1 -1
  72. package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
  73. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +1 -1
  74. package/blog/ja/list_i18n_technologies/frameworks/react-native.md +1 -1
  75. package/blog/ja/list_i18n_technologies/frameworks/react.md +1 -1
  76. package/blog/ja/list_i18n_technologies/frameworks/svelte.md +1 -1
  77. package/blog/ja/list_i18n_technologies/frameworks/vue.md +1 -1
  78. package/blog/ja/what_is_internationalization.md +2 -2
  79. package/blog/ko/intlayer_with_next-intl.md +0 -1
  80. package/blog/ko/list_i18n_technologies/CMS/wordpress.md +1 -1
  81. package/blog/ko/list_i18n_technologies/frameworks/angular.md +1 -1
  82. package/blog/ko/list_i18n_technologies/frameworks/react-native.md +1 -1
  83. package/blog/ko/list_i18n_technologies/frameworks/react.md +1 -1
  84. package/blog/ko/list_i18n_technologies/frameworks/vue.md +1 -1
  85. package/blog/pt/intlayer_with_next-intl.md +0 -1
  86. package/blog/pt/list_i18n_technologies/CMS/wordpress.md +1 -1
  87. package/blog/pt/list_i18n_technologies/frameworks/angular.md +1 -1
  88. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +1 -1
  89. package/blog/pt/list_i18n_technologies/frameworks/react-native.md +1 -1
  90. package/blog/pt/list_i18n_technologies/frameworks/react.md +1 -1
  91. package/blog/pt/list_i18n_technologies/frameworks/svelte.md +1 -1
  92. package/blog/pt/list_i18n_technologies/frameworks/vue.md +1 -1
  93. package/blog/pt/what_is_internationalization.md +2 -2
  94. package/blog/ru/intlayer_with_next-intl.md +0 -1
  95. package/blog/ru/list_i18n_technologies/CMS/wordpress.md +1 -1
  96. package/blog/ru/list_i18n_technologies/frameworks/angular.md +1 -1
  97. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +1 -1
  98. package/blog/ru/list_i18n_technologies/frameworks/react-native.md +1 -1
  99. package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
  100. package/blog/ru/list_i18n_technologies/frameworks/svelte.md +1 -1
  101. package/blog/ru/list_i18n_technologies/frameworks/vue.md +1 -1
  102. package/blog/ru/what_is_internationalization.md +2 -2
  103. package/blog/zh/intlayer_with_next-intl.md +0 -1
  104. package/blog/zh/list_i18n_technologies/CMS/wordpress.md +1 -1
  105. package/blog/zh/list_i18n_technologies/frameworks/angular.md +1 -1
  106. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +1 -1
  107. package/blog/zh/list_i18n_technologies/frameworks/react-native.md +1 -1
  108. package/blog/zh/list_i18n_technologies/frameworks/react.md +1 -1
  109. package/blog/zh/list_i18n_technologies/frameworks/svelte.md +1 -1
  110. package/blog/zh/list_i18n_technologies/frameworks/vue.md +1 -1
  111. package/blog/zh/what_is_internationalization.md +2 -2
  112. package/dist/cjs/blog.cjs +2 -2
  113. package/dist/cjs/blog.cjs.map +1 -1
  114. package/dist/cjs/common.cjs +17 -6
  115. package/dist/cjs/common.cjs.map +1 -1
  116. package/dist/cjs/doc.cjs +2 -2
  117. package/dist/cjs/doc.cjs.map +1 -1
  118. package/dist/cjs/frequentQuestions.cjs +2 -2
  119. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  120. package/dist/cjs/generated/blog.entry.cjs +1152 -252
  121. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  122. package/dist/cjs/generated/docs.entry.cjs +3778 -1124
  123. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  124. package/dist/cjs/generated/frequentQuestions.entry.cjs +794 -161
  125. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  126. package/dist/cjs/generated/legal.entry.cjs +32 -31
  127. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  128. package/dist/cjs/legal.cjs +2 -2
  129. package/dist/cjs/legal.cjs.map +1 -1
  130. package/dist/esm/blog.mjs +2 -2
  131. package/dist/esm/blog.mjs.map +1 -1
  132. package/dist/esm/common.mjs +17 -6
  133. package/dist/esm/common.mjs.map +1 -1
  134. package/dist/esm/doc.mjs +2 -2
  135. package/dist/esm/doc.mjs.map +1 -1
  136. package/dist/esm/frequentQuestions.mjs +2 -2
  137. package/dist/esm/frequentQuestions.mjs.map +1 -1
  138. package/dist/esm/generated/blog.entry.mjs +1151 -252
  139. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  140. package/dist/esm/generated/docs.entry.mjs +3777 -1124
  141. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  142. package/dist/esm/generated/frequentQuestions.entry.mjs +793 -161
  143. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  144. package/dist/esm/generated/legal.entry.mjs +31 -31
  145. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  146. package/dist/esm/legal.mjs +2 -2
  147. package/dist/esm/legal.mjs.map +1 -1
  148. package/dist/types/blog.d.ts +2 -2
  149. package/dist/types/blog.d.ts.map +1 -1
  150. package/dist/types/common.d.ts +3 -2
  151. package/dist/types/common.d.ts.map +1 -1
  152. package/dist/types/doc.d.ts +2 -2
  153. package/dist/types/doc.d.ts.map +1 -1
  154. package/dist/types/frequentQuestions.d.ts +2 -2
  155. package/dist/types/frequentQuestions.d.ts.map +1 -1
  156. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  157. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  158. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  159. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  160. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  161. package/dist/types/legal.d.ts +2 -2
  162. package/dist/types/legal.d.ts.map +1 -1
  163. package/docs/ar/intlayer_with_vite+react.md +100 -108
  164. package/docs/de/intlayer_with_vite+react.md +121 -142
  165. package/docs/en/CI_CD.md +3 -1
  166. package/docs/en/autoFill.md +3 -1
  167. package/docs/en/configuration.md +4 -1
  168. package/docs/en/dictionary/condition.md +3 -1
  169. package/docs/en/dictionary/content_extention_customization.md +3 -1
  170. package/docs/en/dictionary/enumeration.md +3 -1
  171. package/docs/en/dictionary/file.md +3 -1
  172. package/docs/en/dictionary/function_fetching.md +3 -1
  173. package/docs/en/dictionary/get_started.md +3 -1
  174. package/docs/en/dictionary/insertion.md +3 -1
  175. package/docs/en/dictionary/markdown.md +3 -1
  176. package/docs/en/dictionary/nesting.md +3 -1
  177. package/docs/en/dictionary/translation.md +3 -1
  178. package/docs/en/how_works_intlayer.md +3 -1
  179. package/docs/en/index.md +3 -1
  180. package/docs/en/interest_of_intlayer.md +3 -1
  181. package/docs/en/intlayer_CMS.md +3 -1
  182. package/docs/en/intlayer_cli.md +3 -1
  183. package/docs/en/intlayer_visual_editor.md +3 -1
  184. package/docs/en/intlayer_with_angular.md +3 -1
  185. package/docs/en/intlayer_with_create_react_app.md +3 -1
  186. package/docs/en/intlayer_with_express.md +3 -1
  187. package/docs/en/intlayer_with_lynx+react.md +3 -1
  188. package/docs/en/intlayer_with_nextjs_14.md +6 -1
  189. package/docs/en/intlayer_with_nextjs_15.md +5 -1
  190. package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
  191. package/docs/en/intlayer_with_nuxt.md +3 -1
  192. package/docs/en/intlayer_with_react_native+expo.md +3 -1
  193. package/docs/en/intlayer_with_vite+preact.md +3 -1
  194. package/docs/en/intlayer_with_vite+react.md +9 -7
  195. package/docs/en/intlayer_with_vite+solid.md +3 -1
  196. package/docs/en/intlayer_with_vite+svelte.md +3 -1
  197. package/docs/en/intlayer_with_vite+vue.md +3 -1
  198. package/docs/en/introduction.md +3 -1
  199. package/docs/en/mcp_server.md +42 -1
  200. package/docs/en/packages/@intlayer/api/index.md +3 -1
  201. package/docs/en/packages/@intlayer/chokidar/index.md +3 -1
  202. package/docs/en/packages/@intlayer/cli/index.md +3 -1
  203. package/docs/en/packages/@intlayer/config/index.md +3 -1
  204. package/docs/en/packages/@intlayer/core/index.md +3 -1
  205. package/docs/en/packages/@intlayer/design-system/index.md +3 -1
  206. package/docs/en/packages/@intlayer/dictionary-entry/index.md +3 -1
  207. package/docs/en/packages/@intlayer/editor/index.md +3 -1
  208. package/docs/en/packages/@intlayer/editor-react/index.md +3 -1
  209. package/docs/en/packages/@intlayer/webpack/index.md +3 -1
  210. package/docs/en/packages/angular-intlayer/index.md +3 -1
  211. package/docs/en/packages/express-intlayer/index.md +3 -1
  212. package/docs/en/packages/express-intlayer/t.md +3 -1
  213. package/docs/en/packages/intlayer/getConfiguration.md +3 -1
  214. package/docs/en/packages/intlayer/getEnumeration.md +3 -1
  215. package/docs/en/packages/intlayer/getHTMLTextDir.md +3 -1
  216. package/docs/en/packages/intlayer/getLocaleLang.md +3 -1
  217. package/docs/en/packages/intlayer/getLocaleName.md +3 -1
  218. package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -1
  219. package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -1
  220. package/docs/en/packages/intlayer/getPathWithoutLocale.md +3 -1
  221. package/docs/en/packages/intlayer/getTranslation.md +3 -1
  222. package/docs/en/packages/intlayer/getTranslationContent.md +3 -1
  223. package/docs/en/packages/intlayer/index.md +3 -1
  224. package/docs/en/packages/intlayer-cli/index.md +3 -1
  225. package/docs/en/packages/intlayer-editor/index.md +3 -1
  226. package/docs/en/packages/lynx-intlayer/index.md +3 -1
  227. package/docs/en/packages/next-intlayer/index.md +3 -1
  228. package/docs/en/packages/next-intlayer/t.md +3 -1
  229. package/docs/en/packages/next-intlayer/useDictionary.md +3 -1
  230. package/docs/en/packages/next-intlayer/useIntlayer.md +3 -1
  231. package/docs/en/packages/next-intlayer/useIntlayerAsync.md +3 -1
  232. package/docs/en/packages/next-intlayer/useLocale.md +3 -1
  233. package/docs/en/packages/nuxt-intlayer/index.md +3 -1
  234. package/docs/en/packages/preact-intlayer/index.md +3 -1
  235. package/docs/en/packages/react-intlayer/index.md +3 -1
  236. package/docs/en/packages/react-intlayer/t.md +3 -1
  237. package/docs/en/packages/react-intlayer/useDictionary.md +3 -1
  238. package/docs/en/packages/react-intlayer/useIntlayer.md +3 -1
  239. package/docs/en/packages/react-intlayer/useIntlayerAsync.md +3 -1
  240. package/docs/en/packages/react-intlayer/useLocale.md +3 -1
  241. package/docs/en/packages/react-native-intlayer/index.md +3 -1
  242. package/docs/en/packages/react-scripts-intlayer/index.md +3 -1
  243. package/docs/en/packages/solid-intlayer/index.md +3 -1
  244. package/docs/en/packages/svelte-intlayer/index.md +3 -1
  245. package/docs/en/packages/vite-intlayer/index.md +3 -1
  246. package/docs/en/packages/vue-intlayer/index.md +3 -1
  247. package/docs/en/per_locale_file.md +3 -1
  248. package/docs/en/roadmap.md +5 -2
  249. package/docs/en/vs_code_extension.md +3 -1
  250. package/docs/en-GB/intlayer_with_vite+react.md +64 -83
  251. package/docs/es/intlayer_with_vite+react.md +91 -94
  252. package/docs/fr/intlayer_with_vite+react.md +73 -65
  253. package/docs/hi/intlayer_with_vite+react.md +107 -107
  254. package/docs/it/intlayer_with_vite+react.md +156 -112
  255. package/docs/ja/intlayer_with_vite+react.md +153 -218
  256. package/docs/ko/intlayer_with_vite+react.md +116 -148
  257. package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
  258. package/docs/pt/intlayer_with_vite+react.md +110 -132
  259. package/docs/ru/intlayer_with_vite+react.md +98 -83
  260. package/docs/zh/intlayer_with_vite+react.md +147 -184
  261. package/docs/zh/packages/intlayer/getLocalizedUrl.md +1 -23
  262. package/frequent_questions/ar/build_error_CI_CD.md +75 -0
  263. package/frequent_questions/de/build_error_CI_CD.md +75 -0
  264. package/frequent_questions/en/build_error_CI_CD.md +75 -0
  265. package/frequent_questions/en-GB/build_error_CI_CD.md +75 -0
  266. package/frequent_questions/es/build_error_CI_CD.md +75 -0
  267. package/frequent_questions/fr/build_error_CI_CD.md +75 -0
  268. package/frequent_questions/hi/build_error_CI_CD.md +75 -0
  269. package/frequent_questions/it/build_error_CI_CD.md +75 -0
  270. package/frequent_questions/ja/build_error_CI_CD.md +75 -0
  271. package/frequent_questions/ja/intlayer_command_undefined.md +3 -3
  272. package/frequent_questions/ko/build_error_CI_CD.md +75 -0
  273. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  274. package/frequent_questions/pt/build_error_CI_CD.md +75 -0
  275. package/frequent_questions/ru/build_error_CI_CD.md +75 -0
  276. package/frequent_questions/zh/build_error_CI_CD.md +75 -0
  277. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  278. package/legal/ar/privacy_notice.md +83 -0
  279. package/legal/ar/terms_of_service.md +55 -0
  280. package/legal/de/privacy_notice.md +83 -0
  281. package/legal/de/terms_of_service.md +55 -0
  282. package/legal/en/privacy_notice.md +83 -0
  283. package/legal/en/terms_of_service.md +55 -0
  284. package/legal/en-GB/privacy_notice.md +83 -0
  285. package/legal/en-GB/terms_of_service.md +55 -0
  286. package/legal/es/privacy_notice.md +83 -0
  287. package/legal/es/terms_of_service.md +55 -0
  288. package/legal/fr/privacy_notice.md +83 -0
  289. package/legal/fr/terms_of_service.md +55 -0
  290. package/legal/hi/privacy_notice.md +83 -0
  291. package/legal/hi/terms_of_service.md +55 -0
  292. package/legal/it/privacy_notice.md +83 -0
  293. package/legal/it/terms_of_service.md +55 -0
  294. package/legal/ja/privacy_notice.md +83 -0
  295. package/legal/ja/terms_of_service.md +55 -0
  296. package/legal/ko/privacy_notice.md +83 -0
  297. package/legal/ko/terms_of_service.md +55 -0
  298. package/legal/pt/privacy_notice.md +83 -0
  299. package/legal/pt/terms_of_service.md +55 -0
  300. package/legal/ru/privacy_notice.md +83 -0
  301. package/legal/ru/terms_of_service.md +55 -0
  302. package/legal/zh/privacy_notice.md +83 -0
  303. package/legal/zh/terms_of_service.md +55 -0
  304. package/package.json +7 -6
  305. package/src/blog.ts +6 -4
  306. package/src/common.ts +23 -7
  307. package/src/doc.ts +6 -4
  308. package/src/frequentQuestions.ts +6 -4
  309. package/src/generated/blog.entry.ts +1177 -280
  310. package/src/generated/docs.entry.ts +3868 -1217
  311. package/src/generated/frequentQuestions.entry.ts +808 -178
  312. package/src/generated/legal.entry.ts +34 -36
  313. package/src/legal.ts +6 -4
@@ -1,20 +1,20 @@
1
1
  ---
2
- createdAt: 2025-03-07
3
- updatedAt: 2025-06-29
4
- title: Übersetzen Sie Ihre React Native und Expo Mobile App (i18n)
5
- description: Entdecken Sie, wie Sie Ihre React Native und Expo Mobile App mehrsprachig gestalten. Folgen Sie der Dokumentation, um sie zu internationalisieren (i18n) und zu übersetzen.
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2024-03-07
4
+ title: Erste Schritte mit Intlayer in Vite + React
5
+ description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer Vite- und React-Anwendung mit Intlayer hinzufügen. Folgen Sie dieser Anleitung, um Ihre App mehrsprachig zu machen.
6
6
  keywords:
7
7
  - Internationalisierung
8
8
  - Dokumentation
9
9
  - Intlayer
10
10
  - Vite
11
11
  - React
12
- - React Native
12
+ - i18n
13
13
  - JavaScript
14
14
  slugs:
15
15
  - doc
16
16
  - environment
17
- - react-native-and-expo
17
+ - vite-and-react
18
18
  ---
19
19
 
20
20
  # Erste Schritte zur Internationalisierung (i18n) mit Intlayer, Vite und React
@@ -23,14 +23,14 @@ Siehe [Application Template](https://github.com/aymericzip/intlayer-vite-react-t
23
23
 
24
24
  ## Was ist Intlayer?
25
25
 
26
- **Intlayer** ist eine innovative, Open-Source-Internationalisierungsbibliothek (i18n), die entwickelt wurde, um die mehrsprachige Unterstützung in modernen Webanwendungen zu vereinfachen.
26
+ **Intlayer** ist eine innovative, Open-Source Internationalisierungsbibliothek (i18n), die entwickelt wurde, um die mehrsprachige Unterstützung in modernen Webanwendungen zu vereinfachen.
27
27
 
28
28
  Mit Intlayer können Sie:
29
29
 
30
- - **Übersetzungen einfach verwalten** mithilfe deklarativer Wörterbücher auf Komponentenebene.
30
+ - **Übersetzungen einfach verwalten** mit deklarativen Wörterbüchern auf Komponentenebene.
31
31
  - **Metadaten, Routen und Inhalte dynamisch lokalisieren**.
32
- - **TypeScript-Unterstützung sicherstellen** durch automatisch generierte Typen, die die Autovervollständigung und Fehlererkennung verbessern.
33
- - **Von erweiterten Funktionen profitieren**, wie dynamische Spracherkennung und Umschaltung.
32
+ - **TypeScript-Unterstützung sicherstellen** durch automatisch generierte Typen, die Autovervollständigung und Fehlererkennung verbessern.
33
+ - **Von erweiterten Funktionen profitieren**, wie dynamische Lokalerkennung und -umschaltung.
34
34
 
35
35
  ---
36
36
 
@@ -57,13 +57,13 @@ yarn add --save-dev vite-intlayer
57
57
 
58
58
  - **intlayer**
59
59
 
60
- 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.
60
+ Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltserklärung](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.
61
61
 
62
62
  - **react-intlayer**
63
63
  Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
64
64
 
65
65
  - **vite-intlayer**
66
- 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 Benutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
66
+ 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.
67
67
 
68
68
  ### Schritt 2: Konfiguration Ihres Projekts
69
69
 
@@ -78,7 +78,7 @@ const config: IntlayerConfig = {
78
78
  Locales.ENGLISH,
79
79
  Locales.FRENCH,
80
80
  Locales.SPANISH,
81
- // Ihre weiteren Sprachen
81
+ // Ihre weiteren Sprachversionen
82
82
  ],
83
83
  defaultLocale: Locales.ENGLISH,
84
84
  },
@@ -91,7 +91,6 @@ export default config;
91
91
  import { Locales } from "intlayer";
92
92
 
93
93
  /** @type {import('intlayer').IntlayerConfig} */
94
- // Konfiguration der Internationalisierung
95
94
  const config = {
96
95
  internationalization: {
97
96
  locales: [
@@ -111,7 +110,6 @@ export default config;
111
110
  const { Locales } = require("intlayer");
112
111
 
113
112
  /** @type {import('intlayer').IntlayerConfig} */
114
- // Konfiguration der Internationalisierung
115
113
  const config = {
116
114
  internationalization: {
117
115
  locales: [
@@ -127,7 +125,7 @@ const config = {
127
125
  module.exports = config;
128
126
  ```
129
127
 
130
- > Durch 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 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).
128
+ > 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 verweisen wir auf die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
131
129
 
132
130
  ### Schritt 3: Integrieren Sie Intlayer in Ihre Vite-Konfiguration
133
131
 
@@ -166,9 +164,9 @@ module.exports = defineConfig({
166
164
  });
167
165
  ```
168
166
 
169
- > Das `intlayerPlugin()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es sorgt für den Aufbau von 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.
167
+ > Das `intlayerPlugin()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es stellt sicher, dass Inhaltsdeklarationsdateien erstellt und im Entwicklungsmodus überwacht werden. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich bietet es Aliase zur Optimierung der Leistung.
170
168
 
171
- ### Schritt 4: Deklarieren Sie Ihren Inhalt
169
+ ### Schritt 4: Deklarieren Sie Ihre Inhalte
172
170
 
173
171
  Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
174
172
 
@@ -277,7 +275,7 @@ const appContent = {
277
275
  },
278
276
 
279
277
  readTheDocs: t({
280
- en: "Klicken Sie auf die Logos von Vite und React, um mehr zu erfahren",
278
+ en: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
281
279
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
282
280
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
283
281
  }),
@@ -295,13 +293,11 @@ const appContent = {
295
293
  key: "app",
296
294
  content: {
297
295
  viteLogo: t({
298
- de: "Vite-Logo",
299
296
  en: "Vite logo",
300
297
  fr: "Logo Vite",
301
298
  es: "Logo Vite",
302
299
  }),
303
300
  reactLogo: t({
304
- de: "React-Logo",
305
301
  en: "React logo",
306
302
  fr: "Logo React",
307
303
  es: "Logo React",
@@ -310,7 +306,6 @@ const appContent = {
310
306
  title: "Vite + React",
311
307
 
312
308
  count: t({
313
- de: "Zähler ist ",
314
309
  en: "count is ",
315
310
  fr: "le compte est ",
316
311
  es: "el recuento es ",
@@ -321,15 +316,9 @@ const appContent = {
321
316
  ReactNode >
322
317
  {
323
318
  // Vergessen Sie nicht, React zu importieren, wenn Sie einen React-Knoten in Ihrem Inhalt verwenden
324
- de: (
325
- <>
326
- Bearbeiten Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
327
- testen
328
- </>
329
- ),
330
319
  en: (
331
320
  <>
332
- Edit <code>src/App.tsx</code> and save to test HMR
321
+ Edit <code>src/App.tsx</code> und speichern, um HMR zu testen
333
322
  </>
334
323
  ),
335
324
  fr: (
@@ -339,14 +328,14 @@ const appContent = {
339
328
  ),
340
329
  es: (
341
330
  <>
342
- Bearbeite <code>src/App.tsx</code> und speichere, um HMR zu testen
331
+ Editieren Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
332
+ testen
343
333
  </>
344
334
  ),
345
335
  },
346
336
 
347
337
  readTheDocs: t({
348
- de: "Klicke auf die Vite- und React-Logos, um mehr zu erfahren",
349
- en: "Click on the Vite and React logos to learn more",
338
+ en: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
350
339
  fr: "Cliquez sur les logos Vite et React pour en savoir plus",
351
340
  es: "Haga clic en los logotipos de Vite y React para obtener más información",
352
341
  }),
@@ -364,7 +353,6 @@ module.exports = appContent;
364
353
  "viteLogo": {
365
354
  "nodeType": "translation",
366
355
  "translation": {
367
- "de": "Vite-Logo",
368
356
  "en": "Vite logo",
369
357
  "fr": "Logo Vite",
370
358
  "es": "Logo Vite"
@@ -381,6 +369,7 @@ module.exports = appContent;
381
369
  "title": {
382
370
  "nodeType": "translation",
383
371
  "translation": {
372
+ "de": "Vite + React",
384
373
  "en": "Vite + React",
385
374
  "fr": "Vite + React",
386
375
  "es": "Vite + React"
@@ -389,6 +378,7 @@ module.exports = appContent;
389
378
  "count": {
390
379
  "nodeType": "translation",
391
380
  "translation": {
381
+ "de": "Zähler ist ",
392
382
  "en": "count is ",
393
383
  "fr": "le compte est ",
394
384
  "es": "el recuento es "
@@ -397,16 +387,16 @@ module.exports = appContent;
397
387
  "edit": {
398
388
  "nodeType": "translation",
399
389
  "translation": {
390
+ "de": "Bearbeiten Sie src/App.tsx und speichern Sie, um HMR zu testen",
400
391
  "en": "Edit src/App.tsx and save to test HMR",
401
392
  "fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
402
- "es": "Edita src/App.tsx y guarda para probar HMR",
403
- "de": "Bearbeite src/App.tsx und speichere, um HMR zu testen"
393
+ "es": "Edita src/App.tsx y guarda para probar HMR"
404
394
  }
405
395
  },
406
396
  "readTheDocs": {
407
397
  "nodeType": "translation",
408
398
  "translation": {
409
- "de": "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
399
+ "de": "Klicken Sie auf die Logos von Vite und React, um mehr zu erfahren",
410
400
  "en": "Click on the Vite and React logos to learn more",
411
401
  "fr": "Cliquez sur les logos Vite et React pour en savoir plus",
412
402
  "es": "Haga clic en los logotipos de Vite y React para obtener más información"
@@ -416,9 +406,9 @@ module.exports = appContent;
416
406
  }
417
407
  ```
418
408
 
419
- > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das `contentDir`-Verzeichnis (standardmäßig `./src`) aufgenommen werden und die Dateiendung der Inhaltsdeklaration (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`) erfüllen.
409
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das `contentDir`-Verzeichnis (standardmäßig `./src`) aufgenommen werden. Und die Dateiendung der Inhaltsdeklaration muss übereinstimmen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
420
410
 
421
- > Für weitere Details lesen Sie bitte die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md).
411
+ > Für weitere Details siehe die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md).
422
412
 
423
413
  > Wenn Ihre Inhaltsdatei TSX-Code enthält, sollten Sie in Ihrer Inhaltsdatei `import React from "react";` importieren.
424
414
 
@@ -464,7 +454,7 @@ const AppContent: FC = () => {
464
454
  );
465
455
  };
466
456
 
467
- const App: FC = () => (
457
+ const App = () => (
468
458
  <IntlayerProvider>
469
459
  <AppContent />
470
460
  </IntlayerProvider>
@@ -567,13 +557,19 @@ const App = () => (
567
557
  module.exports = App;
568
558
  ```
569
559
 
560
+ > Wenn Sie Ihren Inhalt in einem `string`-Attribut verwenden möchten, wie z.B. `alt`, `title`, `href`, `aria-label` usw., müssen Sie den Wert der Funktion aufrufen, wie:
561
+
562
+ > ```jsx
563
+ > <img src={content.image.src.value} alt={content.image.value} />
564
+ > ```
565
+
570
566
  > Wenn Sie Ihren Inhalt in einem `string`-Attribut verwenden möchten, wie z.B. `alt`, `title`, `href`, `aria-label` usw., müssen Sie den Wert der Funktion aufrufen, zum Beispiel:
571
567
 
572
568
  > ```jsx
573
569
  > <img src={content.image.src.value} alt={content.image.value} />
574
570
  > ```
575
571
 
576
- > 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).
572
+ > Um mehr über den `useIntlayer` Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useIntlayer.md).
577
573
 
578
574
  ### (Optional) Schritt 6: Ändern Sie die Sprache Ihres Inhalts
579
575
 
@@ -627,7 +623,7 @@ const LocaleSwitcher = () => {
627
623
 
628
624
  > Um mehr über den `useLocale` Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useLocale.md).
629
625
 
630
- ### (Optional) Schritt 7: Fügen Sie Ihrer Anwendung lokalisierte Routen hinzu
626
+ ### (Optional) Schritt 7: Lokalisierte Routen zu Ihrer Anwendung hinzufügen
631
627
 
632
628
  Der Zweck dieses Schrittes ist es, für jede Sprache eindeutige Routen zu erstellen. Dies ist nützlich für SEO und SEO-freundliche URLs.
633
629
  Beispiel:
@@ -640,7 +636,7 @@ Beispiel:
640
636
 
641
637
  > Standardmäßig sind die Routen für die Standardsprache nicht mit einem Präfix versehen. Wenn Sie die Standardsprache mit einem Präfix versehen möchten, können Sie in Ihrer Konfiguration die Option `middleware.prefixDefault` auf `true` setzen. Weitere Informationen finden Sie in der [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
642
638
 
643
- Um lokalisierte Routen zu Ihrer Anwendung hinzuzufügen, können Sie eine `LocaleRouter`-Komponente erstellen, die die Routen Ihrer Anwendung umschließt und die sprachabhängige Navigation verwaltet. Hier ist ein Beispiel mit [React Router](https://reactrouter.com/home):
639
+ Um lokalisierte Routen in Ihre Anwendung hinzuzufügen, können Sie eine `LocaleRouter`-Komponente erstellen, die die Routen Ihrer Anwendung umschließt und die sprachabhängige Navigation verwaltet. Hier ist ein Beispiel unter Verwendung von [React Router](https://reactrouter.com/home):
644
640
 
645
641
  ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
646
642
  // Importieren der notwendigen Abhängigkeiten und Funktionen
@@ -660,8 +656,8 @@ const { internationalization, middleware } = configuration;
660
656
  const { locales, defaultLocale } = internationalization;
661
657
 
662
658
  /**
663
- * Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Lokalisierungskontext umschließt.
664
- * Sie verwaltet die Erkennung und Validierung der Sprache basierend auf der URL.
659
+ * Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Locale-Kontext umschließt.
660
+ * Sie verwaltet die URL-basierte Lokalerkennung und -validierung.
665
661
  */
666
662
  const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
667
663
  children,
@@ -669,21 +665,21 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
669
665
  }) => {
670
666
  const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen
671
667
 
672
- // Bestimme die aktuelle Locale, standardmäßig auf die Standardlocale zurückgreifen, falls nicht angegeben
668
+ // Bestimmen der aktuellen Locale, Standardwert verwenden, falls nicht angegeben
673
669
  const currentLocale = locale ?? defaultLocale;
674
670
 
675
- // Entferne das Locale-Präfix aus dem Pfad, um einen Basis-Pfad zu erstellen
671
+ // Entfernen des Locale-Präfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
676
672
  const pathWithoutLocale = getPathWithoutLocale(
677
673
  pathname // Aktueller URL-Pfad
678
674
  );
679
675
 
680
676
  /**
681
- * Wenn middleware.prefixDefault true ist, sollte die Standardlocale immer mit einem Präfix versehen sein.
677
+ * Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer vorangestellt werden.
682
678
  */
683
679
  if (middleware.prefixDefault) {
684
680
  // Locale validieren
685
681
  if (!locale || !locales.includes(locale)) {
686
- // Weiterleitung zur Standardlocale mit aktualisiertem Pfad
682
+ // Weiterleitung zur Standard-Locale mit aktualisiertem Pfad
687
683
  return (
688
684
  <Navigate
689
685
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
@@ -698,14 +694,14 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
698
694
  );
699
695
  } else {
700
696
  /**
701
- * Wenn middleware.prefixDefault false ist, wird die Standard-Locale nicht vorangestellt.
702
- * Stelle sicher, dass die aktuelle Locale gültig ist und nicht die Standard-Locale ist.
697
+ * Wenn middleware.prefixDefault false ist, wird die Standardsprache nicht mit einem Präfix versehen.
698
+ * Stellen Sie sicher, dass die aktuelle Locale gültig ist und nicht die Standardsprache ist.
703
699
  */
704
700
  if (
705
701
  currentLocale.toString() !== defaultLocale.toString() &&
706
702
  !locales
707
703
  .filter(
708
- (locale) => locale.toString() !== defaultLocale.toString() // Schließt die Standard-Locale aus
704
+ (locale) => locale.toString() !== defaultLocale.toString() // Schließt die Standardsprache aus
709
705
  )
710
706
  .includes(currentLocale) // Überprüfen, ob die aktuelle Locale in der Liste der gültigen Locales enthalten ist
711
707
  ) {
@@ -721,8 +717,8 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
721
717
  };
722
718
 
723
719
  /**
724
- * Ein Router-Komponent, der locale-spezifische Routen einrichtet.
725
- * Er verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
720
+ * Eine Router-Komponente, die locale-spezifische Routen einrichtet.
721
+ * Sie verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
726
722
  */
727
723
  export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
728
724
  <BrowserRouter>
@@ -736,18 +732,18 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
736
732
  // Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu erfassen
737
733
  path={`/${locale}/*`}
738
734
  key={locale}
739
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der Lokalisierungsverwaltung
735
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der Locale-Verwaltung
740
736
  />
741
737
  ))}
742
738
 
743
739
  {
744
- // Wenn das Präfix für die Standard-Locale deaktiviert ist, rendere die Kinder direkt im Stammverzeichnis
740
+ // Wenn das Präfix für die Standard-Locale deaktiviert ist, werden die Kinder direkt im Stammverzeichnis gerendert
745
741
  !middleware.prefixDefault && (
746
742
  <Route
747
743
  path="*"
748
744
  element={
749
745
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
750
- } // Umschließt die Kinder mit der Lokalisierungsverwaltung
746
+ } // Umschließt die Kinder mit der Locale-Verwaltung
751
747
  />
752
748
  )
753
749
  }
@@ -774,14 +770,14 @@ const { internationalization, middleware } = configuration;
774
770
  const { locales, defaultLocale } = internationalization;
775
771
 
776
772
  /**
777
- * Eine Komponente, die die Lokalisierung verwaltet und die Kinder mit dem entsprechenden Locale-Kontext umschließt.
773
+ * Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Locale-Kontext umschließt.
778
774
  /**
779
- * Es verwaltet die lokalisierungsbasierte Erkennung und Validierung der URL.
775
+ * Es verwaltet die auf der URL basierende Lokalisierungserkennung und -validierung.
780
776
  */
781
777
  const AppLocalized = ({ children, locale }) => {
782
778
  const { pathname, search } = useLocation(); // Holt den aktuellen URL-Pfad
783
779
 
784
- // Bestimmt die aktuelle Locale, standardmäßig die Default-Locale, falls nicht angegeben
780
+ // Bestimmt die aktuelle Locale, standardmäßig die Standard-Locale, falls keine angegeben ist
785
781
  const currentLocale = locale ?? defaultLocale;
786
782
 
787
783
  // Entfernt das Locale-Präfix aus dem Pfad, um einen Basis-Pfad zu erstellen
@@ -790,7 +786,7 @@ const AppLocalized = ({ children, locale }) => {
790
786
  );
791
787
 
792
788
  /**
793
- * Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer vorangestellt werden.
789
+ * Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer als Präfix verwendet werden.
794
790
  */
795
791
  if (middleware.prefixDefault) {
796
792
  // Validiert die Locale
@@ -845,21 +841,21 @@ export const LocaleRouter = ({ children }) => (
845
841
  )
846
842
  .map((locale) => (
847
843
  <Route
848
- // Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu erfassen
844
+ // Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade abzugleichen
849
845
  path={`/${locale}/*`}
850
846
  key={locale}
851
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit Locale-Verwaltung
847
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der Locale-Verwaltung
852
848
  />
853
849
  ))}
854
850
 
855
851
  {
856
- // Wenn das Präfix für die Standard-Locale deaktiviert ist, rendere die Kinder direkt im Stammverzeichnis
852
+ // Wenn das Präfix für die Standard-Locale deaktiviert ist, werden die Kinder direkt im Stammverzeichnis gerendert
857
853
  !middleware.prefixDefault && (
858
854
  <Route
859
855
  path="*"
860
856
  element={
861
857
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
862
- } // Umschließt Kinder mit Locale-Verwaltung
858
+ } // Umschließt die Kinder mit der Locale-Verwaltung
863
859
  />
864
860
  )
865
861
  }
@@ -886,15 +882,15 @@ const { locales, defaultLocale } = internationalization;
886
882
 
887
883
  /**
888
884
  * Eine Komponente, die die Lokalisierung verwaltet und die Kinder mit dem entsprechenden Lokalisierungskontext umschließt.
889
- * Sie verwaltet die URL-basierte Lokalisierungserkennung und -validierung.
885
+ * Sie verwaltet die URL-basierte Lokalerkennung und Validierung.
890
886
  */
891
887
  const AppLocalized = ({ children, locale }) => {
892
888
  const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad
893
889
 
894
- // Bestimme die aktuelle Locale, standardmäßig die Default-Locale verwenden, falls nicht angegeben
890
+ // Bestimme die aktuelle Locale, standardmäßig auf die Default-Locale zurückfallend, falls nicht angegeben
895
891
  const currentLocale = locale ?? defaultLocale;
896
892
 
897
- // Entferne das Locale-Präfix vom Pfad, um einen Basis-Pfad zu erstellen
893
+ // Entferne das Locale-Präfix aus dem Pfad, um einen Basis-Pfad zu erstellen
898
894
  const pathWithoutLocale = getPathWithoutLocale(
899
895
  pathname // Aktueller URL-Pfad
900
896
  );
@@ -903,13 +899,13 @@ const AppLocalized = ({ children, locale }) => {
903
899
  * Wenn middleware.prefixDefault true ist, sollte die Default-Locale immer vorangestellt werden.
904
900
  */
905
901
  if (middleware.prefixDefault) {
906
- // Validierung der Locale
902
+ // Überprüfe die Locale
907
903
  if (!locale || !locales.includes(locale)) {
908
- // Weiterleitung zur Default-Locale mit aktualisiertem Pfad
904
+ // Weiterleitung zur Default-Locale mit dem aktualisierten Pfad
909
905
  return (
910
906
  <Navigate
911
907
  to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
912
- replace // Ersetzt den aktuellen Eintrag im Verlauf durch den neuen
908
+ replace // Ersetzt den aktuellen Eintrag in der Historie durch den neuen
913
909
  />
914
910
  );
915
911
  }
@@ -921,15 +917,15 @@ const AppLocalized = ({ children, locale }) => {
921
917
  } else {
922
918
  /**
923
919
  * Wenn middleware.prefixDefault false ist, wird die Standard-Locale nicht vorangestellt.
924
- * Stelle sicher, dass die aktuelle Locale gültig ist und nicht die Standard-Locale.
920
+ * Stelle sicher, dass die aktuelle Locale gültig ist und nicht die Standard-Locale ist.
925
921
  */
926
922
  if (
927
923
  currentLocale.toString() !== defaultLocale.toString() &&
928
924
  !locales
929
925
  .filter(
930
- (locale) => locale.toString() !== defaultLocale.toString() // Schließe die Standard-Locale aus
926
+ (locale) => locale.toString() !== defaultLocale.toString() // Schließt die Standard-Locale aus
931
927
  )
932
- .includes(currentLocale) // Prüfe, ob die aktuelle Locale in der Liste der gültigen Locales ist
928
+ .includes(currentLocale) // Prüft, ob die aktuelle Locale in der Liste der gültigen Locales ist
933
929
  ) {
934
930
  // Weiterleitung zum Pfad ohne Sprachpräfix
935
931
  return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
@@ -955,10 +951,10 @@ const LocaleRouter = ({ children }) => (
955
951
  )
956
952
  .map((locale) => (
957
953
  <Route
958
- // Routenmuster, um die Sprache zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu matchen
954
+ // Routenmuster, um die Sprache zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu erfassen
959
955
  path={`/${locale}/*`}
960
956
  key={locale}
961
- element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit der Verwaltung der Spracheinstellung
957
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit der Sprachverwaltung
962
958
  />
963
959
  ))}
964
960
 
@@ -969,7 +965,7 @@ const LocaleRouter = ({ children }) => (
969
965
  path="*"
970
966
  element={
971
967
  <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
972
- } // Umschließt Kinder mit der Verwaltung der Spracheinstellung
968
+ } // Umschließt Kinder mit der Sprachverwaltung
973
969
  />
974
970
  )
975
971
  }
@@ -1017,7 +1013,7 @@ const App = () => (
1017
1013
  );
1018
1014
  ```
1019
1015
 
1020
- Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing in Ihre Anwendung zu integrieren. 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.
1016
+ Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing in Ihre Anwendung zu integrieren. 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 passendste Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wird keine Locale erkannt, erfolgt eine Weiterleitung zur Standard-Locale.
1021
1017
 
1022
1018
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1023
1019
  import { defineConfig } from "vite";
@@ -1068,16 +1064,16 @@ import { useLocale } from "react-intlayer";
1068
1064
  import { type FC } from "react";
1069
1065
 
1070
1066
  const LocaleSwitcher: FC = () => {
1071
- const { pathname, search } = useLocation(); // Holt den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1067
+ const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1072
1068
  const navigate = useNavigate();
1073
1069
 
1074
1070
  const { locale, availableLocales, setLocale } = useLocale({
1075
1071
  onLocaleChange: (locale) => {
1076
- // Erstellen Sie die URL mit der aktualisierten Locale
1072
+ // Erstelle die URL mit der aktualisierten Locale
1077
1073
  // Beispiel: /es/about?foo=bar
1078
1074
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1079
1075
 
1080
- // Aktualisieren Sie den URL-Pfad
1076
+ // Aktualisiere den URL-Pfad
1081
1077
  navigate(pathWithLocale);
1082
1078
  },
1083
1079
  });
@@ -1106,7 +1102,7 @@ const LocaleSwitcher: FC = () => {
1106
1102
  {getLocaleName(localeItem, locale)}
1107
1103
  </span>
1108
1104
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1109
- {/* Sprache im aktuellen Gebietsschema - z.B. Francés mit aktuellem Gebietsschema auf Locales.SPANISH gesetzt */}
1105
+ {/* Sprache im aktuellen Gebietsschema - z.B. Francés, wenn das aktuelle Gebietsschema auf Locales.SPANISH gesetzt ist */}
1110
1106
  {getLocaleName(localeItem)}
1111
1107
  </span>
1112
1108
  <span dir="ltr" lang={Locales.ENGLISH}>
@@ -1166,7 +1162,7 @@ const LocaleSwitcher = () => {
1166
1162
  {localeItem}
1167
1163
  </span>
1168
1164
  <span>
1169
- {/* Sprache im eigenen Gebietsschema - z.B. Français */}
1165
+ {/* Sprache in ihrem eigenen Gebietsschema - z.B. Français */}
1170
1166
  {getLocaleName(localeItem, locale)}
1171
1167
  </span>
1172
1168
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
@@ -1196,16 +1192,16 @@ const {
1196
1192
  const { useLocale } = require("react-intlayer");
1197
1193
 
1198
1194
  const LocaleSwitcher = () => {
1199
- const { pathname, search } = useLocation(); // Holt den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1195
+ const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1200
1196
  const navigate = useNavigate();
1201
1197
 
1202
1198
  const { locale, availableLocales, setLocale } = useLocale({
1203
1199
  onLocaleChange: (locale) => {
1204
- // Konstruiert die URL mit der aktualisierten Locale
1200
+ // Erstelle die URL mit der aktualisierten Locale
1205
1201
  // Beispiel: /es/about?foo=bar
1206
1202
  const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1207
1203
 
1208
- // Aktualisiert den URL-Pfad
1204
+ // Aktualisiere den URL-Pfad
1209
1205
  navigate(pathWithLocale);
1210
1206
  },
1211
1207
  });
@@ -1234,11 +1230,11 @@ const LocaleSwitcher = () => {
1234
1230
  {getLocaleName(localeItem, locale)}
1235
1231
  </span>
1236
1232
  <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1237
- {/* Sprache im aktuellen Gebietsschema - z.B. Francés mit aktuellem Gebietsschema auf Locales.SPANISH gesetzt */}
1233
+ {/* Sprache im aktuellen Gebietsschema - z.B. Francés, wenn das aktuelle Gebietsschema auf Locales.SPANISH gesetzt ist */}
1238
1234
  {getLocaleName(localeItem)}
1239
1235
  </span>
1240
1236
  <span dir="ltr" lang={Locales.ENGLISH}>
1241
- {/* Sprache auf Englisch - z.B. Französisch */}
1237
+ {/* Sprache auf Englisch z.B. Französisch */}
1242
1238
  {getLocaleName(localeItem, Locales.ENGLISH)}
1243
1239
  </span>
1244
1240
  </a>
@@ -1249,12 +1245,12 @@ const LocaleSwitcher = () => {
1249
1245
  };
1250
1246
  ```
1251
1247
 
1252
- > Dokumentationsverweise:
1248
+ > Dokumentationsreferenzen:
1253
1249
  >
1254
1250
  > - [`useLocale` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useLocale.md)
1255
1251
  > - [`getLocaleName` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getLocaleName.md)
1256
1252
  > - [`getLocalizedUrl` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getLocalizedUrl.md)
1257
- > - [`getHTMLTextDir` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getHTMLTextDir.md)
1253
+ > - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getHTMLTextDir.md)
1258
1254
  > - [`hrefLang` Attribut](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1259
1255
  > - [`lang` Attribut](https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/lang)
1260
1256
  > - [`dir` Attribut](https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/dir)
@@ -1270,7 +1266,7 @@ Wenn Ihre Anwendung mehrere Sprachen unterstützt, ist es entscheidend, die `lan
1270
1266
 
1271
1267
  - **Barrierefreiheit**: Screenreader und unterstützende Technologien verlassen sich auf das korrekte `lang`-Attribut, um Inhalte richtig auszusprechen und zu interpretieren.
1272
1268
  - **Textdarstellung**: Das `dir`-Attribut (Richtung) sorgt dafür, dass der Text in der richtigen Reihenfolge dargestellt wird (z. B. von links nach rechts für Englisch, von rechts nach links für Arabisch oder Hebräisch), was für die Lesbarkeit unerlässlich ist.
1273
- - **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen, was dabei hilft, die richtige lokalisierte Version in den Suchergebnissen anzuzeigen.
1269
+ - **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen und so die passende lokalisierte Version in den Suchergebnissen anzuzeigen.
1274
1270
 
1275
1271
  Indem Sie diese Attribute dynamisch aktualisieren, wenn sich die Spracheinstellung ändert, gewährleisten Sie eine konsistente und barrierefreie Erfahrung für Benutzer in allen unterstützten Sprachen.
1276
1272
 
@@ -1313,7 +1309,7 @@ import { getHTMLTextDir } from "intlayer";
1313
1309
  * - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1314
1310
  * - `dir`: Stellt die korrekte Leserichtung sicher (z.B. 'ltr' für Englisch, 'rtl' für Arabisch).
1315
1311
  *
1316
- * Dieses dynamische Update ist essenziell für die korrekte Textdarstellung, Barrierefreiheit und SEO.
1312
+ * Dieses dynamische Update ist essentiell für die korrekte Textdarstellung, Barrierefreiheit und SEO.
1317
1313
  */
1318
1314
  export const useI18nHTMLAttributes = () => {
1319
1315
  const { locale } = useLocale();
@@ -1322,7 +1318,7 @@ export const useI18nHTMLAttributes = () => {
1322
1318
  // Aktualisiert das Sprachattribut auf die aktuelle Locale.
1323
1319
  document.documentElement.lang = locale;
1324
1320
 
1325
- // Setzt die Schreibrichtung basierend auf der aktuellen Locale.
1321
+ // Setzt die Leserichtung basierend auf der aktuellen Locale.
1326
1322
  document.documentElement.dir = getHTMLTextDir(locale);
1327
1323
  }, [locale]);
1328
1324
  };
@@ -1334,9 +1330,9 @@ const { useLocale } = require("react-intlayer");
1334
1330
  const { getHTMLTextDir } = require("intlayer");
1335
1331
 
1336
1332
  /**
1337
- * Aktualisiert die `lang`- und `dir`-Attribute des HTML-<html>-Elements basierend auf der aktuellen Locale.
1333
+ * Aktualisiert die `lang`- und `dir`-Attribute des HTML-Elements <html> basierend auf der aktuellen Locale.
1338
1334
  * - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1339
- * - `dir`: Stellt die korrekte Leserichtung sicher (z.B. 'ltr' für Englisch, 'rtl' für Arabisch).
1335
+ * - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
1340
1336
  *
1341
1337
  * Diese dynamische Aktualisierung ist essenziell für die korrekte Textdarstellung, Barrierefreiheit und SEO.
1342
1338
  */
@@ -1347,7 +1343,7 @@ const useI18nHTMLAttributes = () => {
1347
1343
  // Aktualisiere das Sprachattribut auf die aktuelle Locale.
1348
1344
  document.documentElement.lang = locale;
1349
1345
 
1350
- // Setze die Leserichtung basierend auf der aktuellen Locale.
1346
+ // Setze die Textrichtung basierend auf der aktuellen Locale.
1351
1347
  document.documentElement.dir = getHTMLTextDir(locale);
1352
1348
  }, [locale]);
1353
1349
  };
@@ -1381,10 +1377,9 @@ const App: FC = () => (
1381
1377
  export default App;
1382
1378
  ```
1383
1379
 
1384
- ````jsx fileName="src/App.msx" codeFormat="esm"
1385
1380
  #### Verwendung des Hooks in Ihrer Anwendung
1386
1381
 
1387
- Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute bei einem Wechsel der Sprache aktualisiert werden:
1382
+ Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute aktualisiert werden, sobald sich die Locale ändert:
1388
1383
 
1389
1384
  ```tsx fileName="src/App.tsx" codeFormat="typescript"
1390
1385
  import type { FC } from "react";
@@ -1393,7 +1388,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1393
1388
  import "./App.css";
1394
1389
 
1395
1390
  const AppContent: FC = () => {
1396
- // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Sprache zu aktualisieren.
1391
+ // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
1397
1392
  useI18nHTMLAttributes();
1398
1393
 
1399
1394
  // ... Rest Ihrer Komponente
@@ -1406,7 +1401,7 @@ const App: FC = () => (
1406
1401
  );
1407
1402
 
1408
1403
  export default App;
1409
- ````
1404
+ ```
1410
1405
 
1411
1406
  ```jsx fileName="src/App.msx" codeFormat="esm"
1412
1407
  import { IntlayerProvider, useIntlayer } from "react-intlayer";
@@ -1414,7 +1409,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1414
1409
  import "./App.css";
1415
1410
 
1416
1411
  const AppContent = () => {
1417
- // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Sprache zu aktualisieren.
1412
+ // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
1418
1413
  useI18nHTMLAttributes();
1419
1414
 
1420
1415
  // ... Rest Ihrer Komponente
@@ -1436,7 +1431,7 @@ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1436
1431
  require("./App.css");
1437
1432
 
1438
1433
  const AppContent = () => {
1439
- // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Sprache zu aktualisieren.
1434
+ // Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
1440
1435
  useI18nHTMLAttributes();
1441
1436
 
1442
1437
  // ... Rest Ihrer Komponente
@@ -1453,43 +1448,27 @@ module.exports = App;
1453
1448
 
1454
1449
  Durch diese Änderungen wird Ihre Anwendung:
1455
1450
 
1456
- - Sicherstellen, dass das **language** (`lang`) Attribut die aktuelle Sprache korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
1457
- - Die **Schreibrichtung** (`dir`) entsprechend der Sprache anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlichen Leserichtungen zu verbessern.
1458
- - Eine zugänglichere Erfahrung bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
1451
+ - Sicherstellen, dass das **language** (`lang`) Attribut die aktuelle Locale korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
1452
+ - Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlicher Leserichtung zu verbessern.
1453
+ - Eine bessere **Barrierefreiheit** bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
1459
1454
 
1460
1455
  ### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
1461
1456
 
1462
- // Wenden Sie den Hook an, um die Attribute lang und dir des <html>-Tags basierend auf der Locale zu aktualisieren.
1463
- useI18nHTMLAttributes();
1464
-
1465
- // ... Rest Ihres Components
1466
- };
1467
-
1468
- const App = () => (
1469
- <IntlayerProvider>
1470
- <AppContent />
1471
- </IntlayerProvider>
1472
- );
1473
-
1474
- module.exports = App;
1475
-
1476
- ````
1477
-
1478
1457
  Durch die Anwendung dieser Änderungen wird Ihre Anwendung:
1479
1458
 
1480
- - Sicherstellen, dass das **Sprach-**Attribut (`lang`) die aktuelle Locale korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
1481
- - Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlicher Leserichtung zu verbessern.
1459
+ - Sicherstellen, dass das **Sprach**-Attribut (`lang`) die aktuelle Locale korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
1460
+ - Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlichen Leserichtungen zu verbessern.
1482
1461
  - Eine zugänglichere **Benutzererfahrung** bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
1483
1462
 
1484
1463
  ### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
1485
1464
 
1486
- Um sicherzustellen, dass die Navigation Ihrer Anwendung die aktuelle Locale berücksichtigt, können Sie eine benutzerdefinierte `Link`-Komponente erstellen. Diese Komponente fügt automatisch interne URLs mit der aktuellen Sprache als Präfix hinzu. Zum Beispiel wird ein französischsprachiger Benutzer, der auf einen Link zur "Über uns"-Seite klickt, zu `/fr/about` statt zu `/about` weitergeleitet.
1465
+ Um sicherzustellen, dass die Navigation Ihrer Anwendung die aktuelle Sprache berücksichtigt, können Sie eine benutzerdefinierte `Link`-Komponente erstellen. Diese Komponente fügt automatisch den aktuellen Sprachpräfix zu internen URLs hinzu. Zum Beispiel wird ein französischsprachiger Benutzer, der auf einen Link zur "Über uns"-Seite klickt, zu `/fr/about` statt zu `/about` weitergeleitet.
1487
1466
 
1488
1467
  Dieses Verhalten ist aus mehreren Gründen nützlich:
1489
1468
 
1490
1469
  - **SEO und Benutzererfahrung**: Lokalisierte URLs helfen Suchmaschinen, sprachspezifische Seiten korrekt zu indexieren, und bieten den Nutzern Inhalte in ihrer bevorzugten Sprache.
1491
- - **Konsistenz**: Durch die Verwendung eines lokalisierten Links in Ihrer gesamten Anwendung stellen Sie sicher, dass die Navigation innerhalb der aktuellen Locale bleibt und unerwartete Sprachwechsel vermieden werden.
1492
- - **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung von URLs und macht Ihren Code leichter wartbar und erweiterbar, wenn Ihre Anwendung wächst.
1470
+ - **Konsistenz**: Durch die Verwendung eines lokalisierten Links in Ihrer gesamten Anwendung stellen Sie sicher, dass die Navigation innerhalb der aktuellen Sprache bleibt und unerwartete Sprachwechsel vermieden werden.
1471
+ - **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung der URLs und macht Ihren Code leichter wartbar und erweiterbar, wenn Ihre Anwendung wächst.
1493
1472
 
1494
1473
  Nachfolgend finden Sie die Implementierung einer lokalisierten `Link`-Komponente in TypeScript:
1495
1474
 
@@ -1510,14 +1489,14 @@ export interface LinkProps
1510
1489
 
1511
1490
  /**
1512
1491
  * Hilfsfunktion, um zu prüfen, ob eine gegebene URL extern ist.
1513
- * Wenn die URL mit http:// oder https:// beginnt, gilt sie als extern.
1492
+ * Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
1514
1493
  */
1515
1494
  export const checkIsExternalLink = (href?: string): boolean =>
1516
1495
  /^https?:\/\//.test(href ?? "");
1517
1496
 
1518
1497
  /**
1519
1498
  * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Locale anpasst.
1520
- * Für interne Links wird `getLocalizedUrl` verwendet, um die URL mit der Locale zu versehen (z.B. /fr/about).
1499
+ * Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Locale zu versehen (z.B. /fr/about).
1521
1500
  * Dies stellt sicher, dass die Navigation im gleichen Locale-Kontext bleibt.
1522
1501
  */
1523
1502
  export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
@@ -1525,7 +1504,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1525
1504
  const { locale } = useLocale();
1526
1505
  const isExternalLink = checkIsExternalLink(href);
1527
1506
 
1528
- // Wenn der Link intern ist und eine gültige href vorhanden ist, wird die lokalisierte URL ermittelt.
1507
+ // Wenn der Link intern ist und ein gültiges href vorhanden ist, wird die lokalisierte URL verwendet.
1529
1508
  const hrefI18n =
1530
1509
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1531
1510
 
@@ -1538,7 +1517,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1538
1517
  );
1539
1518
 
1540
1519
  Link.displayName = "Link";
1541
- ````
1520
+ ```
1542
1521
 
1543
1522
  ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1544
1523
  import { getLocalizedUrl } from "intlayer";
@@ -1554,14 +1533,14 @@ export const checkIsExternalLink = (href?: string): boolean =>
1554
1533
 
1555
1534
  /**
1556
1535
  * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Locale anpasst.
1557
- * Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Locale zu versehen (z.B. /fr/about).
1536
+ * Für interne Links wird `getLocalizedUrl` verwendet, um die URL mit der Locale zu versehen (z.B. /fr/about).
1558
1537
  * Dies stellt sicher, dass die Navigation im gleichen Locale-Kontext bleibt.
1559
1538
  */
1560
1539
  export const Link = forwardRef(({ href, children, ...props }, ref) => {
1561
1540
  const { locale } = useLocale();
1562
1541
  const isExternalLink = checkIsExternalLink(href);
1563
1542
 
1564
- // Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL ermittelt.
1543
+ // Wenn der Link intern ist und eine gültige href vorhanden ist, wird die lokalisierte URL abgerufen.
1565
1544
  const hrefI18n =
1566
1545
  href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1567
1546
 
@@ -1595,7 +1574,7 @@ const Link = forwardRef(({ href, children, ...props }, ref) => {
1595
1574
  const { locale } = useLocale();
1596
1575
  const isExternalLink = checkIsExternalLink(href);
1597
1576
 
1598
- // Wenn der Link intern ist und eine gültige href vorhanden ist, wird die lokalisierte URL verwendet.
1577
+ // Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL ermittelt.
1599
1578
  const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
1600
1579
 
1601
1580
  return (
@@ -1613,25 +1592,25 @@ const Link = forwardRef(({ href, children, ...props }, ref) => {
1613
1592
  Link.displayName = "Link";
1614
1593
  ```
1615
1594
 
1616
- #### Wie es funktioniert
1595
+ #### Funktionsweise
1617
1596
 
1618
1597
  - **Erkennung externer Links**:
1619
- Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert, da sie keine Lokalisierung benötigen.
1598
+ Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert, da sie nicht lokalisiert werden müssen.
1620
1599
 
1621
1600
  - **Abrufen der aktuellen Locale**:
1622
- Der Hook `useLocale` liefert die aktuelle Locale (z.B. `fr` für Französisch).
1601
+ Der Hook `useLocale` liefert die aktuelle Locale (z. B. `fr` für Französisch).
1623
1602
 
1624
1603
  - **Lokalisierung der URL**:
1625
- Für interne Links (d.h. nicht extern) wird `getLocalizedUrl` verwendet, um die URL automatisch mit der aktuellen Locale zu versehen. Das bedeutet, wenn Ihr Benutzer Französisch eingestellt hat, wird aus `/about` als `href` automatisch `/fr/about`.
1604
+ Für interne Links (d. h. nicht extern) wird `getLocalizedUrl` verwendet, um die URL automatisch mit der aktuellen Locale zu versehen. Das bedeutet, wenn Ihr Benutzer Französisch eingestellt hat, wird aus `/about` als `href` automatisch `/fr/about`.
1626
1605
 
1627
1606
  - **Rückgabe des Links**:
1628
1607
  Die Komponente gibt ein `<a>`-Element mit der lokalisierten URL zurück, wodurch sichergestellt wird, dass die Navigation konsistent mit der Spracheinstellung erfolgt.
1629
1608
 
1630
- Durch die Integration dieser `Link`-Komponente in Ihre Anwendung erhalten Sie eine kohärente und sprachbewusste Benutzererfahrung und profitieren gleichzeitig von verbesserter SEO und Benutzerfreundlichkeit.
1609
+ Indem Sie diese `Link`-Komponente in Ihrer gesamten Anwendung integrieren, gewährleisten Sie eine kohärente und sprachbewusste Benutzererfahrung und profitieren gleichzeitig von verbesserter SEO und Benutzerfreundlichkeit.
1631
1610
 
1632
1611
  ### TypeScript konfigurieren
1633
1612
 
1634
- Intlayer verwendet Module Augmentation, um die Vorteile von TypeScript zu nutzen und Ihren Code robuster zu machen.
1613
+ Intlayer verwendet Module Augmentation, um die Vorteile von TypeScript zu nutzen und Ihren Codebasis robuster zu machen.
1635
1614
 
1636
1615
  ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1637
1616
 
@@ -1651,9 +1630,9 @@ Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generiert
1651
1630
 
1652
1631
  ### Git-Konfiguration
1653
1632
 
1654
- Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. So vermeiden Sie, diese versehentlich in Ihr Git-Repository zu committen.
1633
+ Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dadurch vermeiden Sie, diese versehentlich in Ihr Git-Repository zu committen.
1655
1634
 
1656
- Dazu können Sie folgende Anweisungen in Ihre `.gitignore`-Datei aufnehmen:
1635
+ Fügen Sie dazu folgende Anweisungen in Ihre `.gitignore`-Datei ein:
1657
1636
 
1658
1637
  ```plaintext
1659
1638
  # Ignoriere die von Intlayer generierten Dateien
@@ -1673,7 +1652,7 @@ Diese Erweiterung bietet:
1673
1652
  - **Inline-Vorschauen** des übersetzten Inhalts.
1674
1653
  - **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
1675
1654
 
1676
- Für weitere Details zur Verwendung der Erweiterung siehe die [Intlayer VS Code Extension Dokumentation](https://intlayer.org/doc/vs-code-extension).
1655
+ Für weitere Details zur Nutzung der Erweiterung siehe die [Intlayer VS Code Extension Dokumentation](https://intlayer.org/doc/vs-code-extension).
1677
1656
 
1678
1657
  ---
1679
1658
 
@@ -1685,4 +1664,4 @@ Um weiterzugehen, können Sie den [visuellen Editor](https://github.com/aymericz
1685
1664
 
1686
1665
  ## Dokumentationshistorie
1687
1666
 
1688
- - 5.5.10 - 2025-06-29: Initiale Historie
1667
+ - 5.5.10 - 2025-06-29: Historie initialisiert