@intlayer/docs 9.5.6 → 9.5.8

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 (643) 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/is_intlayer_lighter_than_paraglide.md +284 -0
  4. package/blog/ar/lingui_vs_intlayer.md +122 -15
  5. package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
  6. package/blog/ar/next-intl_vs_intlayer.md +136 -20
  7. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
  8. package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
  9. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
  10. package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
  11. package/blog/de/i18next_vs_intlayer.md +128 -14
  12. package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
  13. package/blog/de/lingui_vs_intlayer.md +122 -15
  14. package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
  15. package/blog/de/next-intl_vs_intlayer.md +125 -15
  16. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  17. package/blog/de/vue-i18n_vs_intlayer.md +193 -31
  18. package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
  19. package/blog/en/i18next_vs_intlayer.md +128 -14
  20. package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
  21. package/blog/en/lingui_vs_intlayer.md +124 -15
  22. package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
  23. package/blog/en/next-intl_vs_intlayer.md +125 -13
  24. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
  25. package/blog/en/vue-i18n_vs_intlayer.md +188 -27
  26. package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
  27. package/blog/en-GB/i18next_vs_intlayer.md +128 -14
  28. package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
  29. package/blog/en-GB/lingui_vs_intlayer.md +122 -15
  30. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
  31. package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
  32. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  33. package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
  34. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
  35. package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
  36. package/blog/es/i18next_vs_intlayer.md +128 -14
  37. package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
  38. package/blog/es/lingui_vs_intlayer.md +122 -15
  39. package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
  40. package/blog/es/next-intl_vs_intlayer.md +125 -15
  41. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  42. package/blog/es/vue-i18n_vs_intlayer.md +193 -31
  43. package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
  44. package/blog/fr/i18next_vs_intlayer.md +128 -14
  45. package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
  46. package/blog/fr/lingui_vs_intlayer.md +122 -15
  47. package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
  48. package/blog/fr/next-intl_vs_intlayer.md +127 -15
  49. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
  50. package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
  51. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
  52. package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
  53. package/blog/hi/i18next_vs_intlayer.md +130 -16
  54. package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
  55. package/blog/hi/lingui_vs_intlayer.md +122 -15
  56. package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
  57. package/blog/hi/next-intl_vs_intlayer.md +135 -19
  58. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  59. package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
  60. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  61. package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
  62. package/blog/id/i18next_vs_intlayer.md +128 -14
  63. package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
  64. package/blog/id/lingui_vs_intlayer.md +122 -15
  65. package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
  66. package/blog/id/next-intl_vs_intlayer.md +135 -19
  67. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
  68. package/blog/id/vue-i18n_vs_intlayer.md +188 -26
  69. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
  70. package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
  71. package/blog/it/i18next_vs_intlayer.md +128 -14
  72. package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
  73. package/blog/it/lingui_vs_intlayer.md +122 -15
  74. package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
  75. package/blog/it/next-intl_vs_intlayer.md +125 -15
  76. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  77. package/blog/it/vue-i18n_vs_intlayer.md +191 -31
  78. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
  79. package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
  80. package/blog/ja/i18next_vs_intlayer.md +129 -17
  81. package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
  82. package/blog/ja/lingui_vs_intlayer.md +122 -15
  83. package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
  84. package/blog/ja/next-intl_vs_intlayer.md +124 -14
  85. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  86. package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
  87. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
  88. package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
  89. package/blog/ko/i18next_vs_intlayer.md +129 -17
  90. package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
  91. package/blog/ko/lingui_vs_intlayer.md +122 -15
  92. package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
  93. package/blog/ko/next-intl_vs_intlayer.md +134 -18
  94. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  95. package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
  96. package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
  97. package/blog/pl/i18next_vs_intlayer.md +128 -14
  98. package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
  99. package/blog/pl/lingui_vs_intlayer.md +122 -15
  100. package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
  101. package/blog/pl/next-intl_vs_intlayer.md +134 -18
  102. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  103. package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
  104. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
  105. package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
  106. package/blog/pt/i18next_vs_intlayer.md +128 -14
  107. package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
  108. package/blog/pt/lingui_vs_intlayer.md +122 -15
  109. package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
  110. package/blog/pt/next-intl_vs_intlayer.md +131 -15
  111. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  112. package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
  113. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
  114. package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
  115. package/blog/ru/i18next_vs_intlayer.md +130 -16
  116. package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
  117. package/blog/ru/lingui_vs_intlayer.md +122 -15
  118. package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
  119. package/blog/ru/next-intl_vs_intlayer.md +123 -13
  120. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
  121. package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
  122. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
  123. package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
  124. package/blog/tr/i18next_vs_intlayer.md +128 -14
  125. package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
  126. package/blog/tr/lingui_vs_intlayer.md +122 -15
  127. package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
  128. package/blog/tr/next-intl_vs_intlayer.md +136 -20
  129. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  130. package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
  131. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
  132. package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
  133. package/blog/uk/i18next_vs_intlayer.md +130 -16
  134. package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
  135. package/blog/uk/lingui_vs_intlayer.md +122 -15
  136. package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
  137. package/blog/uk/next-intl_vs_intlayer.md +135 -19
  138. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
  139. package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
  140. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
  141. package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
  142. package/blog/vi/i18next_vs_intlayer.md +128 -14
  143. package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
  144. package/blog/vi/lingui_vs_intlayer.md +122 -15
  145. package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
  146. package/blog/vi/next-intl_vs_intlayer.md +135 -19
  147. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  148. package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
  149. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  150. package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
  151. package/blog/zh/i18next_vs_intlayer.md +128 -14
  152. package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
  153. package/blog/zh/lingui_vs_intlayer.md +122 -15
  154. package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
  155. package/blog/zh/next-intl_vs_intlayer.md +125 -15
  156. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  157. package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
  158. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
  159. package/dist/cjs/generated/blog.entry.cjs +20 -0
  160. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  161. package/dist/cjs/generated/docs.entry.cjs +60 -40
  162. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  163. package/dist/esm/generated/blog.entry.mjs +20 -0
  164. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  165. package/dist/esm/generated/docs.entry.mjs +60 -40
  166. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  167. package/dist/types/generated/blog.entry.d.ts +1 -0
  168. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  169. package/dist/types/generated/docs.entry.d.ts +3 -2
  170. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  171. package/docs/ar/benchmark/nextjs.md +19 -16
  172. package/docs/ar/benchmark/solid.md +26 -9
  173. package/docs/ar/benchmark/svelte.md +22 -7
  174. package/docs/ar/benchmark/tanstack.md +20 -16
  175. package/docs/ar/benchmark/vue.md +19 -10
  176. package/docs/ar/chrome_extension.md +130 -0
  177. package/docs/ar/cli/index.md +11 -1
  178. package/docs/ar/cli/infra.md +162 -0
  179. package/docs/ar/cli/init.md +24 -1
  180. package/docs/ar/cli/upgrade.md +125 -0
  181. package/docs/ar/dictionary/html.md +173 -5
  182. package/docs/ar/dictionary/markdown.md +263 -1
  183. package/docs/ar/intlayer_with_analog.md +23 -1
  184. package/docs/ar/intlayer_with_angular_19.md +24 -1
  185. package/docs/ar/intlayer_with_angular_21.md +24 -1
  186. package/docs/ar/intlayer_with_astro.md +24 -1
  187. package/docs/ar/intlayer_with_astro_lit.md +25 -1
  188. package/docs/ar/intlayer_with_astro_preact.md +26 -1
  189. package/docs/ar/intlayer_with_astro_react.md +26 -1
  190. package/docs/ar/intlayer_with_astro_solid.md +26 -1
  191. package/docs/ar/intlayer_with_astro_svelte.md +25 -1
  192. package/docs/ar/intlayer_with_astro_vue.md +25 -1
  193. package/docs/ar/intlayer_with_remix_3.md +22 -1
  194. package/docs/ar/self_hosting.md +406 -231
  195. package/docs/de/benchmark/nextjs.md +19 -16
  196. package/docs/de/benchmark/solid.md +26 -9
  197. package/docs/de/benchmark/svelte.md +22 -7
  198. package/docs/de/benchmark/tanstack.md +20 -16
  199. package/docs/de/benchmark/vue.md +19 -10
  200. package/docs/de/chrome_extension.md +130 -0
  201. package/docs/de/cli/index.md +11 -1
  202. package/docs/de/cli/infra.md +162 -0
  203. package/docs/de/cli/init.md +24 -1
  204. package/docs/de/cli/upgrade.md +125 -0
  205. package/docs/de/dictionary/html.md +173 -5
  206. package/docs/de/dictionary/markdown.md +263 -1
  207. package/docs/de/intlayer_with_analog.md +23 -1
  208. package/docs/de/intlayer_with_angular_19.md +24 -1
  209. package/docs/de/intlayer_with_angular_21.md +24 -1
  210. package/docs/de/intlayer_with_astro.md +24 -1
  211. package/docs/de/intlayer_with_astro_lit.md +25 -1
  212. package/docs/de/intlayer_with_astro_preact.md +26 -1
  213. package/docs/de/intlayer_with_astro_react.md +26 -1
  214. package/docs/de/intlayer_with_astro_solid.md +26 -1
  215. package/docs/de/intlayer_with_astro_svelte.md +25 -1
  216. package/docs/de/intlayer_with_astro_vue.md +25 -1
  217. package/docs/de/intlayer_with_remix_3.md +22 -1
  218. package/docs/de/self_hosting.md +404 -227
  219. package/docs/en/agent_skills.md +29 -1
  220. package/docs/en/benchmark/nextjs.md +19 -16
  221. package/docs/en/benchmark/solid.md +26 -9
  222. package/docs/en/benchmark/svelte.md +22 -7
  223. package/docs/en/benchmark/tanstack.md +21 -17
  224. package/docs/en/benchmark/vue.md +20 -11
  225. package/docs/en/chrome_extension.md +130 -0
  226. package/docs/en/cli/index.md +11 -1
  227. package/docs/en/cli/infra.md +175 -0
  228. package/docs/en/cli/init.md +25 -1
  229. package/docs/en/cli/upgrade.md +125 -0
  230. package/docs/en/dictionary/html.md +173 -5
  231. package/docs/en/dictionary/markdown.md +263 -1
  232. package/docs/en/intlayer_with_analog.md +23 -1
  233. package/docs/en/intlayer_with_angular_19.md +24 -1
  234. package/docs/en/intlayer_with_angular_21.md +24 -1
  235. package/docs/en/intlayer_with_astro.md +24 -1
  236. package/docs/en/intlayer_with_astro_lit.md +25 -1
  237. package/docs/en/intlayer_with_astro_preact.md +26 -1
  238. package/docs/en/intlayer_with_astro_react.md +26 -1
  239. package/docs/en/intlayer_with_astro_solid.md +26 -1
  240. package/docs/en/intlayer_with_astro_svelte.md +25 -1
  241. package/docs/en/intlayer_with_astro_vue.md +25 -1
  242. package/docs/en/intlayer_with_remix_3.md +22 -1
  243. package/docs/en/self_hosting.md +418 -176
  244. package/docs/en-GB/benchmark/nextjs.md +19 -16
  245. package/docs/en-GB/benchmark/solid.md +26 -9
  246. package/docs/en-GB/benchmark/svelte.md +22 -7
  247. package/docs/en-GB/benchmark/tanstack.md +20 -16
  248. package/docs/en-GB/benchmark/vue.md +20 -11
  249. package/docs/en-GB/chrome_extension.md +130 -0
  250. package/docs/en-GB/cli/index.md +11 -1
  251. package/docs/en-GB/cli/infra.md +162 -0
  252. package/docs/en-GB/cli/init.md +24 -1
  253. package/docs/en-GB/cli/upgrade.md +125 -0
  254. package/docs/en-GB/dictionary/html.md +173 -5
  255. package/docs/en-GB/dictionary/markdown.md +263 -1
  256. package/docs/en-GB/intlayer_with_analog.md +23 -1
  257. package/docs/en-GB/intlayer_with_angular_19.md +24 -1
  258. package/docs/en-GB/intlayer_with_angular_21.md +24 -1
  259. package/docs/en-GB/intlayer_with_astro.md +24 -1
  260. package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
  261. package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
  262. package/docs/en-GB/intlayer_with_astro_react.md +26 -1
  263. package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
  264. package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
  265. package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
  266. package/docs/en-GB/intlayer_with_remix_3.md +22 -1
  267. package/docs/en-GB/self_hosting.md +381 -206
  268. package/docs/es/benchmark/nextjs.md +19 -16
  269. package/docs/es/benchmark/solid.md +26 -9
  270. package/docs/es/benchmark/svelte.md +22 -7
  271. package/docs/es/benchmark/tanstack.md +20 -16
  272. package/docs/es/benchmark/vue.md +19 -10
  273. package/docs/es/chrome_extension.md +130 -0
  274. package/docs/es/cli/index.md +11 -1
  275. package/docs/es/cli/infra.md +162 -0
  276. package/docs/es/cli/init.md +24 -1
  277. package/docs/es/cli/upgrade.md +125 -0
  278. package/docs/es/dictionary/html.md +173 -5
  279. package/docs/es/dictionary/markdown.md +263 -1
  280. package/docs/es/intlayer_with_analog.md +23 -1
  281. package/docs/es/intlayer_with_angular_19.md +24 -1
  282. package/docs/es/intlayer_with_angular_21.md +24 -1
  283. package/docs/es/intlayer_with_astro.md +24 -1
  284. package/docs/es/intlayer_with_astro_lit.md +25 -1
  285. package/docs/es/intlayer_with_astro_preact.md +26 -1
  286. package/docs/es/intlayer_with_astro_react.md +26 -1
  287. package/docs/es/intlayer_with_astro_solid.md +26 -1
  288. package/docs/es/intlayer_with_astro_svelte.md +25 -1
  289. package/docs/es/intlayer_with_astro_vue.md +25 -1
  290. package/docs/es/intlayer_with_remix_3.md +22 -1
  291. package/docs/es/self_hosting.md +400 -223
  292. package/docs/fr/benchmark/nextjs.md +19 -16
  293. package/docs/fr/benchmark/solid.md +26 -9
  294. package/docs/fr/benchmark/svelte.md +22 -7
  295. package/docs/fr/benchmark/tanstack.md +20 -16
  296. package/docs/fr/benchmark/vue.md +20 -11
  297. package/docs/fr/chrome_extension.md +130 -0
  298. package/docs/fr/cli/index.md +11 -1
  299. package/docs/fr/cli/infra.md +162 -0
  300. package/docs/fr/cli/init.md +24 -1
  301. package/docs/fr/cli/upgrade.md +125 -0
  302. package/docs/fr/dictionary/html.md +173 -5
  303. package/docs/fr/dictionary/markdown.md +265 -4
  304. package/docs/fr/intlayer_with_analog.md +23 -1
  305. package/docs/fr/intlayer_with_angular_19.md +24 -1
  306. package/docs/fr/intlayer_with_angular_21.md +24 -1
  307. package/docs/fr/intlayer_with_astro.md +24 -1
  308. package/docs/fr/intlayer_with_astro_lit.md +25 -1
  309. package/docs/fr/intlayer_with_astro_preact.md +26 -1
  310. package/docs/fr/intlayer_with_astro_react.md +26 -1
  311. package/docs/fr/intlayer_with_astro_solid.md +26 -1
  312. package/docs/fr/intlayer_with_astro_svelte.md +25 -1
  313. package/docs/fr/intlayer_with_astro_vue.md +25 -1
  314. package/docs/fr/intlayer_with_remix_3.md +22 -1
  315. package/docs/fr/self_hosting.md +401 -224
  316. package/docs/hi/benchmark/nextjs.md +19 -16
  317. package/docs/hi/benchmark/solid.md +26 -9
  318. package/docs/hi/benchmark/svelte.md +22 -7
  319. package/docs/hi/benchmark/tanstack.md +20 -16
  320. package/docs/hi/benchmark/vue.md +20 -11
  321. package/docs/hi/chrome_extension.md +130 -0
  322. package/docs/hi/cli/index.md +11 -1
  323. package/docs/hi/cli/infra.md +162 -0
  324. package/docs/hi/cli/init.md +24 -1
  325. package/docs/hi/cli/upgrade.md +125 -0
  326. package/docs/hi/dictionary/html.md +173 -5
  327. package/docs/hi/dictionary/markdown.md +263 -1
  328. package/docs/hi/intlayer_with_analog.md +23 -1
  329. package/docs/hi/intlayer_with_angular_19.md +24 -1
  330. package/docs/hi/intlayer_with_angular_21.md +24 -1
  331. package/docs/hi/intlayer_with_astro.md +24 -1
  332. package/docs/hi/intlayer_with_astro_lit.md +25 -1
  333. package/docs/hi/intlayer_with_astro_preact.md +26 -1
  334. package/docs/hi/intlayer_with_astro_react.md +26 -1
  335. package/docs/hi/intlayer_with_astro_solid.md +26 -1
  336. package/docs/hi/intlayer_with_astro_svelte.md +25 -1
  337. package/docs/hi/intlayer_with_astro_vue.md +25 -1
  338. package/docs/hi/intlayer_with_remix_3.md +22 -1
  339. package/docs/hi/self_hosting.md +409 -235
  340. package/docs/id/benchmark/nextjs.md +19 -16
  341. package/docs/id/benchmark/solid.md +26 -9
  342. package/docs/id/benchmark/svelte.md +22 -7
  343. package/docs/id/benchmark/tanstack.md +20 -16
  344. package/docs/id/benchmark/vue.md +20 -11
  345. package/docs/id/chrome_extension.md +130 -0
  346. package/docs/id/cli/index.md +11 -1
  347. package/docs/id/cli/infra.md +162 -0
  348. package/docs/id/cli/init.md +24 -1
  349. package/docs/id/cli/upgrade.md +125 -0
  350. package/docs/id/dictionary/html.md +173 -5
  351. package/docs/id/dictionary/markdown.md +263 -1
  352. package/docs/id/intlayer_with_analog.md +23 -1
  353. package/docs/id/intlayer_with_angular_19.md +24 -1
  354. package/docs/id/intlayer_with_angular_21.md +24 -1
  355. package/docs/id/intlayer_with_astro.md +24 -1
  356. package/docs/id/intlayer_with_astro_lit.md +25 -1
  357. package/docs/id/intlayer_with_astro_preact.md +26 -1
  358. package/docs/id/intlayer_with_astro_react.md +26 -1
  359. package/docs/id/intlayer_with_astro_solid.md +26 -1
  360. package/docs/id/intlayer_with_astro_svelte.md +25 -1
  361. package/docs/id/intlayer_with_astro_vue.md +25 -1
  362. package/docs/id/intlayer_with_remix_3.md +22 -1
  363. package/docs/id/self_hosting.md +416 -243
  364. package/docs/it/benchmark/nextjs.md +19 -16
  365. package/docs/it/benchmark/solid.md +26 -9
  366. package/docs/it/benchmark/svelte.md +22 -7
  367. package/docs/it/benchmark/tanstack.md +20 -16
  368. package/docs/it/benchmark/vue.md +19 -10
  369. package/docs/it/chrome_extension.md +130 -0
  370. package/docs/it/cli/index.md +11 -1
  371. package/docs/it/cli/infra.md +162 -0
  372. package/docs/it/cli/init.md +24 -1
  373. package/docs/it/cli/upgrade.md +125 -0
  374. package/docs/it/dictionary/html.md +173 -5
  375. package/docs/it/dictionary/markdown.md +263 -1
  376. package/docs/it/intlayer_with_analog.md +23 -1
  377. package/docs/it/intlayer_with_angular_19.md +24 -1
  378. package/docs/it/intlayer_with_angular_21.md +24 -1
  379. package/docs/it/intlayer_with_astro.md +24 -1
  380. package/docs/it/intlayer_with_astro_lit.md +25 -1
  381. package/docs/it/intlayer_with_astro_preact.md +26 -1
  382. package/docs/it/intlayer_with_astro_react.md +26 -1
  383. package/docs/it/intlayer_with_astro_solid.md +26 -1
  384. package/docs/it/intlayer_with_astro_svelte.md +25 -1
  385. package/docs/it/intlayer_with_astro_vue.md +25 -1
  386. package/docs/it/intlayer_with_remix_3.md +22 -1
  387. package/docs/it/self_hosting.md +412 -237
  388. package/docs/ja/benchmark/nextjs.md +19 -16
  389. package/docs/ja/benchmark/solid.md +26 -9
  390. package/docs/ja/benchmark/svelte.md +22 -7
  391. package/docs/ja/benchmark/tanstack.md +18 -14
  392. package/docs/ja/benchmark/vue.md +19 -10
  393. package/docs/ja/chrome_extension.md +130 -0
  394. package/docs/ja/cli/index.md +11 -1
  395. package/docs/ja/cli/infra.md +162 -0
  396. package/docs/ja/cli/init.md +24 -1
  397. package/docs/ja/cli/upgrade.md +125 -0
  398. package/docs/ja/dictionary/html.md +173 -5
  399. package/docs/ja/dictionary/markdown.md +263 -1
  400. package/docs/ja/intlayer_with_analog.md +23 -1
  401. package/docs/ja/intlayer_with_angular_19.md +24 -1
  402. package/docs/ja/intlayer_with_angular_21.md +24 -1
  403. package/docs/ja/intlayer_with_astro.md +24 -1
  404. package/docs/ja/intlayer_with_astro_lit.md +25 -1
  405. package/docs/ja/intlayer_with_astro_preact.md +26 -1
  406. package/docs/ja/intlayer_with_astro_react.md +26 -1
  407. package/docs/ja/intlayer_with_astro_solid.md +26 -1
  408. package/docs/ja/intlayer_with_astro_svelte.md +25 -1
  409. package/docs/ja/intlayer_with_astro_vue.md +25 -1
  410. package/docs/ja/intlayer_with_remix_3.md +22 -1
  411. package/docs/ja/self_hosting.md +398 -223
  412. package/docs/ko/benchmark/nextjs.md +19 -16
  413. package/docs/ko/benchmark/solid.md +26 -9
  414. package/docs/ko/benchmark/svelte.md +22 -7
  415. package/docs/ko/benchmark/tanstack.md +20 -16
  416. package/docs/ko/benchmark/vue.md +20 -11
  417. package/docs/ko/chrome_extension.md +130 -0
  418. package/docs/ko/cli/index.md +11 -1
  419. package/docs/ko/cli/infra.md +162 -0
  420. package/docs/ko/cli/init.md +24 -1
  421. package/docs/ko/cli/upgrade.md +126 -0
  422. package/docs/ko/dictionary/html.md +173 -5
  423. package/docs/ko/dictionary/markdown.md +263 -1
  424. package/docs/ko/intlayer_with_analog.md +23 -1
  425. package/docs/ko/intlayer_with_angular_19.md +24 -1
  426. package/docs/ko/intlayer_with_angular_21.md +24 -1
  427. package/docs/ko/intlayer_with_astro.md +24 -1
  428. package/docs/ko/intlayer_with_astro_lit.md +25 -1
  429. package/docs/ko/intlayer_with_astro_preact.md +26 -1
  430. package/docs/ko/intlayer_with_astro_react.md +26 -1
  431. package/docs/ko/intlayer_with_astro_solid.md +26 -1
  432. package/docs/ko/intlayer_with_astro_svelte.md +25 -1
  433. package/docs/ko/intlayer_with_astro_vue.md +25 -1
  434. package/docs/ko/intlayer_with_remix_3.md +22 -1
  435. package/docs/ko/self_hosting.md +411 -238
  436. package/docs/pl/benchmark/nextjs.md +19 -16
  437. package/docs/pl/benchmark/solid.md +26 -9
  438. package/docs/pl/benchmark/svelte.md +22 -7
  439. package/docs/pl/benchmark/tanstack.md +20 -16
  440. package/docs/pl/benchmark/vue.md +20 -11
  441. package/docs/pl/chrome_extension.md +130 -0
  442. package/docs/pl/cli/index.md +11 -1
  443. package/docs/pl/cli/infra.md +162 -0
  444. package/docs/pl/cli/init.md +24 -1
  445. package/docs/pl/cli/upgrade.md +125 -0
  446. package/docs/pl/dictionary/html.md +173 -5
  447. package/docs/pl/dictionary/markdown.md +263 -1
  448. package/docs/pl/intlayer_with_analog.md +23 -1
  449. package/docs/pl/intlayer_with_angular_19.md +24 -1
  450. package/docs/pl/intlayer_with_angular_21.md +24 -1
  451. package/docs/pl/intlayer_with_astro.md +24 -1
  452. package/docs/pl/intlayer_with_astro_lit.md +25 -1
  453. package/docs/pl/intlayer_with_astro_preact.md +26 -1
  454. package/docs/pl/intlayer_with_astro_react.md +26 -1
  455. package/docs/pl/intlayer_with_astro_solid.md +26 -1
  456. package/docs/pl/intlayer_with_astro_svelte.md +25 -1
  457. package/docs/pl/intlayer_with_astro_vue.md +25 -1
  458. package/docs/pl/intlayer_with_remix_3.md +22 -1
  459. package/docs/pl/self_hosting.md +408 -233
  460. package/docs/pt/benchmark/nextjs.md +19 -16
  461. package/docs/pt/benchmark/solid.md +26 -9
  462. package/docs/pt/benchmark/svelte.md +22 -7
  463. package/docs/pt/benchmark/tanstack.md +20 -16
  464. package/docs/pt/benchmark/vue.md +19 -10
  465. package/docs/pt/chrome_extension.md +130 -0
  466. package/docs/pt/cli/index.md +11 -1
  467. package/docs/pt/cli/infra.md +162 -0
  468. package/docs/pt/cli/init.md +24 -1
  469. package/docs/pt/cli/upgrade.md +125 -0
  470. package/docs/pt/dictionary/html.md +173 -5
  471. package/docs/pt/dictionary/markdown.md +263 -1
  472. package/docs/pt/intlayer_with_analog.md +23 -1
  473. package/docs/pt/intlayer_with_angular_19.md +24 -1
  474. package/docs/pt/intlayer_with_angular_21.md +24 -1
  475. package/docs/pt/intlayer_with_astro.md +24 -1
  476. package/docs/pt/intlayer_with_astro_lit.md +25 -1
  477. package/docs/pt/intlayer_with_astro_preact.md +26 -1
  478. package/docs/pt/intlayer_with_astro_react.md +26 -1
  479. package/docs/pt/intlayer_with_astro_solid.md +26 -1
  480. package/docs/pt/intlayer_with_astro_svelte.md +25 -1
  481. package/docs/pt/intlayer_with_astro_vue.md +25 -1
  482. package/docs/pt/intlayer_with_remix_3.md +22 -1
  483. package/docs/pt/self_hosting.md +399 -224
  484. package/docs/ru/benchmark/nextjs.md +19 -16
  485. package/docs/ru/benchmark/solid.md +26 -9
  486. package/docs/ru/benchmark/svelte.md +22 -7
  487. package/docs/ru/benchmark/tanstack.md +20 -16
  488. package/docs/ru/benchmark/vue.md +20 -11
  489. package/docs/ru/chrome_extension.md +130 -0
  490. package/docs/ru/cli/index.md +11 -1
  491. package/docs/ru/cli/infra.md +162 -0
  492. package/docs/ru/cli/init.md +24 -1
  493. package/docs/ru/cli/upgrade.md +125 -0
  494. package/docs/ru/dictionary/html.md +173 -5
  495. package/docs/ru/dictionary/markdown.md +263 -1
  496. package/docs/ru/intlayer_with_analog.md +23 -1
  497. package/docs/ru/intlayer_with_angular_19.md +24 -1
  498. package/docs/ru/intlayer_with_angular_21.md +24 -1
  499. package/docs/ru/intlayer_with_astro.md +24 -1
  500. package/docs/ru/intlayer_with_astro_lit.md +25 -1
  501. package/docs/ru/intlayer_with_astro_preact.md +26 -1
  502. package/docs/ru/intlayer_with_astro_react.md +26 -1
  503. package/docs/ru/intlayer_with_astro_solid.md +26 -1
  504. package/docs/ru/intlayer_with_astro_svelte.md +25 -1
  505. package/docs/ru/intlayer_with_astro_vue.md +25 -1
  506. package/docs/ru/intlayer_with_remix_3.md +22 -1
  507. package/docs/ru/self_hosting.md +403 -228
  508. package/docs/tr/benchmark/nextjs.md +19 -16
  509. package/docs/tr/benchmark/solid.md +26 -9
  510. package/docs/tr/benchmark/svelte.md +22 -7
  511. package/docs/tr/benchmark/tanstack.md +20 -16
  512. package/docs/tr/benchmark/vue.md +20 -11
  513. package/docs/tr/chrome_extension.md +130 -0
  514. package/docs/tr/cli/index.md +11 -1
  515. package/docs/tr/cli/infra.md +162 -0
  516. package/docs/tr/cli/init.md +24 -1
  517. package/docs/tr/cli/upgrade.md +125 -0
  518. package/docs/tr/dictionary/html.md +173 -5
  519. package/docs/tr/dictionary/markdown.md +263 -1
  520. package/docs/tr/intlayer_with_analog.md +23 -1
  521. package/docs/tr/intlayer_with_angular_19.md +24 -1
  522. package/docs/tr/intlayer_with_angular_21.md +24 -1
  523. package/docs/tr/intlayer_with_astro.md +24 -1
  524. package/docs/tr/intlayer_with_astro_lit.md +25 -1
  525. package/docs/tr/intlayer_with_astro_preact.md +26 -1
  526. package/docs/tr/intlayer_with_astro_react.md +26 -1
  527. package/docs/tr/intlayer_with_astro_solid.md +26 -1
  528. package/docs/tr/intlayer_with_astro_svelte.md +25 -1
  529. package/docs/tr/intlayer_with_astro_vue.md +25 -1
  530. package/docs/tr/intlayer_with_remix_3.md +22 -1
  531. package/docs/tr/self_hosting.md +410 -234
  532. package/docs/uk/benchmark/nextjs.md +19 -16
  533. package/docs/uk/benchmark/solid.md +26 -9
  534. package/docs/uk/benchmark/svelte.md +22 -7
  535. package/docs/uk/benchmark/tanstack.md +20 -16
  536. package/docs/uk/benchmark/vue.md +20 -11
  537. package/docs/uk/chrome_extension.md +130 -0
  538. package/docs/uk/cli/index.md +11 -1
  539. package/docs/uk/cli/infra.md +162 -0
  540. package/docs/uk/cli/init.md +24 -1
  541. package/docs/uk/cli/upgrade.md +125 -0
  542. package/docs/uk/dictionary/html.md +173 -5
  543. package/docs/uk/dictionary/markdown.md +263 -1
  544. package/docs/uk/intlayer_with_analog.md +23 -1
  545. package/docs/uk/intlayer_with_angular_19.md +24 -1
  546. package/docs/uk/intlayer_with_angular_21.md +24 -1
  547. package/docs/uk/intlayer_with_astro.md +24 -1
  548. package/docs/uk/intlayer_with_astro_lit.md +25 -1
  549. package/docs/uk/intlayer_with_astro_preact.md +26 -1
  550. package/docs/uk/intlayer_with_astro_react.md +26 -1
  551. package/docs/uk/intlayer_with_astro_solid.md +26 -1
  552. package/docs/uk/intlayer_with_astro_svelte.md +25 -1
  553. package/docs/uk/intlayer_with_astro_vue.md +25 -1
  554. package/docs/uk/intlayer_with_remix_3.md +22 -1
  555. package/docs/uk/self_hosting.md +413 -238
  556. package/docs/vi/benchmark/nextjs.md +19 -16
  557. package/docs/vi/benchmark/solid.md +26 -9
  558. package/docs/vi/benchmark/svelte.md +22 -7
  559. package/docs/vi/benchmark/tanstack.md +20 -16
  560. package/docs/vi/benchmark/vue.md +20 -11
  561. package/docs/vi/chrome_extension.md +130 -0
  562. package/docs/vi/cli/index.md +11 -1
  563. package/docs/vi/cli/infra.md +162 -0
  564. package/docs/vi/cli/init.md +24 -1
  565. package/docs/vi/cli/upgrade.md +125 -0
  566. package/docs/vi/dictionary/html.md +173 -5
  567. package/docs/vi/dictionary/markdown.md +263 -1
  568. package/docs/vi/intlayer_with_analog.md +23 -1
  569. package/docs/vi/intlayer_with_angular_19.md +24 -1
  570. package/docs/vi/intlayer_with_angular_21.md +24 -1
  571. package/docs/vi/intlayer_with_astro.md +24 -1
  572. package/docs/vi/intlayer_with_astro_lit.md +25 -1
  573. package/docs/vi/intlayer_with_astro_preact.md +26 -1
  574. package/docs/vi/intlayer_with_astro_react.md +26 -1
  575. package/docs/vi/intlayer_with_astro_solid.md +26 -1
  576. package/docs/vi/intlayer_with_astro_svelte.md +25 -1
  577. package/docs/vi/intlayer_with_astro_vue.md +25 -1
  578. package/docs/vi/intlayer_with_remix_3.md +22 -1
  579. package/docs/vi/self_hosting.md +408 -234
  580. package/docs/zh/benchmark/nextjs.md +19 -16
  581. package/docs/zh/benchmark/solid.md +26 -9
  582. package/docs/zh/benchmark/svelte.md +22 -7
  583. package/docs/zh/benchmark/tanstack.md +19 -15
  584. package/docs/zh/benchmark/vue.md +20 -11
  585. package/docs/zh/chrome_extension.md +130 -0
  586. package/docs/zh/cli/index.md +11 -1
  587. package/docs/zh/cli/infra.md +162 -0
  588. package/docs/zh/cli/init.md +24 -1
  589. package/docs/zh/cli/upgrade.md +125 -0
  590. package/docs/zh/dictionary/html.md +172 -5
  591. package/docs/zh/dictionary/markdown.md +262 -1
  592. package/docs/zh/intlayer_with_analog.md +23 -1
  593. package/docs/zh/intlayer_with_angular_19.md +24 -1
  594. package/docs/zh/intlayer_with_angular_21.md +24 -1
  595. package/docs/zh/intlayer_with_astro.md +24 -1
  596. package/docs/zh/intlayer_with_astro_lit.md +25 -1
  597. package/docs/zh/intlayer_with_astro_preact.md +26 -1
  598. package/docs/zh/intlayer_with_astro_react.md +26 -1
  599. package/docs/zh/intlayer_with_astro_solid.md +26 -1
  600. package/docs/zh/intlayer_with_astro_svelte.md +25 -1
  601. package/docs/zh/intlayer_with_astro_vue.md +25 -1
  602. package/docs/zh/intlayer_with_remix_3.md +22 -1
  603. package/docs/zh/self_hosting.md +410 -237
  604. package/legal/ar/privacy_notice.md +9 -3
  605. package/legal/de/privacy_notice.md +9 -3
  606. package/legal/en/privacy_notice.md +10 -3
  607. package/legal/en-GB/privacy_notice.md +9 -3
  608. package/legal/es/privacy_notice.md +9 -3
  609. package/legal/fr/privacy_notice.md +9 -3
  610. package/legal/hi/privacy_notice.md +9 -3
  611. package/legal/id/privacy_notice.md +9 -3
  612. package/legal/it/privacy_notice.md +9 -3
  613. package/legal/ja/privacy_notice.md +9 -3
  614. package/legal/ko/privacy_notice.md +9 -3
  615. package/legal/pl/privacy_notice.md +9 -3
  616. package/legal/pt/privacy_notice.md +9 -3
  617. package/legal/ru/privacy_notice.md +9 -3
  618. package/legal/tr/privacy_notice.md +9 -3
  619. package/legal/uk/privacy_notice.md +9 -3
  620. package/legal/vi/privacy_notice.md +9 -3
  621. package/legal/zh/privacy_notice.md +9 -3
  622. package/package.json +6 -6
  623. package/src/generated/blog.entry.ts +20 -0
  624. package/src/generated/docs.entry.ts +60 -40
  625. package/docs/ar/roadmap.md +0 -321
  626. package/docs/de/roadmap.md +0 -322
  627. package/docs/en/intlayer_with_astro_vanilla.md +0 -713
  628. package/docs/en/roadmap.md +0 -325
  629. package/docs/en-GB/roadmap.md +0 -322
  630. package/docs/es/roadmap.md +0 -322
  631. package/docs/fr/roadmap.md +0 -322
  632. package/docs/hi/roadmap.md +0 -322
  633. package/docs/id/roadmap.md +0 -325
  634. package/docs/it/roadmap.md +0 -322
  635. package/docs/ja/roadmap.md +0 -322
  636. package/docs/ko/roadmap.md +0 -322
  637. package/docs/pl/roadmap.md +0 -325
  638. package/docs/pt/roadmap.md +0 -322
  639. package/docs/ru/roadmap.md +0 -322
  640. package/docs/tr/roadmap.md +0 -325
  641. package/docs/uk/roadmap.md +0 -325
  642. package/docs/vi/roadmap.md +0 -325
  643. package/docs/zh/roadmap.md +0 -322
