@intlayer/docs 9.5.2 → 9.5.4-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1052) hide show
  1. package/README.md +9 -9
  2. package/blog/ar/history_of_i18n.md +54 -54
  3. package/blog/ar/how_to_pick_react_i18n_library.md +548 -0
  4. package/blog/ar/how_to_pick_solid_i18n_library.md +438 -0
  5. package/blog/ar/how_to_pick_svelte_i18n_library.md +454 -0
  6. package/blog/ar/how_to_pick_vue_i18n_library.md +442 -0
  7. package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
  8. package/blog/ar/i18next_vs_intlayer.md +445 -0
  9. package/blog/ar/is_i18next_outdated.md +6 -2
  10. package/blog/ar/is_next-intl_outdated.md +6 -2
  11. package/blog/ar/is_vue-i18n_outdated.md +8 -2
  12. package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
  13. package/blog/ar/lingui_vs_intlayer.md +381 -0
  14. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  15. package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
  16. package/blog/ar/next-intl_vs_intlayer.md +397 -0
  17. package/blog/ar/per-component_vs_centralized_i18n.md +9 -4
  18. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  19. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
  20. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
  21. package/blog/de/history_of_i18n.md +54 -54
  22. package/blog/de/how_to_pick_react_i18n_library.md +548 -0
  23. package/blog/de/how_to_pick_solid_i18n_library.md +451 -0
  24. package/blog/de/how_to_pick_svelte_i18n_library.md +454 -0
  25. package/blog/de/how_to_pick_vue_i18n_library.md +448 -0
  26. package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
  27. package/blog/de/i18next_vs_intlayer.md +445 -0
  28. package/blog/de/is_i18next_outdated.md +6 -2
  29. package/blog/de/is_next-intl_outdated.md +6 -2
  30. package/blog/de/is_vue-i18n_outdated.md +8 -2
  31. package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
  32. package/blog/de/lingui_vs_intlayer.md +381 -0
  33. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  34. package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
  35. package/blog/de/next-intl_vs_intlayer.md +415 -0
  36. package/blog/de/per-component_vs_centralized_i18n.md +9 -4
  37. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  38. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  39. package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
  40. package/blog/en/history_of_i18n.md +54 -54
  41. package/blog/en/how_to_pick_react_i18n_library.md +542 -0
  42. package/blog/en/how_to_pick_solid_i18n_library.md +438 -0
  43. package/blog/en/how_to_pick_svelte_i18n_library.md +448 -0
  44. package/blog/en/how_to_pick_vue_i18n_library.md +442 -0
  45. package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
  46. package/blog/en/i18next_vs_intlayer.md +445 -0
  47. package/blog/en/is_i18next_outdated.md +6 -2
  48. package/blog/en/is_next-intl_outdated.md +6 -2
  49. package/blog/en/is_vue-i18n_outdated.md +8 -2
  50. package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
  51. package/blog/en/lingui_vs_intlayer.md +381 -0
  52. package/blog/en/list_i18n_technologies/frameworks/react-router.md +2 -3
  53. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  54. package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
  55. package/blog/en/next-intl_vs_intlayer.md +415 -0
  56. package/blog/en/per-component_vs_centralized_i18n.md +9 -4
  57. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  58. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  59. package/blog/en/vue-i18n_vs_intlayer.md +1 -1
  60. package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
  61. package/blog/en-GB/history_of_i18n.md +54 -54
  62. package/blog/en-GB/how_to_pick_react_i18n_library.md +542 -0
  63. package/blog/en-GB/how_to_pick_solid_i18n_library.md +438 -0
  64. package/blog/en-GB/how_to_pick_svelte_i18n_library.md +448 -0
  65. package/blog/en-GB/how_to_pick_vue_i18n_library.md +448 -0
  66. package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
  67. package/blog/en-GB/i18next_vs_intlayer.md +445 -0
  68. package/blog/en-GB/is_i18next_outdated.md +6 -2
  69. package/blog/en-GB/is_next-intl_outdated.md +6 -2
  70. package/blog/en-GB/is_vue-i18n_outdated.md +8 -2
  71. package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
  72. package/blog/en-GB/lingui_vs_intlayer.md +381 -0
  73. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  74. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
  75. package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
  76. package/blog/en-GB/per-component_vs_centralized_i18n.md +9 -4
  77. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  78. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  79. package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
  80. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
  81. package/blog/es/history_of_i18n.md +54 -54
  82. package/blog/es/how_to_pick_react_i18n_library.md +542 -0
  83. package/blog/es/how_to_pick_solid_i18n_library.md +446 -0
  84. package/blog/es/how_to_pick_svelte_i18n_library.md +448 -0
  85. package/blog/es/how_to_pick_vue_i18n_library.md +442 -0
  86. package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
  87. package/blog/es/i18next_vs_intlayer.md +445 -0
  88. package/blog/es/is_i18next_outdated.md +6 -2
  89. package/blog/es/is_next-intl_outdated.md +6 -2
  90. package/blog/es/is_vue-i18n_outdated.md +8 -2
  91. package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
  92. package/blog/es/lingui_vs_intlayer.md +381 -0
  93. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  94. package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
  95. package/blog/es/next-intl_vs_intlayer.md +417 -0
  96. package/blog/es/per-component_vs_centralized_i18n.md +9 -4
  97. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  98. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  99. package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
  100. package/blog/fr/history_of_i18n.md +54 -54
  101. package/blog/fr/how_to_pick_react_i18n_library.md +542 -0
  102. package/blog/fr/how_to_pick_solid_i18n_library.md +438 -0
  103. package/blog/fr/how_to_pick_svelte_i18n_library.md +448 -0
  104. package/blog/fr/how_to_pick_vue_i18n_library.md +442 -0
  105. package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
  106. package/blog/fr/i18next_vs_intlayer.md +445 -0
  107. package/blog/fr/is_i18next_outdated.md +6 -2
  108. package/blog/fr/is_next-intl_outdated.md +6 -2
  109. package/blog/fr/is_vue-i18n_outdated.md +8 -2
  110. package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
  111. package/blog/fr/lingui_vs_intlayer.md +381 -0
  112. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  113. package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
  114. package/blog/fr/next-intl_vs_intlayer.md +417 -0
  115. package/blog/fr/per-component_vs_centralized_i18n.md +9 -4
  116. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  117. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
  118. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
  119. package/blog/hi/history_of_i18n.md +54 -54
  120. package/blog/hi/how_to_pick_react_i18n_library.md +548 -0
  121. package/blog/hi/how_to_pick_solid_i18n_library.md +451 -0
  122. package/blog/hi/how_to_pick_svelte_i18n_library.md +448 -0
  123. package/blog/hi/how_to_pick_vue_i18n_library.md +442 -0
  124. package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
  125. package/blog/hi/i18next_vs_intlayer.md +445 -0
  126. package/blog/hi/is_i18next_outdated.md +6 -2
  127. package/blog/hi/is_next-intl_outdated.md +6 -2
  128. package/blog/hi/is_vue-i18n_outdated.md +8 -2
  129. package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
  130. package/blog/hi/lingui_vs_intlayer.md +381 -0
  131. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
  132. package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
  133. package/blog/hi/next-intl_vs_intlayer.md +397 -0
  134. package/blog/hi/per-component_vs_centralized_i18n.md +9 -4
  135. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  136. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  137. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  138. package/blog/id/history_of_i18n.md +54 -54
  139. package/blog/id/how_to_pick_react_i18n_library.md +548 -0
  140. package/blog/id/how_to_pick_solid_i18n_library.md +451 -0
  141. package/blog/id/how_to_pick_svelte_i18n_library.md +454 -0
  142. package/blog/id/how_to_pick_vue_i18n_library.md +442 -0
  143. package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
  144. package/blog/id/i18next_vs_intlayer.md +445 -0
  145. package/blog/id/is_i18next_outdated.md +6 -2
  146. package/blog/id/is_next-intl_outdated.md +6 -2
  147. package/blog/id/is_vue-i18n_outdated.md +8 -2
  148. package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
  149. package/blog/id/lingui_vs_intlayer.md +381 -0
  150. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  151. package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
  152. package/blog/id/next-intl_vs_intlayer.md +397 -0
  153. package/blog/id/per-component_vs_centralized_i18n.md +9 -4
  154. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  155. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
  156. package/blog/id/vue-i18n_vs_intlayer.md +1 -1
  157. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
  158. package/blog/it/history_of_i18n.md +54 -54
  159. package/blog/it/how_to_pick_react_i18n_library.md +549 -0
  160. package/blog/it/how_to_pick_solid_i18n_library.md +451 -0
  161. package/blog/it/how_to_pick_svelte_i18n_library.md +455 -0
  162. package/blog/it/how_to_pick_vue_i18n_library.md +449 -0
  163. package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
  164. package/blog/it/i18next_vs_intlayer.md +445 -0
  165. package/blog/it/is_i18next_outdated.md +6 -2
  166. package/blog/it/is_next-intl_outdated.md +6 -2
  167. package/blog/it/is_vue-i18n_outdated.md +8 -2
  168. package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
  169. package/blog/it/lingui_vs_intlayer.md +381 -0
  170. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  171. package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
  172. package/blog/it/next-intl_vs_intlayer.md +418 -0
  173. package/blog/it/per-component_vs_centralized_i18n.md +9 -4
  174. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  175. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  176. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
  177. package/blog/ja/history_of_i18n.md +54 -54
  178. package/blog/ja/how_to_pick_react_i18n_library.md +542 -0
  179. package/blog/ja/how_to_pick_solid_i18n_library.md +451 -0
  180. package/blog/ja/how_to_pick_svelte_i18n_library.md +457 -0
  181. package/blog/ja/how_to_pick_vue_i18n_library.md +442 -0
  182. package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
  183. package/blog/ja/i18next_vs_intlayer.md +447 -0
  184. package/blog/ja/is_i18next_outdated.md +6 -2
  185. package/blog/ja/is_next-intl_outdated.md +6 -2
  186. package/blog/ja/is_vue-i18n_outdated.md +8 -2
  187. package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
  188. package/blog/ja/lingui_vs_intlayer.md +381 -0
  189. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  190. package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
  191. package/blog/ja/next-intl_vs_intlayer.md +422 -0
  192. package/blog/ja/per-component_vs_centralized_i18n.md +9 -4
  193. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  194. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  195. package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
  196. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
  197. package/blog/ko/history_of_i18n.md +54 -54
  198. package/blog/ko/how_to_pick_react_i18n_library.md +548 -0
  199. package/blog/ko/how_to_pick_solid_i18n_library.md +451 -0
  200. package/blog/ko/how_to_pick_svelte_i18n_library.md +454 -0
  201. package/blog/ko/how_to_pick_vue_i18n_library.md +448 -0
  202. package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
  203. package/blog/ko/i18next_vs_intlayer.md +447 -0
  204. package/blog/ko/is_i18next_outdated.md +6 -2
  205. package/blog/ko/is_next-intl_outdated.md +6 -2
  206. package/blog/ko/is_vue-i18n_outdated.md +8 -2
  207. package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
  208. package/blog/ko/lingui_vs_intlayer.md +381 -0
  209. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  210. package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
  211. package/blog/ko/next-intl_vs_intlayer.md +397 -0
  212. package/blog/ko/per-component_vs_centralized_i18n.md +9 -4
  213. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  214. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  215. package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
  216. package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
  217. package/blog/pl/history_of_i18n.md +54 -54
  218. package/blog/pl/how_to_pick_react_i18n_library.md +549 -0
  219. package/blog/pl/how_to_pick_solid_i18n_library.md +438 -0
  220. package/blog/pl/how_to_pick_svelte_i18n_library.md +460 -0
  221. package/blog/pl/how_to_pick_vue_i18n_library.md +442 -0
  222. package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
  223. package/blog/pl/i18next_vs_intlayer.md +445 -0
  224. package/blog/pl/is_i18next_outdated.md +6 -2
  225. package/blog/pl/is_next-intl_outdated.md +6 -2
  226. package/blog/pl/is_vue-i18n_outdated.md +8 -2
  227. package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
  228. package/blog/pl/lingui_vs_intlayer.md +381 -0
  229. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  230. package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
  231. package/blog/pl/next-intl_vs_intlayer.md +397 -0
  232. package/blog/pl/per-component_vs_centralized_i18n.md +9 -4
  233. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  234. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
  235. package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
  236. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
  237. package/blog/pt/history_of_i18n.md +54 -54
  238. package/blog/pt/how_to_pick_react_i18n_library.md +549 -0
  239. package/blog/pt/how_to_pick_solid_i18n_library.md +451 -0
  240. package/blog/pt/how_to_pick_svelte_i18n_library.md +454 -0
  241. package/blog/pt/how_to_pick_vue_i18n_library.md +448 -0
  242. package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
  243. package/blog/pt/i18next_vs_intlayer.md +445 -0
  244. package/blog/pt/is_i18next_outdated.md +6 -2
  245. package/blog/pt/is_next-intl_outdated.md +6 -2
  246. package/blog/pt/is_vue-i18n_outdated.md +8 -2
  247. package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
  248. package/blog/pt/lingui_vs_intlayer.md +381 -0
  249. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  250. package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
  251. package/blog/pt/next-intl_vs_intlayer.md +411 -0
  252. package/blog/pt/per-component_vs_centralized_i18n.md +9 -4
  253. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  254. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  255. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
  256. package/blog/ru/history_of_i18n.md +54 -54
  257. package/blog/ru/how_to_pick_react_i18n_library.md +553 -0
  258. package/blog/ru/how_to_pick_solid_i18n_library.md +451 -0
  259. package/blog/ru/how_to_pick_svelte_i18n_library.md +459 -0
  260. package/blog/ru/how_to_pick_vue_i18n_library.md +453 -0
  261. package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
  262. package/blog/ru/i18next_vs_intlayer.md +445 -0
  263. package/blog/ru/is_i18next_outdated.md +6 -2
  264. package/blog/ru/is_next-intl_outdated.md +6 -2
  265. package/blog/ru/is_vue-i18n_outdated.md +8 -2
  266. package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
  267. package/blog/ru/lingui_vs_intlayer.md +381 -0
  268. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  269. package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
  270. package/blog/ru/next-intl_vs_intlayer.md +417 -0
  271. package/blog/ru/per-component_vs_centralized_i18n.md +9 -4
  272. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  273. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  274. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
  275. package/blog/tr/history_of_i18n.md +54 -54
  276. package/blog/tr/how_to_pick_react_i18n_library.md +548 -0
  277. package/blog/tr/how_to_pick_solid_i18n_library.md +451 -0
  278. package/blog/tr/how_to_pick_svelte_i18n_library.md +454 -0
  279. package/blog/tr/how_to_pick_vue_i18n_library.md +448 -0
  280. package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
  281. package/blog/tr/i18next_vs_intlayer.md +445 -0
  282. package/blog/tr/is_i18next_outdated.md +6 -2
  283. package/blog/tr/is_next-intl_outdated.md +6 -2
  284. package/blog/tr/is_vue-i18n_outdated.md +8 -2
  285. package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
  286. package/blog/tr/lingui_vs_intlayer.md +381 -0
  287. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  288. package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
  289. package/blog/tr/next-intl_vs_intlayer.md +397 -0
  290. package/blog/tr/per-component_vs_centralized_i18n.md +9 -4
  291. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  292. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  293. package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
  294. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
  295. package/blog/uk/history_of_i18n.md +54 -54
  296. package/blog/uk/how_to_pick_react_i18n_library.md +542 -0
  297. package/blog/uk/how_to_pick_solid_i18n_library.md +451 -0
  298. package/blog/uk/how_to_pick_svelte_i18n_library.md +448 -0
  299. package/blog/uk/how_to_pick_vue_i18n_library.md +443 -0
  300. package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
  301. package/blog/uk/i18next_vs_intlayer.md +445 -0
  302. package/blog/uk/is_i18next_outdated.md +6 -2
  303. package/blog/uk/is_next-intl_outdated.md +6 -2
  304. package/blog/uk/is_vue-i18n_outdated.md +8 -2
  305. package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
  306. package/blog/uk/lingui_vs_intlayer.md +381 -0
  307. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  308. package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
  309. package/blog/uk/next-intl_vs_intlayer.md +397 -0
  310. package/blog/uk/per-component_vs_centralized_i18n.md +9 -4
  311. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  312. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
  313. package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
  314. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
  315. package/blog/vi/history_of_i18n.md +54 -54
  316. package/blog/vi/how_to_pick_react_i18n_library.md +548 -0
  317. package/blog/vi/how_to_pick_solid_i18n_library.md +438 -0
  318. package/blog/vi/how_to_pick_svelte_i18n_library.md +448 -0
  319. package/blog/vi/how_to_pick_vue_i18n_library.md +442 -0
  320. package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
  321. package/blog/vi/i18next_vs_intlayer.md +445 -0
  322. package/blog/vi/is_i18next_outdated.md +6 -2
  323. package/blog/vi/is_next-intl_outdated.md +6 -2
  324. package/blog/vi/is_vue-i18n_outdated.md +8 -2
  325. package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
  326. package/blog/vi/lingui_vs_intlayer.md +381 -0
  327. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  328. package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
  329. package/blog/vi/next-intl_vs_intlayer.md +397 -0
  330. package/blog/vi/per-component_vs_centralized_i18n.md +9 -4
  331. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  332. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  333. package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
  334. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  335. package/blog/zh/history_of_i18n.md +54 -54
  336. package/blog/zh/how_to_pick_react_i18n_library.md +548 -0
  337. package/blog/zh/how_to_pick_solid_i18n_library.md +451 -0
  338. package/blog/zh/how_to_pick_svelte_i18n_library.md +454 -0
  339. package/blog/zh/how_to_pick_vue_i18n_library.md +448 -0
  340. package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
  341. package/blog/zh/i18next_vs_intlayer.md +445 -0
  342. package/blog/zh/is_i18next_outdated.md +6 -2
  343. package/blog/zh/is_next-intl_outdated.md +6 -2
  344. package/blog/zh/is_vue-i18n_outdated.md +8 -2
  345. package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
  346. package/blog/zh/lingui_vs_intlayer.md +381 -0
  347. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +10 -6
  348. package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
  349. package/blog/zh/next-intl_vs_intlayer.md +422 -0
  350. package/blog/zh/per-component_vs_centralized_i18n.md +9 -4
  351. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +6 -2
  352. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  353. package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
  354. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
  355. package/dist/cjs/generated/blog.entry.cjs +240 -0
  356. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  357. package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
  358. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  359. package/dist/cjs/index.cjs +1 -1
  360. package/dist/esm/generated/blog.entry.mjs +240 -0
  361. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  362. package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
  363. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  364. package/dist/esm/index.mjs +1 -1
  365. package/dist/types/generated/blog.entry.d.ts +12 -0
  366. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  367. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  368. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  369. package/docs/ar/benchmark/nextjs.md +1 -1
  370. package/docs/ar/benchmark/solid.md +1 -1
  371. package/docs/ar/benchmark/svelte.md +1 -1
  372. package/docs/ar/benchmark/tanstack.md +1 -1
  373. package/docs/ar/benchmark/vue.md +1 -1
  374. package/docs/ar/bundle_optimization.md +5 -1
  375. package/docs/ar/how_works_intlayer.md +2 -2
  376. package/docs/ar/interest_of_intlayer.md +7 -7
  377. package/docs/ar/intlayer_CMS.md +1 -1
  378. package/docs/ar/intlayer_with_adonisjs.md +1 -1
  379. package/docs/ar/intlayer_with_analog.md +1 -1
  380. package/docs/ar/intlayer_with_angular_19.md +1 -1
  381. package/docs/ar/intlayer_with_angular_21.md +1 -1
  382. package/docs/ar/intlayer_with_astro.md +1 -1
  383. package/docs/ar/intlayer_with_astro_lit.md +1 -1
  384. package/docs/ar/intlayer_with_astro_preact.md +1 -1
  385. package/docs/ar/intlayer_with_astro_react.md +1 -1
  386. package/docs/ar/intlayer_with_astro_solid.md +1 -1
  387. package/docs/ar/intlayer_with_astro_svelte.md +1 -1
  388. package/docs/ar/intlayer_with_astro_vanilla.md +1 -1
  389. package/docs/ar/intlayer_with_astro_vue.md +1 -1
  390. package/docs/ar/intlayer_with_create_react_app.md +1 -1
  391. package/docs/ar/intlayer_with_express.md +1 -1
  392. package/docs/ar/intlayer_with_hono.md +1 -1
  393. package/docs/ar/intlayer_with_nestjs.md +1 -1
  394. package/docs/ar/intlayer_with_nextjs_14.md +1 -1
  395. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  396. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  397. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  398. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  399. package/docs/ar/intlayer_with_vite+preact.md +1 -1
  400. package/docs/ar/intlayer_with_vite+react.md +1 -1
  401. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  402. package/docs/ar/introduction.md +0 -1
  403. package/docs/ar/readme.md +8 -8
  404. package/docs/bn/bundle_optimization.md +5 -1
  405. package/docs/bn/interest_of_intlayer.md +22 -22
  406. package/docs/bn/intlayer_CMS.md +1 -1
  407. package/docs/bn/intlayer_with_angular_21.md +1 -1
  408. package/docs/bn/intlayer_with_hono.md +1 -1
  409. package/docs/bn/introduction.md +0 -1
  410. package/docs/cs/bundle_optimization.md +5 -1
  411. package/docs/cs/interest_of_intlayer.md +7 -7
  412. package/docs/cs/intlayer_with_angular_21.md +1 -1
  413. package/docs/cs/intlayer_with_hono.md +1 -1
  414. package/docs/cs/introduction.md +0 -1
  415. package/docs/de/benchmark/nextjs.md +1 -1
  416. package/docs/de/benchmark/solid.md +1 -1
  417. package/docs/de/benchmark/svelte.md +1 -1
  418. package/docs/de/benchmark/tanstack.md +1 -1
  419. package/docs/de/benchmark/vue.md +1 -1
  420. package/docs/de/bundle_optimization.md +5 -1
  421. package/docs/de/how_works_intlayer.md +2 -2
  422. package/docs/de/interest_of_intlayer.md +7 -7
  423. package/docs/de/intlayer_CMS.md +1 -1
  424. package/docs/de/intlayer_with_adonisjs.md +1 -1
  425. package/docs/de/intlayer_with_analog.md +1 -1
  426. package/docs/de/intlayer_with_angular_19.md +1 -1
  427. package/docs/de/intlayer_with_angular_21.md +1 -1
  428. package/docs/de/intlayer_with_astro.md +1 -1
  429. package/docs/de/intlayer_with_astro_lit.md +1 -1
  430. package/docs/de/intlayer_with_astro_preact.md +1 -1
  431. package/docs/de/intlayer_with_astro_react.md +1 -1
  432. package/docs/de/intlayer_with_astro_solid.md +1 -1
  433. package/docs/de/intlayer_with_astro_svelte.md +1 -1
  434. package/docs/de/intlayer_with_astro_vanilla.md +1 -1
  435. package/docs/de/intlayer_with_astro_vue.md +1 -1
  436. package/docs/de/intlayer_with_create_react_app.md +1 -1
  437. package/docs/de/intlayer_with_express.md +1 -1
  438. package/docs/de/intlayer_with_hono.md +1 -1
  439. package/docs/de/intlayer_with_nestjs.md +1 -1
  440. package/docs/de/intlayer_with_nextjs_14.md +1 -1
  441. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  442. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  443. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  444. package/docs/de/intlayer_with_vite+preact.md +1 -1
  445. package/docs/de/intlayer_with_vite+react.md +1 -1
  446. package/docs/de/intlayer_with_vite+vue.md +1 -1
  447. package/docs/de/introduction.md +0 -1
  448. package/docs/de/readme.md +8 -8
  449. package/docs/en/benchmark/nextjs.md +1 -1
  450. package/docs/en/benchmark/solid.md +1 -1
  451. package/docs/en/benchmark/svelte.md +1 -1
  452. package/docs/en/benchmark/tanstack.md +1 -1
  453. package/docs/en/benchmark/vue.md +1 -1
  454. package/docs/en/bundle_optimization.md +5 -1
  455. package/docs/en/how_works_intlayer.md +2 -2
  456. package/docs/en/interest_of_intlayer.md +7 -7
  457. package/docs/en/intlayer_CMS.md +1 -1
  458. package/docs/en/intlayer_with_adonisjs.md +1 -1
  459. package/docs/en/intlayer_with_analog.md +1 -1
  460. package/docs/en/intlayer_with_angular_19.md +1 -1
  461. package/docs/en/intlayer_with_angular_21.md +1 -1
  462. package/docs/en/intlayer_with_astro.md +1 -1
  463. package/docs/en/intlayer_with_astro_lit.md +1 -1
  464. package/docs/en/intlayer_with_astro_preact.md +1 -1
  465. package/docs/en/intlayer_with_astro_react.md +1 -1
  466. package/docs/en/intlayer_with_astro_solid.md +1 -1
  467. package/docs/en/intlayer_with_astro_svelte.md +1 -1
  468. package/docs/en/intlayer_with_astro_vanilla.md +1 -1
  469. package/docs/en/intlayer_with_astro_vue.md +1 -1
  470. package/docs/en/intlayer_with_create_react_app.md +1 -1
  471. package/docs/en/intlayer_with_express.md +1 -1
  472. package/docs/en/intlayer_with_hono.md +1 -1
  473. package/docs/en/intlayer_with_nestjs.md +1 -1
  474. package/docs/en/intlayer_with_nextjs_14.md +1 -1
  475. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  476. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  477. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  478. package/docs/en/intlayer_with_vite+preact.md +1 -1
  479. package/docs/en/intlayer_with_vite+react.md +1 -1
  480. package/docs/en/intlayer_with_vite+vue.md +1 -1
  481. package/docs/en/introduction.md +0 -1
  482. package/docs/en/readme.md +8 -8
  483. package/docs/en-GB/benchmark/nextjs.md +1 -1
  484. package/docs/en-GB/benchmark/solid.md +1 -1
  485. package/docs/en-GB/benchmark/svelte.md +1 -1
  486. package/docs/en-GB/benchmark/tanstack.md +1 -1
  487. package/docs/en-GB/benchmark/vue.md +1 -1
  488. package/docs/en-GB/bundle_optimization.md +5 -1
  489. package/docs/en-GB/how_works_intlayer.md +2 -2
  490. package/docs/en-GB/interest_of_intlayer.md +7 -7
  491. package/docs/en-GB/intlayer_CMS.md +1 -1
  492. package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
  493. package/docs/en-GB/intlayer_with_analog.md +1 -1
  494. package/docs/en-GB/intlayer_with_angular_19.md +1 -1
  495. package/docs/en-GB/intlayer_with_angular_21.md +1 -1
  496. package/docs/en-GB/intlayer_with_astro.md +1 -1
  497. package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
  498. package/docs/en-GB/intlayer_with_astro_preact.md +1 -1
  499. package/docs/en-GB/intlayer_with_astro_react.md +1 -1
  500. package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
  501. package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
  502. package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
  503. package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
  504. package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
  505. package/docs/en-GB/intlayer_with_express.md +1 -1
  506. package/docs/en-GB/intlayer_with_hono.md +1 -1
  507. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  508. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
  509. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  510. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  511. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  512. package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
  513. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  514. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  515. package/docs/en-GB/introduction.md +0 -1
  516. package/docs/en-GB/readme.md +8 -8
  517. package/docs/es/benchmark/nextjs.md +1 -1
  518. package/docs/es/benchmark/solid.md +1 -1
  519. package/docs/es/benchmark/svelte.md +1 -1
  520. package/docs/es/benchmark/tanstack.md +1 -1
  521. package/docs/es/benchmark/vue.md +1 -1
  522. package/docs/es/bundle_optimization.md +5 -1
  523. package/docs/es/how_works_intlayer.md +2 -2
  524. package/docs/es/interest_of_intlayer.md +7 -7
  525. package/docs/es/intlayer_CMS.md +1 -1
  526. package/docs/es/intlayer_with_adonisjs.md +1 -1
  527. package/docs/es/intlayer_with_analog.md +1 -1
  528. package/docs/es/intlayer_with_angular_19.md +1 -1
  529. package/docs/es/intlayer_with_angular_21.md +1 -1
  530. package/docs/es/intlayer_with_astro.md +1 -1
  531. package/docs/es/intlayer_with_astro_lit.md +1 -1
  532. package/docs/es/intlayer_with_astro_preact.md +1 -1
  533. package/docs/es/intlayer_with_astro_react.md +1 -1
  534. package/docs/es/intlayer_with_astro_solid.md +1 -1
  535. package/docs/es/intlayer_with_astro_svelte.md +1 -1
  536. package/docs/es/intlayer_with_astro_vanilla.md +1 -1
  537. package/docs/es/intlayer_with_astro_vue.md +1 -1
  538. package/docs/es/intlayer_with_create_react_app.md +1 -1
  539. package/docs/es/intlayer_with_express.md +1 -1
  540. package/docs/es/intlayer_with_hono.md +1 -1
  541. package/docs/es/intlayer_with_nestjs.md +1 -1
  542. package/docs/es/intlayer_with_nextjs_14.md +1 -1
  543. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  544. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  545. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  546. package/docs/es/intlayer_with_vite+preact.md +1 -1
  547. package/docs/es/intlayer_with_vite+react.md +1 -1
  548. package/docs/es/intlayer_with_vite+vue.md +1 -1
  549. package/docs/es/introduction.md +0 -1
  550. package/docs/es/readme.md +8 -8
  551. package/docs/fr/benchmark/nextjs.md +1 -1
  552. package/docs/fr/benchmark/solid.md +1 -1
  553. package/docs/fr/benchmark/svelte.md +1 -1
  554. package/docs/fr/benchmark/tanstack.md +1 -1
  555. package/docs/fr/benchmark/vue.md +1 -1
  556. package/docs/fr/bundle_optimization.md +5 -1
  557. package/docs/fr/how_works_intlayer.md +2 -2
  558. package/docs/fr/interest_of_intlayer.md +7 -7
  559. package/docs/fr/intlayer_CMS.md +1 -1
  560. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  561. package/docs/fr/intlayer_with_analog.md +1 -1
  562. package/docs/fr/intlayer_with_angular_19.md +1 -1
  563. package/docs/fr/intlayer_with_angular_21.md +1 -1
  564. package/docs/fr/intlayer_with_astro.md +1 -1
  565. package/docs/fr/intlayer_with_astro_lit.md +1 -1
  566. package/docs/fr/intlayer_with_astro_preact.md +1 -1
  567. package/docs/fr/intlayer_with_astro_react.md +1 -1
  568. package/docs/fr/intlayer_with_astro_solid.md +1 -1
  569. package/docs/fr/intlayer_with_astro_svelte.md +1 -1
  570. package/docs/fr/intlayer_with_astro_vanilla.md +1 -1
  571. package/docs/fr/intlayer_with_astro_vue.md +1 -1
  572. package/docs/fr/intlayer_with_create_react_app.md +1 -1
  573. package/docs/fr/intlayer_with_express.md +1 -1
  574. package/docs/fr/intlayer_with_hono.md +1 -1
  575. package/docs/fr/intlayer_with_nestjs.md +1 -1
  576. package/docs/fr/intlayer_with_nextjs_14.md +1 -1
  577. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  578. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  579. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  580. package/docs/fr/intlayer_with_react_router_v7.md +2 -2
  581. package/docs/fr/intlayer_with_vite+preact.md +1 -1
  582. package/docs/fr/intlayer_with_vite+react.md +1 -1
  583. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  584. package/docs/fr/introduction.md +0 -1
  585. package/docs/fr/readme.md +8 -8
  586. package/docs/hi/benchmark/nextjs.md +1 -1
  587. package/docs/hi/benchmark/solid.md +1 -1
  588. package/docs/hi/benchmark/svelte.md +1 -1
  589. package/docs/hi/benchmark/tanstack.md +1 -1
  590. package/docs/hi/benchmark/vue.md +1 -1
  591. package/docs/hi/bundle_optimization.md +5 -1
  592. package/docs/hi/how_works_intlayer.md +2 -2
  593. package/docs/hi/interest_of_intlayer.md +7 -7
  594. package/docs/hi/intlayer_CMS.md +1 -1
  595. package/docs/hi/intlayer_with_adonisjs.md +1 -1
  596. package/docs/hi/intlayer_with_analog.md +1 -1
  597. package/docs/hi/intlayer_with_angular_19.md +1 -1
  598. package/docs/hi/intlayer_with_angular_21.md +1 -1
  599. package/docs/hi/intlayer_with_astro.md +1 -1
  600. package/docs/hi/intlayer_with_astro_lit.md +1 -1
  601. package/docs/hi/intlayer_with_astro_preact.md +1 -1
  602. package/docs/hi/intlayer_with_astro_react.md +1 -1
  603. package/docs/hi/intlayer_with_astro_solid.md +1 -1
  604. package/docs/hi/intlayer_with_astro_svelte.md +1 -1
  605. package/docs/hi/intlayer_with_astro_vanilla.md +1 -1
  606. package/docs/hi/intlayer_with_astro_vue.md +1 -1
  607. package/docs/hi/intlayer_with_create_react_app.md +1 -1
  608. package/docs/hi/intlayer_with_express.md +1 -1
  609. package/docs/hi/intlayer_with_hono.md +1 -1
  610. package/docs/hi/intlayer_with_nestjs.md +1 -1
  611. package/docs/hi/intlayer_with_nextjs_14.md +1 -1
  612. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  613. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  614. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  615. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  616. package/docs/hi/intlayer_with_vite+preact.md +1 -1
  617. package/docs/hi/intlayer_with_vite+react.md +1 -1
  618. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  619. package/docs/hi/introduction.md +0 -1
  620. package/docs/hi/readme.md +8 -8
  621. package/docs/id/benchmark/nextjs.md +1 -1
  622. package/docs/id/benchmark/solid.md +1 -1
  623. package/docs/id/benchmark/svelte.md +1 -1
  624. package/docs/id/benchmark/tanstack.md +1 -1
  625. package/docs/id/benchmark/vue.md +1 -1
  626. package/docs/id/bundle_optimization.md +5 -1
  627. package/docs/id/how_works_intlayer.md +2 -2
  628. package/docs/id/interest_of_intlayer.md +7 -7
  629. package/docs/id/intlayer_CMS.md +1 -1
  630. package/docs/id/intlayer_with_adonisjs.md +1 -1
  631. package/docs/id/intlayer_with_analog.md +1 -1
  632. package/docs/id/intlayer_with_angular_19.md +1 -1
  633. package/docs/id/intlayer_with_angular_21.md +1 -1
  634. package/docs/id/intlayer_with_astro.md +1 -1
  635. package/docs/id/intlayer_with_astro_lit.md +1 -1
  636. package/docs/id/intlayer_with_astro_preact.md +1 -1
  637. package/docs/id/intlayer_with_astro_react.md +1 -1
  638. package/docs/id/intlayer_with_astro_solid.md +1 -1
  639. package/docs/id/intlayer_with_astro_svelte.md +1 -1
  640. package/docs/id/intlayer_with_astro_vanilla.md +1 -1
  641. package/docs/id/intlayer_with_astro_vue.md +1 -1
  642. package/docs/id/intlayer_with_create_react_app.md +1 -1
  643. package/docs/id/intlayer_with_express.md +1 -1
  644. package/docs/id/intlayer_with_hono.md +1 -1
  645. package/docs/id/intlayer_with_nestjs.md +1 -1
  646. package/docs/id/intlayer_with_nextjs_14.md +1 -1
  647. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  648. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  649. package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
  650. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  651. package/docs/id/intlayer_with_vite+preact.md +1 -1
  652. package/docs/id/intlayer_with_vite+react.md +1 -1
  653. package/docs/id/intlayer_with_vite+vue.md +1 -1
  654. package/docs/id/introduction.md +0 -1
  655. package/docs/id/readme.md +8 -8
  656. package/docs/it/benchmark/nextjs.md +1 -1
  657. package/docs/it/benchmark/solid.md +1 -1
  658. package/docs/it/benchmark/svelte.md +1 -1
  659. package/docs/it/benchmark/tanstack.md +1 -1
  660. package/docs/it/benchmark/vue.md +1 -1
  661. package/docs/it/bundle_optimization.md +5 -1
  662. package/docs/it/how_works_intlayer.md +2 -2
  663. package/docs/it/interest_of_intlayer.md +7 -7
  664. package/docs/it/intlayer_CMS.md +1 -1
  665. package/docs/it/intlayer_with_adonisjs.md +1 -1
  666. package/docs/it/intlayer_with_analog.md +1 -1
  667. package/docs/it/intlayer_with_angular_19.md +1 -1
  668. package/docs/it/intlayer_with_angular_21.md +1 -1
  669. package/docs/it/intlayer_with_astro.md +1 -1
  670. package/docs/it/intlayer_with_astro_lit.md +1 -1
  671. package/docs/it/intlayer_with_astro_preact.md +1 -1
  672. package/docs/it/intlayer_with_astro_react.md +1 -1
  673. package/docs/it/intlayer_with_astro_solid.md +1 -1
  674. package/docs/it/intlayer_with_astro_svelte.md +1 -1
  675. package/docs/it/intlayer_with_astro_vanilla.md +1 -1
  676. package/docs/it/intlayer_with_astro_vue.md +1 -1
  677. package/docs/it/intlayer_with_create_react_app.md +1 -1
  678. package/docs/it/intlayer_with_express.md +1 -1
  679. package/docs/it/intlayer_with_hono.md +1 -1
  680. package/docs/it/intlayer_with_nestjs.md +1 -1
  681. package/docs/it/intlayer_with_nextjs_14.md +1 -1
  682. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  683. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  684. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  685. package/docs/it/intlayer_with_react_router_v7.md +2 -2
  686. package/docs/it/intlayer_with_vite+preact.md +1 -1
  687. package/docs/it/intlayer_with_vite+react.md +1 -1
  688. package/docs/it/intlayer_with_vite+vue.md +1 -1
  689. package/docs/it/introduction.md +0 -1
  690. package/docs/it/readme.md +8 -8
  691. package/docs/ja/benchmark/nextjs.md +1 -1
  692. package/docs/ja/benchmark/solid.md +1 -1
  693. package/docs/ja/benchmark/svelte.md +1 -1
  694. package/docs/ja/benchmark/tanstack.md +1 -1
  695. package/docs/ja/benchmark/vue.md +1 -1
  696. package/docs/ja/bundle_optimization.md +5 -1
  697. package/docs/ja/how_works_intlayer.md +2 -2
  698. package/docs/ja/interest_of_intlayer.md +7 -7
  699. package/docs/ja/intlayer_CMS.md +1 -1
  700. package/docs/ja/intlayer_with_adonisjs.md +1 -1
  701. package/docs/ja/intlayer_with_analog.md +1 -1
  702. package/docs/ja/intlayer_with_angular_19.md +1 -1
  703. package/docs/ja/intlayer_with_angular_21.md +1 -1
  704. package/docs/ja/intlayer_with_astro.md +1 -1
  705. package/docs/ja/intlayer_with_astro_lit.md +1 -1
  706. package/docs/ja/intlayer_with_astro_preact.md +1 -1
  707. package/docs/ja/intlayer_with_astro_react.md +1 -1
  708. package/docs/ja/intlayer_with_astro_solid.md +1 -1
  709. package/docs/ja/intlayer_with_astro_svelte.md +1 -1
  710. package/docs/ja/intlayer_with_astro_vanilla.md +1 -1
  711. package/docs/ja/intlayer_with_astro_vue.md +1 -1
  712. package/docs/ja/intlayer_with_create_react_app.md +1 -1
  713. package/docs/ja/intlayer_with_express.md +1 -1
  714. package/docs/ja/intlayer_with_hono.md +1 -1
  715. package/docs/ja/intlayer_with_nestjs.md +1 -1
  716. package/docs/ja/intlayer_with_nextjs_14.md +1 -1
  717. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  718. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  719. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  720. package/docs/ja/intlayer_with_vite+preact.md +1 -1
  721. package/docs/ja/intlayer_with_vite+react.md +1 -1
  722. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  723. package/docs/ja/introduction.md +0 -1
  724. package/docs/ja/readme.md +8 -8
  725. package/docs/ko/benchmark/nextjs.md +1 -1
  726. package/docs/ko/benchmark/solid.md +1 -1
  727. package/docs/ko/benchmark/svelte.md +1 -1
  728. package/docs/ko/benchmark/tanstack.md +1 -1
  729. package/docs/ko/benchmark/vue.md +1 -1
  730. package/docs/ko/bundle_optimization.md +5 -1
  731. package/docs/ko/how_works_intlayer.md +2 -2
  732. package/docs/ko/interest_of_intlayer.md +7 -7
  733. package/docs/ko/intlayer_CMS.md +1 -1
  734. package/docs/ko/intlayer_with_adonisjs.md +1 -1
  735. package/docs/ko/intlayer_with_analog.md +1 -1
  736. package/docs/ko/intlayer_with_angular_19.md +1 -1
  737. package/docs/ko/intlayer_with_angular_21.md +1 -1
  738. package/docs/ko/intlayer_with_astro.md +1 -1
  739. package/docs/ko/intlayer_with_astro_lit.md +1 -1
  740. package/docs/ko/intlayer_with_astro_preact.md +1 -1
  741. package/docs/ko/intlayer_with_astro_react.md +1 -1
  742. package/docs/ko/intlayer_with_astro_solid.md +1 -1
  743. package/docs/ko/intlayer_with_astro_svelte.md +1 -1
  744. package/docs/ko/intlayer_with_astro_vanilla.md +1 -1
  745. package/docs/ko/intlayer_with_astro_vue.md +1 -1
  746. package/docs/ko/intlayer_with_create_react_app.md +1 -1
  747. package/docs/ko/intlayer_with_express.md +1 -1
  748. package/docs/ko/intlayer_with_hono.md +1 -1
  749. package/docs/ko/intlayer_with_nestjs.md +1 -1
  750. package/docs/ko/intlayer_with_nextjs_14.md +1 -1
  751. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  752. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  753. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  754. package/docs/ko/intlayer_with_react_router_v7.md +2 -2
  755. package/docs/ko/intlayer_with_vite+preact.md +1 -1
  756. package/docs/ko/intlayer_with_vite+react.md +1 -1
  757. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  758. package/docs/ko/introduction.md +0 -1
  759. package/docs/ko/readme.md +8 -8
  760. package/docs/nl/bundle_optimization.md +5 -1
  761. package/docs/nl/interest_of_intlayer.md +7 -7
  762. package/docs/nl/intlayer_with_angular_21.md +1 -1
  763. package/docs/nl/intlayer_with_hono.md +1 -1
  764. package/docs/nl/introduction.md +0 -1
  765. package/docs/pl/benchmark/nextjs.md +1 -1
  766. package/docs/pl/benchmark/solid.md +1 -1
  767. package/docs/pl/benchmark/svelte.md +1 -1
  768. package/docs/pl/benchmark/tanstack.md +1 -1
  769. package/docs/pl/benchmark/vue.md +1 -1
  770. package/docs/pl/bundle_optimization.md +5 -1
  771. package/docs/pl/how_works_intlayer.md +2 -2
  772. package/docs/pl/interest_of_intlayer.md +7 -7
  773. package/docs/pl/intlayer_CMS.md +1 -1
  774. package/docs/pl/intlayer_with_adonisjs.md +1 -1
  775. package/docs/pl/intlayer_with_analog.md +1 -1
  776. package/docs/pl/intlayer_with_angular_19.md +1 -1
  777. package/docs/pl/intlayer_with_angular_21.md +1 -1
  778. package/docs/pl/intlayer_with_astro.md +1 -1
  779. package/docs/pl/intlayer_with_astro_lit.md +1 -1
  780. package/docs/pl/intlayer_with_astro_preact.md +1 -1
  781. package/docs/pl/intlayer_with_astro_react.md +1 -1
  782. package/docs/pl/intlayer_with_astro_solid.md +1 -1
  783. package/docs/pl/intlayer_with_astro_svelte.md +1 -1
  784. package/docs/pl/intlayer_with_astro_vanilla.md +1 -1
  785. package/docs/pl/intlayer_with_astro_vue.md +1 -1
  786. package/docs/pl/intlayer_with_create_react_app.md +1 -1
  787. package/docs/pl/intlayer_with_express.md +1 -1
  788. package/docs/pl/intlayer_with_hono.md +1 -1
  789. package/docs/pl/intlayer_with_nestjs.md +1 -1
  790. package/docs/pl/intlayer_with_nextjs_14.md +1 -1
  791. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  792. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  793. package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
  794. package/docs/pl/intlayer_with_react_router_v7.md +2 -2
  795. package/docs/pl/intlayer_with_vite+preact.md +1 -1
  796. package/docs/pl/intlayer_with_vite+react.md +1 -1
  797. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  798. package/docs/pl/introduction.md +0 -1
  799. package/docs/pl/readme.md +8 -8
  800. package/docs/pt/benchmark/nextjs.md +1 -1
  801. package/docs/pt/benchmark/solid.md +1 -1
  802. package/docs/pt/benchmark/svelte.md +1 -1
  803. package/docs/pt/benchmark/tanstack.md +1 -1
  804. package/docs/pt/benchmark/vue.md +1 -1
  805. package/docs/pt/bundle_optimization.md +5 -1
  806. package/docs/pt/how_works_intlayer.md +2 -2
  807. package/docs/pt/interest_of_intlayer.md +7 -7
  808. package/docs/pt/intlayer_CMS.md +1 -1
  809. package/docs/pt/intlayer_with_adonisjs.md +1 -1
  810. package/docs/pt/intlayer_with_analog.md +1 -1
  811. package/docs/pt/intlayer_with_angular_19.md +1 -1
  812. package/docs/pt/intlayer_with_angular_21.md +1 -1
  813. package/docs/pt/intlayer_with_astro.md +1 -1
  814. package/docs/pt/intlayer_with_astro_lit.md +1 -1
  815. package/docs/pt/intlayer_with_astro_preact.md +1 -1
  816. package/docs/pt/intlayer_with_astro_react.md +1 -1
  817. package/docs/pt/intlayer_with_astro_solid.md +1 -1
  818. package/docs/pt/intlayer_with_astro_svelte.md +1 -1
  819. package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
  820. package/docs/pt/intlayer_with_astro_vue.md +1 -1
  821. package/docs/pt/intlayer_with_create_react_app.md +1 -1
  822. package/docs/pt/intlayer_with_express.md +1 -1
  823. package/docs/pt/intlayer_with_hono.md +1 -1
  824. package/docs/pt/intlayer_with_nestjs.md +1 -1
  825. package/docs/pt/intlayer_with_nextjs_14.md +1 -1
  826. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  827. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  828. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  829. package/docs/pt/intlayer_with_react_router_v7.md +2 -2
  830. package/docs/pt/intlayer_with_vite+preact.md +1 -1
  831. package/docs/pt/intlayer_with_vite+react.md +1 -1
  832. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  833. package/docs/pt/introduction.md +0 -1
  834. package/docs/pt/readme.md +8 -8
  835. package/docs/ru/benchmark/nextjs.md +1 -1
  836. package/docs/ru/benchmark/solid.md +1 -1
  837. package/docs/ru/benchmark/svelte.md +1 -1
  838. package/docs/ru/benchmark/tanstack.md +1 -1
  839. package/docs/ru/benchmark/vue.md +1 -1
  840. package/docs/ru/bundle_optimization.md +5 -1
  841. package/docs/ru/how_works_intlayer.md +2 -2
  842. package/docs/ru/interest_of_intlayer.md +7 -7
  843. package/docs/ru/intlayer_CMS.md +1 -1
  844. package/docs/ru/intlayer_with_adonisjs.md +1 -1
  845. package/docs/ru/intlayer_with_analog.md +1 -1
  846. package/docs/ru/intlayer_with_angular_19.md +1 -1
  847. package/docs/ru/intlayer_with_angular_21.md +1 -1
  848. package/docs/ru/intlayer_with_astro.md +1 -1
  849. package/docs/ru/intlayer_with_astro_lit.md +1 -1
  850. package/docs/ru/intlayer_with_astro_preact.md +1 -1
  851. package/docs/ru/intlayer_with_astro_react.md +1 -1
  852. package/docs/ru/intlayer_with_astro_solid.md +1 -1
  853. package/docs/ru/intlayer_with_astro_svelte.md +1 -1
  854. package/docs/ru/intlayer_with_astro_vanilla.md +1 -1
  855. package/docs/ru/intlayer_with_astro_vue.md +1 -1
  856. package/docs/ru/intlayer_with_create_react_app.md +1 -1
  857. package/docs/ru/intlayer_with_express.md +1 -1
  858. package/docs/ru/intlayer_with_hono.md +1 -1
  859. package/docs/ru/intlayer_with_nestjs.md +1 -1
  860. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  861. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  862. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  863. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  864. package/docs/ru/intlayer_with_react_router_v7.md +2 -2
  865. package/docs/ru/intlayer_with_vite+preact.md +1 -1
  866. package/docs/ru/intlayer_with_vite+react.md +1 -1
  867. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  868. package/docs/ru/introduction.md +0 -1
  869. package/docs/ru/readme.md +8 -8
  870. package/docs/tr/benchmark/nextjs.md +1 -1
  871. package/docs/tr/benchmark/solid.md +1 -1
  872. package/docs/tr/benchmark/svelte.md +1 -1
  873. package/docs/tr/benchmark/tanstack.md +1 -1
  874. package/docs/tr/benchmark/vue.md +1 -1
  875. package/docs/tr/bundle_optimization.md +5 -1
  876. package/docs/tr/how_works_intlayer.md +2 -2
  877. package/docs/tr/interest_of_intlayer.md +7 -7
  878. package/docs/tr/intlayer_CMS.md +1 -1
  879. package/docs/tr/intlayer_with_adonisjs.md +1 -1
  880. package/docs/tr/intlayer_with_analog.md +1 -1
  881. package/docs/tr/intlayer_with_angular_19.md +1 -1
  882. package/docs/tr/intlayer_with_angular_21.md +1 -1
  883. package/docs/tr/intlayer_with_astro.md +1 -1
  884. package/docs/tr/intlayer_with_astro_lit.md +1 -1
  885. package/docs/tr/intlayer_with_astro_preact.md +1 -1
  886. package/docs/tr/intlayer_with_astro_react.md +1 -1
  887. package/docs/tr/intlayer_with_astro_solid.md +1 -1
  888. package/docs/tr/intlayer_with_astro_svelte.md +1 -1
  889. package/docs/tr/intlayer_with_astro_vanilla.md +1 -1
  890. package/docs/tr/intlayer_with_astro_vue.md +1 -1
  891. package/docs/tr/intlayer_with_create_react_app.md +1 -1
  892. package/docs/tr/intlayer_with_express.md +1 -1
  893. package/docs/tr/intlayer_with_hono.md +1 -1
  894. package/docs/tr/intlayer_with_nestjs.md +1 -1
  895. package/docs/tr/intlayer_with_nextjs_14.md +1 -1
  896. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  897. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  898. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  899. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  900. package/docs/tr/intlayer_with_vite+preact.md +1 -1
  901. package/docs/tr/intlayer_with_vite+react.md +1 -1
  902. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  903. package/docs/tr/introduction.md +0 -1
  904. package/docs/tr/readme.md +8 -8
  905. package/docs/uk/benchmark/nextjs.md +1 -1
  906. package/docs/uk/benchmark/solid.md +1 -1
  907. package/docs/uk/benchmark/svelte.md +1 -1
  908. package/docs/uk/benchmark/tanstack.md +1 -1
  909. package/docs/uk/benchmark/vue.md +1 -1
  910. package/docs/uk/bundle_optimization.md +5 -1
  911. package/docs/uk/how_works_intlayer.md +2 -2
  912. package/docs/uk/interest_of_intlayer.md +7 -7
  913. package/docs/uk/intlayer_CMS.md +1 -1
  914. package/docs/uk/intlayer_with_adonisjs.md +1 -1
  915. package/docs/uk/intlayer_with_analog.md +1 -1
  916. package/docs/uk/intlayer_with_angular_19.md +1 -1
  917. package/docs/uk/intlayer_with_angular_21.md +1 -1
  918. package/docs/uk/intlayer_with_astro.md +1 -1
  919. package/docs/uk/intlayer_with_astro_lit.md +1 -1
  920. package/docs/uk/intlayer_with_astro_preact.md +1 -1
  921. package/docs/uk/intlayer_with_astro_react.md +1 -1
  922. package/docs/uk/intlayer_with_astro_solid.md +1 -1
  923. package/docs/uk/intlayer_with_astro_svelte.md +1 -1
  924. package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
  925. package/docs/uk/intlayer_with_astro_vue.md +1 -1
  926. package/docs/uk/intlayer_with_create_react_app.md +1 -1
  927. package/docs/uk/intlayer_with_express.md +1 -1
  928. package/docs/uk/intlayer_with_hono.md +1 -1
  929. package/docs/uk/intlayer_with_nestjs.md +1 -1
  930. package/docs/uk/intlayer_with_nextjs_14.md +1 -1
  931. package/docs/uk/intlayer_with_nextjs_15.md +1 -1
  932. package/docs/uk/intlayer_with_nextjs_16.md +1 -1
  933. package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
  934. package/docs/uk/intlayer_with_react_router_v7.md +1 -1
  935. package/docs/uk/intlayer_with_vite+preact.md +1 -1
  936. package/docs/uk/intlayer_with_vite+react.md +1 -1
  937. package/docs/uk/intlayer_with_vite+vue.md +1 -1
  938. package/docs/uk/introduction.md +0 -1
  939. package/docs/uk/readme.md +8 -8
  940. package/docs/ur/bundle_optimization.md +5 -1
  941. package/docs/ur/interest_of_intlayer.md +7 -7
  942. package/docs/ur/intlayer_with_angular_21.md +1 -1
  943. package/docs/ur/intlayer_with_hono.md +1 -1
  944. package/docs/ur/introduction.md +0 -1
  945. package/docs/vi/benchmark/nextjs.md +1 -1
  946. package/docs/vi/benchmark/solid.md +1 -1
  947. package/docs/vi/benchmark/svelte.md +1 -1
  948. package/docs/vi/benchmark/tanstack.md +1 -1
  949. package/docs/vi/benchmark/vue.md +1 -1
  950. package/docs/vi/bundle_optimization.md +5 -1
  951. package/docs/vi/how_works_intlayer.md +2 -2
  952. package/docs/vi/interest_of_intlayer.md +7 -7
  953. package/docs/vi/intlayer_CMS.md +1 -1
  954. package/docs/vi/intlayer_with_adonisjs.md +1 -1
  955. package/docs/vi/intlayer_with_analog.md +1 -1
  956. package/docs/vi/intlayer_with_angular_19.md +1 -1
  957. package/docs/vi/intlayer_with_angular_21.md +1 -1
  958. package/docs/vi/intlayer_with_astro.md +1 -1
  959. package/docs/vi/intlayer_with_astro_lit.md +1 -1
  960. package/docs/vi/intlayer_with_astro_preact.md +1 -1
  961. package/docs/vi/intlayer_with_astro_react.md +1 -1
  962. package/docs/vi/intlayer_with_astro_solid.md +1 -1
  963. package/docs/vi/intlayer_with_astro_svelte.md +1 -1
  964. package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
  965. package/docs/vi/intlayer_with_astro_vue.md +1 -1
  966. package/docs/vi/intlayer_with_create_react_app.md +1 -1
  967. package/docs/vi/intlayer_with_express.md +1 -1
  968. package/docs/vi/intlayer_with_hono.md +1 -1
  969. package/docs/vi/intlayer_with_nestjs.md +1 -1
  970. package/docs/vi/intlayer_with_nextjs_14.md +1 -1
  971. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  972. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  973. package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
  974. package/docs/vi/intlayer_with_vite+preact.md +1 -1
  975. package/docs/vi/intlayer_with_vite+react.md +1 -1
  976. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  977. package/docs/vi/introduction.md +0 -1
  978. package/docs/vi/readme.md +8 -8
  979. package/docs/zh/benchmark/nextjs.md +1 -1
  980. package/docs/zh/benchmark/solid.md +1 -1
  981. package/docs/zh/benchmark/svelte.md +1 -1
  982. package/docs/zh/benchmark/tanstack.md +1 -1
  983. package/docs/zh/benchmark/vue.md +1 -1
  984. package/docs/zh/bundle_optimization.md +5 -1
  985. package/docs/zh/how_works_intlayer.md +2 -2
  986. package/docs/zh/interest_of_intlayer.md +7 -7
  987. package/docs/zh/intlayer_CMS.md +1 -1
  988. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  989. package/docs/zh/intlayer_with_analog.md +1 -1
  990. package/docs/zh/intlayer_with_angular_19.md +1 -1
  991. package/docs/zh/intlayer_with_angular_21.md +1 -1
  992. package/docs/zh/intlayer_with_astro.md +1 -1
  993. package/docs/zh/intlayer_with_astro_lit.md +1 -1
  994. package/docs/zh/intlayer_with_astro_preact.md +1 -1
  995. package/docs/zh/intlayer_with_astro_react.md +1 -1
  996. package/docs/zh/intlayer_with_astro_solid.md +1 -1
  997. package/docs/zh/intlayer_with_astro_svelte.md +1 -1
  998. package/docs/zh/intlayer_with_astro_vanilla.md +1 -1
  999. package/docs/zh/intlayer_with_astro_vue.md +1 -1
  1000. package/docs/zh/intlayer_with_create_react_app.md +1 -1
  1001. package/docs/zh/intlayer_with_express.md +1 -1
  1002. package/docs/zh/intlayer_with_hono.md +1 -1
  1003. package/docs/zh/intlayer_with_nestjs.md +1 -1
  1004. package/docs/zh/intlayer_with_nextjs_14.md +1 -1
  1005. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  1006. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  1007. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  1008. package/docs/zh/intlayer_with_react_router_v7.md +2 -2
  1009. package/docs/zh/intlayer_with_vite+preact.md +1 -1
  1010. package/docs/zh/intlayer_with_vite+react.md +1 -1
  1011. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  1012. package/docs/zh/introduction.md +0 -1
  1013. package/docs/zh/readme.md +8 -8
  1014. package/docs/zh-TW/bundle_optimization.md +5 -1
  1015. package/docs/zh-TW/interest_of_intlayer.md +7 -7
  1016. package/docs/zh-TW/intlayer_with_angular_21.md +1 -1
  1017. package/docs/zh-TW/introduction.md +0 -1
  1018. package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
  1019. package/frequent_questions/de/claude_code_token_consumption.md +152 -0
  1020. package/frequent_questions/en/claude_code_token_consumption.md +152 -0
  1021. package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
  1022. package/frequent_questions/es/claude_code_token_consumption.md +152 -0
  1023. package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
  1024. package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
  1025. package/frequent_questions/id/claude_code_token_consumption.md +152 -0
  1026. package/frequent_questions/it/claude_code_token_consumption.md +152 -0
  1027. package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
  1028. package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
  1029. package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
  1030. package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
  1031. package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
  1032. package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
  1033. package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
  1034. package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
  1035. package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
  1036. package/package.json +8 -7
  1037. package/src/generated/blog.entry.ts +240 -0
  1038. package/src/generated/frequentQuestions.entry.ts +20 -0
  1039. package/blog/en/___per-component_vs_centralized_i18n.md +0 -255
  1040. package/blog/pl/___per-component_vs_centralized_i18n.md +0 -100
  1041. package/docs/en/benchmark/___NOTE.md +0 -101
  1042. package/docs/en/benchmark/___nextjs.md +0 -197
  1043. package/docs/en/benchmark/___solid.md +0 -12
  1044. package/docs/en/benchmark/___svelte.md +0 -16
  1045. package/docs/en/benchmark/___tanstack.md +0 -190
  1046. package/docs/en/benchmark/___vue.md +0 -7
  1047. package/docs/pl/benchmark/___NOTE.md +0 -101
  1048. package/docs/pl/benchmark/___nextjs.md +0 -198
  1049. package/docs/pl/benchmark/___solid.md +0 -36
  1050. package/docs/pl/benchmark/___svelte.md +0 -36
  1051. package/docs/pl/benchmark/___tanstack.md +0 -36
  1052. package/docs/pl/benchmark/___vue.md +0 -36
