@intlayer/docs 9.5.1 → 9.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/README.md +1 -1
  2. package/blog/ar/history_of_i18n.md +304 -0
  3. package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
  4. package/blog/ar/i18next_vs_intlayer.md +445 -0
  5. package/blog/ar/is_i18next_outdated.md +1 -1
  6. package/blog/ar/is_next-intl_outdated.md +1 -1
  7. package/blog/ar/is_vue-i18n_outdated.md +1 -1
  8. package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
  9. package/blog/ar/lingui_vs_intlayer.md +381 -0
  10. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  11. package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
  12. package/blog/ar/next-intl_vs_intlayer.md +397 -0
  13. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  14. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
  15. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
  16. package/blog/de/history_of_i18n.md +304 -0
  17. package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
  18. package/blog/de/i18next_vs_intlayer.md +445 -0
  19. package/blog/de/is_i18next_outdated.md +1 -1
  20. package/blog/de/is_next-intl_outdated.md +1 -1
  21. package/blog/de/is_vue-i18n_outdated.md +1 -1
  22. package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
  23. package/blog/de/lingui_vs_intlayer.md +381 -0
  24. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  25. package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
  26. package/blog/de/next-intl_vs_intlayer.md +415 -0
  27. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  28. package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
  29. package/blog/en/history_of_i18n.md +304 -0
  30. package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
  31. package/blog/en/i18next_vs_intlayer.md +445 -0
  32. package/blog/en/is_i18next_outdated.md +1 -1
  33. package/blog/en/is_next-intl_outdated.md +1 -1
  34. package/blog/en/is_vue-i18n_outdated.md +1 -1
  35. package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
  36. package/blog/en/lingui_vs_intlayer.md +381 -0
  37. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  38. package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
  39. package/blog/en/next-intl_vs_intlayer.md +415 -0
  40. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  41. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  42. package/blog/en/vue-i18n_vs_intlayer.md +1 -1
  43. package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
  44. package/blog/en-GB/history_of_i18n.md +304 -0
  45. package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
  46. package/blog/en-GB/i18next_vs_intlayer.md +445 -0
  47. package/blog/en-GB/is_i18next_outdated.md +1 -1
  48. package/blog/en-GB/is_next-intl_outdated.md +1 -1
  49. package/blog/en-GB/is_vue-i18n_outdated.md +1 -1
  50. package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
  51. package/blog/en-GB/lingui_vs_intlayer.md +381 -0
  52. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  53. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
  54. package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
  55. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  56. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  57. package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
  58. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
  59. package/blog/es/history_of_i18n.md +304 -0
  60. package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
  61. package/blog/es/i18next_vs_intlayer.md +445 -0
  62. package/blog/es/is_i18next_outdated.md +1 -1
  63. package/blog/es/is_next-intl_outdated.md +1 -1
  64. package/blog/es/is_vue-i18n_outdated.md +1 -1
  65. package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
  66. package/blog/es/lingui_vs_intlayer.md +381 -0
  67. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  68. package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
  69. package/blog/es/next-intl_vs_intlayer.md +417 -0
  70. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  71. package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
  72. package/blog/fr/history_of_i18n.md +304 -0
  73. package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
  74. package/blog/fr/i18next_vs_intlayer.md +445 -0
  75. package/blog/fr/is_i18next_outdated.md +1 -1
  76. package/blog/fr/is_next-intl_outdated.md +1 -1
  77. package/blog/fr/is_vue-i18n_outdated.md +1 -1
  78. package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
  79. package/blog/fr/lingui_vs_intlayer.md +381 -0
  80. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  81. package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
  82. package/blog/fr/next-intl_vs_intlayer.md +417 -0
  83. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
  84. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
  85. package/blog/hi/history_of_i18n.md +304 -0
  86. package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
  87. package/blog/hi/i18next_vs_intlayer.md +445 -0
  88. package/blog/hi/is_i18next_outdated.md +1 -1
  89. package/blog/hi/is_next-intl_outdated.md +1 -1
  90. package/blog/hi/is_vue-i18n_outdated.md +1 -1
  91. package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
  92. package/blog/hi/lingui_vs_intlayer.md +381 -0
  93. package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
  94. package/blog/hi/next-intl_vs_intlayer.md +397 -0
  95. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  96. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  97. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  98. package/blog/id/history_of_i18n.md +304 -0
  99. package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
  100. package/blog/id/i18next_vs_intlayer.md +445 -0
  101. package/blog/id/is_i18next_outdated.md +1 -1
  102. package/blog/id/is_next-intl_outdated.md +1 -1
  103. package/blog/id/is_vue-i18n_outdated.md +1 -1
  104. package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
  105. package/blog/id/lingui_vs_intlayer.md +381 -0
  106. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  107. package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
  108. package/blog/id/next-intl_vs_intlayer.md +397 -0
  109. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  110. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
  111. package/blog/id/vue-i18n_vs_intlayer.md +1 -1
  112. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
  113. package/blog/it/history_of_i18n.md +304 -0
  114. package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
  115. package/blog/it/i18next_vs_intlayer.md +445 -0
  116. package/blog/it/is_i18next_outdated.md +1 -1
  117. package/blog/it/is_next-intl_outdated.md +1 -1
  118. package/blog/it/is_vue-i18n_outdated.md +1 -1
  119. package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
  120. package/blog/it/lingui_vs_intlayer.md +381 -0
  121. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  122. package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
  123. package/blog/it/next-intl_vs_intlayer.md +418 -0
  124. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  125. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
  126. package/blog/ja/history_of_i18n.md +304 -0
  127. package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
  128. package/blog/ja/i18next_vs_intlayer.md +447 -0
  129. package/blog/ja/is_i18next_outdated.md +1 -1
  130. package/blog/ja/is_next-intl_outdated.md +1 -1
  131. package/blog/ja/is_vue-i18n_outdated.md +1 -1
  132. package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
  133. package/blog/ja/lingui_vs_intlayer.md +381 -0
  134. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  135. package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
  136. package/blog/ja/next-intl_vs_intlayer.md +422 -0
  137. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  138. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  139. package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
  140. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
  141. package/blog/ko/history_of_i18n.md +304 -0
  142. package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
  143. package/blog/ko/i18next_vs_intlayer.md +447 -0
  144. package/blog/ko/is_i18next_outdated.md +1 -1
  145. package/blog/ko/is_next-intl_outdated.md +1 -1
  146. package/blog/ko/is_vue-i18n_outdated.md +1 -1
  147. package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
  148. package/blog/ko/lingui_vs_intlayer.md +381 -0
  149. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  150. package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
  151. package/blog/ko/next-intl_vs_intlayer.md +397 -0
  152. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  153. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  154. package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
  155. package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
  156. package/blog/pl/history_of_i18n.md +304 -0
  157. package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
  158. package/blog/pl/i18next_vs_intlayer.md +445 -0
  159. package/blog/pl/is_i18next_outdated.md +1 -1
  160. package/blog/pl/is_next-intl_outdated.md +1 -1
  161. package/blog/pl/is_vue-i18n_outdated.md +1 -1
  162. package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
  163. package/blog/pl/lingui_vs_intlayer.md +381 -0
  164. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  165. package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
  166. package/blog/pl/next-intl_vs_intlayer.md +397 -0
  167. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  168. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
  169. package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
  170. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
  171. package/blog/pt/history_of_i18n.md +304 -0
  172. package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
  173. package/blog/pt/i18next_vs_intlayer.md +445 -0
  174. package/blog/pt/is_i18next_outdated.md +1 -1
  175. package/blog/pt/is_next-intl_outdated.md +1 -1
  176. package/blog/pt/is_vue-i18n_outdated.md +1 -1
  177. package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
  178. package/blog/pt/lingui_vs_intlayer.md +381 -0
  179. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  180. package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
  181. package/blog/pt/next-intl_vs_intlayer.md +411 -0
  182. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  183. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
  184. package/blog/ru/history_of_i18n.md +304 -0
  185. package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
  186. package/blog/ru/i18next_vs_intlayer.md +445 -0
  187. package/blog/ru/is_i18next_outdated.md +1 -1
  188. package/blog/ru/is_next-intl_outdated.md +1 -1
  189. package/blog/ru/is_vue-i18n_outdated.md +1 -1
  190. package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
  191. package/blog/ru/lingui_vs_intlayer.md +381 -0
  192. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  193. package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
  194. package/blog/ru/next-intl_vs_intlayer.md +417 -0
  195. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  196. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
  197. package/blog/tr/history_of_i18n.md +304 -0
  198. package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
  199. package/blog/tr/i18next_vs_intlayer.md +445 -0
  200. package/blog/tr/is_i18next_outdated.md +1 -1
  201. package/blog/tr/is_next-intl_outdated.md +1 -1
  202. package/blog/tr/is_vue-i18n_outdated.md +1 -1
  203. package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
  204. package/blog/tr/lingui_vs_intlayer.md +381 -0
  205. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  206. package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
  207. package/blog/tr/next-intl_vs_intlayer.md +397 -0
  208. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  209. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  210. package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
  211. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
  212. package/blog/uk/history_of_i18n.md +304 -0
  213. package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
  214. package/blog/uk/i18next_vs_intlayer.md +445 -0
  215. package/blog/uk/is_i18next_outdated.md +1 -1
  216. package/blog/uk/is_next-intl_outdated.md +1 -1
  217. package/blog/uk/is_vue-i18n_outdated.md +1 -1
  218. package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
  219. package/blog/uk/lingui_vs_intlayer.md +381 -0
  220. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  221. package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
  222. package/blog/uk/next-intl_vs_intlayer.md +397 -0
  223. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  224. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
  225. package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
  226. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
  227. package/blog/vi/history_of_i18n.md +304 -0
  228. package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
  229. package/blog/vi/i18next_vs_intlayer.md +445 -0
  230. package/blog/vi/is_i18next_outdated.md +1 -1
  231. package/blog/vi/is_next-intl_outdated.md +1 -1
  232. package/blog/vi/is_vue-i18n_outdated.md +1 -1
  233. package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
  234. package/blog/vi/lingui_vs_intlayer.md +381 -0
  235. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  236. package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
  237. package/blog/vi/next-intl_vs_intlayer.md +397 -0
  238. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  239. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  240. package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
  241. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  242. package/blog/zh/history_of_i18n.md +304 -0
  243. package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
  244. package/blog/zh/i18next_vs_intlayer.md +445 -0
  245. package/blog/zh/is_i18next_outdated.md +1 -1
  246. package/blog/zh/is_next-intl_outdated.md +1 -1
  247. package/blog/zh/is_vue-i18n_outdated.md +1 -1
  248. package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
  249. package/blog/zh/lingui_vs_intlayer.md +381 -0
  250. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  251. package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
  252. package/blog/zh/next-intl_vs_intlayer.md +422 -0
  253. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  254. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  255. package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
  256. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
  257. package/dist/cjs/generated/blog.entry.cjs +180 -0
  258. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  259. package/dist/cjs/generated/docs.entry.cjs +0 -20
  260. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  261. package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
  262. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  263. package/dist/esm/generated/blog.entry.mjs +180 -0
  264. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  265. package/dist/esm/generated/docs.entry.mjs +0 -20
  266. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  267. package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
  268. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  269. package/dist/types/generated/blog.entry.d.ts +9 -0
  270. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  271. package/dist/types/generated/docs.entry.d.ts +0 -1
  272. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  273. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  274. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  275. package/docs/ar/benchmark/index.md +4 -1
  276. package/docs/ar/benchmark/nextjs.md +33 -28
  277. package/docs/ar/benchmark/solid.md +14 -11
  278. package/docs/ar/benchmark/svelte.md +13 -10
  279. package/docs/ar/benchmark/tanstack.md +30 -25
  280. package/docs/ar/benchmark/vue.md +12 -8
  281. package/docs/ar/cli/build.md +8 -1
  282. package/docs/ar/cli/configuration.md +3 -1
  283. package/docs/ar/cli/doc-review.md +8 -1
  284. package/docs/ar/cli/doc-translate.md +5 -1
  285. package/docs/ar/cli/extract.md +2 -1
  286. package/docs/ar/cli/fill.md +5 -1
  287. package/docs/ar/cli/index.md +4 -5
  288. package/docs/ar/cli/live.md +5 -1
  289. package/docs/ar/cli/login.md +2 -2
  290. package/docs/ar/cli/pull.md +5 -1
  291. package/docs/ar/cli/push.md +5 -1
  292. package/docs/ar/cli/scan.md +5 -1
  293. package/docs/ar/cli/standalone.md +5 -1
  294. package/docs/ar/cli/test.md +5 -1
  295. package/docs/ar/cli/watch.md +5 -1
  296. package/docs/ar/compat/i18n-js.md +1 -1
  297. package/docs/ar/compat/i18next.md +1 -1
  298. package/docs/ar/compat/lingui.md +1 -1
  299. package/docs/ar/compat/next-i18next.md +1 -1
  300. package/docs/ar/compat/next-intl.md +1 -1
  301. package/docs/ar/compat/next-translate.md +1 -1
  302. package/docs/ar/compat/ngx-translate.md +1 -1
  303. package/docs/ar/compat/nuxtjs-i18n.md +1 -1
  304. package/docs/ar/compat/polyglot.md +1 -1
  305. package/docs/ar/compat/react-i18next.md +1 -1
  306. package/docs/ar/compat/react-intl.md +1 -1
  307. package/docs/ar/compat/svelte-i18n.md +1 -1
  308. package/docs/ar/compat/transloco.md +1 -1
  309. package/docs/ar/compat/vue-i18n.md +1 -1
  310. package/docs/ar/interest_of_intlayer.md +1 -1
  311. package/docs/ar/intlayer_with_remix_3.md +543 -0
  312. package/docs/bn/cli/index.md +4 -5
  313. package/docs/bn/cli/scan.md +5 -1
  314. package/docs/bn/cli/standalone.md +5 -1
  315. package/docs/bn/interest_of_intlayer.md +1 -1
  316. package/docs/cs/cli/index.md +4 -5
  317. package/docs/cs/cli/scan.md +5 -1
  318. package/docs/cs/cli/standalone.md +5 -1
  319. package/docs/cs/interest_of_intlayer.md +1 -1
  320. package/docs/de/benchmark/index.md +4 -1
  321. package/docs/de/benchmark/nextjs.md +33 -28
  322. package/docs/de/benchmark/solid.md +14 -11
  323. package/docs/de/benchmark/svelte.md +13 -10
  324. package/docs/de/benchmark/tanstack.md +30 -25
  325. package/docs/de/benchmark/vue.md +12 -8
  326. package/docs/de/cli/build.md +8 -1
  327. package/docs/de/cli/configuration.md +3 -1
  328. package/docs/de/cli/doc-review.md +8 -1
  329. package/docs/de/cli/doc-translate.md +5 -1
  330. package/docs/de/cli/extract.md +2 -1
  331. package/docs/de/cli/fill.md +5 -1
  332. package/docs/de/cli/index.md +4 -5
  333. package/docs/de/cli/live.md +5 -1
  334. package/docs/de/cli/login.md +2 -2
  335. package/docs/de/cli/pull.md +5 -1
  336. package/docs/de/cli/push.md +5 -1
  337. package/docs/de/cli/scan.md +5 -1
  338. package/docs/de/cli/standalone.md +5 -1
  339. package/docs/de/cli/test.md +5 -1
  340. package/docs/de/cli/watch.md +5 -1
  341. package/docs/de/compat/i18n-js.md +1 -1
  342. package/docs/de/compat/i18next.md +1 -1
  343. package/docs/de/compat/lingui.md +1 -1
  344. package/docs/de/compat/next-i18next.md +1 -1
  345. package/docs/de/compat/next-intl.md +1 -1
  346. package/docs/de/compat/next-translate.md +1 -1
  347. package/docs/de/compat/ngx-translate.md +1 -1
  348. package/docs/de/compat/nuxtjs-i18n.md +1 -1
  349. package/docs/de/compat/polyglot.md +1 -1
  350. package/docs/de/compat/react-i18next.md +1 -1
  351. package/docs/de/compat/react-intl.md +1 -1
  352. package/docs/de/compat/svelte-i18n.md +1 -1
  353. package/docs/de/compat/transloco.md +1 -1
  354. package/docs/de/compat/vue-i18n.md +1 -1
  355. package/docs/de/interest_of_intlayer.md +1 -1
  356. package/docs/de/intlayer_with_remix_3.md +543 -0
  357. package/docs/en/benchmark/index.md +4 -1
  358. package/docs/en/benchmark/nextjs.md +33 -28
  359. package/docs/en/benchmark/solid.md +14 -11
  360. package/docs/en/benchmark/svelte.md +13 -10
  361. package/docs/en/benchmark/tanstack.md +31 -26
  362. package/docs/en/benchmark/vue.md +12 -8
  363. package/docs/en/cli/build.md +8 -1
  364. package/docs/en/cli/configuration.md +3 -1
  365. package/docs/en/cli/doc-review.md +8 -1
  366. package/docs/en/cli/doc-translate.md +5 -1
  367. package/docs/en/cli/extract.md +2 -1
  368. package/docs/en/cli/fill.md +5 -1
  369. package/docs/en/cli/index.md +4 -5
  370. package/docs/en/cli/live.md +5 -1
  371. package/docs/en/cli/login.md +2 -2
  372. package/docs/en/cli/pull.md +5 -1
  373. package/docs/en/cli/push.md +5 -1
  374. package/docs/en/cli/scan.md +5 -1
  375. package/docs/en/cli/standalone.md +5 -1
  376. package/docs/en/cli/test.md +5 -1
  377. package/docs/en/cli/watch.md +5 -1
  378. package/docs/en/compat/i18n-js.md +1 -1
  379. package/docs/en/compat/i18next.md +1 -1
  380. package/docs/en/compat/lingui.md +1 -1
  381. package/docs/en/compat/next-i18next.md +1 -1
  382. package/docs/en/compat/next-intl.md +1 -1
  383. package/docs/en/compat/next-translate.md +1 -1
  384. package/docs/en/compat/ngx-translate.md +1 -1
  385. package/docs/en/compat/nuxtjs-i18n.md +1 -1
  386. package/docs/en/compat/polyglot.md +1 -1
  387. package/docs/en/compat/react-i18next.md +1 -1
  388. package/docs/en/compat/react-intl.md +1 -1
  389. package/docs/en/compat/svelte-i18n.md +1 -1
  390. package/docs/en/compat/transloco.md +1 -1
  391. package/docs/en/compat/vue-i18n.md +1 -1
  392. package/docs/en/interest_of_intlayer.md +1 -1
  393. package/docs/en/intlayer_with_remix_3.md +103 -71
  394. package/docs/en-GB/benchmark/index.md +4 -1
  395. package/docs/en-GB/benchmark/nextjs.md +33 -28
  396. package/docs/en-GB/benchmark/solid.md +14 -11
  397. package/docs/en-GB/benchmark/svelte.md +13 -10
  398. package/docs/en-GB/benchmark/tanstack.md +30 -25
  399. package/docs/en-GB/benchmark/vue.md +12 -8
  400. package/docs/en-GB/cli/build.md +8 -1
  401. package/docs/en-GB/cli/configuration.md +3 -1
  402. package/docs/en-GB/cli/doc-review.md +8 -1
  403. package/docs/en-GB/cli/doc-translate.md +5 -1
  404. package/docs/en-GB/cli/extract.md +2 -1
  405. package/docs/en-GB/cli/fill.md +5 -1
  406. package/docs/en-GB/cli/index.md +4 -5
  407. package/docs/en-GB/cli/live.md +5 -1
  408. package/docs/en-GB/cli/login.md +2 -2
  409. package/docs/en-GB/cli/pull.md +5 -1
  410. package/docs/en-GB/cli/push.md +5 -1
  411. package/docs/en-GB/cli/scan.md +5 -1
  412. package/docs/en-GB/cli/standalone.md +5 -1
  413. package/docs/en-GB/cli/test.md +5 -1
  414. package/docs/en-GB/cli/watch.md +5 -1
  415. package/docs/en-GB/compat/i18n-js.md +1 -1
  416. package/docs/en-GB/compat/i18next.md +1 -1
  417. package/docs/en-GB/compat/lingui.md +1 -1
  418. package/docs/en-GB/compat/next-i18next.md +1 -1
  419. package/docs/en-GB/compat/next-intl.md +1 -1
  420. package/docs/en-GB/compat/next-translate.md +1 -1
  421. package/docs/en-GB/compat/ngx-translate.md +1 -1
  422. package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
  423. package/docs/en-GB/compat/polyglot.md +1 -1
  424. package/docs/en-GB/compat/react-i18next.md +1 -1
  425. package/docs/en-GB/compat/react-intl.md +1 -1
  426. package/docs/en-GB/compat/svelte-i18n.md +1 -1
  427. package/docs/en-GB/compat/transloco.md +1 -1
  428. package/docs/en-GB/compat/vue-i18n.md +1 -1
  429. package/docs/en-GB/interest_of_intlayer.md +1 -1
  430. package/docs/en-GB/intlayer_with_remix_3.md +558 -0
  431. package/docs/es/benchmark/index.md +4 -1
  432. package/docs/es/benchmark/nextjs.md +33 -28
  433. package/docs/es/benchmark/solid.md +14 -11
  434. package/docs/es/benchmark/svelte.md +13 -10
  435. package/docs/es/benchmark/tanstack.md +30 -25
  436. package/docs/es/benchmark/vue.md +12 -8
  437. package/docs/es/cli/build.md +8 -1
  438. package/docs/es/cli/configuration.md +3 -1
  439. package/docs/es/cli/doc-review.md +8 -1
  440. package/docs/es/cli/doc-translate.md +5 -1
  441. package/docs/es/cli/extract.md +2 -1
  442. package/docs/es/cli/fill.md +5 -1
  443. package/docs/es/cli/index.md +4 -5
  444. package/docs/es/cli/live.md +5 -1
  445. package/docs/es/cli/login.md +2 -2
  446. package/docs/es/cli/pull.md +5 -1
  447. package/docs/es/cli/push.md +5 -1
  448. package/docs/es/cli/scan.md +5 -1
  449. package/docs/es/cli/standalone.md +5 -1
  450. package/docs/es/cli/test.md +5 -1
  451. package/docs/es/cli/watch.md +5 -1
  452. package/docs/es/compat/i18n-js.md +1 -1
  453. package/docs/es/compat/i18next.md +1 -1
  454. package/docs/es/compat/lingui.md +1 -1
  455. package/docs/es/compat/next-i18next.md +1 -1
  456. package/docs/es/compat/next-intl.md +1 -1
  457. package/docs/es/compat/next-translate.md +1 -1
  458. package/docs/es/compat/ngx-translate.md +1 -1
  459. package/docs/es/compat/nuxtjs-i18n.md +1 -1
  460. package/docs/es/compat/polyglot.md +1 -1
  461. package/docs/es/compat/react-i18next.md +1 -1
  462. package/docs/es/compat/react-intl.md +1 -1
  463. package/docs/es/compat/svelte-i18n.md +1 -1
  464. package/docs/es/compat/transloco.md +1 -1
  465. package/docs/es/compat/vue-i18n.md +1 -1
  466. package/docs/es/interest_of_intlayer.md +1 -1
  467. package/docs/es/intlayer_with_remix_3.md +540 -0
  468. package/docs/fr/benchmark/index.md +4 -1
  469. package/docs/fr/benchmark/nextjs.md +33 -28
  470. package/docs/fr/benchmark/solid.md +14 -11
  471. package/docs/fr/benchmark/svelte.md +13 -10
  472. package/docs/fr/benchmark/tanstack.md +30 -25
  473. package/docs/fr/benchmark/vue.md +12 -8
  474. package/docs/fr/cli/build.md +8 -1
  475. package/docs/fr/cli/configuration.md +3 -1
  476. package/docs/fr/cli/doc-review.md +8 -1
  477. package/docs/fr/cli/doc-translate.md +5 -1
  478. package/docs/fr/cli/extract.md +2 -1
  479. package/docs/fr/cli/fill.md +5 -1
  480. package/docs/fr/cli/index.md +4 -5
  481. package/docs/fr/cli/live.md +5 -1
  482. package/docs/fr/cli/login.md +2 -2
  483. package/docs/fr/cli/pull.md +5 -1
  484. package/docs/fr/cli/push.md +5 -1
  485. package/docs/fr/cli/scan.md +5 -1
  486. package/docs/fr/cli/standalone.md +5 -1
  487. package/docs/fr/cli/test.md +5 -1
  488. package/docs/fr/cli/watch.md +5 -1
  489. package/docs/fr/compat/i18n-js.md +1 -1
  490. package/docs/fr/compat/i18next.md +1 -1
  491. package/docs/fr/compat/lingui.md +1 -1
  492. package/docs/fr/compat/next-i18next.md +1 -1
  493. package/docs/fr/compat/next-intl.md +1 -1
  494. package/docs/fr/compat/next-translate.md +1 -1
  495. package/docs/fr/compat/ngx-translate.md +1 -1
  496. package/docs/fr/compat/nuxtjs-i18n.md +1 -1
  497. package/docs/fr/compat/polyglot.md +1 -1
  498. package/docs/fr/compat/react-i18next.md +1 -1
  499. package/docs/fr/compat/react-intl.md +1 -1
  500. package/docs/fr/compat/svelte-i18n.md +1 -1
  501. package/docs/fr/compat/transloco.md +1 -1
  502. package/docs/fr/compat/vue-i18n.md +1 -1
  503. package/docs/fr/interest_of_intlayer.md +1 -1
  504. package/docs/fr/intlayer_with_remix_3.md +540 -0
  505. package/docs/hi/benchmark/index.md +4 -1
  506. package/docs/hi/benchmark/nextjs.md +33 -28
  507. package/docs/hi/benchmark/solid.md +14 -11
  508. package/docs/hi/benchmark/svelte.md +13 -10
  509. package/docs/hi/benchmark/tanstack.md +30 -25
  510. package/docs/hi/benchmark/vue.md +12 -8
  511. package/docs/hi/cli/build.md +8 -1
  512. package/docs/hi/cli/configuration.md +3 -1
  513. package/docs/hi/cli/doc-review.md +8 -1
  514. package/docs/hi/cli/doc-translate.md +5 -1
  515. package/docs/hi/cli/extract.md +2 -1
  516. package/docs/hi/cli/fill.md +5 -1
  517. package/docs/hi/cli/index.md +4 -5
  518. package/docs/hi/cli/live.md +5 -1
  519. package/docs/hi/cli/login.md +2 -2
  520. package/docs/hi/cli/pull.md +5 -1
  521. package/docs/hi/cli/push.md +5 -1
  522. package/docs/hi/cli/scan.md +5 -1
  523. package/docs/hi/cli/standalone.md +5 -1
  524. package/docs/hi/cli/test.md +5 -1
  525. package/docs/hi/cli/watch.md +5 -1
  526. package/docs/hi/compat/i18n-js.md +1 -1
  527. package/docs/hi/compat/i18next.md +1 -1
  528. package/docs/hi/compat/lingui.md +1 -1
  529. package/docs/hi/compat/next-i18next.md +1 -1
  530. package/docs/hi/compat/next-intl.md +1 -1
  531. package/docs/hi/compat/next-translate.md +1 -1
  532. package/docs/hi/compat/ngx-translate.md +1 -1
  533. package/docs/hi/compat/nuxtjs-i18n.md +1 -1
  534. package/docs/hi/compat/polyglot.md +1 -1
  535. package/docs/hi/compat/react-i18next.md +1 -1
  536. package/docs/hi/compat/react-intl.md +1 -1
  537. package/docs/hi/compat/svelte-i18n.md +1 -1
  538. package/docs/hi/compat/transloco.md +1 -1
  539. package/docs/hi/compat/vue-i18n.md +1 -1
  540. package/docs/hi/interest_of_intlayer.md +1 -1
  541. package/docs/hi/intlayer_with_remix_3.md +543 -0
  542. package/docs/id/benchmark/index.md +4 -1
  543. package/docs/id/benchmark/nextjs.md +33 -28
  544. package/docs/id/benchmark/solid.md +14 -11
  545. package/docs/id/benchmark/svelte.md +13 -10
  546. package/docs/id/benchmark/tanstack.md +30 -25
  547. package/docs/id/benchmark/vue.md +12 -8
  548. package/docs/id/cli/build.md +8 -1
  549. package/docs/id/cli/configuration.md +3 -1
  550. package/docs/id/cli/doc-review.md +8 -1
  551. package/docs/id/cli/doc-translate.md +5 -1
  552. package/docs/id/cli/extract.md +2 -1
  553. package/docs/id/cli/fill.md +5 -1
  554. package/docs/id/cli/index.md +4 -5
  555. package/docs/id/cli/live.md +5 -1
  556. package/docs/id/cli/login.md +2 -2
  557. package/docs/id/cli/pull.md +5 -1
  558. package/docs/id/cli/push.md +5 -1
  559. package/docs/id/cli/scan.md +5 -1
  560. package/docs/id/cli/standalone.md +5 -1
  561. package/docs/id/cli/test.md +5 -1
  562. package/docs/id/cli/watch.md +5 -1
  563. package/docs/id/compat/i18n-js.md +1 -1
  564. package/docs/id/compat/i18next.md +1 -1
  565. package/docs/id/compat/lingui.md +1 -1
  566. package/docs/id/compat/next-i18next.md +1 -1
  567. package/docs/id/compat/next-intl.md +1 -1
  568. package/docs/id/compat/next-translate.md +1 -1
  569. package/docs/id/compat/ngx-translate.md +1 -1
  570. package/docs/id/compat/nuxtjs-i18n.md +1 -1
  571. package/docs/id/compat/polyglot.md +1 -1
  572. package/docs/id/compat/react-i18next.md +1 -1
  573. package/docs/id/compat/react-intl.md +1 -1
  574. package/docs/id/compat/svelte-i18n.md +1 -1
  575. package/docs/id/compat/transloco.md +1 -1
  576. package/docs/id/compat/vue-i18n.md +1 -1
  577. package/docs/id/interest_of_intlayer.md +1 -1
  578. package/docs/id/intlayer_with_remix_3.md +566 -0
  579. package/docs/it/benchmark/index.md +4 -1
  580. package/docs/it/benchmark/nextjs.md +33 -28
  581. package/docs/it/benchmark/solid.md +14 -11
  582. package/docs/it/benchmark/svelte.md +13 -10
  583. package/docs/it/benchmark/tanstack.md +30 -25
  584. package/docs/it/benchmark/vue.md +12 -8
  585. package/docs/it/cli/build.md +8 -1
  586. package/docs/it/cli/configuration.md +3 -1
  587. package/docs/it/cli/doc-review.md +8 -1
  588. package/docs/it/cli/doc-translate.md +5 -1
  589. package/docs/it/cli/extract.md +2 -1
  590. package/docs/it/cli/fill.md +5 -1
  591. package/docs/it/cli/index.md +4 -5
  592. package/docs/it/cli/live.md +5 -1
  593. package/docs/it/cli/login.md +2 -2
  594. package/docs/it/cli/pull.md +5 -1
  595. package/docs/it/cli/push.md +5 -1
  596. package/docs/it/cli/scan.md +5 -1
  597. package/docs/it/cli/standalone.md +5 -1
  598. package/docs/it/cli/test.md +5 -1
  599. package/docs/it/cli/watch.md +5 -1
  600. package/docs/it/compat/i18n-js.md +1 -1
  601. package/docs/it/compat/i18next.md +1 -1
  602. package/docs/it/compat/lingui.md +1 -1
  603. package/docs/it/compat/next-i18next.md +1 -1
  604. package/docs/it/compat/next-intl.md +1 -1
  605. package/docs/it/compat/next-translate.md +1 -1
  606. package/docs/it/compat/ngx-translate.md +1 -1
  607. package/docs/it/compat/nuxtjs-i18n.md +1 -1
  608. package/docs/it/compat/polyglot.md +1 -1
  609. package/docs/it/compat/react-i18next.md +1 -1
  610. package/docs/it/compat/react-intl.md +1 -1
  611. package/docs/it/compat/svelte-i18n.md +1 -1
  612. package/docs/it/compat/transloco.md +1 -1
  613. package/docs/it/compat/vue-i18n.md +1 -1
  614. package/docs/it/interest_of_intlayer.md +1 -1
  615. package/docs/it/intlayer_with_remix_3.md +558 -0
  616. package/docs/ja/benchmark/index.md +4 -1
  617. package/docs/ja/benchmark/nextjs.md +33 -28
  618. package/docs/ja/benchmark/solid.md +14 -11
  619. package/docs/ja/benchmark/svelte.md +13 -10
  620. package/docs/ja/benchmark/tanstack.md +30 -25
  621. package/docs/ja/benchmark/vue.md +12 -8
  622. package/docs/ja/cli/build.md +8 -1
  623. package/docs/ja/cli/configuration.md +3 -1
  624. package/docs/ja/cli/doc-review.md +8 -1
  625. package/docs/ja/cli/doc-translate.md +5 -1
  626. package/docs/ja/cli/extract.md +2 -1
  627. package/docs/ja/cli/fill.md +5 -1
  628. package/docs/ja/cli/index.md +4 -5
  629. package/docs/ja/cli/live.md +5 -1
  630. package/docs/ja/cli/login.md +2 -2
  631. package/docs/ja/cli/pull.md +5 -1
  632. package/docs/ja/cli/push.md +5 -1
  633. package/docs/ja/cli/scan.md +5 -1
  634. package/docs/ja/cli/standalone.md +5 -1
  635. package/docs/ja/cli/test.md +5 -1
  636. package/docs/ja/cli/watch.md +5 -1
  637. package/docs/ja/compat/i18n-js.md +1 -1
  638. package/docs/ja/compat/i18next.md +1 -1
  639. package/docs/ja/compat/lingui.md +1 -1
  640. package/docs/ja/compat/next-i18next.md +1 -1
  641. package/docs/ja/compat/next-intl.md +1 -1
  642. package/docs/ja/compat/next-translate.md +1 -1
  643. package/docs/ja/compat/ngx-translate.md +1 -1
  644. package/docs/ja/compat/nuxtjs-i18n.md +1 -1
  645. package/docs/ja/compat/polyglot.md +1 -1
  646. package/docs/ja/compat/react-i18next.md +1 -1
  647. package/docs/ja/compat/react-intl.md +1 -1
  648. package/docs/ja/compat/svelte-i18n.md +1 -1
  649. package/docs/ja/compat/transloco.md +1 -1
  650. package/docs/ja/compat/vue-i18n.md +1 -1
  651. package/docs/ja/interest_of_intlayer.md +1 -1
  652. package/docs/ja/intlayer_with_remix_3.md +558 -0
  653. package/docs/ko/benchmark/index.md +4 -1
  654. package/docs/ko/benchmark/nextjs.md +33 -28
  655. package/docs/ko/benchmark/solid.md +14 -11
  656. package/docs/ko/benchmark/svelte.md +13 -10
  657. package/docs/ko/benchmark/tanstack.md +30 -25
  658. package/docs/ko/benchmark/vue.md +12 -8
  659. package/docs/ko/cli/build.md +8 -1
  660. package/docs/ko/cli/configuration.md +3 -1
  661. package/docs/ko/cli/doc-review.md +8 -1
  662. package/docs/ko/cli/doc-translate.md +5 -1
  663. package/docs/ko/cli/extract.md +2 -1
  664. package/docs/ko/cli/fill.md +5 -1
  665. package/docs/ko/cli/index.md +4 -5
  666. package/docs/ko/cli/live.md +5 -1
  667. package/docs/ko/cli/login.md +2 -2
  668. package/docs/ko/cli/pull.md +5 -1
  669. package/docs/ko/cli/push.md +5 -1
  670. package/docs/ko/cli/scan.md +5 -1
  671. package/docs/ko/cli/standalone.md +5 -1
  672. package/docs/ko/cli/test.md +5 -1
  673. package/docs/ko/cli/watch.md +5 -1
  674. package/docs/ko/compat/i18n-js.md +1 -1
  675. package/docs/ko/compat/i18next.md +1 -1
  676. package/docs/ko/compat/lingui.md +1 -1
  677. package/docs/ko/compat/next-i18next.md +1 -1
  678. package/docs/ko/compat/next-intl.md +1 -1
  679. package/docs/ko/compat/next-translate.md +1 -1
  680. package/docs/ko/compat/ngx-translate.md +1 -1
  681. package/docs/ko/compat/nuxtjs-i18n.md +1 -1
  682. package/docs/ko/compat/polyglot.md +1 -1
  683. package/docs/ko/compat/react-i18next.md +1 -1
  684. package/docs/ko/compat/react-intl.md +1 -1
  685. package/docs/ko/compat/svelte-i18n.md +1 -1
  686. package/docs/ko/compat/transloco.md +1 -1
  687. package/docs/ko/compat/vue-i18n.md +1 -1
  688. package/docs/ko/interest_of_intlayer.md +1 -1
  689. package/docs/ko/intlayer_with_remix_3.md +543 -0
  690. package/docs/nl/cli/index.md +4 -5
  691. package/docs/nl/cli/scan.md +5 -1
  692. package/docs/nl/cli/standalone.md +5 -1
  693. package/docs/nl/interest_of_intlayer.md +1 -1
  694. package/docs/pl/benchmark/index.md +4 -1
  695. package/docs/pl/benchmark/nextjs.md +33 -28
  696. package/docs/pl/benchmark/solid.md +14 -11
  697. package/docs/pl/benchmark/svelte.md +13 -10
  698. package/docs/pl/benchmark/tanstack.md +30 -25
  699. package/docs/pl/benchmark/vue.md +12 -8
  700. package/docs/pl/cli/build.md +8 -1
  701. package/docs/pl/cli/configuration.md +3 -1
  702. package/docs/pl/cli/doc-review.md +8 -1
  703. package/docs/pl/cli/doc-translate.md +5 -1
  704. package/docs/pl/cli/extract.md +2 -1
  705. package/docs/pl/cli/fill.md +5 -1
  706. package/docs/pl/cli/index.md +4 -5
  707. package/docs/pl/cli/live.md +5 -1
  708. package/docs/pl/cli/login.md +2 -2
  709. package/docs/pl/cli/pull.md +5 -1
  710. package/docs/pl/cli/push.md +5 -1
  711. package/docs/pl/cli/scan.md +5 -1
  712. package/docs/pl/cli/standalone.md +5 -1
  713. package/docs/pl/cli/test.md +5 -1
  714. package/docs/pl/cli/watch.md +5 -1
  715. package/docs/pl/compat/i18n-js.md +1 -1
  716. package/docs/pl/compat/i18next.md +1 -1
  717. package/docs/pl/compat/lingui.md +1 -1
  718. package/docs/pl/compat/next-i18next.md +1 -1
  719. package/docs/pl/compat/next-intl.md +1 -1
  720. package/docs/pl/compat/next-translate.md +1 -1
  721. package/docs/pl/compat/ngx-translate.md +1 -1
  722. package/docs/pl/compat/nuxtjs-i18n.md +1 -1
  723. package/docs/pl/compat/polyglot.md +1 -1
  724. package/docs/pl/compat/react-i18next.md +1 -1
  725. package/docs/pl/compat/react-intl.md +1 -1
  726. package/docs/pl/compat/svelte-i18n.md +1 -1
  727. package/docs/pl/compat/transloco.md +1 -1
  728. package/docs/pl/compat/vue-i18n.md +1 -1
  729. package/docs/pl/interest_of_intlayer.md +1 -1
  730. package/docs/pl/intlayer_with_remix_3.md +551 -0
  731. package/docs/pt/benchmark/index.md +4 -1
  732. package/docs/pt/benchmark/nextjs.md +33 -28
  733. package/docs/pt/benchmark/solid.md +14 -11
  734. package/docs/pt/benchmark/svelte.md +13 -10
  735. package/docs/pt/benchmark/tanstack.md +30 -25
  736. package/docs/pt/benchmark/vue.md +12 -8
  737. package/docs/pt/cli/build.md +8 -1
  738. package/docs/pt/cli/configuration.md +3 -1
  739. package/docs/pt/cli/doc-review.md +8 -1
  740. package/docs/pt/cli/doc-translate.md +5 -1
  741. package/docs/pt/cli/extract.md +2 -1
  742. package/docs/pt/cli/fill.md +5 -1
  743. package/docs/pt/cli/index.md +4 -5
  744. package/docs/pt/cli/live.md +5 -1
  745. package/docs/pt/cli/login.md +2 -2
  746. package/docs/pt/cli/pull.md +5 -1
  747. package/docs/pt/cli/push.md +5 -1
  748. package/docs/pt/cli/scan.md +5 -1
  749. package/docs/pt/cli/standalone.md +5 -1
  750. package/docs/pt/cli/test.md +5 -1
  751. package/docs/pt/cli/watch.md +5 -1
  752. package/docs/pt/compat/i18n-js.md +1 -1
  753. package/docs/pt/compat/i18next.md +1 -1
  754. package/docs/pt/compat/lingui.md +1 -1
  755. package/docs/pt/compat/next-i18next.md +1 -1
  756. package/docs/pt/compat/next-intl.md +1 -1
  757. package/docs/pt/compat/next-translate.md +1 -1
  758. package/docs/pt/compat/ngx-translate.md +1 -1
  759. package/docs/pt/compat/nuxtjs-i18n.md +1 -1
  760. package/docs/pt/compat/polyglot.md +1 -1
  761. package/docs/pt/compat/react-i18next.md +1 -1
  762. package/docs/pt/compat/react-intl.md +1 -1
  763. package/docs/pt/compat/svelte-i18n.md +1 -1
  764. package/docs/pt/compat/transloco.md +1 -1
  765. package/docs/pt/compat/vue-i18n.md +1 -1
  766. package/docs/pt/interest_of_intlayer.md +1 -1
  767. package/docs/pt/intlayer_with_remix_3.md +558 -0
  768. package/docs/ru/benchmark/index.md +4 -1
  769. package/docs/ru/benchmark/nextjs.md +33 -28
  770. package/docs/ru/benchmark/solid.md +14 -11
  771. package/docs/ru/benchmark/svelte.md +13 -10
  772. package/docs/ru/benchmark/tanstack.md +30 -25
  773. package/docs/ru/benchmark/vue.md +12 -8
  774. package/docs/ru/cli/build.md +8 -1
  775. package/docs/ru/cli/configuration.md +3 -1
  776. package/docs/ru/cli/doc-review.md +8 -1
  777. package/docs/ru/cli/doc-translate.md +5 -1
  778. package/docs/ru/cli/extract.md +2 -1
  779. package/docs/ru/cli/fill.md +5 -1
  780. package/docs/ru/cli/index.md +4 -5
  781. package/docs/ru/cli/live.md +5 -1
  782. package/docs/ru/cli/login.md +2 -2
  783. package/docs/ru/cli/pull.md +5 -1
  784. package/docs/ru/cli/push.md +5 -1
  785. package/docs/ru/cli/scan.md +5 -1
  786. package/docs/ru/cli/standalone.md +5 -1
  787. package/docs/ru/cli/test.md +5 -1
  788. package/docs/ru/cli/watch.md +5 -1
  789. package/docs/ru/compat/i18n-js.md +1 -1
  790. package/docs/ru/compat/i18next.md +1 -1
  791. package/docs/ru/compat/lingui.md +1 -1
  792. package/docs/ru/compat/next-i18next.md +1 -1
  793. package/docs/ru/compat/next-intl.md +1 -1
  794. package/docs/ru/compat/next-translate.md +1 -1
  795. package/docs/ru/compat/ngx-translate.md +1 -1
  796. package/docs/ru/compat/nuxtjs-i18n.md +1 -1
  797. package/docs/ru/compat/polyglot.md +1 -1
  798. package/docs/ru/compat/react-i18next.md +1 -1
  799. package/docs/ru/compat/react-intl.md +1 -1
  800. package/docs/ru/compat/svelte-i18n.md +1 -1
  801. package/docs/ru/compat/transloco.md +1 -1
  802. package/docs/ru/compat/vue-i18n.md +1 -1
  803. package/docs/ru/interest_of_intlayer.md +1 -1
  804. package/docs/ru/intlayer_with_remix_3.md +558 -0
  805. package/docs/tr/benchmark/index.md +4 -1
  806. package/docs/tr/benchmark/nextjs.md +33 -28
  807. package/docs/tr/benchmark/solid.md +14 -11
  808. package/docs/tr/benchmark/svelte.md +13 -10
  809. package/docs/tr/benchmark/tanstack.md +30 -25
  810. package/docs/tr/benchmark/vue.md +12 -8
  811. package/docs/tr/cli/build.md +8 -1
  812. package/docs/tr/cli/configuration.md +3 -1
  813. package/docs/tr/cli/doc-review.md +8 -1
  814. package/docs/tr/cli/doc-translate.md +5 -1
  815. package/docs/tr/cli/extract.md +2 -1
  816. package/docs/tr/cli/fill.md +5 -1
  817. package/docs/tr/cli/index.md +4 -5
  818. package/docs/tr/cli/live.md +5 -1
  819. package/docs/tr/cli/login.md +2 -2
  820. package/docs/tr/cli/pull.md +5 -1
  821. package/docs/tr/cli/push.md +5 -1
  822. package/docs/tr/cli/scan.md +5 -1
  823. package/docs/tr/cli/standalone.md +5 -1
  824. package/docs/tr/cli/test.md +5 -1
  825. package/docs/tr/cli/watch.md +5 -1
  826. package/docs/tr/compat/i18n-js.md +1 -1
  827. package/docs/tr/compat/i18next.md +1 -1
  828. package/docs/tr/compat/lingui.md +1 -1
  829. package/docs/tr/compat/next-i18next.md +1 -1
  830. package/docs/tr/compat/next-intl.md +1 -1
  831. package/docs/tr/compat/next-translate.md +1 -1
  832. package/docs/tr/compat/ngx-translate.md +1 -1
  833. package/docs/tr/compat/nuxtjs-i18n.md +1 -1
  834. package/docs/tr/compat/polyglot.md +1 -1
  835. package/docs/tr/compat/react-i18next.md +1 -1
  836. package/docs/tr/compat/react-intl.md +1 -1
  837. package/docs/tr/compat/svelte-i18n.md +1 -1
  838. package/docs/tr/compat/transloco.md +1 -1
  839. package/docs/tr/compat/vue-i18n.md +1 -1
  840. package/docs/tr/interest_of_intlayer.md +1 -1
  841. package/docs/tr/intlayer_with_remix_3.md +566 -0
  842. package/docs/uk/benchmark/index.md +4 -1
  843. package/docs/uk/benchmark/nextjs.md +33 -28
  844. package/docs/uk/benchmark/solid.md +14 -11
  845. package/docs/uk/benchmark/svelte.md +13 -10
  846. package/docs/uk/benchmark/tanstack.md +30 -25
  847. package/docs/uk/benchmark/vue.md +12 -8
  848. package/docs/uk/cli/build.md +8 -1
  849. package/docs/uk/cli/configuration.md +3 -1
  850. package/docs/uk/cli/doc-review.md +8 -1
  851. package/docs/uk/cli/doc-translate.md +5 -1
  852. package/docs/uk/cli/extract.md +2 -1
  853. package/docs/uk/cli/fill.md +5 -1
  854. package/docs/uk/cli/index.md +4 -5
  855. package/docs/uk/cli/live.md +5 -1
  856. package/docs/uk/cli/login.md +2 -2
  857. package/docs/uk/cli/pull.md +5 -1
  858. package/docs/uk/cli/push.md +5 -1
  859. package/docs/uk/cli/scan.md +5 -1
  860. package/docs/uk/cli/standalone.md +5 -1
  861. package/docs/uk/cli/test.md +5 -1
  862. package/docs/uk/cli/watch.md +5 -1
  863. package/docs/uk/compat/i18n-js.md +1 -1
  864. package/docs/uk/compat/i18next.md +1 -1
  865. package/docs/uk/compat/lingui.md +1 -1
  866. package/docs/uk/compat/next-i18next.md +1 -1
  867. package/docs/uk/compat/next-intl.md +1 -1
  868. package/docs/uk/compat/next-translate.md +1 -1
  869. package/docs/uk/compat/ngx-translate.md +1 -1
  870. package/docs/uk/compat/nuxtjs-i18n.md +1 -1
  871. package/docs/uk/compat/polyglot.md +1 -1
  872. package/docs/uk/compat/react-i18next.md +1 -1
  873. package/docs/uk/compat/react-intl.md +1 -1
  874. package/docs/uk/compat/svelte-i18n.md +1 -1
  875. package/docs/uk/compat/transloco.md +1 -1
  876. package/docs/uk/compat/vue-i18n.md +1 -1
  877. package/docs/uk/interest_of_intlayer.md +1 -1
  878. package/docs/uk/intlayer_with_remix_3.md +566 -0
  879. package/docs/ur/cli/index.md +4 -5
  880. package/docs/ur/cli/scan.md +5 -1
  881. package/docs/ur/cli/standalone.md +5 -1
  882. package/docs/ur/interest_of_intlayer.md +1 -1
  883. package/docs/vi/benchmark/index.md +4 -1
  884. package/docs/vi/benchmark/nextjs.md +33 -28
  885. package/docs/vi/benchmark/solid.md +14 -11
  886. package/docs/vi/benchmark/svelte.md +13 -10
  887. package/docs/vi/benchmark/tanstack.md +30 -25
  888. package/docs/vi/benchmark/vue.md +12 -8
  889. package/docs/vi/cli/build.md +8 -1
  890. package/docs/vi/cli/configuration.md +3 -1
  891. package/docs/vi/cli/doc-review.md +8 -1
  892. package/docs/vi/cli/doc-translate.md +5 -1
  893. package/docs/vi/cli/extract.md +2 -1
  894. package/docs/vi/cli/fill.md +5 -1
  895. package/docs/vi/cli/index.md +4 -5
  896. package/docs/vi/cli/live.md +5 -1
  897. package/docs/vi/cli/login.md +2 -2
  898. package/docs/vi/cli/pull.md +5 -1
  899. package/docs/vi/cli/push.md +5 -1
  900. package/docs/vi/cli/scan.md +5 -1
  901. package/docs/vi/cli/standalone.md +5 -1
  902. package/docs/vi/cli/test.md +5 -1
  903. package/docs/vi/cli/watch.md +5 -1
  904. package/docs/vi/compat/i18n-js.md +1 -1
  905. package/docs/vi/compat/i18next.md +1 -1
  906. package/docs/vi/compat/lingui.md +1 -1
  907. package/docs/vi/compat/next-i18next.md +1 -1
  908. package/docs/vi/compat/next-intl.md +1 -1
  909. package/docs/vi/compat/next-translate.md +1 -1
  910. package/docs/vi/compat/ngx-translate.md +1 -1
  911. package/docs/vi/compat/nuxtjs-i18n.md +1 -1
  912. package/docs/vi/compat/polyglot.md +1 -1
  913. package/docs/vi/compat/react-i18next.md +1 -1
  914. package/docs/vi/compat/react-intl.md +1 -1
  915. package/docs/vi/compat/svelte-i18n.md +1 -1
  916. package/docs/vi/compat/transloco.md +1 -1
  917. package/docs/vi/compat/vue-i18n.md +1 -1
  918. package/docs/vi/interest_of_intlayer.md +1 -1
  919. package/docs/vi/intlayer_with_remix_3.md +566 -0
  920. package/docs/zh/benchmark/index.md +4 -1
  921. package/docs/zh/benchmark/nextjs.md +33 -28
  922. package/docs/zh/benchmark/solid.md +14 -11
  923. package/docs/zh/benchmark/svelte.md +13 -10
  924. package/docs/zh/benchmark/tanstack.md +30 -25
  925. package/docs/zh/benchmark/vue.md +12 -8
  926. package/docs/zh/cli/build.md +8 -1
  927. package/docs/zh/cli/configuration.md +3 -1
  928. package/docs/zh/cli/doc-review.md +8 -1
  929. package/docs/zh/cli/doc-translate.md +5 -1
  930. package/docs/zh/cli/extract.md +2 -1
  931. package/docs/zh/cli/fill.md +5 -1
  932. package/docs/zh/cli/index.md +4 -5
  933. package/docs/zh/cli/live.md +5 -1
  934. package/docs/zh/cli/login.md +2 -2
  935. package/docs/zh/cli/pull.md +5 -1
  936. package/docs/zh/cli/push.md +5 -1
  937. package/docs/zh/cli/scan.md +5 -1
  938. package/docs/zh/cli/standalone.md +5 -1
  939. package/docs/zh/cli/test.md +5 -1
  940. package/docs/zh/cli/watch.md +5 -1
  941. package/docs/zh/compat/i18n-js.md +1 -1
  942. package/docs/zh/compat/i18next.md +1 -1
  943. package/docs/zh/compat/lingui.md +1 -1
  944. package/docs/zh/compat/next-i18next.md +1 -1
  945. package/docs/zh/compat/next-intl.md +1 -1
  946. package/docs/zh/compat/next-translate.md +1 -1
  947. package/docs/zh/compat/ngx-translate.md +1 -1
  948. package/docs/zh/compat/nuxtjs-i18n.md +1 -1
  949. package/docs/zh/compat/polyglot.md +1 -1
  950. package/docs/zh/compat/react-i18next.md +1 -1
  951. package/docs/zh/compat/react-intl.md +1 -1
  952. package/docs/zh/compat/svelte-i18n.md +1 -1
  953. package/docs/zh/compat/transloco.md +1 -1
  954. package/docs/zh/compat/vue-i18n.md +1 -1
  955. package/docs/zh/interest_of_intlayer.md +1 -1
  956. package/docs/zh/intlayer_with_remix_3.md +558 -0
  957. package/docs/zh-TW/interest_of_intlayer.md +1 -1
  958. package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
  959. package/frequent_questions/de/claude_code_token_consumption.md +152 -0
  960. package/frequent_questions/en/claude_code_token_consumption.md +152 -0
  961. package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
  962. package/frequent_questions/es/claude_code_token_consumption.md +152 -0
  963. package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
  964. package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
  965. package/frequent_questions/id/claude_code_token_consumption.md +152 -0
  966. package/frequent_questions/it/claude_code_token_consumption.md +152 -0
  967. package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
  968. package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
  969. package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
  970. package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
  971. package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
  972. package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
  973. package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
  974. package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
  975. package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
  976. package/package.json +7 -7
  977. package/src/generated/blog.entry.ts +180 -0
  978. package/src/generated/docs.entry.ts +0 -20
  979. package/src/generated/frequentQuestions.entry.ts +20 -0
  980. package/docs/ar/cli/ci.md +0 -186
  981. package/docs/de/cli/ci.md +0 -186
  982. package/docs/en/cli/ci.md +0 -216
  983. package/docs/en-GB/cli/ci.md +0 -186
  984. package/docs/es/cli/ci.md +0 -186
  985. package/docs/fr/cli/ci.md +0 -186
  986. package/docs/hi/cli/ci.md +0 -186
  987. package/docs/id/cli/ci.md +0 -186
  988. package/docs/it/cli/ci.md +0 -186
  989. package/docs/ja/cli/ci.md +0 -186
  990. package/docs/ko/cli/ci.md +0 -186
  991. package/docs/pl/cli/ci.md +0 -186
  992. package/docs/pt/cli/ci.md +0 -186
  993. package/docs/ru/cli/ci.md +0 -186
  994. package/docs/tr/cli/ci.md +0 -186
  995. package/docs/uk/cli/ci.md +0 -186
  996. package/docs/vi/cli/ci.md +0 -186
  997. package/docs/zh/cli/ci.md +0 -186
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-05-18
3
+ updatedAt: 2026-09-11
4
4
  title: 2026년 Next.js를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: next-intl, next-i18next, Intlayer와 같은 Next.js 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n