@@ -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
@@ -0,0 +1,125 @@
1
+ ---
2
+ createdAt: 2026-09-23
3
+ updatedAt: 2026-09-23
4
+ title: CLI - Nâng cấp các gói Intlayer
5
+ description: Tìm hiểu cách sử dụng lệnh upgrade của Intlayer CLI để liệt kê từng gói Intlayer trong dự án hoặc monorepo của bạn và nâng cấp chúng lên phiên bản mới nhất.
6
+ keywords:
7
+ - CLI
8
+ - Upgrade
9
+ - Nâng cấp
10
+ - Gói
11
+ - Monorepo
12
+ - Intlayer
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - upgrade
18
+ history:
19
+ - version: 9.5.8
20
+ date: 2026-09-23
21
+ changes: "Thêm lệnh upgrade"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # Nâng cấp các gói Intlayer
26
+
27
+ ```bash packageManager="npm"
28
+ npx intlayer upgrade
29
+ ```
30
+
31
+ ```bash packageManager="yarn"
32
+ yarn intlayer upgrade
33
+ ```
34
+
35
+ ```bash packageManager="pnpm"
36
+ pnpm intlayer upgrade
37
+ ```
38
+
39
+ ```bash packageManager="bun"
40
+ bun x intlayer upgrade
41
+ ```
42
+
43
+ Lệnh `upgrade` liệt kê các gói Intlayer được khai báo trong mỗi `package.json` của dự án, bao gồm cả các workspace monorepo, và nâng cấp chúng lên phiên bản mới nhất đã xuất bản. Lệnh này chạy bước nâng cấp gói tương tự như `intlayer init` một cách độc lập.
44
+
45
+ ## Đối số:
46
+
47
+ - `--project-root [projectRoot]` - Tùy chọn. Thư mục gốc của dự án. Theo mặc định, lệnh bắt đầu từ `package.json` gần nhất phía trên thư mục làm việc hiện tại.
48
+ - `--dry-run` - Tùy chọn. Liệt kê các gói và phiên bản mục tiêu của chúng mà không sửa đổi bất kỳ tệp nào.
49
+ - `--tag <tag>` - Tùy chọn. npm dist-tag cần nâng cấp lên (ví dụ `canary`). Mặc định là `latest`.
50
+
51
+ ## Chức năng hoạt động:
52
+
53
+ 1. **Liệt kê các gói Intlayer** - Quét từng `package.json` của dự án (bỏ qua `node_modules` và kết quả bản dựng) để tìm các phụ thuộc và devDependencies `intlayer`, `@intlayer/*`, `*-intlayer` và `intlayer-*`.
54
+ 2. **Lấy phiên bản mục tiêu** - Đọc phiên bản của dist-tag đã chọn (mặc định là `latest`) của từng gói từ npm registry.
55
+ 3. **Viết lại dải phiên bản** - Cập nhật trực tiếp từng dải phiên bản đã lỗi thời trong tệp, giữ nguyên toán tử (`^`, `~` hoặc không có) và thụt lề của tệp.
56
+ 4. **Cài đặt một lần** - Chạy một lượt cài đặt duy nhất từ thư mục gốc của workspace (thư mục gần nhất có tệp khóa), sử dụng trình quản lý gói sở hữu tệp khóa đó:
57
+
58
+ | Tệp khóa (Lock file) | Lệnh |
59
+ | ------------------------------ | -------------- |
60
+ | `bun.lock` / `bun.lockb` | `bun install` |
61
+ | `pnpm-lock.yaml` | `pnpm install` |
62
+ | `yarn.lock` | `yarn install` |
63
+ | `package-lock.json` hoặc không | `npm install` |
64
+
65
+ Nếu không có tệp khóa, trường `packageManager` của `package.json` (ví dụ `"bun@1.2.0"`) sẽ được sử dụng trước khi chuyển sang npm.
66
+
67
+ Các dải phiên bản không trỏ đến registry, chẳng hạn như `workspace:*`, `file:`, `link:`, `catalog:` hoặc URL git, sẽ không bao giờ bị sửa đổi.
68
+
69
+ ## Ví dụ:
70
+
71
+ ### Liệt kê các nâng cấp có sẵn mà không áp dụng chúng:
72
+
73
+ ```bash packageManager="npm"
74
+ npx intlayer upgrade --dry-run
75
+ ```
76
+
77
+ ```bash packageManager="yarn"
78
+ yarn intlayer upgrade --dry-run
79
+ ```
80
+
81
+ ```bash packageManager="pnpm"
82
+ pnpm intlayer upgrade --dry-run
83
+ ```
84
+
85
+ ```bash packageManager="bun"
86
+ bun x intlayer upgrade --dry-run
87
+ ```
88
+
89
+ ### Nâng cấp lên bản phát hành canary:
90
+
91
+ ```bash packageManager="npm"
92
+ npx intlayer upgrade --tag canary
93
+ ```
94
+
95
+ ```bash packageManager="yarn"
96
+ yarn intlayer upgrade --tag canary
97
+ ```
98
+
99
+ ```bash packageManager="pnpm"
100
+ pnpm intlayer upgrade --tag canary
101
+ ```
102
+
103
+ ```bash packageManager="bun"
104
+ bun x intlayer upgrade --tag canary
105
+ ```
106
+
107
+ ## Ví dụ đầu ra:
108
+
109
+ ```bash
110
+ npx intlayer upgrade
111
+ Intlayer packages:
112
+ package.json
113
+ intlayer ^9.0.0 → ^9.5.7
114
+ apps/web/package.json
115
+ next-intlayer ^9.5.7 (latest)
116
+ vite-intlayer ~9.2.0 → ~9.5.7
117
+ Running bun install...
118
+ ✓ Upgraded 2 Intlayer dependencies to latest
119
+ ```
120
+
121
+ ## Ghi chú:
122
+
123
+ - Chạy lệnh từ thư mục gốc của kho lưu trữ để nâng cấp mọi workspace. Chạy lệnh từ một workspace cụ thể để chỉ nâng cấp riêng workspace đó.
124
+ - Các gói không thể lấy được phiên bản (ngoại tuyến, gói riêng tư hoặc chưa xuất bản) sẽ được liệt kê và giữ nguyên.
125
+ - Nếu quá trình cài đặt thất bại, các dải phiên bản đã nâng cấp vẫn được giữ lại trong `package.json`. Hãy chạy lệnh cài đặt của trình quản lý gói theo cách thủ công.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-01-20
3
- updatedAt: 2026-01-22
3
+ updatedAt: 2026-09-21
4
4
  title: Nội dung HTML
