@intlayer/docs 9.5.5 → 9.5.7

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 (920) hide show
  1. package/README.md +0 -1
  2. package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
  3. package/blog/ar/i18next_vs_intlayer.md +130 -16
  4. package/blog/ar/lingui_vs_intlayer.md +122 -15
  5. package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
  6. package/blog/ar/next-intl_vs_intlayer.md +136 -20
  7. package/blog/ar/transform_existing_vite_react_app_using_compiler.md +4 -2
  8. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
  9. package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
  10. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
  11. package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
  12. package/blog/de/i18next_vs_intlayer.md +128 -14
  13. package/blog/de/lingui_vs_intlayer.md +122 -15
  14. package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
  15. package/blog/de/next-intl_vs_intlayer.md +125 -15
  16. package/blog/de/transform_existing_vite_react_app_using_compiler.md +4 -2
  17. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  18. package/blog/de/vue-i18n_vs_intlayer.md +193 -31
  19. package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
  20. package/blog/en/i18next_vs_intlayer.md +128 -14
  21. package/blog/en/lingui_vs_intlayer.md +124 -15
  22. package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
  23. package/blog/en/next-intl_vs_intlayer.md +125 -13
  24. package/blog/en/transform_existing_vite_react_app_using_compiler.md +4 -2
  25. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
  26. package/blog/en/vue-i18n_vs_intlayer.md +188 -27
  27. package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
  28. package/blog/en-GB/i18next_vs_intlayer.md +128 -14
  29. package/blog/en-GB/lingui_vs_intlayer.md +122 -15
  30. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
  31. package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
  32. package/blog/en-GB/transform_existing_vite_react_app_using_compiler.md +4 -2
  33. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  34. package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
  35. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
  36. package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
  37. package/blog/es/i18next_vs_intlayer.md +128 -14
  38. package/blog/es/lingui_vs_intlayer.md +122 -15
  39. package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
  40. package/blog/es/next-intl_vs_intlayer.md +125 -15
  41. package/blog/es/transform_existing_vite_react_app_using_compiler.md +4 -2
  42. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  43. package/blog/es/vue-i18n_vs_intlayer.md +193 -31
  44. package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
  45. package/blog/fr/i18next_vs_intlayer.md +128 -14
  46. package/blog/fr/lingui_vs_intlayer.md +122 -15
  47. package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
  48. package/blog/fr/next-intl_vs_intlayer.md +127 -15
  49. package/blog/fr/transform_existing_vite_react_app_using_compiler.md +4 -2
  50. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
  51. package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
  52. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
  53. package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
  54. package/blog/hi/i18next_vs_intlayer.md +130 -16
  55. package/blog/hi/lingui_vs_intlayer.md +122 -15
  56. package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
  57. package/blog/hi/next-intl_vs_intlayer.md +135 -19
  58. package/blog/hi/transform_existing_vite_react_app_using_compiler.md +4 -2
  59. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  60. package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
  61. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  62. package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
  63. package/blog/id/i18next_vs_intlayer.md +128 -14
  64. package/blog/id/lingui_vs_intlayer.md +122 -15
  65. package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
  66. package/blog/id/next-intl_vs_intlayer.md +135 -19
  67. package/blog/id/transform_existing_vite_react_app_using_compiler.md +4 -2
  68. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
  69. package/blog/id/vue-i18n_vs_intlayer.md +188 -26
  70. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
  71. package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
  72. package/blog/it/i18next_vs_intlayer.md +128 -14
  73. package/blog/it/lingui_vs_intlayer.md +122 -15
  74. package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
  75. package/blog/it/next-intl_vs_intlayer.md +125 -15
  76. package/blog/it/transform_existing_vite_react_app_using_compiler.md +4 -2
  77. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  78. package/blog/it/vue-i18n_vs_intlayer.md +191 -31
  79. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
  80. package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
  81. package/blog/ja/i18next_vs_intlayer.md +129 -17
  82. package/blog/ja/lingui_vs_intlayer.md +122 -15
  83. package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
  84. package/blog/ja/next-intl_vs_intlayer.md +124 -14
  85. package/blog/ja/transform_existing_vite_react_app_using_compiler.md +4 -2
  86. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  87. package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
  88. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
  89. package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
  90. package/blog/ko/i18next_vs_intlayer.md +129 -17
  91. package/blog/ko/lingui_vs_intlayer.md +122 -15
  92. package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
  93. package/blog/ko/next-intl_vs_intlayer.md +134 -18
  94. package/blog/ko/transform_existing_vite_react_app_using_compiler.md +4 -2
  95. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  96. package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
  97. package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
  98. package/blog/pl/i18next_vs_intlayer.md +128 -14
  99. package/blog/pl/lingui_vs_intlayer.md +122 -15
  100. package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
  101. package/blog/pl/next-intl_vs_intlayer.md +134 -18
  102. package/blog/pl/transform_existing_vite_react_app_using_compiler.md +4 -2
  103. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  104. package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
  105. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
  106. package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
  107. package/blog/pt/i18next_vs_intlayer.md +128 -14
  108. package/blog/pt/lingui_vs_intlayer.md +122 -15
  109. package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
  110. package/blog/pt/next-intl_vs_intlayer.md +131 -15
  111. package/blog/pt/transform_existing_vite_react_app_using_compiler.md +4 -2
  112. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  113. package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
  114. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
  115. package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
  116. package/blog/ru/i18next_vs_intlayer.md +130 -16
  117. package/blog/ru/lingui_vs_intlayer.md +122 -15
  118. package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
  119. package/blog/ru/next-intl_vs_intlayer.md +123 -13
  120. package/blog/ru/transform_existing_vite_react_app_using_compiler.md +4 -2
  121. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
  122. package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
  123. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
  124. package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
  125. package/blog/tr/i18next_vs_intlayer.md +128 -14
  126. package/blog/tr/lingui_vs_intlayer.md +122 -15
  127. package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
  128. package/blog/tr/next-intl_vs_intlayer.md +136 -20
  129. package/blog/tr/transform_existing_vite_react_app_using_compiler.md +4 -2
  130. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  131. package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
  132. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
  133. package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
  134. package/blog/uk/i18next_vs_intlayer.md +130 -16
  135. package/blog/uk/lingui_vs_intlayer.md +122 -15
  136. package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
  137. package/blog/uk/next-intl_vs_intlayer.md +135 -19
  138. package/blog/uk/transform_existing_vite_react_app_using_compiler.md +4 -2
  139. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
  140. package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
  141. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
  142. package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
  143. package/blog/vi/i18next_vs_intlayer.md +128 -14
  144. package/blog/vi/lingui_vs_intlayer.md +122 -15
  145. package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
  146. package/blog/vi/next-intl_vs_intlayer.md +135 -19
  147. package/blog/vi/transform_existing_vite_react_app_using_compiler.md +4 -2
  148. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  149. package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
  150. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  151. package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
  152. package/blog/zh/i18next_vs_intlayer.md +128 -14
  153. package/blog/zh/lingui_vs_intlayer.md +122 -15
  154. package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
  155. package/blog/zh/next-intl_vs_intlayer.md +125 -15
  156. package/blog/zh/transform_existing_vite_react_app_using_compiler.md +4 -2
  157. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  158. package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
  159. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
  160. package/dist/cjs/generated/docs.entry.cjs +40 -40
  161. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  162. package/dist/cjs/index.cjs +2 -2
  163. package/dist/esm/generated/docs.entry.mjs +40 -40
  164. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  165. package/dist/esm/index.mjs +2 -2
  166. package/dist/types/generated/docs.entry.d.ts +2 -2
  167. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  168. package/docs/ar/benchmark/nextjs.md +13 -13
  169. package/docs/ar/benchmark/solid.md +5 -5
  170. package/docs/ar/benchmark/svelte.md +4 -4
  171. package/docs/ar/benchmark/tanstack.md +14 -13
  172. package/docs/ar/benchmark/vue.md +5 -5
  173. package/docs/ar/chrome_extension.md +130 -0
  174. package/docs/ar/cli/index.md +6 -1
  175. package/docs/ar/cli/infra.md +162 -0
  176. package/docs/ar/cli/init.md +24 -1
  177. package/docs/ar/dictionary/html.md +173 -5
  178. package/docs/ar/dictionary/markdown.md +263 -1
  179. package/docs/ar/intlayer_with_analog.md +23 -1
  180. package/docs/ar/intlayer_with_angular_19.md +24 -1
  181. package/docs/ar/intlayer_with_angular_21.md +24 -1
  182. package/docs/ar/intlayer_with_astro.md +42 -32
  183. package/docs/ar/intlayer_with_astro_lit.md +56 -36
  184. package/docs/ar/intlayer_with_astro_preact.md +57 -36
  185. package/docs/ar/intlayer_with_astro_react.md +57 -36
  186. package/docs/ar/intlayer_with_astro_solid.md +57 -36
  187. package/docs/ar/intlayer_with_astro_svelte.md +56 -36
  188. package/docs/ar/intlayer_with_astro_vue.md +56 -36
  189. package/docs/ar/intlayer_with_react_router_v7.md +12 -1
  190. package/docs/ar/intlayer_with_remix_3.md +22 -1
  191. package/docs/ar/intlayer_with_solid_start.md +14 -7
  192. package/docs/ar/intlayer_with_svelte_kit.md +12 -1
  193. package/docs/ar/intlayer_with_tanstack+solid.md +13 -2
  194. package/docs/ar/intlayer_with_tanstack.md +13 -6
  195. package/docs/ar/intlayer_with_vite+lit.md +75 -3
  196. package/docs/ar/intlayer_with_vite+preact.md +27 -19
  197. package/docs/ar/intlayer_with_vite+react.md +27 -19
  198. package/docs/ar/intlayer_with_vite+solid.md +27 -19
  199. package/docs/ar/intlayer_with_vite+svelte.md +27 -19
  200. package/docs/ar/intlayer_with_vite+vanilla.md +16 -3
  201. package/docs/ar/intlayer_with_vite+vue.md +27 -19
  202. package/docs/ar/introduction.md +0 -1
  203. package/docs/ar/readme.md +0 -1
  204. package/docs/ar/releases/v8.md +1 -5
  205. package/docs/ar/self_hosting.md +406 -231
  206. package/docs/bn/intlayer_with_vite+lit.md +75 -3
  207. package/docs/bn/intlayer_with_vite+vanilla.md +16 -3
  208. package/docs/bn/introduction.md +0 -1
  209. package/docs/cs/intlayer_with_vite+lit.md +75 -3
  210. package/docs/cs/intlayer_with_vite+vanilla.md +16 -3
  211. package/docs/cs/introduction.md +0 -1
  212. package/docs/de/benchmark/nextjs.md +13 -13
  213. package/docs/de/benchmark/solid.md +5 -5
  214. package/docs/de/benchmark/svelte.md +4 -4
  215. package/docs/de/benchmark/tanstack.md +14 -13
  216. package/docs/de/benchmark/vue.md +5 -5
  217. package/docs/de/chrome_extension.md +130 -0
  218. package/docs/de/cli/index.md +6 -1
  219. package/docs/de/cli/infra.md +162 -0
  220. package/docs/de/cli/init.md +24 -1
  221. package/docs/de/dictionary/html.md +173 -5
  222. package/docs/de/dictionary/markdown.md +263 -1
  223. package/docs/de/intlayer_with_analog.md +23 -1
  224. package/docs/de/intlayer_with_angular_19.md +24 -1
  225. package/docs/de/intlayer_with_angular_21.md +24 -1
  226. package/docs/de/intlayer_with_astro.md +35 -25
  227. package/docs/de/intlayer_with_astro_lit.md +47 -27
  228. package/docs/de/intlayer_with_astro_preact.md +48 -27
  229. package/docs/de/intlayer_with_astro_react.md +48 -27
  230. package/docs/de/intlayer_with_astro_solid.md +48 -27
  231. package/docs/de/intlayer_with_astro_svelte.md +47 -27
  232. package/docs/de/intlayer_with_astro_vue.md +47 -27
  233. package/docs/de/intlayer_with_react_router_v7.md +12 -1
  234. package/docs/de/intlayer_with_remix_3.md +22 -1
  235. package/docs/de/intlayer_with_solid_start.md +14 -7
  236. package/docs/de/intlayer_with_svelte_kit.md +12 -1
  237. package/docs/de/intlayer_with_tanstack+solid.md +13 -2
  238. package/docs/de/intlayer_with_tanstack.md +13 -6
  239. package/docs/de/intlayer_with_vite+lit.md +75 -3
  240. package/docs/de/intlayer_with_vite+preact.md +16 -3
  241. package/docs/de/intlayer_with_vite+react.md +16 -3
  242. package/docs/de/intlayer_with_vite+solid.md +16 -3
  243. package/docs/de/intlayer_with_vite+svelte.md +16 -3
  244. package/docs/de/intlayer_with_vite+vanilla.md +16 -3
  245. package/docs/de/intlayer_with_vite+vue.md +16 -3
  246. package/docs/de/introduction.md +0 -1
  247. package/docs/de/readme.md +0 -1
  248. package/docs/de/releases/v8.md +1 -5
  249. package/docs/de/self_hosting.md +404 -227
  250. package/docs/en/benchmark/nextjs.md +13 -13
  251. package/docs/en/benchmark/solid.md +5 -5
  252. package/docs/en/benchmark/svelte.md +4 -4
  253. package/docs/en/benchmark/tanstack.md +14 -13
  254. package/docs/en/benchmark/vue.md +5 -5
  255. package/docs/en/chrome_extension.md +130 -0
  256. package/docs/en/cli/index.md +6 -1
  257. package/docs/en/cli/infra.md +175 -0
  258. package/docs/en/cli/init.md +25 -1
  259. package/docs/en/dictionary/html.md +173 -5
  260. package/docs/en/dictionary/markdown.md +263 -1
  261. package/docs/en/intlayer_with_analog.md +23 -1
  262. package/docs/en/intlayer_with_angular_19.md +24 -1
  263. package/docs/en/intlayer_with_angular_21.md +24 -1
  264. package/docs/en/intlayer_with_astro.md +29 -21
  265. package/docs/en/intlayer_with_astro_lit.md +46 -26
  266. package/docs/en/intlayer_with_astro_preact.md +47 -26
  267. package/docs/en/intlayer_with_astro_react.md +47 -26
  268. package/docs/en/intlayer_with_astro_solid.md +47 -26
  269. package/docs/en/intlayer_with_astro_svelte.md +46 -26
  270. package/docs/en/intlayer_with_astro_vue.md +46 -26
  271. package/docs/en/intlayer_with_react_router_v7.md +12 -1
  272. package/docs/en/intlayer_with_remix_3.md +22 -1
  273. package/docs/en/intlayer_with_solid_start.md +14 -7
  274. package/docs/en/intlayer_with_svelte_kit.md +12 -1
  275. package/docs/en/intlayer_with_tanstack+solid.md +13 -2
  276. package/docs/en/intlayer_with_tanstack.md +12 -5
  277. package/docs/en/intlayer_with_vite+lit.md +75 -3
  278. package/docs/en/intlayer_with_vite+preact.md +16 -3
  279. package/docs/en/intlayer_with_vite+react.md +16 -3
  280. package/docs/en/intlayer_with_vite+solid.md +16 -3
  281. package/docs/en/intlayer_with_vite+svelte.md +16 -3
  282. package/docs/en/intlayer_with_vite+vanilla.md +16 -3
  283. package/docs/en/intlayer_with_vite+vue.md +16 -3
  284. package/docs/en/introduction.md +0 -1
  285. package/docs/en/readme.md +0 -1
  286. package/docs/en/releases/v8.md +1 -5
  287. package/docs/en/self_hosting.md +418 -176
  288. package/docs/en-GB/benchmark/nextjs.md +13 -13
  289. package/docs/en-GB/benchmark/solid.md +5 -5
  290. package/docs/en-GB/benchmark/svelte.md +4 -4
  291. package/docs/en-GB/benchmark/tanstack.md +14 -13
  292. package/docs/en-GB/benchmark/vue.md +5 -5
  293. package/docs/en-GB/chrome_extension.md +130 -0
  294. package/docs/en-GB/cli/index.md +6 -1
  295. package/docs/en-GB/cli/infra.md +162 -0
  296. package/docs/en-GB/cli/init.md +24 -1
  297. package/docs/en-GB/dictionary/html.md +173 -5
  298. package/docs/en-GB/dictionary/markdown.md +263 -1
  299. package/docs/en-GB/intlayer_with_analog.md +23 -1
  300. package/docs/en-GB/intlayer_with_angular_19.md +24 -1
  301. package/docs/en-GB/intlayer_with_angular_21.md +24 -1
  302. package/docs/en-GB/intlayer_with_astro.md +35 -25
  303. package/docs/en-GB/intlayer_with_astro_lit.md +47 -27
  304. package/docs/en-GB/intlayer_with_astro_preact.md +48 -27
  305. package/docs/en-GB/intlayer_with_astro_react.md +48 -27
  306. package/docs/en-GB/intlayer_with_astro_solid.md +48 -27
  307. package/docs/en-GB/intlayer_with_astro_svelte.md +47 -27
  308. package/docs/en-GB/intlayer_with_astro_vue.md +47 -27
  309. package/docs/en-GB/intlayer_with_react_router_v7.md +12 -1
  310. package/docs/en-GB/intlayer_with_remix_3.md +22 -1
  311. package/docs/en-GB/intlayer_with_solid_start.md +14 -7
  312. package/docs/en-GB/intlayer_with_svelte_kit.md +12 -1
  313. package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -2
  314. package/docs/en-GB/intlayer_with_tanstack.md +13 -6
  315. package/docs/en-GB/intlayer_with_vite+lit.md +75 -3
  316. package/docs/en-GB/intlayer_with_vite+preact.md +16 -3
  317. package/docs/en-GB/intlayer_with_vite+react.md +16 -3
  318. package/docs/en-GB/intlayer_with_vite+solid.md +25 -15
  319. package/docs/en-GB/intlayer_with_vite+svelte.md +16 -3
  320. package/docs/en-GB/intlayer_with_vite+vanilla.md +16 -3
  321. package/docs/en-GB/intlayer_with_vite+vue.md +16 -3
  322. package/docs/en-GB/introduction.md +0 -1
  323. package/docs/en-GB/readme.md +0 -1
  324. package/docs/en-GB/releases/v8.md +1 -5
  325. package/docs/en-GB/self_hosting.md +381 -206
  326. package/docs/es/benchmark/nextjs.md +13 -13
  327. package/docs/es/benchmark/solid.md +5 -5
  328. package/docs/es/benchmark/svelte.md +4 -4
  329. package/docs/es/benchmark/tanstack.md +14 -13
  330. package/docs/es/benchmark/vue.md +5 -5
  331. package/docs/es/chrome_extension.md +130 -0
  332. package/docs/es/cli/index.md +6 -1
  333. package/docs/es/cli/infra.md +162 -0
  334. package/docs/es/cli/init.md +24 -1
  335. package/docs/es/dictionary/html.md +173 -5
  336. package/docs/es/dictionary/markdown.md +263 -1
  337. package/docs/es/intlayer_with_analog.md +23 -1
  338. package/docs/es/intlayer_with_angular_19.md +24 -1
  339. package/docs/es/intlayer_with_angular_21.md +24 -1
  340. package/docs/es/intlayer_with_astro.md +35 -25
  341. package/docs/es/intlayer_with_astro_lit.md +47 -27
  342. package/docs/es/intlayer_with_astro_preact.md +48 -27
  343. package/docs/es/intlayer_with_astro_react.md +48 -27
  344. package/docs/es/intlayer_with_astro_solid.md +48 -27
  345. package/docs/es/intlayer_with_astro_svelte.md +47 -27
  346. package/docs/es/intlayer_with_astro_vue.md +47 -27
  347. package/docs/es/intlayer_with_react_router_v7.md +12 -1
  348. package/docs/es/intlayer_with_remix_3.md +22 -1
  349. package/docs/es/intlayer_with_solid_start.md +14 -7
  350. package/docs/es/intlayer_with_svelte_kit.md +12 -1
  351. package/docs/es/intlayer_with_tanstack+solid.md +13 -2
  352. package/docs/es/intlayer_with_tanstack.md +13 -6
  353. package/docs/es/intlayer_with_vite+lit.md +75 -3
  354. package/docs/es/intlayer_with_vite+preact.md +16 -3
  355. package/docs/es/intlayer_with_vite+react.md +16 -3
  356. package/docs/es/intlayer_with_vite+solid.md +16 -3
  357. package/docs/es/intlayer_with_vite+svelte.md +16 -3
  358. package/docs/es/intlayer_with_vite+vanilla.md +16 -3
  359. package/docs/es/intlayer_with_vite+vue.md +16 -3
  360. package/docs/es/introduction.md +0 -1
  361. package/docs/es/readme.md +0 -1
  362. package/docs/es/releases/v8.md +1 -5
  363. package/docs/es/self_hosting.md +400 -223
  364. package/docs/fr/benchmark/nextjs.md +13 -13
  365. package/docs/fr/benchmark/solid.md +5 -5
  366. package/docs/fr/benchmark/svelte.md +4 -4
  367. package/docs/fr/benchmark/tanstack.md +14 -13
  368. package/docs/fr/benchmark/vue.md +5 -5
  369. package/docs/fr/chrome_extension.md +130 -0
  370. package/docs/fr/cli/index.md +6 -1
  371. package/docs/fr/cli/infra.md +162 -0
  372. package/docs/fr/cli/init.md +24 -1
  373. package/docs/fr/dictionary/html.md +173 -5
  374. package/docs/fr/dictionary/markdown.md +265 -4
  375. package/docs/fr/intlayer_with_analog.md +23 -1
  376. package/docs/fr/intlayer_with_angular_19.md +24 -1
  377. package/docs/fr/intlayer_with_angular_21.md +24 -1
  378. package/docs/fr/intlayer_with_astro.md +36 -26
  379. package/docs/fr/intlayer_with_astro_lit.md +48 -28
  380. package/docs/fr/intlayer_with_astro_preact.md +49 -28
  381. package/docs/fr/intlayer_with_astro_react.md +49 -28
  382. package/docs/fr/intlayer_with_astro_solid.md +49 -28
  383. package/docs/fr/intlayer_with_astro_svelte.md +48 -28
  384. package/docs/fr/intlayer_with_astro_vue.md +48 -28
  385. package/docs/fr/intlayer_with_react_router_v7.md +15 -4
  386. package/docs/fr/intlayer_with_remix_3.md +22 -1
  387. package/docs/fr/intlayer_with_solid_start.md +14 -7
  388. package/docs/fr/intlayer_with_svelte_kit.md +15 -4
  389. package/docs/fr/intlayer_with_tanstack+solid.md +15 -4
  390. package/docs/fr/intlayer_with_tanstack.md +13 -6
  391. package/docs/fr/intlayer_with_vite+lit.md +75 -3
  392. package/docs/fr/intlayer_with_vite+preact.md +19 -6
  393. package/docs/fr/intlayer_with_vite+react.md +19 -6
  394. package/docs/fr/intlayer_with_vite+solid.md +19 -6
  395. package/docs/fr/intlayer_with_vite+svelte.md +19 -6
  396. package/docs/fr/intlayer_with_vite+vanilla.md +19 -6
  397. package/docs/fr/intlayer_with_vite+vue.md +19 -6
  398. package/docs/fr/introduction.md +0 -1
  399. package/docs/fr/readme.md +0 -1
  400. package/docs/fr/releases/v8.md +1 -5
  401. package/docs/fr/self_hosting.md +401 -224
  402. package/docs/hi/benchmark/nextjs.md +13 -13
  403. package/docs/hi/benchmark/solid.md +5 -5
  404. package/docs/hi/benchmark/svelte.md +4 -4
  405. package/docs/hi/benchmark/tanstack.md +14 -13
  406. package/docs/hi/benchmark/vue.md +5 -5
  407. package/docs/hi/chrome_extension.md +130 -0
  408. package/docs/hi/cli/index.md +6 -1
  409. package/docs/hi/cli/infra.md +162 -0
  410. package/docs/hi/cli/init.md +24 -1
  411. package/docs/hi/dictionary/html.md +173 -5
  412. package/docs/hi/dictionary/markdown.md +263 -1
  413. package/docs/hi/intlayer_with_analog.md +23 -1
  414. package/docs/hi/intlayer_with_angular_19.md +24 -1
  415. package/docs/hi/intlayer_with_angular_21.md +24 -1
  416. package/docs/hi/intlayer_with_astro.md +38 -31
  417. package/docs/hi/intlayer_with_astro_lit.md +50 -33
  418. package/docs/hi/intlayer_with_astro_preact.md +51 -33
  419. package/docs/hi/intlayer_with_astro_react.md +51 -33
  420. package/docs/hi/intlayer_with_astro_solid.md +51 -33
  421. package/docs/hi/intlayer_with_astro_svelte.md +50 -33
  422. package/docs/hi/intlayer_with_astro_vue.md +50 -33
  423. package/docs/hi/intlayer_with_react_router_v7.md +20 -12
  424. package/docs/hi/intlayer_with_remix_3.md +22 -1
  425. package/docs/hi/intlayer_with_solid_start.md +14 -7
  426. package/docs/hi/intlayer_with_svelte_kit.md +20 -12
  427. package/docs/hi/intlayer_with_tanstack+solid.md +13 -2
  428. package/docs/hi/intlayer_with_tanstack.md +21 -17
  429. package/docs/hi/intlayer_with_vite+lit.md +75 -3
  430. package/docs/hi/intlayer_with_vite+preact.md +24 -14
  431. package/docs/hi/intlayer_with_vite+react.md +24 -14
  432. package/docs/hi/intlayer_with_vite+solid.md +24 -14
  433. package/docs/hi/intlayer_with_vite+svelte.md +24 -14
  434. package/docs/hi/intlayer_with_vite+vanilla.md +16 -3
  435. package/docs/hi/intlayer_with_vite+vue.md +24 -14
  436. package/docs/hi/introduction.md +0 -1
  437. package/docs/hi/readme.md +0 -1
  438. package/docs/hi/releases/v8.md +1 -5
  439. package/docs/hi/self_hosting.md +409 -235
  440. package/docs/id/benchmark/nextjs.md +13 -13
  441. package/docs/id/benchmark/solid.md +5 -5
  442. package/docs/id/benchmark/svelte.md +4 -4
  443. package/docs/id/benchmark/tanstack.md +14 -13
  444. package/docs/id/benchmark/vue.md +5 -5
  445. package/docs/id/chrome_extension.md +130 -0
  446. package/docs/id/cli/index.md +6 -1
  447. package/docs/id/cli/infra.md +162 -0
  448. package/docs/id/cli/init.md +24 -1
  449. package/docs/id/dictionary/html.md +173 -5
  450. package/docs/id/dictionary/markdown.md +263 -1
  451. package/docs/id/intlayer_with_analog.md +23 -1
  452. package/docs/id/intlayer_with_angular_19.md +24 -1
  453. package/docs/id/intlayer_with_angular_21.md +24 -1
  454. package/docs/id/intlayer_with_astro.md +35 -25
  455. package/docs/id/intlayer_with_astro_lit.md +47 -27
  456. package/docs/id/intlayer_with_astro_preact.md +48 -27
  457. package/docs/id/intlayer_with_astro_react.md +48 -27
  458. package/docs/id/intlayer_with_astro_solid.md +48 -27
  459. package/docs/id/intlayer_with_astro_svelte.md +47 -27
  460. package/docs/id/intlayer_with_astro_vue.md +47 -27
  461. package/docs/id/intlayer_with_react_router_v7.md +12 -1
  462. package/docs/id/intlayer_with_remix_3.md +22 -1
  463. package/docs/id/intlayer_with_solid_start.md +14 -7
  464. package/docs/id/intlayer_with_svelte_kit.md +12 -1
  465. package/docs/id/intlayer_with_tanstack+solid.md +13 -2
  466. package/docs/id/intlayer_with_tanstack.md +13 -6
  467. package/docs/id/intlayer_with_vite+lit.md +75 -3
  468. package/docs/id/intlayer_with_vite+preact.md +16 -3
  469. package/docs/id/intlayer_with_vite+react.md +16 -3
  470. package/docs/id/intlayer_with_vite+solid.md +16 -3
  471. package/docs/id/intlayer_with_vite+svelte.md +16 -3
  472. package/docs/id/intlayer_with_vite+vanilla.md +16 -3
  473. package/docs/id/intlayer_with_vite+vue.md +16 -3
  474. package/docs/id/introduction.md +0 -1
  475. package/docs/id/readme.md +0 -1
  476. package/docs/id/releases/v8.md +1 -5
  477. package/docs/id/self_hosting.md +416 -243
  478. package/docs/it/benchmark/nextjs.md +13 -13
  479. package/docs/it/benchmark/solid.md +5 -5
  480. package/docs/it/benchmark/svelte.md +4 -4
  481. package/docs/it/benchmark/tanstack.md +14 -13
  482. package/docs/it/benchmark/vue.md +5 -5
  483. package/docs/it/chrome_extension.md +130 -0
  484. package/docs/it/cli/index.md +6 -1
  485. package/docs/it/cli/infra.md +162 -0
  486. package/docs/it/cli/init.md +24 -1
  487. package/docs/it/dictionary/html.md +173 -5
  488. package/docs/it/dictionary/markdown.md +263 -1
  489. package/docs/it/intlayer_with_analog.md +23 -1
  490. package/docs/it/intlayer_with_angular_19.md +24 -1
  491. package/docs/it/intlayer_with_angular_21.md +24 -1
  492. package/docs/it/intlayer_with_astro.md +35 -25
  493. package/docs/it/intlayer_with_astro_lit.md +47 -27
  494. package/docs/it/intlayer_with_astro_preact.md +48 -27
  495. package/docs/it/intlayer_with_astro_react.md +48 -27
  496. package/docs/it/intlayer_with_astro_solid.md +48 -27
  497. package/docs/it/intlayer_with_astro_svelte.md +47 -27
  498. package/docs/it/intlayer_with_astro_vue.md +47 -27
  499. package/docs/it/intlayer_with_react_router_v7.md +12 -1
  500. package/docs/it/intlayer_with_remix_3.md +22 -1
  501. package/docs/it/intlayer_with_solid_start.md +14 -7
  502. package/docs/it/intlayer_with_svelte_kit.md +12 -1
  503. package/docs/it/intlayer_with_tanstack+solid.md +13 -2
  504. package/docs/it/intlayer_with_tanstack.md +13 -6
  505. package/docs/it/intlayer_with_vite+lit.md +75 -3
  506. package/docs/it/intlayer_with_vite+preact.md +16 -3
  507. package/docs/it/intlayer_with_vite+react.md +16 -3
  508. package/docs/it/intlayer_with_vite+solid.md +16 -3
  509. package/docs/it/intlayer_with_vite+svelte.md +16 -3
  510. package/docs/it/intlayer_with_vite+vanilla.md +16 -3
  511. package/docs/it/intlayer_with_vite+vue.md +16 -3
  512. package/docs/it/introduction.md +0 -1
  513. package/docs/it/readme.md +0 -1
  514. package/docs/it/releases/v8.md +1 -5
  515. package/docs/it/self_hosting.md +412 -237
  516. package/docs/ja/benchmark/nextjs.md +13 -13
  517. package/docs/ja/benchmark/solid.md +5 -5
  518. package/docs/ja/benchmark/svelte.md +4 -4
  519. package/docs/ja/benchmark/tanstack.md +13 -12
  520. package/docs/ja/benchmark/vue.md +5 -5
  521. package/docs/ja/chrome_extension.md +130 -0
  522. package/docs/ja/cli/index.md +6 -1
  523. package/docs/ja/cli/infra.md +162 -0
  524. package/docs/ja/cli/init.md +24 -1
  525. package/docs/ja/dictionary/html.md +173 -5
  526. package/docs/ja/dictionary/markdown.md +263 -1
  527. package/docs/ja/intlayer_with_analog.md +23 -1
  528. package/docs/ja/intlayer_with_angular_19.md +24 -1
  529. package/docs/ja/intlayer_with_angular_21.md +24 -1
  530. package/docs/ja/intlayer_with_astro.md +35 -25
  531. package/docs/ja/intlayer_with_astro_lit.md +47 -27
  532. package/docs/ja/intlayer_with_astro_preact.md +48 -27
  533. package/docs/ja/intlayer_with_astro_react.md +48 -27
  534. package/docs/ja/intlayer_with_astro_solid.md +48 -27
  535. package/docs/ja/intlayer_with_astro_svelte.md +47 -27
  536. package/docs/ja/intlayer_with_astro_vue.md +47 -27
  537. package/docs/ja/intlayer_with_react_router_v7.md +12 -1
  538. package/docs/ja/intlayer_with_remix_3.md +22 -1
  539. package/docs/ja/intlayer_with_solid_start.md +14 -7
  540. package/docs/ja/intlayer_with_svelte_kit.md +21 -15
  541. package/docs/ja/intlayer_with_tanstack+solid.md +13 -2
  542. package/docs/ja/intlayer_with_tanstack.md +13 -6
  543. package/docs/ja/intlayer_with_vite+lit.md +75 -3
  544. package/docs/ja/intlayer_with_vite+preact.md +16 -3
  545. package/docs/ja/intlayer_with_vite+react.md +16 -3
  546. package/docs/ja/intlayer_with_vite+solid.md +16 -3
  547. package/docs/ja/intlayer_with_vite+svelte.md +16 -3
  548. package/docs/ja/intlayer_with_vite+vanilla.md +16 -3
  549. package/docs/ja/intlayer_with_vite+vue.md +16 -3
  550. package/docs/ja/introduction.md +0 -1
  551. package/docs/ja/readme.md +0 -1
  552. package/docs/ja/releases/v8.md +1 -5
  553. package/docs/ja/self_hosting.md +398 -223
  554. package/docs/ko/benchmark/nextjs.md +13 -13
  555. package/docs/ko/benchmark/solid.md +5 -5
  556. package/docs/ko/benchmark/svelte.md +4 -4
  557. package/docs/ko/benchmark/tanstack.md +14 -13
  558. package/docs/ko/benchmark/vue.md +5 -5
  559. package/docs/ko/chrome_extension.md +130 -0
  560. package/docs/ko/cli/index.md +6 -1
  561. package/docs/ko/cli/infra.md +162 -0
  562. package/docs/ko/cli/init.md +24 -1
  563. package/docs/ko/dictionary/html.md +173 -5
  564. package/docs/ko/dictionary/markdown.md +263 -1
  565. package/docs/ko/intlayer_with_analog.md +23 -1
  566. package/docs/ko/intlayer_with_angular_19.md +24 -1
  567. package/docs/ko/intlayer_with_angular_21.md +24 -1
  568. package/docs/ko/intlayer_with_astro.md +29 -21
  569. package/docs/ko/intlayer_with_astro_lit.md +47 -27
  570. package/docs/ko/intlayer_with_astro_preact.md +48 -27
  571. package/docs/ko/intlayer_with_astro_react.md +48 -27
  572. package/docs/ko/intlayer_with_astro_solid.md +48 -27
  573. package/docs/ko/intlayer_with_astro_svelte.md +47 -27
  574. package/docs/ko/intlayer_with_astro_vue.md +47 -27
  575. package/docs/ko/intlayer_with_react_router_v7.md +12 -1
  576. package/docs/ko/intlayer_with_remix_3.md +22 -1
  577. package/docs/ko/intlayer_with_solid_start.md +14 -7
  578. package/docs/ko/intlayer_with_svelte_kit.md +12 -1
  579. package/docs/ko/intlayer_with_tanstack+solid.md +13 -2
  580. package/docs/ko/intlayer_with_tanstack.md +13 -6
  581. package/docs/ko/intlayer_with_vite+lit.md +75 -3
  582. package/docs/ko/intlayer_with_vite+preact.md +16 -3
  583. package/docs/ko/intlayer_with_vite+react.md +16 -3
  584. package/docs/ko/intlayer_with_vite+solid.md +26 -16
  585. package/docs/ko/intlayer_with_vite+svelte.md +16 -3
  586. package/docs/ko/intlayer_with_vite+vanilla.md +16 -3
  587. package/docs/ko/intlayer_with_vite+vue.md +16 -3
  588. package/docs/ko/introduction.md +0 -1
  589. package/docs/ko/readme.md +0 -1
  590. package/docs/ko/releases/v8.md +1 -5
  591. package/docs/ko/self_hosting.md +411 -238
  592. package/docs/nl/intlayer_with_vite+lit.md +75 -3
  593. package/docs/nl/intlayer_with_vite+vanilla.md +16 -3
  594. package/docs/nl/introduction.md +0 -1
  595. package/docs/pl/benchmark/nextjs.md +13 -13
  596. package/docs/pl/benchmark/solid.md +5 -5
  597. package/docs/pl/benchmark/svelte.md +4 -4
  598. package/docs/pl/benchmark/tanstack.md +14 -13
  599. package/docs/pl/benchmark/vue.md +5 -5
  600. package/docs/pl/chrome_extension.md +130 -0
  601. package/docs/pl/cli/index.md +6 -1
  602. package/docs/pl/cli/infra.md +162 -0
  603. package/docs/pl/cli/init.md +24 -1
  604. package/docs/pl/dictionary/html.md +173 -5
  605. package/docs/pl/dictionary/markdown.md +263 -1
  606. package/docs/pl/intlayer_with_analog.md +23 -1
  607. package/docs/pl/intlayer_with_angular_19.md +24 -1
  608. package/docs/pl/intlayer_with_angular_21.md +24 -1
  609. package/docs/pl/intlayer_with_astro.md +29 -21
  610. package/docs/pl/intlayer_with_astro_lit.md +47 -27
  611. package/docs/pl/intlayer_with_astro_preact.md +48 -27
  612. package/docs/pl/intlayer_with_astro_react.md +48 -27
  613. package/docs/pl/intlayer_with_astro_solid.md +48 -27
  614. package/docs/pl/intlayer_with_astro_svelte.md +47 -27
  615. package/docs/pl/intlayer_with_astro_vue.md +47 -27
  616. package/docs/pl/intlayer_with_react_router_v7.md +12 -1
  617. package/docs/pl/intlayer_with_remix_3.md +22 -1
  618. package/docs/pl/intlayer_with_solid_start.md +14 -7
  619. package/docs/pl/intlayer_with_svelte_kit.md +12 -1
  620. package/docs/pl/intlayer_with_tanstack+solid.md +13 -2
  621. package/docs/pl/intlayer_with_tanstack.md +13 -6
  622. package/docs/pl/intlayer_with_vite+lit.md +75 -3
  623. package/docs/pl/intlayer_with_vite+preact.md +16 -3
  624. package/docs/pl/intlayer_with_vite+react.md +16 -3
  625. package/docs/pl/intlayer_with_vite+solid.md +16 -3
  626. package/docs/pl/intlayer_with_vite+svelte.md +16 -3
  627. package/docs/pl/intlayer_with_vite+vanilla.md +16 -3
  628. package/docs/pl/intlayer_with_vite+vue.md +16 -3
  629. package/docs/pl/introduction.md +0 -1
  630. package/docs/pl/readme.md +0 -1
  631. package/docs/pl/releases/v8.md +1 -5
  632. package/docs/pl/self_hosting.md +408 -233
  633. package/docs/pt/benchmark/nextjs.md +13 -13
  634. package/docs/pt/benchmark/solid.md +5 -5
  635. package/docs/pt/benchmark/svelte.md +4 -4
  636. package/docs/pt/benchmark/tanstack.md +14 -13
  637. package/docs/pt/benchmark/vue.md +5 -5
  638. package/docs/pt/chrome_extension.md +130 -0
  639. package/docs/pt/cli/index.md +6 -1
  640. package/docs/pt/cli/infra.md +162 -0
  641. package/docs/pt/cli/init.md +24 -1
  642. package/docs/pt/dictionary/html.md +173 -5
  643. package/docs/pt/dictionary/markdown.md +263 -1
  644. package/docs/pt/intlayer_with_analog.md +23 -1
  645. package/docs/pt/intlayer_with_angular_19.md +24 -1
  646. package/docs/pt/intlayer_with_angular_21.md +24 -1
  647. package/docs/pt/intlayer_with_astro.md +29 -21
  648. package/docs/pt/intlayer_with_astro_lit.md +47 -27
  649. package/docs/pt/intlayer_with_astro_preact.md +48 -27
  650. package/docs/pt/intlayer_with_astro_react.md +48 -27
  651. package/docs/pt/intlayer_with_astro_solid.md +48 -27
  652. package/docs/pt/intlayer_with_astro_svelte.md +47 -27
  653. package/docs/pt/intlayer_with_astro_vue.md +47 -27
  654. package/docs/pt/intlayer_with_react_router_v7.md +12 -1
  655. package/docs/pt/intlayer_with_remix_3.md +22 -1
  656. package/docs/pt/intlayer_with_solid_start.md +14 -7
  657. package/docs/pt/intlayer_with_svelte_kit.md +12 -1
  658. package/docs/pt/intlayer_with_tanstack+solid.md +13 -2
  659. package/docs/pt/intlayer_with_tanstack.md +13 -6
  660. package/docs/pt/intlayer_with_vite+lit.md +75 -3
  661. package/docs/pt/intlayer_with_vite+preact.md +16 -3
  662. package/docs/pt/intlayer_with_vite+react.md +16 -3
  663. package/docs/pt/intlayer_with_vite+solid.md +16 -3
  664. package/docs/pt/intlayer_with_vite+svelte.md +16 -3
  665. package/docs/pt/intlayer_with_vite+vanilla.md +16 -3
  666. package/docs/pt/intlayer_with_vite+vue.md +16 -3
  667. package/docs/pt/introduction.md +0 -1
  668. package/docs/pt/readme.md +0 -1
  669. package/docs/pt/releases/v8.md +1 -5
  670. package/docs/pt/self_hosting.md +399 -224
  671. package/docs/ru/benchmark/nextjs.md +13 -13
  672. package/docs/ru/benchmark/solid.md +5 -5
  673. package/docs/ru/benchmark/svelte.md +4 -4
  674. package/docs/ru/benchmark/tanstack.md +14 -13
  675. package/docs/ru/benchmark/vue.md +5 -5
  676. package/docs/ru/chrome_extension.md +130 -0
  677. package/docs/ru/cli/index.md +6 -1
  678. package/docs/ru/cli/infra.md +162 -0
  679. package/docs/ru/cli/init.md +24 -1
  680. package/docs/ru/dictionary/html.md +173 -5
  681. package/docs/ru/dictionary/markdown.md +263 -1
  682. package/docs/ru/intlayer_with_analog.md +23 -1
  683. package/docs/ru/intlayer_with_angular_19.md +24 -1
  684. package/docs/ru/intlayer_with_angular_21.md +24 -1
  685. package/docs/ru/intlayer_with_astro.md +35 -25
  686. package/docs/ru/intlayer_with_astro_lit.md +47 -27
  687. package/docs/ru/intlayer_with_astro_preact.md +48 -27
  688. package/docs/ru/intlayer_with_astro_react.md +48 -27
  689. package/docs/ru/intlayer_with_astro_solid.md +48 -27
  690. package/docs/ru/intlayer_with_astro_svelte.md +47 -27
  691. package/docs/ru/intlayer_with_astro_vue.md +47 -27
  692. package/docs/ru/intlayer_with_react_router_v7.md +12 -1
  693. package/docs/ru/intlayer_with_remix_3.md +22 -1
  694. package/docs/ru/intlayer_with_solid_start.md +14 -7
  695. package/docs/ru/intlayer_with_svelte_kit.md +12 -1
  696. package/docs/ru/intlayer_with_tanstack+solid.md +13 -2
  697. package/docs/ru/intlayer_with_tanstack.md +13 -6
  698. package/docs/ru/intlayer_with_vite+lit.md +75 -3
  699. package/docs/ru/intlayer_with_vite+preact.md +16 -3
  700. package/docs/ru/intlayer_with_vite+react.md +16 -3
  701. package/docs/ru/intlayer_with_vite+solid.md +16 -3
  702. package/docs/ru/intlayer_with_vite+svelte.md +16 -3
  703. package/docs/ru/intlayer_with_vite+vanilla.md +16 -3
  704. package/docs/ru/intlayer_with_vite+vue.md +16 -3
  705. package/docs/ru/introduction.md +0 -1
  706. package/docs/ru/readme.md +0 -1
  707. package/docs/ru/releases/v8.md +1 -5
  708. package/docs/ru/self_hosting.md +403 -228
  709. package/docs/tr/benchmark/nextjs.md +13 -13
  710. package/docs/tr/benchmark/solid.md +5 -5
  711. package/docs/tr/benchmark/svelte.md +4 -4
  712. package/docs/tr/benchmark/tanstack.md +14 -13
  713. package/docs/tr/benchmark/vue.md +5 -5
  714. package/docs/tr/chrome_extension.md +130 -0
  715. package/docs/tr/cli/index.md +6 -1
  716. package/docs/tr/cli/infra.md +162 -0
  717. package/docs/tr/cli/init.md +24 -1
  718. package/docs/tr/dictionary/html.md +173 -5
  719. package/docs/tr/dictionary/markdown.md +263 -1
  720. package/docs/tr/intlayer_with_analog.md +23 -1
  721. package/docs/tr/intlayer_with_angular_19.md +24 -1
  722. package/docs/tr/intlayer_with_angular_21.md +24 -1
  723. package/docs/tr/intlayer_with_astro.md +35 -25
  724. package/docs/tr/intlayer_with_astro_lit.md +48 -28
  725. package/docs/tr/intlayer_with_astro_preact.md +49 -28
  726. package/docs/tr/intlayer_with_astro_react.md +49 -28
  727. package/docs/tr/intlayer_with_astro_solid.md +49 -28
  728. package/docs/tr/intlayer_with_astro_svelte.md +48 -28
  729. package/docs/tr/intlayer_with_astro_vue.md +48 -28
  730. package/docs/tr/intlayer_with_react_router_v7.md +12 -1
  731. package/docs/tr/intlayer_with_remix_3.md +22 -1
  732. package/docs/tr/intlayer_with_solid_start.md +14 -7
  733. package/docs/tr/intlayer_with_svelte_kit.md +12 -1
  734. package/docs/tr/intlayer_with_tanstack+solid.md +13 -2
  735. package/docs/tr/intlayer_with_tanstack.md +13 -6
  736. package/docs/tr/intlayer_with_vite+lit.md +75 -3
  737. package/docs/tr/intlayer_with_vite+preact.md +16 -3
  738. package/docs/tr/intlayer_with_vite+react.md +16 -3
  739. package/docs/tr/intlayer_with_vite+solid.md +16 -3
  740. package/docs/tr/intlayer_with_vite+svelte.md +16 -3
  741. package/docs/tr/intlayer_with_vite+vanilla.md +16 -3
  742. package/docs/tr/intlayer_with_vite+vue.md +16 -3
  743. package/docs/tr/introduction.md +0 -1
  744. package/docs/tr/readme.md +0 -1
  745. package/docs/tr/releases/v8.md +1 -5
  746. package/docs/tr/self_hosting.md +410 -234
  747. package/docs/uk/benchmark/nextjs.md +13 -13
  748. package/docs/uk/benchmark/solid.md +5 -5
  749. package/docs/uk/benchmark/svelte.md +4 -4
  750. package/docs/uk/benchmark/tanstack.md +14 -13
  751. package/docs/uk/benchmark/vue.md +5 -5
  752. package/docs/uk/chrome_extension.md +130 -0
  753. package/docs/uk/cli/index.md +6 -1
  754. package/docs/uk/cli/infra.md +162 -0
  755. package/docs/uk/cli/init.md +24 -1
  756. package/docs/uk/dictionary/html.md +173 -5
  757. package/docs/uk/dictionary/markdown.md +263 -1
  758. package/docs/uk/intlayer_with_analog.md +23 -1
  759. package/docs/uk/intlayer_with_angular_19.md +24 -1
  760. package/docs/uk/intlayer_with_angular_21.md +24 -1
  761. package/docs/uk/intlayer_with_astro.md +35 -25
  762. package/docs/uk/intlayer_with_astro_lit.md +47 -27
  763. package/docs/uk/intlayer_with_astro_preact.md +48 -27
  764. package/docs/uk/intlayer_with_astro_react.md +48 -27
  765. package/docs/uk/intlayer_with_astro_solid.md +48 -27
  766. package/docs/uk/intlayer_with_astro_svelte.md +47 -27
  767. package/docs/uk/intlayer_with_astro_vue.md +47 -27
  768. package/docs/uk/intlayer_with_react_router_v7.md +12 -1
  769. package/docs/uk/intlayer_with_remix_3.md +22 -1
  770. package/docs/uk/intlayer_with_solid_start.md +14 -7
  771. package/docs/uk/intlayer_with_svelte_kit.md +12 -1
  772. package/docs/uk/intlayer_with_tanstack+solid.md +13 -2
  773. package/docs/uk/intlayer_with_tanstack.md +13 -6
  774. package/docs/uk/intlayer_with_vite+lit.md +75 -3
  775. package/docs/uk/intlayer_with_vite+preact.md +16 -3
  776. package/docs/uk/intlayer_with_vite+react.md +16 -3
  777. package/docs/uk/intlayer_with_vite+solid.md +16 -3
  778. package/docs/uk/intlayer_with_vite+svelte.md +16 -3
  779. package/docs/uk/intlayer_with_vite+vanilla.md +16 -3
  780. package/docs/uk/intlayer_with_vite+vue.md +16 -3
  781. package/docs/uk/introduction.md +0 -1
  782. package/docs/uk/readme.md +0 -1
  783. package/docs/uk/releases/v8.md +1 -5
  784. package/docs/uk/self_hosting.md +413 -238
  785. package/docs/ur/intlayer_with_vite+lit.md +75 -3
  786. package/docs/ur/intlayer_with_vite+vanilla.md +16 -3
  787. package/docs/ur/introduction.md +0 -1
  788. package/docs/vi/benchmark/nextjs.md +13 -13
  789. package/docs/vi/benchmark/solid.md +5 -5
  790. package/docs/vi/benchmark/svelte.md +4 -4
  791. package/docs/vi/benchmark/tanstack.md +14 -13
  792. package/docs/vi/benchmark/vue.md +5 -5
  793. package/docs/vi/chrome_extension.md +130 -0
  794. package/docs/vi/cli/index.md +6 -1
  795. package/docs/vi/cli/infra.md +162 -0
  796. package/docs/vi/cli/init.md +24 -1
  797. package/docs/vi/dictionary/html.md +173 -5
  798. package/docs/vi/dictionary/markdown.md +263 -1
  799. package/docs/vi/intlayer_with_analog.md +23 -1
  800. package/docs/vi/intlayer_with_angular_19.md +24 -1
  801. package/docs/vi/intlayer_with_angular_21.md +24 -1
  802. package/docs/vi/intlayer_with_astro.md +35 -25
  803. package/docs/vi/intlayer_with_astro_lit.md +47 -27
  804. package/docs/vi/intlayer_with_astro_preact.md +48 -27
  805. package/docs/vi/intlayer_with_astro_react.md +48 -27
  806. package/docs/vi/intlayer_with_astro_solid.md +48 -27
  807. package/docs/vi/intlayer_with_astro_svelte.md +47 -27
  808. package/docs/vi/intlayer_with_astro_vue.md +47 -27
  809. package/docs/vi/intlayer_with_react_router_v7.md +12 -1
  810. package/docs/vi/intlayer_with_remix_3.md +22 -1
  811. package/docs/vi/intlayer_with_solid_start.md +14 -7
  812. package/docs/vi/intlayer_with_svelte_kit.md +12 -1
  813. package/docs/vi/intlayer_with_tanstack+solid.md +13 -2
  814. package/docs/vi/intlayer_with_tanstack.md +13 -6
  815. package/docs/vi/intlayer_with_vite+lit.md +75 -3
  816. package/docs/vi/intlayer_with_vite+preact.md +16 -3
  817. package/docs/vi/intlayer_with_vite+react.md +16 -3
  818. package/docs/vi/intlayer_with_vite+solid.md +16 -3
  819. package/docs/vi/intlayer_with_vite+svelte.md +16 -3
  820. package/docs/vi/intlayer_with_vite+vanilla.md +16 -3
  821. package/docs/vi/intlayer_with_vite+vue.md +16 -3
  822. package/docs/vi/introduction.md +0 -1
  823. package/docs/vi/readme.md +0 -1
  824. package/docs/vi/releases/v8.md +1 -5
  825. package/docs/vi/self_hosting.md +408 -234
  826. package/docs/zh/benchmark/nextjs.md +13 -13
  827. package/docs/zh/benchmark/solid.md +5 -5
  828. package/docs/zh/benchmark/svelte.md +4 -4
  829. package/docs/zh/benchmark/tanstack.md +14 -13
  830. package/docs/zh/benchmark/vue.md +5 -5
  831. package/docs/zh/chrome_extension.md +130 -0
  832. package/docs/zh/cli/index.md +6 -1
  833. package/docs/zh/cli/infra.md +162 -0
  834. package/docs/zh/cli/init.md +24 -1
  835. package/docs/zh/dictionary/html.md +172 -5
  836. package/docs/zh/dictionary/markdown.md +262 -1
  837. package/docs/zh/intlayer_with_analog.md +23 -1
  838. package/docs/zh/intlayer_with_angular_19.md +24 -1
  839. package/docs/zh/intlayer_with_angular_21.md +24 -1
  840. package/docs/zh/intlayer_with_astro.md +29 -21
  841. package/docs/zh/intlayer_with_astro_lit.md +47 -27
  842. package/docs/zh/intlayer_with_astro_preact.md +48 -27
  843. package/docs/zh/intlayer_with_astro_react.md +48 -27
  844. package/docs/zh/intlayer_with_astro_solid.md +48 -27
  845. package/docs/zh/intlayer_with_astro_svelte.md +47 -27
  846. package/docs/zh/intlayer_with_astro_vue.md +47 -27
  847. package/docs/zh/intlayer_with_react_router_v7.md +12 -1
  848. package/docs/zh/intlayer_with_remix_3.md +22 -1
  849. package/docs/zh/intlayer_with_solid_start.md +14 -7
  850. package/docs/zh/intlayer_with_svelte_kit.md +12 -1
  851. package/docs/zh/intlayer_with_tanstack+solid.md +13 -2
  852. package/docs/zh/intlayer_with_tanstack.md +13 -6
  853. package/docs/zh/intlayer_with_vite+lit.md +75 -3
  854. package/docs/zh/intlayer_with_vite+preact.md +16 -3
  855. package/docs/zh/intlayer_with_vite+react.md +16 -3
  856. package/docs/zh/intlayer_with_vite+solid.md +16 -3
  857. package/docs/zh/intlayer_with_vite+svelte.md +16 -3
  858. package/docs/zh/intlayer_with_vite+vanilla.md +16 -3
  859. package/docs/zh/intlayer_with_vite+vue.md +16 -3
  860. package/docs/zh/introduction.md +0 -1
  861. package/docs/zh/readme.md +0 -1
  862. package/docs/zh/releases/v8.md +1 -5
  863. package/docs/zh/self_hosting.md +410 -237
  864. package/docs/zh-TW/introduction.md +0 -1
  865. package/legal/ar/privacy_notice.md +9 -3
  866. package/legal/de/privacy_notice.md +9 -3
  867. package/legal/en/privacy_notice.md +10 -3
  868. package/legal/en-GB/privacy_notice.md +9 -3
  869. package/legal/es/privacy_notice.md +9 -3
  870. package/legal/fr/privacy_notice.md +9 -3
  871. package/legal/hi/privacy_notice.md +9 -3
  872. package/legal/id/privacy_notice.md +9 -3
  873. package/legal/it/privacy_notice.md +9 -3
  874. package/legal/ja/privacy_notice.md +9 -3
  875. package/legal/ko/privacy_notice.md +9 -3
  876. package/legal/pl/privacy_notice.md +9 -3
  877. package/legal/pt/privacy_notice.md +9 -3
  878. package/legal/ru/privacy_notice.md +9 -3
  879. package/legal/tr/privacy_notice.md +9 -3
  880. package/legal/uk/privacy_notice.md +9 -3
  881. package/legal/vi/privacy_notice.md +9 -3
  882. package/legal/zh/privacy_notice.md +9 -3
  883. package/package.json +6 -6
  884. package/src/generated/docs.entry.ts +40 -40
  885. package/docs/ar/intlayer_with_astro_vanilla.md +0 -709
  886. package/docs/ar/roadmap.md +0 -321
  887. package/docs/de/intlayer_with_astro_vanilla.md +0 -705
  888. package/docs/de/roadmap.md +0 -322
  889. package/docs/en/intlayer_with_astro_vanilla.md +0 -706
  890. package/docs/en/roadmap.md +0 -325
  891. package/docs/en-GB/intlayer_with_astro_vanilla.md +0 -709
  892. package/docs/en-GB/roadmap.md +0 -322
  893. package/docs/es/intlayer_with_astro_vanilla.md +0 -701
  894. package/docs/es/roadmap.md +0 -322
  895. package/docs/fr/intlayer_with_astro_vanilla.md +0 -701
  896. package/docs/fr/roadmap.md +0 -322
  897. package/docs/hi/intlayer_with_astro_vanilla.md +0 -720
  898. package/docs/hi/roadmap.md +0 -322
  899. package/docs/id/intlayer_with_astro_vanilla.md +0 -705
  900. package/docs/id/roadmap.md +0 -325
  901. package/docs/it/intlayer_with_astro_vanilla.md +0 -705
  902. package/docs/it/roadmap.md +0 -322
  903. package/docs/ja/intlayer_with_astro_vanilla.md +0 -708
  904. package/docs/ja/roadmap.md +0 -322
  905. package/docs/ko/intlayer_with_astro_vanilla.md +0 -720
  906. package/docs/ko/roadmap.md +0 -322
  907. package/docs/pl/intlayer_with_astro_vanilla.md +0 -705
  908. package/docs/pl/roadmap.md +0 -325
  909. package/docs/pt/intlayer_with_astro_vanilla.md +0 -705
  910. package/docs/pt/roadmap.md +0 -322
  911. package/docs/ru/intlayer_with_astro_vanilla.md +0 -716
  912. package/docs/ru/roadmap.md +0 -322
  913. package/docs/tr/intlayer_with_astro_vanilla.md +0 -705
  914. package/docs/tr/roadmap.md +0 -325
  915. package/docs/uk/intlayer_with_astro_vanilla.md +0 -705
  916. package/docs/uk/roadmap.md +0 -325
  917. package/docs/vi/intlayer_with_astro_vanilla.md +0 -705
  918. package/docs/vi/roadmap.md +0 -325
  919. package/docs/zh/intlayer_with_astro_vanilla.md +0 -704
  920. package/docs/zh/roadmap.md +0 -322
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2026-09-13
3
3
  updatedAt: 2026-09-13