19
19
  history:
20
+ - version: 9.5.1
21
+ date: 2026-09-11
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 8.9.8
21
24
  date: 2026-05-18
22
25
  changes: "GitHub 스타 비교 추가"
@@ -56,7 +59,7 @@ style="border:none;"
56
59
 
57
60
  앱이 성장함에 따라 번들 크기가 기하급수적으로 커질 수 있으며, 이는 성능 저하를 눈에 띄게 유발할 수 있습니다.
58
61
 
59
- 예를 들어, 가장 좋지 않은 사례의 경우 국제화 후 페이지 크기가 거의 4배까지 커질 수 있습니다.
62
+ 예를 들어, 가장 좋지 않은 사례의 경우 국제화 후 페이지 크기가 거의 2배까지 커질 수 있습니다.
60
63
 
61
64
  i18n 라이브러리의 또 다른 영향은 개발 속도 저하입니다. 컴포넌트를 여러 언어를 지원하는 다국어 콘텐츠로 변환하는 작업은 시간이 많이 걸립니다.
62
65
 
@@ -68,7 +71,7 @@ Intlayer는 이러한 모든 차원에서 최적화를 시도합니다.
68
71
 
69
72
  - **Intlayer** & **next-translate**: Next.js 성능을 위한 최선의 선택으로, 가장 작은 풋프린트와 최고의 정적 렌더링 지원을 제공합니다.
