@intlayer/docs 9.5.6 → 9.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
  2. package/blog/ar/i18next_vs_intlayer.md +130 -16
  3. package/blog/ar/lingui_vs_intlayer.md +122 -15
  4. package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
  5. package/blog/ar/next-intl_vs_intlayer.md +136 -20
  6. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
  7. package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
  8. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
  9. package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
  10. package/blog/de/i18next_vs_intlayer.md +128 -14
  11. package/blog/de/lingui_vs_intlayer.md +122 -15
  12. package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
  13. package/blog/de/next-intl_vs_intlayer.md +125 -15
  14. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  15. package/blog/de/vue-i18n_vs_intlayer.md +193 -31
  16. package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
  17. package/blog/en/i18next_vs_intlayer.md +128 -14
  18. package/blog/en/lingui_vs_intlayer.md +124 -15
  19. package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
  20. package/blog/en/next-intl_vs_intlayer.md +125 -13
  21. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
  22. package/blog/en/vue-i18n_vs_intlayer.md +188 -27
  23. package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
  24. package/blog/en-GB/i18next_vs_intlayer.md +128 -14
  25. package/blog/en-GB/lingui_vs_intlayer.md +122 -15
  26. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
  27. package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
  28. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  29. package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
  30. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
  31. package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
  32. package/blog/es/i18next_vs_intlayer.md +128 -14
  33. package/blog/es/lingui_vs_intlayer.md +122 -15
  34. package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
  35. package/blog/es/next-intl_vs_intlayer.md +125 -15
  36. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  37. package/blog/es/vue-i18n_vs_intlayer.md +193 -31
  38. package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
  39. package/blog/fr/i18next_vs_intlayer.md +128 -14
  40. package/blog/fr/lingui_vs_intlayer.md +122 -15
  41. package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
  42. package/blog/fr/next-intl_vs_intlayer.md +127 -15
  43. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
  44. package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
  45. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
  46. package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
  47. package/blog/hi/i18next_vs_intlayer.md +130 -16
  48. package/blog/hi/lingui_vs_intlayer.md +122 -15
  49. package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
  50. package/blog/hi/next-intl_vs_intlayer.md +135 -19
  51. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  52. package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
  53. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  54. package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
  55. package/blog/id/i18next_vs_intlayer.md +128 -14
  56. package/blog/id/lingui_vs_intlayer.md +122 -15
  57. package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
  58. package/blog/id/next-intl_vs_intlayer.md +135 -19
  59. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
  60. package/blog/id/vue-i18n_vs_intlayer.md +188 -26
  61. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
  62. package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
  63. package/blog/it/i18next_vs_intlayer.md +128 -14
  64. package/blog/it/lingui_vs_intlayer.md +122 -15
  65. package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
  66. package/blog/it/next-intl_vs_intlayer.md +125 -15
  67. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  68. package/blog/it/vue-i18n_vs_intlayer.md +191 -31
  69. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
  70. package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
  71. package/blog/ja/i18next_vs_intlayer.md +129 -17
  72. package/blog/ja/lingui_vs_intlayer.md +122 -15
  73. package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
  74. package/blog/ja/next-intl_vs_intlayer.md +124 -14
  75. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  76. package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
  77. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
  78. package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
  79. package/blog/ko/i18next_vs_intlayer.md +129 -17
  80. package/blog/ko/lingui_vs_intlayer.md +122 -15
  81. package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
  82. package/blog/ko/next-intl_vs_intlayer.md +134 -18
  83. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  84. package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
  85. package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
  86. package/blog/pl/i18next_vs_intlayer.md +128 -14
  87. package/blog/pl/lingui_vs_intlayer.md +122 -15
  88. package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
  89. package/blog/pl/next-intl_vs_intlayer.md +134 -18
  90. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  91. package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
  92. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
  93. package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
  94. package/blog/pt/i18next_vs_intlayer.md +128 -14
  95. package/blog/pt/lingui_vs_intlayer.md +122 -15
  96. package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
  97. package/blog/pt/next-intl_vs_intlayer.md +131 -15
  98. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  99. package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
  100. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
  101. package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
  102. package/blog/ru/i18next_vs_intlayer.md +130 -16
  103. package/blog/ru/lingui_vs_intlayer.md +122 -15
  104. package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
  105. package/blog/ru/next-intl_vs_intlayer.md +123 -13
  106. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
  107. package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
  108. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
  109. package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
  110. package/blog/tr/i18next_vs_intlayer.md +128 -14
  111. package/blog/tr/lingui_vs_intlayer.md +122 -15
  112. package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
  113. package/blog/tr/next-intl_vs_intlayer.md +136 -20
  114. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  115. package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
  116. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
  117. package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
  118. package/blog/uk/i18next_vs_intlayer.md +130 -16
  119. package/blog/uk/lingui_vs_intlayer.md +122 -15
  120. package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
  121. package/blog/uk/next-intl_vs_intlayer.md +135 -19
  122. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
  123. package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
  124. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
  125. package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
  126. package/blog/vi/i18next_vs_intlayer.md +128 -14
  127. package/blog/vi/lingui_vs_intlayer.md +122 -15
  128. package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
  129. package/blog/vi/next-intl_vs_intlayer.md +135 -19
  130. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  131. package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
  132. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  133. package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
  134. package/blog/zh/i18next_vs_intlayer.md +128 -14
  135. package/blog/zh/lingui_vs_intlayer.md +122 -15
  136. package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
  137. package/blog/zh/next-intl_vs_intlayer.md +125 -15
  138. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  139. package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
  140. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
  141. package/dist/cjs/generated/docs.entry.cjs +40 -40
  142. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  143. package/dist/cjs/index.cjs +2 -2
  144. package/dist/esm/generated/docs.entry.mjs +40 -40
  145. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  146. package/dist/esm/index.mjs +2 -2
  147. package/dist/types/generated/docs.entry.d.ts +2 -2
  148. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  149. package/docs/ar/benchmark/nextjs.md +13 -13
  150. package/docs/ar/benchmark/solid.md +5 -5
  151. package/docs/ar/benchmark/svelte.md +4 -4
  152. package/docs/ar/benchmark/tanstack.md +14 -13
  153. package/docs/ar/benchmark/vue.md +5 -5
  154. package/docs/ar/chrome_extension.md +130 -0
  155. package/docs/ar/cli/index.md +6 -1
  156. package/docs/ar/cli/infra.md +162 -0
  157. package/docs/ar/cli/init.md +24 -1
  158. package/docs/ar/dictionary/html.md +173 -5
  159. package/docs/ar/dictionary/markdown.md +263 -1
  160. package/docs/ar/intlayer_with_analog.md +23 -1
  161. package/docs/ar/intlayer_with_angular_19.md +24 -1
  162. package/docs/ar/intlayer_with_angular_21.md +24 -1
  163. package/docs/ar/intlayer_with_astro.md +24 -1
  164. package/docs/ar/intlayer_with_astro_lit.md +25 -1
  165. package/docs/ar/intlayer_with_astro_preact.md +26 -1
  166. package/docs/ar/intlayer_with_astro_react.md +26 -1
  167. package/docs/ar/intlayer_with_astro_solid.md +26 -1
  168. package/docs/ar/intlayer_with_astro_svelte.md +25 -1
  169. package/docs/ar/intlayer_with_astro_vue.md +25 -1
  170. package/docs/ar/intlayer_with_remix_3.md +22 -1
  171. package/docs/ar/self_hosting.md +406 -231
  172. package/docs/de/benchmark/nextjs.md +13 -13
  173. package/docs/de/benchmark/solid.md +5 -5
  174. package/docs/de/benchmark/svelte.md +4 -4
  175. package/docs/de/benchmark/tanstack.md +14 -13
  176. package/docs/de/benchmark/vue.md +5 -5
  177. package/docs/de/chrome_extension.md +130 -0
  178. package/docs/de/cli/index.md +6 -1
  179. package/docs/de/cli/infra.md +162 -0
  180. package/docs/de/cli/init.md +24 -1
  181. package/docs/de/dictionary/html.md +173 -5
  182. package/docs/de/dictionary/markdown.md +263 -1
  183. package/docs/de/intlayer_with_analog.md +23 -1
  184. package/docs/de/intlayer_with_angular_19.md +24 -1
  185. package/docs/de/intlayer_with_angular_21.md +24 -1
  186. package/docs/de/intlayer_with_astro.md +24 -1
  187. package/docs/de/intlayer_with_astro_lit.md +25 -1
  188. package/docs/de/intlayer_with_astro_preact.md +26 -1
  189. package/docs/de/intlayer_with_astro_react.md +26 -1
  190. package/docs/de/intlayer_with_astro_solid.md +26 -1
  191. package/docs/de/intlayer_with_astro_svelte.md +25 -1
  192. package/docs/de/intlayer_with_astro_vue.md +25 -1
  193. package/docs/de/intlayer_with_remix_3.md +22 -1
  194. package/docs/de/self_hosting.md +404 -227
  195. package/docs/en/benchmark/nextjs.md +13 -13
  196. package/docs/en/benchmark/solid.md +5 -5
  197. package/docs/en/benchmark/svelte.md +4 -4
  198. package/docs/en/benchmark/tanstack.md +14 -13
  199. package/docs/en/benchmark/vue.md +5 -5
  200. package/docs/en/chrome_extension.md +130 -0
  201. package/docs/en/cli/index.md +6 -1
  202. package/docs/en/cli/infra.md +175 -0
  203. package/docs/en/cli/init.md +25 -1
  204. package/docs/en/dictionary/html.md +173 -5
  205. package/docs/en/dictionary/markdown.md +263 -1
  206. package/docs/en/intlayer_with_analog.md +23 -1
  207. package/docs/en/intlayer_with_angular_19.md +24 -1
  208. package/docs/en/intlayer_with_angular_21.md +24 -1
  209. package/docs/en/intlayer_with_astro.md +24 -1
  210. package/docs/en/intlayer_with_astro_lit.md +25 -1
  211. package/docs/en/intlayer_with_astro_preact.md +26 -1
  212. package/docs/en/intlayer_with_astro_react.md +26 -1
  213. package/docs/en/intlayer_with_astro_solid.md +26 -1
  214. package/docs/en/intlayer_with_astro_svelte.md +25 -1
  215. package/docs/en/intlayer_with_astro_vue.md +25 -1
  216. package/docs/en/intlayer_with_remix_3.md +22 -1
  217. package/docs/en/self_hosting.md +418 -176
  218. package/docs/en-GB/benchmark/nextjs.md +13 -13
  219. package/docs/en-GB/benchmark/solid.md +5 -5
  220. package/docs/en-GB/benchmark/svelte.md +4 -4
  221. package/docs/en-GB/benchmark/tanstack.md +14 -13
  222. package/docs/en-GB/benchmark/vue.md +5 -5
  223. package/docs/en-GB/chrome_extension.md +130 -0
  224. package/docs/en-GB/cli/index.md +6 -1
  225. package/docs/en-GB/cli/infra.md +162 -0
  226. package/docs/en-GB/cli/init.md +24 -1
  227. package/docs/en-GB/dictionary/html.md +173 -5
  228. package/docs/en-GB/dictionary/markdown.md +263 -1
  229. package/docs/en-GB/intlayer_with_analog.md +23 -1
  230. package/docs/en-GB/intlayer_with_angular_19.md +24 -1
  231. package/docs/en-GB/intlayer_with_angular_21.md +24 -1
  232. package/docs/en-GB/intlayer_with_astro.md +24 -1
  233. package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
  234. package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
  235. package/docs/en-GB/intlayer_with_astro_react.md +26 -1
  236. package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
  237. package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
  238. package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
  239. package/docs/en-GB/intlayer_with_remix_3.md +22 -1
  240. package/docs/en-GB/self_hosting.md +381 -206
  241. package/docs/es/benchmark/nextjs.md +13 -13
  242. package/docs/es/benchmark/solid.md +5 -5
  243. package/docs/es/benchmark/svelte.md +4 -4
  244. package/docs/es/benchmark/tanstack.md +14 -13
  245. package/docs/es/benchmark/vue.md +5 -5
  246. package/docs/es/chrome_extension.md +130 -0
  247. package/docs/es/cli/index.md +6 -1
  248. package/docs/es/cli/infra.md +162 -0
  249. package/docs/es/cli/init.md +24 -1
  250. package/docs/es/dictionary/html.md +173 -5
  251. package/docs/es/dictionary/markdown.md +263 -1
  252. package/docs/es/intlayer_with_analog.md +23 -1
  253. package/docs/es/intlayer_with_angular_19.md +24 -1
  254. package/docs/es/intlayer_with_angular_21.md +24 -1
  255. package/docs/es/intlayer_with_astro.md +24 -1
  256. package/docs/es/intlayer_with_astro_lit.md +25 -1
  257. package/docs/es/intlayer_with_astro_preact.md +26 -1
  258. package/docs/es/intlayer_with_astro_react.md +26 -1
  259. package/docs/es/intlayer_with_astro_solid.md +26 -1
  260. package/docs/es/intlayer_with_astro_svelte.md +25 -1
  261. package/docs/es/intlayer_with_astro_vue.md +25 -1
  262. package/docs/es/intlayer_with_remix_3.md +22 -1
  263. package/docs/es/self_hosting.md +400 -223
  264. package/docs/fr/benchmark/nextjs.md +13 -13
  265. package/docs/fr/benchmark/solid.md +5 -5
  266. package/docs/fr/benchmark/svelte.md +4 -4
  267. package/docs/fr/benchmark/tanstack.md +14 -13
  268. package/docs/fr/benchmark/vue.md +5 -5
  269. package/docs/fr/chrome_extension.md +130 -0
  270. package/docs/fr/cli/index.md +6 -1
  271. package/docs/fr/cli/infra.md +162 -0
  272. package/docs/fr/cli/init.md +24 -1
  273. package/docs/fr/dictionary/html.md +173 -5
  274. package/docs/fr/dictionary/markdown.md +265 -4
  275. package/docs/fr/intlayer_with_analog.md +23 -1
  276. package/docs/fr/intlayer_with_angular_19.md +24 -1
  277. package/docs/fr/intlayer_with_angular_21.md +24 -1
  278. package/docs/fr/intlayer_with_astro.md +24 -1
  279. package/docs/fr/intlayer_with_astro_lit.md +25 -1
  280. package/docs/fr/intlayer_with_astro_preact.md +26 -1
  281. package/docs/fr/intlayer_with_astro_react.md +26 -1
  282. package/docs/fr/intlayer_with_astro_solid.md +26 -1
  283. package/docs/fr/intlayer_with_astro_svelte.md +25 -1
  284. package/docs/fr/intlayer_with_astro_vue.md +25 -1
  285. package/docs/fr/intlayer_with_remix_3.md +22 -1
  286. package/docs/fr/self_hosting.md +401 -224
  287. package/docs/hi/benchmark/nextjs.md +13 -13
  288. package/docs/hi/benchmark/solid.md +5 -5
  289. package/docs/hi/benchmark/svelte.md +4 -4
  290. package/docs/hi/benchmark/tanstack.md +14 -13
  291. package/docs/hi/benchmark/vue.md +5 -5
  292. package/docs/hi/chrome_extension.md +130 -0
  293. package/docs/hi/cli/index.md +6 -1
  294. package/docs/hi/cli/infra.md +162 -0
  295. package/docs/hi/cli/init.md +24 -1
  296. package/docs/hi/dictionary/html.md +173 -5
  297. package/docs/hi/dictionary/markdown.md +263 -1
  298. package/docs/hi/intlayer_with_analog.md +23 -1
  299. package/docs/hi/intlayer_with_angular_19.md +24 -1
  300. package/docs/hi/intlayer_with_angular_21.md +24 -1
  301. package/docs/hi/intlayer_with_astro.md +24 -1
  302. package/docs/hi/intlayer_with_astro_lit.md +25 -1
  303. package/docs/hi/intlayer_with_astro_preact.md +26 -1
  304. package/docs/hi/intlayer_with_astro_react.md +26 -1
  305. package/docs/hi/intlayer_with_astro_solid.md +26 -1
  306. package/docs/hi/intlayer_with_astro_svelte.md +25 -1
  307. package/docs/hi/intlayer_with_astro_vue.md +25 -1
  308. package/docs/hi/intlayer_with_remix_3.md +22 -1
  309. package/docs/hi/self_hosting.md +409 -235
  310. package/docs/id/benchmark/nextjs.md +13 -13
  311. package/docs/id/benchmark/solid.md +5 -5
  312. package/docs/id/benchmark/svelte.md +4 -4
  313. package/docs/id/benchmark/tanstack.md +14 -13
  314. package/docs/id/benchmark/vue.md +5 -5
  315. package/docs/id/chrome_extension.md +130 -0
  316. package/docs/id/cli/index.md +6 -1
  317. package/docs/id/cli/infra.md +162 -0
  318. package/docs/id/cli/init.md +24 -1
  319. package/docs/id/dictionary/html.md +173 -5
  320. package/docs/id/dictionary/markdown.md +263 -1
  321. package/docs/id/intlayer_with_analog.md +23 -1
  322. package/docs/id/intlayer_with_angular_19.md +24 -1
  323. package/docs/id/intlayer_with_angular_21.md +24 -1
  324. package/docs/id/intlayer_with_astro.md +24 -1
  325. package/docs/id/intlayer_with_astro_lit.md +25 -1
  326. package/docs/id/intlayer_with_astro_preact.md +26 -1
  327. package/docs/id/intlayer_with_astro_react.md +26 -1
  328. package/docs/id/intlayer_with_astro_solid.md +26 -1
  329. package/docs/id/intlayer_with_astro_svelte.md +25 -1
  330. package/docs/id/intlayer_with_astro_vue.md +25 -1
  331. package/docs/id/intlayer_with_remix_3.md +22 -1
  332. package/docs/id/self_hosting.md +416 -243
  333. package/docs/it/benchmark/nextjs.md +13 -13
  334. package/docs/it/benchmark/solid.md +5 -5
  335. package/docs/it/benchmark/svelte.md +4 -4
  336. package/docs/it/benchmark/tanstack.md +14 -13
  337. package/docs/it/benchmark/vue.md +5 -5
  338. package/docs/it/chrome_extension.md +130 -0
  339. package/docs/it/cli/index.md +6 -1
  340. package/docs/it/cli/infra.md +162 -0
  341. package/docs/it/cli/init.md +24 -1
  342. package/docs/it/dictionary/html.md +173 -5
  343. package/docs/it/dictionary/markdown.md +263 -1
  344. package/docs/it/intlayer_with_analog.md +23 -1
  345. package/docs/it/intlayer_with_angular_19.md +24 -1
  346. package/docs/it/intlayer_with_angular_21.md +24 -1
  347. package/docs/it/intlayer_with_astro.md +24 -1
  348. package/docs/it/intlayer_with_astro_lit.md +25 -1
  349. package/docs/it/intlayer_with_astro_preact.md +26 -1
  350. package/docs/it/intlayer_with_astro_react.md +26 -1
  351. package/docs/it/intlayer_with_astro_solid.md +26 -1
  352. package/docs/it/intlayer_with_astro_svelte.md +25 -1
  353. package/docs/it/intlayer_with_astro_vue.md +25 -1
  354. package/docs/it/intlayer_with_remix_3.md +22 -1
  355. package/docs/it/self_hosting.md +412 -237
  356. package/docs/ja/benchmark/nextjs.md +13 -13
  357. package/docs/ja/benchmark/solid.md +5 -5
  358. package/docs/ja/benchmark/svelte.md +4 -4
  359. package/docs/ja/benchmark/tanstack.md +13 -12
  360. package/docs/ja/benchmark/vue.md +5 -5
  361. package/docs/ja/chrome_extension.md +130 -0
  362. package/docs/ja/cli/index.md +6 -1
  363. package/docs/ja/cli/infra.md +162 -0
  364. package/docs/ja/cli/init.md +24 -1
  365. package/docs/ja/dictionary/html.md +173 -5
  366. package/docs/ja/dictionary/markdown.md +263 -1
  367. package/docs/ja/intlayer_with_analog.md +23 -1
  368. package/docs/ja/intlayer_with_angular_19.md +24 -1
  369. package/docs/ja/intlayer_with_angular_21.md +24 -1
  370. package/docs/ja/intlayer_with_astro.md +24 -1
  371. package/docs/ja/intlayer_with_astro_lit.md +25 -1
  372. package/docs/ja/intlayer_with_astro_preact.md +26 -1
  373. package/docs/ja/intlayer_with_astro_react.md +26 -1
  374. package/docs/ja/intlayer_with_astro_solid.md +26 -1
  375. package/docs/ja/intlayer_with_astro_svelte.md +25 -1
  376. package/docs/ja/intlayer_with_astro_vue.md +25 -1
  377. package/docs/ja/intlayer_with_remix_3.md +22 -1
  378. package/docs/ja/self_hosting.md +398 -223
  379. package/docs/ko/benchmark/nextjs.md +13 -13
  380. package/docs/ko/benchmark/solid.md +5 -5
  381. package/docs/ko/benchmark/svelte.md +4 -4
  382. package/docs/ko/benchmark/tanstack.md +14 -13
  383. package/docs/ko/benchmark/vue.md +5 -5
  384. package/docs/ko/chrome_extension.md +130 -0
  385. package/docs/ko/cli/index.md +6 -1
  386. package/docs/ko/cli/infra.md +162 -0
  387. package/docs/ko/cli/init.md +24 -1
  388. package/docs/ko/dictionary/html.md +173 -5
  389. package/docs/ko/dictionary/markdown.md +263 -1
  390. package/docs/ko/intlayer_with_analog.md +23 -1
  391. package/docs/ko/intlayer_with_angular_19.md +24 -1
  392. package/docs/ko/intlayer_with_angular_21.md +24 -1
  393. package/docs/ko/intlayer_with_astro.md +24 -1
  394. package/docs/ko/intlayer_with_astro_lit.md +25 -1
  395. package/docs/ko/intlayer_with_astro_preact.md +26 -1
  396. package/docs/ko/intlayer_with_astro_react.md +26 -1
  397. package/docs/ko/intlayer_with_astro_solid.md +26 -1
  398. package/docs/ko/intlayer_with_astro_svelte.md +25 -1
  399. package/docs/ko/intlayer_with_astro_vue.md +25 -1
  400. package/docs/ko/intlayer_with_remix_3.md +22 -1
  401. package/docs/ko/self_hosting.md +411 -238
  402. package/docs/pl/benchmark/nextjs.md +13 -13
  403. package/docs/pl/benchmark/solid.md +5 -5
  404. package/docs/pl/benchmark/svelte.md +4 -4
  405. package/docs/pl/benchmark/tanstack.md +14 -13
  406. package/docs/pl/benchmark/vue.md +5 -5
  407. package/docs/pl/chrome_extension.md +130 -0
  408. package/docs/pl/cli/index.md +6 -1
  409. package/docs/pl/cli/infra.md +162 -0
  410. package/docs/pl/cli/init.md +24 -1
  411. package/docs/pl/dictionary/html.md +173 -5
  412. package/docs/pl/dictionary/markdown.md +263 -1
  413. package/docs/pl/intlayer_with_analog.md +23 -1
  414. package/docs/pl/intlayer_with_angular_19.md +24 -1
  415. package/docs/pl/intlayer_with_angular_21.md +24 -1
  416. package/docs/pl/intlayer_with_astro.md +24 -1
  417. package/docs/pl/intlayer_with_astro_lit.md +25 -1
  418. package/docs/pl/intlayer_with_astro_preact.md +26 -1
  419. package/docs/pl/intlayer_with_astro_react.md +26 -1
  420. package/docs/pl/intlayer_with_astro_solid.md +26 -1
  421. package/docs/pl/intlayer_with_astro_svelte.md +25 -1
  422. package/docs/pl/intlayer_with_astro_vue.md +25 -1
  423. package/docs/pl/intlayer_with_remix_3.md +22 -1
  424. package/docs/pl/self_hosting.md +408 -233
  425. package/docs/pt/benchmark/nextjs.md +13 -13
  426. package/docs/pt/benchmark/solid.md +5 -5
  427. package/docs/pt/benchmark/svelte.md +4 -4
  428. package/docs/pt/benchmark/tanstack.md +14 -13
  429. package/docs/pt/benchmark/vue.md +5 -5
  430. package/docs/pt/chrome_extension.md +130 -0
  431. package/docs/pt/cli/index.md +6 -1
  432. package/docs/pt/cli/infra.md +162 -0
  433. package/docs/pt/cli/init.md +24 -1
  434. package/docs/pt/dictionary/html.md +173 -5
  435. package/docs/pt/dictionary/markdown.md +263 -1
  436. package/docs/pt/intlayer_with_analog.md +23 -1
  437. package/docs/pt/intlayer_with_angular_19.md +24 -1
  438. package/docs/pt/intlayer_with_angular_21.md +24 -1
  439. package/docs/pt/intlayer_with_astro.md +24 -1
  440. package/docs/pt/intlayer_with_astro_lit.md +25 -1
  441. package/docs/pt/intlayer_with_astro_preact.md +26 -1
  442. package/docs/pt/intlayer_with_astro_react.md +26 -1
  443. package/docs/pt/intlayer_with_astro_solid.md +26 -1
  444. package/docs/pt/intlayer_with_astro_svelte.md +25 -1
  445. package/docs/pt/intlayer_with_astro_vue.md +25 -1
  446. package/docs/pt/intlayer_with_remix_3.md +22 -1
  447. package/docs/pt/self_hosting.md +399 -224
  448. package/docs/ru/benchmark/nextjs.md +13 -13
  449. package/docs/ru/benchmark/solid.md +5 -5
  450. package/docs/ru/benchmark/svelte.md +4 -4
  451. package/docs/ru/benchmark/tanstack.md +14 -13
  452. package/docs/ru/benchmark/vue.md +5 -5
  453. package/docs/ru/chrome_extension.md +130 -0
  454. package/docs/ru/cli/index.md +6 -1
  455. package/docs/ru/cli/infra.md +162 -0
  456. package/docs/ru/cli/init.md +24 -1
  457. package/docs/ru/dictionary/html.md +173 -5
  458. package/docs/ru/dictionary/markdown.md +263 -1
  459. package/docs/ru/intlayer_with_analog.md +23 -1
  460. package/docs/ru/intlayer_with_angular_19.md +24 -1
  461. package/docs/ru/intlayer_with_angular_21.md +24 -1
  462. package/docs/ru/intlayer_with_astro.md +24 -1
  463. package/docs/ru/intlayer_with_astro_lit.md +25 -1
  464. package/docs/ru/intlayer_with_astro_preact.md +26 -1
  465. package/docs/ru/intlayer_with_astro_react.md +26 -1
  466. package/docs/ru/intlayer_with_astro_solid.md +26 -1
  467. package/docs/ru/intlayer_with_astro_svelte.md +25 -1
  468. package/docs/ru/intlayer_with_astro_vue.md +25 -1
  469. package/docs/ru/intlayer_with_remix_3.md +22 -1
  470. package/docs/ru/self_hosting.md +403 -228
  471. package/docs/tr/benchmark/nextjs.md +13 -13
  472. package/docs/tr/benchmark/solid.md +5 -5
  473. package/docs/tr/benchmark/svelte.md +4 -4
  474. package/docs/tr/benchmark/tanstack.md +14 -13
  475. package/docs/tr/benchmark/vue.md +5 -5
  476. package/docs/tr/chrome_extension.md +130 -0
  477. package/docs/tr/cli/index.md +6 -1
  478. package/docs/tr/cli/infra.md +162 -0
  479. package/docs/tr/cli/init.md +24 -1
  480. package/docs/tr/dictionary/html.md +173 -5
  481. package/docs/tr/dictionary/markdown.md +263 -1
  482. package/docs/tr/intlayer_with_analog.md +23 -1
  483. package/docs/tr/intlayer_with_angular_19.md +24 -1
  484. package/docs/tr/intlayer_with_angular_21.md +24 -1
  485. package/docs/tr/intlayer_with_astro.md +24 -1
  486. package/docs/tr/intlayer_with_astro_lit.md +25 -1
  487. package/docs/tr/intlayer_with_astro_preact.md +26 -1
  488. package/docs/tr/intlayer_with_astro_react.md +26 -1
  489. package/docs/tr/intlayer_with_astro_solid.md +26 -1
  490. package/docs/tr/intlayer_with_astro_svelte.md +25 -1
  491. package/docs/tr/intlayer_with_astro_vue.md +25 -1
  492. package/docs/tr/intlayer_with_remix_3.md +22 -1
  493. package/docs/tr/self_hosting.md +410 -234
  494. package/docs/uk/benchmark/nextjs.md +13 -13
  495. package/docs/uk/benchmark/solid.md +5 -5
  496. package/docs/uk/benchmark/svelte.md +4 -4
  497. package/docs/uk/benchmark/tanstack.md +14 -13
  498. package/docs/uk/benchmark/vue.md +5 -5
  499. package/docs/uk/chrome_extension.md +130 -0
  500. package/docs/uk/cli/index.md +6 -1
  501. package/docs/uk/cli/infra.md +162 -0
  502. package/docs/uk/cli/init.md +24 -1
  503. package/docs/uk/dictionary/html.md +173 -5
  504. package/docs/uk/dictionary/markdown.md +263 -1
  505. package/docs/uk/intlayer_with_analog.md +23 -1
  506. package/docs/uk/intlayer_with_angular_19.md +24 -1
  507. package/docs/uk/intlayer_with_angular_21.md +24 -1
  508. package/docs/uk/intlayer_with_astro.md +24 -1
  509. package/docs/uk/intlayer_with_astro_lit.md +25 -1
  510. package/docs/uk/intlayer_with_astro_preact.md +26 -1
  511. package/docs/uk/intlayer_with_astro_react.md +26 -1
  512. package/docs/uk/intlayer_with_astro_solid.md +26 -1
  513. package/docs/uk/intlayer_with_astro_svelte.md +25 -1
  514. package/docs/uk/intlayer_with_astro_vue.md +25 -1
  515. package/docs/uk/intlayer_with_remix_3.md +22 -1
  516. package/docs/uk/self_hosting.md +413 -238
  517. package/docs/vi/benchmark/nextjs.md +13 -13
  518. package/docs/vi/benchmark/solid.md +5 -5
  519. package/docs/vi/benchmark/svelte.md +4 -4
  520. package/docs/vi/benchmark/tanstack.md +14 -13
  521. package/docs/vi/benchmark/vue.md +5 -5
  522. package/docs/vi/chrome_extension.md +130 -0
  523. package/docs/vi/cli/index.md +6 -1
  524. package/docs/vi/cli/infra.md +162 -0
  525. package/docs/vi/cli/init.md +24 -1
  526. package/docs/vi/dictionary/html.md +173 -5
  527. package/docs/vi/dictionary/markdown.md +263 -1
  528. package/docs/vi/intlayer_with_analog.md +23 -1
  529. package/docs/vi/intlayer_with_angular_19.md +24 -1
  530. package/docs/vi/intlayer_with_angular_21.md +24 -1
  531. package/docs/vi/intlayer_with_astro.md +24 -1
  532. package/docs/vi/intlayer_with_astro_lit.md +25 -1
  533. package/docs/vi/intlayer_with_astro_preact.md +26 -1
  534. package/docs/vi/intlayer_with_astro_react.md +26 -1
  535. package/docs/vi/intlayer_with_astro_solid.md +26 -1
  536. package/docs/vi/intlayer_with_astro_svelte.md +25 -1
  537. package/docs/vi/intlayer_with_astro_vue.md +25 -1
  538. package/docs/vi/intlayer_with_remix_3.md +22 -1
  539. package/docs/vi/self_hosting.md +408 -234
  540. package/docs/zh/benchmark/nextjs.md +13 -13
  541. package/docs/zh/benchmark/solid.md +5 -5
  542. package/docs/zh/benchmark/svelte.md +4 -4
  543. package/docs/zh/benchmark/tanstack.md +14 -13
  544. package/docs/zh/benchmark/vue.md +5 -5
  545. package/docs/zh/chrome_extension.md +130 -0
  546. package/docs/zh/cli/index.md +6 -1
  547. package/docs/zh/cli/infra.md +162 -0
  548. package/docs/zh/cli/init.md +24 -1
  549. package/docs/zh/dictionary/html.md +172 -5
  550. package/docs/zh/dictionary/markdown.md +262 -1
  551. package/docs/zh/intlayer_with_analog.md +23 -1
  552. package/docs/zh/intlayer_with_angular_19.md +24 -1
  553. package/docs/zh/intlayer_with_angular_21.md +24 -1
  554. package/docs/zh/intlayer_with_astro.md +24 -1
  555. package/docs/zh/intlayer_with_astro_lit.md +25 -1
  556. package/docs/zh/intlayer_with_astro_preact.md +26 -1
  557. package/docs/zh/intlayer_with_astro_react.md +26 -1
  558. package/docs/zh/intlayer_with_astro_solid.md +26 -1
  559. package/docs/zh/intlayer_with_astro_svelte.md +25 -1
  560. package/docs/zh/intlayer_with_astro_vue.md +25 -1
  561. package/docs/zh/intlayer_with_remix_3.md +22 -1
  562. package/docs/zh/self_hosting.md +410 -237
  563. package/legal/ar/privacy_notice.md +9 -3
  564. package/legal/de/privacy_notice.md +9 -3
  565. package/legal/en/privacy_notice.md +10 -3
  566. package/legal/en-GB/privacy_notice.md +9 -3
  567. package/legal/es/privacy_notice.md +9 -3
  568. package/legal/fr/privacy_notice.md +9 -3
  569. package/legal/hi/privacy_notice.md +9 -3
  570. package/legal/id/privacy_notice.md +9 -3
  571. package/legal/it/privacy_notice.md +9 -3
  572. package/legal/ja/privacy_notice.md +9 -3
  573. package/legal/ko/privacy_notice.md +9 -3
  574. package/legal/pl/privacy_notice.md +9 -3
  575. package/legal/pt/privacy_notice.md +9 -3
  576. package/legal/ru/privacy_notice.md +9 -3
  577. package/legal/tr/privacy_notice.md +9 -3
  578. package/legal/uk/privacy_notice.md +9 -3
  579. package/legal/vi/privacy_notice.md +9 -3
  580. package/legal/zh/privacy_notice.md +9 -3
  581. package/package.json +1 -1
  582. package/src/generated/docs.entry.ts +40 -40
  583. package/docs/ar/roadmap.md +0 -321
  584. package/docs/de/roadmap.md +0 -322
  585. package/docs/en/intlayer_with_astro_vanilla.md +0 -713
  586. package/docs/en/roadmap.md +0 -325
  587. package/docs/en-GB/roadmap.md +0 -322
  588. package/docs/es/roadmap.md +0 -322
  589. package/docs/fr/roadmap.md +0 -322
  590. package/docs/hi/roadmap.md +0 -322
  591. package/docs/id/roadmap.md +0 -325
  592. package/docs/it/roadmap.md +0 -322
  593. package/docs/ja/roadmap.md +0 -322
  594. package/docs/ko/roadmap.md +0 -322
  595. package/docs/pl/roadmap.md +0 -325
  596. package/docs/pt/roadmap.md +0 -322
  597. package/docs/ru/roadmap.md +0 -322
  598. package/docs/tr/roadmap.md +0 -325
  599. package/docs/uk/roadmap.md +0 -325
  600. package/docs/vi/roadmap.md +0 -325
  601. package/docs/zh/roadmap.md +0 -322