4
- title: "vue-i18n vs Intlayer: Бенчмарк 2026"
5
- description: vue-i18n и Intlayer измерены на одном приложении Vite + Vue 3. Размер библиотеки, JavaScript на странице, утечка контента, размер компонента и реактивность переключения локали, с объяснением цифр.
4
+ title: "vue-i18n vs Intlayer: бенчмарк 2026"
5
+ description: vue-i18n и Intlayer, измеренные на одном и том же приложении Vite + Vue 3. Размер библиотеки, JavaScript на страницу, утечка контента, размер компонентов и реактивность переключения локали, с объяснением цифр.
6
6
  keywords:
7
7
  - vue-i18n
8
8
  - Intlayer
@@ -21,34 +21,341 @@ slugs:
21
21
  author: aymericzip
22
22
  ---
23
23
 
24
- # vue-i18n VS Intlayer | Бенчмарк интернационализации Vue (i18n)
24
+ # vue-i18n VS Intlayer | Бенчмарк интернационализации (i18n) для Vue
25
25
 
26
- `vue-i18n` — справочная библиотека i18n для Vue. Intlayer — альтернатива на основе компилятора с областью действия компонента и интеграцией Vue (`vue-intlayer`). Мы уже сравнивали их [функции и опыт разработчика](https://intlayer.org/blog/vue-i18n-vs-intlayer). Эта статья рассматривает, во что обходится каждый из них после сборки приложения.
26
+ `vue-i18n` — эталонная i18n-библиотека для Vue. Intlayer — альтернатива на основе компилятора с контентом, ограниченным областью компонента, и интеграцией с Vue (`vue-intlayer`). Мы уже сравнивали их [возможности и опыт разработчика](https://intlayer.org/blog/vue-i18n-vs-intlayer). Эта статья рассматривает, во что обходится каждая из них после сборки приложения.
27
27
 
28
- Данные получены из [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom), открытого набора, который собирает одно и то же приложение с каждой библиотекой и записывает то, что браузер фактически загружает и выполняет.
28
+ Данные взяты из [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom), open-source набора, который собирает одно и то же приложение с каждой библиотекой и записывает, что браузер на самом деле загружает и выполняет.
29
29
 
30
30
  <TOC/>
31
31
 
32
- > **tl;dr**: На том же приложении Vite + Vue 3 `vue-i18n` отправляет **134.9 KB** сжатого JavaScript на страницу по сравнению с **41.3 KB** для приложения без i18n. Intlayer отправляет **57.1 KB**. Сам runtime `vue-i18n` весит **24.3 KB gzip** (в 6 раз больше, чем **3.9 KB** Intlayer), каждая страница содержит **90% строк иностранных страниц**, и компонент, скомпилированный в изоляции, притягивает **196 KB**, потому что он привязан к глобальному дереву сообщений. Адаптер `@intlayer/vue-i18n` сохраняет API `vue-i18n` и измеряется **47.0 KB** на страницу.
32
+ > **tl;dr**: На одном и том же приложении Vite + Vue 3 `vue-i18n` отдаёт **134,9 КБ** gzip-сжатого JavaScript на страницу против **41,3 КБ** для приложения без i18n. Intlayer отдаёт **57,1 КБ**. Один только рантайм `vue-i18n` весит **24,3 КБ gzip** (в 6 раз больше 3,9 КБ у Intlayer), каждая страница несёт **90 % строк чужих страниц**, а компонент, скомпилированный изолированно, тянет за собой **196 КБ**, потому что привязан к глобальному дереву сообщений. Адаптер `@intlayer/vue-i18n` сохраняет API `vue-i18n` и показал **47,0 КБ** на страницу.
33
33
 
34
- ## Вкратце
34
+ ## Коротко
35
35
 
36
- - **vue-i18n** - Библиотека i18n де-факто для Vue 2 / Vue 3 и ядро `@nuxtjs/i18n`. ICU-style сообщения, SFC блоки `<i18n>`, директива `v-t`, форматеры `d()` / `n()`, большая экосистема. Сообщения регистрируются на глобальном экземпляре в `createI18n()`; ленивая загрузка по локали — это ручной паттерн `setLocaleMessage()`, а разделение по маршрутам вы строите сами.
37
- - **Intlayer** - Компонент-центричная модель контента. Словари `.content.ts` находятся рядом с компонентом, который они обслуживают, компилятор времени сборки (`vite-intlayer`) удаляет неиспользуемый код и выполняет ленивую загрузку по компоненту и по локали, строгие типы TypeScript генерируются из вашего контента, и отсутствующие переводы приводят к ошибке на этапе сборки. Поставляется с помощниками маршрутизатора / SEO, Visual Editor / CMS и AI-ассистентом перевода.
36
+ - **vue-i18n** — де-факто i18n-библиотека для Vue 2 / Vue 3 и ядро `@nuxtjs/i18n`. Сообщения в стиле ICU, блоки `<i18n>` в SFC, директива `v-t`, форматтеры `d()` / `n()`, большая экосистема. Сообщения регистрируются на глобальном экземпляре в `createI18n()`; ленивая загрузка по локали — это ручной паттерн с `setLocaleMessage()`, а разбиение по маршрутам вам нужно строить самостоятельно.
37
+ - **Intlayer** — модель контента, ориентированная на компоненты. Словари `.content.ts` лежат рядом с компонентом, который они обслуживают, компилятор на этапе сборки (`vite-intlayer`) выполняет tree-shaking и ленивую загрузку по компонентам и по локалям, строгие типы TypeScript генерируются из вашего контента, а отсутствующие переводы приводят к ошибке на этапе сборки. Включает хелперы для роутера / SEO, Visual Editor / CMS и перевод с помощью ИИ.
38
38
 
39
- | Библиотека | GitHub звёзд | Всего коммитов | Последний коммит | Первая версия | NPM версия | Загрузки NPM |
39
+ | Библиотека | Звёзды GitHub | Всего коммитов | Последний коммит | Первая версия | Версия NPM | Загрузки NPM |
40
40
  | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
41
41
  | `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) | Апрель 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) |
42
42
  | `intlify/vue-i18n` | [![GitHub Repo stars](https://img.shields.io/github/stars/intlify/vue-i18n?style=for-the-badge&label=%E2%AD%90%20stars)](https://github.com/intlify/vue-i18n/stargazers) | [![GitHub commit activity](https://img.shields.io/github/commit-activity/t/intlify/vue-i18n?style=for-the-badge&label=commits)](https://github.com/intlify/vue-i18n/commits) | [![Last Commit](https://img.shields.io/github/last-commit/intlify/vue-i18n?style=for-the-badge)](https://github.com/intlify/vue-i18n/commits) | Дек 2016 | [![npm](https://img.shields.io/npm/v/vue-i18n?style=for-the-badge)](https://www.npmjs.com/package/vue-i18n) | [![npm downloads](https://img.shields.io/npm/dm/vue-i18n?style=for-the-badge)](https://www.npmjs.com/package/vue-i18n) |
43
43
 
44
- > Значки обновляются автоматически. Снимки будут отличаться со временем.
44
+ > Бейджи обновляются автоматически. Снимки будут меняться со временем.
45
45
 
46
- ## Сравнение функций рядом
46
+ ## Сравнение возможностей бок о бок
47
47
 
48
- | Функция | `vue-intlayer` (Intlayer) | `vue-i18n` |
49
- | ---------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
50
- | **Переводы рядом с компонентами** | ✅ Да, `.content.ts` расположен вместе с каждым компонентом | ✅ Через блоки SFC `<i18n>` (опционально); глобальные каталоги — это обычная настройка |
51
- | **Интеграция TypeScript** | ✅ Строгие типы автоматически генерируются из контента | ✅ Хорошая типизация; строгая безопасность ключей требует типизации схемы и дисциплины |
52
- | **Обнаружение отсутствующих переводов** | ✅ Ошибка TypeScript + ошибка/предупреждение во время сборки | ⚠️ Fallback во время выполнения + предупреждение в консоли |
53
- | **Богатое содержимое (компоненты / Markdown)** | ✅ Прямая поддержка | ⚠️ Интерполяция компонента `<i18n-t>`; Markdown через внешние плагины |
54
- | **Поддержка ICU** | ⚠️ WIP | ✅ Да |
48
+ | Возможность | `vue-intlayer` (Intlayer) | `vue-i18n` |
49
+ | ------------------------------------------------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
50
+ | **Переводы рядом с компонентами** | ✅ Да, `.content.ts` располагается рядом с каждым компонентом | ✅ Через блоки SFC `<i18n>` (опционально); обычно используются глобальные каталоги |
51
+ | **Интеграция с TypeScript** | ✅ Строгие типы автоматически генерируются из контента | ✅ Хорошие типы; строгая безопасность ключей требует типизации схемы и дисциплины |
52
+ | **Обнаружение отсутствующих переводов** | ✅ Ошибка TypeScript + ошибка/предупреждение во время сборки | ⚠️ Fallback во время выполнения + предупреждение в консоли |
53
+ | **Богатый контент (компоненты / Markdown)** | ✅ Прямая поддержка | ⚠️ Интерполяция компонентов `<i18n-t>`; Markdown через внешние плагины |
54
+ | **Поддержка ICU** | ⚠️ В работе | ✅ Да |
55
+ | **Форматирование (даты, числа, валюты)** | ✅ Форматтеры на основе Intl | ✅ `d()` / `n()` с `datetimeFormats` / `numberFormats` |
56
+ | **Локализованная маршрутизация** | ✅ Хелперы для Vue Router / Nuxt, `getMultilingualUrls` | ⚠️ Не в ядре (`@nuxtjs/i18n` или собственная настройка роутера) |
57
+ | **SEO-хелперы (hreflang, sitemap, robots)** | ✅ Встроенные хелперы | ❌ Не в ядре |
58
+ | **Tree-shaking (отдавать только используемый контент)** | ✅ По компонентам, по локалям, автоматически компилятором | ⚠️ Вручную: разбивать каталоги, `setLocaleMessage()` на каждый маршрут |
59
+ | **Ленивая загрузка** | ✅ `importMode: 'dynamic'` (одна строка конфигурации) | ✅ Ручной `import()` + `setLocaleMessage()` |
60
+ | **Очистка неиспользуемого контента** | ✅ Мёртвые словари удаляются на этапе сборки | ❌ Не встроено |
61
+ | **Проверка отсутствующих переводов (CLI / CI)** | ✅ `npx intlayer content test` | ⚠️ Сторонние инструменты (`vue-i18n-extract`) |
62
+ | **Перевод с помощью ИИ** | ✅ Встроен, использует ваши собственные ключи провайдера | ❌ Нет |
63
+ | **Visual Editor / CMS** | ✅ Бесплатный Visual Editor + опциональная CMS | ❌ Нет (внешние платформы локализации) |
64
+ | **MCP-сервер и Agent Skills** | ✅ Да | ❌ Нет |
65
+ | **Экосистема / сообщество** | ⚠️ Меньше, но быстро растёт | ✅ Большая и зрелая в экосистеме Vue |
66
+
67
+ ## Бенчмарк
68
+
69
+ ### Что измерялось
70
+
71
+ Набор [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom) собирает **одно и то же приложение Vite + Vue 3** с каждой библиотекой: **10 страниц** (home, about, blog, careers, contact, FAQ, pricing, products, settings, team), **10 локалей** (`en`, `fr`, `es`, `de`, `it`, `pt`, `zh`, `ja`, `ko`, `ru`), одинаковые компоненты и одинаковый контент. Страницы измеряются в `en` и `fr`.
72
+
73
+ Обе библиотеки тестировались в конфигурации **static** — той, с которой выходит большинство Vue-проектов: для `vue-i18n` JSON каждой локали импортируется и передаётся в `createI18n({ messages })`; для Intlayer — `importMode: 'static'` по умолчанию. В этом режиме Intlayer тоже упаковывает все локали, но компилятор по-прежнему ограничивает контент **по компонентам**, так что страница несёт только словари тех компонентов, которые она рендерит.
74
+
75
+ Для каждой сборки набор записывает:
76
+
77
+ - **Lib size**: gzip-размер пустого компонента, который только импортирует i18n-библиотеку. Фиксированная стоимость рантайма.
78
+ - **Page JS**: gzip JavaScript, загружаемый на страницу, усреднённый по всем страницам и локалям.
79
+ - **Locale leak %**: доля переведённых строк в загруженном JS, которые принадлежат локали, которую пользователь **не** просматривает (отпечатки по `en` и `fr`, так что 50 % означает «вторая измеряемая локаль присутствует полностью»; при 10 упакованных локалях реальные потери выше).
80
+ - **Page leak %**: доля переведённых строк в загруженном JS, которые принадлежат странице, на которой пользователь **не** находится.
81
+ - **Component avg**: средний gzip-размер каждого компонента, скомпилированного изолированно. Показывает, сколько i18n-рантайма и каталога тянет за собой один компонент.
82
+ - **E2E reactivity**: реальное время между выбором новой локали и обновлением `html[lang]` в DOM (Playwright, 5 итераций).
83
+ - **Page load**: `PerformanceNavigationTiming.duration`.
84
+
85
+ > Цифры ниже взяты из прогона от **2026-09-12** с `vue-i18n` 11.4.0 и `intlayer` 9.5.0 / 9.5.1. Тестовое приложение намеренно небольшое (несколько десятков строк на локаль), поэтому проценты утечки описывают **закономерность**: они растут вместе с вашим контентом, тогда как стоимость рантайма остаётся фиксированной.
86
+
87
+ ### Результаты на Vite + Vue 3
88
+
89
+ | Библиотека | Стратегия | Lib size (gz) | Lib size (min) | Page JS ср. (gz) | Locale leak | Page leak | Component ср. (gz) | Реактивность E2E | Page load |
90
+ | ----------------------------- | --------- | ------------: | -------------: | ---------------: | ----------: | --------: | -----------------: | ---------------: | --------: |
91
+ | **base** (без i18n) | - | 0,0 КБ | 0,0 КБ | 41,3 КБ | 0,0 % | - | 1,1 КБ | 1,8 мс | 10,8 мс |
92
+ | `vue-i18n` | static | 24,3 КБ | 83,2 КБ | 134,9 КБ | 50,0 % | 90,0 % | 196,0 КБ | 2,8 мс | 13,6 мс |
93
+ | **`vue-intlayer`** | static | **3,9 КБ** | **11,1 КБ** | **57,1 КБ** | 56,8 % | **0,0 %** | **7,7 КБ** | **4,5 мс** | 13,8 мс |
94
+ | `@intlayer/vue-i18n` (compat) | static | 7,9 КБ | 23,2 КБ | 47,0 КБ | 15,0 % | 0,0 % | 8,4 КБ | 1,5 мс | 9,3 мс |
95
+
96
+ > Столбец page-leak для базового приложения оставлен пустым: без i18n-библиотеки снятие отпечатков подхватывает жёстко закодированные строки в общих чанках, и число не имеет смысла.
97
+
98
+ **Как это читать**
99
+
100
+ - **Стоимость рантайма.** `vue-i18n` — один из самых тяжёлых рантаймов во всём бенчмарке: **24,3 КБ gzip / 83,2 КБ в минифицированном виде** для пустого компонента, который только его импортирует. `vue-intlayer` стоит 3,9 КБ gzip. Этот разрыв оплачивается на каждой странице независимо от того, сколько у вас строк.
101
+ - **JavaScript на страницу.** Приложение без i18n весит 41,3 КБ. `vue-i18n` увеличивает его более чем втрое — до **134,9 КБ**; Intlayer выходит на **57,1 КБ**, +15,8 КБ, большая часть из которых — десять упакованных локалей (см. следующий пункт).
102
+ - **Утечка.** С `createI18n({ messages: { en, fr, ... } })` каждая страница отдаёт все локали и строки всех страниц: **50 % утечки локалей** (по двум измеряемым локалям) и **90 % утечки страниц**. Режим `static` у Intlayer тоже упаковывает все локали (отсюда сопоставимый показатель утечки локалей), но даёт **0 % утечки страниц**: страница подтягивает только словари тех компонентов, которые рендерит. Переход на `importMode: 'dynamic'` убирает и утечку локалей; эта конфигурация не входила в данный прогон для Vue.
103
+ - **Размер компонентов — то место, где проявляется архитектура.** Компонент, вызывающий `useI18n()`, компилируется в среднем в **196 КБ**, потому что `t()` привязан к глобальному экземпляру, который держит все сообщения всех локалей. Тот же компонент с `useIntlayer()` компилируется в **7,7 КБ**: он обращается только к своему словарю.
104
+ - **Реактивность** не является проблемой ни для одной из них (2–5 мс). Система реактивности Vue делает переключение локали дешёвым, как только сообщения находятся в памяти.
105
+ - **`@intlayer/vue-i18n`**, drop-in адаптер, сохраняет API `vue-i18n` и показал **47,0 КБ на страницу** и **8,4 КБ на компонент**, при этом код приложения не изменялся.
106
+
107
+ > Для справки: тот же прогон измерил `fluent-vue` на уровне 171,8 КБ на страницу, 29,7 КБ рантайма и 217 КБ на компонент.
108
+
109
+ ## Откуда разрыв? Глобальный экземпляр против скомпилированных словарей
110
+
111
+ `vue-i18n` — это рантайм. `createI18n()` создаёт глобальный экземпляр, хранящий дерево сообщений для каждой локали; `useI18n()` привязывает к нему каждый компонент; `t("footer.github")` ищет ключ во время рендера. Именно это делает возможными блоки SFC `<i18n>`, `v-t` и загрузку сообщений во время выполнения, и именно поэтому граф зависимостей каждого компонента включает всё дерево:
112
+
113
+ ```bash
114
+ .
115
+ ├── locales
116
+ │ ├── en.json
117
+ │ ├── fr.json
118
+ │ └── ... # один файл на локаль, все страницы внутри
119
+ └── src
120
+ ├── i18n.ts # createI18n({ messages: { en, fr, ... } })
121
+ ├── main.ts
122
+ └── components
123
+ └── Footer.vue # const { t } = useI18n(); t("footer.github")
124
+ ```
125
+
126
+ Оптимизация означает, что **вы** разбиваете `en.json` на файлы по маршрутам, **вы** вызываете `setLocaleMessage()` в guard роутера и **вы** поддерживаете корректность соответствия маршрутов файлам по мере перемещения компонентов. Рантайм не может сделать это за вас, потому что не знает, какие ключи запросит компонент.
127
+
128
+ Intlayer переносит это знание на этап сборки. Контент объявляется рядом с компонентом, а `vite-intlayer` определяет, какой компонент импортирует какой словарь:
129
+
130
+ ```bash
131
+ .
132
+ ├── intlayer.config.ts
133
+ └── src
134
+ ├── main.ts # createApp(App).use(intlayer)
135
+ └── components
136
+ └── Footer
137
+ ├── Footer.vue # useIntlayer("footer")
138
+ └── Footer.content.ts
139
+ ```
140
+
141
+ Компилятор генерирует для каждого словаря и каждой локали ровно тот JSON, который нужен этому компоненту, и отбрасывает словари, которые никто не импортирует. Ограничение по маршрутам — следствие ограничения по компонентам, а не отдельная задача.
142
+
143
+ > Чтобы также отбросить неиспользуемые локали, установите `dictionary.importMode: 'dynamic'` в `intlayer.config.ts`. См. [документацию по оптимизации бандла](https://intlayer.org/doc/concept/bundle-optimization).
144
+
145
+ ## Опыт разработчика
146
+
147
+ ### Настройка
148
+
149
+ **vue-i18n**
150
+
151
+ ```ts fileName="src/i18n.ts"
152
+ import { createI18n } from "vue-i18n";
153
+ import en from "../locales/en.json";
154
+ import fr from "../locales/fr.json";
155
+
156
+ export const i18n = createI18n({
157
+ legacy: false,
158
+ locale: "en",
159
+ fallbackLocale: "en",
160
+ messages: { en, fr },
161
+ });
162
+ ```
163
+
164
+ ```ts fileName="src/main.ts"
165
+ import { createApp } from "vue";
166
+ import App from "./App.vue";
167
+ import router from "./router";
168
+ import { i18n } from "./i18n";
169
+
170
+ createApp(App).use(router).use(i18n).mount("#app");
171
+ ```
172
+
173
+ **Intlayer**
174
+
175
+ ```ts fileName="intlayer.config.ts"
176
+ import { type IntlayerConfig, Locales } from "intlayer";
177
+
178
+ const config: IntlayerConfig = {
179
+ internationalization: {
180
+ locales: [Locales.ENGLISH, Locales.FRENCH],
181
+ defaultLocale: Locales.ENGLISH,
182
+ },
183
+ };
184
+
185
+ export default config;
186
+ ```
187
+
188
+ ```ts fileName="vite.config.ts"
189
+ import { defineConfig } from "vite";
190
+ import vue from "@vitejs/plugin-vue";
191
+ import { intlayer } from "vite-intlayer";
192
+
193
+ export default defineConfig({
194
+ plugins: [intlayer(), vue()],
195
+ });
196
+ ```
197
+
198
+ ```ts fileName="src/main.ts"
199
+ import { createApp } from "vue";
200
+ import { intlayer } from "vue-intlayer";
201
+ import App from "./App.vue";
202
+ import router from "./router";
203
+
204
+ createApp(App).use(intlayer).use(router).mount("#app");
205
+ ```
206
+
207
+ ### Компонент
208
+
209
+ **vue-i18n**
210
+
211
+ ```json fileName="locales/en.json"
212
+ {
213
+ "counter": {
214
+ "label": "Counter",
215
+ "increment": "Increment"
216
+ }
217
+ }
218
+ ```
219
+
220
+ ```vue fileName="src/components/Counter.vue"
221
+ <script setup lang="ts">
222
+ import { ref } from "vue";
223
+ import { useI18n } from "vue-i18n";
224
+
225
+ const { t, n } = useI18n();
226
+ const count = ref(0);
227
+ </script>
228
+
229
+ <template>
230
+ <div>
231
+ <p>{{ n(count) }}</p>
232
+ <button :aria-label="t('counter.label')" @click="count++">
233
+ {{ t("counter.increment") }}
234
+ </button>
235
+ </div>
236
+ </template>
237
+ ```
238
+
239
+ `t('counter.label')` остаётся строкой, пока вы сами не типизируете схему сообщений; опечатка отрендерит ключ.
240
+
241
+ **Intlayer**
242
+
243
+ ```ts fileName="src/components/Counter/Counter.content.ts"
244
+ import { t, type Dictionary } from "intlayer";
245
+
246
+ const counterContent = {
247
+ key: "counter",
248
+ content: {
249
+ label: t({ en: "Counter", fr: "Compteur" }),
250
+ increment: t({ en: "Increment", fr: "Incrémenter" }),
251
+ },
252
+ } satisfies Dictionary;
253
+
254
+ export default counterContent;
255
+ ```
256
+
257
+ ```vue fileName="src/components/Counter/Counter.vue"
258
+ <script setup lang="ts">
259
+ import { ref } from "vue";
260
+ import { useIntlayer } from "vue-intlayer";
261
+ import { useNumber } from "vue-intlayer/format";
262
+
263
+ const { label, increment } = useIntlayer("counter");
264
+ const number = useNumber();
265
+ const count = ref(0);
266
+ </script>
267
+
268
+ <template>
269
+ <div>
270
+ <p>{{ number.value(count) }}</p>
271
+ <button :aria-label="label" @click="count++">
272
+ {{ increment }}
273
+ </button>
274
+ </div>
275
+ </template>
276
+ ```
277
+
278
+ `label` и `increment` типизированы; опечатка — это ошибка TypeScript, отсутствующее французское значение — ошибка сборки.
279
+
280
+ ### Ленивая загрузка по локали
281
+
282
+ **vue-i18n**
283
+
284
+ ```ts fileName="src/i18n.ts"
285
+ import { nextTick } from "vue";
286
+ import { createI18n } from "vue-i18n";
287
+
288
+ export const i18n = createI18n({
289
+ legacy: false,
290
+ locale: "en",
291
+ fallbackLocale: "en",
292
+ });
293
+
294
+ export const loadLocaleMessages = async (locale: string) => {
295
+ const messages = await import(`../locales/${locale}.json`);
296
+ i18n.global.setLocaleMessage(locale, messages.default);
297
+ await nextTick();
298
+ i18n.global.locale.value = locale;
299
+ };
300
+ ```
301
+
302
+ Затем вызовите `loadLocaleMessages()` из guard роутера и самостоятельно разбейте `locales/{locale}.json` по маршрутам, если хотите ограничение по страницам.
303
+
304
+ **Intlayer**
305
+
306
+ ```ts fileName="intlayer.config.ts"
307
+ const config: IntlayerConfig = {
308
+ // ...
309
+ dictionary: {
310
+ importMode: "dynamic",
311
+ },
312
+ };
313
+ ```
314
+
315
+ ## Сохраните API vue-i18n, получите результат Intlayer
316
+
317
+ `@intlayer/vue-i18n` — это drop-in адаптер: `useI18n()`, `t()`, `d()`, `n()`, интерполяция `{name}` и `{0}`, множественные формы через pipe (`"car | cars"`), `v-t` и `i18n.global.locale` продолжают работать, но обслуживаются из словарей Intlayer, скомпилированных `vite-intlayer`.
318
+
319
+ ```ts fileName="vite.config.ts"
320
+ import { defineConfig } from "vite";
321
+ import vue from "@vitejs/plugin-vue";
322
+ import vueI18nVitePlugin from "@intlayer/vue-i18n/plugin";
323
+
324
+ export default defineConfig({
325
+ plugins: [vue(), vueI18nVitePlugin()],
326
+ });
327
+ ```
328
+
329
+ В бенчмарке compat-сборка того же приложения уменьшилась с **134,9 КБ до 47,0 КБ** на страницу и с **196 КБ до 8,4 КБ** на компонент, при этом компоненты не менялись. Ваши существующие `locales/{locale}.json` могут оставаться источником истины через плагин синхронизации JSON.
330
+
331
+ См. [руководство по миграции с vue-i18n](https://intlayer.org/doc/migration/vue-i18n) и [документацию по совместимости](https://intlayer.org/doc/compatibility/vue-i18n). У пользователей Nuxt тот же путь через [совместимость с `@nuxtjs/i18n`](https://intlayer.org/doc/compatibility/nuxtjs-i18n).
332
+
333
+ ## Когда что выбирать?
334
+
335
+ - **Выбирайте vue-i18n**, если вам нужен стандартный подход Vue, вы полагаетесь на ICU-сообщения или блоки SFC `<i18n>`, уже используете `@nuxtjs/i18n` или платформа перевода ожидает централизованный JSON. Заложите время на разбиение каталогов и ленивую загрузку по маршрутам, если размер бандла имеет значение.
336
+ - **Выбирайте Intlayer**, если вам нужны **контент, ограниченный компонентом**, **строгий TypeScript**, **ошибки отсутствующих ключей на этапе сборки**, **tree-shaking и ленивая загрузка без усилий** и встроенные редакторские инструменты (Visual Editor, CMS, ИИ-перевод, MCP-сервер). Особенно актуально для больших модульных кодовых баз Vue / Nuxt и дизайн-систем.
337
+ - **Выбирайте `@intlayer/vue-i18n`**, если вы уже на `vue-i18n` и хотите выигрыш в размере бандла без переписывания.
338
+
339
+ ## Связанные сравнения
340
+
341
+ - [next-intl vs Intlayer](https://intlayer.org/blog/next-intl-vs-intlayer) (тот же бенчмарк)
342
+ - [i18next vs Intlayer](https://intlayer.org/blog/i18next-vs-intlayer) (тот же бенчмарк)
343
+ - [Lingui vs Intlayer](https://intlayer.org/blog/lingui-vs-intlayer) (тот же бенчмарк)
344
+ - [vue-i18n vs Intlayer (возможности и DX)](https://intlayer.org/blog/vue-i18n-vs-intlayer)
345
+ - [Устарел ли vue-i18n?](https://intlayer.org/blog/is-vue-i18n-outdated)
346
+
347
+ ## Звёзды GitHub
348
+
349
+ Звёзды GitHub — сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямой мерой технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его развитием и, вероятно, будут его использовать.
350
+
351
+ [![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)
352
+
353
+ ## Заключение
354
+
355
+ `vue-i18n` — зрелая, гибкая и глубоко интегрированная с Vue библиотека. Бенчмарк показывает, во что обходится её runtime-first дизайн в сборке Vite: **рантайм 24 КБ gzip**, **134,9 КБ на страницу** для приложения, которое весит 41 КБ без i18n, **90 % контента чужих страниц** на каждой странице и компоненты, каждый из которых достигает **196 КБ**, потому что висит на глобальном дереве сообщений.
356
+
357
+ Intlayer переносит работу в компилятор. Словари по компонентам и очистка мёртвого контента — это результаты сборки, а не соглашения. На том же приложении: **рантайм 3,9 КБ**, **57,1 КБ на страницу**, **0 % утечки страниц**, компоненты **в 25 раз меньше**. А если переписывание не рассматривается, `@intlayer/vue-i18n` проходит большую часть пути, не затрагивая компоненты.
358
+
359
+ Все сырые данные, тестовые приложения и скрипты находятся в [репозитории Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Запустите его сами.
360
+
361
+ Подробнее см. в документе [«Почему Intlayer?»](https://intlayer.org/doc/why).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-09-13
3
- updatedAt: 2026-09-13
3
+ updatedAt: 2026-09-22
4
4
  title: "i18next vs @intlayer/i18next: Aynı API, Farklı Paket Boyutu"
5
5
  description: Bir React veya Next.js uygulaması i18next, react-i18next ve next-i18next çağrılarını koruyup bunları @intlayer/i18next bağdaştırıcıları aracılığıyla sunduğunda ne değişir? Aynı kod üzerinde ölçülen sayfa başına JavaScript, bileşen boyutu, metin sızıntısı ve hidrasyon performansı.
6
6
  keywords:
@@ -28,6 +28,8 @@ author: aymericzip
28
28
 
29
29
  # i18next VS @intlayer/i18next | Aynı API, Farklı Paket Boyutu
30
30
 
31
+ ![i18next VS Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18next-next-intl-intlayer.webp?raw=true)
32
+
31
33
  `@intlayer/i18next`, `@intlayer/react-i18next` ve `@intlayer/next-i18next` uyumluluk bağdaştırıcılarıdır. Kodunuzun zaten kullanmakta olduğu `i18next` API'sini (`useTranslation`, `t()`, `<Trans>`, `i18n.changeLanguage()`, `getFixedT`, `serverSideTranslations`...) doğrudan sunar ve Intlayer tarafından derlenen sözlüklerden besler. Bileşenleriniz değişmez; yalnızca altlarındaki çalışma zamanı (runtime) değişir.
32
34
 
33
35
  Bu makale, biri `next-i18next` ve diğeri `@intlayer/next-i18next` ile oluşturulmuş aynı Next.js uygulaması üzerindeki bu değişimi ölçmektedir. Veriler [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom) projesinden alınmıştır. `i18next` ve Intlayer'ı bağımsız kütüphaneler olarak karşılaştırmak için [i18next vs Intlayer](https://intlayer.org/tr/blog/i18next-vs-intlayer) makalesini okuyabilirsiniz. Bu yazı ise kodunuzu olduğu gibi koruduğunuzda bağdaştırıcının neleri değiştirdiğine odaklanmaktadır.
@@ -109,6 +111,10 @@ Her derleme için şu metrikler kaydedilmiştir:
109
111
 
110
112
  ### Next.js Sonuçları
111
113
 
114
+ İlgilendiğiniz metrikleri ve kütüphaneleri seçin:
115
+
116
+ <I18nBenchmark framework="nextjs" vertical/>
117
+
112
118
  | Yapılandırma | Strateji | Kütüphane (gz) | Sayfa JS Ort (gz) | Dil Sızıntısı | Sayfa Sızıntısı | Bileşen Ort (gz) | E2E Tepki | Hidrasyon |
113
119
  | ---------------------------- | -------------- | -------------: | ----------------: | ------------: | --------------: | ---------------: | ----------: | ----------: |
114
120
  | **base** (i18n yok) | - | 0.0 KB | 141.0 KB | 0.0% | 0.0% | 0.9 KB | 13.4 ms | 11.8 ms |
@@ -129,10 +135,21 @@ Her derleme için şu metrikler kaydedilmiştir:
129
135
  - **Daha hızlı hidrasyon ve dil değiştirme.** Hidrasyon süresi 15.6 ms'den **11.3 ms**'ye iner (`dynamic` kurgusunda arka uç sorgusu kritik yolda olduğu için 27.7 ms sürer). Dil değiştirme süresi de 15-16 ms'den **11-12 ms**'ye düşer.
130
136
  - **Bağdaştırıcı yerel çalışma zamanının aynısı değildir.** Yerel `next-intlayer` **141.3 KB** ile temel uygulamanın sadece +0.3 KB üzerindedir. Bağdaştırıcı, Intlayer çekirdeği üzerinde `i18next` API katmanını (enterpolasyon kuralları, çoğul ve bağlam çözümlemeleri, `<Trans>` etiket ayrıştırması) barındırdığı için yerel sürüme göre +9.4 KB ek yük getirir. Bu bir geçiş köprüsüdür, nihai durak değildir.
131
137
 
138
+ <ClickToOpenIframe
139
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
140
+ width="100%"
141
+ height="600px"
142
+ style="border:none;"
143
+ />
144
+
145
+ > Tüm tablo, her kütüphane ve her strateji, [Next.js kıyaslama raporunda](https://intlayer.org/tr/doc/benchmark/nextjs).
146
+
132
147
  > Vite / TanStack Start üzerindeki `react-i18next` bağdaştırıcısı bu test serisine dahil edilmemiştir. TanStack Start için temel referans [i18next vs Intlayer](https://intlayer.org/tr/blog/i18next-vs-intlayer) yazısında incelenebilir.
133
148
 
134
149
  ## Rakamların Değişme Sebebi
135
150
 
151
+ ![The Intlayer compiler extracts content from components](https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.webp?raw=true)
152
+
136
153
  `components/` klasöründeki kodlar hiç değişmedi; tüm kazanımlar `useTranslation` fonksiyonunun neye bağlandığından kaynaklanmaktadır.
137
154
 
138
155
  **`i18next` ile**, bağlama genel örneğe (global instance) yapılır. İçine yüklenen her veri (`static` modunda tüm diller, `dynamic` modunda etkin dilin tüm ad alanı) `useTranslation()` çağıran her bileşenden erişilebilir durumdadır. Paketleyici bu örneğin içeriğini daha küçük parçalara bölemez ve çalışma zamanı render anında hangi anahtarların isteneceğini bilemez.
@@ -149,6 +166,10 @@ Her derleme için şu metrikler kaydedilmiştir:
149
166
  └── About.tsx # useTranslation(); t("about.title")
150
167
  ```
151
168
 
169
+ Örneğin içerdiği her şey her sayfaya gönderilir ve israf iki eksende büyür, sayfalar ve diller:
170
+
171
+ ![Theoretical content leakage by architecture](https://github.com/aymericzip/intlayer/blob/main/docs/assets/theorical_content_leakage.webp?raw=true)
172
+
152
173
  **`@intlayer/next-i18next` ile**, bağlama doğrudan sözlüğe yapılır. `syncJSON` her ad alanı dosyasını bir sözlüğe dönüştürür; optimizasyon adımı ise bileşene yalnızca bildirdiği sözlüğü verir. Bu içe aktarım paketleyici tarafından kolayca izlenebilir, sayfa ve dil bazında eksiksiz olarak bölünebilir.
153
174
 
154
175
  ```bash
@@ -297,26 +318,112 @@ export default defineConfig({
297
318
 
298
319
  ## Başlamadan Önce Bilinmesi Gereken Kısıtlamalar
299
320
 
300
- - **Arka uçlar ve algılayıcılar devre dışıdır.** `i18n.use(HttpBackend)` yalnızca eklentinin `init` fonksiyonunu çağırır. Uygulamanız çalışma zamanında CMS'ten dinamik çeviri çekmeye bağımlıysa bu akış sonlanır; bunun yerine Intlayer CMS'i veya `intlayer pull` / `push` komutlarını tercih edin.
301
- - **`resources` birleştirilmez, yok sayılır.** Bazı diğer bağdaştırıcıların aksine, `@intlayer/i18next` satır içi `resources` nesnesini bir yedekleme mekanizması olarak kullanmaz. Her anahtarın senkronize sözlüklerde fiilen bulunması şarttır (bu durum `intlayer test` ile doğrulanır).
302
- - **App Router sağlayıcı düzenlemesi gerektirir.** Yukarıda gösterilen tek bir dosya. `appWithTranslation` kullanan Pages Router projelerinde hiçbir değişiklik gerekmez.
303
- - **`next-i18next.config.js` dikkate alınmaz.** `localePath`, `fallbackLng`, `reloadOnPrerender` gibi parametreler çalışmaz; diller ve varsayılanlar `intlayer.config.ts` içinde tanımlanmalıdır.
304
- - **Bağdaştırıcının da bir boyutu vardır.** `next-intlayer`'a kıyasla çalışma zamanında 9.4 KB ve sayfa başına +9.4 KB ek yük getirir. Tüm bileşenler `useIntlayer`'a geçtiğinde bağdaştırıcıyı kaldırabilirsiniz.
321
+ <AccordionGroup>
322
+ <Accordion header="Backend'ler ve algılayıcılar etkisizdir">
323
+
324
+ `i18n.use(HttpBackend)` eklentinin init fonksiyonunu çağırır ve başka hiçbir şey yapmaz. Uygulamanız çalışma zamanında bir CMS'ten çevirileri çekmeye dayanıyorsa, bu akış artık yoktur; bunun yerine [Intlayer CMS](https://intlayer.org/tr/doc/concept/cms) veya `intlayer pull` / `push` komutlarını kullanın. Dil algılama, Intlayer'ın yönlendirme yapılandırması haline gelir (URL ön eki, çerez, başlık).
325
+
326
+ </Accordion>
327
+ <Accordion header="resources yoksayılır, birleştirilmez">
328
+
329
+ Diğer bazı adaptörlerin aksine, `@intlayer/i18next` satır içi `resources` nesnesini bir geri dönüş olarak kullanmaz. Her anahtar, `intlayer test` komutunun doğruladığı senkronize sözlüklerde bulunmalıdır.
330
+
331
+ </Accordion>
332
+ <Accordion header="App Router sağlayıcı düzenlemesi gerektirir">
333
+
334
+ Yukarıda gösterilen tek bir dosya. `appWithTranslation` kullanan Pages Router hiçbir şey gerektirmez.
335
+
336
+ </Accordion>
337
+ <Accordion header="next-i18next.config.js okunmaz">
338
+
339
+ `localePath`, `fallbackLng`, `reloadOnPrerender` ve benzerlerinin bir karşılığı yoktur; diller ve geri dönüş `intlayer.config.ts` dosyasından gelir.
340
+
341
+ </Accordion>
342
+ <Accordion header="Adaptör ücretsiz değildir">
343
+
344
+ `next-intlayer`'a kıyasla 9.4 KB çalışma zamanı ve sayfa başına +9.4 KB ek yük. Her bileşen `useIntlayer` kullanımına geçtikten sonra adaptörü kaldırın.
345
+
346
+ </Accordion>
347
+ </AccordionGroup>
305
348
 
306
349
  ## Hangi Çözüm Ne Zaman Tercih Edilmeli?
307
350
 
308
- - **`i18next` ile devam edin**: Uygulamanız çalışma zamanı arka uçlarına (istek anında CMS'ten sunulan çeviriler), özel eklenti ekosistemine veya bağdaştırıcıların kapsamadığı React dışı bir ortama zorunlu olarak bağımlıysa.
309
- - **`@intlayer/*` kullanın**: Halihazırda `react-i18next` / `next-i18next` kullanıyorsanız ve kodunuzu yeniden yazmadan 68 KB tasarruf, 8 kat daha küçük bileşenler, %0 sızıntı, tiplendirilmiş anahtarlar ve CI doğrulaması elde etmek istiyorsanız. Mevcut `i18next` projeleri için en pratik yükseltme yoludur.
310
- - **Yerel mimariye (`next-intlayer` / `react-intlayer`) geçin**: Yeni projeler için veya bağdaştırıcı geçişi tamamlandıktan sonra. En hafif alternatiftir (5.5 KB, sayfa başına +0.3 KB) ve senkron Server Components ile bileşen düzeyinde `.content.ts` kullanımının önünü açar.
351
+ <AccordionGroup>
352
+ <Accordion header="i18next'te kalın">
353
+
354
+ Uygulamanız çalışma zamanı backend'lerine (istek anında bir CMS tarafından sunulan çeviriler), eklenti ekosistemine veya adaptörlerin kapsamadığı React dışı bir hedefe bağımlıysa.
355
+
356
+ </Accordion>
357
+ <Accordion header="@intlayer/* kullanın">
358
+
359
+ `react-i18next` / `next-i18next` kullanıyorsanız ve kodu yeniden yazmadan 68 KB tasarruf, 8 kat daha küçük bileşenler, %0 sızıntı, tiplenmiş anahtarlar ve CI kontrolleri istiyorsanız. Mevcut bir `i18next` kod tabanı için giriş noktası budur.
360
+
361
+ </Accordion>
362
+ <Accordion header="Yerel kullanıma geçin (next-intlayer / react-intlayer)">
363
+
364
+ Yeni projeler için veya adaptör görevini tamamladıktan sonra. En hafif çalışma zamanına (5.5 KB, sayfa başına +0.3 KB) sahiptir ve eşzamanlı Server Components ile bileşen başına `.content.ts` dosyalarının kilidini açar. [Next.js ile Intlayer](https://intlayer.org/tr/doc/environment/nextjs) veya [Vite ve React ile](https://intlayer.org/tr/doc/environment/vite-and-react) başlayın.
365
+
366
+ </Accordion>
367
+ </AccordionGroup>
368
+
369
+ ## SSS
370
+
371
+ <FAQ>
372
+
373
+ <Question title="68 KB tasarruf nereden geliyor?">
374
+
375
+ `resources: { en, fr, ... }` yapısından. Temel `next-i18next` kurulumu her dilin JSON'unu `init()` içine aktarır, bu nedenle her sayfa her dildeki her ad alanını taşır: sayfa başına **218.5 KB**. Adaptör bu bloğu asla paketlemez; her bileşene yalnızca belirttiği sözlüğü, aktif dilde sunar.
376
+
377
+ </Question>
378
+
379
+ <Question title="<Trans> bileşenlerim çalışmaya devam ediyor mu?">
380
+
381
+ Evet, `components`, numaralandırılmış `<1>...</1>` etiketleri ve `values` ile. Ayrıca `{{interpolation}}`, `$t(key)` iç içe geçirme, `key_one` / `key_other` çoğulları (`Intl.PluralRules` ile değerlendirilir), bağlam son ekleri ve `returnObjects` de desteklenir.
382
+
383
+ </Question>
384
+
385
+ <Question title="Dil başına tek bir translation.json kullanırsam ne olur?">
386
+
387
+ `syncJSON` eklentisinde `splitKeys: false` olarak ayarlayın. Dosyanın tamamı tek bir sözlük olarak kalır ve yalın bir `useTranslation()` çağrısı ona göre çözümlenmeye devam eder.
388
+
389
+ </Question>
390
+
391
+ <Question title="Bu, Intlayer'a tamamen geçmekle aynı şey mi?">
392
+
393
+ Hayır, bu bir köprüdür. Adaptör `i18next` API'sini korur ve 9.4 KB çalışma zamanı maliyeti vardır; yerel `next-intlayer` 5.5 KB maliyetindedir ve eşzamanlı Server Components ile bileşenle aynı konumda bulunan `.content.ts` dosyalarını ekler. JSON ve `.content.ts` sözlükleri bir arada var olduğundan bileşen bileşen geçiş yapabilirsiniz.
394
+
395
+ </Question>
396
+
397
+ <Question title="Çevirmenler bugün çalıştıkları gibi çalışmaya devam edebilir mi?">
398
+
399
+ Evet. `locales/{lng}/{ns}.json` referans kaynağı olarak kalır: `syncJSON` dosyayı i18next sözdizimiyle okur ve CLI veya CMS güncellediğinde çevirileri geri yazar.
400
+
401
+ </Question>
402
+
403
+ </FAQ>
311
404
 
312
405
  ## İlgili Karşılaştırmalar
313
406
 
314
- - [i18next vs Intlayer](https://intlayer.org/tr/blog/i18next-vs-intlayer) (kütüphane bazlı doğrudan kıyaslama, aynı test verileri)
315
- - [next-intl vs @intlayer/next-intl](https://intlayer.org/tr/blog/next-intl-vs-intlayer-next-intl) (aynı bağdaştırıcı serisi)
316
- - [Lingui vs @intlayer/lingui](https://intlayer.org/tr/blog/lingui-vs-intlayer-lingui) (aynı bağdaştırıcı serisi)
317
- - [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/tr/blog/vue-i18n-vs-intlayer-vue-i18n) (aynı bağdaştırıcı serisi)
318
- - Geçiş rehberleri: [i18next](https://intlayer.org/tr/doc/migration/i18next), [react-i18next](https://intlayer.org/tr/doc/migration/react-i18next), [next-i18next](https://intlayer.org/tr/doc/migration/next-i18next)
319
- - Bağdaştırıcı referansları: [i18next](https://intlayer.org/tr/doc/compatibility/i18next), [react-i18next](https://intlayer.org/tr/doc/compatibility/react-i18next), [next-i18next](https://intlayer.org/tr/doc/compatibility/next-i18next)
407
+ Aynı adaptör serisi:
408
+
409
+ - [next-intl vs @intlayer/next-intl](https://intlayer.org/tr/blog/next-intl-vs-intlayer-next-intl)
410
+ - [Lingui vs @intlayer/lingui](https://intlayer.org/tr/blog/lingui-vs-intlayer-lingui)
411
+ - [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/tr/blog/vue-i18n-vs-intlayer-vue-i18n)
412
+
413
+ Doğrudan karşılaştırılan kütüphaneler:
414
+
415
+ - [i18next vs Intlayer](https://intlayer.org/tr/blog/i18next-vs-intlayer), same benchmark
416
+ - [next-i18next vs next-intl vs Intlayer](https://intlayer.org/tr/blog/next-i18next-vs-next-intl-vs-intlayer)
417
+ - [react-i18next vs react-intl vs Intlayer](https://intlayer.org/tr/blog/react-i18next-vs-react-intl-vs-intlayer)
418
+ - [Is i18next outdated?](https://intlayer.org/tr/blog/is-i18next-outdated)
419
+
420
+ Referans belgeler:
421
+
422
+ - Compat adapters: [i18next](https://intlayer.org/tr/doc/compatibility/i18next), [react-i18next](https://intlayer.org/tr/doc/compatibility/react-i18next), [next-i18next](https://intlayer.org/tr/doc/compatibility/next-i18next)
423
+ - Migration guides: [i18next](https://intlayer.org/tr/doc/migration/i18next), [react-i18next](https://intlayer.org/tr/doc/migration/react-i18next), [next-i18next](https://intlayer.org/tr/doc/migration/next-i18next)
424
+ - [Next.js benchmark report](https://intlayer.org/tr/doc/benchmark/nextjs) and [TanStack Start benchmark report](https://intlayer.org/tr/doc/benchmark/tanstack)
425
+ - [Bundle optimization](https://intlayer.org/tr/doc/concept/bundle-optimization) and [the Intlayer compiler](https://intlayer.org/tr/doc/compiler)
426
+ - [Visual Editor](https://intlayer.org/tr/doc/concept/editor), [CMS](https://intlayer.org/tr/doc/concept/cms) and [AI translation](https://intlayer.org/tr/doc/concept/auto-fill)
320
427
 
321
428
  ## Sonuç
322
429