70
73
  - **next-intl**: 가장 트렌디한 옵션이지만 대규모 애플리케이션을 위해 최적화하기에는 무겁고 복잡합니다.
71
- - **next-i18next**: 인기가 많고 플러그인이 풍부하지만 상당한 번들 무게를 가집니다(Intlayer의 약 3배).
74
+ - **next-i18next**: 인기가 많고 플러그인이 풍부하지만 상당한 번들 무게를 가집니다(Intlayer의 약 3.5배).
72
75
  - **피해야 할 솔루션**: **gt-next** 및 **lingo.dev**는 심각한 성능 문제, 벤더 종속성 및 빌드를 중단시키는 버그로 인해 권장하지 않습니다.
73
76
 
74
77
  ## 앱 테스트하기
@@ -109,19 +112,21 @@ Webpack이나 Turbopack을 사용하고 `generateStaticParams`가 정의되어
109
112
  이 벤치마크에서는 다음과 같은 라이브러리를 비교했습니다:
110
113
 
111
114
  - `Base App` (i18n 라이브러리 없음)
112
- - `next-intlayer` (v8.7.12)
113
- - `next-i18next` (v16.0.5)
114
- - `next-intl` (v4.9.1)
115
- - `@lingui/core` (v5.3.0)
116
- - `next-translate` (v3.1.2)
115
+ - `next-intlayer` (v9.5.1)
116
+ - [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/next-intl.md) (v9.5.1)
117
+ - [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/next-i18next.md) (v9.5.1)
118
+ - `next-i18next` (v16.3.0)
119
+ - `next-intl` (v4.14.2)
120
+ - `@lingui/core` (v6.6.0)
121
+ - `next-translate` (v3.2.0)
117
122
  - `next-international` (v1.3.1)
