@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.
- package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ar/i18next_vs_intlayer.md +130 -16
- package/blog/ar/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ar/lingui_vs_intlayer.md +122 -15
- package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ar/next-intl_vs_intlayer.md +136 -20
- package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
- package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/de/i18next_vs_intlayer.md +128 -14
- package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/de/lingui_vs_intlayer.md +122 -15
- package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/de/next-intl_vs_intlayer.md +125 -15
- package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/de/vue-i18n_vs_intlayer.md +193 -31
- package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
- package/blog/en/i18next_vs_intlayer.md +128 -14
- package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
- package/blog/en/lingui_vs_intlayer.md +124 -15
- package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
- package/blog/en/next-intl_vs_intlayer.md +125 -13
- package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
- package/blog/en/vue-i18n_vs_intlayer.md +188 -27
- package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
- package/blog/en-GB/i18next_vs_intlayer.md +128 -14
- package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
- package/blog/en-GB/lingui_vs_intlayer.md +122 -15
- package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
- package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
- package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
- package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/es/i18next_vs_intlayer.md +128 -14
- package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/es/lingui_vs_intlayer.md +122 -15
- package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/es/next-intl_vs_intlayer.md +125 -15
- package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/es/vue-i18n_vs_intlayer.md +193 -31
- package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/fr/i18next_vs_intlayer.md +128 -14
- package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/fr/lingui_vs_intlayer.md +122 -15
- package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/fr/next-intl_vs_intlayer.md +127 -15
- package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
- package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
- package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
- package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/hi/i18next_vs_intlayer.md +130 -16
- package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/hi/lingui_vs_intlayer.md +122 -15
- package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/hi/next-intl_vs_intlayer.md +135 -19
- package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
- package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/id/i18next_vs_intlayer.md +128 -14
- package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/id/lingui_vs_intlayer.md +122 -15
- package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/id/next-intl_vs_intlayer.md +135 -19
- package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
- package/blog/id/vue-i18n_vs_intlayer.md +188 -26
- package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
- package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/it/i18next_vs_intlayer.md +128 -14
- package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/it/lingui_vs_intlayer.md +122 -15
- package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/it/next-intl_vs_intlayer.md +125 -15
- package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/it/vue-i18n_vs_intlayer.md +191 -31
- package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
- package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ja/i18next_vs_intlayer.md +129 -17
- package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ja/lingui_vs_intlayer.md +122 -15
- package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ja/next-intl_vs_intlayer.md +124 -14
- package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ko/i18next_vs_intlayer.md +129 -17
- package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ko/lingui_vs_intlayer.md +122 -15
- package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ko/next-intl_vs_intlayer.md +134 -18
- package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
- package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/pl/i18next_vs_intlayer.md +128 -14
- package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pl/lingui_vs_intlayer.md +122 -15
- package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/pl/next-intl_vs_intlayer.md +134 -18
- package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
- package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/pt/i18next_vs_intlayer.md +128 -14
- package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pt/lingui_vs_intlayer.md +122 -15
- package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/pt/next-intl_vs_intlayer.md +131 -15
- package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
- package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ru/i18next_vs_intlayer.md +130 -16
- package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ru/lingui_vs_intlayer.md +122 -15
- package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
- package/blog/ru/next-intl_vs_intlayer.md +123 -13
- package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
- package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
- package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/tr/i18next_vs_intlayer.md +128 -14
- package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/tr/lingui_vs_intlayer.md +122 -15
- package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/tr/next-intl_vs_intlayer.md +136 -20
- package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
- package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/uk/i18next_vs_intlayer.md +130 -16
- package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/uk/lingui_vs_intlayer.md +122 -15
- package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/uk/next-intl_vs_intlayer.md +135 -19
- package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
- package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
- package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/vi/i18next_vs_intlayer.md +128 -14
- package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/vi/lingui_vs_intlayer.md +122 -15
- package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/vi/next-intl_vs_intlayer.md +135 -19
- package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
- package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/zh/i18next_vs_intlayer.md +128 -14
- package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/zh/lingui_vs_intlayer.md +122 -15
- package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/zh/next-intl_vs_intlayer.md +125 -15
- package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
- package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +60 -40
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +60 -40
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/nextjs.md +19 -16
- package/docs/ar/benchmark/solid.md +26 -9
- package/docs/ar/benchmark/svelte.md +22 -7
- package/docs/ar/benchmark/tanstack.md +20 -16
- package/docs/ar/benchmark/vue.md +19 -10
- package/docs/ar/chrome_extension.md +130 -0
- package/docs/ar/cli/index.md +11 -1
- package/docs/ar/cli/infra.md +162 -0
- package/docs/ar/cli/init.md +24 -1
- package/docs/ar/cli/upgrade.md +125 -0
- package/docs/ar/dictionary/html.md +173 -5
- package/docs/ar/dictionary/markdown.md +263 -1
- package/docs/ar/intlayer_with_analog.md +23 -1
- package/docs/ar/intlayer_with_angular_19.md +24 -1
- package/docs/ar/intlayer_with_angular_21.md +24 -1
- package/docs/ar/intlayer_with_astro.md +24 -1
- package/docs/ar/intlayer_with_astro_lit.md +25 -1
- package/docs/ar/intlayer_with_astro_preact.md +26 -1
- package/docs/ar/intlayer_with_astro_react.md +26 -1
- package/docs/ar/intlayer_with_astro_solid.md +26 -1
- package/docs/ar/intlayer_with_astro_svelte.md +25 -1
- package/docs/ar/intlayer_with_astro_vue.md +25 -1
- package/docs/ar/intlayer_with_remix_3.md +22 -1
- package/docs/ar/self_hosting.md +406 -231
- package/docs/de/benchmark/nextjs.md +19 -16
- package/docs/de/benchmark/solid.md +26 -9
- package/docs/de/benchmark/svelte.md +22 -7
- package/docs/de/benchmark/tanstack.md +20 -16
- package/docs/de/benchmark/vue.md +19 -10
- package/docs/de/chrome_extension.md +130 -0
- package/docs/de/cli/index.md +11 -1
- package/docs/de/cli/infra.md +162 -0
- package/docs/de/cli/init.md +24 -1
- package/docs/de/cli/upgrade.md +125 -0
- package/docs/de/dictionary/html.md +173 -5
- package/docs/de/dictionary/markdown.md +263 -1
- package/docs/de/intlayer_with_analog.md +23 -1
- package/docs/de/intlayer_with_angular_19.md +24 -1
- package/docs/de/intlayer_with_angular_21.md +24 -1
- package/docs/de/intlayer_with_astro.md +24 -1
- package/docs/de/intlayer_with_astro_lit.md +25 -1
- package/docs/de/intlayer_with_astro_preact.md +26 -1
- package/docs/de/intlayer_with_astro_react.md +26 -1
- package/docs/de/intlayer_with_astro_solid.md +26 -1
- package/docs/de/intlayer_with_astro_svelte.md +25 -1
- package/docs/de/intlayer_with_astro_vue.md +25 -1
- package/docs/de/intlayer_with_remix_3.md +22 -1
- package/docs/de/self_hosting.md +404 -227
- package/docs/en/agent_skills.md +29 -1
- package/docs/en/benchmark/nextjs.md +19 -16
- package/docs/en/benchmark/solid.md +26 -9
- package/docs/en/benchmark/svelte.md +22 -7
- package/docs/en/benchmark/tanstack.md +21 -17
- package/docs/en/benchmark/vue.md +20 -11
- package/docs/en/chrome_extension.md +130 -0
- package/docs/en/cli/index.md +11 -1
- package/docs/en/cli/infra.md +175 -0
- package/docs/en/cli/init.md +25 -1
- package/docs/en/cli/upgrade.md +125 -0
- package/docs/en/dictionary/html.md +173 -5
- package/docs/en/dictionary/markdown.md +263 -1
- package/docs/en/intlayer_with_analog.md +23 -1
- package/docs/en/intlayer_with_angular_19.md +24 -1
- package/docs/en/intlayer_with_angular_21.md +24 -1
- package/docs/en/intlayer_with_astro.md +24 -1
- package/docs/en/intlayer_with_astro_lit.md +25 -1
- package/docs/en/intlayer_with_astro_preact.md +26 -1
- package/docs/en/intlayer_with_astro_react.md +26 -1
- package/docs/en/intlayer_with_astro_solid.md +26 -1
- package/docs/en/intlayer_with_astro_svelte.md +25 -1
- package/docs/en/intlayer_with_astro_vue.md +25 -1
- package/docs/en/intlayer_with_remix_3.md +22 -1
- package/docs/en/self_hosting.md +418 -176
- package/docs/en-GB/benchmark/nextjs.md +19 -16
- package/docs/en-GB/benchmark/solid.md +26 -9
- package/docs/en-GB/benchmark/svelte.md +22 -7
- package/docs/en-GB/benchmark/tanstack.md +20 -16
- package/docs/en-GB/benchmark/vue.md +20 -11
- package/docs/en-GB/chrome_extension.md +130 -0
- package/docs/en-GB/cli/index.md +11 -1
- package/docs/en-GB/cli/infra.md +162 -0
- package/docs/en-GB/cli/init.md +24 -1
- package/docs/en-GB/cli/upgrade.md +125 -0
- package/docs/en-GB/dictionary/html.md +173 -5
- package/docs/en-GB/dictionary/markdown.md +263 -1
- package/docs/en-GB/intlayer_with_analog.md +23 -1
- package/docs/en-GB/intlayer_with_angular_19.md +24 -1
- package/docs/en-GB/intlayer_with_angular_21.md +24 -1
- package/docs/en-GB/intlayer_with_astro.md +24 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
- package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
- package/docs/en-GB/intlayer_with_astro_react.md +26 -1
- package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
- package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
- package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
- package/docs/en-GB/intlayer_with_remix_3.md +22 -1
- package/docs/en-GB/self_hosting.md +381 -206
- package/docs/es/benchmark/nextjs.md +19 -16
- package/docs/es/benchmark/solid.md +26 -9
- package/docs/es/benchmark/svelte.md +22 -7
- package/docs/es/benchmark/tanstack.md +20 -16
- package/docs/es/benchmark/vue.md +19 -10
- package/docs/es/chrome_extension.md +130 -0
- package/docs/es/cli/index.md +11 -1
- package/docs/es/cli/infra.md +162 -0
- package/docs/es/cli/init.md +24 -1
- package/docs/es/cli/upgrade.md +125 -0
- package/docs/es/dictionary/html.md +173 -5
- package/docs/es/dictionary/markdown.md +263 -1
- package/docs/es/intlayer_with_analog.md +23 -1
- package/docs/es/intlayer_with_angular_19.md +24 -1
- package/docs/es/intlayer_with_angular_21.md +24 -1
- package/docs/es/intlayer_with_astro.md +24 -1
- package/docs/es/intlayer_with_astro_lit.md +25 -1
- package/docs/es/intlayer_with_astro_preact.md +26 -1
- package/docs/es/intlayer_with_astro_react.md +26 -1
- package/docs/es/intlayer_with_astro_solid.md +26 -1
- package/docs/es/intlayer_with_astro_svelte.md +25 -1
- package/docs/es/intlayer_with_astro_vue.md +25 -1
- package/docs/es/intlayer_with_remix_3.md +22 -1
- package/docs/es/self_hosting.md +400 -223
- package/docs/fr/benchmark/nextjs.md +19 -16
- package/docs/fr/benchmark/solid.md +26 -9
- package/docs/fr/benchmark/svelte.md +22 -7
- package/docs/fr/benchmark/tanstack.md +20 -16
- package/docs/fr/benchmark/vue.md +20 -11
- package/docs/fr/chrome_extension.md +130 -0
- package/docs/fr/cli/index.md +11 -1
- package/docs/fr/cli/infra.md +162 -0
- package/docs/fr/cli/init.md +24 -1
- package/docs/fr/cli/upgrade.md +125 -0
- package/docs/fr/dictionary/html.md +173 -5
- package/docs/fr/dictionary/markdown.md +265 -4
- package/docs/fr/intlayer_with_analog.md +23 -1
- package/docs/fr/intlayer_with_angular_19.md +24 -1
- package/docs/fr/intlayer_with_angular_21.md +24 -1
- package/docs/fr/intlayer_with_astro.md +24 -1
- package/docs/fr/intlayer_with_astro_lit.md +25 -1
- package/docs/fr/intlayer_with_astro_preact.md +26 -1
- package/docs/fr/intlayer_with_astro_react.md +26 -1
- package/docs/fr/intlayer_with_astro_solid.md +26 -1
- package/docs/fr/intlayer_with_astro_svelte.md +25 -1
- package/docs/fr/intlayer_with_astro_vue.md +25 -1
- package/docs/fr/intlayer_with_remix_3.md +22 -1
- package/docs/fr/self_hosting.md +401 -224
- package/docs/hi/benchmark/nextjs.md +19 -16
- package/docs/hi/benchmark/solid.md +26 -9
- package/docs/hi/benchmark/svelte.md +22 -7
- package/docs/hi/benchmark/tanstack.md +20 -16
- package/docs/hi/benchmark/vue.md +20 -11
- package/docs/hi/chrome_extension.md +130 -0
- package/docs/hi/cli/index.md +11 -1
- package/docs/hi/cli/infra.md +162 -0
- package/docs/hi/cli/init.md +24 -1
- package/docs/hi/cli/upgrade.md +125 -0
- package/docs/hi/dictionary/html.md +173 -5
- package/docs/hi/dictionary/markdown.md +263 -1
- package/docs/hi/intlayer_with_analog.md +23 -1
- package/docs/hi/intlayer_with_angular_19.md +24 -1
- package/docs/hi/intlayer_with_angular_21.md +24 -1
- package/docs/hi/intlayer_with_astro.md +24 -1
- package/docs/hi/intlayer_with_astro_lit.md +25 -1
- package/docs/hi/intlayer_with_astro_preact.md +26 -1
- package/docs/hi/intlayer_with_astro_react.md +26 -1
- package/docs/hi/intlayer_with_astro_solid.md +26 -1
- package/docs/hi/intlayer_with_astro_svelte.md +25 -1
- package/docs/hi/intlayer_with_astro_vue.md +25 -1
- package/docs/hi/intlayer_with_remix_3.md +22 -1
- package/docs/hi/self_hosting.md +409 -235
- package/docs/id/benchmark/nextjs.md +19 -16
- package/docs/id/benchmark/solid.md +26 -9
- package/docs/id/benchmark/svelte.md +22 -7
- package/docs/id/benchmark/tanstack.md +20 -16
- package/docs/id/benchmark/vue.md +20 -11
- package/docs/id/chrome_extension.md +130 -0
- package/docs/id/cli/index.md +11 -1
- package/docs/id/cli/infra.md +162 -0
- package/docs/id/cli/init.md +24 -1
- package/docs/id/cli/upgrade.md +125 -0
- package/docs/id/dictionary/html.md +173 -5
- package/docs/id/dictionary/markdown.md +263 -1
- package/docs/id/intlayer_with_analog.md +23 -1
- package/docs/id/intlayer_with_angular_19.md +24 -1
- package/docs/id/intlayer_with_angular_21.md +24 -1
- package/docs/id/intlayer_with_astro.md +24 -1
- package/docs/id/intlayer_with_astro_lit.md +25 -1
- package/docs/id/intlayer_with_astro_preact.md +26 -1
- package/docs/id/intlayer_with_astro_react.md +26 -1
- package/docs/id/intlayer_with_astro_solid.md +26 -1
- package/docs/id/intlayer_with_astro_svelte.md +25 -1
- package/docs/id/intlayer_with_astro_vue.md +25 -1
- package/docs/id/intlayer_with_remix_3.md +22 -1
- package/docs/id/self_hosting.md +416 -243
- package/docs/it/benchmark/nextjs.md +19 -16
- package/docs/it/benchmark/solid.md +26 -9
- package/docs/it/benchmark/svelte.md +22 -7
- package/docs/it/benchmark/tanstack.md +20 -16
- package/docs/it/benchmark/vue.md +19 -10
- package/docs/it/chrome_extension.md +130 -0
- package/docs/it/cli/index.md +11 -1
- package/docs/it/cli/infra.md +162 -0
- package/docs/it/cli/init.md +24 -1
- package/docs/it/cli/upgrade.md +125 -0
- package/docs/it/dictionary/html.md +173 -5
- package/docs/it/dictionary/markdown.md +263 -1
- package/docs/it/intlayer_with_analog.md +23 -1
- package/docs/it/intlayer_with_angular_19.md +24 -1
- package/docs/it/intlayer_with_angular_21.md +24 -1
- package/docs/it/intlayer_with_astro.md +24 -1
- package/docs/it/intlayer_with_astro_lit.md +25 -1
- package/docs/it/intlayer_with_astro_preact.md +26 -1
- package/docs/it/intlayer_with_astro_react.md +26 -1
- package/docs/it/intlayer_with_astro_solid.md +26 -1
- package/docs/it/intlayer_with_astro_svelte.md +25 -1
- package/docs/it/intlayer_with_astro_vue.md +25 -1
- package/docs/it/intlayer_with_remix_3.md +22 -1
- package/docs/it/self_hosting.md +412 -237
- package/docs/ja/benchmark/nextjs.md +19 -16
- package/docs/ja/benchmark/solid.md +26 -9
- package/docs/ja/benchmark/svelte.md +22 -7
- package/docs/ja/benchmark/tanstack.md +18 -14
- package/docs/ja/benchmark/vue.md +19 -10
- package/docs/ja/chrome_extension.md +130 -0
- package/docs/ja/cli/index.md +11 -1
- package/docs/ja/cli/infra.md +162 -0
- package/docs/ja/cli/init.md +24 -1
- package/docs/ja/cli/upgrade.md +125 -0
- package/docs/ja/dictionary/html.md +173 -5
- package/docs/ja/dictionary/markdown.md +263 -1
- package/docs/ja/intlayer_with_analog.md +23 -1
- package/docs/ja/intlayer_with_angular_19.md +24 -1
- package/docs/ja/intlayer_with_angular_21.md +24 -1
- package/docs/ja/intlayer_with_astro.md +24 -1
- package/docs/ja/intlayer_with_astro_lit.md +25 -1
- package/docs/ja/intlayer_with_astro_preact.md +26 -1
- package/docs/ja/intlayer_with_astro_react.md +26 -1
- package/docs/ja/intlayer_with_astro_solid.md +26 -1
- package/docs/ja/intlayer_with_astro_svelte.md +25 -1
- package/docs/ja/intlayer_with_astro_vue.md +25 -1
- package/docs/ja/intlayer_with_remix_3.md +22 -1
- package/docs/ja/self_hosting.md +398 -223
- package/docs/ko/benchmark/nextjs.md +19 -16
- package/docs/ko/benchmark/solid.md +26 -9
- package/docs/ko/benchmark/svelte.md +22 -7
- package/docs/ko/benchmark/tanstack.md +20 -16
- package/docs/ko/benchmark/vue.md +20 -11
- package/docs/ko/chrome_extension.md +130 -0
- package/docs/ko/cli/index.md +11 -1
- package/docs/ko/cli/infra.md +162 -0
- package/docs/ko/cli/init.md +24 -1
- package/docs/ko/cli/upgrade.md +126 -0
- package/docs/ko/dictionary/html.md +173 -5
- package/docs/ko/dictionary/markdown.md +263 -1
- package/docs/ko/intlayer_with_analog.md +23 -1
- package/docs/ko/intlayer_with_angular_19.md +24 -1
- package/docs/ko/intlayer_with_angular_21.md +24 -1
- package/docs/ko/intlayer_with_astro.md +24 -1
- package/docs/ko/intlayer_with_astro_lit.md +25 -1
- package/docs/ko/intlayer_with_astro_preact.md +26 -1
- package/docs/ko/intlayer_with_astro_react.md +26 -1
- package/docs/ko/intlayer_with_astro_solid.md +26 -1
- package/docs/ko/intlayer_with_astro_svelte.md +25 -1
- package/docs/ko/intlayer_with_astro_vue.md +25 -1
- package/docs/ko/intlayer_with_remix_3.md +22 -1
- package/docs/ko/self_hosting.md +411 -238
- package/docs/pl/benchmark/nextjs.md +19 -16
- package/docs/pl/benchmark/solid.md +26 -9
- package/docs/pl/benchmark/svelte.md +22 -7
- package/docs/pl/benchmark/tanstack.md +20 -16
- package/docs/pl/benchmark/vue.md +20 -11
- package/docs/pl/chrome_extension.md +130 -0
- package/docs/pl/cli/index.md +11 -1
- package/docs/pl/cli/infra.md +162 -0
- package/docs/pl/cli/init.md +24 -1
- package/docs/pl/cli/upgrade.md +125 -0
- package/docs/pl/dictionary/html.md +173 -5
- package/docs/pl/dictionary/markdown.md +263 -1
- package/docs/pl/intlayer_with_analog.md +23 -1
- package/docs/pl/intlayer_with_angular_19.md +24 -1
- package/docs/pl/intlayer_with_angular_21.md +24 -1
- package/docs/pl/intlayer_with_astro.md +24 -1
- package/docs/pl/intlayer_with_astro_lit.md +25 -1
- package/docs/pl/intlayer_with_astro_preact.md +26 -1
- package/docs/pl/intlayer_with_astro_react.md +26 -1
- package/docs/pl/intlayer_with_astro_solid.md +26 -1
- package/docs/pl/intlayer_with_astro_svelte.md +25 -1
- package/docs/pl/intlayer_with_astro_vue.md +25 -1
- package/docs/pl/intlayer_with_remix_3.md +22 -1
- package/docs/pl/self_hosting.md +408 -233
- package/docs/pt/benchmark/nextjs.md +19 -16
- package/docs/pt/benchmark/solid.md +26 -9
- package/docs/pt/benchmark/svelte.md +22 -7
- package/docs/pt/benchmark/tanstack.md +20 -16
- package/docs/pt/benchmark/vue.md +19 -10
- package/docs/pt/chrome_extension.md +130 -0
- package/docs/pt/cli/index.md +11 -1
- package/docs/pt/cli/infra.md +162 -0
- package/docs/pt/cli/init.md +24 -1
- package/docs/pt/cli/upgrade.md +125 -0
- package/docs/pt/dictionary/html.md +173 -5
- package/docs/pt/dictionary/markdown.md +263 -1
- package/docs/pt/intlayer_with_analog.md +23 -1
- package/docs/pt/intlayer_with_angular_19.md +24 -1
- package/docs/pt/intlayer_with_angular_21.md +24 -1
- package/docs/pt/intlayer_with_astro.md +24 -1
- package/docs/pt/intlayer_with_astro_lit.md +25 -1
- package/docs/pt/intlayer_with_astro_preact.md +26 -1
- package/docs/pt/intlayer_with_astro_react.md +26 -1
- package/docs/pt/intlayer_with_astro_solid.md +26 -1
- package/docs/pt/intlayer_with_astro_svelte.md +25 -1
- package/docs/pt/intlayer_with_astro_vue.md +25 -1
- package/docs/pt/intlayer_with_remix_3.md +22 -1
- package/docs/pt/self_hosting.md +399 -224
- package/docs/ru/benchmark/nextjs.md +19 -16
- package/docs/ru/benchmark/solid.md +26 -9
- package/docs/ru/benchmark/svelte.md +22 -7
- package/docs/ru/benchmark/tanstack.md +20 -16
- package/docs/ru/benchmark/vue.md +20 -11
- package/docs/ru/chrome_extension.md +130 -0
- package/docs/ru/cli/index.md +11 -1
- package/docs/ru/cli/infra.md +162 -0
- package/docs/ru/cli/init.md +24 -1
- package/docs/ru/cli/upgrade.md +125 -0
- package/docs/ru/dictionary/html.md +173 -5
- package/docs/ru/dictionary/markdown.md +263 -1
- package/docs/ru/intlayer_with_analog.md +23 -1
- package/docs/ru/intlayer_with_angular_19.md +24 -1
- package/docs/ru/intlayer_with_angular_21.md +24 -1
- package/docs/ru/intlayer_with_astro.md +24 -1
- package/docs/ru/intlayer_with_astro_lit.md +25 -1
- package/docs/ru/intlayer_with_astro_preact.md +26 -1
- package/docs/ru/intlayer_with_astro_react.md +26 -1
- package/docs/ru/intlayer_with_astro_solid.md +26 -1
- package/docs/ru/intlayer_with_astro_svelte.md +25 -1
- package/docs/ru/intlayer_with_astro_vue.md +25 -1
- package/docs/ru/intlayer_with_remix_3.md +22 -1
- package/docs/ru/self_hosting.md +403 -228
- package/docs/tr/benchmark/nextjs.md +19 -16
- package/docs/tr/benchmark/solid.md +26 -9
- package/docs/tr/benchmark/svelte.md +22 -7
- package/docs/tr/benchmark/tanstack.md +20 -16
- package/docs/tr/benchmark/vue.md +20 -11
- package/docs/tr/chrome_extension.md +130 -0
- package/docs/tr/cli/index.md +11 -1
- package/docs/tr/cli/infra.md +162 -0
- package/docs/tr/cli/init.md +24 -1
- package/docs/tr/cli/upgrade.md +125 -0
- package/docs/tr/dictionary/html.md +173 -5
- package/docs/tr/dictionary/markdown.md +263 -1
- package/docs/tr/intlayer_with_analog.md +23 -1
- package/docs/tr/intlayer_with_angular_19.md +24 -1
- package/docs/tr/intlayer_with_angular_21.md +24 -1
- package/docs/tr/intlayer_with_astro.md +24 -1
- package/docs/tr/intlayer_with_astro_lit.md +25 -1
- package/docs/tr/intlayer_with_astro_preact.md +26 -1
- package/docs/tr/intlayer_with_astro_react.md +26 -1
- package/docs/tr/intlayer_with_astro_solid.md +26 -1
- package/docs/tr/intlayer_with_astro_svelte.md +25 -1
- package/docs/tr/intlayer_with_astro_vue.md +25 -1
- package/docs/tr/intlayer_with_remix_3.md +22 -1
- package/docs/tr/self_hosting.md +410 -234
- package/docs/uk/benchmark/nextjs.md +19 -16
- package/docs/uk/benchmark/solid.md +26 -9
- package/docs/uk/benchmark/svelte.md +22 -7
- package/docs/uk/benchmark/tanstack.md +20 -16
- package/docs/uk/benchmark/vue.md +20 -11
- package/docs/uk/chrome_extension.md +130 -0
- package/docs/uk/cli/index.md +11 -1
- package/docs/uk/cli/infra.md +162 -0
- package/docs/uk/cli/init.md +24 -1
- package/docs/uk/cli/upgrade.md +125 -0
- package/docs/uk/dictionary/html.md +173 -5
- package/docs/uk/dictionary/markdown.md +263 -1
- package/docs/uk/intlayer_with_analog.md +23 -1
- package/docs/uk/intlayer_with_angular_19.md +24 -1
- package/docs/uk/intlayer_with_angular_21.md +24 -1
- package/docs/uk/intlayer_with_astro.md +24 -1
- package/docs/uk/intlayer_with_astro_lit.md +25 -1
- package/docs/uk/intlayer_with_astro_preact.md +26 -1
- package/docs/uk/intlayer_with_astro_react.md +26 -1
- package/docs/uk/intlayer_with_astro_solid.md +26 -1
- package/docs/uk/intlayer_with_astro_svelte.md +25 -1
- package/docs/uk/intlayer_with_astro_vue.md +25 -1
- package/docs/uk/intlayer_with_remix_3.md +22 -1
- package/docs/uk/self_hosting.md +413 -238
- package/docs/vi/benchmark/nextjs.md +19 -16
- package/docs/vi/benchmark/solid.md +26 -9
- package/docs/vi/benchmark/svelte.md +22 -7
- package/docs/vi/benchmark/tanstack.md +20 -16
- package/docs/vi/benchmark/vue.md +20 -11
- package/docs/vi/chrome_extension.md +130 -0
- package/docs/vi/cli/index.md +11 -1
- package/docs/vi/cli/infra.md +162 -0
- package/docs/vi/cli/init.md +24 -1
- package/docs/vi/cli/upgrade.md +125 -0
- package/docs/vi/dictionary/html.md +173 -5
- package/docs/vi/dictionary/markdown.md +263 -1
- package/docs/vi/intlayer_with_analog.md +23 -1
- package/docs/vi/intlayer_with_angular_19.md +24 -1
- package/docs/vi/intlayer_with_angular_21.md +24 -1
- package/docs/vi/intlayer_with_astro.md +24 -1
- package/docs/vi/intlayer_with_astro_lit.md +25 -1
- package/docs/vi/intlayer_with_astro_preact.md +26 -1
- package/docs/vi/intlayer_with_astro_react.md +26 -1
- package/docs/vi/intlayer_with_astro_solid.md +26 -1
- package/docs/vi/intlayer_with_astro_svelte.md +25 -1
- package/docs/vi/intlayer_with_astro_vue.md +25 -1
- package/docs/vi/intlayer_with_remix_3.md +22 -1
- package/docs/vi/self_hosting.md +408 -234
- package/docs/zh/benchmark/nextjs.md +19 -16
- package/docs/zh/benchmark/solid.md +26 -9
- package/docs/zh/benchmark/svelte.md +22 -7
- package/docs/zh/benchmark/tanstack.md +19 -15
- package/docs/zh/benchmark/vue.md +20 -11
- package/docs/zh/chrome_extension.md +130 -0
- package/docs/zh/cli/index.md +11 -1
- package/docs/zh/cli/infra.md +162 -0
- package/docs/zh/cli/init.md +24 -1
- package/docs/zh/cli/upgrade.md +125 -0
- package/docs/zh/dictionary/html.md +172 -5
- package/docs/zh/dictionary/markdown.md +262 -1
- package/docs/zh/intlayer_with_analog.md +23 -1
- package/docs/zh/intlayer_with_angular_19.md +24 -1
- package/docs/zh/intlayer_with_angular_21.md +24 -1
- package/docs/zh/intlayer_with_astro.md +24 -1
- package/docs/zh/intlayer_with_astro_lit.md +25 -1
- package/docs/zh/intlayer_with_astro_preact.md +26 -1
- package/docs/zh/intlayer_with_astro_react.md +26 -1
- package/docs/zh/intlayer_with_astro_solid.md +26 -1
- package/docs/zh/intlayer_with_astro_svelte.md +25 -1
- package/docs/zh/intlayer_with_astro_vue.md +25 -1
- package/docs/zh/intlayer_with_remix_3.md +22 -1
- package/docs/zh/self_hosting.md +410 -237
- package/legal/ar/privacy_notice.md +9 -3
- package/legal/de/privacy_notice.md +9 -3
- package/legal/en/privacy_notice.md +10 -3
- package/legal/en-GB/privacy_notice.md +9 -3
- package/legal/es/privacy_notice.md +9 -3
- package/legal/fr/privacy_notice.md +9 -3
- package/legal/hi/privacy_notice.md +9 -3
- package/legal/id/privacy_notice.md +9 -3
- package/legal/it/privacy_notice.md +9 -3
- package/legal/ja/privacy_notice.md +9 -3
- package/legal/ko/privacy_notice.md +9 -3
- package/legal/pl/privacy_notice.md +9 -3
- package/legal/pt/privacy_notice.md +9 -3
- package/legal/ru/privacy_notice.md +9 -3
- package/legal/tr/privacy_notice.md +9 -3
- package/legal/uk/privacy_notice.md +9 -3
- package/legal/vi/privacy_notice.md +9 -3
- package/legal/zh/privacy_notice.md +9 -3
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +60 -40
- package/docs/ar/roadmap.md +0 -321
- package/docs/de/roadmap.md +0 -322
- package/docs/en/intlayer_with_astro_vanilla.md +0 -713
- package/docs/en/roadmap.md +0 -325
- package/docs/en-GB/roadmap.md +0 -322
- package/docs/es/roadmap.md +0 -322
- package/docs/fr/roadmap.md +0 -322
- package/docs/hi/roadmap.md +0 -322
- package/docs/id/roadmap.md +0 -325
- package/docs/it/roadmap.md +0 -322
- package/docs/ja/roadmap.md +0 -322
- package/docs/ko/roadmap.md +0 -322
- package/docs/pl/roadmap.md +0 -325
- package/docs/pt/roadmap.md +0 -322
- package/docs/ru/roadmap.md +0 -322
- package/docs/tr/roadmap.md +0 -325
- package/docs/uk/roadmap.md +0 -325
- package/docs/vi/roadmap.md +0 -325
- 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**: 확장 가능한 셀프 호스팅을 위한 서비스당 하나의 컨테이너 구성입니다. `./intlayer/`에 `docker-compose.yml` 및 `.env`를 작성하고 이미지를 가져옵니다.
|
|
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는 이를 그대로 전달합니다. 명령을 실행하기 전에 셸에서 설정하세요:
|
|
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/ko/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/ko/self_hosting.md#global-mailer)를 참조하세요.
|
|
157
|
+
|
|
158
|
+
## 관련 문서
|
|
159
|
+
|
|
160
|
+
- [셀프 호스팅 가이드](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/self_hosting.md) - 각 모드의 아키텍처, 초기 실행 단계 및 제한 사항
|
|
161
|
+
- [Intlayer 초기화](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/init.md) - 상위 `init` 명령어 및 대화형 체크리스트
|
|
162
|
+
- [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md) - 방금 설치한 대시보드의 기능
|
package/docs/ko/cli/init.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-12-30
|
|
3
|
-
updatedAt:
|
|
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/ko/cli/infra.md)를, 각 모드가 설정하는 세부 내용은 [셀프 호스팅 가이드](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/self_hosting.md)를 참조하세요.
|
|
150
|
+
|
|
128
151
|
## 출력 예시:
|
|
129
152
|
|
|
130
153
|
```bash
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-23
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
|
+
title: CLI - Intlayer 패키지 업그레이드
|
|
5
|
+
description: Intlayer CLI upgrade 명령어를 사용하여 프로젝트 또는 모노레포의 모든 Intlayer 패키지를 나열하고 최신 버전으로 업그레이드하는 방법을 알아봅니다.
|
|
6
|
+
keywords:
|
|
7
|
+
- CLI
|
|
8
|
+
- Upgrade
|
|
9
|
+
- 업그레이드
|
|
10
|
+
- Packages
|
|
11
|
+
- 패키지
|
|
12
|
+
- Monorepo
|
|
13
|
+
- Intlayer
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- cli
|
|
18
|
+
- upgrade
|
|
19
|
+
history:
|
|
20
|
+
- version: 9.5.8
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "upgrade 명령어 추가"
|
|
23
|
+
author: aymericzip
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Intlayer 패키지 업그레이드
|
|
27
|
+
|
|
28
|
+
```bash packageManager="npm"
|
|
29
|
+
npx intlayer upgrade
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```bash packageManager="yarn"
|
|
33
|
+
yarn intlayer upgrade
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```bash packageManager="pnpm"
|
|
37
|
+
pnpm intlayer upgrade
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```bash packageManager="bun"
|
|
41
|
+
bun x intlayer upgrade
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`upgrade` 명령어는 모노레포 워크스페이스를 포함하여 프로젝트의 모든 `package.json`에 선언된 Intlayer 패키지를 나열하고 최신 배포 버전으로 업그레이드합니다. `intlayer init`과 동일한 패키지 업그레이드 단계를 독립적으로 실행합니다.
|
|
45
|
+
|
|
46
|
+
## 인수:
|
|
47
|
+
|
|
48
|
+
- `--project-root [projectRoot]` - 선택 사항. 프로젝트 루트 디렉터리입니다. 기본적으로 현재 작업 디렉터리 상위의 가장 가까운 `package.json`부터 시작합니다.
|
|
49
|
+
- `--dry-run` - 선택 사항. 파일을 수정하지 않고 패키지와 대상 버전을 나열합니다.
|
|
50
|
+
- `--tag <tag>` - 선택 사항. 업그레이드할 npm dist-tag입니다(예: `canary`). 기본값은 `latest`입니다.
|
|
51
|
+
|
|
52
|
+
## 동작 방식:
|
|
53
|
+
|
|
54
|
+
1. **Intlayer 패키지 나열** - 프로젝트의 각 `package.json`(`node_modules` 및 빌드 출력 제외)을 스캔하여 `intlayer`, `@intlayer/*`, `*-intlayer`, `intlayer-*` 종속성 및 devDependencies를 찾습니다.
|
|
55
|
+
2. **대상 버전 가져오기** - npm 레지스트리에서 각 패키지의 선택된 dist-tag(기본값: `latest`) 버전을 읽어옵니다.
|
|
56
|
+
3. **버전 범위 재작성** - 각 오래된 범위를 파일 내에서 직접 업데이트하며, 연산자(`^`, `~` 또는 없음) 및 파일 들여쓰기를 유지합니다.
|
|
57
|
+
4. **한 번만 설치** - 잠금 파일(lock file)을 소유한 패키지 관리자를 사용하여 워크스페이스 루트(잠금 파일이 있는 가장 가까운 디렉터리)에서 단일 설치를 실행합니다:
|
|
58
|
+
|
|
59
|
+
| 잠금 파일 | 명령어 |
|
|
60
|
+
| ----------------------------- | -------------- |
|
|
61
|
+
| `bun.lock` / `bun.lockb` | `bun install` |
|
|
62
|
+
| `pnpm-lock.yaml` | `pnpm install` |
|
|
63
|
+
| `yarn.lock` | `yarn install` |
|
|
64
|
+
| `package-lock.json` 또는 없음 | `npm install` |
|
|
65
|
+
|
|
66
|
+
잠금 파일이 없는 경우 npm으로 대체하기 전에 `package.json`의 `packageManager` 필드(예: `"bun@1.2.0"`)가 사용됩니다.
|
|
67
|
+
|
|
68
|
+
`workspace:*`, `file:`, `link:`, `catalog:` 또는 git URL과 같이 레지스트리를 가리키지 않는 범위는 수정되지 않습니다.
|
|
69
|
+
|
|
70
|
+
## 예제:
|
|
71
|
+
|
|
72
|
+
### 변경 사항을 적용하지 않고 사용 가능한 업그레이드 나열:
|
|
73
|
+
|
|
74
|
+
```bash packageManager="npm"
|
|
75
|
+
npx intlayer upgrade --dry-run
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```bash packageManager="yarn"
|
|
79
|
+
yarn intlayer upgrade --dry-run
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```bash packageManager="pnpm"
|
|
83
|
+
pnpm intlayer upgrade --dry-run
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```bash packageManager="bun"
|
|
87
|
+
bun x intlayer upgrade --dry-run
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### canary 릴리스로 업그레이드:
|
|
91
|
+
|
|
92
|
+
```bash packageManager="npm"
|
|
93
|
+
npx intlayer upgrade --tag canary
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```bash packageManager="yarn"
|
|
97
|
+
yarn intlayer upgrade --tag canary
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```bash packageManager="pnpm"
|
|
101
|
+
pnpm intlayer upgrade --tag canary
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```bash packageManager="bun"
|
|
105
|
+
bun x intlayer upgrade --tag canary
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 출력 예시:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npx intlayer upgrade
|
|
112
|
+
Intlayer packages:
|
|
113
|
+
package.json
|
|
114
|
+
intlayer ^9.0.0 → ^9.5.7
|
|
115
|
+
apps/web/package.json
|
|
116
|
+
next-intlayer ^9.5.7 (latest)
|
|
117
|
+
vite-intlayer ~9.2.0 → ~9.5.7
|
|
118
|
+
Running bun install...
|
|
119
|
+
✓ Upgraded 2 Intlayer dependencies to latest
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 참고:
|
|
123
|
+
|
|
124
|
+
- 리포지토리 루트에서 명령어를 실행하면 모든 워크스페이스가 업그레이드됩니다. 특정 워크스페이스에서 실행하면 해당 워크스페이스만 업그레이드됩니다.
|
|
125
|
+
- 버전을 가져올 수 없는 패키지(오프라인, 비공개 또는 미게시 패키지)는 목록에 표시되지만 변경되지 않습니다.
|
|
126
|
+
- 설치에 실패하더라도 업그레이드된 범위는 `package.json`에 유지됩니다. 패키지 관리자의 설치 명령어를 수동으로 실행하세요.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-20
|
|
3
|
-
updatedAt: 2026-
|
|
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 @@ HTML 노드에서 `.use()` 메서드를 사용할 때, 제공하는 컴포넌트
|
|
|
235
237
|
```
|
|
236
238
|
|
|
237
239
|
</Tab>
|
|
240
|
+
<Tab label="Remix" value="remix">
|
|
241
|
+
Remix 3에서 HTML 노드는 HTML 문자열로 확인됩니다. Remix JSX의 `innerHTML` prop 또는 `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,41 @@ HTML 노드에서 `.use()` 메서드를 사용할 때, 제공하는 컴포넌트
|
|
|
470
549
|
> HTML 렌더러를 동적으로 가져오는 것은 애플리케이션의 번들 크기를 줄이는 좋은 방법입니다.
|
|
471
550
|
|
|
472
551
|
</Tab>
|
|
552
|
+
<Tab label="Remix" value="remix">
|
|
553
|
+
|
|
554
|
+
Remix에는 프로바이더를 담을 컴포넌트 트리가 없으므로 설정은 서버 시작 시 싱글톤으로 한 번 설치됩니다. `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에는 프로바이더를 담을 컴포넌트 트리가 없으므로 설정은 미들웨어(서버) 및 클라이언트 `<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
|
+
// 이 파일보다 앞서 통합에 의해 등록됩니다.
|
|
577
|
+
installIntlayerHTML({
|
|
578
|
+
renderHTML: (html) => html.replaceAll("<p>", '<p class="prose">'),
|
|
579
|
+
});
|
|
580
|
+
|
|
581
|
+
export const onRequest = defineMiddleware((_context, next) => next());
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
> 렌더러 자체를 지연 로드하려면 `installIntlayerHTMLDynamic(async () => …)`를 사용하세요. 로더는 첫 번째 호출 시에만 실행됩니다.
|
|
585
|
+
|
|
586
|
+
</Tab>
|
|
473
587
|
</Tabs>
|
|
474
588
|
|
|
475
589
|
### 수동 렌더링 및 고급 도구
|
|
@@ -643,15 +757,69 @@ HTML 노드에서 `.use()` 메서드를 사용할 때, 제공하는 컴포넌트
|
|
|
643
757
|
```
|
|
644
758
|
|
|
645
759
|
</Tab>
|
|
760
|
+
<Tab label="Remix" value="remix">
|
|
761
|
+
#### `useHTMLRenderer()` 훅
|
|
762
|
+
|
|
763
|
+
`installIntlayerHTML()`로 사전 구성된 렌더러 함수를 가져옵니다. HTML 문자열을 반환합니다.
|
|
764
|
+
|
|
765
|
+
```tsx
|
|
766
|
+
import { useHTMLRenderer } from "remix-intlayer/html";
|
|
767
|
+
|
|
768
|
+
const renderHTML = useHTMLRenderer();
|
|
769
|
+
|
|
770
|
+
return <div innerHTML={renderHTML("<p>Hello <strong>World</strong></p>")} />;
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
#### `renderHTML()` 유틸리티
|
|
774
|
+
|
|
775
|
+
전역 구성을 무시하는 독립형 유틸리티입니다.
|
|
776
|
+
|
|
777
|
+
```tsx
|
|
778
|
+
import { renderHTML } from "remix-intlayer/html";
|
|
779
|
+
|
|
780
|
+
const html = renderHTML("<p>Hello</p>");
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
</Tab>
|
|
784
|
+
<Tab label="Astro" value="astro">
|
|
785
|
+
#### `useHTMLRenderer()` 훅
|
|
786
|
+
|
|
787
|
+
`installIntlayerHTML()`로 사전 구성된 렌더러 함수를 가져옵니다. HTML 문자열을 반환합니다.
|
|
788
|
+
|
|
789
|
+
```astro
|
|
790
|
+
---
|
|
791
|
+
import { useHTMLRenderer } from "astro-intlayer/html";
|
|
792
|
+
|
|
793
|
+
const renderHTML = useHTMLRenderer();
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
<div set:html={renderHTML("<p>Hello <strong>World</strong></p>")} />
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
#### `renderHTML()` 유틸리티
|
|
800
|
+
|
|
801
|
+
전역 구성을 무시하는 독립형 유틸리티입니다.
|
|
802
|
+
|
|
803
|
+
```astro
|
|
804
|
+
---
|
|
805
|
+
import { renderHTML } from "astro-intlayer/html";
|
|
806
|
+
|
|
807
|
+
const html = renderHTML("<p>Hello</p>");
|
|
808
|
+
---
|
|
809
|
+
|
|
810
|
+
<div set:html={html} />
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
</Tab>
|
|
646
814
|
</Tabs>
|
|
647
815
|
|
|
648
816
|
## 옵션 참조
|
|
649
817
|
|
|
650
818
|
이 옵션들은 `HTMLProvider`, `HTMLRenderer`, `useHTMLRenderer`, 및 `renderHTML`에 전달할 수 있습니다.
|
|
651
819
|
|
|
652
|
-
| 옵션 | 타입 | 기본값 | 설명
|
|
653
|
-
| :----------- | :-------------------- | :----- |
|
|
654
|
-
| `components` | `Record<string, any>` | `{}` | HTML 태그 또는 커스텀 컴포넌트 이름을 컴포넌트에 매핑한 맵.
|
|
655
|
-
| `renderHTML` | `Function` | `null` | 기본 HTML 파서를 완전히
|
|
820
|
+
| 옵션 | 타입 | 기본값 | 설명 |
|
|
821
|
+
| :----------- | :-------------------- | :----- | :--------------------------------------------------------------------------------------------- |
|
|
822
|
+
| `components` | `Record<string, any>` | `{}` | HTML 태그 또는 커스텀 컴포넌트 이름을 컴포넌트에 매핑한 맵. |
|
|
823
|
+
| `renderHTML` | `Function` | `null` | 기본 HTML 파서를 완전히 대체하기 위한 커스텀 렌더링 함수 (Vue, Svelte, Remix 및 Astro 제공자). |
|
|
656
824
|
|
|
657
825
|
> 참고: React 및 Preact의 경우 표준 HTML 태그가 자동으로 제공됩니다. 태그를 재정의하거나 커스텀 컴포넌트를 추가하려는 경우에만 `components` prop을 전달하면 됩니다.
|