@intlayer/docs 5.7.8 → 5.8.0

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 (297) hide show
  1. package/blog/ar/intlayer_with_next-i18next.md +5 -6
  2. package/blog/ar/intlayer_with_next-intl.md +3 -4
  3. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_react-intl.md +1 -1
  5. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
  6. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
  7. package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
  8. package/blog/de/intlayer_with_next-i18next.md +5 -6
  9. package/blog/de/intlayer_with_react-intl.md +1 -1
  10. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  11. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  12. package/blog/de/vue-i18n_vs_intlayer.md +268 -0
  13. package/blog/en/intlayer_with_next-i18next.md +5 -6
  14. package/blog/en/intlayer_with_next-intl.md +3 -4
  15. package/blog/en/intlayer_with_react-i18next.md +1 -1
  16. package/blog/en/intlayer_with_react-intl.md +1 -1
  17. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +89 -220
  18. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +85 -123
  19. package/blog/en/vue-i18n_vs_intlayer.md +268 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +5 -6
  21. package/blog/en-GB/intlayer_with_next-intl.md +3 -4
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
  25. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
  26. package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
  27. package/blog/es/intlayer_with_next-i18next.md +5 -6
  28. package/blog/es/intlayer_with_next-intl.md +3 -4
  29. package/blog/es/intlayer_with_react-i18next.md +1 -1
  30. package/blog/es/intlayer_with_react-intl.md +1 -1
  31. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  32. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  33. package/blog/es/vue-i18n_vs_intlayer.md +268 -0
  34. package/blog/fr/intlayer_with_next-i18next.md +5 -6
  35. package/blog/fr/intlayer_with_next-intl.md +3 -4
  36. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  37. package/blog/fr/intlayer_with_react-intl.md +1 -1
  38. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  39. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  40. package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
  41. package/blog/hi/intlayer_with_next-i18next.md +5 -6
  42. package/blog/hi/intlayer_with_next-intl.md +3 -4
  43. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  44. package/blog/hi/intlayer_with_react-intl.md +1 -1
  45. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
  46. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  47. package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
  48. package/blog/it/intlayer_with_next-i18next.md +5 -6
  49. package/blog/it/intlayer_with_next-intl.md +3 -4
  50. package/blog/it/intlayer_with_react-i18next.md +1 -1
  51. package/blog/it/intlayer_with_react-intl.md +1 -1
  52. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  53. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  54. package/blog/it/vue-i18n_vs_intlayer.md +268 -0
  55. package/blog/ja/intlayer_with_next-i18next.md +5 -6
  56. package/blog/ja/intlayer_with_next-intl.md +3 -4
  57. package/blog/ja/intlayer_with_react-intl.md +1 -1
  58. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  59. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  60. package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
  61. package/blog/ko/intlayer_with_next-i18next.md +5 -6
  62. package/blog/ko/intlayer_with_next-intl.md +3 -4
  63. package/blog/ko/intlayer_with_react-intl.md +1 -1
  64. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
  65. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  66. package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
  67. package/blog/pt/intlayer_with_next-i18next.md +5 -6
  68. package/blog/pt/intlayer_with_next-intl.md +3 -4
  69. package/blog/pt/intlayer_with_react-intl.md +1 -1
  70. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  71. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  72. package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
  73. package/blog/ru/intlayer_with_next-i18next.md +5 -6
  74. package/blog/ru/intlayer_with_next-intl.md +3 -4
  75. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  76. package/blog/ru/intlayer_with_react-intl.md +1 -1
  77. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
  78. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  79. package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
  80. package/blog/zh/intlayer_with_next-i18next.md +5 -6
  81. package/blog/zh/intlayer_with_next-intl.md +3 -4
  82. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  83. package/blog/zh/intlayer_with_react-intl.md +1 -1
  84. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  85. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  86. package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
  87. package/dist/cjs/generated/blog.entry.cjs +41 -0
  88. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  89. package/dist/cjs/generated/docs.entry.cjs +41 -0
  90. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  91. package/dist/esm/generated/blog.entry.mjs +41 -0
  92. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  93. package/dist/esm/generated/docs.entry.mjs +41 -0
  94. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  95. package/dist/types/generated/blog.entry.d.ts +1 -0
  96. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  97. package/dist/types/generated/docs.entry.d.ts +1 -0
  98. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  99. package/docs/ar/formatters.md +625 -0
  100. package/docs/ar/how_works_intlayer.md +2 -4
  101. package/docs/ar/interest_of_intlayer.md +159 -49
  102. package/docs/ar/intlayer_CMS.md +2 -3
  103. package/docs/ar/intlayer_visual_editor.md +2 -3
  104. package/docs/ar/intlayer_with_tanstack.md +1 -1
  105. package/docs/ar/introduction.md +7 -7
  106. package/docs/ar/packages/intlayer/index.md +3 -3
  107. package/docs/ar/packages/next-intlayer/index.md +3 -3
  108. package/docs/de/formatters.md +649 -0
  109. package/docs/de/interest_of_intlayer.md +161 -47
  110. package/docs/de/introduction.md +5 -5
  111. package/docs/de/packages/intlayer/index.md +3 -3
  112. package/docs/de/packages/next-intlayer/index.md +3 -3
  113. package/docs/de/packages/react-intlayer/index.md +3 -3
  114. package/docs/en/dictionary/enumeration.md +2 -2
  115. package/docs/en/dictionary/function_fetching.md +2 -2
  116. package/docs/en/dictionary/get_started.md +2 -2
  117. package/docs/en/dictionary/translation.md +2 -2
  118. package/docs/en/formatters.md +618 -0
  119. package/docs/en/how_works_intlayer.md +2 -4
  120. package/docs/en/interest_of_intlayer.md +170 -46
  121. package/docs/en/intlayer_CMS.md +2 -3
  122. package/docs/en/intlayer_visual_editor.md +2 -3
  123. package/docs/en/intlayer_with_create_react_app.md +2 -2
  124. package/docs/en/intlayer_with_express.md +2 -2
  125. package/docs/en/intlayer_with_tanstack.md +1 -1
  126. package/docs/en/introduction.md +7 -7
  127. package/docs/en/packages/express-intlayer/index.md +2 -2
  128. package/docs/en/packages/intlayer/getConfiguration.md +2 -3
  129. package/docs/en/packages/intlayer/getEnumeration.md +2 -7
  130. package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
  131. package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
  132. package/docs/en/packages/intlayer/getLocaleName.md +2 -3
  133. package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
  134. package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
  135. package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
  136. package/docs/en/packages/intlayer/getTranslation.md +2 -4
  137. package/docs/en/packages/intlayer/index.md +5 -5
  138. package/docs/en/packages/next-intlayer/index.md +5 -5
  139. package/docs/en/packages/next-intlayer/t.md +2 -2
  140. package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
  141. package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
  142. package/docs/en/packages/next-intlayer/useLocale.md +2 -2
  143. package/docs/en/packages/react-intlayer/index.md +5 -5
  144. package/docs/en/packages/react-intlayer/t.md +2 -2
  145. package/docs/en/packages/react-intlayer/useI18n.md +2 -2
  146. package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
  147. package/docs/en/packages/react-intlayer/useLocale.md +2 -2
  148. package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
  149. package/docs/en/packages/solid-intlayer/index.md +2 -2
  150. package/docs/en/packages/vite-intlayer/index.md +2 -2
  151. package/docs/en-GB/formatters.md +625 -0
  152. package/docs/en-GB/how_works_intlayer.md +2 -4
  153. package/docs/en-GB/interest_of_intlayer.md +157 -53
  154. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  155. package/docs/en-GB/introduction.md +2 -2
  156. package/docs/en-GB/packages/intlayer/index.md +3 -3
  157. package/docs/en-GB/packages/next-intlayer/index.md +3 -3
  158. package/docs/en-GB/packages/react-intlayer/index.md +3 -3
  159. package/docs/es/formatters.md +649 -0
  160. package/docs/es/how_works_intlayer.md +2 -4
  161. package/docs/es/interest_of_intlayer.md +156 -47
  162. package/docs/es/intlayer_with_tanstack.md +1 -1
  163. package/docs/es/introduction.md +5 -5
  164. package/docs/es/packages/intlayer/index.md +3 -3
  165. package/docs/es/packages/next-intlayer/index.md +3 -3
  166. package/docs/fr/formatters.md +649 -0
  167. package/docs/fr/how_works_intlayer.md +2 -4
  168. package/docs/fr/interest_of_intlayer.md +157 -46
  169. package/docs/fr/intlayer_with_tanstack.md +1 -1
  170. package/docs/fr/introduction.md +5 -5
  171. package/docs/fr/packages/intlayer/index.md +3 -3
  172. package/docs/fr/packages/next-intlayer/index.md +3 -3
  173. package/docs/fr/packages/react-intlayer/index.md +3 -3
  174. package/docs/hi/formatters.md +630 -0
  175. package/docs/hi/how_works_intlayer.md +2 -4
  176. package/docs/hi/interest_of_intlayer.md +155 -42
  177. package/docs/hi/intlayer_with_tanstack.md +1 -1
  178. package/docs/hi/introduction.md +5 -5
  179. package/docs/hi/packages/intlayer/index.md +3 -3
  180. package/docs/hi/packages/next-intlayer/index.md +3 -3
  181. package/docs/hi/packages/react-intlayer/index.md +3 -3
  182. package/docs/it/formatters.md +647 -0
  183. package/docs/it/how_works_intlayer.md +2 -4
  184. package/docs/it/interest_of_intlayer.md +157 -46
  185. package/docs/it/intlayer_with_tanstack.md +1 -1
  186. package/docs/it/introduction.md +5 -5
  187. package/docs/it/packages/intlayer/index.md +3 -3
  188. package/docs/it/packages/next-intlayer/index.md +3 -3
  189. package/docs/it/packages/react-intlayer/index.md +3 -3
  190. package/docs/ja/formatters.md +649 -0
  191. package/docs/ja/how_works_intlayer.md +2 -4
  192. package/docs/ja/interest_of_intlayer.md +154 -48
  193. package/docs/ja/intlayer_with_tanstack.md +1 -1
  194. package/docs/ja/introduction.md +5 -5
  195. package/docs/ja/packages/intlayer/index.md +3 -3
  196. package/docs/ja/packages/next-intlayer/index.md +3 -3
  197. package/docs/ja/packages/react-intlayer/index.md +3 -3
  198. package/docs/ko/formatters.md +649 -0
  199. package/docs/ko/how_works_intlayer.md +2 -4
  200. package/docs/ko/interest_of_intlayer.md +157 -48
  201. package/docs/ko/intlayer_with_tanstack.md +1 -1
  202. package/docs/ko/introduction.md +5 -5
  203. package/docs/ko/packages/intlayer/index.md +3 -3
  204. package/docs/ko/packages/next-intlayer/index.md +3 -3
  205. package/docs/ko/packages/react-intlayer/index.md +3 -3
  206. package/docs/pt/formatters.md +625 -0
  207. package/docs/pt/how_works_intlayer.md +2 -4
  208. package/docs/pt/interest_of_intlayer.md +162 -47
  209. package/docs/pt/intlayer_with_tanstack.md +1 -1
  210. package/docs/pt/introduction.md +5 -5
  211. package/docs/pt/packages/intlayer/index.md +3 -3
  212. package/docs/pt/packages/next-intlayer/index.md +3 -3
  213. package/docs/pt/packages/react-intlayer/index.md +3 -3
  214. package/docs/ru/autoFill.md +2 -2
  215. package/docs/ru/configuration.md +1 -40
  216. package/docs/ru/formatters.md +649 -0
  217. package/docs/ru/how_works_intlayer.md +5 -7
  218. package/docs/ru/index.md +1 -1
  219. package/docs/ru/interest_of_intlayer.md +165 -50
  220. package/docs/ru/intlayer_CMS.md +7 -8
  221. package/docs/ru/intlayer_cli.md +4 -7
  222. package/docs/ru/intlayer_visual_editor.md +5 -6
  223. package/docs/ru/intlayer_with_angular.md +1 -1
  224. package/docs/ru/intlayer_with_create_react_app.md +5 -5
  225. package/docs/ru/intlayer_with_lynx+react.md +1 -1
  226. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  227. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  228. package/docs/ru/intlayer_with_nuxt.md +1 -1
  229. package/docs/ru/intlayer_with_react_native+expo.md +2 -2
  230. package/docs/ru/intlayer_with_tanstack.md +3 -3
  231. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  232. package/docs/ru/intlayer_with_vite+react.md +3 -3
  233. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  234. package/docs/ru/intlayer_with_vite+svelte.md +1 -1
  235. package/docs/ru/intlayer_with_vite+vue.md +2 -2
  236. package/docs/ru/introduction.md +8 -8
  237. package/docs/ru/locale_mapper.md +1 -1
  238. package/docs/ru/packages/@intlayer/api/index.md +2 -2
  239. package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
  240. package/docs/ru/packages/@intlayer/cli/index.md +2 -2
  241. package/docs/ru/packages/@intlayer/config/index.md +2 -2
  242. package/docs/ru/packages/@intlayer/core/index.md +2 -2
  243. package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
  244. package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
  245. package/docs/ru/packages/@intlayer/editor/index.md +1 -1
  246. package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
  247. package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
  248. package/docs/ru/packages/angular-intlayer/index.md +1 -1
  249. package/docs/ru/packages/express-intlayer/index.md +3 -3
  250. package/docs/ru/packages/express-intlayer/t.md +1 -1
  251. package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
  252. package/docs/ru/packages/intlayer/getTranslation.md +3 -5
  253. package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
  254. package/docs/ru/packages/intlayer/index.md +6 -6
  255. package/docs/ru/packages/intlayer-cli/index.md +1 -1
  256. package/docs/ru/packages/intlayer-editor/index.md +2 -2
  257. package/docs/ru/packages/lynx-intlayer/index.md +1 -1
  258. package/docs/ru/packages/next-intlayer/index.md +7 -7
  259. package/docs/ru/packages/next-intlayer/t.md +4 -4
  260. package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
  261. package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
  262. package/docs/ru/packages/preact-intlayer/index.md +1 -1
  263. package/docs/ru/packages/react-intlayer/index.md +7 -7
  264. package/docs/ru/packages/react-intlayer/t.md +4 -4
  265. package/docs/ru/packages/react-native-intlayer/index.md +1 -1
  266. package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
  267. package/docs/ru/packages/solid-intlayer/index.md +3 -3
  268. package/docs/ru/packages/svelte-intlayer/index.md +1 -1
  269. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  270. package/docs/ru/packages/vue-intlayer/index.md +1 -1
  271. package/docs/ru/per_locale_file.md +1 -1
  272. package/docs/ru/roadmap.md +3 -5
  273. package/docs/ru/vs_code_extension.md +1 -1
  274. package/docs/zh/formatters.md +647 -0
  275. package/docs/zh/how_works_intlayer.md +2 -4
  276. package/docs/zh/interest_of_intlayer.md +155 -48
  277. package/docs/zh/intlayer_with_tanstack.md +1 -1
  278. package/docs/zh/introduction.md +5 -5
  279. package/docs/zh/packages/intlayer/index.md +3 -3
  280. package/docs/zh/packages/next-intlayer/index.md +3 -3
  281. package/docs/zh/packages/react-intlayer/index.md +3 -3
  282. package/frequent_questions/ar/domain_routing.md +1 -1
  283. package/frequent_questions/en/domain_routing.md +1 -1
  284. package/frequent_questions/en-GB/domain_routing.md +1 -1
  285. package/frequent_questions/es/domain_routing.md +1 -1
  286. package/frequent_questions/fr/domain_routing.md +1 -1
  287. package/frequent_questions/hi/domain_routing.md +1 -1
  288. package/frequent_questions/it/domain_routing.md +1 -1
  289. package/frequent_questions/ko/domain_routing.md +1 -1
  290. package/frequent_questions/pt/domain_routing.md +1 -1
  291. package/frequent_questions/ru/domain_routing.md +1 -1
  292. package/frequent_questions/ru/get_locale_cookie.md +4 -4
  293. package/frequent_questions/ru/static_rendering.md +1 -2
  294. package/frequent_questions/zh/domain_routing.md +1 -1
  295. package/package.json +11 -11
  296. package/src/generated/blog.entry.ts +41 -0
  297. package/src/generated/docs.entry.ts +41 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2024-08-14
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-08-20
4
4
  title: Interesse an Intlayer