118
123
  - `@inlang/paraglide-js` (v2.15.1)
119
- - `@tolgee/react` (v7.0.0)
120
- - `@lingo.dev/compiler` (v0.4.0)
121
- - `wuchale` (v0.22.11)
122
- - `gt-next` (v6.16.5)
124
+ - `@tolgee/react` (v7.2.0)
125
+ - `@lingo.dev/compiler` (v0.4.12)
126
+ - `wuchale` (v0.26.6)
127
+ - `gt-next` (v11.1.24)
123
128
 
124
- Next.js 버전 `16.2.4`와 App Router를 사용했습니다.
129
+ Next.js 버전 `16.3.4`와 App Router를 사용했습니다.
125
130
 
126
131
  **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 구축했습니다.
127
132
 
@@ -165,7 +170,7 @@ Next.js 버전 `16.2.4`와 App Router를 사용했습니다.
165
170
 
166
171
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
167
172
 
168
- [![Star History Chart](https://api.star-history.com/chart?repos=i18next%2Fnext-i18next%2Camannn%2Fnext-intl%2Clingui%2Fjs-lingui%2Cvinissimus%2Fnext-translate%2Cinostudio%2Fnext-international%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&lingui/js-lingui&vinissimus/next-translate&inostudio/next-international&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
173
+ [![Star History Chart](https://api.star-history.com/chart?repos=i18next%2Fnext-i18next%2Camannn%2Fnext-intl%2Clingui%2Fjs-lingui%2Cvinissimus%2Fnext-translate%2Cinostudio%2Fnext-international%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#i18next/next-i18next&amannn/next-intl&lingui/js-lingui&vinissimus/next-translate&inostudio/next-international&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
169
174
 
170
175
  ## 결과 상세
171
176
 
@@ -175,15 +180,15 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
175
180
 
176
181
  발생한 문제점들:
177
182
 
178
- **(General Translation)** (`gt-next@6.16.5`):
183
+ **(General Translation)** (`gt-next@11.1.24`):
179
184
 
180
- - 110kb 앱의 경우 `gt-next`는 440kb 이상의 추가 데이터를 추가합니다.
185
+ - 141kb 앱의 경우 `gt-next`는 50kb 이상의 추가 데이터를 추가합니다.
181
186
  - General Translation을 사용한 가장 첫 번째 빌드에서 `Quota Exceeded, please upgrade your plan` 메시지가 표시되었습니다.
182
187
  - 번역이 렌더링되지 않습니다. `Error: <T> used on the client-side outside of <GTProvider>` 오류가 발생하며, 이는 라이브러리의 버그로 보입니다.
183
188
  - **gt-next**를 구현하는 동안 라이브러리의 [이슈](https://github.com/generaltranslation/gt/issues/1210#event-24510646961)도 발견했습니다: `does not provide an export named 'printAST' - @formatjs/icu-messageformat-parser` 오류로 애플리케이션이 중단되었습니다. 이 문제를 보고한 후 관리자는 24시간 이내에 수정했습니다.
184
189
  - 이 라이브러리는 Next.js 페이지의 정적 렌더링을 차단합니다.
185
190
 
186
- **(Lingo.dev)** (`@lingo.dev/compiler@0.4.0`):
191
+ **(Lingo.dev)** (`@lingo.dev/compiler@0.4.12`):
187
192
 
188
193
  - AI 쿼터 초과로 빌드가 완전히 차단되었습니다. 즉, 비용을 지불하지 않으면 프로덕션에 출시할 수 없습니다.
189
194
  - 컴파일러가 번역된 콘텐츠의 거의 40%를 놓치고 있었습니다. 작동시키기 위해 모든 `.map`을 평면적인 컴포넌트 블록으로 다시 작성해야 했습니다.
@@ -192,7 +197,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
192
197
 
193
198
  ### 2 - 실험적인 솔루션
194
199
 
195
- **(Wuchale)** (`wuchale@0.22.11`):
200
+ **(Wuchale)** (`wuchale@0.26.6`):
196
201
 
197
202
  `Wuchale`의 아이디어는 흥미롭지만 아직 실행 가능하지 않습니다. 반응성 문제에 부딪혔고 앱을 작동시키기 위해 프로바이더의 강제 재렌더링이 필요했습니다. 문서 또한 상당히 불명확하여 온보딩이 어렵습니다.
198
203
 
@@ -202,21 +207,21 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
202
207
  개인적으로 푸시할 때마다 JS 파일을 다시 생성해야 하는 것이 싫습니다. 이는 PR을 통한 지속적인 머지 충돌 위험을 만듭니다. 또한 이 도구는 Next.js보다 Vite에 더 집중하는 것으로 보입니다.
203
208
  마지막으로, 다른 솔루션과 비교할 때 Paraglide는 콘텐츠를 렌더링하기 위해 현재 로케일을 조회하는 스토어(예: React context)를 사용하지 않습니다. 파싱되는 각 노드에 대해 localStorage / 쿠키 등에서 로케일을 요청합니다. 이는 컴포넌트 반응성에 영향을 주는 불필요한 로직 실행으로 이어집니다.
204
209
 
205
- > paraglide에 관한 참고 사항: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로 벤치마크 리포트의 '라이브러리 크기' 지표는 거의 0에 가깝습니다. 코드 생성은 좋은 기능입니다. 사용되는 함수가 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함하기 때문입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 로직에 따라 번들러가 콘텐츠를 트리 쉐이킹하도록 강제합니다. 이 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 6~10배 가벼운 솔루션이 됩니다.
210
+ > paraglide에 관한 참고 사항: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로 벤치마크 리포트의 '라이브러리 크기' 지표는 거의 0에 가깝습니다. 코드 생성은 좋은 기능입니다. 사용되는 함수가 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함하기 때문입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 로직에 따라 번들러가 콘텐츠를 트리 쉐이킹하도록 강제합니다. 이 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 3~8배 가벼운 솔루션이 됩니다.
206
211
 
207
212
  ### 3 - 수용 가능한 솔루션
208
213
 
209
- **(Tolgee)** (`@tolgee/react@7.0.0`):
214
+ **(Tolgee)** (`@tolgee/react@7.2.0`):
210
215
 
211
216
  `Tolgee`는 앞에서 언급한 많은 문제들을 해결합니다. 비슷한 도구들보다 채택하기 더 어렵다고 느꼈습니다. 타입 안전성을 제공하지 않아 컴파일 시점에 누락된 키를 찾는 것도 어렵습니다. 누락된 키 감지 기능을 추가하기 위해 Tolgee의 함수를 나의 함수로 래핑해야 했습니다.
212
217
 
213
- **(Next Intl)** (`next-intl@4.9.1`):
218
+ **(Next Intl)** (`next-intl@4.14.2`):
214
219
 
215
- `next-intl`은 가장 유행하는 옵션이며 AI 에이전트들이 가장 많이 추천하는 옵션이지만, 내 견해로는 성능 면에서 잘못된 추천입니다. 시작하기는 쉽습니다. 실제로는 누수를 제한하기 위한 최적화가 복잡합니다. 동적 로딩 + 네임스페이싱 + TypeScript 타입을 결합하면 개발 속도가 크게 느려집니다. 패키지 또한 상당히 무겁습니다(`NextIntlClientProvider` + `useTranslations`의 경우 약 13kb로, `next-intlayer`의 2배 이상입니다). **next-intl**은 Next.js 페이지의 정적 렌더링을 차단하곤 했습니다. `setRequestLocale()`이라는 헬퍼를 제공합니다. `en.json` / `fr.json`과 같은 중앙 집중식 파일의 경우 일부 해결된 것으로 보이지만, 콘텐츠가 `en/shared.json` / `fr/shared.json` / `es/shared.json`과 같은 네임스페이스로 분리된 경우 정적 렌더링이 여전히 깨집니다.
220
+ `next-intl`은 가장 유행하는 옵션이며 AI 에이전트들이 가장 많이 추천하는 옵션이지만, 내 견해로는 성능 면에서 잘못된 추천입니다. 시작하기는 쉽습니다. 실제로는 누수를 제한하기 위한 최적화가 복잡합니다. 동적 로딩 + 네임스페이싱 + TypeScript 타입을 결합하면 개발 속도가 크게 느려집니다. 패키지 또한 상당히 무겁습니다(`NextIntlClientProvider` + `useTranslations`의 경우 약 14.7kb로, `next-intlayer`의 2.5배 이상입니다). **next-intl**은 Next.js 페이지의 정적 렌더링을 차단하곤 했습니다. `setRequestLocale()`이라는 헬퍼를 제공합니다. `en.json` / `fr.json`과 같은 중앙 집중식 파일의 경우 일부 해결된 것으로 보이지만, 콘텐츠가 `en/shared.json` / `fr/shared.json` / `es/shared.json`과 같은 네임스페이스로 분리된 경우 정적 렌더링이 여전히 깨집니다.
216
221
 
217
- **(Next I18next)** (`next-i18next@16.0.5`):
222
+ **(Next I18next)** (`next-i18next@16.3.0`):
218
223
 
219
- `next-i18next`는 JavaScript 앱 i18n 솔루션 중 초기에 등장했기 때문에 가장 인기 있는 옵션일 것입니다. 많은 커뮤니티 플러그인을 보유하고 있습니다. `next-intl`과 같은 주요 단점을 공유합니다. 패키지가 특히 무겁습니다(`I18nProvider` + `useTranslation`의 경우 약 18kb로, `next-intlayer`의 약 3배입니다).
224
+ `next-i18next`는 JavaScript 앱 i18n 솔루션 중 초기에 등장했기 때문에 가장 인기 있는 옵션일 것입니다. 많은 커뮤니티 플러그인을 보유하고 있습니다. `next-intl`과 같은 주요 단점을 공유합니다. 패키지가 특히 무겁습니다(`I18nProvider` + `useTranslation`의 경우 약 19.7kb로, `next-intlayer`의 약 3.5배입니다).
220
225
 
221
226
  메시지 형식도 다릅니다: `next-intl`은 ICU MessageFormat을 사용하는 반면, `i18next`는 자체 형식을 사용합니다.
222
227
 
@@ -224,17 +229,17 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
224
229
 
225
230
  `next-international` 또한 위의 문제들을 다루지만 `next-intl`이나 `next-i18next`와 크게 다르지 않습니다. 네임스페이스별 번역을 위한 `scopedT()`를 포함하지만, 이를 사용해도 번들 크기에는 거의 영향이 없습니다.
226
231
 
227
- **(Lingui)** (`@lingui/core@5.3.0`):
232
+ **(Lingui)** (`@lingui/core@6.6.0`):
228
233
 
229
234
  `Lingui`는 종종 찬사를 받습니다. 개인적으로 `lingui extract` / `lingui compile` 워크플로우가 대안들보다 복잡하다고 느꼈으며 명확한 장점이 없었습니다. 또한 AI를 혼란스럽게 하는 일관성 없는 구문(예: `t()`, `t''`, `i18n.t()`, `<Trans>`)을 발견했습니다.
230
235
 
231
236
  ### 4 - 추천 사항
232
237
 
233
- **(Next Translate)** (`next-translate@3.1.2`):
238
+ **(Next Translate)** (`next-translate@3.2.0`):
234
239
 
235
- `t()` 스타일의 API를 선호한다면 `next-translate`가 주요 추천 사항입니다. Webpack / Turbopack 로더를 통해 `getStaticProps`에서 네임스페이스를 로드하는 `next-translate-plugin`을 통해 우아하게 작동합니다. 또한 여기에서 가장 가벼운 옵션입니다(약 2.5kb). 네임스페이싱의 경우 설정 파일에서 페이지 또는 경로별 네임스페이스를 정의하는 방식이 잘 생각되어 있으며 **next-intl**이나 **next-i18next**와 같은 주요 대안보다 유지 관리가 쉽습니다. 버전 `3.1.2`에서 정적 렌더링이 작동하지 않았고 Next.js가 동적 렌더링으로 폴백(fallback)되는 것을 확인했습니다.
240
+ `t()` 스타일의 API를 선호한다면 `next-translate`가 주요 추천 사항입니다. Webpack / Turbopack 로더를 통해 `getStaticProps`에서 네임스페이스를 로드하는 `next-translate-plugin`을 통해 우아하게 작동합니다. 또한 여기에서 가장 가벼운 옵션 중 하나입니다(약 3.5kb). 네임스페이싱의 경우 설정 파일에서 페이지 또는 경로별 네임스페이스를 정의하는 방식이 잘 생각되어 있으며 **next-intl**이나 **next-i18next**와 같은 주요 대안보다 유지 관리가 쉽습니다. 버전 `3.1.2`에서 정적 렌더링이 작동하지 않았고 Next.js가 동적 렌더링으로 폴백(fallback)되는 것을 확인했습니다.
236
241
 
237
- **(Intlayer)** (`next-intlayer@8.7.12`):
242
+ **(Intlayer)** (`next-intlayer@9.5.1`):
238
243
 
239
244
  객관성을 위해 나의 솔루션인 `next-intlayer`에 대해서는 직접 판단하지 않겠습니다.
240
245
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-05-18
3
+ updatedAt: 2026-09-11
4
4
  title: 2026년 Solid를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: solid-primitives, solid-i18next, Intlayer와 같은 Solid 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
19
19
  history:
20
+ - version: 9.5.1
21
+ date: 2026-09-11
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 8.9.8
21
24
  date: 2026-05-18
22
25
  changes: "GitHub 스타 비교 추가"
@@ -62,9 +65,9 @@ style="border:none;"
62
65
 
63
66
  ## TL;DR
64
67
 
65
- - **Intlayer**: 고급 기능과 최적화가 필요한 전문 Solid 애플리케이션을 위한 추천 선택(v8.7.12).
68
+ - **Intlayer**: 고급 기능과 최적화가 필요한 전문 Solid 애플리케이션을 위한 추천 선택(v9.5.0).
66
69
  - **@solid-primitives/i18n**: 단순한 프로젝트를 위한 훌륭한 경량 대안이지만 지연 로딩과 같은 고급 기능이 부족합니다.
67
- - **solid-i18next**: 표준적이지만 무거운 옵션(Intlayer의 약 4.7배)으로 React i18next와 동일한 단점을 공유합니다.
70
+ - **solid-i18next**: 표준적이지만 무거운 옵션(Intlayer의 약 3.5배)으로 React i18next와 동일한 단점을 공유합니다.
68
71
  - **Paraglide**: 혁신적인 접근 방식이지만 DX가 복잡하고 일부 설정에서 트리 쉐이킹 문제가 발생합니다.
69
72
 
70
73
  ## 앱 테스트하기
@@ -97,10 +100,10 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
97
100
  이 벤치마크에서는 다음과 같은 라이브러리를 비교했습니다:
98
101
 
99
102
  - `Base App` (i18n 라이브러리 없음)
100
- - `solid-intlayer` (v8.7.12)
103
+ - `solid-intlayer` (v9.5.0)
101
104
  - `@solid-primitives/i18n` (v2.2.1)
102
- - `solid-i18next` (v17.0.2)
103
- - `@inlang/paraglide-js` (v2.17.0)
105
+ - `i18next` (v26.0.8) + `@mbarzda/solid-i18next` (v1.4.1)
106
+ - `@inlang/paraglide-js` (v2.25.1)
104
107
 
105
108
  프레임워크는 `Solid`이며 **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 사용했습니다.
106
109
 
@@ -144,7 +147,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
144
147
 
145
148
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
146
149
 
147
- [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
150
+ [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
148
151
 
149
152
  ## 결과 상세
150
153
 
@@ -154,11 +157,11 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
154
157
 
155
158
  ### 2 - 수용 가능한 솔루션
156
159
 
157
- **(solid-i18next)** (`solid-i18next@17.0.2`):
160
+ **(solid-i18next)** (`i18next@26.0.8`):
158
161
 
159
162
  `solid-i18next`는 JavaScript 앱의 i18n 요구 사항을 충족시킨 초창기 솔루션 중 하나였기 때문에 가장 인기 있는 옵션일 것입니다. 또한 특정 문제를 해결하기 위한 광범위한 커뮤니티 플러그인 세트를 보유하고 있습니다.
160
163
 
161
- 패키지가 무겁습니다 (~14.6kb, `solid-intlayer`의 약 4.7배).
164
+ 패키지가 무겁습니다 (~14.9kb, `solid-intlayer`의 약 3.5배).
162
165
 
163
166
  여전히 `t('a.b.c')` 위에 구축된 스택과 동일한 주요 단점을 공유합니다: 최적화는 가능하지만 시간이 매우 많이 소요되며, 대규모 프로젝트는 나쁜 관행(네임스페이스 + 동적 로딩 + 타입)에 빠질 위험이 있습니다.
164
167
 
@@ -167,7 +170,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
167
170
  Solid primitive는 매우 가볍고 효율적입니다. 소규모 프로젝트에는 이 솔루션을 추천하지만 쿠키 관리, 프록시 리다이렉션, 포맷터 등을 포함한 전문 솔루션에는 기능이 부족할 수 있습니다.
168
171
  또한 페이지 크기 최적화를 위한 지연 로딩 및 네임스페이스 스코핑 기능도 누락되어 있습니다.
169
172
 
170
- **(Paraglide)** (`@inlang/paraglide-js@2.17.0`):
173
+ **(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
171
174
 
172
175
  `Paraglide`는 혁신적이고 잘 설계된 접근 방식을 제공합니다. 그럼에도 불구하고 이 벤치마크에서는 광고된 트리 쉐이킹이 나의 구현에서 작동하지 않았습니다. 워크플로우와 DX 또한 다른 옵션보다 복잡합니다.
173
176
  개인적으로 푸시할 때마다 JS 파일을 다시 생성해야 하는 것을 선호하지 않으며, 이는 PR을 통한 개발자들 간의 지속적인 머지 충돌 위험을 만듭니다.
@@ -175,7 +178,7 @@ Solid primitive는 매우 가볍고 효율적입니다. 소규모 프로젝트
175
178
 
176
179
  ### 3 - 추천 사항
177
180
 
178
- **(Intlayer)** (`solid-intlayer@8.7.12`):
181
+ **(Intlayer)** (`solid-intlayer@9.5.0`):
179
182
 
180
183
  객관성을 위해 나의 솔루션인 `solid-intlayer`에 대해서는 직접 판단하지 않겠습니다.
181
184
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-05-18
3
+ updatedAt: 2026-09-11
4
4
  title: 2026년 Svelte를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: svelte-i18n, Paraglide, Intlayer와 같은 Svelte 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
19
19
  history:
20
+ - version: 9.5.1
21
+ date: 2026-09-11
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 8.9.8
21
24
  date: 2026-05-18
22
25
  changes: "GitHub 스타 비교 추가"
@@ -62,9 +65,9 @@ style="border:none;"
62
65
 
63
66
  ## TL;DR
64
67
 
65
- - **Intlayer**: 가장 성능 효율적인 선택(v8.7.12)으로, 발자국(footprint)이 가장 작습니다.
68
+ - **Intlayer**: 가장 성능 효율적인 선택(v9.5.0)으로, 발자국(footprint)이 가장 작습니다.
66
69
  - **Paraglide**: 트리 쉐이킹(tree-shaking)을 위한 강력한 후보이지만, 개발자 경험이 더 복잡하고 반응성 오버헤드가 있습니다.
67
- - **svelte-i18n**: Svelte를 위한 표준적이고 기능이 완비된 솔루션이지만, 번들 무게가 훨씬 더 큽니다(Intlayer의 약 7배).
70
+ - **svelte-i18n**: Svelte를 위한 표준적이고 기능이 완비된 솔루션이지만, 번들 무게가 훨씬 더 큽니다(Intlayer의 약 4.5배).
68
71
 
69
72
  ## 앱 테스트하기
70
73
 
@@ -96,9 +99,9 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
96
99
  이 벤치마크에서는 다음과 같은 라이브러리를 비교했습니다:
97
100
 
98
101
  - `Base App` (i18n 라이브러리 없음)
99
- - `svelte-intlayer` (v8.7.12)
102
+ - `svelte-intlayer` (v9.5.0)
100
103
  - `svelte-i18n` (v4.0.1)
101
- - `@inlang/paraglide-js` (v2.17.0)
104
+ - `@inlang/paraglide-js` (v2.25.1)
102
105
 
103
106
  프레임워크는 `Svelte`이며 **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 사용했습니다.
104
107
 
@@ -142,7 +145,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
142
145
 
143
146
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
144
147
 
145
- [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
148
+ [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
146
149
 
147
150
  ## 결과 상세
148
151
 
@@ -152,7 +155,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
152
155
 
153
156
  ### 2 - 수용 가능한 솔루션
154
157
 
155
- **(Paraglide)** (`@inlang/paraglide-js@2.17.0`):
158
+ **(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
156
159
 
157
160
  `Paraglide`는 혁신적이고 잘 설계된 접근 방식을 제공합니다. Vite + Svelte 앱의 맥락에서 그들이 홍보하는 트리 쉐이킹은 기대대로 잘 작동합니다.
158
161
  하지만 React + TanStack Start의 경우 트리 쉐이킹이 기대대로 작동하지 않았으며 Next.js도 마찬가지였습니다. 그럼에도 불구하고 Svelte 및 TanStack Start 프로젝트에서의 Paraglide 사용은 확인해 볼 가치가 있습니다.
@@ -162,13 +165,13 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
162
165
 
163
166
  > paraglide에 관한 참고: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로, 벤치마크 리포트의 'lib size' 메트릭은 거의 0에 가깝습니다. 코드 생성(Code generation)은 사용되는 함수에 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함되므로 좋은 방식입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 이 필터링을 수행하여 번들러가 로직에 따라 콘텐츠를 트리 쉐이킹하도록 강제합니다. 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 6~10배 더 가벼운 솔루션이 됩니다.
164
167
 
165
- **(svelte-i18n)** (`svelte-i18n@3.4.0`):
168
+ **(svelte-i18n)** (`svelte-i18n@4.0.1`):
166
169
 
167
- 이 솔루션은 Svelte 프로젝트의 모든 i18n 요구 사항을 충족합니다. 하지만 i18next나 다른 주요 i18n 솔루션과 마찬가지로 조금 무겁습니다 (~15.9kb, `svelte-intlayer`의 약 7배).
170
+ 이 솔루션은 Svelte 프로젝트의 모든 i18n 요구 사항을 충족합니다. 하지만 i18next나 다른 주요 i18n 솔루션과 마찬가지로 조금 무겁습니다 (~16.6kb, `svelte-intlayer`의 약 4.5배).
168
171
 
169
172
  ### 3 - 추천 사항
170
173
 
171
- **(Intlayer)** (`svelte-intlayer@8.7.12`):
174
+ **(Intlayer)** (`svelte-intlayer@9.5.0`):
172
175
 
173
176
  객관성을 위해 나의 솔루션인 `svelte-intlayer`에 대해서는 직접 판단하지 않겠습니다.
174
177
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-05-18
3
+ updatedAt: 2026-09-11
4
4
  title: 2026년 TanStack Start를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: react-i18next, use-intl, Intlayer와 같은 TanStack Start 국제화 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
19
19
  history:
20
+ - version: 9.5.1
21
+ date: 2026-09-11
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 8.9.8
21
24
  date: 2026-05-18
22
25
  changes: "GitHub 스타 비교 추가"
@@ -62,7 +65,7 @@ history:
62
65
 
63
66
  ## TL;DR
64
67
 
65
- - **Intlayer**: TanStack Start에서 최고의 성능과 가장 작은 번들 크(v8.7.12)를 제공합니다.
68
+ - **Intlayer**: TanStack Start에서 최고의 성능과 가장 작은 번들 크(v9.5.1)를 제공합니다.
66
69
  - **react-i18next** & **use-intl**: 큰 에코시스템을 가진 성숙한 대안이지만, 훨씬 더 무겁고 최적화가 복잡합니다.
67
70
  - **Paraglide**: 혁신적인 트리 쉐이킹 아이디어이지만 실제로는 작동하지 않습니다. TanStack Start에서 복잡한 DX와 반응성 오버헤드가 발생합니다.
68
71
  - **피해야 할 솔루션**: **General Translation (GT)** 및 **Lingo.dev**. 심각한 성능 문제, AI 쿼터 제한 및 벤더 종속성(vendor lock-in) 때문입니다.
@@ -97,16 +100,18 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
97
100
  이 벤치마크에서는 다음과 같은 라이브러리를 비교했습니다:
98
101
 
99
102
  - `Base App` (i18n 라이브러리 없음)
100
- - `react-intlayer` (v8.7.12)
101
- - `react-i18next` (v17.0.2)
102
- - `use-intl` (v4.9.1)
103
- - `@lingui/core` (v5.3.0)
103
+ - `react-intlayer` (v9.5.1)
104
+ - `@intlayer/use-intl` (v9.5.1)
105
+ - [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/lingui.md) (v9.5.1)
106
+ - `react-i18next` (v17.0.13)
107
+ - `use-intl` (v4.14.2)
108
+ - `@lingui/core` (v6.6.0)
104
109
  - `@inlang/paraglide-js` (v2.15.1)
105
- - `@tolgee/react` (v7.0.0)
106
- - `react-intl` (v10.1.1)
107
- - `wuchale` (v0.22.11)
108
- - `gt-react` (vlatest)
109
- - `lingo.dev` (v0.133.9)
110
+ - `@tolgee/react` (v7.2.0)
111
+ - `react-intl` (v10.1.26)
112
+ - `wuchale` (v0.26.6)
113
+ - `gt-react` (v10.18.3)
114
+ - `lingo.dev` (v0.138.7)
110
115
 
111
116
  프레임워크는 `TanStack Start`이며 **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 사용했습니다.
112
117
 
@@ -150,7 +155,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
150
155
 
151
156
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
152
157
 
153
- [![Star History Chart](https://api.star-history.com/chart?repos=formatjs%2Fformatjs%2Ci18next%2Freact-i18next%2Clingui%2Fjs-lingui%2Camannn%2Fnext-intl%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&lingui/js-lingui&amannn/next-intl&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
158
+ [![Star History Chart](https://api.star-history.com/chart?repos=formatjs%2Fformatjs%2Ci18next%2Freact-i18next%2Clingui%2Fjs-lingui%2Camannn%2Fnext-intl%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#formatjs/formatjs&i18next/react-i18next&lingui/js-lingui&amannn/next-intl&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
154
159
 
155
160
  ## 결과 상세
156
161
 
@@ -160,15 +165,15 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
160
165
 
161
166
  발생한 문제점들:
162
167
 
163
- **(General Translation)** (`gt-react@latest`):
168
+ **(General Translation)** (`gt-react@10.18.3`):
164
169
 
165
- - 약 110kb 앱의 경우 `gt-react`는 440kb 이상의 추가 데이터를 추가할 수 있습니다(동일 벤치마크의 Next.js 구현에서 확인된 규모).
170
+ - 약 111kb 앱의 경우 `gt-react`는 170kb 이상의 추가 데이터를 추가할 수 있습니다(동일 벤치마크의 Next.js 구현에서 확인된 규모).
166
171
  - General Translation을 사용한 가장 첫 번째 빌드에서 `Quota Exceeded, please upgrade your plan` 메시지가 표시되었습니다.
167
172
  - 번역이 렌더링되지 않습니다. `Error: <T> used on the client-side outside of <GTProvider>` 오류가 발생하며, 이는 라이브러리의 버그로 보입니다.
168
173
  - **gt-tanstack-start-react**를 구현하는 동안 라이브러리의 [이슈](https://github.com/generaltranslation/gt/issues/1210#event-24510646961)도 발견했습니다: `does not provide an export named 'printAST' - @formatjs/icu-messageformat-parser` 오류로 애플리케이션이 중단되었습니다. 이 문제를 보고한 후 관리자는 24시간 이내에 수정했습니다.
169
174
  - 이 라이브러리들은 `initializeGT()` 함수를 통해 안티 패턴을 사용하여 번들이 깨끗하게 트리 쉐이킹되는 것을 방해합니다.
170
175
 
171
- **(Lingo.dev)** (`lingo.dev@0.133.9`):
176
+ **(Lingo.dev)** (`lingo.dev@0.138.7`):
172
177
 
173
178
  - AI 쿼터 초과(또는 차단 중인 서버 의존성)로 인해 비용을 지불하지 않으면 빌드 / 프로덕션 출시가 위험해집니다.
174
179
  - 컴파일러가 번역된 콘텐츠의 거의 40%를 놓치고 있었습니다. 작동시키기 위해 모든 `.map`을 평면적인 컴포넌트 블록으로 다시 작성해야 했습니다.
@@ -178,7 +183,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
178
183
 
179
184
  ### 2 - 실험적인 솔루션
180
185
 
181
- **(Wuchale)** (`wuchale@0.22.11`):
186
+ **(Wuchale)** (`wuchale@0.26.6`):
182
187
 
183
188
  `Wuchale`의 아이디어는 흥미롭지만 아직 실행 가능한 솔루션은 아닙니다. 이 라이브러리에서 반응성 문제를 겪었으며 TanStack Start에서 앱을 작동시키기 위해 프로바이더의 강제 재렌더링이 필요했습니다. 문서 또한 상당히 불명확하여 온보딩이 어렵습니다.
184
189
 
@@ -188,9 +193,9 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
188
193
 
189
194
  `Paraglide`는 혁신적이고 잘 설계된 접근 방식을 제공합니다. 그럼에도 불구하고 이 벤치마크에서는 광고된 트리 쉐이킹이 나의 Next.js 구현이나 TanStack Start에서 작동하지 않았습니다. 워크플로우와 DX 또한 다른 옵션보다 복잡합니다. 개인적으로 푸시할 때마다 JS 파일을 다시 생성해야 하는 것을 선호하지 않으며, 이는 PR을 통한 개발자들 간의 지속적인 머지 충돌 위험을 만듭니다.
190
195
 
191
- > paraglide에 관한 참고: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로, 벤치마크 리포트의 'lib size' 메트릭은 거의 0에 가깝습니다. 코드 생성(Code generation)은 사용되는 함수에 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함되므로 좋은 방식입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 이 필터링을 수행하여 번들러가 로직에 따라 콘텐츠를 트리 쉐이킹하도록 강제합니다. 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 6~10배 더 가벼운 솔루션이 됩니다.
196
+ > paraglide에 관한 참고: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로, 벤치마크 리포트의 'lib size' 메트릭은 거의 0에 가깝습니다. 코드 생성(Code generation)은 사용되는 함수에 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함되므로 좋은 방식입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 이 필터링을 수행하여 번들러가 로직에 따라 콘텐츠를 트리 쉐이킹하도록 강제합니다. 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 3~10배 더 가벼운 솔루션이 됩니다.
192
197
 
193
- **(Tolgee)** (`@tolgee/react@7.0.0`):
198
+ **(Tolgee)** (`@tolgee/react@7.2.0`):
194
199
 
195
200
  `Tolgee`는 앞에서 언급한 많은 문제들을 해결합니다. 비슷한 접근 방식을 가진 다른 도구들보다 시작하기 더 어렵다고 느꼈습니다. 타입 안전성을 제공하지 않아 컴파일 시점에 누락된 키를 찾는 것도 매우 어렵습니다. 누락된 키 감지 기능을 추가하기 위해 Tolgee의 API를 나의 API로 래핑해야 했습니다.
196
201
 
@@ -198,37 +203,37 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
198
203
 
199
204
  TanStack Start에서도 반응성 문제가 있었습니다: 로케일 변경 시 프로바이더를 강제 재렌더링하고 로케일 변경 이벤트를 구독하여 다른 언어로의 로딩이 올바르게 작동하도록 해야 했습니다.
200
205
 
201
- **(use-intl)** (`use-intl@4.9.1`):
206
+ **(use-intl)** (`use-intl@4.14.2`):
202
207
 
203
208
  `use-intl`은 React 에코시스템에서 가장 유행하는 "intl" 조각 중 하나이며(`next-intl`과 같은 계열) AI 에이전트들에 의해 자주 추천되지만, 내 견해로는 성능 우선 환경에서 잘못된 선택입니다. 시작하기는 꽤 간단합니다. 실제로는 누수를 최적화하고 제한하는 프로세스가 상당히 복잡합니다. 마찬가지로 동적 로딩 + 네임스페이싱 + TypeScript 타입을 결합하면 개발 속도가 크게 느려집니다.
204
209
 
205
210
  TanStack Start에서는 Next.js 전용 함정(`setRequestLocale`, 정적 렌더링)을 피할 수 있지만 핵심 문제는 동일합니다: 엄격한 규율이 없으면 번들은 금세 너무 많은 메시지를 포함하게 되고 경로별 네임스페이스 유지는 고통스러워집니다.
206
211
 
207
- **(react-i18next)** (`react-i18next@17.0.2`):
212
+ **(react-i18next)** (`react-i18next@17.0.13`):
208
213
 
209
214
  `react-i18next`는 JavaScript 앱 i18n 요구 사항을 충족시킨 초창기 솔루션 중 하나였기 때문에 가장 인기 있는 옵션일 것입니다. 또한 특정 문제를 해결하기 위한 광범위한 커뮤니티 플러그인 세트를 보유하고 있습니다.
210
215
 
211
216
  여전히 `t('a.b.c')` 위에 구축된 스택과 동일한 주요 단점을 공유합니다: 최적화는 가능하지만 시간이 매우 많이 소요되며, 대규모 프로젝트는 나쁜 관행(네임스페이스 + 동적 로딩 + 타입)에 빠질 위험이 있습니다.
212
217
 
213
- 이 패키지는 특히 무겁습니다 (~17.3kb, 이는 `react-intlayer`의 약 3.5배입니다).
218
+ 이 패키지는 특히 무겁습니다 (~18.4kb, 이는 `react-intlayer`의 약 3.5배입니다).
214
219
 
215
220
  메시지 형식도 다릅니다: `use-intl`은 ICU MessageFormat을 사용하는 반면, `i18next`는 자체 형식을 사용하므로 이들을 섞어서 사용하면 도구 기술이나 마이그레이션이 복잡해집니다.
216
221
 
217
- **(Lingui)** (`@lingui/core@5.3.0`):
222
+ **(Lingui)** (`@lingui/core@6.6.0`):
218
223
 
219
224
  `Lingui`는 종종 찬사를 받습니다. 개인적으로 `lingui extract` / `lingui compile` 워크플로우가 다른 접근 방식보다 복잡하다고 느꼈으며 이 TanStack Start 벤치마크에서 명확한 장점이 없었습니다. 또한 AI를 혼란스럽게 하는 일관성 없는 구문(예: `t()`, `t''`, `i18n.t()`, `<Trans>`)을 발견했습니다.
220
225
 
221
- **(react-intl)** (`react-intl@10.1.1`):
226
+ **(react-intl)** (`react-intl@10.1.26`):
222
227
 
223
228
  `react-intl`은 Format.js 팀의 성능 중심 구현입니다. DX는 여전히 장황합니다: `const intl = useIntl()` + `intl.formatMessage({ id: "xx.xx" })`는 복잡성과 추가 JavaScript 작업을 가중시키고 글로벌 i18n 인스턴스를 React 트리의 많은 노드에 묶어둡니다.
224
229
 
225
- 패키지도 무겁습니다(~14.4kb, 이는 `react-intlayer`의 약 3배 정도).
230
+ 패키지도 무겁습니다(~15.3kb, 이는 `react-intlayer`의 약 3배 정도).
226
231
 
227
232
  ### 4 - 추천 사항
228
233
 
229
234
  이 TanStack Start 벤치마크에는 `next-translate`(Next.js 플러그인 + `getStaticProps`)에 상응하는 직접적인 대안이 없습니다. 성숙한 에코시스템과 `t()` API를 진정으로 원하는 팀에게는 `react-i18next`와 `use-intl`이 "합리적인" 선택으로 남겠지만, 누수를 피하기 위해 최적화하는 데 많은 시간을 투자할 것을 각오해야 합니다.
230
235
 
231
- **(Intlayer)** (`react-intlayer@8.7.12`):
236
+ **(Intlayer)** (`react-intlayer@9.5.1`):
232
237
 
233
238
  객관성을 위해 나의 솔루션인 `react-intlayer`에 대해서는 직접 판단하지 않겠습니다.
234
239
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-05-18
3
+ updatedAt: 2026-09-11
4
4
  title: 2026년 Vue를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: vue-i18n, fluent-vue, Intlayer와 같은 Vue 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
19
19
  history:
20
+ - version: 9.5.1
21
+ date: 2026-09-11
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 8.9.8
21
24
  date: 2026-05-18
22
25
  changes: "GitHub 스타 비교 추가"
@@ -62,7 +65,7 @@ style="border:none;"
62
65
 
63
66
  ## TL;DR
64
67
 
65
- - **Intlayer**: 내장된 스코핑(scoping)과 동적 로딩을 제공하는 가장 가벼운 솔루션(v8.7.12).
68
+ - **Intlayer**: 내장된 스코핑(scoping)과 동적 로딩을 제공하는 가장 가벼운 솔루션(v9.5.0).
66
69
  - **vue-i18n**: 풍부한 에코시스템을 가진 업계 표준이지만, 대규모 애플리케이션에서 코드 분할 최적화가 어렵고 상당히 무거워질 수 있습니다.
67
70
  - **fluent-vue**: 혁신적인 메시지 구성을 제공하지만 타입 안전성이 부족하고 극도로 무거운 솔루션입니다.
68
71
 
@@ -96,7 +99,8 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
96
99
  이 벤치마크에서는 다음과 같은 라이브러리를 비교했습니다:
97
100
 
98
101
  - `Base App` (i18n 라이브러리 없음)
99
- - `vue-intlayer` (v8.7.12)
102
+ - `vue-intlayer` (v9.5.0)
103
+ - [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/vue-i18n.md) (v9.5.1)
100
104
  - `vue-i18n` (v11.4.0)
101
105
  - `fluent-vue` (v3.8.2)
102
106
 
@@ -142,7 +146,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
142
146
 
143
147
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
144
148
 
145
- [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Cfluent-vue%2Ffluent-vue%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://www.star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
149
+ [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Cfluent-vue%2Ffluent-vue%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
146
150
 
147
151
  ## 결과 상세
148
152
 
@@ -156,14 +160,14 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
156
160
 
157
161
  - **vue-i18n**은 논쟁의 여지 없이 Vue에서 가장 많이 사용되는 i18n 라이브러리이며, 많은 기능과 거대한 에코시스템을 가지고 있습니다. 하지만 내부적으로 이 솔루션은 상당히 무겁습니다. vue-i18n이 메시지 지연 로딩을 통합하더라도 스코핑(scoping) 기능이 부족합니다. 클래식 Vue SPA 앱의 경우 문제가 없으나, @nuxt/i18n을 사용하는 Nuxt 앱의 경우 모든 페이지의 메시지가 단일 페이지에 포함되는 결과를 초래합니다. 10페이지 이상의 대규모 Nuxt 앱의 경우 이는 정말 문제가 될 수 있습니다.
158
162
 
159
- 패키지가 매우 무겁습니다 (~24.3kb, `vue-intlayer`의 약 9배).
163
+ 패키지가 매우 무겁습니다 (~24.3kb, `vue-intlayer`의 약 6배).
160
164
 
161
- **(fluent-vue)** (`fluent-vue@0.5.0`):
165
+ **(fluent-vue)** (`fluent-vue@3.8.2`):
162
166
 
163
- - **fluent-vue**는 .ftl 형식을 통해 혁신을 시도합니다. 메시지 구성이 훌륭하고 시작하기 쉽습니다. 하지만 실제로는 타입 안전성의 부재로 오류 위험이 높고 디버깅에 많은 시간이 소요될 수 있습니다. 또한, 이 솔루션은 Vite 플러그인을 사용하여 메시지를 로드하는데, 이는 모든 언어의 모든 콘텐츠를 각 페이지에 강제로 로드하게 만듭니다. 게다가 이는 극도로 무거운 솔루션입니다 (~92.7kb, `vue-intlayer`의 약 34배).
167
+ - **fluent-vue**는 .ftl 형식을 통해 혁신을 시도합니다. 메시지 구성이 훌륭하고 시작하기 쉽습니다. 하지만 실제로는 타입 안전성의 부재로 오류 위험이 높고 디버깅에 많은 시간이 소요될 수 있습니다. 또한, 이 솔루션은 Vite 플러그인을 사용하여 메시지를 로드하는데, 이는 모든 언어의 모든 콘텐츠를 각 페이지에 강제로 로드하게 만듭니다. 게다가 이는 극도로 무거운 솔루션입니다 (~29.7kb, `vue-intlayer`의 약 7.5배).
164
168
 
165
169
  ### 3 - 추천 사항
166
170
 
167
- **(Intlayer)** (`vue-intlayer@8.7.12`):
171
+ **(Intlayer)** (`vue-intlayer@9.5.0`):
168
172
 
169
173
  객관성을 위해 나의 솔루션인 `vue-intlayer`에 대해서는 직접 판단하지 않겠습니다.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2025-11-22
3
+ updatedAt: 2026-09-12
4
4
  title: 사전 빌드하기
5
5
  description: 콘텐츠 선언 파일에서 Intlayer 사전을 빌드하는 방법을 알아보세요.
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - cli
15
15
  - build
16
16
  history:
17
+ - version: 9.5.2
18
+ date: 2026-09-12
19
+ changes: "`--ci` 플래그 추가"
17
20
  - version: 8.1.5
18
21
  date: 2026-02-23
19
22
  changes: "checkTypes 옵션 추가"
@@ -92,6 +95,10 @@ bun x intlayer build --watch
92
95
 
93
96
  > 예시: `npx intlayer build --no-cache`
94
97
 
98
+ - **`--ci`**: 모노레포의 모든 Intlayer 프로젝트에서 명령어를 실행합니다(프로젝트 디렉터리 안에서 실행하면 해당 프로젝트만). 프로젝트별 자격 증명은 프로젝트 경로를 `{ "clientId", "clientSecret" }`에 매핑하는 JSON 객체인 `INTLAYER_PROJECT_CREDENTIALS`를 통해 주입할 수 있습니다.
99
+
100
+ > 예시: `npx intlayer build --ci`
101
+
95
102
  - **`--check-types`**: 콘텐츠 선언 파일의 유형을 확인합니다.
96
103
 
97
104
  > 예: `npx intlayer build --check-types`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2025-11-22
3
+ updatedAt: 2026-09-12
4
4
  title: 구성 관리
5
5
  description: Intlayer 구성을 CMS에 가져오고 푸시하는 방법을 알아보세요.
6
6
  keywords:
@@ -51,6 +51,7 @@ bun x intlayer configuration get
51
51
  - **`--base-dir`**: 프로젝트의 기본 디렉토리를 지정합니다.
52
52
  - **`--verbose`**: 디버깅을 위한 자세한 로깅을 활성화합니다. (CLI에서 기본값은 true)
53
53
  - **`--no-cache`**: 캐시를 비활성화합니다.
54
+ - **`--ci`**: 모노레포의 모든 Intlayer 프로젝트에서 명령어를 실행합니다(프로젝트 디렉터리 안에서 실행하면 해당 프로젝트만). 프로젝트별 자격 증명은 프로젝트 경로를 `{ "clientId", "clientSecret" }`에 매핑하는 JSON 객체인 `INTLAYER_PROJECT_CREDENTIALS`를 통해 주입할 수 있습니다.
54
55
 
55
56
  ## 구성 푸시
56
57
 
@@ -84,5 +85,6 @@ bun x intlayer configuration push
84
85
  - **`--base-dir`**: 프로젝트의 기본 디렉토리를 지정합니다.
85
86
  - **`--verbose`**: 디버깅을 위해 자세한 로깅을 활성화합니다. (CLI에서 기본값은 true입니다)
86
87
  - **`--no-cache`**: 캐시를 비활성화합니다.
88
+ - **`--ci`**: 모노레포의 모든 Intlayer 프로젝트에서 명령어를 실행합니다(프로젝트 디렉터리 안에서 실행하면 해당 프로젝트만). 프로젝트별 자격 증명은 프로젝트 경로를 `{ "clientId", "clientSecret" }`에 매핑하는 JSON 객체인 `INTLAYER_PROJECT_CREDENTIALS`를 통해 주입할 수 있습니다.
87
89
 
88
90
  구성을 푸시하면 프로젝트가 Intlayer CMS와 완전히 통합되어 팀 간 원활한 사전 관리를 가능하게 합니다.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-06-17
3
+ updatedAt: 2026-09-12
4
4
  title: 문서 검토
5
5
  description: 다양한 로케일에서 문서 파일의 품질, 일관성 및 완전성을 검토하는 방법을 알아보세요.
6
6
  keywords:
@@ -16,6 +16,9 @@ slugs:
16
16
  - cli
17
17
  - doc-review
18
18
  history:
19
+ - version: 9.5.2
20
+ date: 2026-09-12
21
+ changes: "`--ci` 플래그 추가"
19
22
  - version: 9.0.0
20
23
  date: 2026-06-17
21
24
  changes: "--log 옵션 추가"
@@ -138,6 +141,10 @@ bun x intlayer doc review
138
141
 
139
142
  > 예시: `npx intlayer doc review --base-dir ./docs --env-file .env.production.local`
140
143
 
144
+ - **`--ci`**: 모노레포의 모든 Intlayer 프로젝트에서 명령어를 실행합니다(프로젝트 디렉터리 안에서 실행하면 해당 프로젝트만). 프로젝트별 자격 증명은 프로젝트 경로를 `{ "clientId", "clientSecret" }`에 매핑하는 JSON 객체인 `INTLAYER_PROJECT_CREDENTIALS`를 통해 주입할 수 있습니다.
145
+
146
+ > 예시: `npx intlayer doc review --ci`
147
+
141
148
  **로그 옵션:**
142
149
 
143
150
  - **`--verbose`**: 디버깅을 위한 상세 로그 활성화. (CLI에서 기본값은 true)