@@ -112,19 +112,19 @@ Cuối cùng, `Intlayer` áp dụng một tối ưu hóa tại thời điểm bu
112
112
  Đối với benchmark này, chúng tôi đã so sánh các thư viện sau:
113
113
 
114
114
  - `Base App` (Không sử dụng thư viện i18n)
115
- - `next-intlayer` (v9.5.1)
116
- - [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/next-intl.md) (v9.5.1)
117
- - [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/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)
122
- - `next-international` (v1.3.1)
123
- - `@inlang/paraglide-js` (v2.15.1)
124
- - `@tolgee/react` (v7.2.0)
125
- - `@lingo.dev/compiler` (v0.4.12)
126
- - `wuchale` (v0.26.6)
127
- - `gt-next` (v11.1.24)
115
+ - [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/next-intlayer/exports.md) (v9.5.6)
116
+ - [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/next-intl.md) (v9.5.6)
117
+ - [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/next-i18next.md) (v9.5.6)
118
+ - [`next-i18next`](https://github.com/i18next/next-i18next) (v16.3.0)
119
+ - [`next-intl`](https://github.com/amannn/next-intl) (v4.14.2)
120
+ - [`@lingui/core`](https://github.com/lingui/js-lingui) (v6.6.0)
121
+ - [`next-translate`](https://github.com/aralroca/next-translate) (v3.2.0)
122
+ - [`next-international`](https://github.com/QuiiBz/next-international) (v1.3.1)
123
+ - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.15.1)
124
+ - [`@tolgee/react`](https://github.com/tolgee/tolgee-js) (v7.2.0)
125
+ - [`@lingo.dev/compiler`](https://github.com/lingodotdev/lingo.dev) (v0.4.12)
126
+ - [`wuchale`](https://github.com/wuchalejs/wuchale) (v0.26.6)
127
+ - [`gt-next`](https://github.com/generaltranslation/gt) (v11.1.24)
128
128
 
129
129
  Tôi đã sử dụng phiên bản `Next.js` `16.3.4` với App Router.
130
130
 
@@ -65,7 +65,7 @@ Tác động khác là đối với trải nghiệm nhà phát triển (DX): cá
65
65
 
66
66
  ## TL;DR
67
67
 
68
- - **Intlayer**: Lựa chọn được đề xuất cho các ứng dụng Solid chuyên nghiệp cần các tính năng nâng cao và tối ưu hóa (v9.5.0).
68
+ - **Intlayer**: Lựa chọn được đề xuất cho các ứng dụng Solid chuyên nghiệp cần các tính năng nâng cao và tối ưu hóa (v9.5.6).
69
69
  - **@solid-primitives/i18n**: Giải pháp thay thế gọn nhẹ tuyệt vời cho các dự án đơn giản, mặc dù thiếu các tính năng nâng cao như lazy loading.
70
70
  - **solid-i18next**: Tùy chọn tiêu chuẩn nhưng nặng (~3.5 lần Intlayer) với các nhược điểm tương tự như React i18next.
71
71
  - **Paraglide**: Cách tiếp cận sáng tạo nhưng DX phức tạp và vấn đề tree-shaking trong một số thiết lập.
@@ -100,10 +100,10 @@ Các cú pháp được xây dựng xung quanh `t('a.b.c')` rất tiện lợi n
100
100
  Đối với benchmark này, chúng tôi đã so sánh các thư viện sau:
101
101
 
102
102
  - `Base App` (Không có thư viện i18n)
103
- - `solid-intlayer` (v9.5.0)
104
- - `@solid-primitives/i18n` (v2.2.1)
105
- - `i18next` (v26.0.8) + `@mbarzda/solid-i18next` (v1.4.1)
106
- - `@inlang/paraglide-js` (v2.25.1)
103
+ - [`solid-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/solid-intlayer/exports.md) (v9.5.6)
104
+ - [`@solid-primitives/i18n`](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n) (v2.2.1)
105
+ - [`i18next`](https://github.com/i18next/i18next) (v26.0.8) + [`@mbarzda/solid-i18next`](https://github.com/mbarzda/solid-i18next) (v1.4.1)
106
+ - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
107
107
 
108
108
  Framework là `Solid` với một ứng dụng đa ngôn ngữ gồm **10 trang** và **10 ngôn ngữ**.
109
109
 
@@ -65,7 +65,7 @@ Tác động khác là đối với trải nghiệm nhà phát triển (DX): cá
65
65
 
66
66
  ## TL;DR
67
67
 
68
- - **Intlayer**: Lựa chọn hiệu quả nhất về hiệu suất (v9.5.0) với dấu chân (footprint) nhỏ nhất.
68
+ - **Intlayer**: Lựa chọn hiệu quả nhất về hiệu suất (v9.5.6) với dấu chân (footprint) nhỏ nhất.
69
69
  - **Paraglide**: Đối thủ nặng ký cho tree-shaking nhưng có trải nghiệm nhà phát triển phức tạp hơn và overhead về tính phản ứng.
70
70
  - **svelte-i18n**: Toàn diện và tiêu chuẩn cho Svelte, nhưng mang trọng lượng bundle lớn hơn nhiều (~4.5 lần Intlayer).
71
71
 
@@ -99,9 +99,9 @@ Các cú pháp được xây dựng xung quanh `t('a.b.c')` rất tiện lợi n
99
99
  Đối với benchmark này, chúng tôi đã so sánh các thư viện sau:
100
100
 
101
101
  - `Base App` (Không có thư viện i18n)
102
- - `svelte-intlayer` (v9.5.0)
103
- - `svelte-i18n` (v4.0.1)
104
- - `@inlang/paraglide-js` (v2.25.1)
102
+ - [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/svelte-intlayer/exports.md) (v9.5.6)
103
+ - [`svelte-i18n`](https://github.com/kaisermann/svelte-i18n) (v4.0.1)
104
+ - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
105
105
 
106
106
  Framework là `Svelte` với một ứng dụng đa ngôn ngữ gồm **10 trang** và **10 ngôn ngữ**.
107
107
 
@@ -65,7 +65,7 @@ Tác động khác là đối với trải nghiệm phát triển (DX): cách b
65
65
 
66
66
  ## TL;DR
67
67
 
68
- - **Intlayer**: Cung cấp hiệu năng tốt nhất và kích thước bundle nhỏ nhất (v9.5.1) cho TanStack Start.
68
+ - **Intlayer**: Cung cấp hiệu năng tốt nhất và kích thước bundle nhỏ nhất (v9.5.6) cho TanStack Start.
69
69
  - **react-i18next** & **use-intl**: Các lựa chọn thay thế thuần thục với hệ sinh thái lớn, nhưng nặng hơn đáng kể và phức tạp hơn để tối ưu hóa.
70
70
  - **Paraglide**: Ý tưởng tree-shaking sáng tạo nhưng không hoạt động trong thực tế. DX phức tạp và chi phí phản ứng trên TanStack Start.
71
71
  - **Cần tránh**: **General Translation (GT)** và **Lingo.dev** do các vấn đề hiệu năng nghiêm trọng, giới hạn hạn mức AI và bị ràng buộc vào nhà cung cấp (vendor lock-in).
@@ -100,18 +100,19 @@ Các cú pháp được xây dựng xung quanh `const t = useTranslation()` + `t
100
100
  Đối với benchmark này, chúng tôi đã so sánh các thư viện sau:
101
101
 
102
102
  - `Base App` (Không sử dụng thư viện i18n)
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/vi/compat/lingui.md) (v9.5.1)
106
- - `react-i18next` (v17.0.13)
107
- - `use-intl` (v4.14.2)
108
- - `@lingui/core` (v6.6.0)
109
- - `@inlang/paraglide-js` (v2.15.1)
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)
103
+ - [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/react-intlayer/exports.md) (v9.5.6)
104
+ - [`@intlayer/use-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/next-intl.md) (v9.5.6)
105
+ - [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/lingui.md) (v9.5.6)
106
+ - [`@intlayer/react-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/react-i18next.md) (v9.5.6)
107
+ - [`react-i18next`](https://github.com/i18next/react-i18next) (v17.0.13)
108
+ - [`use-intl`](https://github.com/amannn/next-intl/tree/main/packages/use-intl) (v4.14.2)
109
+ - [`@lingui/core`](https://github.com/lingui/js-lingui) (v6.6.0)
110
+ - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.15.1)
111
+ - [`@tolgee/react`](https://github.com/tolgee/tolgee-js) (v7.2.0)
112
+ - [`react-intl`](https://github.com/formatjs/formatjs) (v10.1.26)
113
+ - [`wuchale`](https://github.com/wuchalejs/wuchale) (v0.26.6)
114
+ - [`gt-react`](https://github.com/generaltranslation/gt) (v10.18.3)
115
+ - [`lingo.dev`](https://github.com/lingodotdev/lingo.dev) (v0.138.7)
115
116
 
116
117
  Framework được sử dụng là `TanStack Start` với một ứng dụng đa ngôn ngữ gồm **10 trang** và **10 ngôn ngữ**.
117
118
 
@@ -65,7 +65,7 @@ Tác động khác là đối với trải nghiệm nhà phát triển (DX): cá
65
65
 
66
66
  ## TL;DR
67
67
 
68
- - **Intlayer**: Giải pháp nhẹ nhất (v9.5.0) với tính năng scoping và tải động gốc.
68
+ - **Intlayer**: Giải pháp nhẹ nhất (v9.5.6) với tính năng scoping và tải động gốc.
69
69
  - **vue-i18n**: Tiêu chuẩn ngành với hệ sinh thái phong phú, nhưng có thể trở nên nặng hơn đáng kể và khó tối ưu hóa cho code-splitting trong các ứng dụng lớn.
70
70
  - **fluent-vue**: Tổ chức thông báo sáng tạo nhưng thiếu an toàn kiểu (type-safety) và hóa ra là một giải pháp cực kỳ nặng.
71
71
 
@@ -99,10 +99,10 @@ Các cú pháp được xây dựng xung quanh `const { t } = useI18n()` + `t('a
99
99
  Đối với benchmark này, chúng tôi đã so sánh các thư viện sau:
100
100
 
101
101
  - `Base App` (Không có thư viện i18n)
102
- - `vue-intlayer` (v9.5.0)
103
- - [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/vue-i18n.md) (v9.5.1)
104
- - `vue-i18n` (v11.4.0)
105
- - `fluent-vue` (v3.8.2)
102
+ - [`vue-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/vue-intlayer/exports.md) (v9.5.6)
103
+ - [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compat/vue-i18n.md) (v9.5.6)
104
+ - [`vue-i18n`](https://github.com/intlify/vue-i18n) (v11.4.0)
105
+ - [`fluent-vue`](https://github.com/fluent-vue/fluent-vue) (v3.8.2)
106
106
 
107
107
  Framework là `Vue` với một ứng dụng đa ngôn ngữ gồm **10 trang** và **10 ngôn ngữ**.
108
108
 
@@ -0,0 +1,130 @@
1
+ ---
2
+ createdAt: 2026-09-22
3
+ updatedAt: 2026-09-22
4
+ title: Tiện ích mở rộng Chrome & Firefox, Trình quét i18n & SEO
5
+ description: Kiểm tra cấu hình i18n của bất kỳ trang web nào bằng tiện ích mở rộng Intlayer cho Chrome. Phát hiện framework, thư viện i18n, ngôn ngữ, thẻ hreflang và SEO, đồng thời chạy kiểm tra toàn diện i18n SEO.
6
+ keywords:
7
+ - Tiện ích mở rộng Chrome
8
+ - Trình quét i18n
9
+ - Kiểm tra hreflang
10
+ - SEO đa ngôn ngữ
11
+ - Intlayer
12
+ - Bản địa hóa
13
+ - Công cụ phát triển
14
+ slugs:
15
+ - doc
16
+ - chrome-extension
17
+ history:
18
+ - version: 9.5.6
19
+ date: 2026-09-22
20
+ changes: "Khởi tạo lịch sử"
21
+ author: aymericzip
22
+ ---
23
+
24
+ # Tiện ích mở rộng Chrome & Firefox: Trình quét i18n & SEO
25
+
26
+ ## Tổng quan
27
+
28
+ [**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc) là tiện ích mở rộng Chrome chính thức dành cho **Intlayer**. Mở tiện ích trên bất kỳ trang web nào để xem cách trang web đó xử lý quốc tế hóa: sử dụng framework và thư viện i18n nào, hỗ trợ những ngôn ngữ (locales) nào và liệu các thẻ SEO đa ngôn ngữ đã được thiết lập chính xác hay chưa.
29
+
30
+ Tiện ích hoạt động trên mọi trang web, cho dù trang web đó có sử dụng Intlayer hay không.
31
+
32
+ ![Tiện ích mở rộng Intlayer cho Chrome](https://github.com/aymericzip/intlayer/blob/main/docs/assets/chrome_extension.png?raw=true)
33
+
34
+ [Liên kết tiện ích Chrome](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc)
35
+
36
+ [Liên kết tiện ích Firefox](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/)
37
+
38
+ ## Tính năng
39
+
40
+ - **Phát hiện công nghệ**: nhận diện framework (Next.js, Nuxt, Astro, SvelteKit, Angular, Vue.js, Qwik, React, Gatsby, WordPress) và thư viện i18n (Intlayer, i18next, Vue I18n, @nuxtjs/i18n, Angular @angular/localize, next-intl / next-i18next, Weglot, Localize, WPML, Polylang). Mỗi phát hiện sẽ hiển thị bằng chứng kích hoạt nó, chẳng hạn như biến toàn cục (global variable), cookie hoặc dấu hiệu DOM.
41
+ - **Ngôn ngữ (Locales)**: liệt kê các ngôn ngữ được tìm thấy trong thuộc tính `lang`, thẻ hreflang và `og:locale`, tiền tố ngôn ngữ trên URL, cùng với cookie hoặc mục lưu trữ ngôn ngữ.
42
+ - **Thẻ SEO i18n**: kiểm tra `html lang`, `html dir`, liên kết chuẩn (canonical), thẻ hreflang, `x-default`, `og:locale` và tỷ lệ các liên kết nội bộ được bản địa hóa.
43
+ - **Điều hướng giữa các locale**: chuyển trang hiện tại sang bất kỳ phiên bản bản địa hóa nào chỉ với một cú nhấp, dựa trên các thẻ hreflang.
44
+ - **Tìm kiếm trong sitemap**: tìm kiếm mọi trang được liệt kê trong sitemap của trang web và mở trang đó trong tab hiện tại.
45
+ - **Kiểm tra toàn diện**: chạy cùng một quy trình kiểm tra như [Trình quét SEO i18n](https://intlayer.org/i18n-seo-scanner) và hiển thị điểm số trực tiếp.
46
+
47
+ ## Cài đặt
48
+
49
+ <Tabs group="browser">
50
+ <Tab label="Chrome" value="chrome">
51
+
52
+ Cài đặt [**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc) từ Chrome Web Store, sau đó ghim tiện ích vào thanh công cụ của bạn.
53
+
54
+ Tiện ích mở rộng hoạt động trên Chrome và bất kỳ trình duyệt dựa trên Chromium nào hỗ trợ các tiện ích mở rộng của Chrome Web Store (Edge, Brave, Arc, Opera).
55
+
56
+ </Tab>
57
+ <Tab label="Firefox" value="firefox">
58
+
59
+ Cài đặt [**Intlayer i18n Scanner**](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/) từ Firefox Add-ons, sau đó ghim tiện ích vào thanh công cụ của bạn.
60
+
61
+ </Tab>
62
+ </Tabs>
63
+
64
+ ## Sử dụng
65
+
66
+ ### Kiểm tra một trang
67
+
68
+ 1. Mở trang web bạn muốn kiểm tra.
69
+ 2. Nhấp vào biểu tượng **Intlayer i18n Scanner** trên thanh công cụ.
70
+ 3. Cửa sổ bật lên sẽ hiển thị các phần **Công nghệ được phát hiện**, **Ngôn ngữ** và **Thẻ SEO i18n** cho trang hiện tại.
71
+
72
+ Quá trình phát hiện chạy cục bộ trong trình duyệt của bạn và chỉ trên tab hiện tại.
73
+
74
+ ### Điều hướng giữa các locale
75
+
76
+ ![Điều hướng của tiện ích mở rộng Intlayer cho Chrome](https://github.com/aymericzip/intlayer/blob/main/docs/assets/chrome_extension_navigation.png?raw=true)
77
+
78
+ Phần **Điều hướng** liệt kê các **Phiên bản bản địa hóa** của trang hiện tại, được đọc từ các thẻ hreflang của trang. Nhấp vào một locale để mở phiên bản đó trong tab hiện tại.
79
+
80
+ Trong **Các trang trong sitemap**, nhập để tìm kiếm các URL trong sitemap của trang web, rồi nhấp vào một kết quả để mở.
81
+
82
+ ### Chạy kiểm tra toàn diện
83
+
84
+ ![Điểm kiểm tra của tiện ích mở rộng Intlayer cho Chrome](https://github.com/aymericzip/intlayer/blob/main/docs/assets/chrome_extension_audit_score.png?raw=true)
85
+
86
+ Cuộn xuống phần **Kiểm tra toàn diện** và nhấp vào **Chạy kiểm tra i18n toàn diện**. Kết quả sẽ hiển thị ngay khi từng mục kiểm tra hoàn tất, được nhóm thành:
87
+
88
+ - **Trang**: thuộc tính `html lang` và `dir`, ngôn ngữ hiện tại, thẻ hreflang, `x-default`, liên kết canonical, liên kết nội bộ được bản địa hóa, bộ chọn ngôn ngữ, biểu tượng cờ và nội dung ngôn ngữ không sử dụng được đính kèm trong bundle JavaScript.
89
+ - **Robots.txt**: sự hiện diện và kiểm tra xem các đường dẫn ngôn ngữ có thể thu thập dữ liệu (crawlable) hay không.
90
+ - **Sitemap**: sự hiện diện, danh sách từng ngôn ngữ, liên kết thay thế và `x-default`.
91
+ - **Tên miền**: số lượng ngôn ngữ được phát hiện trên toàn bộ trang web.
92
+
93
+ Mỗi mục kiểm tra được đánh dấu là đạt, cảnh báo hoặc không đạt, và điểm số sẽ tóm tắt tình trạng SEO i18n tổng thể của trang.
94
+
95
+ ## Quyền riêng tư và cấp phép
96
+
97
+ Tiện ích mở rộng chỉ yêu cầu các quyền tối thiểu:
98
+
99
+ - **activeTab** và **scripting**: bộ phát hiện chỉ chạy trên tab bạn đang xem và chỉ khi bạn mở cửa sổ bật lên.
100
+ - **back.intlayer.org**: chỉ được sử dụng khi bạn chạy kiểm tra toàn diện. URL của trang hiện tại sẽ được gửi đến Intlayer API để quét.
101
+
102
+ Không có lịch sử duyệt web nào được thu thập và không có gì chạy ngầm.
103
+
104
+ ## Câu hỏi thường gặp
105
+
106
+ <FAQ>
107
+
108
+ <Question title="Trang web có cần phải sử dụng Intlayer không?">
109
+
110
+ Không. Tiện ích có thể kiểm tra bất kỳ trang web nào, bất kể trang đó sử dụng framework hay thư viện i18n nào.
111
+
112
+ </Question>
113
+ <Question title="Tại sao một công nghệ không được phát hiện?">
114
+
115
+ Việc phát hiện dựa trên những gì trang web hiển thị trong trình duyệt: biến toàn cục, cookie, thẻ meta và dấu hiệu DOM. Một số bản build production sẽ loại bỏ các dấu hiệu này, vì vậy một thư viện có thể đang được sử dụng mà không để lại dấu vết rõ ràng.
116
+
117
+ </Question>
118
+ <Question title="Làm cách nào để khắc phục các vấn đề phát hiện bởi kiểm tra?">
119
+
120
+ Hầu hết các mục kiểm tra đều tương ứng với cấu hình định tuyến hoặc siêu dữ liệu. Với Intlayer, hreflang, canonical, `x-default`, liên kết bản địa hóa, sitemap và robots.txt được tạo tự động từ [cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md) của bạn. Xem hướng dẫn tích hợp cho framework của bạn, ví dụ: [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_nextjs_16.md), [Nuxt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_nuxt.md) hoặc [TanStack Start](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_tanstack.md).
121
+
122
+ </Question>
123
+
124
+ </FAQ>
125
+
126
+ ## Công cụ liên quan
127
+
128
+ - [Tiện ích mở rộng VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/vs_code_extension.md)
129
+ - [Máy chủ MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/mcp_server.md)
130
+ - [Máy chủ LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/lsp.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-09-12
3
+ updatedAt: 2026-09-21
4
4
  title: CLI - Tất cả các lệnh CLI của Intlayer cho trang web đa ngôn ngữ của bạn
5
5
  description: Tìm hiểu cách sử dụng Intlayer CLI để quản lý trang web đa ngôn ngữ của bạn. Làm theo các bước trong tài liệu trực tuyến này để thiết lập dự án của bạn trong vài phút.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
+ - version: 9.5.6
21
+ date: 2026-09-21
22
+ changes: "Thêm lệnh init infra"
20
23
  - version: 9.5.2
21
24
  date: 2026-09-12
22
25
  changes: "Thay thế lệnh `ci` bằng cờ `--ci`"
@@ -151,6 +154,7 @@ Intlayer chấp nhận nhiều định dạng tệp cấu hình khác nhau:
151
154
  ### Cấu hình
152
155
 
153
156
  - **[Khởi tạo Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/init.md)** - Thiết lập Intlayer trong dự án của bạn với cấu hình tự động
157
+ - **[Thiết lập cơ sở hạ tầng](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/infra.md)** - Cài đặt ứng dụng máy tính để bàn hoặc tự lưu trữ CMS với Docker (tất cả trong một hoặc Compose)
154
158
  - **[Quản lý cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/configuration.md)** - Nhận cấu hình Intlayer của bạn và đẩy lên CMS
155
159
 
156
160
  ### Quản lý tài liệu
@@ -177,6 +181,7 @@ Intlayer chấp nhận nhiều định dạng tệp cấu hình khác nhau:
177
181
  ```json fileName="package.json"
178
182
  "scripts": {
179
183
  "intlayer:init": "npx intlayer init",
184
+ "intlayer:infra": "npx intlayer init infra",
180
185
  "intlayer:login": "npx intlayer login",
181
186
  "intlayer:build": "npx intlayer build",
182
187
  "intlayer:watch": "npx intlayer build --watch",
@@ -0,0 +1,162 @@
1
+ ---
2
+ createdAt: 2026-09-21
3
+ updatedAt: 2026-09-21
4
+ title: CLI - Init Infra
5
+ description: Tìm hiểu cách sử dụng lệnh init infra của Intlayer CLI để cài đặt ứng dụng máy tính để bàn hoặc tự lưu trữ Intlayer CMS với Docker (vùng chứa tất cả trong một hoặc ngăn xếp Docker Compose).
6
+ keywords:
7
+ - CLI
8
+ - Cơ sở hạ tầng
9
+ - Tự lưu trữ
10
+ - Ứng dụng máy tính để bàn
11
+ - Docker
12
+ - Docker Compose
13
+ - CMS
14
+ - Intlayer
15
+ slugs:
16
+ - doc
17
+ - concept
18
+ - cli
19
+ - infra
20
+ history:
21
+ - version: 9.5.6
22
+ date: 2026-09-21
23
+ changes: "Thêm lệnh init infra"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Lệnh Intlayer CLI Init Infra
28
+
29
+ ## Mô tả
30
+
31
+ Lệnh `init infra` thiết lập cơ sở hạ tầng Intlayer trên máy của bạn. Nó tải xuống trình cài đặt được lưu trữ cho nền tảng của bạn (`https://intlayer.org/install.sh` trên macOS / Linux, `https://intlayer.org/install.ps1` trên Windows) và chạy nó trong terminal của bạn, hiển thị trực tiếp menu và tiến trình cài đặt.
32
+
33
+ Trình cài đặt sẽ hỏi bạn muốn chạy Intlayer như thế nào:
34
+
35
+ - **Ứng dụng máy tính để bàn**: tải xuống bảng điều khiển gốc cho hệ điều hành và CPU của bạn rồi mở hoặc cài đặt nó. Phiên bản máy tính để bàn kết nối với backend Intlayer Cloud.
36
+ - **Docker tất cả trong một (All-in-one)**: bảng điều khiển + API + MongoDB + Redis + MinIO trong một vùng chứa duy nhất với một ổ đĩa lưu trữ. Ghi tệp `./intlayer.env` với các khóa bí mật được tạo và kéo hình ảnh `intlayer/cms-all`.
37
+ - **Docker Compose**: một vùng chứa cho mỗi dịch vụ, để tự lưu trữ có thể mở rộng. Ghi `docker-compose.yml` và `.env` vào `./intlayer/` và kéo các hình ảnh.
38
+
39
+ Trình cài đặt được lưu trữ là nguồn chân lý duy nhất cho quy trình thiết lập: CLI chạy nó thay vì triển khai lại các bước tương tự, do đó `npx intlayer init infra` và `curl -fsSL https://intlayer.org/install.sh | sh` thực hiện hoàn toàn giống nhau.
40
+
41
+ ## Cách sử dụng
42
+
43
+ ```bash packageManager="npm"
44
+ npx intlayer init infra [options]
45
+ ```
46
+
47
+ ```bash packageManager="yarn"
48
+ yarn intlayer init infra [options]
49
+ ```
50
+
51
+ ```bash packageManager="pnpm"
52
+ pnpm intlayer init infra [options]
53
+ ```
54
+
55
+ ```bash packageManager="bun"
56
+ bun x intlayer init infra [options]
57
+ ```
58
+
59
+ Bước tương tự cũng được cung cấp trong danh sách kiểm tra của `npx intlayer init --interactive`, tại mục **Cơ sở hạ tầng (ứng dụng máy tính để bàn / tự lưu trữ)**.
60
+
61
+ ## Tùy chọn
62
+
63
+ - `-m, --mode <mode>` - Tùy chọn. Bỏ qua menu của trình cài đặt và chạy trực tiếp một chế độ. Các giá trị được chấp nhận: `desktop`, `docker` (tất cả trong một) hoặc `compose`. Bất kỳ giá trị nào khác sẽ thoát với lỗi liệt kê các chế độ hợp lệ.
64
+
65
+ ## Ví dụ
66
+
67
+ ### Chọn chế độ tương tác
68
+
69
+ ```bash
70
+ npx intlayer init infra
71
+ ```
72
+
73
+ ### Cài đặt ứng dụng máy tính để bàn
74
+
75
+ ```bash
76
+ npx intlayer init infra --mode desktop
77
+ ```
78
+
79
+ ### Tự lưu trữ với vùng chứa tất cả trong một
80
+
81
+ ```bash
82
+ npx intlayer init infra --mode docker
83
+ ```
84
+
85
+ ### Tự lưu trữ với Docker Compose
86
+
87
+ ```bash
88
+ npx intlayer init infra --mode compose
89
+ ```
90
+
91
+ ## Đầu ra ví dụ
92
+
93
+ ```bash
94
+ npx intlayer init infra --mode compose
95
+ ◇ Installer downloaded
96
+ ▸ Fetching docker-compose.yml into ./intlayer
97
+ ▸ Writing ./intlayer/.env
98
+ ▸ Pulling images
99
+
100
+ Everything is installed. Two steps left.
101
+
102
+ 1. Configure a mailer in:
103
+
104
+ ./intlayer/.env
105
+
106
+ Either RESEND_API_KEY (resend.com) or the MAIL_SMTP_* block — the first
107
+ account cannot be verified without a working mailer.
108
+ 2. Start the stack:
109
+
110
+ cd ./intlayer && docker compose up -d
111
+
112
+ Then open http://localhost:3000 — first boot initialises the
113
+ datastores, so give it a minute. The first account you create becomes the
114
+ super admin.
115
+
116
+ Logs docker compose logs -f
117
+ Stop docker compose down
118
+ Upgrade docker compose pull && docker compose up -d
119
+ ```
120
+
121
+ ## Cài đặt của trình cài đặt
122
+
123
+ Trình cài đặt đọc một số biến môi trường mà CLI chuyển tiếp nguyên vẹn. Hãy đặt chúng trong shell của bạn trước khi chạy lệnh:
124
+
125
+ ```bash
126
+ INTLAYER_COMPOSE_DIR=./cms npx intlayer init infra --mode compose
127
+ ```
128
+
129
+ | Biến | Mặc định | Áp dụng cho | Mô tả |
130
+ | ------------------------- | ------------------------- | ----------- | --------------------------------------------------------- |
131
+ | `INTLAYER_MODE` | _(được hỏi)_ | tất cả | `desktop`, `docker` hoặc `compose`, tương tự như `--mode` |
132
+ | `INTLAYER_DOWNLOAD_DIR` | `~/Downloads` | desktop | Nơi lưu trình cài đặt ứng dụng |
133
+ | `INTLAYER_IMAGE` | `intlayer/cms-all:latest` | docker | Hình ảnh tất cả trong một cần tải |
134
+ | `INTLAYER_ENV_FILE` | `./intlayer.env` | docker | Nơi ghi tệp cấu hình môi trường |
135
+ | `INTLAYER_CONTAINER_NAME` | `intlayer` | docker | Tên vùng chứa |
136
+ | `INTLAYER_DATA_VOLUME` | `intlayer-data` | docker | Ổ đĩa có tên được gắn tại `/data` |
137
+ | `INTLAYER_APP_PORT` | `3000` | docker | Cổng máy chủ cho bảng điều khiển |
138
+ | `INTLAYER_API_PORT` | `3100` | docker | Cổng máy chủ cho API |
139
+ | `INTLAYER_S3_PORT` | `9000` | docker | Cổng máy chủ cho MinIO S3 API |
140
+ | `INTLAYER_CONSOLE_PORT` | `9001` | docker | Cổng máy chủ cho bảng điều khiển MinIO |
141
+ | `INTLAYER_COMPOSE_DIR` | `./intlayer` | compose | Nơi ghi `docker-compose.yml` và `.env` |
142
+ | `INTLAYER_SELFHOST_REF` | `main` | cả hai | Nhánh Git dùng để lấy tệp compose và mẫu env |
143
+
144
+ > Các biến cổng chỉ thay đổi phía **máy chủ (host)** của ánh xạ. Các hình ảnh đã xuất bản đã biên dịch sẵn `http://localhost:3000`, `http://localhost:3100` và `http://localhost:9000` vào gói bảng điều khiển, vì vậy hãy giữ nguyên mặc định trừ khi bạn tự xây dựng hình ảnh: xem [hướng dẫn tự lưu trữ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/self_hosting.md#limitations).
145
+
146
+ ## Yêu cầu
147
+
148
+ - **Ứng dụng máy tính để bàn** cần [Node.js](https://nodejs.org): ứng dụng nhúng máy chủ bảng điều khiển và khởi chạy nó bằng tệp nhị phân `node` của máy.
149
+ - **Chế độ Docker** cần [Docker](https://docs.docker.com/get-docker/) (Docker Desktop với backend WSL 2 trên Windows). Chế độ Compose cũng cần tiện ích mở rộng `docker compose`.
150
+
151
+ ## Ghi chú
152
+
153
+ - Chạy lại lệnh là an toàn: tệp môi trường hiện có không bao giờ bị ghi đè, đóng vai trò là cách nâng cấp (trình cài đặt kéo các hình ảnh mới nhất và giữ nguyên khóa bí mật của bạn).
154
+ - Trình cài đặt được tải xuống một thư mục tạm thời và bị xóa ngay sau khi thoát, bất kể kết quả thế nào.
155
+ - Mã thoát của lệnh là mã thoát của trình cài đặt. Nếu quá trình tải xuống không thành công, CLI sẽ in lệnh tương đương `curl … | sh` (hoặc `irm … | iex`) để bạn có thể chạy trực tiếp trình cài đặt.
156
+ - Các chế độ Docker vẫn cần một dịch vụ gửi email để gửi email đăng nhập. Sau khi trình cài đặt hoàn tất, hãy định cấu hình Resend hoặc SMTP trong tệp môi trường được tạo: xem [Trình gửi thư toàn cầu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/self_hosting.md#global-mailer).
157
+
158
+ ## Liên quan
159
+
160
+ - [Hướng dẫn tự lưu trữ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/self_hosting.md) - Kiến trúc, các bước khởi chạy đầu tiên và giới hạn của từng chế độ
161
+ - [Khởi tạo Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/init.md) - Lệnh `init` cha và danh sách kiểm tra tương tác của nó
162
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_CMS.md) - Bảng điều khiển bạn vừa cài đặt làm được những gì
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-12-30
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-09-21
4
4
  title: Khởi tạo Intlayer
5
5
  description: Tìm hiểu cách khởi tạo Intlayer trong dự án của bạn.
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - cli
15
15
  - init
16
16
  history:
17
+ - version: 9.5.6
18
+ date: 2026-09-21
19
+ changes: "Thêm lệnh con init infra"
17
20
  - version: 8.6.4
18
21
  date: 2026-03-31
19
22
  changes: "Thêm tùy chọn --no-gitignore"
@@ -125,6 +128,26 @@ bun x intlayer init --no-gitignore
125
128
 
126
129
  Thao tác này sẽ thiết lập tất cả các tệp cấu hình nhưng sẽ không sửa đổi tệp `.gitignore` của bạn.
127
130
 
131
+ ### Thiết lập cơ sở hạ tầng (ứng dụng máy tính để bàn hoặc tự lưu trữ):
132
+
133
+ ```bash
134
+ npx intlayer init infra
135
+ ```
136
+
137
+ Tải xuống và chạy trình cài đặt được lưu trữ (`https://intlayer.org/install.sh`, hoặc `install.ps1` trên Windows), hỏi bạn cách muốn chạy Intlayer:
138
+
139
+ - **Ứng dụng máy tính để bàn** - cài đặt bảng điều khiển gốc trên máy của bạn, kết nối với Intlayer Cloud.
140
+ - **Docker tất cả trong một (All-in-one)** - bảng điều khiển + API + MongoDB + Redis + MinIO trong một vùng chứa duy nhất.
141
+ - **Docker Compose** - một vùng chứa cho mỗi dịch vụ, để tự lưu trữ có thể mở rộng.
142
+
143
+ Bỏ qua menu với `--mode`:
144
+
145
+ ```bash
146
+ npx intlayer init infra --mode compose
147
+ ```
148
+
149
+ Bước tương tự cũng được cung cấp bởi `npx intlayer init --interactive`. Xem [tài liệu tham khảo `init infra`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/infra.md) để biết cài đặt của trình cài đặt và [hướng dẫn tự lưu trữ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/self_hosting.md) để biết những gì mỗi chế độ thiết lập.
150
+
128
151
  ## Ví dụ đầu ra:
129
152
 
130
153
  ```bash