5
- description: Entdecken Sie die Vorteile und Nutzen der Verwendung von Intlayer in Ihren Projekten. Verstehen Sie, warum Intlayer sich von anderen Frameworks abhebt.
5
+ description: Entdecken Sie die Vorteile und Nutzen der Verwendung von Intlayer in Ihren Projekten. Verstehen Sie, warum Intlayer sich unter anderen Frameworks hervorhebt.
6
6
  keywords:
7
7
  - Vorteile
8
8
  - Nutzen
@@ -11,41 +11,104 @@ keywords:
11
11
  - Vergleich
12
12
  slugs:
13
13
  - doc
14
- - concept
15
- - interest
14
+ - why
16
15
  ---
17
16
 
18
- # Intlayer: Ein maßgeschneiderter Weg, Ihre Website zu übersetzen
17
+ # Warum sollten Sie Intlayer in Betracht ziehen?
19
18
 
20
- **Intlayer** ist eine Internationalisierungsbibliothek, die speziell für JavaScript-Entwickler entwickelt wurde. Sie ermöglicht die Deklaration Ihres Inhalts überall in Ihrem Code. Sie wandelt die Deklaration von mehrsprachigem Inhalt in strukturierte Wörterbücher um, um eine einfache Integration in Ihren Code zu gewährleisten. Durch die Verwendung von TypeScript macht **Intlayer** Ihre Entwicklung robuster und effizienter.
19
+ ## Was ist Intlayer?
21
20
 
