@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: 了解如何使用 Intlayer CLI init infra 命令安装桌面应用程序,或使用 Docker(多合一容器或 Docker Compose 堆栈)自行托管 Intlayer CMS。
6
+ keywords:
7
+ - CLI
8
+ - 基础设施
9
+ - 自行托管
10
+ - 桌面应用
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: "添加 init infra 命令"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Intlayer CLI Init Infra 命令
28
+
29
+ ## 描述
30
+
31
+ `init infra` 命令用于在您的机器上设置 Intlayer 基础设施。它会下载适用于您平台的托管安装程序(macOS / Linux 上为 `https://intlayer.org/install.sh`,Windows 上为 `https://intlayer.org/install.ps1`),并在终端中运行,以便完整显示安装程序自身的菜单和进度输出。
32
+
33
+ 安装程序会询问您希望如何运行 Intlayer:
34
+
35
+ - **桌面应用**:下载适用于您的操作系统和 CPU 的原生控制面板并打开或安装。桌面版本连接至 Intlayer Cloud 后端。
36
+ - **多合一 Docker**:在由单个卷支持的单个容器中运行控制面板 + API + MongoDB + Redis + MinIO。写入包含生成密钥的 `./intlayer.env` 并拉取 `intlayer/cms-all` 镜像。
37
+ - **Docker Compose**:每个服务一个容器,用于可扩展的自行托管。将 `docker-compose.yml` 和 `.env` 写入 `./intlayer/` 并拉取镜像。
38
+
39
+ 托管安装程序是安装流程的唯一真实来源:CLI 运行它而不是重新实现相同步骤,因此 `npx intlayer init infra` 与 `curl -fsSL https://intlayer.org/install.sh | sh` 执行完全相同的操作。
40
+
41
+ ## 用法
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
+ `npx intlayer init --interactive` 的检查列表中也提供了相同的步骤,位于 **基础设施 (桌面应用 / 自行托管)** 下。
60
+
61
+ ## 选项
62
+
63
+ - `-m, --mode <mode>` - 可选。跳过安装程序菜单并直接运行特定模式。接受的值:`desktop`、`docker`(多合一)或 `compose`。任何其他值都会退出并显示错误列出接受的模式。
64
+
65
+ ## 示例
66
+
67
+ ### 以交互方式选择模式
68
+
69
+ ```bash
70
+ npx intlayer init infra
71
+ ```
72
+
73
+ ### 安装桌面应用
74
+
75
+ ```bash
76
+ npx intlayer init infra --mode desktop
77
+ ```
78
+
79
+ ### 使用多合一容器自行托管
80
+
81
+ ```bash
82
+ npx intlayer init infra --mode docker
83
+ ```
84
+
85
+ ### 使用 Docker Compose 自行托管
86
+
87
+ ```bash
88
+ npx intlayer init infra --mode compose
89
+ ```
90
+
91
+ ## 示例输出
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
+ ## 安装程序设置
122
+
123
+ 安装程序会读取一些环境变量,CLI 会原样传递这些变量。在运行命令前请在 shell 中进行设置:
124
+
125
+ ```bash
126
+ INTLAYER_COMPOSE_DIR=./cms npx intlayer init infra --mode compose
127
+ ```
128
+
129
+ | 变量 | 默认值 | 适用于 | 描述 |
130
+ | ------------------------- | ------------------------- | ------- | -------------------------------------------------- |
131
+ | `INTLAYER_MODE` | _(询问)_ | 全部 | `desktop`、`docker` 或 `compose`,与 `--mode` 相同 |
132
+ | `INTLAYER_DOWNLOAD_DIR` | `~/Downloads` | desktop | 应用安装程序保存位置 |
133
+ | `INTLAYER_IMAGE` | `intlayer/cms-all:latest` | docker | 要拉取的多合一镜像 |
134
+ | `INTLAYER_ENV_FILE` | `./intlayer.env` | docker | 环境文件写入位置 |
135
+ | `INTLAYER_CONTAINER_NAME` | `intlayer` | docker | 容器名称 |
136
+ | `INTLAYER_DATA_VOLUME` | `intlayer-data` | docker | 挂载在 `/data` 的具名卷 |
137
+ | `INTLAYER_APP_PORT` | `3000` | docker | 控制面板主机端口 |
138
+ | `INTLAYER_API_PORT` | `3100` | docker | API 主机端口 |
139
+ | `INTLAYER_S3_PORT` | `9000` | docker | MinIO S3 API 主机端口 |
140
+ | `INTLAYER_CONSOLE_PORT` | `9001` | docker | MinIO 控制台主机端口 |
141
+ | `INTLAYER_COMPOSE_DIR` | `./intlayer` | compose | 写入 `docker-compose.yml` 和 `.env` 的位置 |
142
+ | `INTLAYER_SELFHOST_REF` | `main` | 两者 | 获取 compose 文件和 env 模板的 Git ref |
143
+
144
+ > 端口变量仅更改映射的 **主机** 端。已发布的镜像在控制面板包中预编译了 `http://localhost:3000`、`http://localhost:3100` 和 `http://localhost:9000`,因此除非您构建自己的镜像,否则请保留默认值:请参阅[自行托管指南](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/self_hosting.md#limitations)。
145
+
146
+ ## 环境要求
147
+
148
+ - **桌面应用** 需要 [Node.js](https://nodejs.org):该应用内嵌了控制面板服务器,并使用机器自身的 `node` 二进制文件启动。
149
+ - **Docker 模式** 需要 [Docker](https://docs.docker.com/get-docker/)(Windows 上需要带有 WSL 2 后端的 Docker Desktop)。Compose 模式还需要 `docker compose` 插件。
150
+
151
+ ## 注意事项
152
+
153
+ - 重新运行该命令是安全的:现有的环境文件绝不会被覆盖,因此它也作为升级路径(安装程序会拉取最新镜像并保留您的密钥)。
154
+ - 安装程序会被下载到临时目录中,无论结果如何,退出时都会被删除。
155
+ - 该命令的退出代码即为安装程序的退出代码。如果下载本身失败,CLI 将打印等效的 `curl … | sh`(或 `irm … | iex`)命令,以便您可以直接运行安装程序。
156
+ - Docker 模式仍需要邮件发送服务来发送登录邮件。安装程序完成后,请在生成的环境文件中配置 Resend 或 SMTP:请参阅[全局邮件程序](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/self_hosting.md#global-mailer)。
157
+
158
+ ## 相关内容
159
+
160
+ - [自行托管指南](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/self_hosting.md) - 各模式的架构、首次运行步骤和限制
161
+ - [初始化 Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/init.md) - 父级 `init` 命令及其交互式检查清单
162
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_CMS.md) - 您刚安装的控制面板的功能
@@ -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: 初始化 Intlayer
5
5
  description: 了解如何在您的项目中初始化 Intlayer。
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: "添加 init infra 子命令"
17
20
  - version: 8.6.4
18
21
  date: 2026-03-31
19
22
  changes: "添加 --no-gitignore 选项"
@@ -125,6 +128,26 @@ bun x intlayer init --no-gitignore
125
128
 
126
129
  这将设置所有配置文件,但不会修改您的 `.gitignore`。
127
130
 
131
+ ### 设置基础设施(桌面应用或自行托管):
132
+
133
+ ```bash
134
+ npx intlayer init infra
135
+ ```
136
+
137
+ 下载并运行在线安装程序(macOS / Linux 上为 `https://intlayer.org/install.sh`,Windows 上为 `install.ps1`),它会询问您希望如何运行 Intlayer:
138
+
139
+ - **桌面应用** - 在您的机器上安装原生控制面板,连接到 Intlayer Cloud。
140
+ - **多合一 Docker** - 在单个容器中包含控制面板 + API + MongoDB + Redis + MinIO。
141
+ - **Docker Compose** - 每个服务一个容器,用于可扩展的自行托管。
142
+
143
+ 使用 `--mode` 跳过菜单:
144
+
145
+ ```bash
146
+ npx intlayer init infra --mode compose
147
+ ```
148
+
149
+ `npx intlayer init --interactive` 也提供了相同的步骤。有关安装程序设置,请参阅 [`init infra` 参考](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/infra.md),有关各模式设置的内容,请参阅[自行托管指南](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/self_hosting.md)。
150
+
128
151
  ## 输出示例:
129
152
 
130
153
  ```bash
@@ -0,0 +1,125 @@
1
+ ---
2
+ createdAt: 2026-09-23
3
+ updatedAt: 2026-09-23
4
+ title: CLI - 升级 Intlayer 软件包
5
+ description: 了解如何使用 Intlayer CLI upgrade 命令列出项目或 monorepo 中的每个 Intlayer 软件包,并将它们升级到最新版本。
6
+ keywords:
7
+ - CLI
8
+ - Upgrade
9
+ - 升级
10
+ - Packages
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: "添加 upgrade 命令"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # 升级 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
+ `upgrade` 命令会列出项目中每个 `package.json`(包括 monorepo 工作区)中声明的 Intlayer 软件包,并将它们升级到已发布的最新版本。它独立运行与 `intlayer init` 相同的软件包升级步骤。
44
+
45
+ ## 参数:
46
+
47
+ - `--project-root [projectRoot]` - 可选。项目根目录。默认情况下,命令从当前工作目录上方最近的 `package.json` 开始。
48
+ - `--dry-run` - 可选。列出软件包及其目标版本,而不修改任何文件。
49
+ - `--tag <tag>` - 可选。要升级到的 npm dist-tag(例如 `canary`)。默认为 `latest`。
50
+
51
+ ## 它的工作原理:
52
+
53
+ 1. **列出 Intlayer 软件包** - 扫描项目的每个 `package.json`(跳过 `node_modules` 和构建输出),查找 `intlayer`、`@intlayer/*`、`*-intlayer` 和 `intlayer-*` 依赖项及 devDependencies。
54
+ 2. **获取目标版本** - 从 npm registry 读取每个软件包所选 dist-tag(默认为 `latest`)的版本。
55
+ 3. **重写版本范围** - 就地更新每个过期的版本范围,保留其操作符(`^`、`~` 或无)和文件缩进。
56
+ 4. **单次安装** - 使用拥有锁文件的包管理器,从工作区根目录(带有锁文件的最近目录)执行一次安装:
57
+
58
+ | 锁文件 | 命令 |
59
+ | ------------------------------ | -------------- |
60
+ | `bun.lock` / `bun.lockb` | `bun install` |
61
+ | `pnpm-lock.yaml` | `pnpm install` |
62
+ | `yarn.lock` | `yarn install` |
63
+ | `package-lock.json` 或无锁文件 | `npm install` |
64
+
65
+ 如果不存在锁文件,则在回退到 npm 之前会先使用 `package.json` 中的 `packageManager` 字段(例如 `"bun@1.2.0"`)。
66
+
67
+ 未指向 registry 的范围(例如 `workspace:*`、`file:`、`link:`、`catalog:` 或 git URL)绝不会被修改。
68
+
69
+ ## 示例:
70
+
71
+ ### 列出可用的升级而不应用它们:
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
+ ### 升级到 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
+ ## 示例输出:
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
+ ## 注意事项:
122
+
123
+ - 从代码仓库根目录运行该命令以升级所有工作区。从某个工作区运行它以仅升级该工作区。
124
+ - 无法获取版本的软件包(离线、私有或未发布的软件包)会被列出并保持不变。
125
+ - 如果安装失败,已升级的范围会保留在 `package.json` 中。请手动运行包管理器的安装命令。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-01-20
3
- updatedAt: 2026-03-24
3
+ updatedAt: 2026-09-21
4
4
  title: HTML 内容
5
5
  description: 了解如何在 Intlayer 中声明和使用带有自定义组件的 HTML 内容。按照本指南在你的国际化项目中嵌入具有动态组件替换功能的丰富类 HTML 内容。
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 @@ const myContent = html(
235
237
  ```
236
238
 
237
239
  </Tab>
240
+ <Tab label="Remix" value="remix">
241
+ 在 Remix 3 中,HTML 节点解析为 HTML 字符串。使用 Remix JSX 的 `innerHTML` 属性注入它,或在 `html-template` 视图中使用 `html.raw`。
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 默认会转义插值。`innerHTML` 和 `html.raw` 是两个例外选项,这正是 HTML 字符串所需要的。
265
+
266
+ 使用 `.use()` 方法覆盖标签或映射自定义组件。覆盖是返回 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
+ 在 Astro 中,HTML 节点解析为 HTML 字符串。使用模板中的 `set:html` 指令注入它,或在客户端 `<script>` 中使用 `innerHTML`。
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 默认会转义 `{表达式}`。`set:html` 是例外选项,这正是 HTML 字符串所需要的。
304
+
305
+ 使用 `.use()` 方法覆盖标签或映射自定义组件。覆盖是返回 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
  ## 使用 `HTMLProvider` 的全局配置
@@ -470,6 +549,40 @@ const myContent = html(
470
549
  > 动态导入 HTML 渲染器是减小应用程序Bundle 大小的好方法。
471
550
 
472
551
  </Tab>
552
+ <Tab label="Remix" value="remix">
553
+
554
+ Remix 没有组件树来承载 provider,因此配置在服务器启动时作为单例安装一次。它配置由 `useHTMLRenderer()` 返回的渲染器。由 `useIntlayer` 返回的 `html` 节点按原样渲染;通过 `.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
+ > 使用 `installIntlayerHTMLDynamic(async () => …)` 延迟加载渲染器本身;加载器仅在第一次调用时运行。
565
+
566
+ </Tab>
567
+ <Tab label="Astro" value="astro">
568
+
569
+ Astro 没有组件树来承载 provider,因此配置在中间件(服务器)和客户端 `<script>`(浏览器)中作为单例安装一次。它配置由 `useHTMLRenderer()` 返回的渲染器。由 `useIntlayer` 返回的 `html` 节点按原样渲染;通过 `.use()` 为每个节点覆盖其标签。
570
+
571
+ ```typescript fileName="src/middleware.ts"
572
+ import { installIntlayerHTML } from "astro-intlayer/html";
573
+ import { defineMiddleware } from "astro:middleware";
574
+
575
+ // 服务器启动时运行一次;Intlayer 中间件本身由集成在此文件之前注册。
576
+ installIntlayerHTML({
577
+ renderHTML: (html) => html.replaceAll("<p>", '<p class="prose">'),
578
+ });
579
+
580
+ export const onRequest = defineMiddleware((_context, next) => next());
581
+ ```
582
+
583
+ > 使用 `installIntlayerHTMLDynamic(async () => …)` 延迟加载渲染器本身;加载器仅在第一次调用时运行。
584
+
585
+ </Tab>
473
586
  </Tabs>
474
587
 
475
588
  ### 手动渲染与高级工具
@@ -642,15 +755,69 @@ const myContent = html(
642
755
  ```
643
756
 
644
757
  </Tab>
758
+ <Tab label="Remix" value="remix">
759
+ #### `useHTMLRenderer()` Hook
760
+
761
+ 获取由 `installIntlayerHTML()` 预配置的渲染器函数。它返回一个 HTML 字符串。
762
+
763
+ ```tsx
764
+ import { useHTMLRenderer } from "remix-intlayer/html";
765
+
766
+ const renderHTML = useHTMLRenderer();
767
+
768
+ return <div innerHTML={renderHTML("<p>Hello <strong>World</strong></p>")} />;
769
+ ```
770
+
771
+ #### `renderHTML()` 实用工具
772
+
773
+ 忽略全局配置的独立实用工具。
774
+
775
+ ```tsx
776
+ import { renderHTML } from "remix-intlayer/html";
777
+
778
+ const html = renderHTML("<p>Hello</p>");
779
+ ```
780
+
781
+ </Tab>
782
+ <Tab label="Astro" value="astro">
783
+ #### `useHTMLRenderer()` Hook
784
+
785
+ 获取由 `installIntlayerHTML()` 预配置的渲染器函数。它返回一个 HTML 字符串。
786
+
787
+ ```astro
788
+ ---
789
+ import { useHTMLRenderer } from "astro-intlayer/html";
790
+
791
+ const renderHTML = useHTMLRenderer();
792
+ ---
793
+
794
+ <div set:html={renderHTML("<p>Hello <strong>World</strong></p>")} />
795
+ ```
796
+
797
+ #### `renderHTML()` 实用工具
798
+
799
+ 忽略全局配置的独立实用工具。
800
+
801
+ ```astro
802
+ ---
803
+ import { renderHTML } from "astro-intlayer/html";
804
+
805
+ const html = renderHTML("<p>Hello</p>");
806
+ ---
807
+
808
+ <div set:html={html} />
809
+ ```
810
+
811
+ </Tab>
645
812
  </Tabs>
646
813
 
647
814
  ## 选项参考
648
815
 
649
816
  这些选项可以传递给 `HTMLProvider`、`HTMLRenderer`、`useHTMLRenderer` 和 `renderHTML`。
650
817
 
651
- | 选项 | 类型 | 默认 | 说明 |
652
- | :----------- | :-------------------- | :----- | :--------------------------------------------------------------------------------- |
653
- | `components` | `Record<string, any>` | `{}` | 一个将 HTML 标签或自定义组件名称映射到对应组件的映射表。 |
654
- | `renderHTML` | `Function` | `null` | 一个自定义渲染函数,用于完全替换默认的 HTML 解析器(仅适用于 Vue/Svelte 提供器)。 |
818
+ | 选项 | 类型 | 默认 | 说明 |
819
+ | :----------- | :-------------------- | :----- | :------------------------------------------------------------------------------- |
820
+ | `components` | `Record<string, any>` | `{}` | 一个将 HTML 标签或自定义组件名称映射到对应组件的映射表。 |
821
+ | `renderHTML` | `Function` | `null` | 完全替换默认 HTML 解析器的自定义渲染函数(Vue、Svelte、Remix 和 Astro 提供者)。 |
655
822
 
656
823
  > 注意:对于 React 和 Preact,标准 HTML 标签会自动提供。只有当你想覆盖它们或添加自定义组件时,才需要传入 `components` prop。