5
5
  description: Tìm hiểu cách khai báo và sử dụng nội dung HTML với các component tùy chỉnh trong Intlayer. Theo dõi tài liệu này để nhúng nội dung giống HTML phong phú với việc thay thế component động trong dự án quốc tế hóa của bạn.
6
6
  keywords:
@@ -13,6 +13,8 @@ keywords:
13
13
  - React
14
14
  - Vue
15
15
  - Svelte
16
+ - Remix
17
+ - Astro
16
18
  slugs:
17
19
  - doc
18
20
  - concept
@@ -235,6 +237,83 @@ Khi bạn truy cập nội dung qua `useIntlayer`, các nút HTML đã được
235
237
  ```
236
238
 
237
239
  </Tab>
240
+ <Tab label="Remix" value="remix">
241
+ Trong Remix 3, các nút HTML giải quyết thành một chuỗi HTML. Chèn chuỗi đó bằng prop `innerHTML` của Remix JSX hoặc với `html.raw` trong chế độ xem `html-template`.
242
+
243
+ ```tsx fileName="src/views/home.tsx"
244
+ import { useIntlayer } from "remix-intlayer";
245
+
246
+ export const HomePage = () => () => {
247
+ const { myHtmlContent } = useIntlayer("app");
248
+
249
+ return <div innerHTML={myHtmlContent.value} />;
250
+ };
251
+ ```
252
+
253
+ ```ts fileName="src/views/home.ts"
254
+ import { html } from "remix/html-template";
255
+ import { useIntlayer } from "remix-intlayer";
256
+
257
+ export const renderHomePage = () => {
258
+ const { myHtmlContent } = useIntlayer("app");
259
+
260
+ return html.raw`<div>${myHtmlContent.value}</div>`;
261
+ };
262
+ ```
263
+
264
+ > Remix mặc định thoát các giá trị được nội suy. `innerHTML` và `html.raw` là hai cách từ chối thoát, đây là điều mà một chuỗi HTML cần.
265
+
266
+ Sử dụng phương thức `.use()` để ghi đè các thẻ hoặc ánh xạ các thành phần tùy chỉnh. Các ghi đè là các hàm trả về một chuỗi HTML:
267
+
268
+ ```tsx
269
+ <div
270
+ innerHTML={myHtmlContent.use({
271
+ p: ({ children }) => `<p class="prose">${children}</p>`,
272
+ CustomLink: ({ children }) => `<a href="/details">${children}</a>`,
273
+ })}
274
+ />
275
+ ```
276
+
277
+ </Tab>
278
+ <Tab label="Astro" value="astro">
279
+ Trong Astro, các nút HTML giải quyết thành một chuỗi HTML. Chèn chuỗi đó bằng chỉ thị `set:html` trong mẫu hoặc với `innerHTML` trong `<script>` phía client.
280
+
281
+ ```astro fileName="src/pages/index.astro"
282
+ ---
283
+ import { useIntlayer } from "astro-intlayer";
284
+
285
+ const { myHtmlContent } = useIntlayer("app");
286
+ ---
287
+
288
+ <div set:html={myHtmlContent.value} />
289
+ ```
290
+
291
+ ```astro fileName="src/components/Content.astro"
292
+ <div id="content"></div>
293
+
294
+ <script>
295
+ import { useIntlayer } from "astro-intlayer";
296
+
297
+ const { myHtmlContent } = useIntlayer("app");
298
+
299
+ document.querySelector("#content")!.innerHTML = myHtmlContent.value;
300
+ </script>
301
+ ```
302
+
303
+ > Astro mặc định thoát `{biểu thức}`. `set:html` là cách từ chối thoát, đây là điều mà một chuỗi HTML cần.
304
+
305
+ Sử dụng phương thức `.use()` để ghi đè các thẻ hoặc ánh xạ các thành phần tùy chỉnh. Các ghi đè là các hàm trả về một chuỗi HTML:
306
+
307
+ ```astro
308
+ <div
309
+ set:html={myHtmlContent.use({
310
+ p: ({ children }) => `<p class="prose">${children}</p>`,
311
+ CustomLink: ({ children }) => `<a href="/details">${children}</a>`,
312
+ })}
313
+ />
314
+ ```
315
+
316
+ </Tab>
238
317
  </Tabs>
239
318
 
240
319
  ## Cấu hình toàn cục với `HTMLProvider`
@@ -470,6 +549,41 @@ Bạn có thể cấu hình cách render HTML ở mức toàn cục cho toàn b
470
549
  > Import trình render HTML của bạn theo cách động là một cách tốt để giảm kích thước bundle của ứng dụng.
471
550
 
472
551
  </Tab>
552
+ <Tab label="Remix" value="remix">
553
+
554
+ Remix không có cây thành phần để chứa provider, do đó cấu hình được cài đặt một lần, dưới dạng singleton, khi máy chủ khởi động. Nó cấu hình renderer được trả về bởi `useHTMLRenderer()`. Các nút `html` được trả về bởi `useIntlayer` được kết xuất nguyên trạng; ghi đè các thẻ của chúng trên mỗi nút bằng `.use()`.
555
+
556
+ ```typescript fileName="src/router.ts"
557
+ import { installIntlayerHTML } from "remix-intlayer/html";
558
+
559
+ installIntlayerHTML({
560
+ renderHTML: (html) => html.replaceAll("<p>", '<p class="prose">'),
561
+ });
562
+ ```
563
+
564
+ > Sử dụng `installIntlayerHTMLDynamic(async () => …)` để tải chậm chính renderer; trình tải chỉ chạy trong lần gọi đầu tiên.
565
+
566
+ </Tab>
567
+ <Tab label="Astro" value="astro">
568
+
569
+ Astro không có cây thành phần để chứa provider, do đó cấu hình được cài đặt một lần, dưới dạng singleton, trong middleware (máy chủ) và trong `<script>` phía client (trình duyệt). Nó cấu hình renderer được trả về bởi `useHTMLRenderer()`. Các nút `html` được trả về bởi `useIntlayer` được kết xuất nguyên trạng; ghi đè các thẻ của chúng trên mỗi nút bằng `.use()`.
570
+
571
+ ```typescript fileName="src/middleware.ts"
572
+ import { installIntlayerHTML } from "astro-intlayer/html";
573
+ import { defineMiddleware } from "astro:middleware";
574
+
575
+ // Chạy một lần khi máy chủ khởi động; bản thân middleware Intlayer
576
+ // được đăng ký bởi tích hợp, trước tệp này.
577
+ installIntlayerHTML({
578
+ renderHTML: (html) => html.replaceAll("<p>", '<p class="prose">'),
579
+ });
580
+
581
+ export const onRequest = defineMiddleware((_context, next) => next());
582
+ ```
583
+
584
+ > Sử dụng `installIntlayerHTMLDynamic(async () => …)` để tải chậm chính renderer; trình tải chỉ chạy trong lần gọi đầu tiên.
585
+
586
+ </Tab>
473
587
  </Tabs>
474
588
 
475
589
  ### Kết xuất Thủ công & Công cụ Nâng cao
@@ -642,15 +756,69 @@ Nếu bạn cần kết xuất chuỗi HTML thô hoặc muốn kiểm soát nhi
642
756
  ```