22
- ## Anwendungsbeispiel
21
+ **Intlayer** ist eine Internationalisierungsbibliothek, die speziell für JavaScript-Entwickler entwickelt wurde. Sie ermöglicht die Deklaration Ihres Inhalts überall in Ihrem Code. Sie wandelt Deklarationen mehrsprachiger Inhalte in strukturierte Wörterbücher um, um sie einfach in Ihren Code zu integrieren. Durch die Verwendung von TypeScript macht **Intlayer** Ihre Entwicklung robuster und effizienter.
22
+
23
+ ## Warum wurde Intlayer erstellt?
24
+
25
+ Intlayer wurde entwickelt, um ein häufiges Problem zu lösen, das alle gängigen i18n-Bibliotheken wie `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` und `vue-i18n` betrifft.
26
+
27
+ Alle diese Lösungen verfolgen einen zentralisierten Ansatz, um Ihre Inhalte aufzulisten und zu verwalten. Zum Beispiel:
28
+
29
+ ```bash
30
+ .
31
+ ├── locales
32
+ │ ├── en.json
33
+ │ ├── fr.json
34
+ │ └── es.json
35
+ ├── i18n.ts
36
+ └── src
37
+ └── components
38
+ └── MyComponent
39
+ └── index.tsx
40
+ ```
41
+
42
+ Oder hier mit Namespaces:
43
+
44
+ ```bash
45
+ .
46
+ ├── locales
47
+ │ ├── en
48
+ │ │ ├── footer.json
49
+ │ │ └── navbar.json
50
+ │ ├── fr
51
+ │ │ ├── footer.json
52
+ │ │ └── navbar.json
53
+ │ └── es
54
+ │ ├── footer.json
55
+ │ └── navbar.json
56
+ ├── i18n.ts
57
+ └── src
58
+ └── components
59
+ └── MyComponent
60
+ └── index.tsx
61
+ ```
62
+
63
+ Diese Art von Architektur verlangsamt den Entwicklungsprozess und macht den Codebestand aus mehreren Gründen komplexer zu warten:
64
+
65
+ 1. **Für jede neu erstellte Komponente sollten Sie:**
66
+ - Die neue Ressource/den neuen Namespace im Ordner `locales` anlegen
67
+ - Daran denken, den neuen Namespace in Ihrer Seite zu importieren
68
+ - Ihre Inhalte übersetzen (oft manuell durch Kopieren/Einfügen von KI-Anbietern)
69
+
70
+ 2. **Für jede Änderung an Ihren Komponenten sollten Sie:**
71
+ - Nach der zugehörigen Ressource/dem Namespace suchen (weit entfernt von der Komponente)
72
+ - Ihre Inhalte übersetzen
73
+ - Sicherstellen, dass Ihre Inhalte für jede Locale aktuell sind
74
+ - Überprüfen, dass Ihr Namespace keine ungenutzten Schlüssel/Werte enthält
75
+ - Sicherstellen, dass die Struktur Ihrer JSON-Dateien für alle Locales gleich ist
76
+
77
+ Bei professionellen Projekten, die diese Lösungen verwenden, werden häufig Lokalisierungsplattformen eingesetzt, um die Übersetzung Ihrer Inhalte zu verwalten. Dies kann jedoch bei großen Projekten schnell kostspielig werden.
78
+
79
+ Um dieses Problem zu lösen, verfolgt Intlayer einen Ansatz, bei dem Ihre Inhalte pro Komponente abgegrenzt und nahe bei Ihrer Komponente gehalten werden, ähnlich wie wir es oft mit CSS (`styled-components`), Typen, Dokumentation (`storybook`) oder Unit-Tests (`jest`) tun.
23
80
 
