@intlayer/docs 9.5.5 → 9.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ar/i18next_vs_intlayer.md +130 -16
- 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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/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/transform_existing_vite_react_app_using_compiler.md +4 -2
- 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/docs.entry.cjs +40 -40
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/esm/generated/docs.entry.mjs +40 -40
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/types/generated/docs.entry.d.ts +2 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/nextjs.md +13 -13
- package/docs/ar/benchmark/solid.md +5 -5
- package/docs/ar/benchmark/svelte.md +4 -4
- package/docs/ar/benchmark/tanstack.md +14 -13
- package/docs/ar/benchmark/vue.md +5 -5
- package/docs/ar/chrome_extension.md +130 -0
- package/docs/ar/cli/index.md +6 -1
- package/docs/ar/cli/infra.md +162 -0
- package/docs/ar/cli/init.md +24 -1
- 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 +42 -32
- package/docs/ar/intlayer_with_astro_lit.md +56 -36
- package/docs/ar/intlayer_with_astro_preact.md +57 -36
- package/docs/ar/intlayer_with_astro_react.md +57 -36
- package/docs/ar/intlayer_with_astro_solid.md +57 -36
- package/docs/ar/intlayer_with_astro_svelte.md +56 -36
- package/docs/ar/intlayer_with_astro_vue.md +56 -36
- package/docs/ar/intlayer_with_react_router_v7.md +12 -1
- package/docs/ar/intlayer_with_remix_3.md +22 -1
- package/docs/ar/intlayer_with_solid_start.md +14 -7
- package/docs/ar/intlayer_with_svelte_kit.md +12 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ar/intlayer_with_tanstack.md +13 -6
- package/docs/ar/intlayer_with_vite+lit.md +75 -3
- package/docs/ar/intlayer_with_vite+preact.md +27 -19
- package/docs/ar/intlayer_with_vite+react.md +27 -19
- package/docs/ar/intlayer_with_vite+solid.md +27 -19
- package/docs/ar/intlayer_with_vite+svelte.md +27 -19
- package/docs/ar/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ar/intlayer_with_vite+vue.md +27 -19
- package/docs/ar/introduction.md +0 -1
- package/docs/ar/readme.md +0 -1
- package/docs/ar/releases/v8.md +1 -5
- package/docs/ar/self_hosting.md +406 -231
- package/docs/bn/intlayer_with_vite+lit.md +75 -3
- package/docs/bn/intlayer_with_vite+vanilla.md +16 -3
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/intlayer_with_vite+lit.md +75 -3
- package/docs/cs/intlayer_with_vite+vanilla.md +16 -3
- package/docs/cs/introduction.md +0 -1
- package/docs/de/benchmark/nextjs.md +13 -13
- package/docs/de/benchmark/solid.md +5 -5
- package/docs/de/benchmark/svelte.md +4 -4
- package/docs/de/benchmark/tanstack.md +14 -13
- package/docs/de/benchmark/vue.md +5 -5
- package/docs/de/chrome_extension.md +130 -0
- package/docs/de/cli/index.md +6 -1
- package/docs/de/cli/infra.md +162 -0
- package/docs/de/cli/init.md +24 -1
- 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 +35 -25
- package/docs/de/intlayer_with_astro_lit.md +47 -27
- package/docs/de/intlayer_with_astro_preact.md +48 -27
- package/docs/de/intlayer_with_astro_react.md +48 -27
- package/docs/de/intlayer_with_astro_solid.md +48 -27
- package/docs/de/intlayer_with_astro_svelte.md +47 -27
- package/docs/de/intlayer_with_astro_vue.md +47 -27
- package/docs/de/intlayer_with_react_router_v7.md +12 -1
- package/docs/de/intlayer_with_remix_3.md +22 -1
- package/docs/de/intlayer_with_solid_start.md +14 -7
- package/docs/de/intlayer_with_svelte_kit.md +12 -1
- package/docs/de/intlayer_with_tanstack+solid.md +13 -2
- package/docs/de/intlayer_with_tanstack.md +13 -6
- package/docs/de/intlayer_with_vite+lit.md +75 -3
- package/docs/de/intlayer_with_vite+preact.md +16 -3
- package/docs/de/intlayer_with_vite+react.md +16 -3
- package/docs/de/intlayer_with_vite+solid.md +16 -3
- package/docs/de/intlayer_with_vite+svelte.md +16 -3
- package/docs/de/intlayer_with_vite+vanilla.md +16 -3
- package/docs/de/intlayer_with_vite+vue.md +16 -3
- package/docs/de/introduction.md +0 -1
- package/docs/de/readme.md +0 -1
- package/docs/de/releases/v8.md +1 -5
- package/docs/de/self_hosting.md +404 -227
- package/docs/en/benchmark/nextjs.md +13 -13
- package/docs/en/benchmark/solid.md +5 -5
- package/docs/en/benchmark/svelte.md +4 -4
- package/docs/en/benchmark/tanstack.md +14 -13
- package/docs/en/benchmark/vue.md +5 -5
- package/docs/en/chrome_extension.md +130 -0
- package/docs/en/cli/index.md +6 -1
- package/docs/en/cli/infra.md +175 -0
- package/docs/en/cli/init.md +25 -1
- 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 +29 -21
- package/docs/en/intlayer_with_astro_lit.md +46 -26
- package/docs/en/intlayer_with_astro_preact.md +47 -26
- package/docs/en/intlayer_with_astro_react.md +47 -26
- package/docs/en/intlayer_with_astro_solid.md +47 -26
- package/docs/en/intlayer_with_astro_svelte.md +46 -26
- package/docs/en/intlayer_with_astro_vue.md +46 -26
- package/docs/en/intlayer_with_react_router_v7.md +12 -1
- package/docs/en/intlayer_with_remix_3.md +22 -1
- package/docs/en/intlayer_with_solid_start.md +14 -7
- package/docs/en/intlayer_with_svelte_kit.md +12 -1
- package/docs/en/intlayer_with_tanstack+solid.md +13 -2
- package/docs/en/intlayer_with_tanstack.md +12 -5
- package/docs/en/intlayer_with_vite+lit.md +75 -3
- package/docs/en/intlayer_with_vite+preact.md +16 -3
- package/docs/en/intlayer_with_vite+react.md +16 -3
- package/docs/en/intlayer_with_vite+solid.md +16 -3
- package/docs/en/intlayer_with_vite+svelte.md +16 -3
- package/docs/en/intlayer_with_vite+vanilla.md +16 -3
- package/docs/en/intlayer_with_vite+vue.md +16 -3
- package/docs/en/introduction.md +0 -1
- package/docs/en/readme.md +0 -1
- package/docs/en/releases/v8.md +1 -5
- package/docs/en/self_hosting.md +418 -176
- package/docs/en-GB/benchmark/nextjs.md +13 -13
- package/docs/en-GB/benchmark/solid.md +5 -5
- package/docs/en-GB/benchmark/svelte.md +4 -4
- package/docs/en-GB/benchmark/tanstack.md +14 -13
- package/docs/en-GB/benchmark/vue.md +5 -5
- package/docs/en-GB/chrome_extension.md +130 -0
- package/docs/en-GB/cli/index.md +6 -1
- package/docs/en-GB/cli/infra.md +162 -0
- package/docs/en-GB/cli/init.md +24 -1
- 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 +35 -25
- package/docs/en-GB/intlayer_with_astro_lit.md +47 -27
- package/docs/en-GB/intlayer_with_astro_preact.md +48 -27
- package/docs/en-GB/intlayer_with_astro_react.md +48 -27
- package/docs/en-GB/intlayer_with_astro_solid.md +48 -27
- package/docs/en-GB/intlayer_with_astro_svelte.md +47 -27
- package/docs/en-GB/intlayer_with_astro_vue.md +47 -27
- package/docs/en-GB/intlayer_with_react_router_v7.md +12 -1
- package/docs/en-GB/intlayer_with_remix_3.md +22 -1
- package/docs/en-GB/intlayer_with_solid_start.md +14 -7
- package/docs/en-GB/intlayer_with_svelte_kit.md +12 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -2
- package/docs/en-GB/intlayer_with_tanstack.md +13 -6
- package/docs/en-GB/intlayer_with_vite+lit.md +75 -3
- package/docs/en-GB/intlayer_with_vite+preact.md +16 -3
- package/docs/en-GB/intlayer_with_vite+react.md +16 -3
- package/docs/en-GB/intlayer_with_vite+solid.md +25 -15
- package/docs/en-GB/intlayer_with_vite+svelte.md +16 -3
- package/docs/en-GB/intlayer_with_vite+vanilla.md +16 -3
- package/docs/en-GB/intlayer_with_vite+vue.md +16 -3
- package/docs/en-GB/introduction.md +0 -1
- package/docs/en-GB/readme.md +0 -1
- package/docs/en-GB/releases/v8.md +1 -5
- package/docs/en-GB/self_hosting.md +381 -206
- package/docs/es/benchmark/nextjs.md +13 -13
- package/docs/es/benchmark/solid.md +5 -5
- package/docs/es/benchmark/svelte.md +4 -4
- package/docs/es/benchmark/tanstack.md +14 -13
- package/docs/es/benchmark/vue.md +5 -5
- package/docs/es/chrome_extension.md +130 -0
- package/docs/es/cli/index.md +6 -1
- package/docs/es/cli/infra.md +162 -0
- package/docs/es/cli/init.md +24 -1
- 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 +35 -25
- package/docs/es/intlayer_with_astro_lit.md +47 -27
- package/docs/es/intlayer_with_astro_preact.md +48 -27
- package/docs/es/intlayer_with_astro_react.md +48 -27
- package/docs/es/intlayer_with_astro_solid.md +48 -27
- package/docs/es/intlayer_with_astro_svelte.md +47 -27
- package/docs/es/intlayer_with_astro_vue.md +47 -27
- package/docs/es/intlayer_with_react_router_v7.md +12 -1
- package/docs/es/intlayer_with_remix_3.md +22 -1
- package/docs/es/intlayer_with_solid_start.md +14 -7
- package/docs/es/intlayer_with_svelte_kit.md +12 -1
- package/docs/es/intlayer_with_tanstack+solid.md +13 -2
- package/docs/es/intlayer_with_tanstack.md +13 -6
- package/docs/es/intlayer_with_vite+lit.md +75 -3
- package/docs/es/intlayer_with_vite+preact.md +16 -3
- package/docs/es/intlayer_with_vite+react.md +16 -3
- package/docs/es/intlayer_with_vite+solid.md +16 -3
- package/docs/es/intlayer_with_vite+svelte.md +16 -3
- package/docs/es/intlayer_with_vite+vanilla.md +16 -3
- package/docs/es/intlayer_with_vite+vue.md +16 -3
- package/docs/es/introduction.md +0 -1
- package/docs/es/readme.md +0 -1
- package/docs/es/releases/v8.md +1 -5
- package/docs/es/self_hosting.md +400 -223
- package/docs/fr/benchmark/nextjs.md +13 -13
- package/docs/fr/benchmark/solid.md +5 -5
- package/docs/fr/benchmark/svelte.md +4 -4
- package/docs/fr/benchmark/tanstack.md +14 -13
- package/docs/fr/benchmark/vue.md +5 -5
- package/docs/fr/chrome_extension.md +130 -0
- package/docs/fr/cli/index.md +6 -1
- package/docs/fr/cli/infra.md +162 -0
- package/docs/fr/cli/init.md +24 -1
- 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 +36 -26
- package/docs/fr/intlayer_with_astro_lit.md +48 -28
- package/docs/fr/intlayer_with_astro_preact.md +49 -28
- package/docs/fr/intlayer_with_astro_react.md +49 -28
- package/docs/fr/intlayer_with_astro_solid.md +49 -28
- package/docs/fr/intlayer_with_astro_svelte.md +48 -28
- package/docs/fr/intlayer_with_astro_vue.md +48 -28
- package/docs/fr/intlayer_with_react_router_v7.md +15 -4
- package/docs/fr/intlayer_with_remix_3.md +22 -1
- package/docs/fr/intlayer_with_solid_start.md +14 -7
- package/docs/fr/intlayer_with_svelte_kit.md +15 -4
- package/docs/fr/intlayer_with_tanstack+solid.md +15 -4
- package/docs/fr/intlayer_with_tanstack.md +13 -6
- package/docs/fr/intlayer_with_vite+lit.md +75 -3
- package/docs/fr/intlayer_with_vite+preact.md +19 -6
- package/docs/fr/intlayer_with_vite+react.md +19 -6
- package/docs/fr/intlayer_with_vite+solid.md +19 -6
- package/docs/fr/intlayer_with_vite+svelte.md +19 -6
- package/docs/fr/intlayer_with_vite+vanilla.md +19 -6
- package/docs/fr/intlayer_with_vite+vue.md +19 -6
- package/docs/fr/introduction.md +0 -1
- package/docs/fr/readme.md +0 -1
- package/docs/fr/releases/v8.md +1 -5
- package/docs/fr/self_hosting.md +401 -224
- package/docs/hi/benchmark/nextjs.md +13 -13
- package/docs/hi/benchmark/solid.md +5 -5
- package/docs/hi/benchmark/svelte.md +4 -4
- package/docs/hi/benchmark/tanstack.md +14 -13
- package/docs/hi/benchmark/vue.md +5 -5
- package/docs/hi/chrome_extension.md +130 -0
- package/docs/hi/cli/index.md +6 -1
- package/docs/hi/cli/infra.md +162 -0
- package/docs/hi/cli/init.md +24 -1
- 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 +38 -31
- package/docs/hi/intlayer_with_astro_lit.md +50 -33
- package/docs/hi/intlayer_with_astro_preact.md +51 -33
- package/docs/hi/intlayer_with_astro_react.md +51 -33
- package/docs/hi/intlayer_with_astro_solid.md +51 -33
- package/docs/hi/intlayer_with_astro_svelte.md +50 -33
- package/docs/hi/intlayer_with_astro_vue.md +50 -33
- package/docs/hi/intlayer_with_react_router_v7.md +20 -12
- package/docs/hi/intlayer_with_remix_3.md +22 -1
- package/docs/hi/intlayer_with_solid_start.md +14 -7
- package/docs/hi/intlayer_with_svelte_kit.md +20 -12
- package/docs/hi/intlayer_with_tanstack+solid.md +13 -2
- package/docs/hi/intlayer_with_tanstack.md +21 -17
- package/docs/hi/intlayer_with_vite+lit.md +75 -3
- package/docs/hi/intlayer_with_vite+preact.md +24 -14
- package/docs/hi/intlayer_with_vite+react.md +24 -14
- package/docs/hi/intlayer_with_vite+solid.md +24 -14
- package/docs/hi/intlayer_with_vite+svelte.md +24 -14
- package/docs/hi/intlayer_with_vite+vanilla.md +16 -3
- package/docs/hi/intlayer_with_vite+vue.md +24 -14
- package/docs/hi/introduction.md +0 -1
- package/docs/hi/readme.md +0 -1
- package/docs/hi/releases/v8.md +1 -5
- package/docs/hi/self_hosting.md +409 -235
- package/docs/id/benchmark/nextjs.md +13 -13
- package/docs/id/benchmark/solid.md +5 -5
- package/docs/id/benchmark/svelte.md +4 -4
- package/docs/id/benchmark/tanstack.md +14 -13
- package/docs/id/benchmark/vue.md +5 -5
- package/docs/id/chrome_extension.md +130 -0
- package/docs/id/cli/index.md +6 -1
- package/docs/id/cli/infra.md +162 -0
- package/docs/id/cli/init.md +24 -1
- 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 +35 -25
- package/docs/id/intlayer_with_astro_lit.md +47 -27
- package/docs/id/intlayer_with_astro_preact.md +48 -27
- package/docs/id/intlayer_with_astro_react.md +48 -27
- package/docs/id/intlayer_with_astro_solid.md +48 -27
- package/docs/id/intlayer_with_astro_svelte.md +47 -27
- package/docs/id/intlayer_with_astro_vue.md +47 -27
- package/docs/id/intlayer_with_react_router_v7.md +12 -1
- package/docs/id/intlayer_with_remix_3.md +22 -1
- package/docs/id/intlayer_with_solid_start.md +14 -7
- package/docs/id/intlayer_with_svelte_kit.md +12 -1
- package/docs/id/intlayer_with_tanstack+solid.md +13 -2
- package/docs/id/intlayer_with_tanstack.md +13 -6
- package/docs/id/intlayer_with_vite+lit.md +75 -3
- package/docs/id/intlayer_with_vite+preact.md +16 -3
- package/docs/id/intlayer_with_vite+react.md +16 -3
- package/docs/id/intlayer_with_vite+solid.md +16 -3
- package/docs/id/intlayer_with_vite+svelte.md +16 -3
- package/docs/id/intlayer_with_vite+vanilla.md +16 -3
- package/docs/id/intlayer_with_vite+vue.md +16 -3
- package/docs/id/introduction.md +0 -1
- package/docs/id/readme.md +0 -1
- package/docs/id/releases/v8.md +1 -5
- package/docs/id/self_hosting.md +416 -243
- package/docs/it/benchmark/nextjs.md +13 -13
- package/docs/it/benchmark/solid.md +5 -5
- package/docs/it/benchmark/svelte.md +4 -4
- package/docs/it/benchmark/tanstack.md +14 -13
- package/docs/it/benchmark/vue.md +5 -5
- package/docs/it/chrome_extension.md +130 -0
- package/docs/it/cli/index.md +6 -1
- package/docs/it/cli/infra.md +162 -0
- package/docs/it/cli/init.md +24 -1
- 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 +35 -25
- package/docs/it/intlayer_with_astro_lit.md +47 -27
- package/docs/it/intlayer_with_astro_preact.md +48 -27
- package/docs/it/intlayer_with_astro_react.md +48 -27
- package/docs/it/intlayer_with_astro_solid.md +48 -27
- package/docs/it/intlayer_with_astro_svelte.md +47 -27
- package/docs/it/intlayer_with_astro_vue.md +47 -27
- package/docs/it/intlayer_with_react_router_v7.md +12 -1
- package/docs/it/intlayer_with_remix_3.md +22 -1
- package/docs/it/intlayer_with_solid_start.md +14 -7
- package/docs/it/intlayer_with_svelte_kit.md +12 -1
- package/docs/it/intlayer_with_tanstack+solid.md +13 -2
- package/docs/it/intlayer_with_tanstack.md +13 -6
- package/docs/it/intlayer_with_vite+lit.md +75 -3
- package/docs/it/intlayer_with_vite+preact.md +16 -3
- package/docs/it/intlayer_with_vite+react.md +16 -3
- package/docs/it/intlayer_with_vite+solid.md +16 -3
- package/docs/it/intlayer_with_vite+svelte.md +16 -3
- package/docs/it/intlayer_with_vite+vanilla.md +16 -3
- package/docs/it/intlayer_with_vite+vue.md +16 -3
- package/docs/it/introduction.md +0 -1
- package/docs/it/readme.md +0 -1
- package/docs/it/releases/v8.md +1 -5
- package/docs/it/self_hosting.md +412 -237
- package/docs/ja/benchmark/nextjs.md +13 -13
- package/docs/ja/benchmark/solid.md +5 -5
- package/docs/ja/benchmark/svelte.md +4 -4
- package/docs/ja/benchmark/tanstack.md +13 -12
- package/docs/ja/benchmark/vue.md +5 -5
- package/docs/ja/chrome_extension.md +130 -0
- package/docs/ja/cli/index.md +6 -1
- package/docs/ja/cli/infra.md +162 -0
- package/docs/ja/cli/init.md +24 -1
- 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 +35 -25
- package/docs/ja/intlayer_with_astro_lit.md +47 -27
- package/docs/ja/intlayer_with_astro_preact.md +48 -27
- package/docs/ja/intlayer_with_astro_react.md +48 -27
- package/docs/ja/intlayer_with_astro_solid.md +48 -27
- package/docs/ja/intlayer_with_astro_svelte.md +47 -27
- package/docs/ja/intlayer_with_astro_vue.md +47 -27
- package/docs/ja/intlayer_with_react_router_v7.md +12 -1
- package/docs/ja/intlayer_with_remix_3.md +22 -1
- package/docs/ja/intlayer_with_solid_start.md +14 -7
- package/docs/ja/intlayer_with_svelte_kit.md +21 -15
- package/docs/ja/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ja/intlayer_with_tanstack.md +13 -6
- package/docs/ja/intlayer_with_vite+lit.md +75 -3
- package/docs/ja/intlayer_with_vite+preact.md +16 -3
- package/docs/ja/intlayer_with_vite+react.md +16 -3
- package/docs/ja/intlayer_with_vite+solid.md +16 -3
- package/docs/ja/intlayer_with_vite+svelte.md +16 -3
- package/docs/ja/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ja/intlayer_with_vite+vue.md +16 -3
- package/docs/ja/introduction.md +0 -1
- package/docs/ja/readme.md +0 -1
- package/docs/ja/releases/v8.md +1 -5
- package/docs/ja/self_hosting.md +398 -223
- package/docs/ko/benchmark/nextjs.md +13 -13
- package/docs/ko/benchmark/solid.md +5 -5
- package/docs/ko/benchmark/svelte.md +4 -4
- package/docs/ko/benchmark/tanstack.md +14 -13
- package/docs/ko/benchmark/vue.md +5 -5
- package/docs/ko/chrome_extension.md +130 -0
- package/docs/ko/cli/index.md +6 -1
- package/docs/ko/cli/infra.md +162 -0
- package/docs/ko/cli/init.md +24 -1
- 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 +29 -21
- package/docs/ko/intlayer_with_astro_lit.md +47 -27
- package/docs/ko/intlayer_with_astro_preact.md +48 -27
- package/docs/ko/intlayer_with_astro_react.md +48 -27
- package/docs/ko/intlayer_with_astro_solid.md +48 -27
- package/docs/ko/intlayer_with_astro_svelte.md +47 -27
- package/docs/ko/intlayer_with_astro_vue.md +47 -27
- package/docs/ko/intlayer_with_react_router_v7.md +12 -1
- package/docs/ko/intlayer_with_remix_3.md +22 -1
- package/docs/ko/intlayer_with_solid_start.md +14 -7
- package/docs/ko/intlayer_with_svelte_kit.md +12 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ko/intlayer_with_tanstack.md +13 -6
- package/docs/ko/intlayer_with_vite+lit.md +75 -3
- package/docs/ko/intlayer_with_vite+preact.md +16 -3
- package/docs/ko/intlayer_with_vite+react.md +16 -3
- package/docs/ko/intlayer_with_vite+solid.md +26 -16
- package/docs/ko/intlayer_with_vite+svelte.md +16 -3
- package/docs/ko/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ko/intlayer_with_vite+vue.md +16 -3
- package/docs/ko/introduction.md +0 -1
- package/docs/ko/readme.md +0 -1
- package/docs/ko/releases/v8.md +1 -5
- package/docs/ko/self_hosting.md +411 -238
- package/docs/nl/intlayer_with_vite+lit.md +75 -3
- package/docs/nl/intlayer_with_vite+vanilla.md +16 -3
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/benchmark/nextjs.md +13 -13
- package/docs/pl/benchmark/solid.md +5 -5
- package/docs/pl/benchmark/svelte.md +4 -4
- package/docs/pl/benchmark/tanstack.md +14 -13
- package/docs/pl/benchmark/vue.md +5 -5
- package/docs/pl/chrome_extension.md +130 -0
- package/docs/pl/cli/index.md +6 -1
- package/docs/pl/cli/infra.md +162 -0
- package/docs/pl/cli/init.md +24 -1
- 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 +29 -21
- package/docs/pl/intlayer_with_astro_lit.md +47 -27
- package/docs/pl/intlayer_with_astro_preact.md +48 -27
- package/docs/pl/intlayer_with_astro_react.md +48 -27
- package/docs/pl/intlayer_with_astro_solid.md +48 -27
- package/docs/pl/intlayer_with_astro_svelte.md +47 -27
- package/docs/pl/intlayer_with_astro_vue.md +47 -27
- package/docs/pl/intlayer_with_react_router_v7.md +12 -1
- package/docs/pl/intlayer_with_remix_3.md +22 -1
- package/docs/pl/intlayer_with_solid_start.md +14 -7
- package/docs/pl/intlayer_with_svelte_kit.md +12 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +13 -2
- package/docs/pl/intlayer_with_tanstack.md +13 -6
- package/docs/pl/intlayer_with_vite+lit.md +75 -3
- package/docs/pl/intlayer_with_vite+preact.md +16 -3
- package/docs/pl/intlayer_with_vite+react.md +16 -3
- package/docs/pl/intlayer_with_vite+solid.md +16 -3
- package/docs/pl/intlayer_with_vite+svelte.md +16 -3
- package/docs/pl/intlayer_with_vite+vanilla.md +16 -3
- package/docs/pl/intlayer_with_vite+vue.md +16 -3
- package/docs/pl/introduction.md +0 -1
- package/docs/pl/readme.md +0 -1
- package/docs/pl/releases/v8.md +1 -5
- package/docs/pl/self_hosting.md +408 -233
- package/docs/pt/benchmark/nextjs.md +13 -13
- package/docs/pt/benchmark/solid.md +5 -5
- package/docs/pt/benchmark/svelte.md +4 -4
- package/docs/pt/benchmark/tanstack.md +14 -13
- package/docs/pt/benchmark/vue.md +5 -5
- package/docs/pt/chrome_extension.md +130 -0
- package/docs/pt/cli/index.md +6 -1
- package/docs/pt/cli/infra.md +162 -0
- package/docs/pt/cli/init.md +24 -1
- 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 +29 -21
- package/docs/pt/intlayer_with_astro_lit.md +47 -27
- package/docs/pt/intlayer_with_astro_preact.md +48 -27
- package/docs/pt/intlayer_with_astro_react.md +48 -27
- package/docs/pt/intlayer_with_astro_solid.md +48 -27
- package/docs/pt/intlayer_with_astro_svelte.md +47 -27
- package/docs/pt/intlayer_with_astro_vue.md +47 -27
- package/docs/pt/intlayer_with_react_router_v7.md +12 -1
- package/docs/pt/intlayer_with_remix_3.md +22 -1
- package/docs/pt/intlayer_with_solid_start.md +14 -7
- package/docs/pt/intlayer_with_svelte_kit.md +12 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +13 -2
- package/docs/pt/intlayer_with_tanstack.md +13 -6
- package/docs/pt/intlayer_with_vite+lit.md +75 -3
- package/docs/pt/intlayer_with_vite+preact.md +16 -3
- package/docs/pt/intlayer_with_vite+react.md +16 -3
- package/docs/pt/intlayer_with_vite+solid.md +16 -3
- package/docs/pt/intlayer_with_vite+svelte.md +16 -3
- package/docs/pt/intlayer_with_vite+vanilla.md +16 -3
- package/docs/pt/intlayer_with_vite+vue.md +16 -3
- package/docs/pt/introduction.md +0 -1
- package/docs/pt/readme.md +0 -1
- package/docs/pt/releases/v8.md +1 -5
- package/docs/pt/self_hosting.md +399 -224
- package/docs/ru/benchmark/nextjs.md +13 -13
- package/docs/ru/benchmark/solid.md +5 -5
- package/docs/ru/benchmark/svelte.md +4 -4
- package/docs/ru/benchmark/tanstack.md +14 -13
- package/docs/ru/benchmark/vue.md +5 -5
- package/docs/ru/chrome_extension.md +130 -0
- package/docs/ru/cli/index.md +6 -1
- package/docs/ru/cli/infra.md +162 -0
- package/docs/ru/cli/init.md +24 -1
- 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 +35 -25
- package/docs/ru/intlayer_with_astro_lit.md +47 -27
- package/docs/ru/intlayer_with_astro_preact.md +48 -27
- package/docs/ru/intlayer_with_astro_react.md +48 -27
- package/docs/ru/intlayer_with_astro_solid.md +48 -27
- package/docs/ru/intlayer_with_astro_svelte.md +47 -27
- package/docs/ru/intlayer_with_astro_vue.md +47 -27
- package/docs/ru/intlayer_with_react_router_v7.md +12 -1
- package/docs/ru/intlayer_with_remix_3.md +22 -1
- package/docs/ru/intlayer_with_solid_start.md +14 -7
- package/docs/ru/intlayer_with_svelte_kit.md +12 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ru/intlayer_with_tanstack.md +13 -6
- package/docs/ru/intlayer_with_vite+lit.md +75 -3
- package/docs/ru/intlayer_with_vite+preact.md +16 -3
- package/docs/ru/intlayer_with_vite+react.md +16 -3
- package/docs/ru/intlayer_with_vite+solid.md +16 -3
- package/docs/ru/intlayer_with_vite+svelte.md +16 -3
- package/docs/ru/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ru/intlayer_with_vite+vue.md +16 -3
- package/docs/ru/introduction.md +0 -1
- package/docs/ru/readme.md +0 -1
- package/docs/ru/releases/v8.md +1 -5
- package/docs/ru/self_hosting.md +403 -228
- package/docs/tr/benchmark/nextjs.md +13 -13
- package/docs/tr/benchmark/solid.md +5 -5
- package/docs/tr/benchmark/svelte.md +4 -4
- package/docs/tr/benchmark/tanstack.md +14 -13
- package/docs/tr/benchmark/vue.md +5 -5
- package/docs/tr/chrome_extension.md +130 -0
- package/docs/tr/cli/index.md +6 -1
- package/docs/tr/cli/infra.md +162 -0
- package/docs/tr/cli/init.md +24 -1
- 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 +35 -25
- package/docs/tr/intlayer_with_astro_lit.md +48 -28
- package/docs/tr/intlayer_with_astro_preact.md +49 -28
- package/docs/tr/intlayer_with_astro_react.md +49 -28
- package/docs/tr/intlayer_with_astro_solid.md +49 -28
- package/docs/tr/intlayer_with_astro_svelte.md +48 -28
- package/docs/tr/intlayer_with_astro_vue.md +48 -28
- package/docs/tr/intlayer_with_react_router_v7.md +12 -1
- package/docs/tr/intlayer_with_remix_3.md +22 -1
- package/docs/tr/intlayer_with_solid_start.md +14 -7
- package/docs/tr/intlayer_with_svelte_kit.md +12 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +13 -2
- package/docs/tr/intlayer_with_tanstack.md +13 -6
- package/docs/tr/intlayer_with_vite+lit.md +75 -3
- package/docs/tr/intlayer_with_vite+preact.md +16 -3
- package/docs/tr/intlayer_with_vite+react.md +16 -3
- package/docs/tr/intlayer_with_vite+solid.md +16 -3
- package/docs/tr/intlayer_with_vite+svelte.md +16 -3
- package/docs/tr/intlayer_with_vite+vanilla.md +16 -3
- package/docs/tr/intlayer_with_vite+vue.md +16 -3
- package/docs/tr/introduction.md +0 -1
- package/docs/tr/readme.md +0 -1
- package/docs/tr/releases/v8.md +1 -5
- package/docs/tr/self_hosting.md +410 -234
- package/docs/uk/benchmark/nextjs.md +13 -13
- package/docs/uk/benchmark/solid.md +5 -5
- package/docs/uk/benchmark/svelte.md +4 -4
- package/docs/uk/benchmark/tanstack.md +14 -13
- package/docs/uk/benchmark/vue.md +5 -5
- package/docs/uk/chrome_extension.md +130 -0
- package/docs/uk/cli/index.md +6 -1
- package/docs/uk/cli/infra.md +162 -0
- package/docs/uk/cli/init.md +24 -1
- 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 +35 -25
- package/docs/uk/intlayer_with_astro_lit.md +47 -27
- package/docs/uk/intlayer_with_astro_preact.md +48 -27
- package/docs/uk/intlayer_with_astro_react.md +48 -27
- package/docs/uk/intlayer_with_astro_solid.md +48 -27
- package/docs/uk/intlayer_with_astro_svelte.md +47 -27
- package/docs/uk/intlayer_with_astro_vue.md +47 -27
- package/docs/uk/intlayer_with_react_router_v7.md +12 -1
- package/docs/uk/intlayer_with_remix_3.md +22 -1
- package/docs/uk/intlayer_with_solid_start.md +14 -7
- package/docs/uk/intlayer_with_svelte_kit.md +12 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +13 -2
- package/docs/uk/intlayer_with_tanstack.md +13 -6
- package/docs/uk/intlayer_with_vite+lit.md +75 -3
- package/docs/uk/intlayer_with_vite+preact.md +16 -3
- package/docs/uk/intlayer_with_vite+react.md +16 -3
- package/docs/uk/intlayer_with_vite+solid.md +16 -3
- package/docs/uk/intlayer_with_vite+svelte.md +16 -3
- package/docs/uk/intlayer_with_vite+vanilla.md +16 -3
- package/docs/uk/intlayer_with_vite+vue.md +16 -3
- package/docs/uk/introduction.md +0 -1
- package/docs/uk/readme.md +0 -1
- package/docs/uk/releases/v8.md +1 -5
- package/docs/uk/self_hosting.md +413 -238
- package/docs/ur/intlayer_with_vite+lit.md +75 -3
- package/docs/ur/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/benchmark/nextjs.md +13 -13
- package/docs/vi/benchmark/solid.md +5 -5
- package/docs/vi/benchmark/svelte.md +4 -4
- package/docs/vi/benchmark/tanstack.md +14 -13
- package/docs/vi/benchmark/vue.md +5 -5
- package/docs/vi/chrome_extension.md +130 -0
- package/docs/vi/cli/index.md +6 -1
- package/docs/vi/cli/infra.md +162 -0
- package/docs/vi/cli/init.md +24 -1
- 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 +35 -25
- package/docs/vi/intlayer_with_astro_lit.md +47 -27
- package/docs/vi/intlayer_with_astro_preact.md +48 -27
- package/docs/vi/intlayer_with_astro_react.md +48 -27
- package/docs/vi/intlayer_with_astro_solid.md +48 -27
- package/docs/vi/intlayer_with_astro_svelte.md +47 -27
- package/docs/vi/intlayer_with_astro_vue.md +47 -27
- package/docs/vi/intlayer_with_react_router_v7.md +12 -1
- package/docs/vi/intlayer_with_remix_3.md +22 -1
- package/docs/vi/intlayer_with_solid_start.md +14 -7
- package/docs/vi/intlayer_with_svelte_kit.md +12 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +13 -2
- package/docs/vi/intlayer_with_tanstack.md +13 -6
- package/docs/vi/intlayer_with_vite+lit.md +75 -3
- package/docs/vi/intlayer_with_vite+preact.md +16 -3
- package/docs/vi/intlayer_with_vite+react.md +16 -3
- package/docs/vi/intlayer_with_vite+solid.md +16 -3
- package/docs/vi/intlayer_with_vite+svelte.md +16 -3
- package/docs/vi/intlayer_with_vite+vanilla.md +16 -3
- package/docs/vi/intlayer_with_vite+vue.md +16 -3
- package/docs/vi/introduction.md +0 -1
- package/docs/vi/readme.md +0 -1
- package/docs/vi/releases/v8.md +1 -5
- package/docs/vi/self_hosting.md +408 -234
- package/docs/zh/benchmark/nextjs.md +13 -13
- package/docs/zh/benchmark/solid.md +5 -5
- package/docs/zh/benchmark/svelte.md +4 -4
- package/docs/zh/benchmark/tanstack.md +14 -13
- package/docs/zh/benchmark/vue.md +5 -5
- package/docs/zh/chrome_extension.md +130 -0
- package/docs/zh/cli/index.md +6 -1
- package/docs/zh/cli/infra.md +162 -0
- package/docs/zh/cli/init.md +24 -1
- 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 +29 -21
- package/docs/zh/intlayer_with_astro_lit.md +47 -27
- package/docs/zh/intlayer_with_astro_preact.md +48 -27
- package/docs/zh/intlayer_with_astro_react.md +48 -27
- package/docs/zh/intlayer_with_astro_solid.md +48 -27
- package/docs/zh/intlayer_with_astro_svelte.md +47 -27
- package/docs/zh/intlayer_with_astro_vue.md +47 -27
- package/docs/zh/intlayer_with_react_router_v7.md +12 -1
- package/docs/zh/intlayer_with_remix_3.md +22 -1
- package/docs/zh/intlayer_with_solid_start.md +14 -7
- package/docs/zh/intlayer_with_svelte_kit.md +12 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +13 -2
- package/docs/zh/intlayer_with_tanstack.md +13 -6
- package/docs/zh/intlayer_with_vite+lit.md +75 -3
- package/docs/zh/intlayer_with_vite+preact.md +16 -3
- package/docs/zh/intlayer_with_vite+react.md +16 -3
- package/docs/zh/intlayer_with_vite+solid.md +16 -3
- package/docs/zh/intlayer_with_vite+svelte.md +16 -3
- package/docs/zh/intlayer_with_vite+vanilla.md +16 -3
- package/docs/zh/intlayer_with_vite+vue.md +16 -3
- package/docs/zh/introduction.md +0 -1
- package/docs/zh/readme.md +0 -1
- package/docs/zh/releases/v8.md +1 -5
- package/docs/zh/self_hosting.md +410 -237
- package/docs/zh-TW/introduction.md +0 -1
- 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/docs.entry.ts +40 -40
- package/docs/ar/intlayer_with_astro_vanilla.md +0 -709
- package/docs/ar/roadmap.md +0 -321
- package/docs/de/intlayer_with_astro_vanilla.md +0 -705
- package/docs/de/roadmap.md +0 -322
- package/docs/en/intlayer_with_astro_vanilla.md +0 -706
- package/docs/en/roadmap.md +0 -325
- package/docs/en-GB/intlayer_with_astro_vanilla.md +0 -709
- package/docs/en-GB/roadmap.md +0 -322
- package/docs/es/intlayer_with_astro_vanilla.md +0 -701
- package/docs/es/roadmap.md +0 -322
- package/docs/fr/intlayer_with_astro_vanilla.md +0 -701
- package/docs/fr/roadmap.md +0 -322
- package/docs/hi/intlayer_with_astro_vanilla.md +0 -720
- package/docs/hi/roadmap.md +0 -322
- package/docs/id/intlayer_with_astro_vanilla.md +0 -705
- package/docs/id/roadmap.md +0 -325
- package/docs/it/intlayer_with_astro_vanilla.md +0 -705
- package/docs/it/roadmap.md +0 -322
- package/docs/ja/intlayer_with_astro_vanilla.md +0 -708
- package/docs/ja/roadmap.md +0 -322
- package/docs/ko/intlayer_with_astro_vanilla.md +0 -720
- package/docs/ko/roadmap.md +0 -322
- package/docs/pl/intlayer_with_astro_vanilla.md +0 -705
- package/docs/pl/roadmap.md +0 -325
- package/docs/pt/intlayer_with_astro_vanilla.md +0 -705
- package/docs/pt/roadmap.md +0 -322
- package/docs/ru/intlayer_with_astro_vanilla.md +0 -716
- package/docs/ru/roadmap.md +0 -322
- package/docs/tr/intlayer_with_astro_vanilla.md +0 -705
- package/docs/tr/roadmap.md +0 -325
- package/docs/uk/intlayer_with_astro_vanilla.md +0 -705
- package/docs/uk/roadmap.md +0 -325
- package/docs/vi/intlayer_with_astro_vanilla.md +0 -705
- package/docs/vi/roadmap.md +0 -325
- package/docs/zh/intlayer_with_astro_vanilla.md +0 -704
- package/docs/zh/roadmap.md +0 -322
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-21
|
|
4
4
|
title: "Astro + Solid i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Solid 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -162,7 +165,7 @@ bun x intlayer init
|
|
|
162
165
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
163
166
|
|
|
164
167
|
- **astro-intlayer**
|
|
165
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
168
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
166
169
|
|
|
167
170
|
- **solid-js**
|
|
168
171
|
핵심 Solid 패키지입니다.
|
|
@@ -176,6 +179,31 @@ bun x intlayer init
|
|
|
176
179
|
</Step>
|
|
177
180
|
<Step number={2} title="프로젝트 설정">
|
|
178
181
|
|
|
182
|
+
### 아키텍처
|
|
183
|
+
|
|
184
|
+
이 아키텍처에서 `astro.config.ts`에 등록된 `intlayer()` 통합은 사전을 빌드하고 모든 요청의 로케일을 확인하여 `Astro.locals.intlayer`에 노출하는 미들웨어를 추가합니다. 페이지는 `src/pages/[...locale]/` 나머지(rest) 세그먼트 아래에 위치하므로 기본 로케일은 접두사 없이 제공되고 다른 모든 로케일은 전용 URL을 갖습니다. `.astro` 파일은 서버 렌더링을 위해 `astro-intlayer`의 `useIntlayer` / `useLocale` 훅을 사용하여 콘텐츠를 읽고, Solid 아일랜드(`src/components/solid/SolidIsland.tsx`)는 서버에서 감지된 로케일을 prop으로 받아 대화형 처리를 위해 `solid-intlayer`에 전달합니다. 콘텐츠 선언은 `src/`의 컴포넌트와 함께 배치됩니다.
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
.
|
|
188
|
+
├── src
|
|
189
|
+
│ ├── app.content.tsx # App content declaration
|
|
190
|
+
│ ├── components
|
|
191
|
+
│ │ └── solid
|
|
192
|
+
│ │ ├── LocaleSwitcher.tsx # Locale switcher rendered inside the island
|
|
193
|
+
│ │ └── SolidIsland.tsx # Solid island wrapping the tree in IntlayerProvider
|
|
194
|
+
│ └── pages
|
|
195
|
+
│ ├── [...locale]
|
|
196
|
+
│ │ └── index.astro # Localized page mounting the island
|
|
197
|
+
│ ├── robots.txt.ts # robots.txt endpoint
|
|
198
|
+
│ └── sitemap.xml.ts # Localized sitemap endpoint
|
|
199
|
+
├── astro.config.ts # Astro config with the intlayer() and solid() integrations
|
|
200
|
+
├── intlayer.config.ts
|
|
201
|
+
├── package.json
|
|
202
|
+
└── tsconfig.json
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### 설정
|
|
206
|
+
|
|
179
207
|
애플리케이션의 언어를 설정하기 위한 설정 파일을 생성합니다:
|
|
180
208
|
|
|
181
209
|
```typescript fileName="intlayer.config.ts"
|
|
@@ -250,19 +278,21 @@ export default appContent;
|
|
|
250
278
|
</Step>
|
|
251
279
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
252
280
|
|
|
253
|
-
`intlayer`에서 내보낸
|
|
281
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
282
|
+
|
|
283
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
284
|
+
|
|
285
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Solid 아일랜드를 포함해야 합니다.
|
|
254
286
|
|
|
255
287
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
256
288
|
---
|
|
289
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
257
290
|
import {
|
|
258
|
-
getIntlayer,
|
|
259
|
-
getLocaleFromPath,
|
|
260
291
|
getLocalizedUrl,
|
|
261
|
-
getHTMLTextDir,
|
|
262
292
|
getPrefix,
|
|
263
293
|
localeMap,
|
|
264
294
|
defaultLocale,
|
|
265
|
-
|
|
295
|
+
getHTMLTextDir,
|
|
266
296
|
} from "intlayer";
|
|
267
297
|
import { SolidIsland } from "../../components/solid/SolidIsland";
|
|
268
298
|
|
|
@@ -272,8 +302,11 @@ export const getStaticPaths = () => {
|
|
|
272
302
|
}));
|
|
273
303
|
};
|
|
274
304
|
|
|
275
|
-
|
|
276
|
-
const {
|
|
305
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
306
|
+
const { locale } = useLocale();
|
|
307
|
+
|
|
308
|
+
// 해당 로케일의 'app' 사전 내용
|
|
309
|
+
const { title } = useIntlayer("app");
|
|
277
310
|
---
|
|
278
311
|
|
|
279
312
|
<!doctype html>
|
|
@@ -329,6 +362,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
329
362
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
330
363
|
> ```
|
|
331
364
|
|
|
365
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
366
|
+
|
|
332
367
|
> **라우팅 설정에 관한 참고 사항:**
|
|
333
368
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
334
369
|
>
|
|
@@ -445,10 +480,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
445
480
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
446
481
|
];
|
|
447
482
|
|
|
448
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
449
|
-
|
|
450
483
|
export const GET: APIRoute = async ({ site }) => {
|
|
451
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
484
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
485
|
+
siteUrl: "https://example.com",
|
|
486
|
+
});
|
|
452
487
|
|
|
453
488
|
return new Response(xmlOutput, {
|
|
454
489
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -552,21 +587,7 @@ bun x intlayer extract
|
|
|
552
587
|
</Tab>
|
|
553
588
|
<Tab value='Babel compiler'>
|
|
554
589
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
558
|
-
|
|
559
|
-
```ts fileName="vite.config.ts"
|
|
560
|
-
import { defineConfig } from "vite";
|
|
561
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
562
|
-
|
|
563
|
-
export default defineConfig({
|
|
564
|
-
plugins: [
|
|
565
|
-
intlayer(),
|
|
566
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
567
|
-
],
|
|
568
|
-
});
|
|
569
|
-
```
|
|
590
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
570
591
|
|
|
571
592
|
```bash packageManager="npm"
|
|
572
593
|
npm run build # 또는 npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-21
|
|
4
4
|
title: "Astro + Svelte i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Svelte 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -162,7 +165,7 @@ bun x intlayer init
|
|
|
162
165
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
163
166
|
|
|
164
167
|
- **astro-intlayer**
|
|
165
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
168
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
166
169
|
|
|
167
170
|
- **svelte**
|
|
168
171
|
핵심 Svelte 패키지입니다.
|
|
@@ -176,6 +179,30 @@ bun x intlayer init
|
|
|
176
179
|
</Step>
|
|
177
180
|
<Step number={2} title="프로젝트 설정">
|
|
178
181
|
|
|
182
|
+
### 아키텍처
|
|
183
|
+
|
|
184
|
+
이 아키텍처에서 `astro.config.ts`에 등록된 `intlayer()` 통합은 사전을 빌드하고 모든 요청의 로케일을 확인하여 `Astro.locals.intlayer`에 노출하는 미들웨어를 추가합니다. 페이지는 `src/pages/[...locale]/` 나머지(rest) 세그먼트 아래에 위치하므로 기본 로케일은 접두사 없이 제공되고 다른 모든 로케일은 전용 URL을 갖습니다. `.astro` 파일은 서버 렌더링을 위해 `astro-intlayer`의 `useIntlayer` / `useLocale` 훅을 사용하여 콘텐츠를 읽고, Svelte 아일랜드(`src/components/svelte/SvelteIsland.svelte`)는 서버에서 감지된 로케일을 prop으로 받아 대화형 처리를 위해 `svelte-intlayer`에 전달합니다. 콘텐츠 선언은 `src/`의 컴포넌트와 함께 배치됩니다.
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
.
|
|
188
|
+
├── src
|
|
189
|
+
│ ├── app.content.ts # App content declaration
|
|
190
|
+
│ ├── components
|
|
191
|
+
│ │ └── svelte
|
|
192
|
+
│ │ └── SvelteIsland.svelte # Svelte island (content + locale switcher)
|
|
193
|
+
│ └── pages
|
|
194
|
+
│ ├── [...locale]
|
|
195
|
+
│ │ └── index.astro # Localized page mounting the island
|
|
196
|
+
│ ├── robots.txt.ts # robots.txt endpoint
|
|
197
|
+
│ └── sitemap.xml.ts # Localized sitemap endpoint
|
|
198
|
+
├── astro.config.ts # Astro config with the intlayer() and svelte() integrations
|
|
199
|
+
├── intlayer.config.ts
|
|
200
|
+
├── package.json
|
|
201
|
+
└── tsconfig.json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### 설정
|
|
205
|
+
|
|
179
206
|
애플리케이션의 언어를 설정하기 위한 설정 파일을 생성합니다:
|
|
180
207
|
|
|
181
208
|
```typescript fileName="intlayer.config.ts"
|
|
@@ -250,19 +277,21 @@ export default appContent;
|
|
|
250
277
|
</Step>
|
|
251
278
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
252
279
|
|
|
253
|
-
`intlayer`에서 내보낸
|
|
280
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
281
|
+
|
|
282
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
283
|
+
|
|
284
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Svelte 아일랜드를 포함해야 합니다.
|
|
254
285
|
|
|
255
286
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
256
287
|
---
|
|
288
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
257
289
|
import {
|
|
258
|
-
getIntlayer,
|
|
259
|
-
getLocaleFromPath,
|
|
260
290
|
getLocalizedUrl,
|
|
261
|
-
getHTMLTextDir,
|
|
262
291
|
getPrefix,
|
|
263
292
|
localeMap,
|
|
264
293
|
defaultLocale,
|
|
265
|
-
|
|
294
|
+
getHTMLTextDir,
|
|
266
295
|
} from "intlayer";
|
|
267
296
|
import SvelteIsland from "../../components/svelte/SvelteIsland.svelte";
|
|
268
297
|
|
|
@@ -272,8 +301,11 @@ export const getStaticPaths = () => {
|
|
|
272
301
|
}));
|
|
273
302
|
};
|
|
274
303
|
|
|
275
|
-
|
|
276
|
-
const {
|
|
304
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
305
|
+
const { locale } = useLocale();
|
|
306
|
+
|
|
307
|
+
// 해당 로케일의 'app' 사전 내용
|
|
308
|
+
const { title } = useIntlayer("app");
|
|
277
309
|
---
|
|
278
310
|
|
|
279
311
|
<!doctype html>
|
|
@@ -329,6 +361,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
329
361
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
330
362
|
> ```
|
|
331
363
|
|
|
364
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
365
|
+
|
|
332
366
|
> **라우팅 설정에 관한 참고 사항:**
|
|
333
367
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
334
368
|
>
|
|
@@ -449,10 +483,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
449
483
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
450
484
|
];
|
|
451
485
|
|
|
452
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
453
|
-
|
|
454
486
|
export const GET: APIRoute = async ({ site }) => {
|
|
455
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
487
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
488
|
+
siteUrl: "https://example.com",
|
|
489
|
+
});
|
|
456
490
|
|
|
457
491
|
return new Response(xmlOutput, {
|
|
458
492
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -556,21 +590,7 @@ bun x intlayer extract
|
|
|
556
590
|
</Tab>
|
|
557
591
|
<Tab value='Babel compiler'>
|
|
558
592
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
562
|
-
|
|
563
|
-
```ts fileName="vite.config.ts"
|
|
564
|
-
import { defineConfig } from "vite";
|
|
565
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
566
|
-
|
|
567
|
-
export default defineConfig({
|
|
568
|
-
plugins: [
|
|
569
|
-
intlayer(),
|
|
570
|
-
intlayerCompiler(), // 컴파일러 플러그인을 추가합니다
|
|
571
|
-
],
|
|
572
|
-
});
|
|
573
|
-
```
|
|
593
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
574
594
|
|
|
575
595
|
```bash packageManager="npm"
|
|
576
596
|
npm run build # 또는 npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-21
|
|
4
4
|
title: "Astro + Vue i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Vue 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer vue vue-intlayer @astrojs/vue
|
|
|
150
153
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
151
154
|
|
|
152
155
|
- **astro-intlayer**
|
|
153
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
156
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
154
157
|
|
|
155
158
|
- **vue**
|
|
156
159
|
핵심 Vue 패키지입니다.
|
|
@@ -164,6 +167,30 @@ bun add intlayer astro-intlayer vue vue-intlayer @astrojs/vue
|
|
|
164
167
|
</Step>
|
|
165
168
|
<Step number={2} title="프로젝트 설정">
|
|
166
169
|
|
|
170
|
+
### 아키텍처
|
|
171
|
+
|
|
172
|
+
이 아키텍처에서 `astro.config.ts`에 등록된 `intlayer()` 통합은 사전을 빌드하고 모든 요청의 로케일을 확인하여 `Astro.locals.intlayer`에 노출하는 미들웨어를 추가합니다. 페이지는 `src/pages/[...locale]/` 나머지(rest) 세그먼트 아래에 위치하므로 기본 로케일은 접두사 없이 제공되고 다른 모든 로케일은 전용 URL을 갖습니다. `.astro` 파일은 서버 렌더링을 위해 `astro-intlayer`의 `useIntlayer` / `useLocale` 훅을 사용하여 콘텐츠를 읽고, Vue 아일랜드(`src/components/vue/VueIsland.vue`)는 서버에서 감지된 로케일을 prop으로 받아 대화형 처리를 위해 `vue-intlayer`에 전달합니다. 콘텐츠 선언은 `src/`의 컴포넌트와 함께 배치됩니다.
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
.
|
|
176
|
+
├── src
|
|
177
|
+
│ ├── app.content.ts # App content declaration
|
|
178
|
+
│ ├── components
|
|
179
|
+
│ │ └── vue
|
|
180
|
+
│ │ └── VueIsland.vue # Vue island (content + locale switcher)
|
|
181
|
+
│ └── pages
|
|
182
|
+
│ ├── [...locale]
|
|
183
|
+
│ │ └── index.astro # Localized page mounting the island
|
|
184
|
+
│ ├── robots.txt.ts # robots.txt endpoint
|
|
185
|
+
│ └── sitemap.xml.ts # Localized sitemap endpoint
|
|
186
|
+
├── astro.config.ts # Astro config with the intlayer() and vue() integrations
|
|
187
|
+
├── intlayer.config.ts
|
|
188
|
+
├── package.json
|
|
189
|
+
└── tsconfig.json
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### 설정
|
|
193
|
+
|
|
167
194
|
애플리케이션의 언어를 설정하기 위한 설정 파일을 생성합니다:
|
|
168
195
|
|
|
169
196
|
```typescript fileName="intlayer.config.ts"
|
|
@@ -238,19 +265,21 @@ export default appContent;
|
|
|
238
265
|
</Step>
|
|
239
266
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
240
267
|
|
|
241
|
-
`intlayer`에서 내보낸
|
|
268
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
269
|
+
|
|
270
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
271
|
+
|
|
272
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Vue 아일랜드를 포함해야 합니다.
|
|
242
273
|
|
|
243
274
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
244
275
|
---
|
|
276
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
245
277
|
import {
|
|
246
|
-
getIntlayer,
|
|
247
|
-
getLocaleFromPath,
|
|
248
278
|
getLocalizedUrl,
|
|
249
|
-
getHTMLTextDir,
|
|
250
279
|
getPrefix,
|
|
251
280
|
localeMap,
|
|
252
281
|
defaultLocale,
|
|
253
|
-
|
|
282
|
+
getHTMLTextDir,
|
|
254
283
|
} from "intlayer";
|
|
255
284
|
import VueIsland from "../../components/vue/VueIsland.vue";
|
|
256
285
|
|
|
@@ -260,8 +289,11 @@ export const getStaticPaths = () => {
|
|
|
260
289
|
}));
|
|
261
290
|
};
|
|
262
291
|
|
|
263
|
-
|
|
264
|
-
const {
|
|
292
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
293
|
+
const { locale } = useLocale();
|
|
294
|
+
|
|
295
|
+
// 해당 로케일의 'app' 사전 내용
|
|
296
|
+
const { title } = useIntlayer("app");
|
|
265
297
|
---
|
|
266
298
|
|
|
267
299
|
<!doctype html>
|
|
@@ -309,6 +341,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
309
341
|
</html>
|
|
310
342
|
```
|
|
311
343
|
|
|
344
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
345
|
+
|
|
312
346
|
> **라우팅 설정에 관한 참고 사항:**
|
|
313
347
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
314
348
|
>
|
|
@@ -447,10 +481,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
447
481
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
448
482
|
];
|
|
449
483
|
|
|
450
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
451
|
-
|
|
452
484
|
export const GET: APIRoute = async ({ site }) => {
|
|
453
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
485
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
486
|
+
siteUrl: "https://example.com",
|
|
487
|
+
});
|
|
454
488
|
|
|
455
489
|
return new Response(xmlOutput, {
|
|
456
490
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -554,21 +588,7 @@ bun x intlayer extract
|
|
|
554
588
|
</Tab>
|
|
555
589
|
<Tab value='Babel compiler'>
|
|
556
590
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
560
|
-
|
|
561
|
-
```ts fileName="vite.config.ts"
|
|
562
|
-
import { defineConfig } from "vite";
|
|
563
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
564
|
-
|
|
565
|
-
export default defineConfig({
|
|
566
|
-
plugins: [
|
|
567
|
-
intlayer(),
|
|
568
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
569
|
-
],
|
|
570
|
-
});
|
|
571
|
-
```
|
|
591
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
572
592
|
|
|
573
593
|
```bash packageManager="npm"
|
|
574
594
|
npm run build # 또는 npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "React Router v7 i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) React Router v7 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -892,8 +892,14 @@ bun x intlayer extract
|
|
|
892
892
|
</Tab>
|
|
893
893
|
<Tab value='Babel compiler'>
|
|
894
894
|
|
|
895
|
+
<Tabs>
|
|
896
|
+
<Tab value='intlayer >= 9'>
|
|
897
|
+
|
|
895
898
|
> v9부터 `intlayerCompiler`는 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
|
|
896
899
|
|
|
900
|
+
</Tab>
|
|
901
|
+
<Tab value='intlayer < 9'>
|
|
902
|
+
|
|
897
903
|
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
898
904
|
|
|
899
905
|
```ts fileName="vite.config.ts"
|
|
@@ -908,6 +914,11 @@ export default defineConfig({
|
|
|
908
914
|
});
|
|
909
915
|
```
|
|
910
916
|
|
|
917
|
+
</Tab>
|
|
918
|
+
</Tabs>
|
|
919
|
+
|
|
920
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
921
|
+
|
|
911
922
|
```bash packageManager="npm"
|
|
912
923
|
npm run build # 또는 npm run dev
|
|
913
924
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-09-09
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-21
|
|
4
4
|
title: "Remix 3 i18n - 앱 다국어 번역 완벽 가이드"
|
|
5
5
|
description: "더 이상 i18next는 필요 없습니다. 2026년 다국어(i18n) Remix 3 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO 및 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -137,6 +137,27 @@ bun add intlayer remix-intlayer remix@next
|
|
|
137
137
|
</Step>
|
|
138
138
|
<Step number={2} title="Intlayer 구성">
|
|
139
139
|
|
|
140
|
+
### 아키텍처
|
|
141
|
+
|
|
142
|
+
이 아키텍처에서 `remix-intlayer`의 `intlayer()` 미들웨어는 `render()` 미들웨어에 앞서 `createRouter()`에 등록됩니다. 라우터가 매칭되기 전에 로케일 접두사를 제거하므로 라우트는 `:locale` 세그먼트 없이 `src/routes.ts`에 한 번만 선언되며, 요청의 나머지 부분을 `AsyncLocalStorage` 스코프 내에서 실행하여 라우트 핸들러 및 `remix/ui` 뷰에서 인자 없이 `useIntlayer` / `useLocale`이 로케일을 읽을 수 있도록 합니다. 콘텐츠 선언은 `src/`의 뷰와 함께 배치됩니다:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
.
|
|
146
|
+
├── src
|
|
147
|
+
│ ├── home.content.ts # Home page content declaration
|
|
148
|
+
│ ├── router.tsx # createRouter() with the intlayer() and render() middleware
|
|
149
|
+
│ ├── routes.ts # Type-safe routes, declared once without locale segment
|
|
150
|
+
│ ├── server.ts # fetch handler (Node.js, Bun, Deno, Cloudflare Workers)
|
|
151
|
+
│ └── views
|
|
152
|
+
│ ├── document.tsx # HTML shell setting <html lang dir> from the locale
|
|
153
|
+
│ └── home.tsx # Localized page using useIntlayer / useLocale
|
|
154
|
+
├── intlayer.config.ts
|
|
155
|
+
├── package.json
|
|
156
|
+
└── tsconfig.json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### 설정
|
|
160
|
+
|
|
140
161
|
프로젝트 루트에 `intlayer.config.ts`를 생성하여 지원 언어 및 국제화 설정을 선언합니다.
|
|
141
162
|
|
|
142
163
|
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-08-06
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Solid Start i18n - 앱 번역을 위한 완벽한 가이드"
|
|
5
5
|
description: "더 이상 i18next는 필요하지 않습니다. 2026년 다국어(i18n) SolidStart 앱 구축 가이드입니다. 서버 렌더링 로케일 라우팅, hreflang, 사이트맵 및 AI 지원 번역."
|
|
6
6
|
keywords:
|
|
@@ -748,15 +748,13 @@ SolidStart는 HTTP 메서드를 내보내는 파일을 API 라우트로 변환
|
|
|
748
748
|
import type { APIEvent } from "@solidjs/start/server";
|
|
749
749
|
import { generateSitemap } from "intlayer";
|
|
750
750
|
|
|
751
|
-
const SITE_URL = process.env.SITE_URL ?? "http://localhost:3000";
|
|
752
|
-
|
|
753
751
|
export const GET = (_event: APIEvent) => {
|
|
754
752
|
const sitemap = generateSitemap(
|
|
755
753
|
[
|
|
756
754
|
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
757
755
|
{ path: "/about", changefreq: "monthly", priority: 0.8 },
|
|
758
756
|
],
|
|
759
|
-
{ siteUrl:
|
|
757
|
+
{ siteUrl: "https://example.com" }
|
|
760
758
|
);
|
|
761
759
|
|
|
762
760
|
return new Response(sitemap, {
|
|
@@ -790,8 +788,6 @@ export const GET = (_event: APIEvent) => {
|
|
|
790
788
|
```typescript fileName="src/routes/robots.txt.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
791
789
|
import { getMultilingualUrls } from "intlayer";
|
|
792
790
|
|
|
793
|
-
const SITE_URL = process.env.SITE_URL ?? "http://localhost:3000";
|
|
794
|
-
|
|
795
791
|
const disallowedPaths = ["/admin", "/private"].flatMap((path) =>
|
|
796
792
|
Object.values(getMultilingualUrls(path))
|
|
797
793
|
);
|
|
@@ -803,7 +799,7 @@ export const GET = () =>
|
|
|
803
799
|
"Allow: /",
|
|
804
800
|
...disallowedPaths.map((path) => `Disallow: ${path}`),
|
|
805
801
|
"",
|
|
806
|
-
`Sitemap:
|
|
802
|
+
`Sitemap: https://example.com/sitemap.xml`,
|
|
807
803
|
].join("\n"),
|
|
808
804
|
{ headers: { "Content-Type": "text/plain" } }
|
|
809
805
|
);
|
|
@@ -922,8 +918,14 @@ bun x intlayer extract
|
|
|
922
918
|
</Tab>
|
|
923
919
|
<Tab value='Babel 컴파일러'>
|
|
924
920
|
|
|
921
|
+
<Tabs>
|
|
922
|
+
<Tab value='intlayer >= 9'>
|
|
923
|
+
|
|
925
924
|
> v9부터 `intlayerCompiler`가 `intlayer` 플러그인에 포함되어 있으므로 수동으로 추가할 필요가 없습니다.
|
|
926
925
|
|
|
926
|
+
</Tab>
|
|
927
|
+
<Tab value='intlayer < 9'>
|
|
928
|
+
|
|
927
929
|
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
928
930
|
|
|
929
931
|
```ts fileName="vite.config.ts"
|
|
@@ -942,6 +944,11 @@ export default defineConfig({
|
|
|
942
944
|
});
|
|
943
945
|
```
|
|
944
946
|
|
|
947
|
+
</Tab>
|
|
948
|
+
</Tabs>
|
|
949
|
+
|
|
950
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
951
|
+
|
|
945
952
|
```bash packageManager="npm"
|
|
946
953
|
npm run build # 또는 npm run dev
|
|
947
954
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "SvelteKit i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) SvelteKit 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -711,8 +711,14 @@ bun x intlayer extract
|
|
|
711
711
|
</Tab>
|
|
712
712
|
<Tab value='Babel compiler'>
|
|
713
713
|
|
|
714
|
+
<Tabs>
|
|
715
|
+
<Tab value='intlayer >= 9'>
|
|
716
|
+
|
|
714
717
|
> v9부터 `intlayerCompiler`는 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
|
|
715
718
|
|
|
719
|
+
</Tab>
|
|
720
|
+
<Tab value='intlayer < 9'>
|
|
721
|
+
|
|
716
722
|
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함시킵니다:
|
|
717
723
|
|
|
718
724
|
```ts fileName="vite.config.ts"
|
|
@@ -727,6 +733,11 @@ export default defineConfig({
|
|
|
727
733
|
});
|
|
728
734
|
```
|
|
729
735
|
|
|
736
|
+
</Tab>
|
|
737
|
+
</Tabs>
|
|
738
|
+
|
|
739
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
740
|
+
|
|
730
741
|
```bash packageManager="npm"
|
|
731
742
|
npm run build # 또는 npm run dev
|
|
732
743
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-25
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "TanStack Start + Solid i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) TanStack Start + Solid 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -987,8 +987,14 @@ bun x intlayer extract
|
|
|
987
987
|
</Tab>
|
|
988
988
|
<Tab value='Babel 컴파일러'>
|
|
989
989
|
|
|
990
|
+
<Tabs>
|
|
991
|
+
<Tab value='intlayer >= 9'>
|
|
992
|
+
|
|
990
993
|
> Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
|
|
991
994
|
|
|
995
|
+
</Tab>
|
|
996
|
+
<Tab value='intlayer < 9'>
|
|
997
|
+
|
|
992
998
|
`intlayerCompiler` 플러그인을 포함하도록 `vite.config.ts`를 업데이트하세요.
|
|
993
999
|
|
|
994
1000
|
```ts fileName="vite.config.ts"
|
|
@@ -1014,6 +1020,11 @@ export default defineConfig({
|
|
|
1014
1020
|
});
|
|
1015
1021
|
```
|
|
1016
1022
|
|
|
1023
|
+
</Tab>
|
|
1024
|
+
</Tabs>
|
|
1025
|
+
|
|
1026
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
1027
|
+
|
|
1017
1028
|
```bash packageManager="npm"
|
|
1018
1029
|
npm run build # 또는 npm run dev
|
|
1019
1030
|
```
|
|
@@ -1093,7 +1104,7 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1093
1104
|
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
1094
1105
|
{ path: "/about", changefreq: "monthly", priority: 0.8 },
|
|
1095
1106
|
],
|
|
1096
|
-
{ siteUrl:
|
|
1107
|
+
{ siteUrl: "https://example.com" }
|
|
1097
1108
|
);
|
|
1098
1109
|
|
|
1099
1110
|
return new Response(sitemap, {
|