643
757
 
644
758
  </Tab>
759
+ <Tab label="Remix" value="remix">
760
+ #### Hook `useHTMLRenderer()`
761
+
762
+ Lấy một hàm renderer được cấu hình sẵn bởi `installIntlayerHTML()`. Nó trả về một chuỗi HTML.
763
+
764
+ ```tsx
765
+ import { useHTMLRenderer } from "remix-intlayer/html";
766
+
767
+ const renderHTML = useHTMLRenderer();
768
+
769
+ return <div innerHTML={renderHTML("<p>Hello <strong>World</strong></p>")} />;
770
+ ```
771
+
772
+ #### Tiện ích `renderHTML()`
773
+
774
+ Tiện ích độc lập bỏ qua cấu hình toàn cục.
775
+
776
+ ```tsx
777
+ import { renderHTML } from "remix-intlayer/html";
778
+
779
+ const html = renderHTML("<p>Hello</p>");
780
+ ```
781
+
782
+ </Tab>
783
+ <Tab label="Astro" value="astro">
784
+ #### Hook `useHTMLRenderer()`
785
+
786
+ Lấy một hàm renderer được cấu hình sẵn bởi `installIntlayerHTML()`. Nó trả về một chuỗi HTML.
787
+
788
+ ```astro
789
+ ---
790
+ import { useHTMLRenderer } from "astro-intlayer/html";
791
+
792
+ const renderHTML = useHTMLRenderer();
793
+ ---
794
+
795
+ <div set:html={renderHTML("<p>Hello <strong>World</strong></p>")} />
796
+ ```
797
+
798
+ #### Tiện ích `renderHTML()`
799
+
800
+ Tiện ích độc lập bỏ qua cấu hình toàn cục.
801
+
802
+ ```astro
803
+ ---
804
+ import { renderHTML } from "astro-intlayer/html";
805
+
806
+ const html = renderHTML("<p>Hello</p>");
807
+ ---
808
+
809
+ <div set:html={html} />
810
+ ```
811
+
812
+ </Tab>
645
813
  </Tabs>
646
814
 
647
815
  ## Tham chiếu Tùy chọn
648
816
 
649
817
  Các tùy chọn này có thể được truyền cho `HTMLProvider`, `HTMLRenderer`, `useHTMLRenderer`, và `renderHTML`.
650
818
 
651
- | Tùy chọn | Kiểu | Mặc định | Mô tả |
652
- | :----------- | :-------------------- | :------- | :------------------------------------------------------------------------------------------------------------------- |
653
- | `components` | `Record<string, any>` | `{}` | Bản đồ các thẻ HTML hoặc tên component tùy chỉnh tới các component tương ứng. |
654
- | `renderHTML` | `Function` | `null` | Một hàm render/kết xuất tùy chỉnh để thay thế hoàn toàn bộ parser HTML mặc định (Chỉ dành cho Vue/Svelte providers). |
819
+ | Tùy chọn | Kiểu | Mặc định | Mô tả |
820
+ | :----------- | :-------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- |
821
+ | `components` | `Record<string, any>` | `{}` | Bản đồ các thẻ HTML hoặc tên component tùy chỉnh tới các component tương ứng. |
822
+ | `renderHTML` | `Function` | `null` | Hàm hiển thị tùy chỉnh để thay thế hoàn toàn trình phân tích cú pháp HTML mặc định (nhà cung cấp Vue, Svelte, Remix và Astro). |
655
823
 
656
824
  > Lưu ý: Đối với React và Preact, các thẻ HTML chuẩn được cung cấp tự động. Bạn chỉ cần truyền prop `components` nếu bạn muốn ghi đè chúng hoặc thêm các component tùy chỉnh.