24
81
  ```bash codeFormat="typescript"
25
82
  .
26
- └── Components
83
+ └── components
27
84
  └── MyComponent
28
85
  ├── index.content.ts
86
+ ├── index.test.tsx
87
+ ├── index.stories.tsx
29
88
  └── index.tsx
30
89
  ```
31
90
 
32
91
  ```bash codeFormat="commonjs"
33
92
  .
34
- └── Components
93
+ └── components
35
94
  └── MyComponent
36
95
  ├── index.content.cjs
37
- └── index.mjs
96
+ ├── index.test.mjs
97
+ ├── index.stories.mjs
98
+ └── index.tsx
38
99
  ```
39
100
 
40
101
  ```bash codeFormat="esm"
41
102
  .
42
- └── Components
103
+ └── components
43
104
  └── MyComponent
44
105
  ├── index.content.mjs
45
- └── index.js
106
+ ├── index.test.mjs
107
+ ├── index.stories.mjs
108
+ └── index.tsx
46
109
  ```
47
110
 
48
- ```tsx fileName="./Components/MyComponent/index.content.ts" codeFormat="typescript"
111
+ ```tsx fileName="./components/MyComponent/index.content.ts" codeFormat="typescript"
49
112
  import { t, type Dictionary } from "intlayer";
50
113
 
