@intlayer/docs 9.5.1 → 9.5.2

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 (711) hide show
  1. package/blog/ar/history_of_i18n.md +304 -0
  2. package/blog/de/history_of_i18n.md +304 -0
  3. package/blog/en/history_of_i18n.md +304 -0
  4. package/blog/en-GB/history_of_i18n.md +304 -0
  5. package/blog/es/history_of_i18n.md +304 -0
  6. package/blog/fr/history_of_i18n.md +304 -0
  7. package/blog/hi/history_of_i18n.md +304 -0
  8. package/blog/id/history_of_i18n.md +304 -0
  9. package/blog/it/history_of_i18n.md +304 -0
  10. package/blog/ja/history_of_i18n.md +304 -0
  11. package/blog/ko/history_of_i18n.md +304 -0
  12. package/blog/pl/history_of_i18n.md +304 -0
  13. package/blog/pt/history_of_i18n.md +304 -0
  14. package/blog/ru/history_of_i18n.md +304 -0
  15. package/blog/tr/history_of_i18n.md +304 -0
  16. package/blog/uk/history_of_i18n.md +304 -0
  17. package/blog/vi/history_of_i18n.md +304 -0
  18. package/blog/zh/history_of_i18n.md +304 -0
  19. package/dist/cjs/generated/blog.entry.cjs +20 -0
  20. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  21. package/dist/cjs/generated/docs.entry.cjs +0 -20
  22. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  23. package/dist/esm/generated/blog.entry.mjs +20 -0
  24. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  25. package/dist/esm/generated/docs.entry.mjs +0 -20
  26. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -0
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +0 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/docs/ar/benchmark/index.md +4 -1
  32. package/docs/ar/benchmark/nextjs.md +32 -27
  33. package/docs/ar/benchmark/solid.md +13 -10
  34. package/docs/ar/benchmark/svelte.md +12 -9
  35. package/docs/ar/benchmark/tanstack.md +29 -24
  36. package/docs/ar/benchmark/vue.md +11 -7
  37. package/docs/ar/cli/build.md +8 -1
  38. package/docs/ar/cli/configuration.md +3 -1
  39. package/docs/ar/cli/doc-review.md +8 -1
  40. package/docs/ar/cli/doc-translate.md +5 -1
  41. package/docs/ar/cli/extract.md +2 -1
  42. package/docs/ar/cli/fill.md +5 -1
  43. package/docs/ar/cli/index.md +4 -5
  44. package/docs/ar/cli/live.md +5 -1
  45. package/docs/ar/cli/login.md +2 -2
  46. package/docs/ar/cli/pull.md +5 -1
  47. package/docs/ar/cli/push.md +5 -1
  48. package/docs/ar/cli/scan.md +5 -1
  49. package/docs/ar/cli/standalone.md +5 -1
  50. package/docs/ar/cli/test.md +5 -1
  51. package/docs/ar/cli/watch.md +5 -1
  52. package/docs/ar/compat/i18n-js.md +1 -1
  53. package/docs/ar/compat/i18next.md +1 -1
  54. package/docs/ar/compat/lingui.md +1 -1
  55. package/docs/ar/compat/next-i18next.md +1 -1
  56. package/docs/ar/compat/next-intl.md +1 -1
  57. package/docs/ar/compat/next-translate.md +1 -1
  58. package/docs/ar/compat/ngx-translate.md +1 -1
  59. package/docs/ar/compat/nuxtjs-i18n.md +1 -1
  60. package/docs/ar/compat/polyglot.md +1 -1
  61. package/docs/ar/compat/react-i18next.md +1 -1
  62. package/docs/ar/compat/react-intl.md +1 -1
  63. package/docs/ar/compat/svelte-i18n.md +1 -1
  64. package/docs/ar/compat/transloco.md +1 -1
  65. package/docs/ar/compat/vue-i18n.md +1 -1
  66. package/docs/ar/intlayer_with_remix_3.md +543 -0
  67. package/docs/bn/cli/index.md +4 -5
  68. package/docs/bn/cli/scan.md +5 -1
  69. package/docs/bn/cli/standalone.md +5 -1
  70. package/docs/cs/cli/index.md +4 -5
  71. package/docs/cs/cli/scan.md +5 -1
  72. package/docs/cs/cli/standalone.md +5 -1
  73. package/docs/de/benchmark/index.md +4 -1
  74. package/docs/de/benchmark/nextjs.md +32 -27
  75. package/docs/de/benchmark/solid.md +13 -10
  76. package/docs/de/benchmark/svelte.md +12 -9
  77. package/docs/de/benchmark/tanstack.md +29 -24
  78. package/docs/de/benchmark/vue.md +11 -7
  79. package/docs/de/cli/build.md +8 -1
  80. package/docs/de/cli/configuration.md +3 -1
  81. package/docs/de/cli/doc-review.md +8 -1
  82. package/docs/de/cli/doc-translate.md +5 -1
  83. package/docs/de/cli/extract.md +2 -1
  84. package/docs/de/cli/fill.md +5 -1
  85. package/docs/de/cli/index.md +4 -5
  86. package/docs/de/cli/live.md +5 -1
  87. package/docs/de/cli/login.md +2 -2
  88. package/docs/de/cli/pull.md +5 -1
  89. package/docs/de/cli/push.md +5 -1
  90. package/docs/de/cli/scan.md +5 -1
  91. package/docs/de/cli/standalone.md +5 -1
  92. package/docs/de/cli/test.md +5 -1
  93. package/docs/de/cli/watch.md +5 -1
  94. package/docs/de/compat/i18n-js.md +1 -1
  95. package/docs/de/compat/i18next.md +1 -1
  96. package/docs/de/compat/lingui.md +1 -1
  97. package/docs/de/compat/next-i18next.md +1 -1
  98. package/docs/de/compat/next-intl.md +1 -1
  99. package/docs/de/compat/next-translate.md +1 -1
  100. package/docs/de/compat/ngx-translate.md +1 -1
  101. package/docs/de/compat/nuxtjs-i18n.md +1 -1
  102. package/docs/de/compat/polyglot.md +1 -1
  103. package/docs/de/compat/react-i18next.md +1 -1
  104. package/docs/de/compat/react-intl.md +1 -1
  105. package/docs/de/compat/svelte-i18n.md +1 -1
  106. package/docs/de/compat/transloco.md +1 -1
  107. package/docs/de/compat/vue-i18n.md +1 -1
  108. package/docs/de/intlayer_with_remix_3.md +543 -0
  109. package/docs/en/benchmark/index.md +4 -1
  110. package/docs/en/benchmark/nextjs.md +32 -27
  111. package/docs/en/benchmark/solid.md +13 -10
  112. package/docs/en/benchmark/svelte.md +12 -9
  113. package/docs/en/benchmark/tanstack.md +30 -25
  114. package/docs/en/benchmark/vue.md +11 -7
  115. package/docs/en/cli/build.md +8 -1
  116. package/docs/en/cli/configuration.md +3 -1
  117. package/docs/en/cli/doc-review.md +8 -1
  118. package/docs/en/cli/doc-translate.md +5 -1
  119. package/docs/en/cli/extract.md +2 -1
  120. package/docs/en/cli/fill.md +5 -1
  121. package/docs/en/cli/index.md +4 -5
  122. package/docs/en/cli/live.md +5 -1
  123. package/docs/en/cli/login.md +2 -2
  124. package/docs/en/cli/pull.md +5 -1
  125. package/docs/en/cli/push.md +5 -1
  126. package/docs/en/cli/scan.md +5 -1
  127. package/docs/en/cli/standalone.md +5 -1
  128. package/docs/en/cli/test.md +5 -1
  129. package/docs/en/cli/watch.md +5 -1
  130. package/docs/en/compat/i18n-js.md +1 -1
  131. package/docs/en/compat/i18next.md +1 -1
  132. package/docs/en/compat/lingui.md +1 -1
  133. package/docs/en/compat/next-i18next.md +1 -1
  134. package/docs/en/compat/next-intl.md +1 -1
  135. package/docs/en/compat/next-translate.md +1 -1
  136. package/docs/en/compat/ngx-translate.md +1 -1
  137. package/docs/en/compat/nuxtjs-i18n.md +1 -1
  138. package/docs/en/compat/polyglot.md +1 -1
  139. package/docs/en/compat/react-i18next.md +1 -1
  140. package/docs/en/compat/react-intl.md +1 -1
  141. package/docs/en/compat/svelte-i18n.md +1 -1
  142. package/docs/en/compat/transloco.md +1 -1
  143. package/docs/en/compat/vue-i18n.md +1 -1
  144. package/docs/en/intlayer_with_remix_3.md +103 -71
  145. package/docs/en-GB/benchmark/index.md +4 -1
  146. package/docs/en-GB/benchmark/nextjs.md +32 -27
  147. package/docs/en-GB/benchmark/solid.md +13 -10
  148. package/docs/en-GB/benchmark/svelte.md +12 -9
  149. package/docs/en-GB/benchmark/tanstack.md +29 -24
  150. package/docs/en-GB/benchmark/vue.md +11 -7
  151. package/docs/en-GB/cli/build.md +8 -1
  152. package/docs/en-GB/cli/configuration.md +3 -1
  153. package/docs/en-GB/cli/doc-review.md +8 -1
  154. package/docs/en-GB/cli/doc-translate.md +5 -1
  155. package/docs/en-GB/cli/extract.md +2 -1
  156. package/docs/en-GB/cli/fill.md +5 -1
  157. package/docs/en-GB/cli/index.md +4 -5
  158. package/docs/en-GB/cli/live.md +5 -1
  159. package/docs/en-GB/cli/login.md +2 -2
  160. package/docs/en-GB/cli/pull.md +5 -1
  161. package/docs/en-GB/cli/push.md +5 -1
  162. package/docs/en-GB/cli/scan.md +5 -1
  163. package/docs/en-GB/cli/standalone.md +5 -1
  164. package/docs/en-GB/cli/test.md +5 -1
  165. package/docs/en-GB/cli/watch.md +5 -1
  166. package/docs/en-GB/compat/i18n-js.md +1 -1
  167. package/docs/en-GB/compat/i18next.md +1 -1
  168. package/docs/en-GB/compat/lingui.md +1 -1
  169. package/docs/en-GB/compat/next-i18next.md +1 -1
  170. package/docs/en-GB/compat/next-intl.md +1 -1
  171. package/docs/en-GB/compat/next-translate.md +1 -1
  172. package/docs/en-GB/compat/ngx-translate.md +1 -1
  173. package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
  174. package/docs/en-GB/compat/polyglot.md +1 -1
  175. package/docs/en-GB/compat/react-i18next.md +1 -1
  176. package/docs/en-GB/compat/react-intl.md +1 -1
  177. package/docs/en-GB/compat/svelte-i18n.md +1 -1
  178. package/docs/en-GB/compat/transloco.md +1 -1
  179. package/docs/en-GB/compat/vue-i18n.md +1 -1
  180. package/docs/en-GB/intlayer_with_remix_3.md +558 -0
  181. package/docs/es/benchmark/index.md +4 -1
  182. package/docs/es/benchmark/nextjs.md +32 -27
  183. package/docs/es/benchmark/solid.md +13 -10
  184. package/docs/es/benchmark/svelte.md +12 -9
  185. package/docs/es/benchmark/tanstack.md +29 -24
  186. package/docs/es/benchmark/vue.md +11 -7
  187. package/docs/es/cli/build.md +8 -1
  188. package/docs/es/cli/configuration.md +3 -1
  189. package/docs/es/cli/doc-review.md +8 -1
  190. package/docs/es/cli/doc-translate.md +5 -1
  191. package/docs/es/cli/extract.md +2 -1
  192. package/docs/es/cli/fill.md +5 -1
  193. package/docs/es/cli/index.md +4 -5
  194. package/docs/es/cli/live.md +5 -1
  195. package/docs/es/cli/login.md +2 -2
  196. package/docs/es/cli/pull.md +5 -1
  197. package/docs/es/cli/push.md +5 -1
  198. package/docs/es/cli/scan.md +5 -1
  199. package/docs/es/cli/standalone.md +5 -1
  200. package/docs/es/cli/test.md +5 -1
  201. package/docs/es/cli/watch.md +5 -1
  202. package/docs/es/compat/i18n-js.md +1 -1
  203. package/docs/es/compat/i18next.md +1 -1
  204. package/docs/es/compat/lingui.md +1 -1
  205. package/docs/es/compat/next-i18next.md +1 -1
  206. package/docs/es/compat/next-intl.md +1 -1
  207. package/docs/es/compat/next-translate.md +1 -1
  208. package/docs/es/compat/ngx-translate.md +1 -1
  209. package/docs/es/compat/nuxtjs-i18n.md +1 -1
  210. package/docs/es/compat/polyglot.md +1 -1
  211. package/docs/es/compat/react-i18next.md +1 -1
  212. package/docs/es/compat/react-intl.md +1 -1
  213. package/docs/es/compat/svelte-i18n.md +1 -1
  214. package/docs/es/compat/transloco.md +1 -1
  215. package/docs/es/compat/vue-i18n.md +1 -1
  216. package/docs/es/intlayer_with_remix_3.md +540 -0
  217. package/docs/fr/benchmark/index.md +4 -1
  218. package/docs/fr/benchmark/nextjs.md +32 -27
  219. package/docs/fr/benchmark/solid.md +13 -10
  220. package/docs/fr/benchmark/svelte.md +12 -9
  221. package/docs/fr/benchmark/tanstack.md +29 -24
  222. package/docs/fr/benchmark/vue.md +11 -7
  223. package/docs/fr/cli/build.md +8 -1
  224. package/docs/fr/cli/configuration.md +3 -1
  225. package/docs/fr/cli/doc-review.md +8 -1
  226. package/docs/fr/cli/doc-translate.md +5 -1
  227. package/docs/fr/cli/extract.md +2 -1
  228. package/docs/fr/cli/fill.md +5 -1
  229. package/docs/fr/cli/index.md +4 -5
  230. package/docs/fr/cli/live.md +5 -1
  231. package/docs/fr/cli/login.md +2 -2
  232. package/docs/fr/cli/pull.md +5 -1
  233. package/docs/fr/cli/push.md +5 -1
  234. package/docs/fr/cli/scan.md +5 -1
  235. package/docs/fr/cli/standalone.md +5 -1
  236. package/docs/fr/cli/test.md +5 -1
  237. package/docs/fr/cli/watch.md +5 -1
  238. package/docs/fr/compat/i18n-js.md +1 -1
  239. package/docs/fr/compat/i18next.md +1 -1
  240. package/docs/fr/compat/lingui.md +1 -1
  241. package/docs/fr/compat/next-i18next.md +1 -1
  242. package/docs/fr/compat/next-intl.md +1 -1
  243. package/docs/fr/compat/next-translate.md +1 -1
  244. package/docs/fr/compat/ngx-translate.md +1 -1
  245. package/docs/fr/compat/nuxtjs-i18n.md +1 -1
  246. package/docs/fr/compat/polyglot.md +1 -1
  247. package/docs/fr/compat/react-i18next.md +1 -1
  248. package/docs/fr/compat/react-intl.md +1 -1
  249. package/docs/fr/compat/svelte-i18n.md +1 -1
  250. package/docs/fr/compat/transloco.md +1 -1
  251. package/docs/fr/compat/vue-i18n.md +1 -1
  252. package/docs/fr/intlayer_with_remix_3.md +540 -0
  253. package/docs/hi/benchmark/index.md +4 -1
  254. package/docs/hi/benchmark/nextjs.md +32 -27
  255. package/docs/hi/benchmark/solid.md +13 -10
  256. package/docs/hi/benchmark/svelte.md +12 -9
  257. package/docs/hi/benchmark/tanstack.md +29 -24
  258. package/docs/hi/benchmark/vue.md +11 -7
  259. package/docs/hi/cli/build.md +8 -1
  260. package/docs/hi/cli/configuration.md +3 -1
  261. package/docs/hi/cli/doc-review.md +8 -1
  262. package/docs/hi/cli/doc-translate.md +5 -1
  263. package/docs/hi/cli/extract.md +2 -1
  264. package/docs/hi/cli/fill.md +5 -1
  265. package/docs/hi/cli/index.md +4 -5
  266. package/docs/hi/cli/live.md +5 -1
  267. package/docs/hi/cli/login.md +2 -2
  268. package/docs/hi/cli/pull.md +5 -1
  269. package/docs/hi/cli/push.md +5 -1
  270. package/docs/hi/cli/scan.md +5 -1
  271. package/docs/hi/cli/standalone.md +5 -1
  272. package/docs/hi/cli/test.md +5 -1
  273. package/docs/hi/cli/watch.md +5 -1
  274. package/docs/hi/compat/i18n-js.md +1 -1
  275. package/docs/hi/compat/i18next.md +1 -1
  276. package/docs/hi/compat/lingui.md +1 -1
  277. package/docs/hi/compat/next-i18next.md +1 -1
  278. package/docs/hi/compat/next-intl.md +1 -1
  279. package/docs/hi/compat/next-translate.md +1 -1
  280. package/docs/hi/compat/ngx-translate.md +1 -1
  281. package/docs/hi/compat/nuxtjs-i18n.md +1 -1
  282. package/docs/hi/compat/polyglot.md +1 -1
  283. package/docs/hi/compat/react-i18next.md +1 -1
  284. package/docs/hi/compat/react-intl.md +1 -1
  285. package/docs/hi/compat/svelte-i18n.md +1 -1
  286. package/docs/hi/compat/transloco.md +1 -1
  287. package/docs/hi/compat/vue-i18n.md +1 -1
  288. package/docs/hi/intlayer_with_remix_3.md +543 -0
  289. package/docs/id/benchmark/index.md +4 -1
  290. package/docs/id/benchmark/nextjs.md +32 -27
  291. package/docs/id/benchmark/solid.md +13 -10
  292. package/docs/id/benchmark/svelte.md +12 -9
  293. package/docs/id/benchmark/tanstack.md +29 -24
  294. package/docs/id/benchmark/vue.md +11 -7
  295. package/docs/id/cli/build.md +8 -1
  296. package/docs/id/cli/configuration.md +3 -1
  297. package/docs/id/cli/doc-review.md +8 -1
  298. package/docs/id/cli/doc-translate.md +5 -1
  299. package/docs/id/cli/extract.md +2 -1
  300. package/docs/id/cli/fill.md +5 -1
  301. package/docs/id/cli/index.md +4 -5
  302. package/docs/id/cli/live.md +5 -1
  303. package/docs/id/cli/login.md +2 -2
  304. package/docs/id/cli/pull.md +5 -1
  305. package/docs/id/cli/push.md +5 -1
  306. package/docs/id/cli/scan.md +5 -1
  307. package/docs/id/cli/standalone.md +5 -1
  308. package/docs/id/cli/test.md +5 -1
  309. package/docs/id/cli/watch.md +5 -1
  310. package/docs/id/compat/i18n-js.md +1 -1
  311. package/docs/id/compat/i18next.md +1 -1
  312. package/docs/id/compat/lingui.md +1 -1
  313. package/docs/id/compat/next-i18next.md +1 -1
  314. package/docs/id/compat/next-intl.md +1 -1
  315. package/docs/id/compat/next-translate.md +1 -1
  316. package/docs/id/compat/ngx-translate.md +1 -1
  317. package/docs/id/compat/nuxtjs-i18n.md +1 -1
  318. package/docs/id/compat/polyglot.md +1 -1
  319. package/docs/id/compat/react-i18next.md +1 -1
  320. package/docs/id/compat/react-intl.md +1 -1
  321. package/docs/id/compat/svelte-i18n.md +1 -1
  322. package/docs/id/compat/transloco.md +1 -1
  323. package/docs/id/compat/vue-i18n.md +1 -1
  324. package/docs/id/intlayer_with_remix_3.md +566 -0
  325. package/docs/it/benchmark/index.md +4 -1
  326. package/docs/it/benchmark/nextjs.md +32 -27
  327. package/docs/it/benchmark/solid.md +13 -10
  328. package/docs/it/benchmark/svelte.md +12 -9
  329. package/docs/it/benchmark/tanstack.md +29 -24
  330. package/docs/it/benchmark/vue.md +11 -7
  331. package/docs/it/cli/build.md +8 -1
  332. package/docs/it/cli/configuration.md +3 -1
  333. package/docs/it/cli/doc-review.md +8 -1
  334. package/docs/it/cli/doc-translate.md +5 -1
  335. package/docs/it/cli/extract.md +2 -1
  336. package/docs/it/cli/fill.md +5 -1
  337. package/docs/it/cli/index.md +4 -5
  338. package/docs/it/cli/live.md +5 -1
  339. package/docs/it/cli/login.md +2 -2
  340. package/docs/it/cli/pull.md +5 -1
  341. package/docs/it/cli/push.md +5 -1
  342. package/docs/it/cli/scan.md +5 -1
  343. package/docs/it/cli/standalone.md +5 -1
  344. package/docs/it/cli/test.md +5 -1
  345. package/docs/it/cli/watch.md +5 -1
  346. package/docs/it/compat/i18n-js.md +1 -1
  347. package/docs/it/compat/i18next.md +1 -1
  348. package/docs/it/compat/lingui.md +1 -1
  349. package/docs/it/compat/next-i18next.md +1 -1
  350. package/docs/it/compat/next-intl.md +1 -1
  351. package/docs/it/compat/next-translate.md +1 -1
  352. package/docs/it/compat/ngx-translate.md +1 -1
  353. package/docs/it/compat/nuxtjs-i18n.md +1 -1
  354. package/docs/it/compat/polyglot.md +1 -1
  355. package/docs/it/compat/react-i18next.md +1 -1
  356. package/docs/it/compat/react-intl.md +1 -1
  357. package/docs/it/compat/svelte-i18n.md +1 -1
  358. package/docs/it/compat/transloco.md +1 -1
  359. package/docs/it/compat/vue-i18n.md +1 -1
  360. package/docs/it/intlayer_with_remix_3.md +558 -0
  361. package/docs/ja/benchmark/index.md +4 -1
  362. package/docs/ja/benchmark/nextjs.md +32 -27
  363. package/docs/ja/benchmark/solid.md +13 -10
  364. package/docs/ja/benchmark/svelte.md +12 -9
  365. package/docs/ja/benchmark/tanstack.md +29 -24
  366. package/docs/ja/benchmark/vue.md +11 -7
  367. package/docs/ja/cli/build.md +8 -1
  368. package/docs/ja/cli/configuration.md +3 -1
  369. package/docs/ja/cli/doc-review.md +8 -1
  370. package/docs/ja/cli/doc-translate.md +5 -1
  371. package/docs/ja/cli/extract.md +2 -1
  372. package/docs/ja/cli/fill.md +5 -1
  373. package/docs/ja/cli/index.md +4 -5
  374. package/docs/ja/cli/live.md +5 -1
  375. package/docs/ja/cli/login.md +2 -2
  376. package/docs/ja/cli/pull.md +5 -1
  377. package/docs/ja/cli/push.md +5 -1
  378. package/docs/ja/cli/scan.md +5 -1
  379. package/docs/ja/cli/standalone.md +5 -1
  380. package/docs/ja/cli/test.md +5 -1
  381. package/docs/ja/cli/watch.md +5 -1
  382. package/docs/ja/compat/i18n-js.md +1 -1
  383. package/docs/ja/compat/i18next.md +1 -1
  384. package/docs/ja/compat/lingui.md +1 -1
  385. package/docs/ja/compat/next-i18next.md +1 -1
  386. package/docs/ja/compat/next-intl.md +1 -1
  387. package/docs/ja/compat/next-translate.md +1 -1
  388. package/docs/ja/compat/ngx-translate.md +1 -1
  389. package/docs/ja/compat/nuxtjs-i18n.md +1 -1
  390. package/docs/ja/compat/polyglot.md +1 -1
  391. package/docs/ja/compat/react-i18next.md +1 -1
  392. package/docs/ja/compat/react-intl.md +1 -1
  393. package/docs/ja/compat/svelte-i18n.md +1 -1
  394. package/docs/ja/compat/transloco.md +1 -1
  395. package/docs/ja/compat/vue-i18n.md +1 -1
  396. package/docs/ja/intlayer_with_remix_3.md +558 -0
  397. package/docs/ko/benchmark/index.md +4 -1
  398. package/docs/ko/benchmark/nextjs.md +32 -27
  399. package/docs/ko/benchmark/solid.md +13 -10
  400. package/docs/ko/benchmark/svelte.md +12 -9
  401. package/docs/ko/benchmark/tanstack.md +29 -24
  402. package/docs/ko/benchmark/vue.md +11 -7
  403. package/docs/ko/cli/build.md +8 -1
  404. package/docs/ko/cli/configuration.md +3 -1
  405. package/docs/ko/cli/doc-review.md +8 -1
  406. package/docs/ko/cli/doc-translate.md +5 -1
  407. package/docs/ko/cli/extract.md +2 -1
  408. package/docs/ko/cli/fill.md +5 -1
  409. package/docs/ko/cli/index.md +4 -5
  410. package/docs/ko/cli/live.md +5 -1
  411. package/docs/ko/cli/login.md +2 -2
  412. package/docs/ko/cli/pull.md +5 -1
  413. package/docs/ko/cli/push.md +5 -1
  414. package/docs/ko/cli/scan.md +5 -1
  415. package/docs/ko/cli/standalone.md +5 -1
  416. package/docs/ko/cli/test.md +5 -1
  417. package/docs/ko/cli/watch.md +5 -1
  418. package/docs/ko/compat/i18n-js.md +1 -1
  419. package/docs/ko/compat/i18next.md +1 -1
  420. package/docs/ko/compat/lingui.md +1 -1
  421. package/docs/ko/compat/next-i18next.md +1 -1
  422. package/docs/ko/compat/next-intl.md +1 -1
  423. package/docs/ko/compat/next-translate.md +1 -1
  424. package/docs/ko/compat/ngx-translate.md +1 -1
  425. package/docs/ko/compat/nuxtjs-i18n.md +1 -1
  426. package/docs/ko/compat/polyglot.md +1 -1
  427. package/docs/ko/compat/react-i18next.md +1 -1
  428. package/docs/ko/compat/react-intl.md +1 -1
  429. package/docs/ko/compat/svelte-i18n.md +1 -1
  430. package/docs/ko/compat/transloco.md +1 -1
  431. package/docs/ko/compat/vue-i18n.md +1 -1
  432. package/docs/ko/intlayer_with_remix_3.md +543 -0
  433. package/docs/nl/cli/index.md +4 -5
  434. package/docs/nl/cli/scan.md +5 -1
  435. package/docs/nl/cli/standalone.md +5 -1
  436. package/docs/pl/benchmark/index.md +4 -1
  437. package/docs/pl/benchmark/nextjs.md +32 -27
  438. package/docs/pl/benchmark/solid.md +13 -10
  439. package/docs/pl/benchmark/svelte.md +12 -9
  440. package/docs/pl/benchmark/tanstack.md +29 -24
  441. package/docs/pl/benchmark/vue.md +11 -7
  442. package/docs/pl/cli/build.md +8 -1
  443. package/docs/pl/cli/configuration.md +3 -1
  444. package/docs/pl/cli/doc-review.md +8 -1
  445. package/docs/pl/cli/doc-translate.md +5 -1
  446. package/docs/pl/cli/extract.md +2 -1
  447. package/docs/pl/cli/fill.md +5 -1
  448. package/docs/pl/cli/index.md +4 -5
  449. package/docs/pl/cli/live.md +5 -1
  450. package/docs/pl/cli/login.md +2 -2
  451. package/docs/pl/cli/pull.md +5 -1
  452. package/docs/pl/cli/push.md +5 -1
  453. package/docs/pl/cli/scan.md +5 -1
  454. package/docs/pl/cli/standalone.md +5 -1
  455. package/docs/pl/cli/test.md +5 -1
  456. package/docs/pl/cli/watch.md +5 -1
  457. package/docs/pl/compat/i18n-js.md +1 -1
  458. package/docs/pl/compat/i18next.md +1 -1
  459. package/docs/pl/compat/lingui.md +1 -1
  460. package/docs/pl/compat/next-i18next.md +1 -1
  461. package/docs/pl/compat/next-intl.md +1 -1
  462. package/docs/pl/compat/next-translate.md +1 -1
  463. package/docs/pl/compat/ngx-translate.md +1 -1
  464. package/docs/pl/compat/nuxtjs-i18n.md +1 -1
  465. package/docs/pl/compat/polyglot.md +1 -1
  466. package/docs/pl/compat/react-i18next.md +1 -1
  467. package/docs/pl/compat/react-intl.md +1 -1
  468. package/docs/pl/compat/svelte-i18n.md +1 -1
  469. package/docs/pl/compat/transloco.md +1 -1
  470. package/docs/pl/compat/vue-i18n.md +1 -1
  471. package/docs/pl/intlayer_with_remix_3.md +551 -0
  472. package/docs/pt/benchmark/index.md +4 -1
  473. package/docs/pt/benchmark/nextjs.md +32 -27
  474. package/docs/pt/benchmark/solid.md +13 -10
  475. package/docs/pt/benchmark/svelte.md +12 -9
  476. package/docs/pt/benchmark/tanstack.md +29 -24
  477. package/docs/pt/benchmark/vue.md +11 -7
  478. package/docs/pt/cli/build.md +8 -1
  479. package/docs/pt/cli/configuration.md +3 -1
  480. package/docs/pt/cli/doc-review.md +8 -1
  481. package/docs/pt/cli/doc-translate.md +5 -1
  482. package/docs/pt/cli/extract.md +2 -1
  483. package/docs/pt/cli/fill.md +5 -1
  484. package/docs/pt/cli/index.md +4 -5
  485. package/docs/pt/cli/live.md +5 -1
  486. package/docs/pt/cli/login.md +2 -2
  487. package/docs/pt/cli/pull.md +5 -1
  488. package/docs/pt/cli/push.md +5 -1
  489. package/docs/pt/cli/scan.md +5 -1
  490. package/docs/pt/cli/standalone.md +5 -1
  491. package/docs/pt/cli/test.md +5 -1
  492. package/docs/pt/cli/watch.md +5 -1
  493. package/docs/pt/compat/i18n-js.md +1 -1
  494. package/docs/pt/compat/i18next.md +1 -1
  495. package/docs/pt/compat/lingui.md +1 -1
  496. package/docs/pt/compat/next-i18next.md +1 -1
  497. package/docs/pt/compat/next-intl.md +1 -1
  498. package/docs/pt/compat/next-translate.md +1 -1
  499. package/docs/pt/compat/ngx-translate.md +1 -1
  500. package/docs/pt/compat/nuxtjs-i18n.md +1 -1
  501. package/docs/pt/compat/polyglot.md +1 -1
  502. package/docs/pt/compat/react-i18next.md +1 -1
  503. package/docs/pt/compat/react-intl.md +1 -1
  504. package/docs/pt/compat/svelte-i18n.md +1 -1
  505. package/docs/pt/compat/transloco.md +1 -1
  506. package/docs/pt/compat/vue-i18n.md +1 -1
  507. package/docs/pt/intlayer_with_remix_3.md +558 -0
  508. package/docs/ru/benchmark/index.md +4 -1
  509. package/docs/ru/benchmark/nextjs.md +32 -27
  510. package/docs/ru/benchmark/solid.md +13 -10
  511. package/docs/ru/benchmark/svelte.md +12 -9
  512. package/docs/ru/benchmark/tanstack.md +29 -24
  513. package/docs/ru/benchmark/vue.md +11 -7
  514. package/docs/ru/cli/build.md +8 -1
  515. package/docs/ru/cli/configuration.md +3 -1
  516. package/docs/ru/cli/doc-review.md +8 -1
  517. package/docs/ru/cli/doc-translate.md +5 -1
  518. package/docs/ru/cli/extract.md +2 -1
  519. package/docs/ru/cli/fill.md +5 -1
  520. package/docs/ru/cli/index.md +4 -5
  521. package/docs/ru/cli/live.md +5 -1
  522. package/docs/ru/cli/login.md +2 -2
  523. package/docs/ru/cli/pull.md +5 -1
  524. package/docs/ru/cli/push.md +5 -1
  525. package/docs/ru/cli/scan.md +5 -1
  526. package/docs/ru/cli/standalone.md +5 -1
  527. package/docs/ru/cli/test.md +5 -1
  528. package/docs/ru/cli/watch.md +5 -1
  529. package/docs/ru/compat/i18n-js.md +1 -1
  530. package/docs/ru/compat/i18next.md +1 -1
  531. package/docs/ru/compat/lingui.md +1 -1
  532. package/docs/ru/compat/next-i18next.md +1 -1
  533. package/docs/ru/compat/next-intl.md +1 -1
  534. package/docs/ru/compat/next-translate.md +1 -1
  535. package/docs/ru/compat/ngx-translate.md +1 -1
  536. package/docs/ru/compat/nuxtjs-i18n.md +1 -1
  537. package/docs/ru/compat/polyglot.md +1 -1
  538. package/docs/ru/compat/react-i18next.md +1 -1
  539. package/docs/ru/compat/react-intl.md +1 -1
  540. package/docs/ru/compat/svelte-i18n.md +1 -1
  541. package/docs/ru/compat/transloco.md +1 -1
  542. package/docs/ru/compat/vue-i18n.md +1 -1
  543. package/docs/ru/intlayer_with_remix_3.md +558 -0
  544. package/docs/tr/benchmark/index.md +4 -1
  545. package/docs/tr/benchmark/nextjs.md +32 -27
  546. package/docs/tr/benchmark/solid.md +13 -10
  547. package/docs/tr/benchmark/svelte.md +12 -9
  548. package/docs/tr/benchmark/tanstack.md +29 -24
  549. package/docs/tr/benchmark/vue.md +11 -7
  550. package/docs/tr/cli/build.md +8 -1
  551. package/docs/tr/cli/configuration.md +3 -1
  552. package/docs/tr/cli/doc-review.md +8 -1
  553. package/docs/tr/cli/doc-translate.md +5 -1
  554. package/docs/tr/cli/extract.md +2 -1
  555. package/docs/tr/cli/fill.md +5 -1
  556. package/docs/tr/cli/index.md +4 -5
  557. package/docs/tr/cli/live.md +5 -1
  558. package/docs/tr/cli/login.md +2 -2
  559. package/docs/tr/cli/pull.md +5 -1
  560. package/docs/tr/cli/push.md +5 -1
  561. package/docs/tr/cli/scan.md +5 -1
  562. package/docs/tr/cli/standalone.md +5 -1
  563. package/docs/tr/cli/test.md +5 -1
  564. package/docs/tr/cli/watch.md +5 -1
  565. package/docs/tr/compat/i18n-js.md +1 -1
  566. package/docs/tr/compat/i18next.md +1 -1
  567. package/docs/tr/compat/lingui.md +1 -1
  568. package/docs/tr/compat/next-i18next.md +1 -1
  569. package/docs/tr/compat/next-intl.md +1 -1
  570. package/docs/tr/compat/next-translate.md +1 -1
  571. package/docs/tr/compat/ngx-translate.md +1 -1
  572. package/docs/tr/compat/nuxtjs-i18n.md +1 -1
  573. package/docs/tr/compat/polyglot.md +1 -1
  574. package/docs/tr/compat/react-i18next.md +1 -1
  575. package/docs/tr/compat/react-intl.md +1 -1
  576. package/docs/tr/compat/svelte-i18n.md +1 -1
  577. package/docs/tr/compat/transloco.md +1 -1
  578. package/docs/tr/compat/vue-i18n.md +1 -1
  579. package/docs/tr/intlayer_with_remix_3.md +566 -0
  580. package/docs/uk/benchmark/index.md +4 -1
  581. package/docs/uk/benchmark/nextjs.md +32 -27
  582. package/docs/uk/benchmark/solid.md +13 -10
  583. package/docs/uk/benchmark/svelte.md +12 -9
  584. package/docs/uk/benchmark/tanstack.md +29 -24
  585. package/docs/uk/benchmark/vue.md +11 -7
  586. package/docs/uk/cli/build.md +8 -1
  587. package/docs/uk/cli/configuration.md +3 -1
  588. package/docs/uk/cli/doc-review.md +8 -1
  589. package/docs/uk/cli/doc-translate.md +5 -1
  590. package/docs/uk/cli/extract.md +2 -1
  591. package/docs/uk/cli/fill.md +5 -1
  592. package/docs/uk/cli/index.md +4 -5
  593. package/docs/uk/cli/live.md +5 -1
  594. package/docs/uk/cli/login.md +2 -2
  595. package/docs/uk/cli/pull.md +5 -1
  596. package/docs/uk/cli/push.md +5 -1
  597. package/docs/uk/cli/scan.md +5 -1
  598. package/docs/uk/cli/standalone.md +5 -1
  599. package/docs/uk/cli/test.md +5 -1
  600. package/docs/uk/cli/watch.md +5 -1
  601. package/docs/uk/compat/i18n-js.md +1 -1
  602. package/docs/uk/compat/i18next.md +1 -1
  603. package/docs/uk/compat/lingui.md +1 -1
  604. package/docs/uk/compat/next-i18next.md +1 -1
  605. package/docs/uk/compat/next-intl.md +1 -1
  606. package/docs/uk/compat/next-translate.md +1 -1
  607. package/docs/uk/compat/ngx-translate.md +1 -1
  608. package/docs/uk/compat/nuxtjs-i18n.md +1 -1
  609. package/docs/uk/compat/polyglot.md +1 -1
  610. package/docs/uk/compat/react-i18next.md +1 -1
  611. package/docs/uk/compat/react-intl.md +1 -1
  612. package/docs/uk/compat/svelte-i18n.md +1 -1
  613. package/docs/uk/compat/transloco.md +1 -1
  614. package/docs/uk/compat/vue-i18n.md +1 -1
  615. package/docs/uk/intlayer_with_remix_3.md +566 -0
  616. package/docs/ur/cli/index.md +4 -5
  617. package/docs/ur/cli/scan.md +5 -1
  618. package/docs/ur/cli/standalone.md +5 -1
  619. package/docs/vi/benchmark/index.md +4 -1
  620. package/docs/vi/benchmark/nextjs.md +32 -27
  621. package/docs/vi/benchmark/solid.md +13 -10
  622. package/docs/vi/benchmark/svelte.md +12 -9
  623. package/docs/vi/benchmark/tanstack.md +29 -24
  624. package/docs/vi/benchmark/vue.md +11 -7
  625. package/docs/vi/cli/build.md +8 -1
  626. package/docs/vi/cli/configuration.md +3 -1
  627. package/docs/vi/cli/doc-review.md +8 -1
  628. package/docs/vi/cli/doc-translate.md +5 -1
  629. package/docs/vi/cli/extract.md +2 -1
  630. package/docs/vi/cli/fill.md +5 -1
  631. package/docs/vi/cli/index.md +4 -5
  632. package/docs/vi/cli/live.md +5 -1
  633. package/docs/vi/cli/login.md +2 -2
  634. package/docs/vi/cli/pull.md +5 -1
  635. package/docs/vi/cli/push.md +5 -1
  636. package/docs/vi/cli/scan.md +5 -1
  637. package/docs/vi/cli/standalone.md +5 -1
  638. package/docs/vi/cli/test.md +5 -1
  639. package/docs/vi/cli/watch.md +5 -1
  640. package/docs/vi/compat/i18n-js.md +1 -1
  641. package/docs/vi/compat/i18next.md +1 -1
  642. package/docs/vi/compat/lingui.md +1 -1
  643. package/docs/vi/compat/next-i18next.md +1 -1
  644. package/docs/vi/compat/next-intl.md +1 -1
  645. package/docs/vi/compat/next-translate.md +1 -1
  646. package/docs/vi/compat/ngx-translate.md +1 -1
  647. package/docs/vi/compat/nuxtjs-i18n.md +1 -1
  648. package/docs/vi/compat/polyglot.md +1 -1
  649. package/docs/vi/compat/react-i18next.md +1 -1
  650. package/docs/vi/compat/react-intl.md +1 -1
  651. package/docs/vi/compat/svelte-i18n.md +1 -1
  652. package/docs/vi/compat/transloco.md +1 -1
  653. package/docs/vi/compat/vue-i18n.md +1 -1
  654. package/docs/vi/intlayer_with_remix_3.md +566 -0
  655. package/docs/zh/benchmark/index.md +4 -1
  656. package/docs/zh/benchmark/nextjs.md +32 -27
  657. package/docs/zh/benchmark/solid.md +13 -10
  658. package/docs/zh/benchmark/svelte.md +12 -9
  659. package/docs/zh/benchmark/tanstack.md +29 -24
  660. package/docs/zh/benchmark/vue.md +11 -7
  661. package/docs/zh/cli/build.md +8 -1
  662. package/docs/zh/cli/configuration.md +3 -1
  663. package/docs/zh/cli/doc-review.md +8 -1
  664. package/docs/zh/cli/doc-translate.md +5 -1
  665. package/docs/zh/cli/extract.md +2 -1
  666. package/docs/zh/cli/fill.md +5 -1
  667. package/docs/zh/cli/index.md +4 -5
  668. package/docs/zh/cli/live.md +5 -1
  669. package/docs/zh/cli/login.md +2 -2
  670. package/docs/zh/cli/pull.md +5 -1
  671. package/docs/zh/cli/push.md +5 -1
  672. package/docs/zh/cli/scan.md +5 -1
  673. package/docs/zh/cli/standalone.md +5 -1
  674. package/docs/zh/cli/test.md +5 -1
  675. package/docs/zh/cli/watch.md +5 -1
  676. package/docs/zh/compat/i18n-js.md +1 -1
  677. package/docs/zh/compat/i18next.md +1 -1
  678. package/docs/zh/compat/lingui.md +1 -1
  679. package/docs/zh/compat/next-i18next.md +1 -1
  680. package/docs/zh/compat/next-intl.md +1 -1
  681. package/docs/zh/compat/next-translate.md +1 -1
  682. package/docs/zh/compat/ngx-translate.md +1 -1
  683. package/docs/zh/compat/nuxtjs-i18n.md +1 -1
  684. package/docs/zh/compat/polyglot.md +1 -1
  685. package/docs/zh/compat/react-i18next.md +1 -1
  686. package/docs/zh/compat/react-intl.md +1 -1
  687. package/docs/zh/compat/svelte-i18n.md +1 -1
  688. package/docs/zh/compat/transloco.md +1 -1
  689. package/docs/zh/compat/vue-i18n.md +1 -1
  690. package/docs/zh/intlayer_with_remix_3.md +558 -0
  691. package/package.json +7 -7
  692. package/src/generated/blog.entry.ts +20 -0
  693. package/src/generated/docs.entry.ts +0 -20
  694. package/docs/ar/cli/ci.md +0 -186
  695. package/docs/de/cli/ci.md +0 -186
  696. package/docs/en/cli/ci.md +0 -216
  697. package/docs/en-GB/cli/ci.md +0 -186
  698. package/docs/es/cli/ci.md +0 -186
  699. package/docs/fr/cli/ci.md +0 -186
  700. package/docs/hi/cli/ci.md +0 -186
  701. package/docs/id/cli/ci.md +0 -186
  702. package/docs/it/cli/ci.md +0 -186
  703. package/docs/ja/cli/ci.md +0 -186
  704. package/docs/ko/cli/ci.md +0 -186
  705. package/docs/pl/cli/ci.md +0 -186
  706. package/docs/pt/cli/ci.md +0 -186
  707. package/docs/ru/cli/ci.md +0 -186
  708. package/docs/tr/cli/ci.md +0 -186
  709. package/docs/uk/cli/ci.md +0 -186
  710. package/docs/vi/cli/ci.md +0 -186
  711. package/docs/zh/cli/ci.md +0 -186
