@intlayer/docs 9.5.1 → 9.5.3

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 (997) hide show
  1. package/README.md +1 -1
  2. package/blog/ar/history_of_i18n.md +304 -0
  3. package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
  4. package/blog/ar/i18next_vs_intlayer.md +445 -0
  5. package/blog/ar/is_i18next_outdated.md +1 -1
  6. package/blog/ar/is_next-intl_outdated.md +1 -1
  7. package/blog/ar/is_vue-i18n_outdated.md +1 -1
  8. package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
  9. package/blog/ar/lingui_vs_intlayer.md +381 -0
  10. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  11. package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
  12. package/blog/ar/next-intl_vs_intlayer.md +397 -0
  13. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  14. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
  15. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
  16. package/blog/de/history_of_i18n.md +304 -0
  17. package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
  18. package/blog/de/i18next_vs_intlayer.md +445 -0
  19. package/blog/de/is_i18next_outdated.md +1 -1
  20. package/blog/de/is_next-intl_outdated.md +1 -1
  21. package/blog/de/is_vue-i18n_outdated.md +1 -1
  22. package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
  23. package/blog/de/lingui_vs_intlayer.md +381 -0
  24. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  25. package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
  26. package/blog/de/next-intl_vs_intlayer.md +415 -0
  27. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  28. package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
  29. package/blog/en/history_of_i18n.md +304 -0
  30. package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
  31. package/blog/en/i18next_vs_intlayer.md +445 -0
  32. package/blog/en/is_i18next_outdated.md +1 -1
  33. package/blog/en/is_next-intl_outdated.md +1 -1
  34. package/blog/en/is_vue-i18n_outdated.md +1 -1
  35. package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
  36. package/blog/en/lingui_vs_intlayer.md +381 -0
  37. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  38. package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
  39. package/blog/en/next-intl_vs_intlayer.md +415 -0
  40. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  41. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  42. package/blog/en/vue-i18n_vs_intlayer.md +1 -1
  43. package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
  44. package/blog/en-GB/history_of_i18n.md +304 -0
  45. package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
  46. package/blog/en-GB/i18next_vs_intlayer.md +445 -0
  47. package/blog/en-GB/is_i18next_outdated.md +1 -1
  48. package/blog/en-GB/is_next-intl_outdated.md +1 -1
  49. package/blog/en-GB/is_vue-i18n_outdated.md +1 -1
  50. package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
  51. package/blog/en-GB/lingui_vs_intlayer.md +381 -0
  52. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  53. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
  54. package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
  55. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  56. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  57. package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
  58. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
  59. package/blog/es/history_of_i18n.md +304 -0
  60. package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
  61. package/blog/es/i18next_vs_intlayer.md +445 -0
  62. package/blog/es/is_i18next_outdated.md +1 -1
  63. package/blog/es/is_next-intl_outdated.md +1 -1
  64. package/blog/es/is_vue-i18n_outdated.md +1 -1
  65. package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
  66. package/blog/es/lingui_vs_intlayer.md +381 -0
  67. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  68. package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
  69. package/blog/es/next-intl_vs_intlayer.md +417 -0
  70. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  71. package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
  72. package/blog/fr/history_of_i18n.md +304 -0
  73. package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
  74. package/blog/fr/i18next_vs_intlayer.md +445 -0
  75. package/blog/fr/is_i18next_outdated.md +1 -1
  76. package/blog/fr/is_next-intl_outdated.md +1 -1
  77. package/blog/fr/is_vue-i18n_outdated.md +1 -1
  78. package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
  79. package/blog/fr/lingui_vs_intlayer.md +381 -0
  80. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  81. package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
  82. package/blog/fr/next-intl_vs_intlayer.md +417 -0
  83. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
  84. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
  85. package/blog/hi/history_of_i18n.md +304 -0
  86. package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
  87. package/blog/hi/i18next_vs_intlayer.md +445 -0
  88. package/blog/hi/is_i18next_outdated.md +1 -1
  89. package/blog/hi/is_next-intl_outdated.md +1 -1
  90. package/blog/hi/is_vue-i18n_outdated.md +1 -1
  91. package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
  92. package/blog/hi/lingui_vs_intlayer.md +381 -0
  93. package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
  94. package/blog/hi/next-intl_vs_intlayer.md +397 -0
  95. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  96. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  97. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  98. package/blog/id/history_of_i18n.md +304 -0
  99. package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
  100. package/blog/id/i18next_vs_intlayer.md +445 -0
  101. package/blog/id/is_i18next_outdated.md +1 -1
  102. package/blog/id/is_next-intl_outdated.md +1 -1
  103. package/blog/id/is_vue-i18n_outdated.md +1 -1
  104. package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
  105. package/blog/id/lingui_vs_intlayer.md +381 -0
  106. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  107. package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
  108. package/blog/id/next-intl_vs_intlayer.md +397 -0
  109. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  110. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
  111. package/blog/id/vue-i18n_vs_intlayer.md +1 -1
  112. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
  113. package/blog/it/history_of_i18n.md +304 -0
  114. package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
  115. package/blog/it/i18next_vs_intlayer.md +445 -0
  116. package/blog/it/is_i18next_outdated.md +1 -1
  117. package/blog/it/is_next-intl_outdated.md +1 -1
  118. package/blog/it/is_vue-i18n_outdated.md +1 -1
  119. package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
  120. package/blog/it/lingui_vs_intlayer.md +381 -0
  121. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  122. package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
  123. package/blog/it/next-intl_vs_intlayer.md +418 -0
  124. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  125. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
  126. package/blog/ja/history_of_i18n.md +304 -0
  127. package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
  128. package/blog/ja/i18next_vs_intlayer.md +447 -0
  129. package/blog/ja/is_i18next_outdated.md +1 -1
  130. package/blog/ja/is_next-intl_outdated.md +1 -1
  131. package/blog/ja/is_vue-i18n_outdated.md +1 -1
  132. package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
  133. package/blog/ja/lingui_vs_intlayer.md +381 -0
  134. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  135. package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
  136. package/blog/ja/next-intl_vs_intlayer.md +422 -0
  137. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  138. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  139. package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
  140. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
  141. package/blog/ko/history_of_i18n.md +304 -0
  142. package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
  143. package/blog/ko/i18next_vs_intlayer.md +447 -0
  144. package/blog/ko/is_i18next_outdated.md +1 -1
  145. package/blog/ko/is_next-intl_outdated.md +1 -1
  146. package/blog/ko/is_vue-i18n_outdated.md +1 -1
  147. package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
  148. package/blog/ko/lingui_vs_intlayer.md +381 -0
  149. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  150. package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
  151. package/blog/ko/next-intl_vs_intlayer.md +397 -0
  152. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  153. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  154. package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
  155. package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
  156. package/blog/pl/history_of_i18n.md +304 -0
  157. package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
  158. package/blog/pl/i18next_vs_intlayer.md +445 -0
  159. package/blog/pl/is_i18next_outdated.md +1 -1
  160. package/blog/pl/is_next-intl_outdated.md +1 -1
  161. package/blog/pl/is_vue-i18n_outdated.md +1 -1
  162. package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
  163. package/blog/pl/lingui_vs_intlayer.md +381 -0
  164. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  165. package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
  166. package/blog/pl/next-intl_vs_intlayer.md +397 -0
  167. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  168. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
  169. package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
  170. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
  171. package/blog/pt/history_of_i18n.md +304 -0
  172. package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
  173. package/blog/pt/i18next_vs_intlayer.md +445 -0
  174. package/blog/pt/is_i18next_outdated.md +1 -1
  175. package/blog/pt/is_next-intl_outdated.md +1 -1
  176. package/blog/pt/is_vue-i18n_outdated.md +1 -1
  177. package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
  178. package/blog/pt/lingui_vs_intlayer.md +381 -0
  179. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  180. package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
  181. package/blog/pt/next-intl_vs_intlayer.md +411 -0
  182. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  183. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
  184. package/blog/ru/history_of_i18n.md +304 -0
  185. package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
  186. package/blog/ru/i18next_vs_intlayer.md +445 -0
  187. package/blog/ru/is_i18next_outdated.md +1 -1
  188. package/blog/ru/is_next-intl_outdated.md +1 -1
  189. package/blog/ru/is_vue-i18n_outdated.md +1 -1
  190. package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
  191. package/blog/ru/lingui_vs_intlayer.md +381 -0
  192. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  193. package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
  194. package/blog/ru/next-intl_vs_intlayer.md +417 -0
  195. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  196. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
  197. package/blog/tr/history_of_i18n.md +304 -0
  198. package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
  199. package/blog/tr/i18next_vs_intlayer.md +445 -0
  200. package/blog/tr/is_i18next_outdated.md +1 -1
  201. package/blog/tr/is_next-intl_outdated.md +1 -1
  202. package/blog/tr/is_vue-i18n_outdated.md +1 -1
  203. package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
  204. package/blog/tr/lingui_vs_intlayer.md +381 -0
  205. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  206. package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
  207. package/blog/tr/next-intl_vs_intlayer.md +397 -0
  208. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  209. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  210. package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
  211. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
  212. package/blog/uk/history_of_i18n.md +304 -0
  213. package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
  214. package/blog/uk/i18next_vs_intlayer.md +445 -0
  215. package/blog/uk/is_i18next_outdated.md +1 -1
  216. package/blog/uk/is_next-intl_outdated.md +1 -1
  217. package/blog/uk/is_vue-i18n_outdated.md +1 -1
  218. package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
  219. package/blog/uk/lingui_vs_intlayer.md +381 -0
  220. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  221. package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
  222. package/blog/uk/next-intl_vs_intlayer.md +397 -0
  223. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  224. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
  225. package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
  226. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
  227. package/blog/vi/history_of_i18n.md +304 -0
  228. package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
  229. package/blog/vi/i18next_vs_intlayer.md +445 -0
  230. package/blog/vi/is_i18next_outdated.md +1 -1
  231. package/blog/vi/is_next-intl_outdated.md +1 -1
  232. package/blog/vi/is_vue-i18n_outdated.md +1 -1
  233. package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
  234. package/blog/vi/lingui_vs_intlayer.md +381 -0
  235. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  236. package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
  237. package/blog/vi/next-intl_vs_intlayer.md +397 -0
  238. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  239. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  240. package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
  241. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  242. package/blog/zh/history_of_i18n.md +304 -0
  243. package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
  244. package/blog/zh/i18next_vs_intlayer.md +445 -0
  245. package/blog/zh/is_i18next_outdated.md +1 -1
  246. package/blog/zh/is_next-intl_outdated.md +1 -1
  247. package/blog/zh/is_vue-i18n_outdated.md +1 -1
  248. package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
  249. package/blog/zh/lingui_vs_intlayer.md +381 -0
  250. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  251. package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
  252. package/blog/zh/next-intl_vs_intlayer.md +422 -0
  253. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  254. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  255. package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
  256. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
  257. package/dist/cjs/generated/blog.entry.cjs +180 -0
  258. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  259. package/dist/cjs/generated/docs.entry.cjs +0 -20
  260. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  261. package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
  262. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  263. package/dist/esm/generated/blog.entry.mjs +180 -0
  264. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  265. package/dist/esm/generated/docs.entry.mjs +0 -20
  266. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  267. package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
  268. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  269. package/dist/types/generated/blog.entry.d.ts +9 -0
  270. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  271. package/dist/types/generated/docs.entry.d.ts +0 -1
  272. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  273. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  274. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  275. package/docs/ar/benchmark/index.md +4 -1
  276. package/docs/ar/benchmark/nextjs.md +33 -28
  277. package/docs/ar/benchmark/solid.md +14 -11
  278. package/docs/ar/benchmark/svelte.md +13 -10
  279. package/docs/ar/benchmark/tanstack.md +30 -25
  280. package/docs/ar/benchmark/vue.md +12 -8
  281. package/docs/ar/cli/build.md +8 -1
  282. package/docs/ar/cli/configuration.md +3 -1
  283. package/docs/ar/cli/doc-review.md +8 -1
  284. package/docs/ar/cli/doc-translate.md +5 -1
  285. package/docs/ar/cli/extract.md +2 -1
  286. package/docs/ar/cli/fill.md +5 -1
  287. package/docs/ar/cli/index.md +4 -5
  288. package/docs/ar/cli/live.md +5 -1
  289. package/docs/ar/cli/login.md +2 -2
  290. package/docs/ar/cli/pull.md +5 -1
  291. package/docs/ar/cli/push.md +5 -1
  292. package/docs/ar/cli/scan.md +5 -1
  293. package/docs/ar/cli/standalone.md +5 -1
  294. package/docs/ar/cli/test.md +5 -1
  295. package/docs/ar/cli/watch.md +5 -1
  296. package/docs/ar/compat/i18n-js.md +1 -1
  297. package/docs/ar/compat/i18next.md +1 -1
  298. package/docs/ar/compat/lingui.md +1 -1
  299. package/docs/ar/compat/next-i18next.md +1 -1
  300. package/docs/ar/compat/next-intl.md +1 -1
  301. package/docs/ar/compat/next-translate.md +1 -1
  302. package/docs/ar/compat/ngx-translate.md +1 -1
  303. package/docs/ar/compat/nuxtjs-i18n.md +1 -1
  304. package/docs/ar/compat/polyglot.md +1 -1
  305. package/docs/ar/compat/react-i18next.md +1 -1
  306. package/docs/ar/compat/react-intl.md +1 -1
  307. package/docs/ar/compat/svelte-i18n.md +1 -1
  308. package/docs/ar/compat/transloco.md +1 -1
  309. package/docs/ar/compat/vue-i18n.md +1 -1
  310. package/docs/ar/interest_of_intlayer.md +1 -1
  311. package/docs/ar/intlayer_with_remix_3.md +543 -0
  312. package/docs/bn/cli/index.md +4 -5
  313. package/docs/bn/cli/scan.md +5 -1
  314. package/docs/bn/cli/standalone.md +5 -1
  315. package/docs/bn/interest_of_intlayer.md +1 -1
  316. package/docs/cs/cli/index.md +4 -5
  317. package/docs/cs/cli/scan.md +5 -1
  318. package/docs/cs/cli/standalone.md +5 -1
  319. package/docs/cs/interest_of_intlayer.md +1 -1
  320. package/docs/de/benchmark/index.md +4 -1
  321. package/docs/de/benchmark/nextjs.md +33 -28
  322. package/docs/de/benchmark/solid.md +14 -11
  323. package/docs/de/benchmark/svelte.md +13 -10
  324. package/docs/de/benchmark/tanstack.md +30 -25
  325. package/docs/de/benchmark/vue.md +12 -8
  326. package/docs/de/cli/build.md +8 -1
  327. package/docs/de/cli/configuration.md +3 -1
  328. package/docs/de/cli/doc-review.md +8 -1
  329. package/docs/de/cli/doc-translate.md +5 -1
  330. package/docs/de/cli/extract.md +2 -1
  331. package/docs/de/cli/fill.md +5 -1
  332. package/docs/de/cli/index.md +4 -5
  333. package/docs/de/cli/live.md +5 -1
  334. package/docs/de/cli/login.md +2 -2
  335. package/docs/de/cli/pull.md +5 -1
  336. package/docs/de/cli/push.md +5 -1
  337. package/docs/de/cli/scan.md +5 -1
  338. package/docs/de/cli/standalone.md +5 -1
  339. package/docs/de/cli/test.md +5 -1
  340. package/docs/de/cli/watch.md +5 -1
  341. package/docs/de/compat/i18n-js.md +1 -1
  342. package/docs/de/compat/i18next.md +1 -1
  343. package/docs/de/compat/lingui.md +1 -1
  344. package/docs/de/compat/next-i18next.md +1 -1
  345. package/docs/de/compat/next-intl.md +1 -1
  346. package/docs/de/compat/next-translate.md +1 -1
  347. package/docs/de/compat/ngx-translate.md +1 -1
  348. package/docs/de/compat/nuxtjs-i18n.md +1 -1
  349. package/docs/de/compat/polyglot.md +1 -1
  350. package/docs/de/compat/react-i18next.md +1 -1
  351. package/docs/de/compat/react-intl.md +1 -1
  352. package/docs/de/compat/svelte-i18n.md +1 -1
  353. package/docs/de/compat/transloco.md +1 -1
  354. package/docs/de/compat/vue-i18n.md +1 -1
  355. package/docs/de/interest_of_intlayer.md +1 -1
  356. package/docs/de/intlayer_with_remix_3.md +543 -0
  357. package/docs/en/benchmark/index.md +4 -1
  358. package/docs/en/benchmark/nextjs.md +33 -28
  359. package/docs/en/benchmark/solid.md +14 -11
  360. package/docs/en/benchmark/svelte.md +13 -10
  361. package/docs/en/benchmark/tanstack.md +31 -26
  362. package/docs/en/benchmark/vue.md +12 -8
  363. package/docs/en/cli/build.md +8 -1
  364. package/docs/en/cli/configuration.md +3 -1
  365. package/docs/en/cli/doc-review.md +8 -1
  366. package/docs/en/cli/doc-translate.md +5 -1
  367. package/docs/en/cli/extract.md +2 -1
  368. package/docs/en/cli/fill.md +5 -1
  369. package/docs/en/cli/index.md +4 -5
  370. package/docs/en/cli/live.md +5 -1
  371. package/docs/en/cli/login.md +2 -2
  372. package/docs/en/cli/pull.md +5 -1
  373. package/docs/en/cli/push.md +5 -1
  374. package/docs/en/cli/scan.md +5 -1
  375. package/docs/en/cli/standalone.md +5 -1
  376. package/docs/en/cli/test.md +5 -1
  377. package/docs/en/cli/watch.md +5 -1
  378. package/docs/en/compat/i18n-js.md +1 -1
  379. package/docs/en/compat/i18next.md +1 -1
  380. package/docs/en/compat/lingui.md +1 -1
  381. package/docs/en/compat/next-i18next.md +1 -1
  382. package/docs/en/compat/next-intl.md +1 -1
  383. package/docs/en/compat/next-translate.md +1 -1
  384. package/docs/en/compat/ngx-translate.md +1 -1
  385. package/docs/en/compat/nuxtjs-i18n.md +1 -1
  386. package/docs/en/compat/polyglot.md +1 -1
  387. package/docs/en/compat/react-i18next.md +1 -1
  388. package/docs/en/compat/react-intl.md +1 -1
  389. package/docs/en/compat/svelte-i18n.md +1 -1
  390. package/docs/en/compat/transloco.md +1 -1
  391. package/docs/en/compat/vue-i18n.md +1 -1
  392. package/docs/en/interest_of_intlayer.md +1 -1
  393. package/docs/en/intlayer_with_remix_3.md +103 -71
  394. package/docs/en-GB/benchmark/index.md +4 -1
  395. package/docs/en-GB/benchmark/nextjs.md +33 -28
  396. package/docs/en-GB/benchmark/solid.md +14 -11
  397. package/docs/en-GB/benchmark/svelte.md +13 -10
  398. package/docs/en-GB/benchmark/tanstack.md +30 -25
  399. package/docs/en-GB/benchmark/vue.md +12 -8
  400. package/docs/en-GB/cli/build.md +8 -1
  401. package/docs/en-GB/cli/configuration.md +3 -1
  402. package/docs/en-GB/cli/doc-review.md +8 -1
  403. package/docs/en-GB/cli/doc-translate.md +5 -1
  404. package/docs/en-GB/cli/extract.md +2 -1
  405. package/docs/en-GB/cli/fill.md +5 -1
  406. package/docs/en-GB/cli/index.md +4 -5
  407. package/docs/en-GB/cli/live.md +5 -1
  408. package/docs/en-GB/cli/login.md +2 -2
  409. package/docs/en-GB/cli/pull.md +5 -1
  410. package/docs/en-GB/cli/push.md +5 -1
  411. package/docs/en-GB/cli/scan.md +5 -1
  412. package/docs/en-GB/cli/standalone.md +5 -1
  413. package/docs/en-GB/cli/test.md +5 -1
  414. package/docs/en-GB/cli/watch.md +5 -1
  415. package/docs/en-GB/compat/i18n-js.md +1 -1
  416. package/docs/en-GB/compat/i18next.md +1 -1
  417. package/docs/en-GB/compat/lingui.md +1 -1
  418. package/docs/en-GB/compat/next-i18next.md +1 -1
  419. package/docs/en-GB/compat/next-intl.md +1 -1
  420. package/docs/en-GB/compat/next-translate.md +1 -1
  421. package/docs/en-GB/compat/ngx-translate.md +1 -1
  422. package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
  423. package/docs/en-GB/compat/polyglot.md +1 -1
  424. package/docs/en-GB/compat/react-i18next.md +1 -1
  425. package/docs/en-GB/compat/react-intl.md +1 -1
  426. package/docs/en-GB/compat/svelte-i18n.md +1 -1
  427. package/docs/en-GB/compat/transloco.md +1 -1
  428. package/docs/en-GB/compat/vue-i18n.md +1 -1
  429. package/docs/en-GB/interest_of_intlayer.md +1 -1
  430. package/docs/en-GB/intlayer_with_remix_3.md +558 -0
  431. package/docs/es/benchmark/index.md +4 -1
  432. package/docs/es/benchmark/nextjs.md +33 -28
  433. package/docs/es/benchmark/solid.md +14 -11
  434. package/docs/es/benchmark/svelte.md +13 -10
  435. package/docs/es/benchmark/tanstack.md +30 -25
  436. package/docs/es/benchmark/vue.md +12 -8
  437. package/docs/es/cli/build.md +8 -1
  438. package/docs/es/cli/configuration.md +3 -1
  439. package/docs/es/cli/doc-review.md +8 -1
  440. package/docs/es/cli/doc-translate.md +5 -1
  441. package/docs/es/cli/extract.md +2 -1
  442. package/docs/es/cli/fill.md +5 -1
  443. package/docs/es/cli/index.md +4 -5
  444. package/docs/es/cli/live.md +5 -1
  445. package/docs/es/cli/login.md +2 -2
  446. package/docs/es/cli/pull.md +5 -1
  447. package/docs/es/cli/push.md +5 -1
  448. package/docs/es/cli/scan.md +5 -1
  449. package/docs/es/cli/standalone.md +5 -1
  450. package/docs/es/cli/test.md +5 -1
  451. package/docs/es/cli/watch.md +5 -1
  452. package/docs/es/compat/i18n-js.md +1 -1
  453. package/docs/es/compat/i18next.md +1 -1
  454. package/docs/es/compat/lingui.md +1 -1
  455. package/docs/es/compat/next-i18next.md +1 -1
  456. package/docs/es/compat/next-intl.md +1 -1
  457. package/docs/es/compat/next-translate.md +1 -1
  458. package/docs/es/compat/ngx-translate.md +1 -1
  459. package/docs/es/compat/nuxtjs-i18n.md +1 -1
  460. package/docs/es/compat/polyglot.md +1 -1
  461. package/docs/es/compat/react-i18next.md +1 -1
  462. package/docs/es/compat/react-intl.md +1 -1
  463. package/docs/es/compat/svelte-i18n.md +1 -1
  464. package/docs/es/compat/transloco.md +1 -1
  465. package/docs/es/compat/vue-i18n.md +1 -1
  466. package/docs/es/interest_of_intlayer.md +1 -1
  467. package/docs/es/intlayer_with_remix_3.md +540 -0
  468. package/docs/fr/benchmark/index.md +4 -1
  469. package/docs/fr/benchmark/nextjs.md +33 -28
  470. package/docs/fr/benchmark/solid.md +14 -11
  471. package/docs/fr/benchmark/svelte.md +13 -10
  472. package/docs/fr/benchmark/tanstack.md +30 -25
  473. package/docs/fr/benchmark/vue.md +12 -8
  474. package/docs/fr/cli/build.md +8 -1
  475. package/docs/fr/cli/configuration.md +3 -1
  476. package/docs/fr/cli/doc-review.md +8 -1
  477. package/docs/fr/cli/doc-translate.md +5 -1
  478. package/docs/fr/cli/extract.md +2 -1
  479. package/docs/fr/cli/fill.md +5 -1
  480. package/docs/fr/cli/index.md +4 -5
  481. package/docs/fr/cli/live.md +5 -1
  482. package/docs/fr/cli/login.md +2 -2
  483. package/docs/fr/cli/pull.md +5 -1
  484. package/docs/fr/cli/push.md +5 -1
  485. package/docs/fr/cli/scan.md +5 -1
  486. package/docs/fr/cli/standalone.md +5 -1
  487. package/docs/fr/cli/test.md +5 -1
  488. package/docs/fr/cli/watch.md +5 -1
  489. package/docs/fr/compat/i18n-js.md +1 -1
  490. package/docs/fr/compat/i18next.md +1 -1
  491. package/docs/fr/compat/lingui.md +1 -1
  492. package/docs/fr/compat/next-i18next.md +1 -1
  493. package/docs/fr/compat/next-intl.md +1 -1
  494. package/docs/fr/compat/next-translate.md +1 -1
  495. package/docs/fr/compat/ngx-translate.md +1 -1
  496. package/docs/fr/compat/nuxtjs-i18n.md +1 -1
  497. package/docs/fr/compat/polyglot.md +1 -1
  498. package/docs/fr/compat/react-i18next.md +1 -1
  499. package/docs/fr/compat/react-intl.md +1 -1
  500. package/docs/fr/compat/svelte-i18n.md +1 -1
  501. package/docs/fr/compat/transloco.md +1 -1
  502. package/docs/fr/compat/vue-i18n.md +1 -1
  503. package/docs/fr/interest_of_intlayer.md +1 -1
  504. package/docs/fr/intlayer_with_remix_3.md +540 -0
  505. package/docs/hi/benchmark/index.md +4 -1
  506. package/docs/hi/benchmark/nextjs.md +33 -28
  507. package/docs/hi/benchmark/solid.md +14 -11
  508. package/docs/hi/benchmark/svelte.md +13 -10
  509. package/docs/hi/benchmark/tanstack.md +30 -25
  510. package/docs/hi/benchmark/vue.md +12 -8
  511. package/docs/hi/cli/build.md +8 -1
  512. package/docs/hi/cli/configuration.md +3 -1
  513. package/docs/hi/cli/doc-review.md +8 -1
  514. package/docs/hi/cli/doc-translate.md +5 -1
  515. package/docs/hi/cli/extract.md +2 -1
  516. package/docs/hi/cli/fill.md +5 -1
  517. package/docs/hi/cli/index.md +4 -5
  518. package/docs/hi/cli/live.md +5 -1
  519. package/docs/hi/cli/login.md +2 -2
  520. package/docs/hi/cli/pull.md +5 -1
  521. package/docs/hi/cli/push.md +5 -1
  522. package/docs/hi/cli/scan.md +5 -1
  523. package/docs/hi/cli/standalone.md +5 -1
  524. package/docs/hi/cli/test.md +5 -1
  525. package/docs/hi/cli/watch.md +5 -1
  526. package/docs/hi/compat/i18n-js.md +1 -1
  527. package/docs/hi/compat/i18next.md +1 -1
  528. package/docs/hi/compat/lingui.md +1 -1
  529. package/docs/hi/compat/next-i18next.md +1 -1
  530. package/docs/hi/compat/next-intl.md +1 -1
  531. package/docs/hi/compat/next-translate.md +1 -1
  532. package/docs/hi/compat/ngx-translate.md +1 -1
  533. package/docs/hi/compat/nuxtjs-i18n.md +1 -1
  534. package/docs/hi/compat/polyglot.md +1 -1
  535. package/docs/hi/compat/react-i18next.md +1 -1
  536. package/docs/hi/compat/react-intl.md +1 -1
  537. package/docs/hi/compat/svelte-i18n.md +1 -1
  538. package/docs/hi/compat/transloco.md +1 -1
  539. package/docs/hi/compat/vue-i18n.md +1 -1
  540. package/docs/hi/interest_of_intlayer.md +1 -1
  541. package/docs/hi/intlayer_with_remix_3.md +543 -0
  542. package/docs/id/benchmark/index.md +4 -1
  543. package/docs/id/benchmark/nextjs.md +33 -28
  544. package/docs/id/benchmark/solid.md +14 -11
  545. package/docs/id/benchmark/svelte.md +13 -10
  546. package/docs/id/benchmark/tanstack.md +30 -25
  547. package/docs/id/benchmark/vue.md +12 -8
  548. package/docs/id/cli/build.md +8 -1
  549. package/docs/id/cli/configuration.md +3 -1
  550. package/docs/id/cli/doc-review.md +8 -1
  551. package/docs/id/cli/doc-translate.md +5 -1
  552. package/docs/id/cli/extract.md +2 -1
  553. package/docs/id/cli/fill.md +5 -1
  554. package/docs/id/cli/index.md +4 -5
  555. package/docs/id/cli/live.md +5 -1
  556. package/docs/id/cli/login.md +2 -2
  557. package/docs/id/cli/pull.md +5 -1
  558. package/docs/id/cli/push.md +5 -1
  559. package/docs/id/cli/scan.md +5 -1
  560. package/docs/id/cli/standalone.md +5 -1
  561. package/docs/id/cli/test.md +5 -1
  562. package/docs/id/cli/watch.md +5 -1
  563. package/docs/id/compat/i18n-js.md +1 -1
  564. package/docs/id/compat/i18next.md +1 -1
  565. package/docs/id/compat/lingui.md +1 -1
  566. package/docs/id/compat/next-i18next.md +1 -1
  567. package/docs/id/compat/next-intl.md +1 -1
  568. package/docs/id/compat/next-translate.md +1 -1
  569. package/docs/id/compat/ngx-translate.md +1 -1
  570. package/docs/id/compat/nuxtjs-i18n.md +1 -1
  571. package/docs/id/compat/polyglot.md +1 -1
  572. package/docs/id/compat/react-i18next.md +1 -1
  573. package/docs/id/compat/react-intl.md +1 -1
  574. package/docs/id/compat/svelte-i18n.md +1 -1
  575. package/docs/id/compat/transloco.md +1 -1
  576. package/docs/id/compat/vue-i18n.md +1 -1
  577. package/docs/id/interest_of_intlayer.md +1 -1
  578. package/docs/id/intlayer_with_remix_3.md +566 -0
  579. package/docs/it/benchmark/index.md +4 -1
  580. package/docs/it/benchmark/nextjs.md +33 -28
  581. package/docs/it/benchmark/solid.md +14 -11
  582. package/docs/it/benchmark/svelte.md +13 -10
  583. package/docs/it/benchmark/tanstack.md +30 -25
  584. package/docs/it/benchmark/vue.md +12 -8
  585. package/docs/it/cli/build.md +8 -1
  586. package/docs/it/cli/configuration.md +3 -1
  587. package/docs/it/cli/doc-review.md +8 -1
  588. package/docs/it/cli/doc-translate.md +5 -1
  589. package/docs/it/cli/extract.md +2 -1
  590. package/docs/it/cli/fill.md +5 -1
  591. package/docs/it/cli/index.md +4 -5
  592. package/docs/it/cli/live.md +5 -1
  593. package/docs/it/cli/login.md +2 -2
  594. package/docs/it/cli/pull.md +5 -1
  595. package/docs/it/cli/push.md +5 -1
  596. package/docs/it/cli/scan.md +5 -1
  597. package/docs/it/cli/standalone.md +5 -1
  598. package/docs/it/cli/test.md +5 -1
  599. package/docs/it/cli/watch.md +5 -1
  600. package/docs/it/compat/i18n-js.md +1 -1
  601. package/docs/it/compat/i18next.md +1 -1
  602. package/docs/it/compat/lingui.md +1 -1
  603. package/docs/it/compat/next-i18next.md +1 -1
  604. package/docs/it/compat/next-intl.md +1 -1
  605. package/docs/it/compat/next-translate.md +1 -1
  606. package/docs/it/compat/ngx-translate.md +1 -1
  607. package/docs/it/compat/nuxtjs-i18n.md +1 -1
  608. package/docs/it/compat/polyglot.md +1 -1
  609. package/docs/it/compat/react-i18next.md +1 -1
  610. package/docs/it/compat/react-intl.md +1 -1
  611. package/docs/it/compat/svelte-i18n.md +1 -1
  612. package/docs/it/compat/transloco.md +1 -1
  613. package/docs/it/compat/vue-i18n.md +1 -1
  614. package/docs/it/interest_of_intlayer.md +1 -1
  615. package/docs/it/intlayer_with_remix_3.md +558 -0
  616. package/docs/ja/benchmark/index.md +4 -1
  617. package/docs/ja/benchmark/nextjs.md +33 -28
  618. package/docs/ja/benchmark/solid.md +14 -11
  619. package/docs/ja/benchmark/svelte.md +13 -10
  620. package/docs/ja/benchmark/tanstack.md +30 -25
  621. package/docs/ja/benchmark/vue.md +12 -8
  622. package/docs/ja/cli/build.md +8 -1
  623. package/docs/ja/cli/configuration.md +3 -1
  624. package/docs/ja/cli/doc-review.md +8 -1
  625. package/docs/ja/cli/doc-translate.md +5 -1
  626. package/docs/ja/cli/extract.md +2 -1
  627. package/docs/ja/cli/fill.md +5 -1
  628. package/docs/ja/cli/index.md +4 -5
  629. package/docs/ja/cli/live.md +5 -1
  630. package/docs/ja/cli/login.md +2 -2
  631. package/docs/ja/cli/pull.md +5 -1
  632. package/docs/ja/cli/push.md +5 -1
  633. package/docs/ja/cli/scan.md +5 -1
  634. package/docs/ja/cli/standalone.md +5 -1
  635. package/docs/ja/cli/test.md +5 -1
  636. package/docs/ja/cli/watch.md +5 -1
  637. package/docs/ja/compat/i18n-js.md +1 -1
  638. package/docs/ja/compat/i18next.md +1 -1
  639. package/docs/ja/compat/lingui.md +1 -1
  640. package/docs/ja/compat/next-i18next.md +1 -1
  641. package/docs/ja/compat/next-intl.md +1 -1
  642. package/docs/ja/compat/next-translate.md +1 -1
  643. package/docs/ja/compat/ngx-translate.md +1 -1
  644. package/docs/ja/compat/nuxtjs-i18n.md +1 -1
  645. package/docs/ja/compat/polyglot.md +1 -1
  646. package/docs/ja/compat/react-i18next.md +1 -1
  647. package/docs/ja/compat/react-intl.md +1 -1
  648. package/docs/ja/compat/svelte-i18n.md +1 -1
  649. package/docs/ja/compat/transloco.md +1 -1
  650. package/docs/ja/compat/vue-i18n.md +1 -1
  651. package/docs/ja/interest_of_intlayer.md +1 -1
  652. package/docs/ja/intlayer_with_remix_3.md +558 -0
  653. package/docs/ko/benchmark/index.md +4 -1
  654. package/docs/ko/benchmark/nextjs.md +33 -28
  655. package/docs/ko/benchmark/solid.md +14 -11
  656. package/docs/ko/benchmark/svelte.md +13 -10
  657. package/docs/ko/benchmark/tanstack.md +30 -25
  658. package/docs/ko/benchmark/vue.md +12 -8
  659. package/docs/ko/cli/build.md +8 -1
  660. package/docs/ko/cli/configuration.md +3 -1
  661. package/docs/ko/cli/doc-review.md +8 -1
  662. package/docs/ko/cli/doc-translate.md +5 -1
  663. package/docs/ko/cli/extract.md +2 -1
  664. package/docs/ko/cli/fill.md +5 -1
  665. package/docs/ko/cli/index.md +4 -5
  666. package/docs/ko/cli/live.md +5 -1
  667. package/docs/ko/cli/login.md +2 -2
  668. package/docs/ko/cli/pull.md +5 -1
  669. package/docs/ko/cli/push.md +5 -1
  670. package/docs/ko/cli/scan.md +5 -1
  671. package/docs/ko/cli/standalone.md +5 -1
  672. package/docs/ko/cli/test.md +5 -1
  673. package/docs/ko/cli/watch.md +5 -1
  674. package/docs/ko/compat/i18n-js.md +1 -1
  675. package/docs/ko/compat/i18next.md +1 -1
  676. package/docs/ko/compat/lingui.md +1 -1
  677. package/docs/ko/compat/next-i18next.md +1 -1
  678. package/docs/ko/compat/next-intl.md +1 -1
  679. package/docs/ko/compat/next-translate.md +1 -1
  680. package/docs/ko/compat/ngx-translate.md +1 -1
  681. package/docs/ko/compat/nuxtjs-i18n.md +1 -1
  682. package/docs/ko/compat/polyglot.md +1 -1
  683. package/docs/ko/compat/react-i18next.md +1 -1
  684. package/docs/ko/compat/react-intl.md +1 -1
  685. package/docs/ko/compat/svelte-i18n.md +1 -1
  686. package/docs/ko/compat/transloco.md +1 -1
  687. package/docs/ko/compat/vue-i18n.md +1 -1
  688. package/docs/ko/interest_of_intlayer.md +1 -1
  689. package/docs/ko/intlayer_with_remix_3.md +543 -0
  690. package/docs/nl/cli/index.md +4 -5
  691. package/docs/nl/cli/scan.md +5 -1
  692. package/docs/nl/cli/standalone.md +5 -1
  693. package/docs/nl/interest_of_intlayer.md +1 -1
  694. package/docs/pl/benchmark/index.md +4 -1
  695. package/docs/pl/benchmark/nextjs.md +33 -28
  696. package/docs/pl/benchmark/solid.md +14 -11
  697. package/docs/pl/benchmark/svelte.md +13 -10
  698. package/docs/pl/benchmark/tanstack.md +30 -25
  699. package/docs/pl/benchmark/vue.md +12 -8
  700. package/docs/pl/cli/build.md +8 -1
  701. package/docs/pl/cli/configuration.md +3 -1
  702. package/docs/pl/cli/doc-review.md +8 -1
  703. package/docs/pl/cli/doc-translate.md +5 -1
  704. package/docs/pl/cli/extract.md +2 -1
  705. package/docs/pl/cli/fill.md +5 -1
  706. package/docs/pl/cli/index.md +4 -5
  707. package/docs/pl/cli/live.md +5 -1
  708. package/docs/pl/cli/login.md +2 -2
  709. package/docs/pl/cli/pull.md +5 -1
  710. package/docs/pl/cli/push.md +5 -1
  711. package/docs/pl/cli/scan.md +5 -1
  712. package/docs/pl/cli/standalone.md +5 -1
  713. package/docs/pl/cli/test.md +5 -1
  714. package/docs/pl/cli/watch.md +5 -1
  715. package/docs/pl/compat/i18n-js.md +1 -1
  716. package/docs/pl/compat/i18next.md +1 -1
  717. package/docs/pl/compat/lingui.md +1 -1
  718. package/docs/pl/compat/next-i18next.md +1 -1
  719. package/docs/pl/compat/next-intl.md +1 -1
  720. package/docs/pl/compat/next-translate.md +1 -1
  721. package/docs/pl/compat/ngx-translate.md +1 -1
  722. package/docs/pl/compat/nuxtjs-i18n.md +1 -1
  723. package/docs/pl/compat/polyglot.md +1 -1
  724. package/docs/pl/compat/react-i18next.md +1 -1
  725. package/docs/pl/compat/react-intl.md +1 -1
  726. package/docs/pl/compat/svelte-i18n.md +1 -1
  727. package/docs/pl/compat/transloco.md +1 -1
  728. package/docs/pl/compat/vue-i18n.md +1 -1
  729. package/docs/pl/interest_of_intlayer.md +1 -1
  730. package/docs/pl/intlayer_with_remix_3.md +551 -0
  731. package/docs/pt/benchmark/index.md +4 -1
  732. package/docs/pt/benchmark/nextjs.md +33 -28
  733. package/docs/pt/benchmark/solid.md +14 -11
  734. package/docs/pt/benchmark/svelte.md +13 -10
  735. package/docs/pt/benchmark/tanstack.md +30 -25
  736. package/docs/pt/benchmark/vue.md +12 -8
  737. package/docs/pt/cli/build.md +8 -1
  738. package/docs/pt/cli/configuration.md +3 -1
  739. package/docs/pt/cli/doc-review.md +8 -1
  740. package/docs/pt/cli/doc-translate.md +5 -1
  741. package/docs/pt/cli/extract.md +2 -1
  742. package/docs/pt/cli/fill.md +5 -1
  743. package/docs/pt/cli/index.md +4 -5
  744. package/docs/pt/cli/live.md +5 -1
  745. package/docs/pt/cli/login.md +2 -2
  746. package/docs/pt/cli/pull.md +5 -1
  747. package/docs/pt/cli/push.md +5 -1
  748. package/docs/pt/cli/scan.md +5 -1
  749. package/docs/pt/cli/standalone.md +5 -1
  750. package/docs/pt/cli/test.md +5 -1
  751. package/docs/pt/cli/watch.md +5 -1
  752. package/docs/pt/compat/i18n-js.md +1 -1
  753. package/docs/pt/compat/i18next.md +1 -1
  754. package/docs/pt/compat/lingui.md +1 -1
  755. package/docs/pt/compat/next-i18next.md +1 -1
  756. package/docs/pt/compat/next-intl.md +1 -1
  757. package/docs/pt/compat/next-translate.md +1 -1
  758. package/docs/pt/compat/ngx-translate.md +1 -1
  759. package/docs/pt/compat/nuxtjs-i18n.md +1 -1
  760. package/docs/pt/compat/polyglot.md +1 -1
  761. package/docs/pt/compat/react-i18next.md +1 -1
  762. package/docs/pt/compat/react-intl.md +1 -1
  763. package/docs/pt/compat/svelte-i18n.md +1 -1
  764. package/docs/pt/compat/transloco.md +1 -1
  765. package/docs/pt/compat/vue-i18n.md +1 -1
  766. package/docs/pt/interest_of_intlayer.md +1 -1
  767. package/docs/pt/intlayer_with_remix_3.md +558 -0
  768. package/docs/ru/benchmark/index.md +4 -1
  769. package/docs/ru/benchmark/nextjs.md +33 -28
  770. package/docs/ru/benchmark/solid.md +14 -11
  771. package/docs/ru/benchmark/svelte.md +13 -10
  772. package/docs/ru/benchmark/tanstack.md +30 -25
  773. package/docs/ru/benchmark/vue.md +12 -8
  774. package/docs/ru/cli/build.md +8 -1
  775. package/docs/ru/cli/configuration.md +3 -1
  776. package/docs/ru/cli/doc-review.md +8 -1
  777. package/docs/ru/cli/doc-translate.md +5 -1
  778. package/docs/ru/cli/extract.md +2 -1
  779. package/docs/ru/cli/fill.md +5 -1
  780. package/docs/ru/cli/index.md +4 -5
  781. package/docs/ru/cli/live.md +5 -1
  782. package/docs/ru/cli/login.md +2 -2
  783. package/docs/ru/cli/pull.md +5 -1
  784. package/docs/ru/cli/push.md +5 -1
  785. package/docs/ru/cli/scan.md +5 -1
  786. package/docs/ru/cli/standalone.md +5 -1
  787. package/docs/ru/cli/test.md +5 -1
  788. package/docs/ru/cli/watch.md +5 -1
  789. package/docs/ru/compat/i18n-js.md +1 -1
  790. package/docs/ru/compat/i18next.md +1 -1
  791. package/docs/ru/compat/lingui.md +1 -1
  792. package/docs/ru/compat/next-i18next.md +1 -1
  793. package/docs/ru/compat/next-intl.md +1 -1
  794. package/docs/ru/compat/next-translate.md +1 -1
  795. package/docs/ru/compat/ngx-translate.md +1 -1
  796. package/docs/ru/compat/nuxtjs-i18n.md +1 -1
  797. package/docs/ru/compat/polyglot.md +1 -1
  798. package/docs/ru/compat/react-i18next.md +1 -1
  799. package/docs/ru/compat/react-intl.md +1 -1
  800. package/docs/ru/compat/svelte-i18n.md +1 -1
  801. package/docs/ru/compat/transloco.md +1 -1
  802. package/docs/ru/compat/vue-i18n.md +1 -1
  803. package/docs/ru/interest_of_intlayer.md +1 -1
  804. package/docs/ru/intlayer_with_remix_3.md +558 -0
  805. package/docs/tr/benchmark/index.md +4 -1
  806. package/docs/tr/benchmark/nextjs.md +33 -28
  807. package/docs/tr/benchmark/solid.md +14 -11
  808. package/docs/tr/benchmark/svelte.md +13 -10
  809. package/docs/tr/benchmark/tanstack.md +30 -25
  810. package/docs/tr/benchmark/vue.md +12 -8
  811. package/docs/tr/cli/build.md +8 -1
  812. package/docs/tr/cli/configuration.md +3 -1
  813. package/docs/tr/cli/doc-review.md +8 -1
  814. package/docs/tr/cli/doc-translate.md +5 -1
  815. package/docs/tr/cli/extract.md +2 -1
  816. package/docs/tr/cli/fill.md +5 -1
  817. package/docs/tr/cli/index.md +4 -5
  818. package/docs/tr/cli/live.md +5 -1
  819. package/docs/tr/cli/login.md +2 -2
  820. package/docs/tr/cli/pull.md +5 -1
  821. package/docs/tr/cli/push.md +5 -1
  822. package/docs/tr/cli/scan.md +5 -1
  823. package/docs/tr/cli/standalone.md +5 -1
  824. package/docs/tr/cli/test.md +5 -1
  825. package/docs/tr/cli/watch.md +5 -1
  826. package/docs/tr/compat/i18n-js.md +1 -1
  827. package/docs/tr/compat/i18next.md +1 -1
  828. package/docs/tr/compat/lingui.md +1 -1
  829. package/docs/tr/compat/next-i18next.md +1 -1
  830. package/docs/tr/compat/next-intl.md +1 -1
  831. package/docs/tr/compat/next-translate.md +1 -1
  832. package/docs/tr/compat/ngx-translate.md +1 -1
  833. package/docs/tr/compat/nuxtjs-i18n.md +1 -1
  834. package/docs/tr/compat/polyglot.md +1 -1
  835. package/docs/tr/compat/react-i18next.md +1 -1
  836. package/docs/tr/compat/react-intl.md +1 -1
  837. package/docs/tr/compat/svelte-i18n.md +1 -1
  838. package/docs/tr/compat/transloco.md +1 -1
  839. package/docs/tr/compat/vue-i18n.md +1 -1
  840. package/docs/tr/interest_of_intlayer.md +1 -1
  841. package/docs/tr/intlayer_with_remix_3.md +566 -0
  842. package/docs/uk/benchmark/index.md +4 -1
  843. package/docs/uk/benchmark/nextjs.md +33 -28
  844. package/docs/uk/benchmark/solid.md +14 -11
  845. package/docs/uk/benchmark/svelte.md +13 -10
  846. package/docs/uk/benchmark/tanstack.md +30 -25
  847. package/docs/uk/benchmark/vue.md +12 -8
  848. package/docs/uk/cli/build.md +8 -1
  849. package/docs/uk/cli/configuration.md +3 -1
  850. package/docs/uk/cli/doc-review.md +8 -1
  851. package/docs/uk/cli/doc-translate.md +5 -1
  852. package/docs/uk/cli/extract.md +2 -1
  853. package/docs/uk/cli/fill.md +5 -1
  854. package/docs/uk/cli/index.md +4 -5
  855. package/docs/uk/cli/live.md +5 -1
  856. package/docs/uk/cli/login.md +2 -2
  857. package/docs/uk/cli/pull.md +5 -1
  858. package/docs/uk/cli/push.md +5 -1
  859. package/docs/uk/cli/scan.md +5 -1
  860. package/docs/uk/cli/standalone.md +5 -1
  861. package/docs/uk/cli/test.md +5 -1
  862. package/docs/uk/cli/watch.md +5 -1
  863. package/docs/uk/compat/i18n-js.md +1 -1
  864. package/docs/uk/compat/i18next.md +1 -1
  865. package/docs/uk/compat/lingui.md +1 -1
  866. package/docs/uk/compat/next-i18next.md +1 -1
  867. package/docs/uk/compat/next-intl.md +1 -1
  868. package/docs/uk/compat/next-translate.md +1 -1
  869. package/docs/uk/compat/ngx-translate.md +1 -1
  870. package/docs/uk/compat/nuxtjs-i18n.md +1 -1
  871. package/docs/uk/compat/polyglot.md +1 -1
  872. package/docs/uk/compat/react-i18next.md +1 -1
  873. package/docs/uk/compat/react-intl.md +1 -1
  874. package/docs/uk/compat/svelte-i18n.md +1 -1
  875. package/docs/uk/compat/transloco.md +1 -1
  876. package/docs/uk/compat/vue-i18n.md +1 -1
  877. package/docs/uk/interest_of_intlayer.md +1 -1
  878. package/docs/uk/intlayer_with_remix_3.md +566 -0
  879. package/docs/ur/cli/index.md +4 -5
  880. package/docs/ur/cli/scan.md +5 -1
  881. package/docs/ur/cli/standalone.md +5 -1
  882. package/docs/ur/interest_of_intlayer.md +1 -1
  883. package/docs/vi/benchmark/index.md +4 -1
  884. package/docs/vi/benchmark/nextjs.md +33 -28
  885. package/docs/vi/benchmark/solid.md +14 -11
  886. package/docs/vi/benchmark/svelte.md +13 -10
  887. package/docs/vi/benchmark/tanstack.md +30 -25
  888. package/docs/vi/benchmark/vue.md +12 -8
  889. package/docs/vi/cli/build.md +8 -1
  890. package/docs/vi/cli/configuration.md +3 -1
  891. package/docs/vi/cli/doc-review.md +8 -1
  892. package/docs/vi/cli/doc-translate.md +5 -1
  893. package/docs/vi/cli/extract.md +2 -1
  894. package/docs/vi/cli/fill.md +5 -1
  895. package/docs/vi/cli/index.md +4 -5
  896. package/docs/vi/cli/live.md +5 -1
  897. package/docs/vi/cli/login.md +2 -2
  898. package/docs/vi/cli/pull.md +5 -1
  899. package/docs/vi/cli/push.md +5 -1
  900. package/docs/vi/cli/scan.md +5 -1
  901. package/docs/vi/cli/standalone.md +5 -1
  902. package/docs/vi/cli/test.md +5 -1
  903. package/docs/vi/cli/watch.md +5 -1
  904. package/docs/vi/compat/i18n-js.md +1 -1
  905. package/docs/vi/compat/i18next.md +1 -1
  906. package/docs/vi/compat/lingui.md +1 -1
  907. package/docs/vi/compat/next-i18next.md +1 -1
  908. package/docs/vi/compat/next-intl.md +1 -1
  909. package/docs/vi/compat/next-translate.md +1 -1
  910. package/docs/vi/compat/ngx-translate.md +1 -1
  911. package/docs/vi/compat/nuxtjs-i18n.md +1 -1
  912. package/docs/vi/compat/polyglot.md +1 -1
  913. package/docs/vi/compat/react-i18next.md +1 -1
  914. package/docs/vi/compat/react-intl.md +1 -1
  915. package/docs/vi/compat/svelte-i18n.md +1 -1
  916. package/docs/vi/compat/transloco.md +1 -1
  917. package/docs/vi/compat/vue-i18n.md +1 -1
  918. package/docs/vi/interest_of_intlayer.md +1 -1
  919. package/docs/vi/intlayer_with_remix_3.md +566 -0
  920. package/docs/zh/benchmark/index.md +4 -1
  921. package/docs/zh/benchmark/nextjs.md +33 -28
  922. package/docs/zh/benchmark/solid.md +14 -11
  923. package/docs/zh/benchmark/svelte.md +13 -10
  924. package/docs/zh/benchmark/tanstack.md +30 -25
  925. package/docs/zh/benchmark/vue.md +12 -8
  926. package/docs/zh/cli/build.md +8 -1
  927. package/docs/zh/cli/configuration.md +3 -1
  928. package/docs/zh/cli/doc-review.md +8 -1
  929. package/docs/zh/cli/doc-translate.md +5 -1
  930. package/docs/zh/cli/extract.md +2 -1
  931. package/docs/zh/cli/fill.md +5 -1
  932. package/docs/zh/cli/index.md +4 -5
  933. package/docs/zh/cli/live.md +5 -1
  934. package/docs/zh/cli/login.md +2 -2
  935. package/docs/zh/cli/pull.md +5 -1
  936. package/docs/zh/cli/push.md +5 -1
  937. package/docs/zh/cli/scan.md +5 -1
  938. package/docs/zh/cli/standalone.md +5 -1
  939. package/docs/zh/cli/test.md +5 -1
  940. package/docs/zh/cli/watch.md +5 -1
  941. package/docs/zh/compat/i18n-js.md +1 -1
  942. package/docs/zh/compat/i18next.md +1 -1
  943. package/docs/zh/compat/lingui.md +1 -1
  944. package/docs/zh/compat/next-i18next.md +1 -1
  945. package/docs/zh/compat/next-intl.md +1 -1
  946. package/docs/zh/compat/next-translate.md +1 -1
  947. package/docs/zh/compat/ngx-translate.md +1 -1
  948. package/docs/zh/compat/nuxtjs-i18n.md +1 -1
  949. package/docs/zh/compat/polyglot.md +1 -1
  950. package/docs/zh/compat/react-i18next.md +1 -1
  951. package/docs/zh/compat/react-intl.md +1 -1
  952. package/docs/zh/compat/svelte-i18n.md +1 -1
  953. package/docs/zh/compat/transloco.md +1 -1
  954. package/docs/zh/compat/vue-i18n.md +1 -1
  955. package/docs/zh/interest_of_intlayer.md +1 -1
  956. package/docs/zh/intlayer_with_remix_3.md +558 -0
  957. package/docs/zh-TW/interest_of_intlayer.md +1 -1
  958. package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
  959. package/frequent_questions/de/claude_code_token_consumption.md +152 -0
  960. package/frequent_questions/en/claude_code_token_consumption.md +152 -0
  961. package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
  962. package/frequent_questions/es/claude_code_token_consumption.md +152 -0
  963. package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
  964. package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
  965. package/frequent_questions/id/claude_code_token_consumption.md +152 -0
  966. package/frequent_questions/it/claude_code_token_consumption.md +152 -0
  967. package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
  968. package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
  969. package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
  970. package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
  971. package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
  972. package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
  973. package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
  974. package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
  975. package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
  976. package/package.json +7 -7
  977. package/src/generated/blog.entry.ts +180 -0
  978. package/src/generated/docs.entry.ts +0 -20
  979. package/src/generated/frequentQuestions.entry.ts +20 -0
  980. package/docs/ar/cli/ci.md +0 -186
  981. package/docs/de/cli/ci.md +0 -186
  982. package/docs/en/cli/ci.md +0 -216
  983. package/docs/en-GB/cli/ci.md +0 -186
  984. package/docs/es/cli/ci.md +0 -186
  985. package/docs/fr/cli/ci.md +0 -186
  986. package/docs/hi/cli/ci.md +0 -186
  987. package/docs/id/cli/ci.md +0 -186
  988. package/docs/it/cli/ci.md +0 -186
  989. package/docs/ja/cli/ci.md +0 -186
  990. package/docs/ko/cli/ci.md +0 -186
  991. package/docs/pl/cli/ci.md +0 -186
  992. package/docs/pt/cli/ci.md +0 -186
  993. package/docs/ru/cli/ci.md +0 -186
  994. package/docs/tr/cli/ci.md +0 -186
  995. package/docs/uk/cli/ci.md +0 -186
  996. package/docs/vi/cli/ci.md +0 -186
  997. package/docs/zh/cli/ci.md +0 -186
@@ -0,0 +1,445 @@
1
+ ---
2
+ createdAt: 2026-09-13
3
+ updatedAt: 2026-09-13
4
+ title: "i18next vs Intlayer: Benchmark & Vergleich 2026"
5
+ description: "react-i18next und next-i18next im Benchmark gegen Intlayer auf Next.js und TanStack Start. Bundle-Größe, Inhaltslecks, Reaktivität beim Sprachwechsel und Entwicklererfahrung."
6
+ keywords:
7
+ - i18next
8
+ - react-i18next
9
+ - next-i18next
10
+ - Intlayer
11
+ - Internationalisierung
12
+ - i18n
13
+ - Benchmark
14
+ - Bundle-Größe
15
+ - Blog
16
+ - Next.js
17
+ - TanStack Start
18
+ - JavaScript
19
+ - React
20
+ slugs:
21
+ - blog
22
+ - i18next-vs-intlayer
23
+ author: aymericzip
24
+ ---
25
+
26
+ # i18next VS Intlayer | React & Next.js Internationalisierungs-Benchmark (i18n)
27
+
28
+ `i18next` ist das am weitesten verbreitete i18n-Framework im JavaScript-Ökosystem. Über `react-i18next` und `next-i18next` betreibt es einen großen Teil der React- und Next.js-Anwendungen. Intlayer ist eine compilerbasierte, komponentenzentrierte Alternative.
29
+
30
+ Dieser Artikel vergleicht beide anhand echter Messwerte anstelle von Feature-Listen. Die Zahlen stammen aus dem [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom), einer Open-Source-Suite, die dieselbe Anwendung mit jeder Bibliothek erstellt und misst, was der Browser tatsächlich herunterlädt.
31
+
32
+ <TOC/>
33
+
34
+ > **tl;dr**: `i18next` ist die schwerste Runtime im Benchmark: **+77 KB gzip pro Seite** auf Next.js im Standard-Setup (naiv), **+22 KB** nach vollständiger Namespace- und Lazy-Loading-Optimierung. Intlayer fügt lediglich **+0.3 KB** hinzu. Jede `i18next`-Konfiguration mit Ausnahme der vollständig isolierten (scoped) liefert **~90% Zeichenketten fremder Seiten** aus; Intlayer liefert standardmäßig **0%** aus. Der Sprachwechsel mit einem dynamisch nachgeladenen Backend dauerte **123-185 ms** mit `react-i18next` gegenüber **3-4 ms** mit Intlayer. Der Adapter `@intlayer/next-i18next` behält die `i18next`-API bei und erzielte **150.7 KB** pro Seite gegenüber **218.5 KB** für das Original.
35
+
36
+ ## Kurz zusammengefasst
37
+
38
+ - **i18next / react-i18next / next-i18next** - Ausgereift, pluginreich, framework-agnostisch. Namespaces, Spracherkenner, Backends, ICU über Plugins, `<Trans>` für Rich Content. Inhalte sind zentral in `locales/{lng}/{ns}.json` organisiert. Mächtig, aber jede Optimierung (Namespace-Aufteilung, seitenweises Laden, Typsicherheit) ist Konfigurationsaufwand, den Sie selbst verwalten müssen.
39
+ - **Intlayer** - Komponentenzentriertes Inhaltsmodell. `.content.ts`-Wörterbücher liegen direkt neben der jeweiligen Komponente, ein Build-Time-Compiler übernimmt Tree-Shaking und Lazy Loading pro Komponente und Sprache, strikte TypeScript-Typen werden aus den Inhalten generiert und fehlende Übersetzungen führen zu Build-Fehlern. Bietet Middleware, SEO-Helfer, einen visuellen Editor / CMS und KI-gestützte Übersetzung.
40
+
41
+ | Bibliothek | GitHub-Sterne | Commits insgesamt | Letzter Commit | Erste Version | NPM-Version | NPM-Downloads |
42
+ | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
43
+ | `aymericzip/intlayer` | [![GitHub Repo stars](https://img.shields.io/github/stars/aymericzip/intlayer?style=for-the-badge&label=%E2%AD%90%20stars)](https://github.com/aymericzip/intlayer/stargazers) | [![GitHub commit activity](https://img.shields.io/github/commit-activity/t/aymericzip/intlayer?style=for-the-badge&label=commits)](https://github.com/aymericzip/intlayer/commits) | [![Last Commit](https://img.shields.io/github/last-commit/aymericzip/intlayer?style=for-the-badge)](https://github.com/aymericzip/intlayer/commits) | April 2024 | [![npm](https://img.shields.io/npm/v/intlayer?style=for-the-badge)](https://www.npmjs.com/package/intlayer) | [![npm downloads](https://img.shields.io/npm/dm/intlayer?style=for-the-badge)](https://www.npmjs.com/package/intlayer) |
44
+ | `i18next/i18next` | [![GitHub Repo stars](https://img.shields.io/github/stars/i18next/i18next?style=for-the-badge&label=%E2%AD%90%20stars)](https://github.com/i18next/i18next/stargazers) | [![GitHub commit activity](https://img.shields.io/github/commit-activity/t/i18next/i18next?style=for-the-badge&label=commits)](https://github.com/i18next/i18next/commits) | [![Last Commit](https://img.shields.io/github/last-commit/i18next/i18next?style=for-the-badge)](https://github.com/i18next/i18next/commits) | Jan 2012 | [![npm](https://img.shields.io/npm/v/i18next?style=for-the-badge)](https://www.npmjs.com/package/i18next) | [![npm downloads](https://img.shields.io/npm/dm/i18next?style=for-the-badge)](https://www.npmjs.com/package/i18next) |
45
+ | `i18next/react-i18next` | [![GitHub Repo stars](https://img.shields.io/github/stars/i18next/react-i18next?style=for-the-badge&label=%E2%AD%90%20stars)](https://github.com/i18next/react-i18next/stargazers) | [![GitHub commit activity](https://img.shields.io/github/commit-activity/t/i18next/react-i18next?style=for-the-badge&label=commits)](https://github.com/i18next/react-i18next/commits) | [![Last Commit](https://img.shields.io/github/last-commit/i18next/react-i18next?style=for-the-badge)](https://github.com/i18next/react-i18next/commits) | Dez 2015 | [![npm](https://img.shields.io/npm/v/react-i18next?style=for-the-badge)](https://www.npmjs.com/package/react-i18next) | [![npm downloads](https://img.shields.io/npm/dm/react-i18next?style=for-the-badge)](https://www.npmjs.com/package/react-i18next) |
46
+ | `i18next/next-i18next` | [![GitHub Repo stars](https://img.shields.io/github/stars/i18next/next-i18next?style=for-the-badge&label=%E2%AD%90%20stars)](https://github.com/i18next/next-i18next/stargazers) | [![GitHub commit activity](https://img.shields.io/github/commit-activity/t/i18next/next-i18next?style=for-the-badge&label=commits)](https://github.com/i18next/next-i18next/commits) | [![Last Commit](https://img.shields.io/github/last-commit/i18next/next-i18next?style=for-the-badge)](https://github.com/i18next/next-i18next/commits) | Nov 2018 | [![npm](https://img.shields.io/npm/v/next-i18next?style=for-the-badge)](https://www.npmjs.com/package/next-i18next) | [![npm downloads](https://img.shields.io/npm/dm/next-i18next?style=for-the-badge)](https://www.npmjs.com/package/next-i18next) |
47
+
48
+ > Badges aktualisieren sich automatisch. Snapshots variieren im Zeitverlauf.
49
+
50
+ ## Direkter Funktionsvergleich
51
+
52
+ | Feature | Intlayer (`react-intlayer` / `next-intlayer`) | i18next (`react-i18next` / `next-i18next`) |
53
+ | ----------------------------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
54
+ | **Übersetzungen direkt an Komponenten** | ✅ Ja, `.content.ts` direkt bei der jeweiligen Komponente | ❌ Nein, zentralisiert in `locales/{lng}/{ns}.json` |
55
+ | **TypeScript-Integration** | ✅ Strikte Typen automatisch aus dem Inhalt generiert | ⚠️ Basis; strikte Schlüssel benötigen `CustomTypeOptions`-Erweiterung |
56
+ | **Erkennung fehlender Übersetzungen** | ✅ TypeScript-Fehler + Build-Time-Fehler/Warnung | ⚠️ Runtime-Fallback (`saveMissing`, Schlüssel-Echo) |
57
+ | **Rich Content (JSX / Markdown / Komponenten)** | ✅ Direkte Unterstützung | ⚠️ `<Trans>` mit indizierten Platzhaltern |
58
+ | **ICU-Unterstützung** | ⚠️ In Arbeit | ⚠️ Über Plugin (`i18next-icu`) |
59
+ | **Pluralisierung** | ✅ Auf Aufzählungen basierende Muster | ✅ Suffixe `_one` / `_other` (Intl.PluralRules) |
60
+ | **Formatierung (Datum, Zahlen, Währungen)** | ✅ `useNumber`, `useDate`, ... (Intl integriert) | ⚠️ Interpolations-Formatierer oder manuelles `Intl.*` |
61
+ | **Lokalisiertes Routing & Middleware** | ✅ Integrierter Proxy / Middleware, `getMultilingualUrls` | ⚠️ Nicht im Core; eigene Middleware oder Drittanbieter-Lösung |
62
+ | **SEO-Helfer (hreflang, Sitemap, robots)** | ✅ Integrierte Hilfsfunktionen | ❌ Manuell |
63
+ | **Synchrone Server-Komponenten** | ✅ `useIntlayer` aus `next-intlayer/server` in jeder Server-Komponente einsetzbar | ⚠️ `getFixedT` auf Seitenebene, danach `t` als Props weiterreichen |
64
+ | **Tree-Shaking (nur genutzten Inhalt liefern)** | ✅ Pro Komponente, pro Sprache, automatisch durch Compiler | ⚠️ Manuell: Namespaces + `ns`-Liste pro Seite + Backend |
65
+ | **Lazy Loading** | ✅ `importMode: 'dynamic'` (eine Zeile Konfiguration) | ✅ Über Backend-Plugins (`i18next-resources-to-backend`, `i18next-http-backend`) |
66
+ | **Ungenutzte Inhalte bereinigen** | ✅ Verwaiste Wörterbücher werden beim Build entfernt | ❌ Nicht integriert |
67
+ | **Fehlende Übersetzungen testen (CLI / CI)** | ✅ `npx intlayer content test` | ⚠️ `i18next-parser` / Drittanbieter-Tools |
68
+ | **KI-gestützte Übersetzung** | ✅ Integriert, nutzt Ihre eigenen API-Schlüssel | ❌ Nein (Locize ist ein separater, kostenpflichtiger Dienst) |
69
+ | **Visueller Editor / CMS** | ✅ Kostenloser visueller Editor + optionales CMS | ❌ Nein (Locize / externe Plattformen) |
70
+ | **MCP-Server & Agent Skills** | ✅ Ja | ❌ Nein |
71
+ | **Ökosystem & Community** | ⚠️ Jünger, aber rasant wachsend | ✅ Größtes und ausgereiftestes Ökosystem |
72
+
73
+ ## Der Benchmark
74
+
75
+ ### Was gemessen wurde
76
+
77
+ Die [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom)-Suite erstellt **dieselbe Anwendung** mit jeder Bibliothek: **10 Seiten** (Startseite, Über uns, Blog, Karriere, Kontakt, FAQ, Preise, Produkte, Einstellungen, Team), **10 Sprachen** (`en`, `fr`, `es`, `de`, `it`, `pt`, `zh`, `ja`, `ko`, `ru`), identische Komponenten und identische Inhalte. Die Seiten werden in `en` und `fr` gemessen. Jede Bibliothek wird in bis zu vier **Ladestrategien** implementiert:
78
+
79
+ | Strategie | Beschreibung | Typischer Einsatz |
80
+ | ------------------ | ----------------------------------------------------------------------------------------- | ------------------------------------------- |
81
+ | **static** | Alle Sprachen und Seiten zusammen gebündelt (`resources` in `init()` eingebunden) | Schnelle Prototypen, KI-generierter Code |
82
+ | **dynamic** | Nur die aktive Sprache wird über ein Backend geladen, aber alle Namespaces gleichzeitig | Die meisten Projekte |
83
+ | **scoped-static** | Ein Namespace pro Route, alle vorab gebündelt | Selten |
84
+ | **scoped-dynamic** | Ein Namespace pro Route + Lazy Loading über Backend. Nur aktuelle Seite, aktuelle Sprache | Anwendungen mit strengem Performance-Budget |
85
+
86
+ Intlayer benötigt keine "scoped"-Variante: Der Compiler grenzt den Inhalt **automatisch pro Komponente** ein, sodass bereits die Zeilen `static` und `dynamic` optimiert sind.
87
+
88
+ Für jeden Build erfasst die Suite:
89
+
90
+ - **Lib size**: gzip-Größe einer leeren Komponente, die nur die i18n-Bibliothek importiert.
91
+ - **Page JS**: gzip-JavaScript pro Seite heruntergeladen, gemittelt über alle Seiten und Sprachen.
92
+ - **Locale leak %**: Anteil der übersetzten Zeichenketten im JS, die zu einer Sprache gehören, die der Nutzer **nicht** betrachtet.
93
+ - **Page leak %**: Anteil der übersetzten Zeichenketten im JS, die zu einer Seite gehören, auf der sich der Nutzer **nicht** befindet.
94
+ - **Component avg**: durchschnittliche gzip-Größe jeder isoliert kompilierten Komponente.
95
+ - **E2E reactivity**: gemessene Zeitspanne zwischen Sprachauswahl und Aktualisierung von `html[lang]` im DOM (Playwright, 5 Iterationen).
96
+ - **Hydration**: Dauer der React-Hydratisierungsphase.
97
+
98
+ > Die nachfolgenden Werte stammen aus dem Durchlauf vom **2026-09-12** mit `next-i18next` 16.3.0, `react-i18next` 17.0.13 und `intlayer` 9.5.1. Die Testanwendung ist bewusst kompakt gehalten (einige Dutzend Strings pro Sprache), daher spiegeln die Leckage-Werte ein **Muster** wider: Sie wachsen proportional zu Ihrem Inhalt, während die Runtime-Kosten konstant bleiben.
99
+
100
+ ### Ergebnisse auf Next.js (`next-i18next`)
101
+
102
+ | Bibliothek | Strategie | Lib size (gz) | Page JS avg (gz) | Locale leak | Page leak | Component avg (gz) | E2E-Reaktivität | Hydration |
103
+ | --------------------------------- | -------------- | ------------: | ---------------: | ----------: | --------: | -----------------: | --------------: | --------: |
104
+ | **base** (ohne i18n) | - | 0.0 KB | 141.0 KB | 0.0% | 0.0% | 0.9 KB | 13.4 ms | 11.8 ms |
105
+ | `next-i18next` | static | 19.7 KB | 218.5 KB | 0.0% | 89.8% | 78.5 KB | 16.4 ms | 15.6 ms |
106
+ | `next-i18next` | dynamic | 19.7 KB | 169.5 KB | 50.0% | 89.8% | 26.1 KB | 15.4 ms | 27.7 ms |
107
+ | `next-i18next` | scoped-static | 19.7 KB | 220.1 KB | 0.0% | 89.8% | 78.9 KB | 16.4 ms | 14.7 ms |
108
+ | `next-i18next` | scoped-dynamic | 19.7 KB | 163.4 KB | 0.0% | 0.0% | 27.1 KB | 15.9 ms | 15.1 ms |
109
+ | **`next-intlayer`** | static | **5.5 KB** | **141.3 KB** | **0.0%** | **0.0%** | **8.5 KB** | **15.5 ms** | 16.9 ms |
110
+ | **`next-intlayer`** | dynamic | **5.5 KB** | **141.3 KB** | **0.0%** | **0.0%** | **6.9 KB** | **15.3 ms** | 15.9 ms |
111
+ | `@intlayer/next-i18next` (compat) | static | 9.4 KB | 150.7 KB | 0.0% | 0.0% | 9.7 KB | 10.7 ms | 11.3 ms |
112
+ | `@intlayer/next-i18next` (compat) | dynamic | 9.4 KB | 150.7 KB | 0.0% | 0.0% | 9.7 KB | 11.9 ms | 10.6 ms |
113
+
114
+ **Interpretation der Messwerte**
115
+
116
+ - **Runtime-Kosten.** Der `i18next`-Core samt `react-i18next` ist die größte gemessene Runtime: **19.7 KB gzip** für eine leere Komponente gegenüber 5.5 KB bei `next-intlayer`.
117
+ - **Das Standard-Setup ist kostspielig.** Das direkte Einbetten von `resources` in `init()` führt zu **218.5 KB pro Seite**, +77.5 KB über der Basisanwendung. Jede Seite trägt sämtliche Namespaces mit.
118
+ - **Optimierung erfordert viel Aufwand.** Der Wechsel zu einem Backend (`dynamic`) spart 49 KB ein, lässt aber weiterhin **90% an Zeichenketten fremder Seiten durchsickern**, und in dieser Konfiguration gehört die Hälfte der Strings zur falschen Sprache. Erst die zusätzliche Aufteilung in routenbasierte Namespaces (`scoped-dynamic`) eliminiert die Lecks vollständig bei **163.4 KB** - immer noch **+22.4 KB pro Seite** mehr als Intlayer mit 141.3 KB, das ganz ohne manuelle Konfiguration auskam.
119
+ - **Komponentengröße.** Eine Komponente mit `useTranslation()` kompiliert je nach Konfiguration auf 26 bis 79 KB; dieselbe Komponente mit `useIntlayer()` benötigt lediglich 6.9 KB.
120
+ - **Die Hydratisierung** steigt im `dynamic`-Setup auf 27.7 ms an: Die i18next-Instanz initialisiert sich und löst ihr Backend auf dem Client auf, bevor React die Hydratisierung abschließen kann.
121
+
122
+ ### Ergebnisse auf TanStack Start (`react-i18next`)
123
+
124
+ Dieselbe Testanwendung auf TanStack Start mit reinem `react-i18next`, wodurch Next.js-spezifische Eigenheiten aus dem Vergleich herausgefiltert werden.
125
+
126
+ | Bibliothek | Strategie | Lib size (gz) | Page JS avg (gz) | Locale leak | Page leak | Component avg (gz) | E2E-Reaktivität | Hydration |
127
+ | -------------------- | -------------- | ------------: | ---------------: | ----------: | --------: | -----------------: | --------------: | --------: |
128
+ | **base** (ohne i18n) | - | 0.0 KB | 111.0 KB | 0.0% | 0.0% | 0.7 KB | 8.1 ms | 21.6 ms |
129
+ | `react-i18next` | static | 18.4 KB | 180.3 KB | 50.0% | 89.8% | 24.3 KB | 12.9 ms | 85.1 ms |
130
+ | `react-i18next` | dynamic | 18.4 KB | 136.4 KB | 23.1% | 89.8% | 24.8 KB | 123.1 ms | 32.9 ms |
131
+ | `react-i18next` | scoped-static | 18.4 KB | 184.2 KB | 50.7% | 89.8% | 25.3 KB | 185.1 ms | 25.2 ms |
132
+ | `react-i18next` | scoped-dynamic | 18.4 KB | 127.2 KB | 0.0% | 0.0% | 26.7 KB | 17.6 ms | 11.3 ms |
133
+ | **`intlayer`** | static | **5.0 KB** | **125.8 KB** | 50.0% | **0.0%** | **8.1 KB** | **3.2 ms** | 11.5 ms |
134
+ | **`intlayer`** | dynamic | **5.0 KB** | **118.6 KB** | **0.0%** | **0.0%** | **6.3 KB** | **3.6 ms** | 14.1 ms |
135
+
136
+ **Interpretation der Messwerte**
137
+
138
+ - Die unoptimierte `react-i18next`-App liefert **+69 KB pro Seite** mehr als die Basisanwendung aus, und die Hydratisierung dauert **85 ms** (das Vierfache der Basis), da der gesamte Ressourcenbaum vor dem ersten Rendern auf dem Client analysiert und registriert werden muss.
139
+ - **Sprachwechsel macht Backend-Latenzen spürbar.** Werden Ressourcen erst bei Bedarf geladen, erfordert der Sprachwechsel einen zusätzlichen Netzwerk-Roundtrip vor der `html[lang]`-Aktualisierung: **123 ms** bei `dynamic`, **185 ms** bei `scoped-static`. Intlayer aktualisiert das DOM in beiden Modi in **3-4 ms**: Der Wechsel erfolgt sofort und blockiert nicht auf Netzwerkanfragen.
140
+ - Die voll optimierte `scoped-dynamic`-Konfiguration erreicht 0% Leckage bei 127.2 KB, liegt aber immer noch **+8.6 KB** über Intlayers `dynamic`-Zeile - und erforderte dafür eine Routen-zu-Namespace-Zuordnung, ein Backend und Suspense-Grenzen pro Route.
141
+ - Intlayers `static`-Zeile weist bereits **0% Seitenleckage** auf, weil ausschließlich die von den Komponenten der jeweiligen Seite importierten Wörterbücher gebündelt werden. Das Aktivieren von `importMode: 'dynamic'` eliminiert auch die Sprachleckage vollständig.
142
+ - **Komponentengröße**: 24-27 KB pro Komponente mit `react-i18next` gegenüber 6-8 KB mit Intlayer. `useTranslation()` bindet jede Komponente an die globale i18next-Instanz.
143
+
144
+ ## Woher kommt der Unterschied? Globale Instanz vs. kompilierte Wörterbücher
145
+
146
+ `i18next` wurde 2012 als Runtime konzipiert: Eine globale Instanz verwaltet einen Ressourcenspeicher, Plugins erweitern ihn und `t()` schlägt Schlüssel zur Renderzeit nach. Das macht es sehr flexibel (für jedes Framework, Backend und Format), führt aber auch zu Mehrgewicht:
147
+
148
+ ```bash
149
+ .
150
+ ├── i18n.ts # createInstance().use(...).use(...).init({...})
151
+ └── src
152
+ ├── locales
153
+ │ ├── en
154
+ │ │ ├── common.json
155
+ │ │ ├── home.json
156
+ │ │ └── about.json
157
+ │ └── fr
158
+ │ ├── common.json
159
+ │ ├── home.json
160
+ │ └── about.json
161
+ ├── components
162
+ │ └── Counter.tsx # useTranslation("about") + t("counter.label")
163
+ └── app
164
+ └── [locale]
165
+ └── about
166
+ └── page.tsx # muss wissen, dass es ["common", "about"] benötigt
167
+ ```
168
+
169
+ Die Instanz kann nicht wissen, welche Schlüssel eine Komponente anfordern wird. Optimierung bedeutet daher: **Sie** unterteilen Kataloge in Namespaces, **Sie** listen die Namespaces für jede Seite auf und **Sie** halten diese Liste synchron, wenn Komponenten verschoben werden. Wie die [Benchmark-Hinweise](https://github.com/intlayer-org/benchmark-bloom/blob/main/report/NOTE.md) festhalten: "Typsicherheit zu wahren und exakt zu wissen, welcher Namespace auf welcher Seite eingebunden werden muss, ist ein Albtraum".
170
+
171
+ Intlayer verzichtet auf die globale Instanz. Inhalte werden direkt bei der Komponente deklariert und der Compiler löst den Abhängigkeitsgraphen zur Build-Zeit auf:
172
+
173
+ ```bash
174
+ .
175
+ ├── intlayer.config.ts
176
+ └── src
177
+ ├── components
178
+ │ └── Counter
179
+ │ ├── index.tsx # useIntlayer("counter")
180
+ │ └── index.content.ts
181
+ └── app
182
+ └── [locale]
183
+ └── about
184
+ ├── page.tsx
185
+ └── page.content.ts
186
+ ```
187
+
188
+ `@intlayer/swc` / `@intlayer/babel` erkennt, welche Komponente welches Wörterbuch importiert, bündelt nur diese und nur für die aktive Sprache und verwirft Unbenutztes. Das "scoped-dynamic"-Muster ist das automatische Ergebnis des Builds und keine mühsame manuelle Disziplin mehr.
189
+
190
+ > Um die Werte der `dynamic`-Zeile zu erhalten, setzen Sie `dictionary.importMode: 'dynamic'` in `intlayer.config.ts`. Details finden Sie in der [Dokumentation zur Bundle-Optimierung](https://intlayer.org/de/doc/concept/bundle-optimization).
191
+
192
+ ## Entwicklererfahrung
193
+
194
+ ### Einrichtung
195
+
196
+ **next-i18next (App Router)**
197
+
198
+ ```ts fileName="src/app/i18n/server.ts"
199
+ import { createInstance } from "i18next";
200
+ import { initReactI18next } from "react-i18next/initReactI18next";
201
+ import resourcesToBackend from "i18next-resources-to-backend";
202
+ import { defaultLocale } from "@/i18n.config";
203
+
204
+ const backend = resourcesToBackend(
205
+ (locale: string, namespace: string) =>
206
+ import(`../../locales/${locale}/${namespace}.json`)
207
+ );
208
+
209
+ export const initI18next = async (
210
+ locale: string,
211
+ namespaces: string[] = ["common"]
212
+ ) => {
213
+ const i18n = createInstance();
214
+ await i18n
215
+ .use(initReactI18next)
216
+ .use(backend)
217
+ .init({
218
+ lng: locale,
219
+ fallbackLng: defaultLocale,
220
+ ns: namespaces,
221
+ defaultNS: "common",
222
+ interpolation: { escapeValue: false },
223
+ react: { useSuspense: false },
224
+ });
225
+ return i18n;
226
+ };
227
+ ```
228
+
229
+ Dazu kommt ein clientseitiger `I18nProvider`, der die Instanz mit identischen Optionen instanziiert, `generateStaticParams` und eine `namespaces`-Liste auf jeder Seite.
230
+
231
+ **Intlayer**
232
+
233
+ ```ts fileName="intlayer.config.ts"
234
+ import { type IntlayerConfig, Locales } from "intlayer";
235
+
236
+ const config: IntlayerConfig = {
237
+ internationalization: {
238
+ locales: [Locales.ENGLISH, Locales.FRENCH],
239
+ defaultLocale: Locales.ENGLISH,
240
+ },
241
+ };
242
+
243
+ export default config;
244
+ ```
245
+
246
+ ```tsx fileName="src/app/[locale]/layout.tsx"
247
+ import { getHTMLTextDir } from "intlayer";
248
+ import { IntlayerClientProvider, type NextLayoutIntlayer } from "next-intlayer";
249
+
250
+ const LocaleLayout: NextLayoutIntlayer = async ({ children, params }) => {
251
+ const { locale } = await params;
252
+
253
+ return (
254
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
255
+ <body>
256
+ <IntlayerClientProvider locale={locale}>
257
+ {children}
258
+ </IntlayerClientProvider>
259
+ </body>
260
+ </html>
261
+ );
262
+ };
263
+
264
+ export default LocaleLayout;
265
+ ```
266
+
267
+ ### Client-Komponente
268
+
269
+ **react-i18next**
270
+
271
+ ```json fileName="src/locales/en/about.json"
272
+ {
273
+ "counter": {
274
+ "label": "Counter",
275
+ "increment": "Increment"
276
+ }
277
+ }
278
+ ```
279
+
280
+ ```tsx fileName="src/components/Counter.tsx"
281
+ "use client";
282
+
283
+ import { useState } from "react";
284
+ import { useTranslation } from "react-i18next";
285
+
286
+ export const Counter = () => {
287
+ const { t, i18n } = useTranslation("about");
288
+ const [count, setCount] = useState(0);
289
+ const numberFormat = new Intl.NumberFormat(i18n.language);
290
+
291
+ return (
292
+ <div>
293
+ <p>{numberFormat.format(count)}</p>
294
+ <button
295
+ aria-label={t("counter.label")}
296
+ onClick={() => setCount((c) => c + 1)}
297
+ >
298
+ {t("counter.increment")}
299
+ </button>
300
+ </div>
301
+ );
302
+ };
303
+ ```
304
+
305
+ > Die Seite, die diese Komponente einbindet, muss den Namespace `about` laden, und `t("counter.label")` bleibt ein einfacher String, sofern `CustomTypeOptions` nicht erweitert wird.
306
+
307
+ **Intlayer**
308
+
309
+ ```ts fileName="src/components/Counter/index.content.ts"
310
+ import { t, type Dictionary } from "intlayer";
311
+
312
+ const counterContent = {
313
+ key: "counter",
314
+ content: {
315
+ label: t({ en: "Counter", fr: "Compteur" }),
316
+ increment: t({ en: "Increment", fr: "Incrémenter" }),
317
+ },
318
+ } satisfies Dictionary;
319
+
320
+ export default counterContent;
321
+ ```
322
+
323
+ ```tsx fileName="src/components/Counter/index.tsx"
324
+ "use client";
325
+
326
+ import { useState } from "react";
327
+ import { useIntlayer } from "next-intlayer";
328
+ import { useNumber } from "next-intlayer/format";
329
+
330
+ export const Counter = () => {
331
+ const { label, increment } = useIntlayer("counter");
332
+ const number = useNumber();
333
+ const [count, setCount] = useState(0);
334
+
335
+ return (
336
+ <div>
337
+ <p>{number(count)}</p>
338
+ <button aria-label={label} onClick={() => setCount((c) => c + 1)}>
339
+ {increment}
340
+ </button>
341
+ </div>
342
+ );
343
+ };
344
+ ```
345
+
346
+ `label` und `increment` sind strikt typisiert; Tippfehler werden als TypeScript-Fehler gemeldet und fehlende Übersetzungen verhindern den Build.
347
+
348
+ ### Synchrone Server-Komponente
349
+
350
+ **next-i18next**
351
+
352
+ ```tsx fileName="src/components/ServerCounter.tsx"
353
+ type ServerCounterProps = {
354
+ t: (key: string) => string;
355
+ locale: string;
356
+ count: number;
357
+ };
358
+
359
+ export const ServerCounter = ({ t, locale, count }: ServerCounterProps) => (
360
+ <div>
361
+ <p>{new Intl.NumberFormat(locale).format(count)}</p>
362
+ <button aria-label={t("counter.label")}>{t("counter.increment")}</button>
363
+ </div>
364
+ );
365
+ ```
366
+
367
+ Die Seite ruft `i18n.getFixedT(locale, "about")` auf und reicht `t` und `locale` als Props nach unten weiter.
368
+
369
+ **Intlayer**
370
+
371
+ ```tsx fileName="src/components/ServerCounter.tsx"
372
+ import { useIntlayer } from "next-intlayer/server";
373
+ import { useNumber } from "next-intlayer/server/format";
374
+
375
+ export const ServerCounter = ({ count }: { count: number }) => {
376
+ const { label, increment } = useIntlayer("counter");
377
+ const number = useNumber();
378
+
379
+ return (
380
+ <div>
381
+ <p>{number(count)}</p>
382
+ <button aria-label={label}>{increment}</button>
383
+ </div>
384
+ );
385
+ };
386
+ ```
387
+
388
+ ## i18next-API behalten, Intlayer-Performance nutzen
389
+
390
+ Sie müssen keine Komponenten neu schreiben, um von den Benchmark-Ergebnissen zu profitieren. `@intlayer/i18next`, `@intlayer/react-i18next` und `@intlayer/next-i18next` sind Drop-in-Adapter: `useTranslation`, `t()`, `<Trans>`, `{{interpolation}}`, `_one` / `_other`-Plurale, Kontext-Suffixe und `returnObjects` funktionieren weiterhin, bereitgestellt aus vorkompilierten Intlayer-Wörterbüchern.
391
+
392
+ ```ts fileName="next.config.ts"
393
+ import type { NextConfig } from "next";
394
+ import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin";
395
+
396
+ const withIntlayer = createNextI18nPlugin();
397
+
398
+ const nextConfig: NextConfig = {};
399
+
400
+ export default withIntlayer(nextConfig);
401
+ ```
402
+
403
+ ```ts fileName="vite.config.ts"
404
+ import { defineConfig } from "vite";
405
+ import { reactI18nextVitePlugin } from "@intlayer/react-i18next/plugin";
406
+
407
+ export default defineConfig({
408
+ plugins: [reactI18nextVitePlugin()],
409
+ });
410
+ ```
411
+
412
+ Im Benchmark sank die angepasste Version derselben Next.js-Anwendung von **218.5 KB auf 150.7 KB** pro Seite, von **78.5 KB auf 9.7 KB** pro Komponente, von **~90% Inhaltslecks auf 0%** und die Hydratisierung von 15.6 ms auf 11.3 ms - bei unverändertem Anwendungscode. Ihre bestehenden `locales/{lng}/{ns}.json`-Dateien können über das JSON-Sync-Plugin weiterhin die Source of Truth bleiben.
413
+
414
+ Siehe die Migrationsanleitungen: [i18next](https://intlayer.org/de/doc/migration/i18next), [react-i18next](https://intlayer.org/de/doc/migration/react-i18next), [next-i18next](https://intlayer.org/de/doc/migration/next-i18next).
415
+
416
+ ## Wann welche Lösung wählen?
417
+
418
+ - **Wählen Sie i18next**, wenn Sie dessen Plugin-Ökosystem (Detektoren, Backends, ICU, Locize) benötigen, Lokalisierung auch außerhalb von React stattfindet (Node-Dienste, Vanilla JS, andere Frameworks), Ihr Team bereits damit vertraut ist oder Übersetzungsplattformen `locales/{lng}/{ns}.json` erwarten. Planen Sie die Zeit ein, um Kataloge in Namespaces aufzuteilen, ein Backend einzubinden und das Seiten-Mapping manuell zu pflegen.
419
+ - **Wählen Sie Intlayer**, wenn Sie **komponentenzentrierte Inhalte**, **strikte TypeScript-Typen**, **Build-Time-Fehler bei fehlenden Übersetzungen**, **automatisiertes Tree-Shaking und Lazy Loading**, sofortige Sprachwechsel, synchrone Server-Komponenten und integrierte redaktionelle Werkzeuge (visueller Editor, CMS, KI-Übersetzung, MCP-Server) wünschen. Besonders wertvoll für modulare Codebases und Design-Systeme.
420
+ - **Wählen Sie die `@intlayer/*-i18next`-Adapter**, wenn Sie bereits auf i18next setzen und die Bundle- sowie Reaktivitätsgewinne ohne Refactoring realisieren möchten.
421
+
422
+ ## Verwandte Vergleiche
423
+
424
+ - [next-intl vs Intlayer](https://intlayer.org/de/blog/next-intl-vs-intlayer) (gleicher Benchmark)
425
+ - [Lingui vs Intlayer](https://intlayer.org/de/blog/lingui-vs-intlayer) (gleicher Benchmark)
426
+ - [vue-i18n vs Intlayer Benchmark](https://intlayer.org/de/blog/vue-i18n-vs-intlayer-benchmark) (gleicher Benchmark)
427
+ - [next-i18next vs next-intl vs Intlayer](https://intlayer.org/de/blog/next-i18next-vs-next-intl-vs-intlayer)
428
+ - [react-i18next vs react-intl vs Intlayer](https://intlayer.org/de/blog/react-i18next-vs-react-intl-vs-intlayer)
429
+ - [Ist i18next veraltet?](https://intlayer.org/de/blog/is-i18next-outdated)
430
+
431
+ ## GitHub-Sterne
432
+
433
+ GitHub-Sterne sind ein aussagekräftiger Indikator für Popularität, Vertrauen der Community und Zukunftsfähigkeit eines Projekts. Sie messen zwar nicht direkt die Codequalität, zeigen aber, wie viele Entwickler das Projekt schätzen, verfolgen und einsetzen.
434
+
435
+ [![Star-Verlaufsgrafik](https://api.star-history.com/chart?repos=i18next%2Fi18next%2Ci18next%2Freact-i18next%2Ci18next%2Fnext-i18next%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#i18next/i18next&i18next/react-i18next&i18next/next-i18next&aymericzip/intlayer)
436
+
437
+ ## Fazit
438
+
439
+ `i18next` hat seinen Platz verdient: Es läuft überall, bietet Plugins für jeden Anwendungsfall und wird seit über zehn Jahren gepflegt. Der Benchmark verdeutlicht jedoch die Kosten dieser runtime-fokussierten Architektur. Das typische Setup kostet **+70-77 KB gzip pro Seite**, transportiert **~90% Daten fremder Seiten** mit sich und benötigt bei Lazy Loading **über 100 ms** für einen Sprachwechsel. 0% Leckage ist machbar, erfordert aber ein Backend, getrennte Namespaces pro Route und manuelle Pflege - und bleibt dennoch **+9-22 KB** schwerer als Intlayer.
440
+
441
+ Intlayer verlagert diese Arbeit in den Compiler. Wörterbücher pro Komponente, Lazy Loading pro Sprache und das Bereinigen ungenutzter Inhalte sind Ergebnisse des Builds statt manueller Konventionen. Auf derselben Anwendung: **+0.3 KB pro Seite**, **0% Leckage**, Komponenten **3 bis 10 Mal kleiner** und Sprachwechsel in **3-4 ms**.
442
+
443
+ Alle Rohdaten, Testanwendungen und Skripte stehen im [Benchmark Bloom Repository](https://github.com/intlayer-org/benchmark-bloom) bereit. Probieren Sie es selbst aus.
444
+
445
+ Weitere Details finden Sie in der Dokumentation ['Warum Intlayer?'](https://intlayer.org/de/doc/why).
@@ -70,7 +70,7 @@ Aktivität in den vergangenen zwölf Monaten:
70
70
  | `i18next` core | 2.626 | **259** | Kleinere Fixes |
71
71
  | Intlayer | 7.156 | **4.343** | Compiler, IDE-Tooling & KI-Engine |
72
72
 
73
- [![Star History Chart](https://api.star-history.com/chart?repos=i18next%2Fi18next%2Ci18next%2Freact-i18next%2Ci18next%2Fnext-i18next%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#i18next/i18next&i18next/react-i18next&i18next/next-i18next&aymericzip/intlayer)
73
+ [![Star History Chart](https://api.star-history.com/chart?repos=i18next%2Fi18next%2Ci18next%2Freact-i18next%2Ci18next%2Fnext-i18next%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#i18next/i18next&i18next/react-i18next&i18next/next-i18next&aymericzip/intlayer)
74
74
 
75
75
  Eine fokussierte Bibliothek kann stabil sein. Doch i18n-Tooling entwickelt sich stetig: Moderne Bundler entfernen ungenutzte Texte bereits beim Build, LLMs übersetzen direkt in der CI und Editoren nutzen dedizierte Language Server (LSP) sowie KI-Assistenten. Wegen seines reinen Runtime-Modells kann i18next diese Neuerungen kaum übernehmen.
76
76
 
@@ -66,7 +66,7 @@ Die letzten 12 Monate:
66
66
  - `amannn/next-intl`: **187 Commits** (überwiegend Versionsanpassungen und kleinere Patches).
67
67
  - `aymericzip/intlayer`: **4.343 Commits** (kontinuierliche Entwicklung an Compilern, IDE-Erweiterungen, MCP-Servern und Übersetzungs-Engines).
68
68
 
69
- [![Star History Chart](https://api.star-history.com/chart?repos=amannn%2Fnext-intl%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#amannn/next-intl&aymericzip/intlayer)
69
+ [![Star History Chart](https://api.star-history.com/chart?repos=amannn%2Fnext-intl%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#amannn/next-intl&aymericzip/intlayer)
70
70
 
71
71
  Eine fokussierte Bibliothek kann stabil sein. Doch i18n hat sich gewandelt: Compiler bereinigen ungenutzte Texte beim Build, LLMs automatisieren Workflows in der CI und Editoren nutzen Language Server (LSP) sowie KI-Agenten. Eine reine Laufzeit-Architektur kann diese Vorteile kaum ausschöpfen.
72
72
 
@@ -64,7 +64,7 @@ Vergangene zwölf Monate:
64
64
  - `intlify/vue-i18n`: **259 Commits** (Pflege für Vue 3 und Nuxt).
65
65
  - `aymericzip/intlayer`: **4.343 Commits** (Compiler-Optimierungen, LSP-Erweiterungen und KI-Agenten-Unterstützung).
66
66
 
67
- [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#intlify/vue-i18n&aymericzip/intlayer)
67
+ [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#intlify/vue-i18n&aymericzip/intlayer)
68
68
 
69
69
  Eine etablierte Bibliothek bietet Stabilität. Moderne Frontend-Stacks nutzen jedoch AST-Transformationen im Build, Dead-Code-Elimination und KI-Lokalisierung. Eine reine Laufzeitarchitektur kann diese Entwicklungen nur schwer adaptieren.
70
70