51
114
  const componentExampleContent = {
@@ -53,8 +116,8 @@ const componentExampleContent = {
53
116
  content: {
54
117
  myTranslatedContent: t({
55
118
  en: "Hello World",
56
- fr: "Bonjour le monde",
57
119
  es: "Hola Mundo",
120
+ fr: "Bonjour le monde",
58
121
  }),
59
122
  },
60
123
  } satisfies Dictionary;
@@ -62,18 +125,17 @@ const componentExampleContent = {
62
125
  export default componentExampleContent;
63
126
  ```
64
127
 
65
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
128
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
66
129
  import { t } from "intlayer";
67
130
 
68
131
  /** @type {import('intlayer').Dictionary} */
69
- // Beispielinhalt für die Komponente mit mehrsprachigem Text
70
132
  const componentExampleContent = {
71
133
  key: "component-example",
72
134
  content: {
73
135
  myTranslatedContent: t({
74
136
  en: "Hello World",
75
- fr: "Bonjour le monde",
76
137
  es: "Hola Mundo",
138
+ fr: "Bonjour le monde",
77
139
  }),
78
140
  },
79
141
  };
@@ -81,17 +143,18 @@ const componentExampleContent = {
81
143
  export default componentExampleContent;
82
144
  ```
83
145
 
84
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
146
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
85
147
  const { t } = require("intlayer");
86
148
 
87
149
  /** @type {import('intlayer').Dictionary} */
150
+ // Übersetzungsinhalt für die Komponente
88
151
  const componentExampleContent = {
89
152
  key: "component-example",
90
153
  content: {
91
154
  myTranslatedContent: t({
92
155
  en: "Hello World",
93
- fr: "Bonjour le monde",
94
156
  es: "Hola Mundo",
157
+ fr: "Bonjour le monde",
95
158
  }),
96
159
  },
97
160
  };
@@ -99,7 +162,7 @@ const componentExampleContent = {
99
162
  module.exports = componentExampleContent;
100
163
  ```
101
164
 
102
- ```tsx fileName="./Components/MyComponent/index.tsx" codeFormat="typescript"
165
+ ```tsx fileName="./components/MyComponent/index.tsx" codeFormat="typescript"
103
166
  import { useIntlayer } from "react-intlayer";
104
167
 
105
168
  export const ComponentExample = () => {
@@ -109,8 +172,7 @@ export const ComponentExample = () => {
109
172
  };
110
173
  ```
111
174
 
112
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
113
- jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
175
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
114
176
  import { useIntlayer } from "react-intlayer";
115
177
 
116
178
  const ComponentExample = () => {
@@ -120,7 +182,7 @@ const ComponentExample = () => {
120
182
  };
121
183
  ```
122
184
 
123
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
185
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
124
186
  const { useIntlayer } = require("react-intlayer");
125
187
 
126
188
  const ComponentExample = () => {
@@ -130,27 +192,79 @@ const ComponentExample = () => {
130
192
  };
131
193
  ```
132
194
 
133
- ## Warum Intlayer wählen?
134
-
135
- | Funktion | Beschreibung |
136
- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
137
- | **JavaScript-gesteuertes Content-Management** | Nutzen Sie die Flexibilität von JavaScript, um Ihre Inhalte effizient zu definieren und zu verwalten. |
138
- | **Typensichere Umgebung** | Nutzen Sie TypeScript, um sicherzustellen, dass alle Ihre Inhaltsdefinitionen präzise und fehlerfrei sind. |
139
- | **Integrierte Inhaltsdateien** | Halten Sie Ihre Übersetzungen nahe bei den jeweiligen Komponenten, um die Wartbarkeit und Klarheit zu verbessern. |
140
- | **Vereinfachte Einrichtung** | Starten Sie schnell mit minimaler Konfiguration, speziell optimiert für Next.js-Projekte. |
141
- | **Server-Komponenten-Unterstützung** | Perfekt geeignet für Next.js-Serverkomponenten und gewährleistet ein reibungsloses serverseitiges Rendering. |
142
- | **Erweiterte Routing-Funktionalität** | Vollständige Unterstützung für das Routing von Next.js-Apps, die sich nahtlos an komplexe Anwendungsstrukturen anpasst. |
143
- | **Organisierte Codebasis** | Halten Sie Ihre Codebasis besser organisiert: 1 Komponente = 1 Wörterbuch im selben Ordner. |
144
- | **CI Auto-Übersetzung** | Füllen Sie Ihre Übersetzungen in Ihrer CI automatisch mit Ihrem eigenen OpenAI API-Schlüssel aus, wodurch die Notwendigkeit einer L10n-Plattform entfällt. |
145
- | **MCP-Server-Integration** | Bietet einen MCP (Model Context Protocol) Server für IDE-Automatisierung, der nahtloses Content-Management und i18n-Workflows direkt in Ihrer Entwicklungsumgebung ermöglicht. [Mehr erfahren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/mcp_server.md). |
146
- | **Markdown-Unterstützung** | Importieren und Interpretieren von Markdown-Dateien für mehrsprachige Inhalte wie Datenschutzrichtlinien. |
147
- | **Kostenloser visueller Editor & CMS** | Ein kostenloser visueller Editor und CMS stehen zur Verfügung, wenn Sie mit Content-Autoren für Ihre Übersetzungen zusammenarbeiten müssen. Dies eliminiert erneut die Notwendigkeit einer Lokalisierungsplattform und ermöglicht die Auslagerung von Inhalten aus dem Codebasis. |
148
- | **Vereinfachte Inhaltsabfrage** | Es ist nicht erforderlich, Ihre `t`-Funktion für jeden einzelnen Inhalt aufzurufen; rufen Sie alle Ihre Inhalte direkt mit einem einzigen Hook ab. |
149
- | **Konsistente Implementierung** | Dieselbe Implementierung für sowohl Client- als auch Server-Komponenten, es ist nicht notwendig, Ihre `t`-Funktion über jede Server-Komponente weiterzugeben. |
150
- | **Tree-shakable Inhalte** | Der Inhalt ist tree-shakable, was das endgültige Bundle erleichtert. |
151
- | **Nicht-blockierendes statisches Rendering** | Intlayer blockiert das statische Rendering nicht, wie es `next-intl` tut. |
152
- | **Interoperabilität** | Ermöglicht die Interoperabilität mit [react-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_react-i18next.md), [next-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_next-i18next.md), [next-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_next-intl.md) und [react-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_react-intl.md). |
153
-
154
- ## Dokumentationshistorie
155
-
156
- - 5.5.10 - 2025-06-29: Initiale Historie
195
+ Dieser Ansatz ermöglicht es Ihnen:
196
+
197
+ 1. **Die Entwicklungsgeschwindigkeit zu erhöhen**
198
+ - `.content.{{ts|mjs|cjs|json}}` Dateien können mit einer VSCode-Erweiterung erstellt werden
199
+ - Autovervollständigungs-KI-Tools in Ihrer IDE (wie GitHub Copilot) können Ihnen helfen, Ihren Inhalt zu deklarieren, wodurch Copy/Paste reduziert wird
200
+
201
+ 2. **Reduzieren Sie die Komplexität Ihres Codebestands**
202
+
203
+ 3. **Erhöhen Sie die Wartbarkeit Ihres Codebestands**
204
+
205
+ 4. **Duplizieren Sie Ihre Komponenten und deren zugehörigen Inhalte einfacher (Beispiel: Login/Register-Komponenten usw.)**
206
+ - Indem Sie das Risiko minimieren, den Inhalt anderer Komponenten zu beeinflussen
207
+ - Indem Sie Ihre Inhalte von einer Anwendung in eine andere ohne externe Abhängigkeiten kopieren/einfügen
208
+
209
+ 5. **Vermeiden Sie es, Ihren Codebestand mit ungenutzten Schlüsseln/Werten für ungenutzte Komponenten zu verschmutzen**
210
+ - Wenn Sie eine Komponente nicht verwenden, müssen Sie deren Inhalt nicht importieren
211
+ - Wenn Sie eine Komponente löschen, erinnern Sie sich leichter daran, den zugehörigen Inhalt zu entfernen, da dieser im selben Ordner vorhanden ist
212
+
213
+ 6. **Reduzieren Sie die Denkaufwand für KI-Agenten, um Ihre mehrsprachigen Inhalte zu deklarieren**
214
+ - Der KI-Agent muss nicht Ihren gesamten Codebestand durchsuchen, um zu wissen, wo Ihr Inhalt implementiert werden soll
215
+ - Übersetzungen können einfach mit Autovervollständigungs-KI-Tools in Ihrer IDE (wie GitHub Copilot) durchgeführt werden
216
+
217
+ 7. **Optimieren Sie die Ladeleistung**
218
+ - Wenn eine Komponente lazy geladen wird, wird ihr zugehöriger Inhalt gleichzeitig geladen
219
+
220
+ ## Zusätzliche Funktionen von Intlayer
221
+
222
+ | Funktion | Beschreibung |
223
+ | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
224
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Framework-übergreifende Unterstützung**<br><br>Intlayer ist kompatibel mit allen wichtigen Frameworks und Bibliotheken, einschließlich Next.js, React, Vite, Vue.js, Nuxt, Preact, Express und mehr. |
225
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.png?raw=true) | **JavaScript-gesteuertes Content-Management**<br><br>Nutzen Sie die Flexibilität von JavaScript, um Ihre Inhalte effizient zu definieren und zu verwalten. <br><br> - [Inhaltsdeklaration](https://intlayer.org/doc/concept/content) |
226
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Pro-Lokale Inhaltsdeklarationsdatei**<br><br>Beschleunigen Sie Ihre Entwicklung, indem Sie Ihre Inhalte einmalig deklarieren, bevor die automatische Generierung erfolgt.<br><br> - [Pro-Lokale Inhaltsdeklarationsdatei](https://intlayer.org/doc/concept/per-locale-file) |
227
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Typsicheres Umfeld**<br><br>Nutzen Sie TypeScript, um sicherzustellen, dass Ihre Inhaltsdefinitionen und Ihr Code fehlerfrei sind, und profitieren Sie gleichzeitig von der Autovervollständigung in der IDE.<br><br> - [TypeScript-Konfiguration](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
228
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Vereinfachte Einrichtung**<br><br>Starten Sie schnell mit minimaler Konfiguration. Passen Sie Einstellungen für Internationalisierung, Routing, KI, Build und Inhaltsverwaltung mühelos an.<br><br> - [Next.js-Integration erkunden](https://intlayer.org/doc/environment/nextjs) |
229
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Vereinfachte Inhaltsabfrage**<br><br>Sie müssen Ihre `t`-Funktion nicht für jeden einzelnen Inhalt aufrufen. Rufen Sie alle Ihre Inhalte direkt mit einem einzigen Hook ab.<br><br> - [React-Integration](https://intlayer.org/doc/environment/create-react-app) |
230
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Konsistente Implementierung von Server-Komponenten**<br><br>Perfekt geeignet für Next.js Server-Komponenten, verwenden Sie dieselbe Implementierung sowohl für Client- als auch für Server-Komponenten, ohne Ihre `t`-Funktion an jede Server-Komponente weitergeben zu müssen. <br><br> - [Server-Komponenten](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
231
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Organisierte Codebasis**<br><br>Halten Sie Ihre Codebasis besser organisiert: 1 Komponente = 1 Wörterbuch im selben Ordner. Übersetzungen, die nahe bei ihren jeweiligen Komponenten liegen, verbessern die Wartbarkeit und Klarheit. <br><br> - [Wie Intlayer funktioniert](https://intlayer.org/doc/concept/how-works-intlayer) |
232
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Erweitertes Routing**<br><br>Volle Unterstützung des App-Routings, die sich nahtlos an komplexe Anwendungsstrukturen anpasst, für Next.js, React, Vite, Vue.js usw.<br><br> - [Next.js-Integration erkunden](https://intlayer.org/doc/environment/nextjs) |
233
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown-Unterstützung**<br><br>Importieren und interpretieren Sie Lokalisierungsdateien und entfernte Markdown-Dateien für mehrsprachige Inhalte wie Datenschutzrichtlinien, Dokumentationen usw. Interpretieren Sie Markdown-Metadaten und machen Sie sie in Ihrem Code zugänglich.<br><br> - [Inhaltsdateien](https://intlayer.org/doc/concept/content/file) |
234
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Kostenloser visueller Editor & CMS**<br><br>Ein kostenloser visueller Editor und CMS stehen Content-Autoren zur Verfügung, wodurch keine Lokalisierungsplattform mehr benötigt wird. Halten Sie Ihre Inhalte mit Git synchronisiert oder externalisieren Sie sie ganz oder teilweise mit dem CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
235
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Inhalte**<br><br>Tree-shakable Inhalte, die die Größe des finalen Bundles reduzieren. Lädt Inhalte pro Komponente und schließt ungenutzte Inhalte aus Ihrem Bundle aus. Unterstützt Lazy Loading, um die Ladeeffizienz der App zu verbessern. <br><br> - [App-Build-Optimierung](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
236
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Statisches Rendering**<br><br>Blockiert das statische Rendering nicht. <br><br> - [Next.js-Integration](https://intlayer.org/doc/environment/nextjs) |
237
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **KI-gestützte Übersetzung**<br><br>Verwandeln Sie Ihre Website mit nur einem Klick in 231 Sprachen mithilfe der fortschrittlichen KI-gestützten Übersetzungswerkzeuge von Intlayer unter Verwendung Ihres eigenen KI-Anbieters/API-Schlüssels. <br><br> - [CI/CD-Integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatisches Ausfüllen](https://intlayer.org/doc/concept/auto-fill) |
238
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP-Server-Integration**<br><br>Stellt einen MCP (Model Context Protocol) Server für IDE-Automatisierung bereit, der nahtloses Content-Management und i18n-Workflows direkt in Ihrer Entwicklungsumgebung ermöglicht. <br><br> - [MCP-Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/mcp_server.md) |
239
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode-Erweiterung**<br><br>Intlayer bietet eine VSCode-Erweiterung, die Ihnen hilft, Ihre Inhalte und Übersetzungen zu verwalten, Ihre Wörterbücher zu erstellen, Ihre Inhalte zu übersetzen und mehr. <br><br> - [VSCode-Erweiterung](https://intlayer.org/doc/vs-code-extension) |
240
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperabilität**<br><br>Ermöglicht die Interoperabilität mit react-i18next, next-i18next, next-intl und react-intl. <br><br> - [Intlayer und react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer und next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer und next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
241
+
242
+ ## Vergleich von Intlayer mit anderen Lösungen
243
+
244
+ | Funktion | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
245
+ | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------ |
246
+ | **Übersetzungen in der Nähe der Komponenten** | Ja, Inhalte sind mit jeder Komponente zusammengefasst | Nein | Nein | Nein | Nein | Nein | Ja - Verwendung von `Single File Components` (SFCs) |
247
+ | **TypeScript-Integration** | Fortgeschritten, automatisch generierte strenge Typen | Grundlegend; zusätzliche Konfiguration für Sicherheit | Gut, aber weniger strikt | Typen, benötigt Konfiguration | Gut | Grundlegend | Gut (Typen verfügbar; Schlüssel-Sicherheit benötigt Einrichtung) |
248
+ | **Fehlende Übersetzungs-Erkennung** | Fehler/Warnung zur Build-Zeit | Meist Fallback-Strings zur Laufzeit | Fallback-Strings | Benötigt zusätzliche Konfiguration | Laufzeit-Fallback | Laufzeit-Fallback | Laufzeit-Fallback/Warnungen (konfigurierbar) |
249
+ | **Reicher Inhalt (JSX/Markdown/Komponenten)** | Direkte Unterstützung, sogar React-Knoten | Eingeschränkt / nur Interpolation | ICU-Syntax, kein echtes JSX | Eingeschränkt | Nicht für reiche Knoten ausgelegt | Eingeschränkt | Eingeschränkt (Komponenten über `<i18n-t>`, Markdown über Plugins) |
250
+ | **KI-gestützte Übersetzung** | Ja, unterstützt mehrere KI-Anbieter. Nutzbar mit eigenen API-Schlüsseln. Berücksichtigt den Kontext Ihrer Anwendung und des Inhaltsumfangs | Nein | Nein | Nein | Nein | Nein | Nein |
251
+ | **Visueller Editor** | Ja, lokaler visueller Editor + optionales CMS; kann Codebasis-Inhalte auslagern; einbettbar | Nein / verfügbar über externe Lokalisierungsplattformen | Nein / verfügbar über externe Lokalisierungsplattformen | Nein / verfügbar über externe Lokalisierungsplattformen | Nein / verfügbar über externe Lokalisierungsplattformen | Nein / verfügbar über externe Lokalisierungsplattformen | Nein / verfügbar über externe Lokalisierungsplattformen |
252
+ | **Lokalisierte Routenführung** | Eingebaut, Middleware-Unterstützung | Plugins oder manuelle Konfiguration | Nicht eingebaut | Plugin/manuelle Konfiguration | Eingebaut | Eingebaut | Manuell über Vue Router (wird von Nuxt i18n verwaltet) |
253
+ | **Dynamische Routen-Generierung** | Ja | Plugin/Ökosystem oder manuelle Einrichtung | Nicht bereitgestellt | Plugin/manuell | Ja | Ja | Nicht bereitgestellt (wird von Nuxt i18n bereitgestellt) |
254
+ | **Pluralisierung** | Aufzählungsbasierte Muster; siehe Dokumentation | Konfigurierbar (Plugins wie i18next-icu) | Fortgeschritten (ICU) | Fortgeschritten (ICU/messageformat) | Gut | Gut | Fortgeschritten (eingebaute Pluralregeln) |
255
+ | **Formatierung (Daten, Zahlen, Währungen)** | Optimierte Formatierer (Intl im Hintergrund) | Über Plugins oder benutzerdefinierte Intl-Nutzung | Erweiterte ICU-Formatierer | ICU/CLI-Helfer | Gut (Intl-Helfer) | Gut (Intl-Helfer) | Eingebaute Datums-/Zahlenformatierer (Intl) |
256
+ | **Inhaltsformat** | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
257
+ | **ICU-Unterstützung** | In Arbeit (native ICU) | Über Plugin (i18next-icu) | Ja | Ja | Ja | Über Plugin (i18next-icu) | Über benutzerdefinierten Formatter/Compiler |
258
+ | **SEO-Helfer (hreflang, Sitemap)** | Eingebaute Werkzeuge: Helfer für Sitemap, **robots.txt**, Metadaten | Community-Plugins/Manuell | Nicht Kernfunktion | Nicht Kernfunktion | Gut | Gut | Nicht Kernfunktion (Nuxt i18n stellt Helfer bereit) |
259
+ | **Ökosystem / Gemeinschaft** | Klein, aber schnell wachsend und reaktiv | Größte und am weitesten entwickelte | Groß, unternehmensorientiert | Wachsend, kleiner | Mittelgroß, Next.js-fokussiert | Mittelgroß, Next.js-fokussiert | Groß im Vue-Ökosystem |
260
+ | **Server-seitiges Rendering & Server-Komponenten** | Ja, optimiert für SSR / React Server-Komponenten | Unterstützt, einige Konfiguration erforderlich | Unterstützt in Next.js | Unterstützt | Volle Unterstützung | Volle Unterstützung | SSR über Nuxt/Vue SSR (kein RSC) |
261
+ | **Tree-shaking (nur verwendete Inhalte laden)** | Ja, pro Komponente zur Build-Zeit über Babel/SWC-Plugins | Lädt normalerweise alles (kann mit Namespaces/Code-Splitting verbessert werden) | Lädt normalerweise alles | Nicht standardmäßig | Teilweise | Teilweise | Teilweise (mit Code-Splitting/manuellem Setup) |
262
+ | **Lazy Loading** | Ja, pro Locale/pro Komponente | Ja (z.B. Backends/Namespaces bei Bedarf) | Ja (aufgeteilte Locale-Bündel) | Ja (dynamische Katalogimporte) | Ja (pro Route/pro Locale) | Ja (pro Route/pro Locale) | Ja (asynchrone Locale-Nachrichten) |
263
+ | **Verwaltung großer Projekte** | Fördert Modularität, geeignet für Design-Systeme | Benötigt gute Dateidisziplin | Zentrale Kataloge können groß werden | Kann komplex werden | Modular mit Setup | Modular mit Setup | Modular mit Vue Router/Nuxt i18n Setup |
264
+
265
+ ## Dokumenthistorie
266
+
267
+ | Version | Datum | Änderungen |
268
+ | ------- | ---------- | -------------------------------- |
269
+ | 5.8.0 | 2025-08-19 | Aktualisierung Vergleichstabelle |
270
+ | 5.5.10 | 2025-06-29 | Initiale Historie |
@@ -32,8 +32,8 @@ Intlayer bietet außerdem einen optionalen visuellen Editor, mit dem Sie Ihre In
32
32
  .
33
33
  └── Components
34
34
  └── MyComponent
35
- ├── index.content.cjs
36
- └── index.mjs
35
+ ├── index.content.ts
36
+ └── index.tsx
37
37
  ```
38
38
 
39
39
  ```tsx fileName="src/components/MyComponent/index.content.ts" contentDeclarationFormat="typescript"
@@ -44,8 +44,8 @@ const componentContent = {
44
44
  content: {
45
45
  myTranslatedContent: t({
46
46
  en: "Hello World",
47
- fr: "Bonjour le monde",
48
47
  es: "Hola Mundo",
48
+ fr: "Bonjour le monde",
49
49
  }),
50
50
  },
51
51
  } satisfies Dictionary;
@@ -64,8 +64,8 @@ const componentContent = {
64
64
  content: {
65
65
  myTranslatedContent: t({
66
66
  en: "Hello World",
67
- fr: "Bonjour le monde",
68
67
  es: "Hola Mundo",
68
+ fr: "Bonjour le monde",
69
69
  }),
70
70
  },
71
71
  };
@@ -83,8 +83,8 @@ const componentContent = {
83
83
  content: {
84
84
  myTranslatedContent: t({
85
85
  en: "Hello World",
86
- fr: "Bonjour le monde",
87
86
  es: "Hola Mundo",
87
+ fr: "Bonjour le monde",
88
88
  }),
89
89
  },
90
90
  };
@@ -149,8 +149,8 @@ const clientComponentContent = {
149
149
  content: {
150
150
  myTranslatedContent: t({
151
151
  en: "Hello World",
152
- fr: "Bonjour le monde",
153
152
  es: "Hola Mundo",
153
+ fr: "Bonjour le monde",
154
154
  }),
155
155
  numberOfCar: enu({
156
156
  "<-1": "Weniger als minus ein Auto",
@@ -175,8 +175,8 @@ const clientComponentContent = {
175
175
  content: {
176
176
  myTranslatedContent: t({
177
177
  en: "Hello World",
178
- fr: "Bonjour le monde",
179
178
  es: "Hola Mundo",
179
+ fr: "Bonjour le monde",
180
180
  }),
181
181
  numberOfCar: enu({
182
182
  "<-1": "Weniger als minus ein Auto",
@@ -201,8 +201,8 @@ const clientComponentContent = {
201
201
  content: {
202
202
  myTranslatedContent: t({
203
203
  en: "Hello World",
204
- fr: "Bonjour le monde",
205
204
  es: "Hola Mundo",
205
+ fr: "Bonjour le monde",
206
206
  }),
207
207
  numberOfCar: enu({
208
208
  "<-1": "Weniger als minus ein Auto",
@@ -110,8 +110,8 @@ const clientComponentContent = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Less than minus one car",
@@ -136,8 +136,8 @@ const clientComponentContent = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Weniger als minus ein Auto",
@@ -162,8 +162,8 @@ const clientComponentContent = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Weniger als minus ein Auto",
@@ -110,8 +110,8 @@ const component1Content = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Weniger als minus ein Auto",
@@ -136,8 +136,8 @@ const component1Content = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Weniger als minus ein Auto",
@@ -162,8 +162,8 @@ const component1Content = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Weniger als minus ein Auto",
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Enumeration
5
5
  description: Discover how to declare and use enumerations in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
6
6
  keywords:
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Function Fetching
5
5
  description: Discover how to declare and use function fetching in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
6
6
  keywords:
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Dictionary | Get Started
5
5
  description: Discover how to declare and use dictionaries in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
6
6
  keywords:
@@ -1,6 +1,6 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
4
  title: Translation
5
5
  description: Discover how to declare and use translation in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
6
6
  keywords: