@intlayer/docs 9.5.1 → 9.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/README.md +1 -1
  2. package/blog/ar/history_of_i18n.md +304 -0
  3. package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
  4. package/blog/ar/i18next_vs_intlayer.md +445 -0
  5. package/blog/ar/is_i18next_outdated.md +1 -1
  6. package/blog/ar/is_next-intl_outdated.md +1 -1
  7. package/blog/ar/is_vue-i18n_outdated.md +1 -1
  8. package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
  9. package/blog/ar/lingui_vs_intlayer.md +381 -0
  10. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  11. package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
  12. package/blog/ar/next-intl_vs_intlayer.md +397 -0
  13. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  14. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
  15. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
  16. package/blog/de/history_of_i18n.md +304 -0
  17. package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
  18. package/blog/de/i18next_vs_intlayer.md +445 -0
  19. package/blog/de/is_i18next_outdated.md +1 -1
  20. package/blog/de/is_next-intl_outdated.md +1 -1
  21. package/blog/de/is_vue-i18n_outdated.md +1 -1
  22. package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
  23. package/blog/de/lingui_vs_intlayer.md +381 -0
  24. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  25. package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
  26. package/blog/de/next-intl_vs_intlayer.md +415 -0
  27. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  28. package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
  29. package/blog/en/history_of_i18n.md +304 -0
  30. package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
  31. package/blog/en/i18next_vs_intlayer.md +445 -0
  32. package/blog/en/is_i18next_outdated.md +1 -1
  33. package/blog/en/is_next-intl_outdated.md +1 -1
  34. package/blog/en/is_vue-i18n_outdated.md +1 -1
  35. package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
  36. package/blog/en/lingui_vs_intlayer.md +381 -0
  37. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  38. package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
  39. package/blog/en/next-intl_vs_intlayer.md +415 -0
  40. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  41. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  42. package/blog/en/vue-i18n_vs_intlayer.md +1 -1
  43. package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
  44. package/blog/en-GB/history_of_i18n.md +304 -0
  45. package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
  46. package/blog/en-GB/i18next_vs_intlayer.md +445 -0
  47. package/blog/en-GB/is_i18next_outdated.md +1 -1
  48. package/blog/en-GB/is_next-intl_outdated.md +1 -1
  49. package/blog/en-GB/is_vue-i18n_outdated.md +1 -1
  50. package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
  51. package/blog/en-GB/lingui_vs_intlayer.md +381 -0
  52. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  53. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
  54. package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
  55. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  56. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  57. package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
  58. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
  59. package/blog/es/history_of_i18n.md +304 -0
  60. package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
  61. package/blog/es/i18next_vs_intlayer.md +445 -0
  62. package/blog/es/is_i18next_outdated.md +1 -1
  63. package/blog/es/is_next-intl_outdated.md +1 -1
  64. package/blog/es/is_vue-i18n_outdated.md +1 -1
  65. package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
  66. package/blog/es/lingui_vs_intlayer.md +381 -0
  67. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  68. package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
  69. package/blog/es/next-intl_vs_intlayer.md +417 -0
  70. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  71. package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
  72. package/blog/fr/history_of_i18n.md +304 -0
  73. package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
  74. package/blog/fr/i18next_vs_intlayer.md +445 -0
  75. package/blog/fr/is_i18next_outdated.md +1 -1
  76. package/blog/fr/is_next-intl_outdated.md +1 -1
  77. package/blog/fr/is_vue-i18n_outdated.md +1 -1
  78. package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
  79. package/blog/fr/lingui_vs_intlayer.md +381 -0
  80. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  81. package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
  82. package/blog/fr/next-intl_vs_intlayer.md +417 -0
  83. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
  84. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
  85. package/blog/hi/history_of_i18n.md +304 -0
  86. package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
  87. package/blog/hi/i18next_vs_intlayer.md +445 -0
  88. package/blog/hi/is_i18next_outdated.md +1 -1
  89. package/blog/hi/is_next-intl_outdated.md +1 -1
  90. package/blog/hi/is_vue-i18n_outdated.md +1 -1
  91. package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
  92. package/blog/hi/lingui_vs_intlayer.md +381 -0
  93. package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
  94. package/blog/hi/next-intl_vs_intlayer.md +397 -0
  95. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  96. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  97. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  98. package/blog/id/history_of_i18n.md +304 -0
  99. package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
  100. package/blog/id/i18next_vs_intlayer.md +445 -0
  101. package/blog/id/is_i18next_outdated.md +1 -1
  102. package/blog/id/is_next-intl_outdated.md +1 -1
  103. package/blog/id/is_vue-i18n_outdated.md +1 -1
  104. package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
  105. package/blog/id/lingui_vs_intlayer.md +381 -0
  106. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  107. package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
  108. package/blog/id/next-intl_vs_intlayer.md +397 -0
  109. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  110. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
  111. package/blog/id/vue-i18n_vs_intlayer.md +1 -1
  112. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
  113. package/blog/it/history_of_i18n.md +304 -0
  114. package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
  115. package/blog/it/i18next_vs_intlayer.md +445 -0
  116. package/blog/it/is_i18next_outdated.md +1 -1
  117. package/blog/it/is_next-intl_outdated.md +1 -1
  118. package/blog/it/is_vue-i18n_outdated.md +1 -1
  119. package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
  120. package/blog/it/lingui_vs_intlayer.md +381 -0
  121. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  122. package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
  123. package/blog/it/next-intl_vs_intlayer.md +418 -0
  124. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  125. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
  126. package/blog/ja/history_of_i18n.md +304 -0
  127. package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
  128. package/blog/ja/i18next_vs_intlayer.md +447 -0
  129. package/blog/ja/is_i18next_outdated.md +1 -1
  130. package/blog/ja/is_next-intl_outdated.md +1 -1
  131. package/blog/ja/is_vue-i18n_outdated.md +1 -1
  132. package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
  133. package/blog/ja/lingui_vs_intlayer.md +381 -0
  134. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  135. package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
  136. package/blog/ja/next-intl_vs_intlayer.md +422 -0
  137. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  138. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  139. package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
  140. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
  141. package/blog/ko/history_of_i18n.md +304 -0
  142. package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
  143. package/blog/ko/i18next_vs_intlayer.md +447 -0
  144. package/blog/ko/is_i18next_outdated.md +1 -1
  145. package/blog/ko/is_next-intl_outdated.md +1 -1
  146. package/blog/ko/is_vue-i18n_outdated.md +1 -1
  147. package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
  148. package/blog/ko/lingui_vs_intlayer.md +381 -0
  149. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  150. package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
  151. package/blog/ko/next-intl_vs_intlayer.md +397 -0
  152. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  153. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  154. package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
  155. package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
  156. package/blog/pl/history_of_i18n.md +304 -0
  157. package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
  158. package/blog/pl/i18next_vs_intlayer.md +445 -0
  159. package/blog/pl/is_i18next_outdated.md +1 -1
  160. package/blog/pl/is_next-intl_outdated.md +1 -1
  161. package/blog/pl/is_vue-i18n_outdated.md +1 -1
  162. package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
  163. package/blog/pl/lingui_vs_intlayer.md +381 -0
  164. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  165. package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
  166. package/blog/pl/next-intl_vs_intlayer.md +397 -0
  167. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  168. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
  169. package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
  170. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
  171. package/blog/pt/history_of_i18n.md +304 -0
  172. package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
  173. package/blog/pt/i18next_vs_intlayer.md +445 -0
  174. package/blog/pt/is_i18next_outdated.md +1 -1
  175. package/blog/pt/is_next-intl_outdated.md +1 -1
  176. package/blog/pt/is_vue-i18n_outdated.md +1 -1
  177. package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
  178. package/blog/pt/lingui_vs_intlayer.md +381 -0
  179. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  180. package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
  181. package/blog/pt/next-intl_vs_intlayer.md +411 -0
  182. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  183. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
  184. package/blog/ru/history_of_i18n.md +304 -0
  185. package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
  186. package/blog/ru/i18next_vs_intlayer.md +445 -0
  187. package/blog/ru/is_i18next_outdated.md +1 -1
  188. package/blog/ru/is_next-intl_outdated.md +1 -1
  189. package/blog/ru/is_vue-i18n_outdated.md +1 -1
  190. package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
  191. package/blog/ru/lingui_vs_intlayer.md +381 -0
  192. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  193. package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
  194. package/blog/ru/next-intl_vs_intlayer.md +417 -0
  195. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  196. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
  197. package/blog/tr/history_of_i18n.md +304 -0
  198. package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
  199. package/blog/tr/i18next_vs_intlayer.md +445 -0
  200. package/blog/tr/is_i18next_outdated.md +1 -1
  201. package/blog/tr/is_next-intl_outdated.md +1 -1
  202. package/blog/tr/is_vue-i18n_outdated.md +1 -1
  203. package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
  204. package/blog/tr/lingui_vs_intlayer.md +381 -0
  205. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  206. package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
  207. package/blog/tr/next-intl_vs_intlayer.md +397 -0
  208. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  209. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  210. package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
  211. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
  212. package/blog/uk/history_of_i18n.md +304 -0
  213. package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
  214. package/blog/uk/i18next_vs_intlayer.md +445 -0
  215. package/blog/uk/is_i18next_outdated.md +1 -1
  216. package/blog/uk/is_next-intl_outdated.md +1 -1
  217. package/blog/uk/is_vue-i18n_outdated.md +1 -1
  218. package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
  219. package/blog/uk/lingui_vs_intlayer.md +381 -0
  220. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  221. package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
  222. package/blog/uk/next-intl_vs_intlayer.md +397 -0
  223. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  224. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
  225. package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
  226. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
  227. package/blog/vi/history_of_i18n.md +304 -0
  228. package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
  229. package/blog/vi/i18next_vs_intlayer.md +445 -0
  230. package/blog/vi/is_i18next_outdated.md +1 -1
  231. package/blog/vi/is_next-intl_outdated.md +1 -1
  232. package/blog/vi/is_vue-i18n_outdated.md +1 -1
  233. package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
  234. package/blog/vi/lingui_vs_intlayer.md +381 -0
  235. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  236. package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
  237. package/blog/vi/next-intl_vs_intlayer.md +397 -0
  238. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  239. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  240. package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
  241. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
  242. package/blog/zh/history_of_i18n.md +304 -0
  243. package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
  244. package/blog/zh/i18next_vs_intlayer.md +445 -0
  245. package/blog/zh/is_i18next_outdated.md +1 -1
  246. package/blog/zh/is_next-intl_outdated.md +1 -1
  247. package/blog/zh/is_vue-i18n_outdated.md +1 -1
  248. package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
  249. package/blog/zh/lingui_vs_intlayer.md +381 -0
  250. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  251. package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
  252. package/blog/zh/next-intl_vs_intlayer.md +422 -0
  253. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  254. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
  255. package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
  256. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
  257. package/dist/cjs/generated/blog.entry.cjs +180 -0
  258. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  259. package/dist/cjs/generated/docs.entry.cjs +0 -20
  260. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  261. package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
  262. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  263. package/dist/esm/generated/blog.entry.mjs +180 -0
  264. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  265. package/dist/esm/generated/docs.entry.mjs +0 -20
  266. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  267. package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
  268. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  269. package/dist/types/generated/blog.entry.d.ts +9 -0
  270. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  271. package/dist/types/generated/docs.entry.d.ts +0 -1
  272. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  273. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  274. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  275. package/docs/ar/benchmark/index.md +4 -1
  276. package/docs/ar/benchmark/nextjs.md +33 -28
  277. package/docs/ar/benchmark/solid.md +14 -11
  278. package/docs/ar/benchmark/svelte.md +13 -10
  279. package/docs/ar/benchmark/tanstack.md +30 -25
  280. package/docs/ar/benchmark/vue.md +12 -8
  281. package/docs/ar/cli/build.md +8 -1
  282. package/docs/ar/cli/configuration.md +3 -1
  283. package/docs/ar/cli/doc-review.md +8 -1
  284. package/docs/ar/cli/doc-translate.md +5 -1
  285. package/docs/ar/cli/extract.md +2 -1
  286. package/docs/ar/cli/fill.md +5 -1
  287. package/docs/ar/cli/index.md +4 -5
  288. package/docs/ar/cli/live.md +5 -1
  289. package/docs/ar/cli/login.md +2 -2
  290. package/docs/ar/cli/pull.md +5 -1
  291. package/docs/ar/cli/push.md +5 -1
  292. package/docs/ar/cli/scan.md +5 -1
  293. package/docs/ar/cli/standalone.md +5 -1
  294. package/docs/ar/cli/test.md +5 -1
  295. package/docs/ar/cli/watch.md +5 -1
  296. package/docs/ar/compat/i18n-js.md +1 -1
  297. package/docs/ar/compat/i18next.md +1 -1
  298. package/docs/ar/compat/lingui.md +1 -1
  299. package/docs/ar/compat/next-i18next.md +1 -1
  300. package/docs/ar/compat/next-intl.md +1 -1
  301. package/docs/ar/compat/next-translate.md +1 -1
  302. package/docs/ar/compat/ngx-translate.md +1 -1
  303. package/docs/ar/compat/nuxtjs-i18n.md +1 -1
  304. package/docs/ar/compat/polyglot.md +1 -1
  305. package/docs/ar/compat/react-i18next.md +1 -1
  306. package/docs/ar/compat/react-intl.md +1 -1
  307. package/docs/ar/compat/svelte-i18n.md +1 -1
  308. package/docs/ar/compat/transloco.md +1 -1
  309. package/docs/ar/compat/vue-i18n.md +1 -1
  310. package/docs/ar/interest_of_intlayer.md +1 -1
  311. package/docs/ar/intlayer_with_remix_3.md +543 -0
  312. package/docs/bn/cli/index.md +4 -5
  313. package/docs/bn/cli/scan.md +5 -1
  314. package/docs/bn/cli/standalone.md +5 -1
  315. package/docs/bn/interest_of_intlayer.md +1 -1
  316. package/docs/cs/cli/index.md +4 -5
  317. package/docs/cs/cli/scan.md +5 -1
  318. package/docs/cs/cli/standalone.md +5 -1
  319. package/docs/cs/interest_of_intlayer.md +1 -1
  320. package/docs/de/benchmark/index.md +4 -1
  321. package/docs/de/benchmark/nextjs.md +33 -28
  322. package/docs/de/benchmark/solid.md +14 -11
  323. package/docs/de/benchmark/svelte.md +13 -10
  324. package/docs/de/benchmark/tanstack.md +30 -25
  325. package/docs/de/benchmark/vue.md +12 -8
  326. package/docs/de/cli/build.md +8 -1
  327. package/docs/de/cli/configuration.md +3 -1
  328. package/docs/de/cli/doc-review.md +8 -1
  329. package/docs/de/cli/doc-translate.md +5 -1
  330. package/docs/de/cli/extract.md +2 -1
  331. package/docs/de/cli/fill.md +5 -1
  332. package/docs/de/cli/index.md +4 -5
  333. package/docs/de/cli/live.md +5 -1
  334. package/docs/de/cli/login.md +2 -2
  335. package/docs/de/cli/pull.md +5 -1
  336. package/docs/de/cli/push.md +5 -1
  337. package/docs/de/cli/scan.md +5 -1
  338. package/docs/de/cli/standalone.md +5 -1
  339. package/docs/de/cli/test.md +5 -1
  340. package/docs/de/cli/watch.md +5 -1
  341. package/docs/de/compat/i18n-js.md +1 -1
  342. package/docs/de/compat/i18next.md +1 -1
  343. package/docs/de/compat/lingui.md +1 -1
  344. package/docs/de/compat/next-i18next.md +1 -1
  345. package/docs/de/compat/next-intl.md +1 -1
  346. package/docs/de/compat/next-translate.md +1 -1
  347. package/docs/de/compat/ngx-translate.md +1 -1
  348. package/docs/de/compat/nuxtjs-i18n.md +1 -1
  349. package/docs/de/compat/polyglot.md +1 -1
  350. package/docs/de/compat/react-i18next.md +1 -1
  351. package/docs/de/compat/react-intl.md +1 -1
  352. package/docs/de/compat/svelte-i18n.md +1 -1
  353. package/docs/de/compat/transloco.md +1 -1
  354. package/docs/de/compat/vue-i18n.md +1 -1
  355. package/docs/de/interest_of_intlayer.md +1 -1
  356. package/docs/de/intlayer_with_remix_3.md +543 -0
  357. package/docs/en/benchmark/index.md +4 -1
  358. package/docs/en/benchmark/nextjs.md +33 -28
  359. package/docs/en/benchmark/solid.md +14 -11
  360. package/docs/en/benchmark/svelte.md +13 -10
  361. package/docs/en/benchmark/tanstack.md +31 -26
  362. package/docs/en/benchmark/vue.md +12 -8
  363. package/docs/en/cli/build.md +8 -1
  364. package/docs/en/cli/configuration.md +3 -1
  365. package/docs/en/cli/doc-review.md +8 -1
  366. package/docs/en/cli/doc-translate.md +5 -1
  367. package/docs/en/cli/extract.md +2 -1
  368. package/docs/en/cli/fill.md +5 -1
  369. package/docs/en/cli/index.md +4 -5
  370. package/docs/en/cli/live.md +5 -1
  371. package/docs/en/cli/login.md +2 -2
  372. package/docs/en/cli/pull.md +5 -1
  373. package/docs/en/cli/push.md +5 -1
  374. package/docs/en/cli/scan.md +5 -1
  375. package/docs/en/cli/standalone.md +5 -1
  376. package/docs/en/cli/test.md +5 -1
  377. package/docs/en/cli/watch.md +5 -1
  378. package/docs/en/compat/i18n-js.md +1 -1
  379. package/docs/en/compat/i18next.md +1 -1
  380. package/docs/en/compat/lingui.md +1 -1
  381. package/docs/en/compat/next-i18next.md +1 -1
  382. package/docs/en/compat/next-intl.md +1 -1
  383. package/docs/en/compat/next-translate.md +1 -1
  384. package/docs/en/compat/ngx-translate.md +1 -1
  385. package/docs/en/compat/nuxtjs-i18n.md +1 -1
  386. package/docs/en/compat/polyglot.md +1 -1
  387. package/docs/en/compat/react-i18next.md +1 -1
  388. package/docs/en/compat/react-intl.md +1 -1
  389. package/docs/en/compat/svelte-i18n.md +1 -1
  390. package/docs/en/compat/transloco.md +1 -1
  391. package/docs/en/compat/vue-i18n.md +1 -1
  392. package/docs/en/interest_of_intlayer.md +1 -1
  393. package/docs/en/intlayer_with_remix_3.md +103 -71
  394. package/docs/en-GB/benchmark/index.md +4 -1
  395. package/docs/en-GB/benchmark/nextjs.md +33 -28
  396. package/docs/en-GB/benchmark/solid.md +14 -11
  397. package/docs/en-GB/benchmark/svelte.md +13 -10
  398. package/docs/en-GB/benchmark/tanstack.md +30 -25
  399. package/docs/en-GB/benchmark/vue.md +12 -8
  400. package/docs/en-GB/cli/build.md +8 -1
  401. package/docs/en-GB/cli/configuration.md +3 -1
  402. package/docs/en-GB/cli/doc-review.md +8 -1
  403. package/docs/en-GB/cli/doc-translate.md +5 -1
  404. package/docs/en-GB/cli/extract.md +2 -1
  405. package/docs/en-GB/cli/fill.md +5 -1
  406. package/docs/en-GB/cli/index.md +4 -5
  407. package/docs/en-GB/cli/live.md +5 -1
  408. package/docs/en-GB/cli/login.md +2 -2
  409. package/docs/en-GB/cli/pull.md +5 -1
  410. package/docs/en-GB/cli/push.md +5 -1
  411. package/docs/en-GB/cli/scan.md +5 -1
  412. package/docs/en-GB/cli/standalone.md +5 -1
  413. package/docs/en-GB/cli/test.md +5 -1
  414. package/docs/en-GB/cli/watch.md +5 -1
  415. package/docs/en-GB/compat/i18n-js.md +1 -1
  416. package/docs/en-GB/compat/i18next.md +1 -1
  417. package/docs/en-GB/compat/lingui.md +1 -1
  418. package/docs/en-GB/compat/next-i18next.md +1 -1
  419. package/docs/en-GB/compat/next-intl.md +1 -1
  420. package/docs/en-GB/compat/next-translate.md +1 -1
  421. package/docs/en-GB/compat/ngx-translate.md +1 -1
  422. package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
  423. package/docs/en-GB/compat/polyglot.md +1 -1
  424. package/docs/en-GB/compat/react-i18next.md +1 -1
  425. package/docs/en-GB/compat/react-intl.md +1 -1
  426. package/docs/en-GB/compat/svelte-i18n.md +1 -1
  427. package/docs/en-GB/compat/transloco.md +1 -1
  428. package/docs/en-GB/compat/vue-i18n.md +1 -1
  429. package/docs/en-GB/interest_of_intlayer.md +1 -1
  430. package/docs/en-GB/intlayer_with_remix_3.md +558 -0
  431. package/docs/es/benchmark/index.md +4 -1
  432. package/docs/es/benchmark/nextjs.md +33 -28
  433. package/docs/es/benchmark/solid.md +14 -11
  434. package/docs/es/benchmark/svelte.md +13 -10
  435. package/docs/es/benchmark/tanstack.md +30 -25
  436. package/docs/es/benchmark/vue.md +12 -8
  437. package/docs/es/cli/build.md +8 -1
  438. package/docs/es/cli/configuration.md +3 -1
  439. package/docs/es/cli/doc-review.md +8 -1
  440. package/docs/es/cli/doc-translate.md +5 -1
  441. package/docs/es/cli/extract.md +2 -1
  442. package/docs/es/cli/fill.md +5 -1
  443. package/docs/es/cli/index.md +4 -5
  444. package/docs/es/cli/live.md +5 -1
  445. package/docs/es/cli/login.md +2 -2
  446. package/docs/es/cli/pull.md +5 -1
  447. package/docs/es/cli/push.md +5 -1
  448. package/docs/es/cli/scan.md +5 -1
  449. package/docs/es/cli/standalone.md +5 -1
  450. package/docs/es/cli/test.md +5 -1
  451. package/docs/es/cli/watch.md +5 -1
  452. package/docs/es/compat/i18n-js.md +1 -1
  453. package/docs/es/compat/i18next.md +1 -1
  454. package/docs/es/compat/lingui.md +1 -1
  455. package/docs/es/compat/next-i18next.md +1 -1
  456. package/docs/es/compat/next-intl.md +1 -1
  457. package/docs/es/compat/next-translate.md +1 -1
  458. package/docs/es/compat/ngx-translate.md +1 -1
  459. package/docs/es/compat/nuxtjs-i18n.md +1 -1
  460. package/docs/es/compat/polyglot.md +1 -1
  461. package/docs/es/compat/react-i18next.md +1 -1
  462. package/docs/es/compat/react-intl.md +1 -1
  463. package/docs/es/compat/svelte-i18n.md +1 -1
  464. package/docs/es/compat/transloco.md +1 -1
  465. package/docs/es/compat/vue-i18n.md +1 -1
  466. package/docs/es/interest_of_intlayer.md +1 -1
  467. package/docs/es/intlayer_with_remix_3.md +540 -0
  468. package/docs/fr/benchmark/index.md +4 -1
  469. package/docs/fr/benchmark/nextjs.md +33 -28
  470. package/docs/fr/benchmark/solid.md +14 -11
  471. package/docs/fr/benchmark/svelte.md +13 -10
  472. package/docs/fr/benchmark/tanstack.md +30 -25
  473. package/docs/fr/benchmark/vue.md +12 -8
  474. package/docs/fr/cli/build.md +8 -1
  475. package/docs/fr/cli/configuration.md +3 -1
  476. package/docs/fr/cli/doc-review.md +8 -1
  477. package/docs/fr/cli/doc-translate.md +5 -1
  478. package/docs/fr/cli/extract.md +2 -1
  479. package/docs/fr/cli/fill.md +5 -1
  480. package/docs/fr/cli/index.md +4 -5
  481. package/docs/fr/cli/live.md +5 -1
  482. package/docs/fr/cli/login.md +2 -2
  483. package/docs/fr/cli/pull.md +5 -1
  484. package/docs/fr/cli/push.md +5 -1
  485. package/docs/fr/cli/scan.md +5 -1
  486. package/docs/fr/cli/standalone.md +5 -1
  487. package/docs/fr/cli/test.md +5 -1
  488. package/docs/fr/cli/watch.md +5 -1
  489. package/docs/fr/compat/i18n-js.md +1 -1
  490. package/docs/fr/compat/i18next.md +1 -1
  491. package/docs/fr/compat/lingui.md +1 -1
  492. package/docs/fr/compat/next-i18next.md +1 -1
  493. package/docs/fr/compat/next-intl.md +1 -1
  494. package/docs/fr/compat/next-translate.md +1 -1
  495. package/docs/fr/compat/ngx-translate.md +1 -1
  496. package/docs/fr/compat/nuxtjs-i18n.md +1 -1
  497. package/docs/fr/compat/polyglot.md +1 -1
  498. package/docs/fr/compat/react-i18next.md +1 -1
  499. package/docs/fr/compat/react-intl.md +1 -1
  500. package/docs/fr/compat/svelte-i18n.md +1 -1
  501. package/docs/fr/compat/transloco.md +1 -1
  502. package/docs/fr/compat/vue-i18n.md +1 -1
  503. package/docs/fr/interest_of_intlayer.md +1 -1
  504. package/docs/fr/intlayer_with_remix_3.md +540 -0
  505. package/docs/hi/benchmark/index.md +4 -1
  506. package/docs/hi/benchmark/nextjs.md +33 -28
  507. package/docs/hi/benchmark/solid.md +14 -11
  508. package/docs/hi/benchmark/svelte.md +13 -10
  509. package/docs/hi/benchmark/tanstack.md +30 -25
  510. package/docs/hi/benchmark/vue.md +12 -8
  511. package/docs/hi/cli/build.md +8 -1
  512. package/docs/hi/cli/configuration.md +3 -1
  513. package/docs/hi/cli/doc-review.md +8 -1
  514. package/docs/hi/cli/doc-translate.md +5 -1
  515. package/docs/hi/cli/extract.md +2 -1
  516. package/docs/hi/cli/fill.md +5 -1
  517. package/docs/hi/cli/index.md +4 -5
  518. package/docs/hi/cli/live.md +5 -1
  519. package/docs/hi/cli/login.md +2 -2
  520. package/docs/hi/cli/pull.md +5 -1
  521. package/docs/hi/cli/push.md +5 -1
  522. package/docs/hi/cli/scan.md +5 -1
  523. package/docs/hi/cli/standalone.md +5 -1
  524. package/docs/hi/cli/test.md +5 -1
  525. package/docs/hi/cli/watch.md +5 -1
  526. package/docs/hi/compat/i18n-js.md +1 -1
  527. package/docs/hi/compat/i18next.md +1 -1
  528. package/docs/hi/compat/lingui.md +1 -1
  529. package/docs/hi/compat/next-i18next.md +1 -1
  530. package/docs/hi/compat/next-intl.md +1 -1
  531. package/docs/hi/compat/next-translate.md +1 -1
  532. package/docs/hi/compat/ngx-translate.md +1 -1
  533. package/docs/hi/compat/nuxtjs-i18n.md +1 -1
  534. package/docs/hi/compat/polyglot.md +1 -1
  535. package/docs/hi/compat/react-i18next.md +1 -1
  536. package/docs/hi/compat/react-intl.md +1 -1
  537. package/docs/hi/compat/svelte-i18n.md +1 -1
  538. package/docs/hi/compat/transloco.md +1 -1
  539. package/docs/hi/compat/vue-i18n.md +1 -1
  540. package/docs/hi/interest_of_intlayer.md +1 -1
  541. package/docs/hi/intlayer_with_remix_3.md +543 -0
  542. package/docs/id/benchmark/index.md +4 -1
  543. package/docs/id/benchmark/nextjs.md +33 -28
  544. package/docs/id/benchmark/solid.md +14 -11
  545. package/docs/id/benchmark/svelte.md +13 -10
  546. package/docs/id/benchmark/tanstack.md +30 -25
  547. package/docs/id/benchmark/vue.md +12 -8
  548. package/docs/id/cli/build.md +8 -1
  549. package/docs/id/cli/configuration.md +3 -1
  550. package/docs/id/cli/doc-review.md +8 -1
  551. package/docs/id/cli/doc-translate.md +5 -1
  552. package/docs/id/cli/extract.md +2 -1
  553. package/docs/id/cli/fill.md +5 -1
  554. package/docs/id/cli/index.md +4 -5
  555. package/docs/id/cli/live.md +5 -1
  556. package/docs/id/cli/login.md +2 -2
  557. package/docs/id/cli/pull.md +5 -1
  558. package/docs/id/cli/push.md +5 -1
  559. package/docs/id/cli/scan.md +5 -1
  560. package/docs/id/cli/standalone.md +5 -1
  561. package/docs/id/cli/test.md +5 -1
  562. package/docs/id/cli/watch.md +5 -1
  563. package/docs/id/compat/i18n-js.md +1 -1
  564. package/docs/id/compat/i18next.md +1 -1
  565. package/docs/id/compat/lingui.md +1 -1
  566. package/docs/id/compat/next-i18next.md +1 -1
  567. package/docs/id/compat/next-intl.md +1 -1
  568. package/docs/id/compat/next-translate.md +1 -1
  569. package/docs/id/compat/ngx-translate.md +1 -1
  570. package/docs/id/compat/nuxtjs-i18n.md +1 -1
  571. package/docs/id/compat/polyglot.md +1 -1
  572. package/docs/id/compat/react-i18next.md +1 -1
  573. package/docs/id/compat/react-intl.md +1 -1
  574. package/docs/id/compat/svelte-i18n.md +1 -1
  575. package/docs/id/compat/transloco.md +1 -1
  576. package/docs/id/compat/vue-i18n.md +1 -1
  577. package/docs/id/interest_of_intlayer.md +1 -1
  578. package/docs/id/intlayer_with_remix_3.md +566 -0
  579. package/docs/it/benchmark/index.md +4 -1
  580. package/docs/it/benchmark/nextjs.md +33 -28
  581. package/docs/it/benchmark/solid.md +14 -11
  582. package/docs/it/benchmark/svelte.md +13 -10
  583. package/docs/it/benchmark/tanstack.md +30 -25
  584. package/docs/it/benchmark/vue.md +12 -8
  585. package/docs/it/cli/build.md +8 -1
  586. package/docs/it/cli/configuration.md +3 -1
  587. package/docs/it/cli/doc-review.md +8 -1
  588. package/docs/it/cli/doc-translate.md +5 -1
  589. package/docs/it/cli/extract.md +2 -1
  590. package/docs/it/cli/fill.md +5 -1
  591. package/docs/it/cli/index.md +4 -5
  592. package/docs/it/cli/live.md +5 -1
  593. package/docs/it/cli/login.md +2 -2
  594. package/docs/it/cli/pull.md +5 -1
  595. package/docs/it/cli/push.md +5 -1
  596. package/docs/it/cli/scan.md +5 -1
  597. package/docs/it/cli/standalone.md +5 -1
  598. package/docs/it/cli/test.md +5 -1
  599. package/docs/it/cli/watch.md +5 -1
  600. package/docs/it/compat/i18n-js.md +1 -1
  601. package/docs/it/compat/i18next.md +1 -1
  602. package/docs/it/compat/lingui.md +1 -1
  603. package/docs/it/compat/next-i18next.md +1 -1
  604. package/docs/it/compat/next-intl.md +1 -1
  605. package/docs/it/compat/next-translate.md +1 -1
  606. package/docs/it/compat/ngx-translate.md +1 -1
  607. package/docs/it/compat/nuxtjs-i18n.md +1 -1
  608. package/docs/it/compat/polyglot.md +1 -1
  609. package/docs/it/compat/react-i18next.md +1 -1
  610. package/docs/it/compat/react-intl.md +1 -1
  611. package/docs/it/compat/svelte-i18n.md +1 -1
  612. package/docs/it/compat/transloco.md +1 -1
  613. package/docs/it/compat/vue-i18n.md +1 -1
  614. package/docs/it/interest_of_intlayer.md +1 -1
  615. package/docs/it/intlayer_with_remix_3.md +558 -0
  616. package/docs/ja/benchmark/index.md +4 -1
  617. package/docs/ja/benchmark/nextjs.md +33 -28
  618. package/docs/ja/benchmark/solid.md +14 -11
  619. package/docs/ja/benchmark/svelte.md +13 -10
  620. package/docs/ja/benchmark/tanstack.md +30 -25
  621. package/docs/ja/benchmark/vue.md +12 -8
  622. package/docs/ja/cli/build.md +8 -1
  623. package/docs/ja/cli/configuration.md +3 -1
  624. package/docs/ja/cli/doc-review.md +8 -1
  625. package/docs/ja/cli/doc-translate.md +5 -1
  626. package/docs/ja/cli/extract.md +2 -1
  627. package/docs/ja/cli/fill.md +5 -1
  628. package/docs/ja/cli/index.md +4 -5
  629. package/docs/ja/cli/live.md +5 -1
  630. package/docs/ja/cli/login.md +2 -2
  631. package/docs/ja/cli/pull.md +5 -1
  632. package/docs/ja/cli/push.md +5 -1
  633. package/docs/ja/cli/scan.md +5 -1
  634. package/docs/ja/cli/standalone.md +5 -1
  635. package/docs/ja/cli/test.md +5 -1
  636. package/docs/ja/cli/watch.md +5 -1
  637. package/docs/ja/compat/i18n-js.md +1 -1
  638. package/docs/ja/compat/i18next.md +1 -1
  639. package/docs/ja/compat/lingui.md +1 -1
  640. package/docs/ja/compat/next-i18next.md +1 -1
  641. package/docs/ja/compat/next-intl.md +1 -1
  642. package/docs/ja/compat/next-translate.md +1 -1
  643. package/docs/ja/compat/ngx-translate.md +1 -1
  644. package/docs/ja/compat/nuxtjs-i18n.md +1 -1
  645. package/docs/ja/compat/polyglot.md +1 -1
  646. package/docs/ja/compat/react-i18next.md +1 -1
  647. package/docs/ja/compat/react-intl.md +1 -1
  648. package/docs/ja/compat/svelte-i18n.md +1 -1
  649. package/docs/ja/compat/transloco.md +1 -1
  650. package/docs/ja/compat/vue-i18n.md +1 -1
  651. package/docs/ja/interest_of_intlayer.md +1 -1
  652. package/docs/ja/intlayer_with_remix_3.md +558 -0
  653. package/docs/ko/benchmark/index.md +4 -1
  654. package/docs/ko/benchmark/nextjs.md +33 -28
  655. package/docs/ko/benchmark/solid.md +14 -11
  656. package/docs/ko/benchmark/svelte.md +13 -10
  657. package/docs/ko/benchmark/tanstack.md +30 -25
  658. package/docs/ko/benchmark/vue.md +12 -8
  659. package/docs/ko/cli/build.md +8 -1
  660. package/docs/ko/cli/configuration.md +3 -1
  661. package/docs/ko/cli/doc-review.md +8 -1
  662. package/docs/ko/cli/doc-translate.md +5 -1
  663. package/docs/ko/cli/extract.md +2 -1
  664. package/docs/ko/cli/fill.md +5 -1
  665. package/docs/ko/cli/index.md +4 -5
  666. package/docs/ko/cli/live.md +5 -1
  667. package/docs/ko/cli/login.md +2 -2
  668. package/docs/ko/cli/pull.md +5 -1
  669. package/docs/ko/cli/push.md +5 -1
  670. package/docs/ko/cli/scan.md +5 -1
  671. package/docs/ko/cli/standalone.md +5 -1
  672. package/docs/ko/cli/test.md +5 -1
  673. package/docs/ko/cli/watch.md +5 -1
  674. package/docs/ko/compat/i18n-js.md +1 -1
  675. package/docs/ko/compat/i18next.md +1 -1
  676. package/docs/ko/compat/lingui.md +1 -1
  677. package/docs/ko/compat/next-i18next.md +1 -1
  678. package/docs/ko/compat/next-intl.md +1 -1
  679. package/docs/ko/compat/next-translate.md +1 -1
  680. package/docs/ko/compat/ngx-translate.md +1 -1
  681. package/docs/ko/compat/nuxtjs-i18n.md +1 -1
  682. package/docs/ko/compat/polyglot.md +1 -1
  683. package/docs/ko/compat/react-i18next.md +1 -1
  684. package/docs/ko/compat/react-intl.md +1 -1
  685. package/docs/ko/compat/svelte-i18n.md +1 -1
  686. package/docs/ko/compat/transloco.md +1 -1
  687. package/docs/ko/compat/vue-i18n.md +1 -1
  688. package/docs/ko/interest_of_intlayer.md +1 -1
  689. package/docs/ko/intlayer_with_remix_3.md +543 -0
  690. package/docs/nl/cli/index.md +4 -5
  691. package/docs/nl/cli/scan.md +5 -1
  692. package/docs/nl/cli/standalone.md +5 -1
  693. package/docs/nl/interest_of_intlayer.md +1 -1
  694. package/docs/pl/benchmark/index.md +4 -1
  695. package/docs/pl/benchmark/nextjs.md +33 -28
  696. package/docs/pl/benchmark/solid.md +14 -11
  697. package/docs/pl/benchmark/svelte.md +13 -10
  698. package/docs/pl/benchmark/tanstack.md +30 -25
  699. package/docs/pl/benchmark/vue.md +12 -8
  700. package/docs/pl/cli/build.md +8 -1
  701. package/docs/pl/cli/configuration.md +3 -1
  702. package/docs/pl/cli/doc-review.md +8 -1
  703. package/docs/pl/cli/doc-translate.md +5 -1
  704. package/docs/pl/cli/extract.md +2 -1
  705. package/docs/pl/cli/fill.md +5 -1
  706. package/docs/pl/cli/index.md +4 -5
  707. package/docs/pl/cli/live.md +5 -1
  708. package/docs/pl/cli/login.md +2 -2
  709. package/docs/pl/cli/pull.md +5 -1
  710. package/docs/pl/cli/push.md +5 -1
  711. package/docs/pl/cli/scan.md +5 -1
  712. package/docs/pl/cli/standalone.md +5 -1
  713. package/docs/pl/cli/test.md +5 -1
  714. package/docs/pl/cli/watch.md +5 -1
  715. package/docs/pl/compat/i18n-js.md +1 -1
  716. package/docs/pl/compat/i18next.md +1 -1
  717. package/docs/pl/compat/lingui.md +1 -1
  718. package/docs/pl/compat/next-i18next.md +1 -1
  719. package/docs/pl/compat/next-intl.md +1 -1
  720. package/docs/pl/compat/next-translate.md +1 -1
  721. package/docs/pl/compat/ngx-translate.md +1 -1
  722. package/docs/pl/compat/nuxtjs-i18n.md +1 -1
  723. package/docs/pl/compat/polyglot.md +1 -1
  724. package/docs/pl/compat/react-i18next.md +1 -1
  725. package/docs/pl/compat/react-intl.md +1 -1
  726. package/docs/pl/compat/svelte-i18n.md +1 -1
  727. package/docs/pl/compat/transloco.md +1 -1
  728. package/docs/pl/compat/vue-i18n.md +1 -1
  729. package/docs/pl/interest_of_intlayer.md +1 -1
  730. package/docs/pl/intlayer_with_remix_3.md +551 -0
  731. package/docs/pt/benchmark/index.md +4 -1
  732. package/docs/pt/benchmark/nextjs.md +33 -28
  733. package/docs/pt/benchmark/solid.md +14 -11
  734. package/docs/pt/benchmark/svelte.md +13 -10
  735. package/docs/pt/benchmark/tanstack.md +30 -25
  736. package/docs/pt/benchmark/vue.md +12 -8
  737. package/docs/pt/cli/build.md +8 -1
  738. package/docs/pt/cli/configuration.md +3 -1
  739. package/docs/pt/cli/doc-review.md +8 -1
  740. package/docs/pt/cli/doc-translate.md +5 -1
  741. package/docs/pt/cli/extract.md +2 -1
  742. package/docs/pt/cli/fill.md +5 -1
  743. package/docs/pt/cli/index.md +4 -5
  744. package/docs/pt/cli/live.md +5 -1
  745. package/docs/pt/cli/login.md +2 -2
  746. package/docs/pt/cli/pull.md +5 -1
  747. package/docs/pt/cli/push.md +5 -1
  748. package/docs/pt/cli/scan.md +5 -1
  749. package/docs/pt/cli/standalone.md +5 -1
  750. package/docs/pt/cli/test.md +5 -1
  751. package/docs/pt/cli/watch.md +5 -1
  752. package/docs/pt/compat/i18n-js.md +1 -1
  753. package/docs/pt/compat/i18next.md +1 -1
  754. package/docs/pt/compat/lingui.md +1 -1
  755. package/docs/pt/compat/next-i18next.md +1 -1
  756. package/docs/pt/compat/next-intl.md +1 -1
  757. package/docs/pt/compat/next-translate.md +1 -1
  758. package/docs/pt/compat/ngx-translate.md +1 -1
  759. package/docs/pt/compat/nuxtjs-i18n.md +1 -1
  760. package/docs/pt/compat/polyglot.md +1 -1
  761. package/docs/pt/compat/react-i18next.md +1 -1
  762. package/docs/pt/compat/react-intl.md +1 -1
  763. package/docs/pt/compat/svelte-i18n.md +1 -1
  764. package/docs/pt/compat/transloco.md +1 -1
  765. package/docs/pt/compat/vue-i18n.md +1 -1
  766. package/docs/pt/interest_of_intlayer.md +1 -1
  767. package/docs/pt/intlayer_with_remix_3.md +558 -0
  768. package/docs/ru/benchmark/index.md +4 -1
  769. package/docs/ru/benchmark/nextjs.md +33 -28
  770. package/docs/ru/benchmark/solid.md +14 -11
  771. package/docs/ru/benchmark/svelte.md +13 -10
  772. package/docs/ru/benchmark/tanstack.md +30 -25
  773. package/docs/ru/benchmark/vue.md +12 -8
  774. package/docs/ru/cli/build.md +8 -1
  775. package/docs/ru/cli/configuration.md +3 -1
  776. package/docs/ru/cli/doc-review.md +8 -1
  777. package/docs/ru/cli/doc-translate.md +5 -1
  778. package/docs/ru/cli/extract.md +2 -1
  779. package/docs/ru/cli/fill.md +5 -1
  780. package/docs/ru/cli/index.md +4 -5
  781. package/docs/ru/cli/live.md +5 -1
  782. package/docs/ru/cli/login.md +2 -2
  783. package/docs/ru/cli/pull.md +5 -1
  784. package/docs/ru/cli/push.md +5 -1
  785. package/docs/ru/cli/scan.md +5 -1
  786. package/docs/ru/cli/standalone.md +5 -1
  787. package/docs/ru/cli/test.md +5 -1
  788. package/docs/ru/cli/watch.md +5 -1
  789. package/docs/ru/compat/i18n-js.md +1 -1
  790. package/docs/ru/compat/i18next.md +1 -1
  791. package/docs/ru/compat/lingui.md +1 -1
  792. package/docs/ru/compat/next-i18next.md +1 -1
  793. package/docs/ru/compat/next-intl.md +1 -1
  794. package/docs/ru/compat/next-translate.md +1 -1
  795. package/docs/ru/compat/ngx-translate.md +1 -1
  796. package/docs/ru/compat/nuxtjs-i18n.md +1 -1
  797. package/docs/ru/compat/polyglot.md +1 -1
  798. package/docs/ru/compat/react-i18next.md +1 -1
  799. package/docs/ru/compat/react-intl.md +1 -1
  800. package/docs/ru/compat/svelte-i18n.md +1 -1
  801. package/docs/ru/compat/transloco.md +1 -1
  802. package/docs/ru/compat/vue-i18n.md +1 -1
  803. package/docs/ru/interest_of_intlayer.md +1 -1
  804. package/docs/ru/intlayer_with_remix_3.md +558 -0
  805. package/docs/tr/benchmark/index.md +4 -1
  806. package/docs/tr/benchmark/nextjs.md +33 -28
  807. package/docs/tr/benchmark/solid.md +14 -11
  808. package/docs/tr/benchmark/svelte.md +13 -10
  809. package/docs/tr/benchmark/tanstack.md +30 -25
  810. package/docs/tr/benchmark/vue.md +12 -8
  811. package/docs/tr/cli/build.md +8 -1
  812. package/docs/tr/cli/configuration.md +3 -1
  813. package/docs/tr/cli/doc-review.md +8 -1
  814. package/docs/tr/cli/doc-translate.md +5 -1
  815. package/docs/tr/cli/extract.md +2 -1
  816. package/docs/tr/cli/fill.md +5 -1
  817. package/docs/tr/cli/index.md +4 -5
  818. package/docs/tr/cli/live.md +5 -1
  819. package/docs/tr/cli/login.md +2 -2
  820. package/docs/tr/cli/pull.md +5 -1
  821. package/docs/tr/cli/push.md +5 -1
  822. package/docs/tr/cli/scan.md +5 -1
  823. package/docs/tr/cli/standalone.md +5 -1
  824. package/docs/tr/cli/test.md +5 -1
  825. package/docs/tr/cli/watch.md +5 -1
  826. package/docs/tr/compat/i18n-js.md +1 -1
  827. package/docs/tr/compat/i18next.md +1 -1
  828. package/docs/tr/compat/lingui.md +1 -1
  829. package/docs/tr/compat/next-i18next.md +1 -1
  830. package/docs/tr/compat/next-intl.md +1 -1
  831. package/docs/tr/compat/next-translate.md +1 -1
  832. package/docs/tr/compat/ngx-translate.md +1 -1
  833. package/docs/tr/compat/nuxtjs-i18n.md +1 -1
  834. package/docs/tr/compat/polyglot.md +1 -1
  835. package/docs/tr/compat/react-i18next.md +1 -1
  836. package/docs/tr/compat/react-intl.md +1 -1
  837. package/docs/tr/compat/svelte-i18n.md +1 -1
  838. package/docs/tr/compat/transloco.md +1 -1
  839. package/docs/tr/compat/vue-i18n.md +1 -1
  840. package/docs/tr/interest_of_intlayer.md +1 -1
  841. package/docs/tr/intlayer_with_remix_3.md +566 -0
  842. package/docs/uk/benchmark/index.md +4 -1
  843. package/docs/uk/benchmark/nextjs.md +33 -28
  844. package/docs/uk/benchmark/solid.md +14 -11
  845. package/docs/uk/benchmark/svelte.md +13 -10
  846. package/docs/uk/benchmark/tanstack.md +30 -25
  847. package/docs/uk/benchmark/vue.md +12 -8
  848. package/docs/uk/cli/build.md +8 -1
  849. package/docs/uk/cli/configuration.md +3 -1
  850. package/docs/uk/cli/doc-review.md +8 -1
  851. package/docs/uk/cli/doc-translate.md +5 -1
  852. package/docs/uk/cli/extract.md +2 -1
  853. package/docs/uk/cli/fill.md +5 -1
  854. package/docs/uk/cli/index.md +4 -5
  855. package/docs/uk/cli/live.md +5 -1
  856. package/docs/uk/cli/login.md +2 -2
  857. package/docs/uk/cli/pull.md +5 -1
  858. package/docs/uk/cli/push.md +5 -1
  859. package/docs/uk/cli/scan.md +5 -1
  860. package/docs/uk/cli/standalone.md +5 -1
  861. package/docs/uk/cli/test.md +5 -1
  862. package/docs/uk/cli/watch.md +5 -1
  863. package/docs/uk/compat/i18n-js.md +1 -1
  864. package/docs/uk/compat/i18next.md +1 -1
  865. package/docs/uk/compat/lingui.md +1 -1
  866. package/docs/uk/compat/next-i18next.md +1 -1
  867. package/docs/uk/compat/next-intl.md +1 -1
  868. package/docs/uk/compat/next-translate.md +1 -1
  869. package/docs/uk/compat/ngx-translate.md +1 -1
  870. package/docs/uk/compat/nuxtjs-i18n.md +1 -1
  871. package/docs/uk/compat/polyglot.md +1 -1
  872. package/docs/uk/compat/react-i18next.md +1 -1
  873. package/docs/uk/compat/react-intl.md +1 -1
  874. package/docs/uk/compat/svelte-i18n.md +1 -1
  875. package/docs/uk/compat/transloco.md +1 -1
  876. package/docs/uk/compat/vue-i18n.md +1 -1
  877. package/docs/uk/interest_of_intlayer.md +1 -1
  878. package/docs/uk/intlayer_with_remix_3.md +566 -0
  879. package/docs/ur/cli/index.md +4 -5
  880. package/docs/ur/cli/scan.md +5 -1
  881. package/docs/ur/cli/standalone.md +5 -1
  882. package/docs/ur/interest_of_intlayer.md +1 -1
  883. package/docs/vi/benchmark/index.md +4 -1
  884. package/docs/vi/benchmark/nextjs.md +33 -28
  885. package/docs/vi/benchmark/solid.md +14 -11
  886. package/docs/vi/benchmark/svelte.md +13 -10
  887. package/docs/vi/benchmark/tanstack.md +30 -25
  888. package/docs/vi/benchmark/vue.md +12 -8
  889. package/docs/vi/cli/build.md +8 -1
  890. package/docs/vi/cli/configuration.md +3 -1
  891. package/docs/vi/cli/doc-review.md +8 -1
  892. package/docs/vi/cli/doc-translate.md +5 -1
  893. package/docs/vi/cli/extract.md +2 -1
  894. package/docs/vi/cli/fill.md +5 -1
  895. package/docs/vi/cli/index.md +4 -5
  896. package/docs/vi/cli/live.md +5 -1
  897. package/docs/vi/cli/login.md +2 -2
  898. package/docs/vi/cli/pull.md +5 -1
  899. package/docs/vi/cli/push.md +5 -1
  900. package/docs/vi/cli/scan.md +5 -1
  901. package/docs/vi/cli/standalone.md +5 -1
  902. package/docs/vi/cli/test.md +5 -1
  903. package/docs/vi/cli/watch.md +5 -1
  904. package/docs/vi/compat/i18n-js.md +1 -1
  905. package/docs/vi/compat/i18next.md +1 -1
  906. package/docs/vi/compat/lingui.md +1 -1
  907. package/docs/vi/compat/next-i18next.md +1 -1
  908. package/docs/vi/compat/next-intl.md +1 -1
  909. package/docs/vi/compat/next-translate.md +1 -1
  910. package/docs/vi/compat/ngx-translate.md +1 -1
  911. package/docs/vi/compat/nuxtjs-i18n.md +1 -1
  912. package/docs/vi/compat/polyglot.md +1 -1
  913. package/docs/vi/compat/react-i18next.md +1 -1
  914. package/docs/vi/compat/react-intl.md +1 -1
  915. package/docs/vi/compat/svelte-i18n.md +1 -1
  916. package/docs/vi/compat/transloco.md +1 -1
  917. package/docs/vi/compat/vue-i18n.md +1 -1
  918. package/docs/vi/interest_of_intlayer.md +1 -1
  919. package/docs/vi/intlayer_with_remix_3.md +566 -0
  920. package/docs/zh/benchmark/index.md +4 -1
  921. package/docs/zh/benchmark/nextjs.md +33 -28
  922. package/docs/zh/benchmark/solid.md +14 -11
  923. package/docs/zh/benchmark/svelte.md +13 -10
  924. package/docs/zh/benchmark/tanstack.md +30 -25
  925. package/docs/zh/benchmark/vue.md +12 -8
  926. package/docs/zh/cli/build.md +8 -1
  927. package/docs/zh/cli/configuration.md +3 -1
  928. package/docs/zh/cli/doc-review.md +8 -1
  929. package/docs/zh/cli/doc-translate.md +5 -1
  930. package/docs/zh/cli/extract.md +2 -1
  931. package/docs/zh/cli/fill.md +5 -1
  932. package/docs/zh/cli/index.md +4 -5
  933. package/docs/zh/cli/live.md +5 -1
  934. package/docs/zh/cli/login.md +2 -2
  935. package/docs/zh/cli/pull.md +5 -1
  936. package/docs/zh/cli/push.md +5 -1
  937. package/docs/zh/cli/scan.md +5 -1
  938. package/docs/zh/cli/standalone.md +5 -1
  939. package/docs/zh/cli/test.md +5 -1
  940. package/docs/zh/cli/watch.md +5 -1
  941. package/docs/zh/compat/i18n-js.md +1 -1
  942. package/docs/zh/compat/i18next.md +1 -1
  943. package/docs/zh/compat/lingui.md +1 -1
  944. package/docs/zh/compat/next-i18next.md +1 -1
  945. package/docs/zh/compat/next-intl.md +1 -1
  946. package/docs/zh/compat/next-translate.md +1 -1
  947. package/docs/zh/compat/ngx-translate.md +1 -1
  948. package/docs/zh/compat/nuxtjs-i18n.md +1 -1
  949. package/docs/zh/compat/polyglot.md +1 -1
  950. package/docs/zh/compat/react-i18next.md +1 -1
  951. package/docs/zh/compat/react-intl.md +1 -1
  952. package/docs/zh/compat/svelte-i18n.md +1 -1
  953. package/docs/zh/compat/transloco.md +1 -1
  954. package/docs/zh/compat/vue-i18n.md +1 -1
  955. package/docs/zh/interest_of_intlayer.md +1 -1
  956. package/docs/zh/intlayer_with_remix_3.md +558 -0
  957. package/docs/zh-TW/interest_of_intlayer.md +1 -1
  958. package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
  959. package/frequent_questions/de/claude_code_token_consumption.md +152 -0
  960. package/frequent_questions/en/claude_code_token_consumption.md +152 -0
  961. package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
  962. package/frequent_questions/es/claude_code_token_consumption.md +152 -0
  963. package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
  964. package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
  965. package/frequent_questions/id/claude_code_token_consumption.md +152 -0
  966. package/frequent_questions/it/claude_code_token_consumption.md +152 -0
  967. package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
  968. package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
  969. package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
  970. package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
  971. package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
  972. package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
  973. package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
  974. package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
  975. package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
  976. package/package.json +7 -7
  977. package/src/generated/blog.entry.ts +180 -0
  978. package/src/generated/docs.entry.ts +0 -20
  979. package/src/generated/frequentQuestions.entry.ts +20 -0
  980. package/docs/ar/cli/ci.md +0 -186
  981. package/docs/de/cli/ci.md +0 -186
  982. package/docs/en/cli/ci.md +0 -216
  983. package/docs/en-GB/cli/ci.md +0 -186
  984. package/docs/es/cli/ci.md +0 -186
  985. package/docs/fr/cli/ci.md +0 -186
  986. package/docs/hi/cli/ci.md +0 -186
  987. package/docs/id/cli/ci.md +0 -186
  988. package/docs/it/cli/ci.md +0 -186
  989. package/docs/ja/cli/ci.md +0 -186
  990. package/docs/ko/cli/ci.md +0 -186
  991. package/docs/pl/cli/ci.md +0 -186
  992. package/docs/pt/cli/ci.md +0 -186
  993. package/docs/ru/cli/ci.md +0 -186
  994. package/docs/tr/cli/ci.md +0 -186
  995. package/docs/uk/cli/ci.md +0 -186
  996. package/docs/vi/cli/ci.md +0 -186
  997. package/docs/zh/cli/ci.md +0 -186
@@ -0,0 +1,152 @@
1
+ ---
2
+ createdAt: 2026-09-13
3
+ updatedAt: 2026-09-13
4
+ title: Cách giới hạn mức tiêu thụ token của Claude Code khi tạo bản dịch
5
+ description: Tại sao dịch thuật bằng Claude Code gây lãng phí token, những gì Intlayer thực hiện thay thế (lọc các khóa đã dịch, chia nhỏ JSON, dịch markdown theo từng khối) và cách tái sử dụng gói đăng ký Claude với claude setup-token.
6
+ keywords:
7
+ - claude code
8
+ - tokens
9
+ - tiêu thụ token
10
+ - setup-token
11
+ - i18n
12
+ - quốc tế hóa
13
+ - dịch thuật
14
+ - fill
15
+ - mcp
16
+ - agent
17
+ slugs:
18
+ - frequent-questions
19
+ - claude-code-token-consumption
20
+ author: aymericzip
21
+ ---
22
+
23
+ # Cách giới hạn mức tiêu thụ token của Claude Code khi tạo bản dịch
24
+
25
+ ## Mô tả vấn đề
26
+
27
+ Yêu cầu Claude Code (hoặc bất kỳ agent lập trình nào) dịch nội dung là phương pháp tốn kém nhất. Trong mỗi lần chạy, agent phải:
28
+
29
+ - Tải toàn bộ tệp JSON hoặc tệp nội dung vào ngữ cảnh, bao gồm cả những khóa đã được dịch.
30
+ - Tìm kiếm các tệp liên quan để xác định vị trí và cấu trúc của nội dung.
31
+ - Tìm ra những ngôn ngữ (locales) còn thiếu và cần được tạo.
32
+ - Đọc lại các hướng dẫn tùy chỉnh của bạn mỗi lần ("chuyển đổi URL theo cách này", "giữ nguyên tên thương hiệu bằng tiếng Anh", "dùng văn phong thân mật").
33
+ - Viết lại toàn bộ tệp, bao gồm cả những phần không hề thay đổi.
34
+
35
+ Tất cả những dữ liệu đó đều được gửi lại ở mỗi lượt tương tác, khiến chi phí tăng theo công thức `kích thước nội dung × số lượng ngôn ngữ × số lượt tương tác`, và mọi sai lệch về định dạng hoặc khóa đều phải rà soát thủ công.
36
+
37
+ ## Những gì Intlayer thực hiện thay thế
38
+
39
+ Lợi ích của Intlayer là xử lý công việc đó bên ngoài agent, thông qua một pipeline được xây dựng chuyên biệt cho việc dịch thuật:
40
+
41
+ - **Lọc các bản dịch đã có** để giảm thiểu việc sử dụng token. Các khóa đã được dịch trong JSON sẽ được loại bỏ, chỉ các khóa còn thiếu mới được gửi đến mô hình.
42
+ - **Dịch markdown theo từng khối.** Đối với tài liệu, [`doc translate`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/doc-translate.md) và [`doc review`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/doc-review.md) so sánh từng khối với tài liệu gốc và bỏ qua các khối đã được dịch hoặc không thay đổi.
43
+ - **Chia nhỏ JSON (chunking)** nếu tệp quá lớn để luôn nằm trong vùng tối ưu của cửa sổ ngữ cảnh.
44
+ - **Làm phẳng và tái cấu trúc JSON** nhằm tối ưu hóa lượng token tiêu thụ.
45
+ - **Chèn prompt tùy chỉnh** cho các quy tắc cụ thể về thương hiệu và câu từ (`applicationContext`, `--custom-instructions`), giúp bạn chỉ cần viết một lần thay vì lặp lại trong mỗi cuộc trò chuyện.
46
+ - **Xác thực cấu trúc** để đảm bảo tính nhất quán và ngăn ngừa sai lệch khóa, đồng thời giữ nguyên định dạng (markdown, HTML, biến chèn, số nhiều).
47
+ - **Áp dụng cơ chế thử lại (retry)** khi định dạng đầu ra không hợp lệ.
48
+ - **Xếp hàng và xử lý song song các yêu cầu** giữa các tệp, khối dữ liệu và ngôn ngữ để tăng tốc độ.
49
+
50
+ Không có bước nào trong số này đi qua ngữ cảnh của agent. Nguyên tắc cốt lõi: để agent quyết định **cần** quốc tế hóa nội dung nào, và để Intlayer đảm nhận công việc lặp đi lặp lại.
51
+
52
+ ## Giải pháp
53
+
54
+ ### 1. Ủy quyền việc trích xuất cho `intlayer extract`
55
+
56
+ Thay vì yêu cầu agent viết lại từng component theo cách thủ công, hãy để agent chạy lệnh [`extract`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/extract.md). Lệnh này sẽ chuyển các chuỗi văn bản cố định sang tệp `.content` ngay cạnh component mà không cần tải toàn bộ tệp vào ngữ cảnh của agent.
57
+
58
+ ```bash
59
+ npx intlayer extract --file src/components/Header.tsx
60
+ ```
61
+
62
+ ### 2. Ủy quyền việc dịch thuật cho `intlayer fill`
63
+
64
+ Tuyệt đối không yêu cầu agent dịch trực tiếp. Lệnh [`fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/fill.md) áp dụng pipeline đã nêu: chỉ gửi các khóa còn thiếu, chia nhỏ chúng, xử lý song song các ngôn ngữ và ghi kết quả trở lại các tệp nội dung của bạn.
65
+
66
+ ```bash
67
+ npx intlayer fill
68
+ ```
69
+
70
+ Một số flag giúp giới hạn phạm vi thực thi:
71
+
72
+ - `--git-diff` (hoặc `--uncommitted`) chỉ xử lý các từ điển bị thay đổi trong nhánh hiện tại.
73
+ - `--file` hoặc `--keys` nhắm mục tiêu vào các tệp nội dung cụ thể.
74
+ - `--output-locales fr es` giới hạn thực thi cho các ngôn ngữ bạn thực sự cần lúc này.
75
+ - `--skip-metadata` bỏ qua bước tạo tiêu đề, mô tả và thẻ tag.
76
+ - `--data-serialization toon` gửi dữ liệu gọn gàng hơn đến mô hình (tiết kiệm token, đầu ra có thể hơi khác biệt).
77
+
78
+ ```bash
79
+ npx intlayer fill --git-diff --output-locales fr es --skip-metadata
80
+ ```
81
+
82
+ ### 3. Dịch markdown bằng `doc translate` và `doc review`
83
+
84
+ Yêu cầu agent dịch tệp `.md` đồng nghĩa với việc dán toàn bộ tài liệu cho từng ngôn ngữ sau mỗi lần thay đổi. Ngược lại, các lệnh [`doc translate`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/doc-translate.md) và [`doc review`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/doc-review.md) xử lý theo từng khối.
85
+
86
+ Sử dụng `doc translate` khi tệp dịch chưa tồn tại. Lệnh sẽ chia nhỏ markdown, dịch song song và tạo các tệp đích:
87
+
88
+ ```bash
89
+ npx intlayer doc translate --doc-pattern "docs/**/*.md" --base-locale en --locales fr es
90
+ ```
91
+
92
+ Sử dụng `doc review` khi tệp dịch đã tồn tại. Lệnh sẽ so sánh từng khối với tài liệu gốc, bỏ qua các khối đã được dịch hoặc không đổi, và chỉ gửi các khối có sự khác biệt:
93
+
94
+ ```bash
95
+ npx intlayer doc review --doc-pattern "docs/**/*.md" --base-locale en --locales fr es
96
+ ```
97
+
98
+ Cả hai lệnh đều tiếp nhận các quy tắc của bạn một lần duy nhất, tránh việc phải lặp lại trong mọi prompt:
99
+
100
+ ```bash
101
+ npx intlayer doc translate --custom-instructions "Do not translate URLs. Keep the markdown structure and the code blocks untouched."
102
+ ```
103
+
104
+ Hai chế độ của `doc review` rất hữu ích khi agent cần tham gia vào quy trình mà không làm phát sinh lệnh gọi AI nào từ phía Intlayer:
105
+
106
+ - `--mode report` ghi lại các khối cần chú ý kèm theo số dòng, giúp agent chỉ chỉnh sửa các khối đó.
107
+ - `--mode synthesis` chỉ thông báo tài liệu nào đã cập nhật và tài liệu nào còn các khối cần chỉnh sửa.
108
+
109
+ ```bash
110
+ npx intlayer doc review --mode report --locales fr
111
+ ```
112
+
113
+ ### 4. Để agent gọi CLI thông qua máy chủ MCP
114
+
115
+ Với [máy chủ Intlayer MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/mcp_server.md), agent trả lời dựa trên tài liệu mới nhất và tự chạy `intlayer fill` hoặc `intlayer doc review` thay vì triển khai lại logic đó trong cuộc hội thoại.
116
+
117
+ ```bash
118
+ claude mcp add intlayer npx -y @intlayer/mcp
119
+ ```
120
+
121
+ Cài đặt [Agent Skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/agent_skills.md) với `npx intlayer init skills` cũng giúp ngăn agent phỏng đoán API của Intlayer và đọc lại tài liệu trong mỗi tác vụ.
122
+
123
+ ### 5. Tái sử dụng gói đăng ký Claude với `claude setup-token`
124
+
125
+ Chạy cấu hình i18n trong phiên Claude Code tương tác sẽ lưu toàn bộ lịch sử trò chuyện trong ngữ cảnh. Hãy chuyển tác vụ nặng này sang một phiên headless ngắn gọn.
126
+
127
+ Tạo token dài hạn từ gói đăng ký Claude của bạn:
128
+
129
+ ```bash
130
+ claude setup-token
131
+ ```
132
+
133
+ Lưu dưới dạng `CLAUDE_CODE_OAUTH_TOKEN` (trong tệp `.env` hoặc trong bí mật CI của bạn), sau đó tái sử dụng cho phiên chạy đơn lẻ thực thi các lệnh Intlayer:
134
+
135
+ ```bash
136
+ CLAUDE_CODE_OAUTH_TOKEN=... claude -p "Run npx intlayer extract on src/components, then npx intlayer fill --uncommitted"
137
+ ```
138
+
139
+ Phiên này chỉ mang theo prompt đó và kết quả đầu ra của lệnh, không bao gồm toàn bộ cuộc trò chuyện trước đây. Token tương tự cũng hoạt động trong [Claude Code GitHub Action](https://github.com/anthropics/claude-code-action) để chạy `intlayer fill` trên mỗi pull request.
140
+
141
+ > Token được cấp bởi `claude setup-token` chỉ xác thực cho Claude Code. Token này không thể sử dụng làm khóa Anthropic API trong `ai.apiKey`. Đối với bản dịch, `intlayer fill` sử dụng [tài khoản Intlayer](https://app.intlayer.org) của bạn (đã bao gồm gói miễn phí) hoặc khóa nhà cung cấp riêng được cấu hình trong [`ai`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md#ai-configuration).
142
+
143
+ ## Tóm tắt
144
+
145
+ | Tác vụ | Người thực hiện | Token trong ngữ cảnh của agent |
146
+ | ----------------------------------- | ------------------------ | ------------------------------ |
147
+ | Quyết định nội dung cần bản địa hóa | Claude Code | Thấp |
148
+ | Trích xuất chuỗi văn bản | `intlayer extract` | Không có |
149
+ | Dịch nội dung | `intlayer fill` | Không có |
150
+ | Dịch tài liệu | `intlayer doc translate` | Không có |
151
+ | Cập nhật tài liệu | `intlayer doc review` | Không có |
152
+ | Chạy các lệnh | Headless Claude Code | Prompt + đầu ra của lệnh |
@@ -0,0 +1,152 @@
1
+ ---
2
+ createdAt: 2026-09-13
3
+ updatedAt: 2026-09-13
4
+ title: 如何限制 Claude Code 生成翻译时的 Token 消耗
5
+ description: 为什么使用 Claude Code 进行翻译会大量消耗 Token,Intlayer 如何取而代之(过滤已翻译的键、切分 JSON、逐块翻译 Markdown),以及如何通过 claude setup-token 复用 Claude 订阅。
6
+ keywords:
7
+ - claude code
8
+ - tokens
9
+ - token 消耗
10
+ - setup-token
11
+ - i18n
12
+ - 国际化
13
+ - 翻译
14
+ - fill
15
+ - mcp
16
+ - agent
17
+ slugs:
18
+ - frequent-questions
19
+ - claude-code-token-consumption
20
+ author: aymericzip
21
+ ---
22
+
23
+ # 如何限制 Claude Code 生成翻译时的 Token 消耗
24
+
25
+ ## 问题描述
26
+
27
+ 让 Claude Code(或任何编码 Agent)直接翻译内容是最昂贵的做法。每次执行时,Agent 都必须:
28
+
29
+ - 将整个 JSON 或内容文件加载到上下文中,甚至包括已经翻译过的键。
30
+ - 检索相关文件以确定内容的存放位置和结构。
31
+ - 分析缺少哪些语言环境(Locales)并需要生成。
32
+ - 每次都要重新阅读您的自定义指令(“按此规则转换 URL”,“保留英文品牌名称”,“使用非正式语气”等)。
33
+ - 重写整个文件,包括未发生变动的部分。
34
+
35
+ 所有这些内容在每次对话轮次中都会被重新发送,导致成本随着 `内容大小 × 语言环境数量 × 对话轮次` 呈倍数增长,而且格式或键名出现的任何偏差都必须手动排查。
36
+
37
+ ## Intlayer 采取的替代方案
38
+
39
+ Intlayer 的优势在于将这些工作移至 Agent 之外,通过专为翻译构建的流水线来完成:
40
+
41
+ - **过滤已存在的翻译**以限制 Token 消耗。JSON 中已翻译的键会被剥离,仅将缺失的键发送给模型。
42
+ - **逐块翻译 Markdown。** 对于文档,[`doc translate`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/doc-translate.md) 与 [`doc review`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/doc-review.md) 会将每个文本块与基础文档进行比对,直接跳过已翻译或未更改的块。
43
+ - **超大 JSON 自动分块(Chunking)**,使其始终处于上下文窗口的最佳处理区间内。
44
+ - **扁平化与重构 JSON** 以优化 Token 消耗。
45
+ - **插入自定义 Prompt** 以适配品牌与术语规则(`applicationContext`, `--custom-instructions`),只需编写一次,无需在每次对话中反复传递。
46
+ - **校验数据结构**以确保一致性并防止键名漂移,同时完整保留原始排版格式(Markdown、HTML、插值、复数等)。
47
+ - **内置重试机制**以应对输出格式错误。
48
+ - **请求排队与并行处理**跨文件、分块和语言环境,显著提高翻译速度。
49
+
50
+ 所有这些工作都不会占用 Agent 的上下文。黄金法则是:让 Agent 决定**需要国际化什么**,而让 Intlayer 处理繁重的重复性流水线。
51
+
52
+ ## 解决方案
53
+
54
+ ### 1. 将提取工作委托给 `intlayer extract`
55
+
56
+ 无需让 Agent 手动重写每个组件,直接运行 [`extract`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 命令即可。它会将硬编码字符串提取到组件同目录下的 `.content` 文件中,而不会将完整文件加载到 Agent 上下文中。
57
+
58
+ ```bash
59
+ npx intlayer extract --file src/components/Header.tsx
60
+ ```
61
+
62
+ ### 2. 将翻译工作委托给 `intlayer fill`
63
+
64
+ 切勿让 Agent 直接进行翻译。[`fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/fill.md) 命令会自动应用上述流水线:只发送缺失的键、进行分块、并行处理各个语言环境,并将结果写回内容文件中。
65
+
66
+ ```bash
67
+ npx intlayer fill
68
+ ```
69
+
70
+ 通过几个参数可以精简执行范围:
71
+
72
+ - `--git-diff`(或 `--uncommitted`)仅处理当前分支中发生更改的字典。
73
+ - `--file` 或 `--keys` 针对特定的内容文件。
74
+ - `--output-locales fr es` 仅限制在当前实际需要的语言环境中。
75
+ - `--skip-metadata` 跳过标题、描述和标签的生成。
76
+ - `--data-serialization toon` 向模型发送更紧凑的数据格式(更少的 Token,输出略微不可控)。
77
+
78
+ ```bash
79
+ npx intlayer fill --git-diff --output-locales fr es --skip-metadata
80
+ ```
81
+
82
+ ### 3. 使用 `doc translate` 与 `doc review` 翻译 Markdown
83
+
84
+ 让 Agent 翻译 `.md` 文件意味着每次修改都要在每个语言环境中粘贴整个文档。而 [`doc translate`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/doc-translate.md) 和 [`doc review`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/doc-review.md) 命令则是按文本块逐步处理的。
85
+
86
+ 当目标翻译文件尚不存在时,使用 `doc translate`。它会将 Markdown 分块、并行翻译并写入目标文件:
87
+
88
+ ```bash
89
+ npx intlayer doc translate --doc-pattern "docs/**/*.md" --base-locale en --locales fr es
90
+ ```
91
+
92
+ 当翻译文件已存在时,使用 `doc review`。它会将每个块与基础文档对比,跳过已翻译或未更改的块,仅发送有差异的块:
93
+
94
+ ```bash
95
+ npx intlayer doc review --doc-pattern "docs/**/*.md" --base-locale en --locales fr es
96
+ ```
97
+
98
+ 这两个命令均支持一次性设置规则,无需在每次提示词中重复:
99
+
100
+ ```bash
101
+ npx intlayer doc translate --custom-instructions "Do not translate URLs. Keep the markdown structure and the code blocks untouched."
102
+ ```
103
+
104
+ 在需要 Agent 参与但无需 Intlayer 发起 AI 调用的场景下,`doc review` 的两种模式非常实用:
105
+
106
+ - `--mode report` 输出需要关注的文本块及行号,让 Agent 仅修改这些特定块。
107
+ - `--mode synthesis` 仅输出哪些文档是最新的,哪些文档仍有待编辑的块。
108
+
109
+ ```bash
110
+ npx intlayer doc review --mode report --locales fr
111
+ ```
112
+
113
+ ### 4. 让 Agent 通过 MCP 服务调用 CLI
114
+
115
+ 借助 [Intlayer MCP 服务](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/mcp_server.md),Agent 可以依据最新的文档回答,并自行执行 `intlayer fill` 或 `intlayer doc review`,而无需在对话中重新实现这些逻辑。
116
+
117
+ ```bash
118
+ claude mcp add intlayer npx -y @intlayer/mcp
119
+ ```
120
+
121
+ 通过 `npx intlayer init skills` 安装 [Agent Skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/agent_skills.md),还可以避免 Agent 盲目猜测 Intlayer API 或在每个任务中重复阅读文档。
122
+
123
+ ### 5. 通过 `claude setup-token` 复用 Claude 订阅
124
+
125
+ 在交互式 Claude Code 会话中运行国际化设置会将整个对话历史保留在上下文中。将繁重的工作移至简短的无头(Headless)会话中执行:
126
+
127
+ 从 Claude 订阅中生成长效 Token:
128
+
129
+ ```bash
130
+ claude setup-token
131
+ ```
132
+
133
+ 将其存储为 `CLAUDE_CODE_OAUTH_TOKEN`(保存在 `.env` 文件或 CI 环境变量中),然后在单次会话中复用它以运行 Intlayer 命令:
134
+
135
+ ```bash
136
+ CLAUDE_CODE_OAUTH_TOKEN=... claude -p "Run npx intlayer extract on src/components, then npx intlayer fill --uncommitted"
137
+ ```
138
+
139
+ 该会话仅包含该 Prompt 和命令输出,无需携带冗长的对话上下文。同一个 Token 也可以在 [Claude Code GitHub Action](https://github.com/anthropics/claude-code-action) 中使用,从而在每次 Pull Request 时运行 `intlayer fill`。
140
+
141
+ > 通过 `claude setup-token` 颁发的 Token 仅用于 Claude Code 认证。它不能在 `ai.apiKey` 中作为 Anthropic API Key 使用。对于翻译本身,`intlayer fill` 会使用您的 [Intlayer 账户](https://app.intlayer.org)(包含免费额度)或在 [`ai`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md#ai-configuration) 中配置的专属模型 Key。
142
+
143
+ ## 总结
144
+
145
+ | 任务 | 执行者 | Agent 上下文中的 Token 消耗 |
146
+ | ------------------ | ------------------------ | --------------------------- |
147
+ | 决定要本地化的内容 | Claude Code | 低 |
148
+ | 提取文本字符串 | `intlayer extract` | 无 |
149
+ | 翻译声明内容 | `intlayer fill` | 无 |
150
+ | 翻译 Markdown 文档 | `intlayer doc translate` | 无 |
151
+ | 更新 Markdown 文档 | `intlayer doc review` | 无 |
152
+ | 批量执行命令 | Headless Claude Code | 仅 Prompt + 命令输出 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/docs",
3
- "version": "9.5.1",
3
+ "version": "9.5.3",
4
4
  "private": false,
5
5
  "description": "Intlayer documentation",
6
6
  "keywords": [
@@ -73,14 +73,14 @@
73
73
  "watch": "webpack --config ./webpack.config.ts --watch"
74
74
  },
75
75
  "dependencies": {
76
- "@intlayer/config": "9.5.1",
77
- "@intlayer/core": "9.5.1",
78
- "@intlayer/types": "9.5.1"
76
+ "@intlayer/config": "9.5.3",
77
+ "@intlayer/core": "9.5.3",
78
+ "@intlayer/types": "9.5.3"
79
79
  },
80
80
  "devDependencies": {
81
- "@intlayer/api": "9.5.1",
82
- "@intlayer/cli": "9.5.1",
83
- "@types/node": "26.5.0",
81
+ "@intlayer/api": "9.5.3",
82
+ "@intlayer/cli": "9.5.3",
83
+ "@types/node": "^22",
84
84
  "@utils/ts-config": "1.0.4",
85
85
  "@utils/ts-config-types": "1.0.4",
86
86
  "@utils/tsdown-config": "1.0.4",
@@ -145,6 +145,26 @@ export const blogEntry = {
145
145
  vi: readLocale('detecting_missing_translations.md', 'vi'),
146
146
  uk: readLocale('detecting_missing_translations.md', 'uk'),
147
147
  } as unknown as Record<LocalesValues, Promise<string>>,
148
+ './blog/en/history_of_i18n.md': {
149
+ en: readLocale('history_of_i18n.md', 'en'),
150
+ es: readLocale('history_of_i18n.md', 'es'),
151
+ ru: readLocale('history_of_i18n.md', 'ru'),
152
+ ja: readLocale('history_of_i18n.md', 'ja'),
153
+ fr: readLocale('history_of_i18n.md', 'fr'),
154
+ ko: readLocale('history_of_i18n.md', 'ko'),
155
+ zh: readLocale('history_of_i18n.md', 'zh'),
156
+ de: readLocale('history_of_i18n.md', 'de'),
157
+ ar: readLocale('history_of_i18n.md', 'ar'),
158
+ it: readLocale('history_of_i18n.md', 'it'),
159
+ 'en-GB': readLocale('history_of_i18n.md', 'en-GB'),
160
+ pt: readLocale('history_of_i18n.md', 'pt'),
161
+ hi: readLocale('history_of_i18n.md', 'hi'),
162
+ tr: readLocale('history_of_i18n.md', 'tr'),
163
+ pl: readLocale('history_of_i18n.md', 'pl'),
164
+ id: readLocale('history_of_i18n.md', 'id'),
165
+ vi: readLocale('history_of_i18n.md', 'vi'),
166
+ uk: readLocale('history_of_i18n.md', 'uk'),
167
+ } as unknown as Record<LocalesValues, Promise<string>>,
148
168
  './blog/en/hreflang_guide_multilingual_seo.md': {
149
169
  en: readLocale('hreflang_guide_multilingual_seo.md', 'en'),
150
170
  es: readLocale('hreflang_guide_multilingual_seo.md', 'es'),
@@ -265,6 +285,46 @@ export const blogEntry = {
265
285
  vi: readLocale('i18n_using_next-intl.md', 'vi'),
266
286
  uk: readLocale('i18n_using_next-intl.md', 'uk'),
267
287
  } as unknown as Record<LocalesValues, Promise<string>>,
288
+ './blog/en/i18next_vs_intlayer-i18next.md': {
289
+ en: readLocale('i18next_vs_intlayer-i18next.md', 'en'),
290
+ es: readLocale('i18next_vs_intlayer-i18next.md', 'es'),
291
+ ru: readLocale('i18next_vs_intlayer-i18next.md', 'ru'),
292
+ ja: readLocale('i18next_vs_intlayer-i18next.md', 'ja'),
293
+ fr: readLocale('i18next_vs_intlayer-i18next.md', 'fr'),
294
+ ko: readLocale('i18next_vs_intlayer-i18next.md', 'ko'),
295
+ zh: readLocale('i18next_vs_intlayer-i18next.md', 'zh'),
296
+ de: readLocale('i18next_vs_intlayer-i18next.md', 'de'),
297
+ ar: readLocale('i18next_vs_intlayer-i18next.md', 'ar'),
298
+ it: readLocale('i18next_vs_intlayer-i18next.md', 'it'),
299
+ 'en-GB': readLocale('i18next_vs_intlayer-i18next.md', 'en-GB'),
300
+ pt: readLocale('i18next_vs_intlayer-i18next.md', 'pt'),
301
+ hi: readLocale('i18next_vs_intlayer-i18next.md', 'hi'),
302
+ tr: readLocale('i18next_vs_intlayer-i18next.md', 'tr'),
303
+ pl: readLocale('i18next_vs_intlayer-i18next.md', 'pl'),
304
+ id: readLocale('i18next_vs_intlayer-i18next.md', 'id'),
305
+ vi: readLocale('i18next_vs_intlayer-i18next.md', 'vi'),
306
+ uk: readLocale('i18next_vs_intlayer-i18next.md', 'uk'),
307
+ } as unknown as Record<LocalesValues, Promise<string>>,
308
+ './blog/en/i18next_vs_intlayer.md': {
309
+ en: readLocale('i18next_vs_intlayer.md', 'en'),
310
+ es: readLocale('i18next_vs_intlayer.md', 'es'),
311
+ ru: readLocale('i18next_vs_intlayer.md', 'ru'),
312
+ ja: readLocale('i18next_vs_intlayer.md', 'ja'),
313
+ fr: readLocale('i18next_vs_intlayer.md', 'fr'),
314
+ ko: readLocale('i18next_vs_intlayer.md', 'ko'),
315
+ zh: readLocale('i18next_vs_intlayer.md', 'zh'),
316
+ de: readLocale('i18next_vs_intlayer.md', 'de'),
317
+ ar: readLocale('i18next_vs_intlayer.md', 'ar'),
318
+ it: readLocale('i18next_vs_intlayer.md', 'it'),
319
+ 'en-GB': readLocale('i18next_vs_intlayer.md', 'en-GB'),
320
+ pt: readLocale('i18next_vs_intlayer.md', 'pt'),
321
+ hi: readLocale('i18next_vs_intlayer.md', 'hi'),
322
+ tr: readLocale('i18next_vs_intlayer.md', 'tr'),
323
+ pl: readLocale('i18next_vs_intlayer.md', 'pl'),
324
+ id: readLocale('i18next_vs_intlayer.md', 'id'),
325
+ vi: readLocale('i18next_vs_intlayer.md', 'vi'),
326
+ uk: readLocale('i18next_vs_intlayer.md', 'uk'),
327
+ } as unknown as Record<LocalesValues, Promise<string>>,
268
328
  './blog/en/icu_message_format.md': {
269
329
  en: readLocale('icu_message_format.md', 'en'),
270
330
  es: readLocale('icu_message_format.md', 'es'),
@@ -565,6 +625,46 @@ export const blogEntry = {
565
625
  vi: readLocale('l10n_platform_alternative/phrase.md', 'vi'),
566
626
  uk: readLocale('l10n_platform_alternative/phrase.md', 'uk'),
567
627
  } as unknown as Record<LocalesValues, Promise<string>>,
628
+ './blog/en/lingui_vs_intlayer-lingui.md': {
629
+ en: readLocale('lingui_vs_intlayer-lingui.md', 'en'),
630
+ es: readLocale('lingui_vs_intlayer-lingui.md', 'es'),
631
+ ru: readLocale('lingui_vs_intlayer-lingui.md', 'ru'),
632
+ ja: readLocale('lingui_vs_intlayer-lingui.md', 'ja'),
633
+ fr: readLocale('lingui_vs_intlayer-lingui.md', 'fr'),
634
+ ko: readLocale('lingui_vs_intlayer-lingui.md', 'ko'),
635
+ zh: readLocale('lingui_vs_intlayer-lingui.md', 'zh'),
636
+ de: readLocale('lingui_vs_intlayer-lingui.md', 'de'),
637
+ ar: readLocale('lingui_vs_intlayer-lingui.md', 'ar'),
638
+ it: readLocale('lingui_vs_intlayer-lingui.md', 'it'),
639
+ 'en-GB': readLocale('lingui_vs_intlayer-lingui.md', 'en-GB'),
640
+ pt: readLocale('lingui_vs_intlayer-lingui.md', 'pt'),
641
+ hi: readLocale('lingui_vs_intlayer-lingui.md', 'hi'),
642
+ tr: readLocale('lingui_vs_intlayer-lingui.md', 'tr'),
643
+ pl: readLocale('lingui_vs_intlayer-lingui.md', 'pl'),
644
+ id: readLocale('lingui_vs_intlayer-lingui.md', 'id'),
645
+ vi: readLocale('lingui_vs_intlayer-lingui.md', 'vi'),
646
+ uk: readLocale('lingui_vs_intlayer-lingui.md', 'uk'),
647
+ } as unknown as Record<LocalesValues, Promise<string>>,
648
+ './blog/en/lingui_vs_intlayer.md': {
649
+ en: readLocale('lingui_vs_intlayer.md', 'en'),
650
+ es: readLocale('lingui_vs_intlayer.md', 'es'),
651
+ ru: readLocale('lingui_vs_intlayer.md', 'ru'),
652
+ ja: readLocale('lingui_vs_intlayer.md', 'ja'),
653
+ fr: readLocale('lingui_vs_intlayer.md', 'fr'),
654
+ ko: readLocale('lingui_vs_intlayer.md', 'ko'),
655
+ zh: readLocale('lingui_vs_intlayer.md', 'zh'),
656
+ de: readLocale('lingui_vs_intlayer.md', 'de'),
657
+ ar: readLocale('lingui_vs_intlayer.md', 'ar'),
658
+ it: readLocale('lingui_vs_intlayer.md', 'it'),
659
+ 'en-GB': readLocale('lingui_vs_intlayer.md', 'en-GB'),
660
+ pt: readLocale('lingui_vs_intlayer.md', 'pt'),
661
+ hi: readLocale('lingui_vs_intlayer.md', 'hi'),
662
+ tr: readLocale('lingui_vs_intlayer.md', 'tr'),
663
+ pl: readLocale('lingui_vs_intlayer.md', 'pl'),
664
+ id: readLocale('lingui_vs_intlayer.md', 'id'),
665
+ vi: readLocale('lingui_vs_intlayer.md', 'vi'),
666
+ uk: readLocale('lingui_vs_intlayer.md', 'uk'),
667
+ } as unknown as Record<LocalesValues, Promise<string>>,
568
668
  './blog/en/list_i18n_technologies/build-tools/vite.md': {
569
669
  en: readLocale('list_i18n_technologies/build-tools/vite.md', 'en'),
570
670
  es: readLocale('list_i18n_technologies/build-tools/vite.md', 'es'),
@@ -860,6 +960,46 @@ export const blogEntry = {
860
960
  vi: readLocale('next-i18next_vs_next-intl_vs_intlayer.md', 'vi'),
861
961
  uk: readLocale('next-i18next_vs_next-intl_vs_intlayer.md', 'uk'),
862
962
  } as unknown as Record<LocalesValues, Promise<string>>,
963
+ './blog/en/next-intl_vs_intlayer-next-intl.md': {
964
+ en: readLocale('next-intl_vs_intlayer-next-intl.md', 'en'),
965
+ es: readLocale('next-intl_vs_intlayer-next-intl.md', 'es'),
966
+ ru: readLocale('next-intl_vs_intlayer-next-intl.md', 'ru'),
967
+ ja: readLocale('next-intl_vs_intlayer-next-intl.md', 'ja'),
968
+ fr: readLocale('next-intl_vs_intlayer-next-intl.md', 'fr'),
969
+ ko: readLocale('next-intl_vs_intlayer-next-intl.md', 'ko'),
970
+ zh: readLocale('next-intl_vs_intlayer-next-intl.md', 'zh'),
971
+ de: readLocale('next-intl_vs_intlayer-next-intl.md', 'de'),
972
+ ar: readLocale('next-intl_vs_intlayer-next-intl.md', 'ar'),
973
+ it: readLocale('next-intl_vs_intlayer-next-intl.md', 'it'),
974
+ 'en-GB': readLocale('next-intl_vs_intlayer-next-intl.md', 'en-GB'),
975
+ pt: readLocale('next-intl_vs_intlayer-next-intl.md', 'pt'),
976
+ hi: readLocale('next-intl_vs_intlayer-next-intl.md', 'hi'),
977
+ tr: readLocale('next-intl_vs_intlayer-next-intl.md', 'tr'),
978
+ pl: readLocale('next-intl_vs_intlayer-next-intl.md', 'pl'),
979
+ id: readLocale('next-intl_vs_intlayer-next-intl.md', 'id'),
980
+ vi: readLocale('next-intl_vs_intlayer-next-intl.md', 'vi'),
981
+ uk: readLocale('next-intl_vs_intlayer-next-intl.md', 'uk'),
982
+ } as unknown as Record<LocalesValues, Promise<string>>,
983
+ './blog/en/next-intl_vs_intlayer.md': {
984
+ en: readLocale('next-intl_vs_intlayer.md', 'en'),
985
+ es: readLocale('next-intl_vs_intlayer.md', 'es'),
986
+ ru: readLocale('next-intl_vs_intlayer.md', 'ru'),
987
+ ja: readLocale('next-intl_vs_intlayer.md', 'ja'),
988
+ fr: readLocale('next-intl_vs_intlayer.md', 'fr'),
989
+ ko: readLocale('next-intl_vs_intlayer.md', 'ko'),
990
+ zh: readLocale('next-intl_vs_intlayer.md', 'zh'),
991
+ de: readLocale('next-intl_vs_intlayer.md', 'de'),
992
+ ar: readLocale('next-intl_vs_intlayer.md', 'ar'),
993
+ it: readLocale('next-intl_vs_intlayer.md', 'it'),
994
+ 'en-GB': readLocale('next-intl_vs_intlayer.md', 'en-GB'),
995
+ pt: readLocale('next-intl_vs_intlayer.md', 'pt'),
996
+ hi: readLocale('next-intl_vs_intlayer.md', 'hi'),
997
+ tr: readLocale('next-intl_vs_intlayer.md', 'tr'),
998
+ pl: readLocale('next-intl_vs_intlayer.md', 'pl'),
999
+ id: readLocale('next-intl_vs_intlayer.md', 'id'),
1000
+ vi: readLocale('next-intl_vs_intlayer.md', 'vi'),
1001
+ uk: readLocale('next-intl_vs_intlayer.md', 'uk'),
1002
+ } as unknown as Record<LocalesValues, Promise<string>>,
863
1003
  './blog/en/nextjs-multilingual-seo-comparison.md': {
864
1004
  en: readLocale('nextjs-multilingual-seo-comparison.md', 'en'),
865
1005
  es: readLocale('nextjs-multilingual-seo-comparison.md', 'es'),
@@ -986,6 +1126,26 @@ export const blogEntry = {
986
1126
  vi: readLocale('transform_existing_vite_react_app_using_compiler.md', 'vi'),
987
1127
  uk: readLocale('transform_existing_vite_react_app_using_compiler.md', 'uk'),
988
1128
  } as unknown as Record<LocalesValues, Promise<string>>,
1129
+ './blog/en/vue-i18n_vs_intlayer-vue-i18n.md': {
1130
+ en: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'en'),
1131
+ es: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'es'),
1132
+ ru: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'ru'),
1133
+ ja: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'ja'),
1134
+ fr: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'fr'),
1135
+ ko: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'ko'),
1136
+ zh: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'zh'),
1137
+ de: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'de'),
1138
+ ar: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'ar'),
1139
+ it: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'it'),
1140
+ 'en-GB': readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'en-GB'),
1141
+ pt: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'pt'),
1142
+ hi: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'hi'),
1143
+ tr: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'tr'),
1144
+ pl: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'pl'),
1145
+ id: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'id'),
1146
+ vi: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'vi'),
1147
+ uk: readLocale('vue-i18n_vs_intlayer-vue-i18n.md', 'uk'),
1148
+ } as unknown as Record<LocalesValues, Promise<string>>,
989
1149
  './blog/en/vue-i18n_vs_intlayer.md': {
990
1150
  en: readLocale('vue-i18n_vs_intlayer.md', 'en'),
991
1151
  es: readLocale('vue-i18n_vs_intlayer.md', 'es'),
@@ -1006,6 +1166,26 @@ export const blogEntry = {
1006
1166
  vi: readLocale('vue-i18n_vs_intlayer.md', 'vi'),
1007
1167
  uk: readLocale('vue-i18n_vs_intlayer.md', 'uk'),
1008
1168
  } as unknown as Record<LocalesValues, Promise<string>>,
1169
+ './blog/en/vue-i18n_vs_intlayer_benchmark.md': {
1170
+ en: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'en'),
1171
+ es: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'es'),
1172
+ ru: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'ru'),
1173
+ ja: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'ja'),
1174
+ fr: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'fr'),
1175
+ ko: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'ko'),
1176
+ zh: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'zh'),
1177
+ de: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'de'),
1178
+ ar: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'ar'),
1179
+ it: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'it'),
1180
+ 'en-GB': readLocale('vue-i18n_vs_intlayer_benchmark.md', 'en-GB'),
1181
+ pt: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'pt'),
1182
+ hi: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'hi'),
1183
+ tr: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'tr'),
1184
+ pl: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'pl'),
1185
+ id: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'id'),
1186
+ vi: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'vi'),
1187
+ uk: readLocale('vue-i18n_vs_intlayer_benchmark.md', 'uk'),
1188
+ } as unknown as Record<LocalesValues, Promise<string>>,
1009
1189
  './blog/en/what_is_internationalization.md': {
1010
1190
  en: readLocale('what_is_internationalization.md', 'en'),
1011
1191
  es: readLocale('what_is_internationalization.md', 'es'),
@@ -325,26 +325,6 @@ export const docsEntry = {
325
325
  vi: readLocale('cli/build.md', 'vi'),
326
326
  uk: readLocale('cli/build.md', 'uk'),
327
327
  } as unknown as Record<LocalesValues, Promise<string>>,
328
- './docs/en/cli/ci.md': {
329
- en: readLocale('cli/ci.md', 'en'),
330
- es: readLocale('cli/ci.md', 'es'),
331
- ru: readLocale('cli/ci.md', 'ru'),
332
- ja: readLocale('cli/ci.md', 'ja'),
333
- fr: readLocale('cli/ci.md', 'fr'),
334
- ko: readLocale('cli/ci.md', 'ko'),
335
- zh: readLocale('cli/ci.md', 'zh'),
336
- de: readLocale('cli/ci.md', 'de'),
337
- ar: readLocale('cli/ci.md', 'ar'),
338
- it: readLocale('cli/ci.md', 'it'),
339
- 'en-GB': readLocale('cli/ci.md', 'en-GB'),
340
- pt: readLocale('cli/ci.md', 'pt'),
341
- hi: readLocale('cli/ci.md', 'hi'),
342
- tr: readLocale('cli/ci.md', 'tr'),
343
- pl: readLocale('cli/ci.md', 'pl'),
344
- id: readLocale('cli/ci.md', 'id'),
345
- vi: readLocale('cli/ci.md', 'vi'),
346
- uk: readLocale('cli/ci.md', 'uk'),
347
- } as unknown as Record<LocalesValues, Promise<string>>,
348
328
  './docs/en/cli/configuration.md': {
349
329
  en: readLocale('cli/configuration.md', 'en'),
350
330
  es: readLocale('cli/configuration.md', 'es'),
@@ -191,6 +191,26 @@ export const frequentQuestionsEntry = {
191
191
  vi: readLocale('bun_set_up.md', 'vi'),
192
192
  uk: readLocale('bun_set_up.md', 'uk'),
193
193
  } as unknown as Record<LocalesValues, Promise<string>>,
194
+ './frequent_questions/en/claude_code_token_consumption.md': {
195
+ en: readLocale('claude_code_token_consumption.md', 'en'),
196
+ es: readLocale('claude_code_token_consumption.md', 'es'),
197
+ ru: readLocale('claude_code_token_consumption.md', 'ru'),
198
+ ja: readLocale('claude_code_token_consumption.md', 'ja'),
199
+ fr: readLocale('claude_code_token_consumption.md', 'fr'),
200
+ ko: readLocale('claude_code_token_consumption.md', 'ko'),
201
+ zh: readLocale('claude_code_token_consumption.md', 'zh'),
202
+ de: readLocale('claude_code_token_consumption.md', 'de'),
203
+ ar: readLocale('claude_code_token_consumption.md', 'ar'),
204
+ it: readLocale('claude_code_token_consumption.md', 'it'),
205
+ 'en-GB': readLocale('claude_code_token_consumption.md', 'en-GB'),
206
+ pt: readLocale('claude_code_token_consumption.md', 'pt'),
207
+ hi: readLocale('claude_code_token_consumption.md', 'hi'),
208
+ tr: readLocale('claude_code_token_consumption.md', 'tr'),
209
+ pl: readLocale('claude_code_token_consumption.md', 'pl'),
210
+ id: readLocale('claude_code_token_consumption.md', 'id'),
211
+ vi: readLocale('claude_code_token_consumption.md', 'vi'),
212
+ uk: readLocale('claude_code_token_consumption.md', 'uk'),
213
+ } as unknown as Record<LocalesValues, Promise<string>>,
194
214
  './frequent_questions/en/customized_locale_list.md': {
195
215
  en: readLocale('customized_locale_list.md', 'en'),
196
216
  es: readLocale('customized_locale_list.md', 'es'),