@@ -0,0 +1,287 @@
1
+ ---
2
+ createdAt: 2026-09-13
3
+ updatedAt: 2026-09-13
4
+ title: "vue-i18n vs @intlayer/vue-i18n: Même API, Bundle différent"
5
+ description: Ce qui change quand une application Vue 3 garde ses appels vue-i18n mais les exécute via l'adaptateur de compatibilité @intlayer/vue-i18n. JavaScript par page, taille d'exécution, taille de composant et fuites mesurées sur le même code Vite + Vue, plus ce que l'adaptateur conserve, ignore et ne peut pas remplacer.
6
+ keywords:
7
+ - vue-i18n
8
+ - "@intlayer/vue-i18n"
9
+ - Intlayer
10
+ - Compat adapter
11
+ - Migration
12
+ - Internationalization
13
+ - i18n
14
+ - Benchmark
15
+ - Bundle size
16
+ - Blog
17
+ - Vue
18
+ - Nuxt
19
+ - Vite
20
+ slugs:
21
+ - blog
22
+ - vue-i18n-vs-intlayer-vue-i18n
23
+ author: aymericzip
24
+ ---
25
+
26
+ # vue-i18n VS @intlayer/vue-i18n | Même API, Bundle différent
27
+
28
+ `@intlayer/vue-i18n` est un adaptateur de compatibilité : il expose l'API `vue-i18n` (`createI18n`, `useI18n`, `t()`, `d()`, `n()`, `$t`, `v-t`, `i18n.global.locale`...) et la sert à partir des dictionnaires compilés par Intlayer. Vos fichiers `.vue` ne changent pas. Ce à quoi `t("footer.github")` est lié, si.
29
+
30
+ Cet article mesure ce changement sur la même application Vite + Vue 3, compilée une fois avec `vue-i18n` et une fois avec l'adaptateur. Les chiffres proviennent de [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Pour `vue-i18n` et Intlayer comparés en tant que bibliothèques, lisez [vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer) et le [benchmark vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer-benchmark). Celui-ci porte sur ce que l'adaptateur change lorsque vous conservez vos composants tels qu'ils sont.
31
+
32
+ <TOC/>
33
+
34
+ > **tl;dr**: Sur la même app Vite + Vue 3, remplacer `vue-i18n` par `@intlayer/vue-i18n` a réduit le JavaScript par page de **134.9 KB à 47.0 KB** gzip (l'app sans i18n pèse 41.3 KB), le runtime de **24.3 KB à 7.9 KB**, le composant moyen de **196 KB à 8.4 KB**, et les fuites de chaînes de caractères cross-page de **90% à 0%**, sans éditer aucun fichier `.vue`. `createI18n({ messages })` continue de fonctionner comme fallback ; supprimez les imports JSON pour obtenir les chiffres ci-dessus. Les blocs SFC `<i18n>` et le `setLocaleMessage()` au runtime sont les deux features qui ne sont pas supportées.
35
+
36
+ ## Ce qu'est `@intlayer/vue-i18n`
37
+
38
+ `vue-i18n` est un runtime. `createI18n({ messages: { en, fr, ... } })` construit une instance globale contenant chaque message de chaque locale ; `useI18n()` lie chaque composant à celle-ci ; `t("footer.github")` parcourt l'arborescence au moment du rendu. Cette conception est ce qui rend possible les blocs SFC `<i18n>` et `setLocaleMessage()`, et c'est aussi pourquoi le graphe de dépendances de chaque composant inclut l'arborescence entière.
39
+
40
+ `@intlayer/vue-i18n` conserve l'API et remplace l'arborescence :
41
+
42
+ 1. **Import aliasing.** `vueI18nVitePlugin()` provenant de `@intlayer/vue-i18n/plugin` enveloppe `vite-intlayer` et ajoute un `resolve.alias` afin que `vue-i18n` se résolve en `@intlayer/vue-i18n`. Aucune importation n'est renommée.
43
+ 2. **JSON as source of truth.** The `syncJSON` plugin reads your existing `locales/{locale}.json` with `format: "vue-i18n"` (so `{name}`, `{0}` list interpolation and `"car | cars"` pipe plurals are parsed correctly) and writes translations back when the CLI or the CMS updates them.
44
+ 3. **Call-site binding.** The Intlayer optimize pass rewrites `useI18n()` call sites so the component receives the dictionaries its keys name, in the active locale, as imports the bundler can trace and split.
45
+
46
+ ```vue fileName="src/components/Footer.vue"
47
+ <!-- Votre code, inchangé -->
48
+ <script setup lang="ts">
49
+ import { useI18n } from "vue-i18n";
50
+
51
+ const { t } = useI18n();
52
+ </script>
53
+
54
+ <template>
55
+ <a href="https://github.com/intlayer-org/benchmark-bloom">{{
56
+ t("footer.github")
57
+ }}</a>
58
+ </template>
59
+ ```
60
+
61
+ ```ts fileName="Ce que le compilateur émet (simplifié)"
62
+ import _dicHash_footer from "../.intlayer/dictionaries/footer.mjs";
63
+ import { useDictionary as useI18n } from "@intlayer/vue-i18n";
64
+
65
+ const { t } = useI18n(_dicHash_footer);
66
+ ```
67
+
68
+ Le composant n'accède plus à l'arborescence globale des messages. Il accède à `footer`. C'est pourquoi la colonne taille du composant ci-dessous chute de 196 KB à 8 KB.
69
+
70
+ ## Ce que l'adaptateur conserve, ignore et ne remplace pas
71
+
72
+ | `vue-i18n` API | Avec `@intlayer/vue-i18n` |
73
+ | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
+ | `useI18n()` → `{ t, d, n, te, tm, rt, locale, availableLocales }` | ✅ Conservé. Les clés `t` sont typées par rapport à vos dictionnaires |
75
+ | `t("key", { name })`, `t("key", [a, b])`, `t("key", count)` | ✅ Conservé. `{name}`, `{0}` et les pluriels séparés par des pipes se résolvent comme avant |
76
+ | `d(date, "long")`, `n(value, "currency")` | ✅ Conservé. Les `datetimeFormats` / `numberFormats` issus de `createI18n()` sont respectés, soutenus par `Intl` natif |
77
+ | `i18n.global.locale.value = "fr"` | ✅ Conservé. Une `WritableComputedRef` soutenue par le client d'Intlayer ; la réactivité se comporte comme avant |
78
+ | `$t`, `$tc`, `$te`, `$tm`, `$rt`, `$d`, `$n`, `$i18n` (Options API) | ✅ Conservé. Enregistré sur `app.config.globalProperties` par `app.use(i18n)` |
79
+ | `v-t` directive | ✅ Conservé |
80
+ | `legacy: true` | ✅ Accepté |
81
+ | `createI18n({ messages })` | ⚠️ `messages` sont utilisés comme **fallback à l'exécution** avec un avertissement de développement. Supprimez les imports JSON pour les gains de bundle |
82
+ | `setLocaleMessage()`, `mergeLocaleMessage()` | ❌ Avertissement et ne fait rien. Le chargement des messages à l'exécution est remplacé par des dictionnaires au moment de la compilation |
83
+ | SFC `<i18n>` custom blocks | ❌ Non lu. Déplacez ces messages dans le JSON de localisation (ou un `.content.ts` à côté du composant) |
84
+ | `@nuxtjs/i18n` | ⚠️ Adaptateur séparé, voir la [documentation de compatibilité Nuxt](https://intlayer.org/doc/compatibility/nuxtjs-i18n) |
85
+
86
+ ## Le benchmark
87
+
88
+ ### Ce qui a été mesuré
89
+
90
+ La suite [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom) construit **la même application Vite + Vue 3** avec chaque configuration : **10 pages** (accueil, à propos, blog, carrières, contact, FAQ, tarification, produits, paramètres, équipe), **10 locales** (`en`, `fr`, `es`, `de`, `it`, `pt`, `zh`, `ja`, `ko`, `ru`), des composants identiques et un contenu identique. Les pages sont mesurées en `en` et `fr`.
91
+
92
+ Les deux ont été construits dans la configuration **statique**, celle que la plupart des projets Vue livrent : pour `vue-i18n`, chaque JSON de locale importé et passé à `createI18n({ messages })`; pour l'adaptateur, les mêmes composants avec `vite.config.ts` et `intlayer.config.ts` modifiés et l'import `messages` supprimé. Le natif `vue-intlayer` est inclus pour référence.
93
+
94
+ Pour chaque build, la suite enregistre :
95
+
96
+ - **Lib size** : taille gzip (et minifiée) d'un composant vide qui importe uniquement la bibliothèque i18n.
97
+ - **Page JS** : JavaScript gzip téléchargé par page, moyenné sur toutes les pages et locales.
98
+ - **Locale leak %** : part des chaînes traduites dans le JS téléchargé qui appartiennent à une locale que l'utilisateur n'est **pas** en train de consulter.
99
+ - **Page leak %** : part des chaînes traduites dans le JS téléchargé qui appartiennent à une page sur laquelle l'utilisateur n'est **pas**.
100
+ - **Component avg** : taille gzip moyenne de chaque composant compilé de manière isolée.
101
+ - **E2E reactivity** : temps écoulé entre la sélection d'une nouvelle locale et la mise à jour de `html[lang]` dans le DOM (Playwright, 5 itérations).
102
+ - **Page load** : `PerformanceNavigationTiming.duration`.
103
+
104
+ > Les chiffres ci-dessous proviennent de l'exécution datée du **12-09-2026** avec `vue-i18n` 11.4.0 et `@intlayer/vue-i18n` 9.5.1. L'application de test est volontairement petite (quelques dizaines de chaînes par locale), donc les pourcentages de fuite décrivent un **modèle** : ils augmentent avec votre contenu tandis que le coût d'exécution reste fixe.
105
+
106
+ ### Résultats sur Vite + Vue 3
107
+
108
+ | Configuration | Stratégie | Taille Lib (gz) | Taille Lib (min) | Moyenne Page JS (gz) | Fuite de locale | Fuite de page | Moyenne Component (gz) | Réactivité E2E | Chargement de page |
109
+ | ------------------------ | --------- | --------------: | ---------------: | -------------------: | --------------: | ------------: | ---------------------: | -------------: | -----------------: |
110
+ | **base** (no i18n) | - | 0.0 KB | 0.0 KB | 41.3 KB | 0.0% | - | 1.1 KB | 1.8 ms | 10.8 ms |
111
+ | `vue-i18n` | static | 24.3 KB | 83.2 KB | 134.9 KB | 50.0% | 90.0% | 196.0 KB | 2.8 ms | 13.6 ms |
112
+ | **`@intlayer/vue-i18n`** | static | **7.9 KB** | **23.2 KB** | **47.0 KB** | **15.0%** | **0.0%** | **8.4 KB** | **1.5 ms** | **9.3 ms** |
113
+ | `vue-intlayer` (native) | static | 3.9 KB | 11.1 KB | 57.1 KB | 56.8% | 0.0% | 7.7 KB | 4.5 ms | 13.8 ms |
114
+ | `vue-intlayer` (native) | dynamic | 3.9 KB | 11.1 KB | 59.8 KB | 50.0% | 0.0% | 6.5 KB | 4.0 ms | 15.8 ms |
115
+
116
+ > La colonne page-leak de l'application de base est laissée vide : sans bibliothèque i18n, l'empreinte digitale détecte les chaînes codées en dur dans les chunks partagés et le nombre n'est pas significatif.
117
+
118
+ **Comment le lire**
119
+
120
+ - **88 KB de moins par page, mêmes composants.** `vue-i18n` prend l'application de 41.3 KB à **134.9 KB**. La build de l'adaptateur des mêmes composants atterrit à **47.0 KB**, 5.7 KB au-dessus de l'application de base. La plupart de la différence est les 74.9 KB de `src/locales` que `createI18n({ messages })` intègre dans chaque page et que l'adaptateur ne regroupe jamais en bloc.
121
+ - **Le runtime se réduit 3x.** Un composant vide qui importe seulement `vue-i18n` coûte **24.3 KB gzip / 83.2 KB minifié** : `@intlify/core-base`, le compilateur de messages et le runtime. L'adapter coûte **7.9 KB / 23.2 KB**, la plupart étant le core d'Intlayer plus la surface API `vue-i18n`.
122
+ - **Composants : 23x plus petits.** Un composant `useI18n()` compilé en isolation fait en moyenne **196 KB**, parce que `t` est lié à l'instance qui contient chaque message de chaque locale. Avec l'adapter, le même composant fait en moyenne **8.4 KB** : il accède à son propre dictionnaire.
123
+ - **Fuite.** `vue-i18n` envoie chaque locale et les strings de chaque page sur chaque page : 50% de fuite de locale (sur les deux locales avec empreinte ; avec dix locales bundlées, le vrai gaspillage est plus élevé), 90% de fuite de page. L'adapter réduit la fuite de page à **0%** parce que chaque composant n'importe que ses dictionnaires. La fuite de locale s'élève à 15% dans cette exécution `static` ; `importMode: 'dynamic'` est le paramètre qui la supprime, et cette configuration ne faisait pas partie de cette exécution Vue.
124
+ - **Réactivité et chargement de page.** Le changement de locale est peu coûteux pour les deux (1,5-2,8 ms) ; le système de réactivité de Vue le rend possible une fois que les messages sont en mémoire. Le chargement de page passe de 13,6 ms à **9,3 ms**, en ligne avec 88 KB de JavaScript en moins à analyser.
125
+ - **À propos des lignes natives.** `vue-intlayer` dans cette exécution a regroupé chaque locale en mode `static` et a atteint 57,1 KB avec un runtime de 3,9 KB ; les dictionnaires synchronisés de l'adaptateur contenaient moins de chaînes de locale étrangère, d'où la figure inférieure par page. Le runtime natif reste le plus léger des trois, et son modèle `.content.ts` est l'équivalent des blocs SFC `<i18n>`.
126
+
127
+ ## Pourquoi les chiffres changent
128
+
129
+ Rien dans `src/components/` n'a changé, donc les gains proviennent de ce à quoi `useI18n` est lié.
130
+
131
+ **Avec `vue-i18n`**, la liaison est l'instance globale. `createI18n({ messages: { en, fr, ... } })` est une seule importation qui contient tout ; chaque composant qui appelle `useI18n()` peut y accéder en entier, donc le bundler ne peut pas diviser en dessous de l'instance. L'optimisation signifie que _vous_ divisez `en.json` par route, appelez `setLocaleMessage()` dans un garde de routeur, et gardez la carte route-vers-fichier correcte au fur et à mesure que les composants se déplacent.
132
+
133
+ ```bash
134
+ .
135
+ ├── locales
136
+ │ ├── en.json # chaînes de caractères de chaque page
137
+ │ └── fr.json
138
+ └── src
139
+ ├── i18n.ts # createI18n({ messages: { en, fr, ... } })
140
+ ├── main.ts # app.use(i18n)
141
+ └── components
142
+ └── Footer.vue # useI18n(); t("footer.github")
143
+ ```
144
+
145
+ **Avec `@intlayer/vue-i18n`**, la liaison est le dictionnaire. `syncJSON` transforme chaque clé de premier niveau de `en.json` en dictionnaire; la passe d'optimisation fournit au composant ceux dont les clés sont nommées, en tant qu'imports que le bundler trace et divise par page.
146
+
147
+ ```bash
148
+ .
149
+ ├── intlayer.config.ts # syncJSON({ format: "vue-i18n", source: ... })
150
+ ├── locales
151
+ │ ├── en.json # inchangé, toujours la source de vérité
152
+ │ └── fr.json
153
+ ├── .intlayer/ # généré: un dictionnaire par clé de premier niveau, par locale
154
+ └── src
155
+ ├── i18n.ts # createI18n({}) ← import messages supprimé
156
+ ├── main.ts # app.use(i18n) ← inchangé
157
+ └── components
158
+ └── Footer.vue # useI18n(); t("footer.github") ← inchangé
159
+ ```
160
+
161
+ L'import `messages` dans `i18n.ts` est la seule ligne à supprimer. C'est les 88 KB.
162
+
163
+ ## Migration en trois étapes
164
+
165
+ <Steps>
166
+ <Step number={1} title="Installer">
167
+
168
+ ```bash packageManager="npm"
169
+ npx intlayer init --interactive
170
+ ```
171
+
172
+ ```bash packageManager="pnpm"
173
+ pnpm dlx intlayer init --interactive
174
+ ```
175
+
176
+ ```bash packageManager="yarn"
177
+ yarn dlx intlayer init --interactive
178
+ ```
179
+
180
+ ```bash packageManager="bun"
181
+ bunx intlayer init --interactive
182
+ ```
183
+
184
+ La commande détecte `vue-i18n`, installe `intlayer`, `vue-intlayer`, `@intlayer/vue-i18n` et `@intlayer/sync-json-plugin`, et pré-remplit `intlayer.config.ts`. Gardez `vue-i18n` installé : c'est une peer dependency et elle fournit les types.
185
+
186
+ </Step>
187
+ <Step number={2} title="Pointer Intlayer vers vos fichiers de locale">
188
+
189
+ ```ts fileName="intlayer.config.ts"
190
+ import { Locales, type IntlayerConfig } from "intlayer";
191
+ import { syncJSON } from "@intlayer/sync-json-plugin";
192
+
193
+ const config: IntlayerConfig = {
194
+ internationalization: {
195
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
196
+ defaultLocale: Locales.ENGLISH,
197
+ },
198
+ dictionary: {
199
+ // "static" regroupe chaque locale ; "dynamic" charge celle active à la demande
200
+ importMode: "dynamic",
201
+ format: "vue-i18n",
202
+ },
203
+ plugins: [
204
+ syncJSON({
205
+ // dialecte vue-i18n : {name}, {0}, "voiture | voitures"
206
+ format: "vue-i18n",
207
+ source: ({ locale }) => `./locales/${locale}.json`,
208
+ location: "locales",
209
+ }),
210
+ ],
211
+ };
212
+
213
+ export default config;
214
+ ```
215
+
216
+ `locales/{locale}.json` reste à sa place. Chaque clé de haut niveau (`footer`, `hero`...) devient un dictionnaire.
217
+
218
+ </Step>
219
+ <Step number={3} title="Ajouter le plugin et supprimer l'importation des messages">
220
+
221
+ ```ts fileName="vite.config.ts"
222
+ import { defineConfig } from "vite";
223
+ import vue from "@vitejs/plugin-vue";
224
+ import { vueI18nVitePlugin } from "@intlayer/vue-i18n/plugin";
225
+
226
+ export default defineConfig({
227
+ plugins: [vue(), vueI18nVitePlugin()],
228
+ });
229
+ ```
230
+
231
+ ```ts fileName="src/i18n.ts"
232
+ import { createI18n } from "vue-i18n";
233
+
234
+ // Avant : createI18n({ locale: "en", messages: { en, fr, es } })
235
+ export const i18n = createI18n({ locale: "en" });
236
+ ```
237
+
238
+ `vueI18nVitePlugin()` enveloppe `vite-intlayer` (surveillance du contenu, compilation du dictionnaire, l'étape d'optimisation) et crée un alias de `vue-i18n` vers l'adaptateur. La suppression de l'importation `messages` est ce qui réduit les 88 KB ; la laisser conserve le fonctionnement de l'application mais expédie les deux.
239
+
240
+ </Step>
241
+
242
+ ### Ce que vous pouvez supprimer par la suite
243
+
244
+ | Fichier / pattern | Pourquoi |
245
+ | ------------------------------------------------ | ---------------------------------------------------------------------------------------- |
246
+ | `import en from "./locales/en.json"` et consorts | Utilisé uniquement comme fallback par l'adaptateur. C'est là que venaient les 88 KB |
247
+ | `setLocaleMessage()` dans les gardes de router | Sans effet. Le chargement par route est maintenant le travail du compilateur |
248
+ | `@intlify/unplugin-vue-i18n` | Non nécessaire : il précompile les messages et les blocs SFC que l'adaptateur ne lit pas |
249
+ | Blocs SFC `<i18n>` | Non lus ; déplacez-les vers le JSON des locales ou vers un `.content.ts` par composant |
250
+
251
+ ### Ce que vous gagnez au-delà des octets
252
+
253
+ - **Clés typées.** `t("footer.github")` est typé par rapport au dictionnaire `footer` compilé ; un mauvais chemin est une erreur TypeScript au lieu que la clé soit rendue comme texte.
254
+ - **`npx intlayer test`** échoue dans CI si une clé manque dans n'importe quelle locale. **`npx intlayer fill`** traduit les clés manquantes avec votre propre clé de fournisseur (OpenAI, Anthropic, Mistral, Gemini...) et les réécrit dans `locales/{locale}.json`.
255
+ - **Visual Editor et CMS** opèrent sur le même JSON, donc les non-développeurs éditent via une interface utilisateur et les fichiers se mettent à jour.
256
+ - **Passage progressif à `.content.ts`.** Tout composant peut passer de `useI18n()` à `useIntlayer("footer")` avec un fichier de contenu co-localisé. Les dictionnaires JSON et `.content.ts` coexistent et fusionnent.
257
+
258
+ ## Limitations à connaître avant de commencer
259
+
260
+ - **Les blocs SFC `<i18n>` ne sont pas lus.** Si vos messages se trouvent à l'intérieur des composants, ils doivent être déplacés vers les fichiers de locale (ou vers `.content.ts`, qui est la même idée avec les types).
261
+ - **Le chargement des messages à l'exécution a disparu.** `setLocaleMessage()` et `mergeLocaleMessage()` avertissent et retournent. Les traductions récupérées d'un CMS à l'exécution nécessitent le CMS d'Intlayer, ou les commandes `intlayer pull` / `push`.
262
+ - **`messages` est un fallback, pas gratuit.** Garder les imports JSON dans `createI18n()` maintient les 75 KB dans le bundle. Supprimez-les une fois que `intlayer test` passe.
263
+ - **L'adaptateur n'est pas le runtime natif.** 7.9 KB contre 3.9 KB pour `vue-intlayer`. Une fois que chaque composant a migré vers `useIntlayer`, supprimez-le.
264
+
265
+ ## Quand utiliser quoi ?
266
+
267
+ - **Restez sur `vue-i18n`** si votre app dépend des blocs SFC `<i18n>`, des flux runtime `setLocaleMessage()`, ou si 90 KB par page n'est pas une préoccupation pour votre audience.
268
+ - **Utilisez `@intlayer/vue-i18n`** si vous êtes sur `vue-i18n` et souhaitez les 88 KB économisés, les composants 23x plus petits, 0% de fuite de page, les clés typées et les vérifications CI sans éditer un fichier `.vue`. C'est le point d'entrée pour une codebase `vue-i18n` existante.
269
+ - **Allez au natif (`vue-intlayer`)** pour les nouveaux projets, ou une fois que l'adaptateur a fait son travail. Il dispose du runtime le plus léger (3.9 KB) et du modèle `.content.ts` par composant qui remplace les blocs `<i18n>` par du contenu typé.
270
+
271
+ ## Comparaisons associées
272
+
273
+ - [vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer) (features et DX)
274
+ - [vue-i18n vs Intlayer benchmark](https://intlayer.org/blog/vue-i18n-vs-intlayer-benchmark) (les libraries, même benchmark)
275
+ - [next-intl vs @intlayer/next-intl](https://intlayer.org/blog/next-intl-vs-intlayer-next-intl) (même série d'adapter)
276
+ - [i18next vs @intlayer/i18next](https://intlayer.org/blog/i18next-vs-intlayer-i18next) (même série d'adapter)
277
+ - [Lingui vs @intlayer/lingui](https://intlayer.org/blog/lingui-vs-intlayer-lingui) (même série d'adapter)
278
+ - [Guide de migration : vue-i18n vers Intlayer](https://intlayer.org/doc/migration/vue-i18n)
279
+ - [Référence de l'adaptateur de compatibilité : vue-i18n](https://intlayer.org/doc/compatibility/vue-i18n), [Nuxt i18n](https://intlayer.org/doc/compatibility/nuxtjs-i18n)
280
+
281
+ ## Conclusion
282
+
283
+ `@intlayer/vue-i18n` change ce à quoi `useI18n()` est lié : d'une instance globale contenant chaque message de chaque locale à un dictionnaire compilé pour ce composant. Sur la même application Vite + Vue 3 qui est **88 KB moins lourde par page**, un **runtime 3x plus petit**, des **composants 23x plus petits** et **0% de fuite de page**, pour un fichier de configuration, une ligne de plugin et une importation supprimée. Les blocs SFC `<i18n>` et le chargement de messages au runtime sont les deux choses qu'il ne gère pas, et le runtime `vue-intlayer` natif reste moitié moins volumineux.
284
+
285
+ Toutes les données brutes, les applications de test et les scripts se trouvent dans le [référentiel Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Exécutez-le vous-même.
286
+
287
+ Reportez-vous à la [documentation 'Pourquoi Intlayer ?'](https://intlayer.org/doc/why) pour plus de détails.
@@ -0,0 +1,39 @@
1
+ ---
2
+ createdAt: 2026-09-13
3
+ updatedAt: 2026-09-13
4
+ title: "vue-i18n vs Intlayer : Benchmark 2026"
5
+ description: vue-i18n et Intlayer mesurés sur la même app Vite + Vue 3. Taille de la librairie, JavaScript par page, fuite de contenu, taille des composants et réactivité du changement de locale, avec les chiffres expliqués.
6
+ keywords:
7
+ - vue-i18n
8
+ - Intlayer
9
+ - Internationalization
10
+ - i18n
11
+ - Benchmark
12
+ - Bundle size
13
+ - Blog
14
+ - Vue
15
+ - Nuxt
16
+ - Vite
17
+ - JavaScript
18
+ slugs:
19
+ - blog
20
+ - vue-i18n-vs-intlayer-benchmark
21
+ author: aymericzip
22
+ ---
23
+
24
+ # vue-i18n VS Intlayer | Benchmark d'internationalisation Vue (i18n)
25
+
26
+ `vue-i18n` est la bibliothèque i18n de référence pour Vue. Intlayer est une alternative basée sur un compilateur, délimitée au composant, avec une intégration Vue (`vue-intlayer`). Nous avons déjà comparé leurs [fonctionnalités et expérience développeur](https://intlayer.org/blog/vue-i18n-vs-intlayer). Cet article examine le coût de chacun une fois l'application construite.
27
+
28
+ Les données proviennent de [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom), une suite open-source qui construit la même application avec chaque bibliothèque et enregistre ce que le navigateur télécharge et exécute réellement.
29
+
30
+ <TOC/>
31
+
32
+ > **tl;dr**: Sur la même app Vite + Vue 3, `vue-i18n` embarque **134.9 KB** de JavaScript gzippé par page contre **41.3 KB** pour l'app sans i18n. Intlayer embarque **57.1 KB**. Le runtime `vue-i18n` seul pèse **24.3 KB gzip** (6x les 3.9 KB d'Intlayer), chaque page porte **90% des chaînes de pages étrangères**, et un composant compilé en isolation traîne **196 KB** car il est lié à l'arbre global des messages. L'adaptateur `@intlayer/vue-i18n` conserve l'API `vue-i18n` et a mesuré **47.0 KB** par page.
33
+
34
+ ## En résumé
35
+
36
+ - **vue-i18n** - La bibliothèque i18n de facto pour Vue 2 / Vue 3 et le cœur de `@nuxtjs/i18n`. Messages au style ICU, blocs `<i18n>` dans les SFC, directive `v-t`, formatters `d()` / `n()`, grand écosystème. Les messages sont enregistrés sur une instance globale à `createI18n()`; le chargement lazy par locale suit un pattern `setLocaleMessage()` manuel, et la division per-route est à construire vous-même.
37
+ - **Intlayer** - Modèle de contenu centré sur les composants. Les dictionnaires `.content.ts` se situent à côté du composant qu'ils servent, un compilateur build-time (`vite-intlayer`) tree-shake et lazy-load par composant et par locale, les types TypeScript stricts sont générés depuis votre contenu, et les traductions manquantes échouent au moment du build. Inclut des helpers pour router / SEO, un Visual Editor / CMS et une traduction assistée par IA.
38
+
39
+ | Bibliothèque | Stars GitHub | Commits totaux | Dernier commit | Première version | Version NPM | Téléchargements NPM |
@@ -49,7 +49,7 @@ author: aymericzip
49
49
 
50
50
  यह लेख 2011 से 2026 तक के इस विकास पर नज़र डालता है: प्रत्येक पीढ़ी के उपकरणों ने क्या हल करने का प्रयास किया, क्या सफल रहा, क्या नहीं, और फ्रंटएंड आर्किटेक्चर ने आज i18n के हमारे तरीके को कैसे प्रभावित किया।
51
51
 
52
- ![जावास्क्रिप्ट अंतर्राष्ट्रीयकरण लाइब्रेरी इकोसिस्टम](https://github.com/aymericzip/intlayer/blob/main/docs/assets/cloud_i18n_logo.png?raw=true)
52
+ ![जावास्क्रिप्ट अंतर्राष्ट्रीयकरण लाइब्रेरी इकोसिस्टम](https://github.com/aymericzip/intlayer/blob/main/docs/assets/cloud_i18n_logo.webp?raw=true)
53
53
 
54
54
  ## विषय सूची
55
55
 
@@ -149,87 +149,87 @@ ICU संदेश सिंटैक्स को पार्स करना
149
149
 
150
150
  <Tab label="Core JavaScript" value="javascript">
151
151
 
152
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
153
- | ------------ | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
154
- | जनवरी 2012 | `i18next` | फ्रेमवर्क लॉक-इन के बिना ब्राउज़र और Node.js के लिए रनटाइम डिक्शनरी लुकअप को मानकीकृत करना। | प्लगेबल रनटाइम आर्किटेक्चर जो कोर अनुवाद को लोडर्स, डिटेक्टरों और कैशिंग से अलग करता है। |
155
- | फरवरी 2021 | `typesafe-i18n` | अनटाइप्ड स्ट्रिंग कुंजियों के कारण होने वाली मूक रनटाइम त्रुटियों को रोकना। | बिना किसी रनटाइम निर्भरता के अनुवाद ऑब्जेक्ट्स से सीधे उत्पन्न पूरी तरह से टाइप-सुरक्षित अनुवाद फ़ंक्शन। |
156
- | अक्टूबर 2023 | `paraglide` (`@inlang/paraglide-js`) | रनटाइम डिक्शनरी लुकअप, भारी पार्सर्स और बंडल ब्लोट को समाप्त करना। | संदेशों को ट्री-शेकेबल ECMAScript मॉड्यूल और प्लेन JS फ़ंक्शंस में संकलित करना। |
157
- | अप्रैल 2024 | `intlayer` | अनियंत्रित नेमस्पेस को बदलना, पेज-टू-पेज कंटेंट लीकेज से बचना, और टाइपस्क्रिप्ट युग में टाइप सुरक्षा प्रदान करना। | फ़ंक्शन कॉल के साथ सीधे `.content` फ़ाइलों को रखना, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, और इन-बिल्ट विज़ुअल CMS व AI ट्रांसलेशन टूल्स। |
158
- | जून 2025 | `wuchale` | विकास के दौरान मैन्युअल रूप से टेक्स्ट निकालने और कुंजियाँ बनाने की समस्या को हटाना। | AST-स्तरीय प्रीप्रोसेसिंग जो इनलाइन टेक्स्ट का पता लगाती है और बिल्ड टाइम पर स्थानीयकृत फ़ंक्शन बनाती है। |
152
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
153
+ | ------------ | ------------------------------------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
154
+ | जनवरी 2012 | `i18next` | Jan Mühlemann (`@jamuhl`) | फ्रेमवर्क लॉक-इन के बिना ब्राउज़र और Node.js के लिए रनटाइम डिक्शनरी लुकअप को मानकीकृत करना। | प्लगेबल रनटाइम आर्किटेक्चर जो कोर अनुवाद को लोडर्स, डिटेक्टरों और कैशिंग से अलग करता है। |
155
+ | फरवरी 2021 | `typesafe-i18n` | Ivan Hofer (`@ivanhofer`) | अनटाइप्ड स्ट्रिंग कुंजियों के कारण होने वाली मूक रनटाइम त्रुटियों को रोकना। | बिना किसी रनटाइम निर्भरता के अनुवाद ऑब्जेक्ट्स से सीधे उत्पन्न पूरी तरह से टाइप-सुरक्षित अनुवाद फ़ंक्शन। |
156
+ | अक्टूबर 2023 | `paraglide` (`@inlang/paraglide-js`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | रनटाइम डिक्शनरी लुकअप, भारी पार्सर्स और बंडल ब्लोट को समाप्त करना। | संदेशों को ट्री-शेकेबल ECMAScript मॉड्यूल और प्लेन JS फ़ंक्शंस में संकलित करना। |
157
+ | अगस्त 2024 | `intlayer` | Aymeric Pineau (`@aymericzip`) | अनियंत्रित नेमस्पेस को बदलना, पेज-टू-पेज कंटेंट लीकेज से बचना, और टाइपस्क्रिप्ट युग में टाइप सुरक्षा प्रदान करना। | फ़ंक्शन कॉल के साथ सीधे `.content` फ़ाइलों को रखना, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, और इन-बिल्ट विज़ुअल CMS व AI ट्रांसलेशन टूल्स। |
158
+ | जून 2025 | `wuchale` | Kidus Adugna (`@K1DV5`) | विकास के दौरान मैन्युअल रूप से टेक्स्ट निकालने और कुंजियाँ बनाने की समस्या को हटाना। | AST-स्तरीय प्रीप्रोसेसिंग जो इनलाइन टेक्स्ट का पता लगाती है और बिल्ड टाइम पर स्थानीयकृत फ़ंक्शन बनाती है। |
159
159
 
160
160
  </Tab>
161
161
 
162
162
  <Tab label="React" value="react">
163
163
 
164
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
165
- | ------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
166
- | जून 2014 | `react-intl` | रिएक्ट में संख्याओं, तिथियों, मुद्राओं और जटिल बहुवचनों के लिए स्वरूपण का मानकीकरण। | ICU MessageFormat और ECMA-402 मानकों को लागू करने वाले घोषणात्मक घटक (`<FormattedMessage>`, `<FormattedDate>`)। |
167
- | दिसंबर 2015 | `react-i18next` | रिएक्टिव री-रेंडरिंग के साथ रिएक्ट के लिए `i18next` बाइंडिंग प्रदान करना। | हायर-ऑर्डर घटकों से `<Trans>` JSX इंटरपोलेशन और `useTranslation` हुक तक विकास। |
168
- | जनवरी 2018 | `@lingui/react` | रनटाइम ICU पार्सर्स के कारण जावास्क्रिप्ट बंडल आकार दंड को कम करना। | बिल्ड टाइम पर `<Trans>` और `t` को कॉम्पैक्ट अनुक्रमित सरणियों में संकलित करने वाले Babel/SWC मैक्रोज़। |
169
- | दिसंबर 2020 | `use-intl` | लीगेसी रिएक्ट i18n लाइब्रेरीज़ के लिए एक हल्का, हुक-आधारित, टाइप-सुरक्षित विकल्प देना। | गहरे टाइपस्क्रिप्ट एकीकरण के साथ सुविधाजनक `useTranslations` और `useFormatter` हुक। |
170
- | फरवरी 2021 | `@tolgee/react` | डेवलपर्स, अनुवादकों और डिज़ाइनरों के बीच धीमी प्रतिक्रिया लूप को समाप्त करना। | इन-कॉन्टेक्स्ट ब्राउज़र संपादन जो उपयोगकर्ताओं को Alt-क्लिक करने, अनुवाद संपादित करने और स्क्रीनशॉट लेने की अनुमति देता है। |
171
- | अप्रैल 2024 | `react-intlayer` | रिएक्ट घटक जीवनचक्र के लिए अनुकूलित उच्च-प्रदर्शन Intlayer समाधान प्रदान करना, जिससे केंद्रीकृत JSON समाप्त हो सके। | रिएक्ट रेंडरिंग के लिए तैयार `useIntlayer` हुक, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, घटक-स्तरीय ट्री-शेकिंग और विज़ुअल CMS। |
172
- | जुलाई 2024 | `gt-react` | मैन्युअल फ़ाइल निर्यात और अनुवाद रखरखाव को स्वचालित करना। | मशीन अनुवाद पाइपलाइनों के साथ रिएक्ट घटकों के भीतर सीधे क्लाउड-नेटिव स्वचालित AI स्थानीयकरण। |
173
- | अगस्त 2025 | `@wuchale/jsx` | JSX में मैन्युअल की-नामकरण और बॉयलरप्लेट अनुवाद हुक को हटाना। | AST परिवर्तन जो स्वचालित रूप से कच्चे JSX टेक्स्ट नोड्स को स्थानीयकृत समकक्षों में बदलता है। |
164
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
165
+ | ------------ | ---------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
166
+ | जून 2014 | `react-intl` | Yahoo! / FormatJS | रिएक्ट में संख्याओं, तिथियों, मुद्राओं और जटिल बहुवचनों के लिए स्वरूपण का मानकीकरण। | ICU MessageFormat और ECMA-402 मानकों को लागू करने वाले घोषणात्मक घटक (`<FormattedMessage>`, `<FormattedDate>`)। |
167
+ | दिसंबर 2015 | `react-i18next` | Jan Mühlemann (`@jamuhl`) | रिएक्टिव री-रेंडरिंग के साथ रिएक्ट के लिए `i18next` बाइंडिंग प्रदान करना। | हायर-ऑर्डर घटकों से `<Trans>` JSX इंटरपोलेशन और `useTranslation` हुक तक विकास। |
168
+ | जनवरी 2018 | `@lingui/react` | Tomáš Ehrlich (`@tricoder42`) | रनटाइम ICU पार्सर्स के कारण जावास्क्रिप्ट बंडल आकार दंड को कम करना। | बिल्ड टाइम पर `<Trans>` और `t` को कॉम्पैक्ट अनुक्रमित सरणियों में संकलित करने वाले Babel/SWC मैक्रोज़। |
169
+ | दिसंबर 2020 | `use-intl` | Jan Amann (`@amannn`) | लीगेसी रिएक्ट i18n लाइब्रेरीज़ के लिए एक हल्का, हुक-आधारित, टाइप-सुरक्षित विकल्प देना। | गहरे टाइपस्क्रिप्ट एकीकरण के साथ सुविधाजनक `useTranslations` और `useFormatter` हुक। |
170
+ | फरवरी 2021 | `@tolgee/react` | Jan Cizmar (`@jcizmar`) | डेवलपर्स, अनुवादकों और डिज़ाइनरों के बीच धीमी प्रतिक्रिया लूप को समाप्त करना। | इन-कॉन्टेक्स्ट ब्राउज़र संपादन जो उपयोगकर्ताओं को Alt-क्लिक करने, अनुवाद संपादित करने और स्क्रीनशॉट लेने की अनुमति देता है। |
171
+ | अगस्त 2024 | `react-intlayer` | Aymeric Pineau (`@aymericzip`) | रिएक्ट घटक जीवनचक्र के लिए अनुकूलित उच्च-प्रदर्शन Intlayer समाधान प्रदान करना, जिससे केंद्रीकृत JSON समाप्त हो सके। | रिएक्ट रेंडरिंग के लिए तैयार `useIntlayer` हुक, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, घटक-स्तरीय ट्री-शेकिंग और विज़ुअल CMS। |
172
+ | जुलाई 2024 | `gt-react` | Ernest McCarter (`@eoinest`) | मैन्युअल फ़ाइल निर्यात और अनुवाद रखरखाव को स्वचालित करना। | मशीन अनुवाद पाइपलाइनों के साथ रिएक्ट घटकों के भीतर सीधे क्लाउड-नेटिव स्वचालित AI स्थानीयकरण। |
173
+ | जून 2025 | `@wuchale/jsx` | Kidus Adugna (`@K1DV5`) | JSX में मैन्युअल की-नामकरण और बॉयलरप्लेट अनुवाद हुक को हटाना। | AST परिवर्तन जो स्वचालित रूप से कच्चे JSX टेक्स्ट नोड्स को स्थानीयकृत समकक्षों में बदलता है। |
174
174
 
175
175
  </Tab>
176
176
 
177
177
  <Tab label="Next.js" value="nextjs">
178
178
 
179
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
180
- | ------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
181
- | नवंबर 2018 | `next-i18next` | क्लाइंट वॉटरफॉल के बिना Next.js Pages Router में `i18next` के साथ SSR और SSG का समर्थन। | पेज प्रॉप्स में स्थानीयकृत नेमस्पेस पास करने वाले `serverSideTranslations` और `appWithTranslation`। |
182
- | दिसंबर 2019 | `next-translate` | Next.js Pages Router ऐप्स में कॉन्फ़िगरेशन को सरल बनाना और बंडल का वजन कम करना। | Webpack लोडर प्लगइन जो प्रति पेज केवल आवश्यक अनुवाद नेमस्पेस इंजेक्ट करता है। |
183
- | नवंबर 2020 | `next-intl` | App Router, रिएक्ट सर्वर कंपोनेंट्स (RSC) और स्ट्रीमिंग SSR के लिए Next.js i18n को फिर से डिजाइन करना। | बिना किसी क्लाइंट JS के Next.js App Router मिडलवेयर, सर्वर एक्शन्स और एसिंक्रोनस सर्वर कंपोनेंट्स के साथ मूल एकीकरण। |
184
- | जुलाई 2022 | `next-international` | न्यूनतम क्लाइंट बंडल ओवरहेड के साथ टाइपस्क्रिप्ट टाइप सुरक्षा को अधिकतम करना। | हल्के App Router और Pages Router एडेप्टर के साथ स्कोप्ड कुंजियों के लिए सख्त प्रकार का निर्माण। |
185
- | अप्रैल 2024 | `paraglide-next` (`@inlang/paraglide-next`) | Next.js App Router और Pages Router में जीरो-रनटाइम संकलित संदेश लाना। | ट्री-शेकेबल संदेश फ़ंक्शंस के साथ मिडलवेयर रूटिंग जो RSC में रनटाइम JSON पार्सिंग से बचाती है। |
186
- | अप्रैल 2024 | `next-intlayer` | Next.js App Router के लिए उच्च-प्रदर्शन सर्वर कंपोनेंट एडेप्टर देना, जिससे प्रॉप्स के रूप में `t()` पास करने की आवश्यकता न रहे। | मूल सर्वर कंपोनेंट एडेप्टर जो प्रॉप-ड्रिलिंग के बिना सीधे समकालिक सर्वर घटकों (जैसे Navbar) में `useIntlayer` कॉल करने की अनुमति देता है, साथ ही लाइव CMS सिंक। |
187
- | सितंबर 2024 | `gt-next` | AI अनुवाद का उपयोग करके Next.js में बहुभाषी सामग्री निर्माण और स्थानीयकृत रूटिंग को स्वचालित करना। | क्लाउड मशीन अनुवाद को Next.js एज मिडलवेयर और कैशिंग परतों के साथ जोड़ने वाला एकीकरण। |
179
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
180
+ | ------------ | ------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
181
+ | नवंबर 2018 | `next-i18next` | Isaac Hinman (`@isaachinman`) | क्लाइंट वॉटरफॉल के बिना Next.js Pages Router में `i18next` के साथ SSR और SSG का समर्थन। | पेज प्रॉप्स में स्थानीयकृत नेमस्पेस पास करने वाले `serverSideTranslations` और `appWithTranslation`। |
182
+ | दिसंबर 2020 | `next-translate` | Arvin Wiyono (`@arvinn`) / Vinissimus (`@vinissimus`) | Next.js Pages Router ऐप्स में कॉन्फ़िगरेशन को सरल बनाना और बंडल का वजन कम करना। | Webpack लोडर प्लगइन जो प्रति पेज केवल आवश्यक अनुवाद नेमस्पेस इंजेक्ट करता है। |
183
+ | दिसंबर 2020 | `next-intl` | Jan Amann (`@amannn`) | App Router, रिएक्ट सर्वर कंपोनेंट्स (RSC) और स्ट्रीमिंग SSR के लिए Next.js i18n को फिर से डिजाइन करना। | बिना किसी क्लाइंट JS के Next.js App Router मिडलवेयर, सर्वर एक्शन्स और एसिंक्रोनस सर्वर कंपोनेंट्स के साथ मूल एकीकरण। |
184
+ | जुलाई 2022 | `next-international` | Tom Dussaix (`@tom-dussaix`) | न्यूनतम क्लाइंट बंडल ओवरहेड के साथ टाइपस्क्रिप्ट टाइप सुरक्षा को अधिकतम करना। | हल्के App Router और Pages Router एडेप्टर के साथ स्कोप्ड कुंजियों के लिए सख्त प्रकार का निर्माण। |
185
+ | अक्टूबर 2023 | `paraglide-next` (`@inlang/paraglide-next`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | Next.js App Router और Pages Router में जीरो-रनटाइम संकलित संदेश लाना। | ट्री-शेकेबल संदेश फ़ंक्शंस के साथ मिडलवेयर रूटिंग जो RSC में रनटाइम JSON पार्सिंग से बचाती है। |
186
+ | अगस्त 2024 | `next-intlayer` | Aymeric Pineau (`@aymericzip`) | Next.js App Router के लिए उच्च-प्रदर्शन सर्वर कंपोनेंट एडेप्टर देना, जिससे प्रॉप्स के रूप में `t()` पास करने की आवश्यकता न रहे। | मूल सर्वर कंपोनेंट एडेप्टर जो प्रॉप-ड्रिलिंग के बिना सीधे समकालिक सर्वर घटकों (जैसे Navbar) में `useIntlayer` कॉल करने की अनुमति देता है, साथ ही लाइव CMS सिंक। |
187
+ | जुलाई 2024 | `gt-next` | Ernest McCarter (`@eoinest`) | AI अनुवाद का उपयोग करके Next.js में बहुभाषी सामग्री निर्माण और स्थानीयकृत रूटिंग को स्वचालित करना। | क्लाउड मशीन अनुवाद को Next.js एज मिडलवेयर और कैशिंग परतों के साथ जोड़ने वाला एकीकरण। |
188
188
 
189
189
  </Tab>
190
190
 
191
191
  <Tab label="Vue & Nuxt" value="vue">
192
192
 
193
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
194
- | ------------ | -------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
195
- | मई 2014 | `vue-i18n` | Vue अनुप्रयोगों के लिए मुहावरेदार, प्रतिक्रियाशील अंतर्राष्ट्रीयकरण प्रदान करना। | गहरी प्रतिक्रियाशीलता एकीकरण, टेम्पलेट निर्देश (`v-t`), `$t` हेल्पर, और एकल-फ़ाइल घटक `<i18n>` कस्टम ब्लॉक। |
196
- | नवंबर 2017 | `@nuxt/i18n` | Nuxt में स्थानीयकृत URL रूटिंग, SEO hreflang टैग और SSR हाइड्रेशन को संभालना। | पूर्ण-स्टैक रूटिंग मॉड्यूल जो स्थानीयकृत रूट, SEO मेटा हेडर और लेज़ी चंक लोडिंग उत्पन्न करता है। |
197
- | अगस्त 2019 | `fluent-vue` | Vue में जटिल व्याकरणिक लिंग, कारक और विषम भाषा संरचनाओं को संभालना। | भाषाई विविधताओं के लिए जटिल सशर्त कोड से बचने के लिए मोज़िला प्रोजेक्ट फ्लूएंट का एकीकरण। |
198
- | अप्रैल 2025 | `vue-intlayer` | Vue 3 Composition API और Nuxt के लिए विशेष रूप से डिज़ाइन किया गया उच्च प्रदर्शन वाला Intlayer समाधान। | Vue 3 प्रतिक्रियाशील ट्रैकिंग के लिए तैयार `useIntlayer` कंपोजेबल, प्रत्यक्ष घटक स्कोपिंग, पूर्ण टाइपस्क्रिप्ट ऑटोकम्प्लीशन, और दृश्य संपादक। |
193
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
194
+ | ------------ | -------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
195
+ | मई 2014 | `vue-i18n` | Kazupon (`@kazupon`) | Vue अनुप्रयोगों के लिए मुहावरेदार, प्रतिक्रियाशील अंतर्राष्ट्रीयकरण प्रदान करना। | गहरी प्रतिक्रियाशीलता एकीकरण, टेम्पलेट निर्देश (`v-t`), `$t` हेल्पर, और एकल-फ़ाइल घटक `<i18n>` कस्टम ब्लॉक। |
196
+ | नवंबर 2017 | `@nuxt/i18n` | Nuxt समुदाय | Nuxt में स्थानीयकृत URL रूटिंग, SEO hreflang टैग और SSR हाइड्रेशन को संभालना। | पूर्ण-स्टैक रूटिंग मॉड्यूल जो स्थानीयकृत रूट, SEO मेटा हेडर और लेज़ी चंक लोडिंग उत्पन्न करता है। |
197
+ | अगस्त 2020 | `fluent-vue` | Mozilla (`@mozilla`) / Demivan (`@demivan`) | Vue में जटिल व्याकरणिक लिंग, कारक और विषम भाषा संरचनाओं को संभालना। | भाषाई विविधताओं के लिए जटिल सशर्त कोड से बचने के लिए मोज़िला प्रोजेक्ट फ्लूएंट का एकीकरण। |
198
+ | जनवरी 2025 | `vue-intlayer` | Aymeric Pineau (`@aymericzip`) | Vue 3 Composition API और Nuxt के लिए विशेष रूप से डिज़ाइन किया गया उच्च प्रदर्शन वाला Intlayer समाधान। | Vue 3 प्रतिक्रियाशील ट्रैकिंग के लिए तैयार `useIntlayer` कंपोजेबल, प्रत्यक्ष घटक स्कोपिंग, पूर्ण टाइपस्क्रिप्ट ऑटोकम्प्लीशन, और दृश्य संपादक। |
199
199
 
200
200
  </Tab>
201
201
 
202
202
  <Tab label="Angular" value="angular">
203
203
 
204
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
205
- | ------------ | ------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
206
- | फरवरी 2017 | `ngx-translate` | प्रत्येक लोकेल के लिए अलग बंडल तैनात किए बिना Angular में गतिशील रनटाइम अनुवाद प्रदान करना। | `TranslateService` और `translate` पाइप गतिशील अनुवाद लोडिंग और भाषा टॉगलिंग को सक्षम करते हैं। |
207
- | जुलाई 2019 | `@ngneat/transloco` | पुरानी Angular लाइब्रेरीज़ में प्रदर्शन बाधाओं और स्कोपिंग की कमी को हल करना। | संरचनात्मक निर्देश (`*transloco`), लेज़ी-लोडेड मॉड्यूल के लिए स्कोप्ड अनुवाद, SSR समर्थन, और एक्सट्रैक्शन CLI। |
208
- | सितंबर 2019 | `@angular/localize` | प्रत्येक भाषा के लिए टाइपस्क्रिप्ट को फिर से संकलित करने से बचने के लिए Angular के अंतर्निहित i18n का आधुनिकीकरण। | Ivy कंपाइलर इंजन में एक तेज़ पोस्ट-बिल्ड चरण के रूप में इंजेक्ट किए गए `$localize` के साथ टैग किए गए टेम्पलेट लिटरल्स। |
209
- | फरवरी 2021 | `@tolgee/ngx` | Angular वर्कफ़्लो में सहयोगी इन-कॉन्टेक्स्ट अनुवाद और स्क्रीनशॉट कैप्चरिंग को एकीकृत करना। | लाइव इन-ब्राउज़र स्थानीयकरण के लिए सीधे Tolgee से जुड़े Angular पाइप और निर्देश। |
210
- | अप्रैल 2025 | `angular-intlayer` | आधुनिक Angular (Signals, स्टैंडअलोन घटक और SSR) के लिए तैयार किया गया उच्च प्रदर्शन समाधान। | आधुनिक Angular परिवर्तन पहचान, स्टैंडअलोन निर्भरता इंजेक्शन, और लाइव CMS के लिए डिज़ाइन किया गया सिग्नल-आधारित सामग्री एकीकरण। |
204
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
205
+ | ------------ | ------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
206
+ | फरवरी 2017 | `ngx-translate` | Olivier Combe (`@ocombe`) | प्रत्येक लोकेल के लिए अलग बंडल तैनात किए बिना Angular में गतिशील रनटाइम अनुवाद प्रदान करना। | `TranslateService` और `translate` पाइप गतिशील अनुवाद लोडिंग और भाषा टॉगलिंग को सक्षम करते हैं। |
207
+ | जुलाई 2019 | `@ngneat/transloco` | Netanel Basal (`@NetanelBasal`) & Shahar Kazaz (`@shahar_k`) | पुरानी Angular लाइब्रेरीज़ में प्रदर्शन बाधाओं और स्कोपिंग की कमी को हल करना। | संरचनात्मक निर्देश (`*transloco`), लेज़ी-लोडेड मॉड्यूल के लिए स्कोप्ड अनुवाद, SSR समर्थन, और एक्सट्रैक्शन CLI। |
208
+ | सितंबर 2019 | `@angular/localize` | Angular टीम (@angular) | प्रत्येक भाषा के लिए टाइपस्क्रिप्ट को फिर से संकलित करने से बचने के लिए Angular के अंतर्निहित i18n का आधुनिकीकरण। | Ivy कंपाइलर इंजन में एक तेज़ पोस्ट-बिल्ड चरण के रूप में इंजेक्ट किए गए `$localize` के साथ टैग किए गए टेम्पलेट लिटरल्स। |
209
+ | फरवरी 2021 | `@tolgee/ngx` | Jan Cizmar (`@jcizmar`) | Angular वर्कफ़्लो में सहयोगी इन-कॉन्टेक्स्ट अनुवाद और स्क्रीनशॉट कैप्चरिंग को एकीकृत करना। | लाइव इन-ब्राउज़र स्थानीयकरण के लिए सीधे Tolgee से जुड़े Angular पाइप और निर्देश। |
210
+ | मार्च 2026 | `angular-intlayer` | Aymeric Pineau (`@aymericzip`) | आधुनिक Angular (Signals, स्टैंडअलोन घटक और SSR) के लिए तैयार किया गया उच्च प्रदर्शन समाधान। | आधुनिक Angular परिवर्तन पहचान, स्टैंडअलोन निर्भरता इंजेक्शन, और लाइव CMS के लिए डिज़ाइन किया गया सिग्नल-आधारित सामग्री एकीकरण। |
211
211
 
212
212
  </Tab>
213
213
 
214
214
  <Tab label="Svelte & SvelteKit" value="svelte">
215
215
 
216
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
217
- | ------------ | ----------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
218
- | जुलाई 2018 | `svelte-i18n` | Svelte रिएक्टिव स्टोर्स के अनुरूप एक प्रतिक्रियाशील अंतर्राष्ट्रीयकरण लाइब्रेरी प्रदान करना। | स्टोर-समर्थित `$t` लुकअप जो लोकेल बदलने पर सटीक DOM अपडेट सुनिश्चित करता है। |
219
- | दिसंबर 2021 | `sveltekit-i18n` | SvelteKit अनुप्रयोगों में SSR और रूट-आधारित अनुवाद लोडिंग को स्पष्ट रूप से संभालना। | सक्रिय SvelteKit रूट के लिए आवश्यक अनुवाद और फ़ॉर्मेटर्स लाने वाला मॉड्यूलर लोडर आर्किटेक्चर। |
220
- | नवंबर 2021 | `@tolgee/svelte` | Svelte अनुप्रयोगों में इन-कॉन्टेक्स्ट स्थानीयकरण को सक्षम करना। | Tolgee ओवरले और स्वचालित स्क्रीनशॉट निर्माण के साथ एकीकृत Svelte स्टोर बाइंडिंग। |
221
- | अप्रैल 2025 | `svelte-intlayer` | Svelte 5 और SvelteKit के लिए विशेष रूप से डिज़ाइन किया गया Intlayer समाधान। | Svelte 5 Runes (`$state`) के लिए प्रतिक्रियाशील सामग्री बाइंडिंग, घटक-स्तरीय `.content` घोषणाएं, और विज़ुअल CMS संपादन। |
222
- | जुलाई 2025 | `@wuchale/svelte` | Svelte घटकों में डिक्शनरी घोषित करने और `$t` फ़ंक्शन आयात करने के बॉयलरप्लेट को हटाना। | Svelte प्रीप्रोसेसर जो बिल्ड टाइम पर टेम्प्लेट को पार्स करता है और टेक्स्ट नोड्स को शून्य-रैपर स्थानीयकृत आउटपुट में संकलित करता है। |
216
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
217
+ | ------------ | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
218
+ | जुलाई 2018 | `svelte-i18n` | Kaisermann (`@kaisermann`) | Svelte रिएक्टिव स्टोर्स के अनुरूप एक प्रतिक्रियाशील अंतर्राष्ट्रीयकरण लाइब्रेरी प्रदान करना। | स्टोर-समर्थित `$t` लुकअप जो लोकेल बदलने पर सटीक DOM अपडेट सुनिश्चित करता है। |
219
+ | दिसंबर 2021 | `sveltekit-i18n` | Ivan Fevrier (`@ivanfevrier`) | SvelteKit अनुप्रयोगों में SSR और रूट-आधारित अनुवाद लोडिंग को स्पष्ट रूप से संभालना। | सक्रिय SvelteKit रूट के लिए आवश्यक अनुवाद और फ़ॉर्मेटर्स लाने वाला मॉड्यूलर लोडर आर्किटेक्चर। |
220
+ | नवंबर 2021 | `@tolgee/svelte` | Jan Cizmar (`@jcizmar`) | Svelte अनुप्रयोगों में इन-कॉन्टेक्स्ट स्थानीयकरण को सक्षम करना। | Tolgee ओवरले और स्वचालित स्क्रीनशॉट निर्माण के साथ एकीकृत Svelte स्टोर बाइंडिंग। |
221
+ | अक्टूबर 2025 | `svelte-intlayer` | Aymeric Pineau (`@aymericzip`) | Svelte 5 और SvelteKit के लिए विशेष रूप से डिज़ाइन किया गया Intlayer समाधान। | Svelte 5 Runes (`$state`) के लिए प्रतिक्रियाशील सामग्री बाइंडिंग, घटक-स्तरीय `.content` घोषणाएं, और विज़ुअल CMS संपादन। |
222
+ | जुलाई 2025 | `@wuchale/svelte` | Kidus Adugna (`@K1DV5`) | Svelte घटकों में डिक्शनरी घोषित करने और `$t` फ़ंक्शन आयात करने के बॉयलरप्लेट को हटाना। | Svelte प्रीप्रोसेसर जो बिल्ड टाइम पर टेम्प्लेट को पार्स करता है और टेक्स्ट नोड्स को शून्य-रैपर स्थानीयकृत आउटपुट में संकलित करता है। |
223
223
 
224
224
  </Tab>
225
225
 
226
226
  <Tab label="SolidJS" value="solid">
227
227
 
228
- | प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
229
- | ------------ | ------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
230
- | सितंबर 2021 | `@solid-primitives/i18n` | SolidJS सूक्ष्म प्रतिक्रियाशीलता से मेल खाने वाला एक मुहावरेदार i18n प्रिमिटिव प्रदान करना। | वर्चुअल DOM या अनावश्यक री-रेंडर के बिना DOM नोड्स को अपडेट करने वाला सिग्नल-आधारित अनुवाद समाधान। |
231
- | अप्रैल 2025 | `solid-intlayer` | SolidJS और SolidStart के लिए विशेष रूप से विकसित उच्च-प्रदर्शन Intlayer समाधान। | वर्चुअल DOM ओवरहेड के बिना सॉलिड की सूक्ष्म प्रतिक्रियाशीलता के लिए अनुकूलित सामग्री बाइंडिंग और विज़ुअल एडिटर एकीकरण। |
232
- | जून 2026 | `@lingui/solid` | SolidJS में कंपाइल-टाइम मैक्रो एक्सट्रैक्शन और ICU MessageFormat समर्थन का विस्तार करना। | सॉलिड की प्रतिक्रियाशीलता के अनुकूल मैक्रो परिवर्तन, जो संदेशों को कॉम्पैक्ट रनटाइम संरचनाओं में संकलित करते हैं। |
228
+ | प्रथम रिलीज़ | लाइब्रेरी | लेखक | हल करने का उद्देश्य | प्रमुख नवाचार |
229
+ | ------------ | ------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
230
+ | सितंबर 2021 | `@solid-primitives/i18n` | SolidJS समुदाय | SolidJS सूक्ष्म प्रतिक्रियाशीलता से मेल खाने वाला एक मुहावरेदार i18n प्रिमिटिव प्रदान करना। | वर्चुअल DOM या अनावश्यक री-रेंडर के बिना DOM नोड्स को अपडेट करने वाला सिग्नल-आधारित अनुवाद समाधान। |
231
+ | जुलाई 2025 | `solid-intlayer` | Aymeric Pineau (`@aymericzip`) | SolidJS और SolidStart के लिए विशेष रूप से विकसित उच्च-प्रदर्शन Intlayer समाधान। | वर्चुअल DOM ओवरहेड के बिना सॉलिड की सूक्ष्म प्रतिक्रियाशीलता के लिए अनुकूलित सामग्री बाइंडिंग और विज़ुअल एडिटर एकीकरण। |
232
+ | जून 2026 | `@lingui/solid` | Tomáš Ehrlich (`@tricoder42`) | SolidJS में कंपाइल-टाइम मैक्रो एक्सट्रैक्शन और ICU MessageFormat समर्थन का विस्तार करना। | सॉलिड की प्रतिक्रियाशीलता के अनुकूल मैक्रो परिवर्तन, जो संदेशों को कॉम्पैक्ट रनटाइम संरचनाओं में संकलित करते हैं। |
233
233
 
234
234
  </Tab>
235
235
 
@@ -237,7 +237,7 @@ ICU संदेश सिंटैक्स को पार्स करना
237
237
 
238
238
  ## जावास्क्रिप्ट i18n के चार वास्तुशिल्प युग
239
239
 
240
- ![जावास्क्रिप्ट i18n लाइब्रेरीज़ का इतिहास](https://github.com/aymericzip/intlayer/blob/main/docs/assets/history_i18n.png?raw=true)
240
+ ![जावास्क्रिप्ट i18n लाइब्रेरीज़ का इतिहास](https://github.com/aymericzip/intlayer/blob/main/docs/assets/history_i18n.webp?raw=true)
241
241
 
242
242
  पंद्रह वर्षों के विकास को देखते हुए, हम जावास्क्रिप्ट अंतर्राष्ट्रीयकरण के इतिहास को चार अलग-अलग वास्तुशिल्प युगों में वर्गीकृत कर सकते हैं:
243
243
 
@@ -287,7 +287,7 @@ ICU संदेश सिंटैक्स को पार्स करना
287
287
 
288
288
  जैसे-जैसे आधुनिक बड़े भाषा मॉडलों (LLMs) ने भाषाई सटीकता बढ़ाते हुए अनुवाद लागत को नगण्य कर दिया, इस बाजार पर कब्जा करने के लिए वाणिज्यिक उपकरणों की एक नई पीढ़ी सामने आई:
289
289
 
290
- - Paraglide (**linguo.dev**) या **General Translation** (`gt-react`, `gt-next`) जैसे प्लेटफार्मों ने नए स्वामित्व वाले सब्सक्रिप्शन और मध्यवर्ती क्लाउड पाइपलाइनों को पेश करके AI लहर पर चलने का प्रयास किया है।
290
+ - **lingo.dev** या **General Translation** (`gt-react`, `gt-next`) जैसे प्लेटफार्मों ने नए स्वामित्व वाले सब्सक्रिप्शन और मध्यवर्ती क्लाउड पाइपलाइनों को पेश करके AI लहर पर चलने का प्रयास किया है।
291
291
  - इसके विपरीत, **Intlayer** अपने CLI के माध्यम से सीधे स्वचालित AI अनुवाद प्रदान करता है, जिससे टीमें अपनी स्वयं की API कुंजियों (जैसे OpenAI, Anthropic, Mistral, या Google Gemini) को कनेक्ट कर सकती हैं। कोई अतिरिक्त मार्कअप या वेंडर लॉक-इन नहीं है, यह सीधे आपके चुने हुए AI प्रदाता की लागत पर चलता है।
292
292
 
293
293
  ### केवल i18n से अधिक: एक संपूर्ण बहुभाषी सामग्री प्रणाली