@@ -0,0 +1,304 @@
1
+ ---
2
+ createdAt: 2026-09-09
3
+ updatedAt: 2026-09-09
4
+ title: "Die Geschichte der JavaScript-i18n: Von 2011 bis 2026"
5
+ description: "Erfahren Sie mehr über die Evolution der Frontend-Internationalisierung von 2011 bis 2026. Release-Daten, Architekturprobleme und Innovationen in React, Vue, Next.js, Angular, Svelte und Solid."
6
+ keywords:
7
+ - i18n Geschichte
8
+ - JavaScript Internationalisierung
9
+ - React i18n
10
+ - Next.js i18n
11
+ - Vue i18n
12
+ - Angular i18n
13
+ - Svelte i18n
14
+ - Solid i18n
15
+ - i18next
16
+ - intlayer
17
+ slugs:
18
+ - blog
19
+ - history-of-js-internationalization
20
+ author: aymericzip
21
+ ---
22
+
23
+ # Die Geschichte der JavaScript-Internationalisierung (i18n)
24
+
25
+ Internationalisierung ist kein neues Thema. Lange vor JavaScript und dem modernen Web mussten Softwaresysteme bereits mit mehreren Sprachen, Währungen, Datumsformaten und regionalen Konventionen umgehen. Frühe grafische Betriebssysteme wie GEM und Mac OS lösten viele dieser Probleme bereits in den 1980er Jahren.
26
+
27
+ Dieselben Konzepte fanden ihren Weg in Backend-Frameworks. Ruby on Rails, Django, Java-Frameworks und PHP-Anwendungen entwickelten jeweils eigene Ansätze zur Internationalisierung. Die Kernfragen waren klar umrissen:
28
+
29
+ - Wo sollen Übersetzungen gespeichert werden?
30
+ - Wie formatieren wir Datumsangaben, Zahlen und Währungen?
31
+ - Wie handhaben wir Pluralformen und grammatikalische Unterschiede?
32
+ - Wie bestimmen wir die passende Sprache für den Nutzer?
33
+
34
+ Solange der Server vollständige HTML-Seiten erzeugte, war das Vorgehen überschaubar. Die Anwendung lud die passenden Texte, renderte das Dokument und lieferte es an den Browser aus.
35
+
36
+ > PHP und GNU gettext dienten als Wegbereiter für das `t()`-Helfer-Muster, das später in JavaScript und JSX allgegenwärtig wurde.
37
+
38
+ Dann übernahm JavaScript zunehmend die Kontrolle im Browser.
39
+
40
+ Mit dem Wechsel von rein serverseitigen Seiten zu komplexen Single-Page Applications (SPAs) verlagerte sich die Internationalisierung ins Frontend. Der Browser musste plötzlich Übersetzungen nachladen, Sprachen dynamisch umschalten, Werte formatieren, Pluralregeln anwenden und die Oberfläche ohne Seiten-Reload aktualisieren.
41
+
42
+ Daraus ergab sich eine zentrale Frage:
43
+
44
+ **Wie lässt sich eine Anwendung mehrsprachig gestalten, ohne jedem Nutzer gigantische Übersetzungsmengen und schweren Laufzeitcode aufzubürden?**
45
+
46
+ Diese Frage prägte die Entwicklung von JavaScript-i18n über mehr als ein Jahrzehnt.
47
+
48
+ Die Lösungen haben sich grundlegend gewandelt: von globalen JavaScript-Objekten und einfachen `t('key')`-Aufrufen über frameworkspezifische Bibliotheken, Typensicherheit mit TypeScript, Server Components und Tree-Shaking bis hin zu modernen Compiler-Ansätzen, die Übersetzungen direkt während des Builds in optimierten Code überführen.
49
+
50
+ Dieser Artikel beleuchtet diese Entwicklung von 2011 bis 2026: welche Probleme die einzelnen Werkzeuge lösen wollten, was funktionierte, wo Grenzen lagen und wie moderne Frontend-Architekturen die i18n von heute bestimmen.
51
+
52
+ ![JavaScript Internationalisierungs-Ökosystem](https://github.com/aymericzip/intlayer/blob/main/docs/assets/cloud_i18n_logo.png?raw=true)
53
+
54
+ ## Inhaltsverzeichnis
55
+
56
+ <TOC/>
57
+
58
+ ## Das frühe Web: JavaScript-Internationalisierung vor 2016
59
+
60
+ Um moderne i18n-Lösungen einordnen zu können, lohnt ein Blick auf die Arbeitsweisen zwischen 2011 und 2015.
61
+
62
+ ### Verlagerung der Logik auf den Client
63
+
64
+ Anfang der 2010er Jahre lag die Internationalisierung fast ausschließlich beim Server. JavaScript diente meist nur als Ergänzung für Animationen, Formularprüfungen und kleinere DOM-Elemente via jQuery.
65
+
66
+ Als SPAs mit Backbone.js, Knockout.js und frühem AngularJS populär wurden, wanderte die Rendering-Logik direkt in den Browser. Der Client musste nun lokalisierte Datumsangaben darstellen, Währungen anpassen, Pluralregeln berechnen und Texte ohne Neuladen austauschen.
67
+
68
+ Doch der Browser von 2011 bot dafür kaum native Unterstützung:
69
+
70
+ <AccordionGroup>
71
+ <Accordion header="Keine native Internationalisierungs-API">
72
+
73
+ Die Spezifikation der ECMAScript Internationalization API (ECMA-402) wurde erst im Dezember 2012 mit dem globalen Objekt `Intl` verabschiedet. Vor der breiten Einführung in Browsern erforderten selbst einfache Formatierungen eigene Hilfsfunktionen oder schwere Polyfills.
74
+
75
+ </Accordion>
76
+ <Accordion header="Keine modernen Modul-Bundler">
77
+
78
+ Werkzeuge wie Webpack standen am Anfang, und native ES-Module existierten in Browsern nicht. Entwickler banden Skripte über `<script>`-Tags ein und legten Übersetzungen oft in globalen Objekten wie `window.translations = { ... }` ab.
79
+
80
+ </Accordion>
81
+ <Accordion header="Monolithische JSON-Dateien">
82
+
83
+ Übersetzungen wurden in riesigen, zentralen JSON-Dateien gepflegt. Ein Nutzer in Tokio, der lediglich die Startseite aufrief, lud gleichzeitig die Texte für Kontoeinstellungen, Abrechnungsdialoge und Administrationsbereiche herunter.
84
+
85
+ </Accordion>
86
+ </AccordionGroup>
87
+
88
+ ### Die erste Welle clientseitiger Bibliotheken
89
+
90
+ Zwischen 2012 und 2015 entstand das Fundament moderner i18n in JavaScript:
91
+
92
+ <AccordionGroup>
93
+ <Accordion header="i18next (Januar 2012)">
94
+
95
+ Entwickelt von Jan Mühlemann, definierte `i18next` den Standard für Schlüssel-Wert-Wörterbücher zur Laufzeit. Es führte Pfadnavigation, Variableninterpolation, Pluralregeln und eine modulare Architektur für Sprachdetektoren und Backends ein. Es etablierte sich rasch als De-facto-Standard in Vanilla JS und Node.js.
96
+
97
+ </Accordion>
98
+ <Accordion header="vue-i18n (Mai 2014)">
99
+
100
+ Entwickelt von Kazuya Kawaguchi (Kazupon), passte `vue-i18n` die Internationalisierung an das Reaktivitätsmodell von Vue.js an und führte Vorlagendirektiven (`v-t`) sowie den Helfer `$t()` ein.
101
+
102
+ </Accordion>
103
+ <Accordion header="react-intl (Juni 2014)">
104
+
105
+ Als Teil des FormatJS-Projekts von Yahoo! brachte `react-intl` standardisierte ICU MessageFormat- und `Intl`-APIs über deklarative Komponenten wie `<FormattedMessage>` und `<FormattedDate>` in das React-Ökosystem.
106
+
107
+ </Accordion>
108
+ <Accordion header="react-i18next (Dezember 2015)">
109
+
110
+ Jan Mühlemann übertrug `i18next` in die React-Welt, zunächst mit Higher-Order Components (`withTranslation`) und Kontextanbietern, um Komponenten bei Sprachwechseln neu zu rendern.
111
+
112
+ </Accordion>
113
+ </AccordionGroup>
114
+
115
+ ### Grenzen der Ära vor 2016
116
+
117
+ Obwohl diese Werkzeuge mehrsprachige Webanwendungen ermöglichten, brachten die damaligen Architekturen spürbare Nachteile mit sich:
118
+
119
+ <AccordionGroup>
120
+ <Accordion header="Fragile String-Schlüssel">
121
+
122
+ Schlüsselaufrufe wie `t('marketing.landing.hero.cta')` boten keinerlei statische Typprüfung. Tippfehler fielen oft erst im Produktivbetrieb durch leere Flächen oder unübersetzte Schlüssel auf.
123
+
124
+ </Accordion>
125
+ <Accordion header="Parsing-Aufwand zur Laufzeit">
126
+
127
+ Das Auswerten von ICU-Nachrichtensyntax und regulären Ausdrücken im Browser beanspruchte insbesondere auf Mobilgeräten messbare Rechenleistung.
128
+
129
+ </Accordion>
130
+ <Accordion header="Unnötig große Bundles">
131
+
132
+ Ohne komponentenbasiertes oder routenbasiertes Code-Splitting wurden sämtliche Übersetzungstexte auf einmal ausgeliefert, was die Ladezeiten verlängerte.
133
+
134
+ </Accordion>
135
+ <Accordion header="Kluft zwischen Code und Übersetzung">
136
+
137
+ Zentralisierte JSON-Dateien lagen weit entfernt von den Komponenten, die sie verwendeten. Verwaiste Schlüssel und fehlende Übersetzungen waren die häufige Folge.
138
+
139
+ </Accordion>
140
+ </AccordionGroup>
141
+
142
+ ## Die Framework-Ära: Entwicklung über Ökosysteme hinweg
143
+
144
+ Zwischen 2016 und 2026 wandelte sich die Frontend-Entwicklung grundlegend. TypeScript wurde zum Branchenstandard, Komponentenmodelle reiften aus, Bundler wie Webpack, Vite und Turbopack etablierten granulares Code-Splitting, React Server Components verlagerten Render-Logik zurück auf den Server, und Compiler begannen, Anwendungscode direkt zu analysieren.
145
+
146
+ Die folgenden Tabs zeigen, wie die einzelnen Ökosysteme auf diese Herausforderungen reagierten. In diesen Umgebungen bieten `react-intlayer` und seine Pendants (`next-intlayer`, `vue-intlayer`, `angular-intlayer`, `svelte-intlayer` und `solid-intlayer`) leistungsfähige Implementierungen, die auf die jeweilige Laufzeitumgebung zugeschnitten sind.
147
+
148
+ <Tabs>
149
+
150
+ <Tab label="Core JavaScript" value="javascript">
151
+
152
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
153
+ | -------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
154
+ | Januar 2012 | `i18next` | Standardisierung von Dictionary-Lookups zur Laufzeit für Browser und Node.js ohne Framework-Bindung. | Modulare Laufzeitarchitektur mit Trennung von Übersetzungslogik, Ladern, Detektoren und Caching. |
155
+ | Februar 2021 | `typesafe-i18n` | Vermeidung von Laufzeitfehlern und fehlerhaften Interpolationen durch ungetypte Zeichenketten. | Vollständig typisierte Übersetzungsfunktionen, die direkt aus Übersetzungsobjekten generiert werden, ohne Laufzeitabhängigkeiten. |
156
+ | Oktober 2023 | `paraglide` (`@inlang/paraglide-js`) | Beseitigung von Laufzeit-Dictionaries, schweren Parsern und unnötigem Bundle-Overhead. | Kompiliert Meldungen in reine, tree-shakable ECMAScript-Module und JavaScript-Funktionen. |
157
+ | April 2024 | `intlayer` | Ersatz schwer wartbarer Namespaces, Vermeidung von Content-Leaks zwischen Seiten, Reduzierung von Git-Merge-Konflikten und native Typsicherheit in TypeScript. | Colocation von `.content`-Dateien direkt am Komponentenaufruf, automatische Typgenerierung, integriertes visuelles CMS und KI-gestützte Übersetzungswerkzeuge per CLI. |
158
+ | Juni 2025 | `wuchale` | Beseitigung des manuellen Extrahierens von Texten und Erfindens von Übersetzungsschlüsseln während der Entwicklung. | AST-Vorverarbeitung, die Inline-Texte erkennt und direkt zur Build-Zeit in lokalisierte Funktionen ohne Wrapper überführt. |
159
+
160
+ </Tab>
161
+
162
+ <Tab label="React" value="react">
163
+
164
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
165
+ | -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
166
+ | Juni 2014 | `react-intl` | Standardisierung der Formatierung von Zahlen, Daten, Währungen und komplexen Pluralen in React. | Deklarative Komponenten (`<FormattedMessage>`, `<FormattedDate>`) auf Basis von ICU MessageFormat und ECMA-402. |
167
+ | Dezember 2015 | `react-i18next` | Idiomatische React-Anbindung für `i18next` mit reaktivem Re-Rendering. | Kontinuierliche Weiterentwicklung von Higher-Order Components hin zu JSX-Interpolation mit `<Trans>` und dem `useTranslation`-Hook. |
168
+ | Januar 2018 | `@lingui/react` | Verringerung von Bundle-Größen durch Vermeidung schwerer ICU-Parser zur Laufzeit. | Babel/SWC-Makros zur Build-Zeit, die `<Trans>` und `t` in kompakte indizierte Arrays kompilieren. |
169
+ | Dezember 2020 | `use-intl` | Schlanke, hook-basierte und typsichere Alternative zu älteren React-i18n-Lösungen. | Ergonomische Hooks `useTranslations` und `useFormatter` mit tiefer TypeScript-Integration. |
170
+ | Februar 2021 | `@tolgee/react` | Verkürzung von Feedbackschleifen zwischen Entwicklern, Übersetzern und Designern. | In-Context-Bearbeitung im Browser per Alt-Klick mit Echtzeit-Aktualisierung und Screenshot-Erfassung. |
171
+ | April 2024 | `react-intlayer` | Optimierte React-Implementierung von Intlayer für den Komponenten-Lebenszyklus ohne zentrale JSON-Monolithen oder unübersichtliche Namespaces. | Leistungsfähiger `useIntlayer`-Hook, automatisch generierte TypeScript-Typen, Tree-Shaking pro Komponente und Live-Synchronisation mit dem visuellen CMS. |
172
+ | Juli 2024 | `gt-react` | Automatisierung manueller Datei-Exporte und Übersetzungsabläufe. | Cloud-basierte KI-Lokalisierung direkt in React-Komponenten über automatisierte Übersetzungspipelines. |
173
+ | August 2025 | `@wuchale/jsx` | Verzicht auf manuelle Schlüsselvergabe und sich wiederholende Hooks in JSX. | AST-Transformation, die JSX-Textknoten automatisch erkennt und in lokalisierte Äquivalente kompiliert. |
174
+
175
+ </Tab>
176
+
177
+ <Tab label="Next.js" value="nextjs">
178
+
179
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
180
+ | -------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
181
+ | November 2018 | `next-i18next` | SSR- und SSG-Unterstützung mit `i18next` im Next.js Pages Router ohne clientseitige Abfragekaskaden. | `serverSideTranslations` und `appWithTranslation` zur Übergabe lokalisierter Namespaces über Page-Props. |
182
+ | Dezember 2019 | `next-translate` | Einfachere Konfiguration und reduziertes Bundle-Gewicht im Pages Router. | Webpack-Loader-Plugin, das gezielt nur die jeweils benötigten Übersetzungs-Namespaces pro Seite einbindet. |
183
+ | November 2020 | `next-intl` | Neuausrichtung der Internationalisierung auf App Router, React Server Components (RSC) und Streaming SSR. | Native Integration mit Next.js App Router Middleware, Server Actions und asynchronen Server Components ohne zwingendes Client-JS. |
184
+ | Juli 2022 | `next-international` | Maximale TypeScript-Typsicherheit bei minimalem Bundle-Overhead für Next.js. | Strikte Typgenerierung für abgegrenzte Übersetzungsschlüssel mit schlanken Adaptern für App Router und Pages Router. |
185
+ | April 2024 | `paraglide-next` (`@inlang/paraglide-next`) | Vorkompilierte Meldungen ohne Laufzeit-Bibliothek für Next.js App Router und Pages Router. | Middleware-Routing kombiniert mit tree-shakable Funktionen, wodurch Laufzeit-JSON-Parsing in RSC und Client-Bundles entfällt. |
186
+ | April 2024 | `next-intlayer` | Server-Component-Adapter ohne lästiges Weiterreichen von `t()`-Funktionen oder Wörterbüchern über Props. | Direkter Aufruf von `useIntlayer` in synchronen Server Components ohne Prop-Drilling, kaskadenfreies Server-Rendering, lokalisierte Middleware und Live-CMS-Sync. |
187
+ | September 2024 | `gt-next` | Automatisierte mehrsprachige Inhaltserstellung und dynamisches lokales Routing in Next.js mit KI. | App-Router-Integration, die cloudbasierte maschinelle Übersetzung mit Next.js Edge Middleware und Caching verknüpft. |
188
+
189
+ </Tab>
190
+
191
+ <Tab label="Vue & Nuxt" value="vue">
192
+
193
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
194
+ | -------------- | -------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
195
+ | Mai 2014 | `vue-i18n` | Idiomatische, reaktive Internationalisierung für Vue-Anwendungen. | Tiefe Reaktivitätsanbindung, Vorlagendirektiven (`v-t`), `$t`-Helfer und eigene `<i18n>`-Blöcke in Single-File-Components. |
196
+ | November 2017 | `@nuxt/i18n` | Lokalisierte URL-Routen, SEO-hreflang-Tags und SSR-Hydration in Nuxt. | Full-Stack-Routingmodul mit Unterstützung für Routenpräfixe, Domains, SEO-Meta-Header und Lazy-Loading von Sprachfragmenten. |
197
+ | August 2019 | `fluent-vue` | Unterstützung komplexer grammatikalischer Fälle, Geschlechter und asymmetrischer Sprachstrukturen. | Integration der Mozilla Project Fluent Syntax in Vue, um verschachtelte Verzweigungen für sprachliche Feinheiten zu vermeiden. |
198
+ | April 2025 | `vue-intlayer` | Maßgeschneiderte Intlayer-Lösung für Vue 3 Composition API und Nuxt ohne Verschmutzung globaler Gültigkeitsbereiche. | Auf Vue 3 abgestimmtes `useIntlayer`-Composable mit Reaktivitäts-Tracking, klarer Komponenten-Isolation, vollständiger TypeScript-Autovervollständigung und CMS. |
199
+
200
+ </Tab>
201
+
202
+ <Tab label="Angular" value="angular">
203
+
204
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
205
+ | -------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
206
+ | Februar 2017 | `ngx-translate` | Dynamische Laufzeitübersetzung in Angular ohne separate Builds pro Sprache. | `TranslateService` und `translate`-Pipe für dynamisches Nachladen von Texten und Umschalten zur Laufzeit. |
207
+ | Juli 2019 | `@ngneat/transloco` | Beseitigung von Performanceengpässen und fehlender Isolation in älteren Angular-Bibliotheken. | Strukturelle Direktive (`*transloco`), isolierte Übersetzungen für Lazy-Loading-Module, SSR-Unterstützung und Extraktions-CLI. |
208
+ | September 2019 | `@angular/localize` | Modernisierung der internen Angular-i18n zur Vermeidung wiederholter TypeScript-Kompilierungen pro Sprache. | Tagged Template Literals mit `$localize`, die in einem schnellen Post-Build-Schritt im Ivy-Compiler verarbeitet werden. |
209
+ | Februar 2021 | `@tolgee/ngx` | Integration kollaborativer In-Context-Übersetzung und Screenshot-Erstellung in Angular-Workflows. | Angular-Pipes und -Direktiven mit direkter Anbindung an Tolgee für In-Browser-Übersetzung. |
210
+ | April 2025 | `angular-intlayer` | Native Intlayer-Implementierung für modernes Angular (Signals, Standalone Components und SSR). | Signal-basierte reaktive Inhaltsanbindung abgestimmt auf Angular Change Detection, Standalone Dependency Injection und Live-Synchronisation mit dem CMS. |
211
+
212
+ </Tab>
213
+
214
+ <Tab label="Svelte & SvelteKit" value="svelte">
215
+
216
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
217
+ | -------------- | ----------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
218
+ | Juli 2018 | `svelte-i18n` | Reaktive Internationalisierungsbibliothek abgestimmt auf Svelte Stores. | Store-basierter `$t`-Zugriff für präzise DOM-Updates bei Sprachwechseln. |
219
+ | Dezember 2021 | `sveltekit-i18n` | Saubere Handhabung von SSR und routenbasiertem Nachladen in SvelteKit-Anwendungen. | Modulare Lade-Architektur, die exakt jene Übersetzungen und Formatierer abruft, die für die aktuelle Route nötig sind. |
220
+ | November 2021 | `@tolgee/svelte` | In-Context-Lokalisierung für Svelte-Anwendungen. | Svelte-Store-Anbindungen mit Integration in das Tolgee In-Context-Overlay und automatisierter Screenshot-Erstellung. |
221
+ | April 2025 | `svelte-intlayer` | Performante Intlayer-Implementierung speziell für Svelte 5 und SvelteKit. | Reaktive Bindings für Svelte 5 Runes (`$state`), komponentennahe `.content`-Deklarationen, konfigurationslose Build-Plugins und visuelles CMS. |
222
+ | Juli 2025 | `@wuchale/svelte` | Verzicht auf manuelle Wörterbuchdeklarationen und wiederkehrende `$t`-Importe in Svelte-Dateien. | Svelte-Präprozessor, der Templates zur Build-Zeit analysiert und Textknoten ohne zusätzliche Hüllen übersetzt. |
223
+
224
+ </Tab>
225
+
226
+ <Tab label="SolidJS" value="solid">
227
+
228
+ | Erster Release | Bibliothek | Zielsetzung | Wichtigste Innovation |
229
+ | -------------- | ------------------------ | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
230
+ | September 2021 | `@solid-primitives/i18n` | Idiomatische i18n-Primitive passend zur feingranularen Reaktivität von SolidJS. | Signal-basierter Übersetzungsauflöser, der DOM-Knoten ohne virtuelles DOM oder unnötige Re-Renders aktualisiert. |
231
+ | April 2025 | `solid-intlayer` | Leistungsfähige Intlayer-Lösung nativ entwickelt für SolidJS und SolidStart. | Signal-optimierte Bindings ohne Virtual-DOM-Overhead, vollständige TypeScript-Schema-Autovervollständigung und visuelle Editor-Anbindung. |
232
+ | Juni 2026 | `@lingui/solid` | Erweiterung von Build-Zeit-Makroextraktion und ICU MessageFormat auf SolidJS. | Makrotransformationen angepasst an die Reaktivität von Solid, die Meldungen in kompakte Laufzeitstrukturen überführen. |
233
+
234
+ </Tab>
235
+
236
+ </Tabs>
237
+
238
+ ## Die vier Architektur-Epochen der JavaScript-i18n
239
+
240
+ ![Die Geschichte der JavaScript-i18n-Bibliotheken](https://github.com/aymericzip/intlayer/blob/main/docs/assets/history_i18n.png?raw=true)
241
+
242
+ Rückblickend auf fünfzehn Jahre Entwicklung lässt sich die Geschichte der JavaScript-Internationalisierung in vier prägende Architektur-Epochen unterteilen:
243
+
244
+ <AccordionGroup>
245
+ <Accordion header="1. Die Ära der Laufzeit-Wörterbücher (2011 bis 2017)">
246
+
247
+ Geprägt von `i18next`, `react-intl` und `vue-i18n`. Anwendungen luden statische JSON-Dateien vollständig in den Speicher, und Laufzeitfunktionen glich Zeichenkettenschlüssel mit verschachtelten Objekten ab. Pluralisierung und Variablenersetzung wurden im Client über reguläre Ausdrücke und Parser abgewickelt.
248
+
249
+ </Accordion>
250
+ <Accordion header="2. Die Ära der Build-Makros und Typsicherheit (2018 bis 2021)">
251
+
252
+ Geprägt von `lingui`, `next-translate`, `transloco` und `typesafe-i18n`. Entwickler erkannten die Performancekosten des Parsings zur Laufzeit und die Fehleranfälligkeit ungetypter Schlüssel. Babel-Makros extrahierten Texte beim Build, Bundler-Plugins unterteilten Dictionaries nach Seiten, und TypeScript-Compiler begannen, Übersetzungsargumente statisch zu validieren.
253
+
254
+ </Accordion>
255
+ <Accordion header="3. Die Ära der Server Components und des Streamings (2022 bis 2024)">
256
+
257
+ Geprägt von `next-intl`, `next-international` und frühen RSC-Adaptern. Mit React Server Components und dem Next.js App Router lag das Hauptaugenmerk darauf, Inhalte serverseitig zu rendern, ohne Übersetzungskataloge oder schwere i18n-Laufzeiten an den Browser ausliefern zu müssen.
258
+
259
+ </Accordion>
260
+ <Accordion header="4. Die Ära moderner Compiler und einheitlicher Content-Systeme (2024 bis 2026)">
261
+
262
+ Geprägt von `paraglide`, `intlayer` und `wuchale`. Moderne Tools begreifen Internationalisierung als umfassende Inhaltsarchitektur statt reinen Zeichenkettenersatz. Compiler transformieren Nachrichten direkt in optimierten, tree-shakable Code, Inhaltsdeklarationen liegen direkt bei den Komponenten, und visuelle Editoren sowie automatisierte KI-Pipelines fügen sich nahtlos in Entwickler-Workflows ein. In diesem Ansatz trennt Intlayer Inhaltsdeklaration und automatische Typgenerierung von der Auslieferung und stellt maßgeschneiderte, performante Implementierungen (`react-intlayer`, `next-intlayer`, `vue-intlayer`, `angular-intlayer`, `svelte-intlayer` und `solid-intlayer`) bereit.
263
+
264
+ </Accordion>
265
+ </AccordionGroup>
266
+
267
+ ## Fazit: Entwicklererfahrung, Performance und der Einfluss von KI
268
+
269
+ Über fünfzehn Jahre und vier Architekturphasen hinweg blieb die zentrale Herausforderung stets dieselbe: eine hervorragende Entwicklererfahrung (DX) und langfristige Wartbarkeit mit erstklassiger Client-Performance in Einklang zu bringen.
270
+
271
+ Was mit globalen Variablen und unübersichtlichen JSON-Dateien begann, hat sich zu komponentenlokalisierten Inhalten, automatisierter TypeScript-Typsicherheit, kaskadenfreiem Server-Rendering und kompilierungsbasierter Optimierung weiterentwickelt.
272
+
273
+ ### Automatisierte Übersetzung und traditionelle Plattformen
274
+
275
+ Ein wesentlicher Wendepunkt der letzten Jahre ist die automatisierte Übersetzung mittels KI, die traditionelle Geschäftsmodelle klassischer Lokalisierungsplattformen infrage stellt.
276
+
277
+ Früher war die Zentralisierung in monolithischen JSON-Dateien ein notwendiger Kompromiss, um Übersetzungssysteme (TMS) anzubinden. Eine einzige Datei bot externen Übersetzern eine einfache Schnittstelle. Für Entwickler bedeutete dies jedoch gravierende architektonische Nachteile: häufige Git-Konflikte, verwaiste Schlüssel, fehlender Kontext auf Komponentenebene und unübersichtliche Namespaces.
278
+
279
+ Dank generativer KI und moderner Compiler-Werkzeuge steht die Developer Experience (DX) wieder im Mittelpunkt. Build-Tools und CLIs können komponentenbasierte Inhaltsdateien eigenständig auffinden, validieren und übersetzen, ohne dass für externe Übersetzungsprozesse architektonische Kompromisse nötig sind.
280
+
281
+ Kommerzielle Plattformen bauten über viele Jahre ihr Geschäftsmodell genau auf diesen manuellen Abläufen auf:
282
+
283
+ - Dienste wie **Locize** (die SaaS-Plattform hinter `i18next`) und **Crowdin** (Integrationspartner diverser Open-Source-Bibliotheken) setzten auf gehosteten Übersetzungsspeicher, Tarife mit Kontingenten und Abrechnung nach Wortanzahl.
284
+ - Da ihr Modell auf manuellen Zyklen und Volumen basiert, besteht wenig Anreiz, direkte, kostenfreie Automatisierungen ohne Zwischenschritte direkt in Entwicklungsumgebungen bereitzustellen.
285
+
286
+ ### Neue KI-Tools im Vergleich zu direkten API-Kosten
287
+
288
+ Mit der Senkung der Übersetzungskosten bei gleichzeitig gestiegener sprachlicher Qualität durch moderne Sprachmodelle entstanden neue Anbieter:
289
+
290
+ - Werkzeuge wie Paraglide mit **linguo.dev** oder **General Translation** (`gt-react`, `gt-next`) setzen auf eigene Cloud-Pipelines mit fortlaufenden Abonnements.
291
+ - **Intlayer** hingegen integriert die KI-gestützte Übersetzung direkt in seine Open-Source-CLI. Teams hinterlegen einfach ihre eigenen API-Schlüssel (OpenAI, Anthropic, Mistral oder Google Gemini). Ohne Zwischengebühren oder Plattformbindung erfolgt die Übersetzung zu den reinen Rohkosten des gewählten KI-Anbieters.
292
+
293
+ ### Mehr als i18n: Ein ganzheitliches System für mehrsprachige Inhalte
294
+
295
+ Moderne Webentwicklung geht weit über das Übersetzen einzelner Begriffe wie `"Absenden"` oder `"Anmelden"` hinaus. Heutige Anwendungen benötigen strukturierte, dynamische und reichhaltige Inhalte entlang komplexer Nutzeroberflächen.
296
+
297
+ Intlayer versteht sich daher nicht bloß als Schlüssel-Lookup-Werkzeug, sondern als ganzheitliches Content-System. Mit nativer Unterstützung für Markdown, HTML-Strukturen, verschachtelte Datenschemata und visuelle CMS-Bearbeitung verbindet es moderne Code-Architektur mit effizienten Redaktionsabläufen.
298
+
299
+ Weiterführende Vergleiche und praxisnahe Anleitungen finden Sie in folgenden Ressourcen:
300
+
301
+ - [Compiler vs. deklarative Internationalisierung](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/compiler_vs_declarative_i18n.md)
302
+ - [Komponentenbasierte vs. zentralisierte i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/per-component_vs_centralized_i18n.md)
303
+ - [Performance und Benchmarks](https://intlayer.org/doc/benchmark)
304
+ - [Intlayer Kompatibilitäts-Adapter](https://intlayer.org/doc/concept/compatibility)