@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-09-13
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-22
|
|
4
4
|
title: "vue-i18n vs @intlayer/vue-i18n: 동일한 API, 다른 Bundle"
|
|
5
5
|
description: Vue 3 앱이 vue-i18n 호출을 유지하면서 @intlayer/vue-i18n compat adapter를 통해 제공할 때 어떤 변화가 발생하는지 알아봅니다. 동일한 Vite + Vue 코드에서 페이지별 JavaScript, runtime 크기, 컴포넌트 크기 및 누수를 측정하고, adapter가 유지하는 것, 무시하는 것, 그리고 대체할 수 없는 것을 비교합니다.
|
|
6
6
|
keywords:
|
|
@@ -25,6 +25,8 @@ author: aymericzip
|
|
|
25
25
|
|
|
26
26
|
# vue-i18n VS @intlayer/vue-i18n | 동일한 API, 다른 Bundle
|
|
27
27
|
|
|
28
|
+

|
|
29
|
+
|
|
28
30
|
`@intlayer/vue-i18n`은 compat 어댑터입니다: `vue-i18n` API (`createI18n`, `useI18n`, `t()`, `d()`, `n()`, `$t`, `v-t`, `i18n.global.locale`...)를 노출하고 Intlayer에 의해 컴파일된 딕셔너리에서 제공합니다. 당신의 `.vue` 파일은 변경되지 않습니다. `t("footer.github")`가 바인딩되는 대상만 변경됩니다.
|
|
29
31
|
|
|
30
32
|
이 문서는 동일한 Vite + Vue 3 애플리케이션에서 `vue-i18n`으로 빌드한 경우와 어댑터로 빌드한 경우의 성능 변화를 측정합니다. 수치는 [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom)에서 나왔습니다. `vue-i18n`과 Intlayer를 라이브러리로 비교하려면 [vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer)와 [vue-i18n vs Intlayer benchmark](https://intlayer.org/blog/vue-i18n-vs-intlayer-benchmark)를 읽으세요. 이 문서는 컴포넌트를 그대로 유지했을 때 어댑터가 어떤 변화를 가져오는지에 관한 것입니다.
|
|
@@ -105,6 +107,10 @@ const { t } = useI18n(_dicHash_footer);
|
|
|
105
107
|
|
|
106
108
|
### Vite + Vue 3 결과
|
|
107
109
|
|
|
110
|
+
관심 있는 메트릭과 라이브러리를 선택하세요:
|
|
111
|
+
|
|
112
|
+
<I18nBenchmark framework="vite-vue" vertical/>
|
|
113
|
+
|
|
108
114
|
| Setup | Strategy | Lib size (gz) | Lib size (min) | Page JS avg (gz) | Locale leak | Page leak | Component avg (gz) | E2E reactivity | Page load |
|
|
109
115
|
| ------------------------ | -------- | ------------: | -------------: | ---------------: | ----------: | --------: | -----------------: | -------------: | ---------: |
|
|
110
116
|
| **base** (i18n 없음) | - | 0.0 KB | 0.0 KB | 41.3 KB | 0.0% | - | 1.1 KB | 1.8 ms | 10.8 ms |
|
|
@@ -124,11 +130,24 @@ const { t } = useI18n(_dicHash_footer);
|
|
|
124
130
|
- **반응성 및 페이지 로드.** 로캘 전환은 두 경우 모두 저렴합니다 (1.5-2.8 ms); 메시지가 메모리에 있으면 Vue의 반응성 시스템이 이를 가능하게 합니다. 페이지 로드는 13.6 ms에서 **9.3 ms**로 단축되며, 이는 파싱할 JavaScript가 88 KB 줄어든 것과 일치합니다.
|
|
125
131
|
- **네이티브 행에 대해.** `vue-intlayer`는 이 실행에서 `static` 모드에서 모든 로케일을 번들링했으며 3.9 KB 런타임과 함께 57.1 KB에 도달했습니다. 어댑터의 동기화된 딕셔너리는 더 적은 외국 로케일 문자열을 포함했으므로 페이지당 수치가 더 낮습니다. 네이티브 런타임은 세 개 중 가장 가볍게 유지되며, 해당 `.content.ts` 모델은 SFC `<i18n>` 블록이 동등한 것을 찾는 곳입니다.
|
|
126
132
|
|
|
133
|
+
<ClickToOpenIframe
|
|
134
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
|
|
135
|
+
width="100%"
|
|
136
|
+
height="600px"
|
|
137
|
+
style="border:none;"
|
|
138
|
+
/>
|
|
139
|
+
|
|
140
|
+
> 모든 라이브러리와 전략이 포함된 전체 표는 [Vue 벤치마크 보고서](https://intlayer.org/ko/doc/benchmark/vue)에서 확인하세요.
|
|
141
|
+
|
|
127
142
|
## 숫자가 움직이는 이유
|
|
128
143
|
|
|
144
|
+

|
|
145
|
+
|
|
129
146
|
`src/components/`의 아무것도 변경되지 않았으므로 이득은 `useI18n`이 바인딩된 대상에서 나옵니다.
|
|
130
147
|
|
|
131
|
-
**`vue-i18n`을 사용할 때**, 바인딩은 글로벌 인스턴스입니다. `createI18n({ messages: { en, fr, ... } })`은 모든 것을 포함하는 하나의 import이고, `useI18n()`을 호출하는 모든 컴포넌트가 모든 콘텐츠에 접근할 수 있으므로 번들러는 인스턴스 아래로 분할할 수 없습니다. 최적화는 _직접_ `en.json`을 라우트별로 분할하고, 라우터 가드에서 `setLocaleMessage()`를 호출하며, 컴포넌트가 이동할 때 라우트-파일 매핑을 올바르게 유지하는 것을 의미합니다.
|
|
148
|
+
**`vue-i18n`을 사용할 때**, 바인딩은 글로벌 인스턴스입니다. `createI18n({ messages: { en, fr, ... } })`은 모든 것을 포함하는 하나의 import이고, `useI18n()`을 호출하는 모든 컴포넌트가 모든 콘텐츠에 접근할 수 있으므로 번들러는 인스턴스 아래로 분할할 수 없습니다. 최적화는 _직접_ `en.json`을 라우트별로 분할하고, 라우터 가드에서 `setLocaleMessage()`를 호출하며, 컴포넌트가 이동할 때 라우트-파일 매핑을 올바르게 유지하는 것을 의미합니다. 낭비는 페이지와 로케일이라는 두 축에서 동시에 증가합니다:
|
|
149
|
+
|
|
150
|
+

|
|
132
151
|
|
|
133
152
|
```bash
|
|
134
153
|
.
|
|
@@ -258,26 +277,107 @@ export const i18n = createI18n({ locale: "en" });
|
|
|
258
277
|
|
|
259
278
|
## 시작하기 전에 알아야 할 제한사항
|
|
260
279
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
280
|
+
<AccordionGroup>
|
|
281
|
+
<Accordion header="SFC <i18n> 블록은 읽히지 않음">
|
|
282
|
+
|
|
283
|
+
메시지가 컴포넌트 내부에 있는 경우 로케일 파일이나 생성된 타입을 갖춘 동일한 개념의 `.content.ts`로 이동해야 합니다.
|
|
284
|
+
|
|
285
|
+
</Accordion>
|
|
286
|
+
<Accordion header="런타임 메시지 로딩 제거됨">
|
|
287
|
+
|
|
288
|
+
`setLocaleMessage()` 및 `mergeLocaleMessage()`는 경고를 표시하고 반환합니다. 런타임에 CMS에서 가져오는 번역은 [Intlayer CMS](https://intlayer.org/ko/doc/concept/cms) 또는 `intlayer pull` / `push` 명령어가 필요합니다.
|
|
289
|
+
|
|
290
|
+
</Accordion>
|
|
291
|
+
<Accordion header="messages는 폴백일 뿐, 무료가 아님">
|
|
292
|
+
|
|
293
|
+
`createI18n()`에서 JSON 임포트를 유지하면 번들에 75 KB가 그대로 남습니다. `intlayer test`가 통과되면 삭제하세요.
|
|
294
|
+
|
|
295
|
+
</Accordion>
|
|
296
|
+
<Accordion header="어댑터는 네이티브 런타임이 아님">
|
|
297
|
+
|
|
298
|
+
`vue-intlayer`의 3.9 KB에 비해 어댑터는 7.9 KB입니다. 모든 컴포넌트가 `useIntlayer`로 전환되면 제거하세요.
|
|
299
|
+
|
|
300
|
+
</Accordion>
|
|
301
|
+
</AccordionGroup>
|
|
265
302
|
|
|
266
303
|
## 어떤 것을 언제 사용할까요?
|
|
267
304
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
305
|
+
<AccordionGroup>
|
|
306
|
+
<Accordion header="vue-i18n 유지">
|
|
307
|
+
|
|
308
|
+
애플리케이션이 SFC `<i18n>` 블록이나 런타임 `setLocaleMessage()` 흐름에 의존하거나, 페이지당 90 KB가 사용자층에 문제가 되지 않는 경우.
|
|
309
|
+
|
|
310
|
+
</Accordion>
|
|
311
|
+
<Accordion header="@intlayer/vue-i18n 사용">
|
|
312
|
+
|
|
313
|
+
`vue-i18n`을 사용 중이며 `.vue` 파일을 수정하지 않고 88 KB 절감, 23배 더 작은 컴포넌트, 0% 페이지 누수, 타입 정의된 키 및 CI 검사를 원하는 경우. 기존 `vue-i18n` 코드베이스의 진입점입니다.
|
|
314
|
+
|
|
315
|
+
</Accordion>
|
|
316
|
+
<Accordion header="네이티브로 전환 (vue-intlayer)">
|
|
317
|
+
|
|
318
|
+
새 프로젝트이거나 어댑터가 역할을 다한 경우 적합합니다. 가장 가벼운 런타임(3.9 KB)과 `<i18n>` 블록을 타입이 지정된 콘텐츠로 대체하는 컴포넌트별 `.content.ts` 모델을 제공합니다. [Vue와 함께 사용하는 Intlayer](https://intlayer.org/ko/doc/environment/vite-and-vue) 또는 [Nuxt와 함께](https://intlayer.org/ko/doc/environment/nuxt-and-vue) 시작하세요.
|
|
319
|
+
|
|
320
|
+
</Accordion>
|
|
321
|
+
</AccordionGroup>
|
|
322
|
+
|
|
323
|
+
## 자주 묻는 질문
|
|
324
|
+
|
|
325
|
+
<FAQ>
|
|
326
|
+
|
|
327
|
+
<Question title=".vue 파일을 수정해야 하나요?">
|
|
328
|
+
|
|
329
|
+
아닙니다. 벤치마크 빌드는 `vite.config.ts`, `intlayer.config.ts` 및 `src/i18n.ts`의 `messages` 임포트 한 줄만 수정했습니다. 모든 `useI18n()`, `$t`, `v-t` 및 Options API 호출 부분은 그대로 유지되었습니다.
|
|
330
|
+
|
|
331
|
+
</Question>
|
|
332
|
+
|
|
333
|
+
<Question title="왜 컴포넌트 크기가 23배나 더 작나요?">
|
|
334
|
+
|
|
335
|
+
`useI18n()`이 전역 인스턴스 접근을 중단하기 때문입니다. `createI18n({ messages })`는 모든 로케일의 모든 메시지를 보유하므로 독립적으로 컴파일된 컴포넌트라도 196 KB를 끌어옵니다. 어댑터를 사용하면 고유한 사전에만 접근합니다: 8.4 KB.
|
|
336
|
+
|
|
337
|
+
</Question>
|
|
338
|
+
|
|
339
|
+
<Question title="d() 및 n() 포맷팅은 어떻게 되나요?">
|
|
340
|
+
|
|
341
|
+
유지됩니다. `createI18n()`에 전달된 `datetimeFormats` 및 `numberFormats`가 적용되며 네이티브 `Intl` API가 지원합니다. [날짜, 시간 및 숫자 형식 지정](https://intlayer.org/ko/blog/date-time-number-formatting-locales)을 참조하세요.
|
|
342
|
+
|
|
343
|
+
</Question>
|
|
344
|
+
|
|
345
|
+
<Question title="Nuxt에서도 작동하나요?">
|
|
346
|
+
|
|
347
|
+
`@intlayer/vue-i18n`은 Vite + Vue를 대상으로 합니다. `@nuxtjs/i18n`의 경우 [Nuxt i18n 호환 어댑터](https://intlayer.org/ko/doc/compatibility/nuxtjs-i18n)를 사용하고, 네이티브 설정은 [Nuxt와 함께 사용하는 Intlayer](https://intlayer.org/ko/doc/environment/nuxt-and-vue)를 확인하세요.
|
|
348
|
+
|
|
349
|
+
</Question>
|
|
350
|
+
|
|
351
|
+
<Question title="컴포넌트 단위로 점진적 마이그레이션이 가능한가요?">
|
|
352
|
+
|
|
353
|
+
네. 모든 컴포넌트는 함께 배치된 콘텐츠 파일을 통해 `useI18n()`에서 `useIntlayer("footer")`로 전환할 수 있습니다. JSON과 `.content.ts` 사전은 공존하며 병합됩니다.
|
|
354
|
+
|
|
355
|
+
</Question>
|
|
356
|
+
|
|
357
|
+
</FAQ>
|
|
271
358
|
|
|
272
359
|
## 관련 비교
|
|
273
360
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
- [next-intl vs @intlayer/next-intl](https://intlayer.org/blog/next-intl-vs-intlayer-next-intl)
|
|
277
|
-
- [i18next vs @intlayer/i18next](https://intlayer.org/blog/i18next-vs-intlayer-i18next)
|
|
278
|
-
- [Lingui vs @intlayer/lingui](https://intlayer.org/blog/lingui-vs-intlayer-lingui)
|
|
279
|
-
|
|
280
|
-
|
|
361
|
+
동일한 어댑터 시리즈:
|
|
362
|
+
|
|
363
|
+
- [next-intl vs @intlayer/next-intl](https://intlayer.org/ko/blog/next-intl-vs-intlayer-next-intl)
|
|
364
|
+
- [i18next vs @intlayer/i18next](https://intlayer.org/ko/blog/i18next-vs-intlayer-i18next)
|
|
365
|
+
- [Lingui vs @intlayer/lingui](https://intlayer.org/ko/blog/lingui-vs-intlayer-lingui)
|
|
366
|
+
|
|
367
|
+
직접 비교된 라이브러리:
|
|
368
|
+
|
|
369
|
+
- [vue-i18n vs Intlayer](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer), features and DX
|
|
370
|
+
- [vue-i18n vs Intlayer benchmark](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer-benchmark)
|
|
371
|
+
- [Is vue-i18n outdated?](https://intlayer.org/ko/blog/is-vue-i18n-outdated)
|
|
372
|
+
- [How to pick a Vue i18n library](https://intlayer.org/ko/blog/how-to-pick-vue-i18n-library)
|
|
373
|
+
|
|
374
|
+
참조 문서:
|
|
375
|
+
|
|
376
|
+
- [Compat adapter: vue-i18n](https://intlayer.org/ko/doc/compatibility/vue-i18n) and [Nuxt i18n](https://intlayer.org/ko/doc/compatibility/nuxtjs-i18n)
|
|
377
|
+
- [마이그레이션 가이드: vue-i18n에서 Intlayer로](https://intlayer.org/ko/doc/migration/vue-i18n)
|
|
378
|
+
- [Vue 벤치마크 보고서](https://intlayer.org/ko/doc/benchmark/vue)
|
|
379
|
+
- [번들 최적화](https://intlayer.org/ko/doc/concept/bundle-optimization) 및 [Intlayer 컴파일러](https://intlayer.org/ko/doc/compiler)
|
|
380
|
+
- [비주얼 에디터](https://intlayer.org/ko/doc/concept/editor), [CMS](https://intlayer.org/ko/doc/concept/cms) 및 [AI 번역](https://intlayer.org/ko/doc/concept/auto-fill)
|
|
281
381
|
|
|
282
382
|
## 결론
|
|
283
383
|
|
|
@@ -285,4 +385,4 @@ export const i18n = createI18n({ locale: "en" });
|
|
|
285
385
|
|
|
286
386
|
모든 원본 데이터, 테스트 앱 및 스크립트는 [Benchmark Bloom 저장소](https://github.com/intlayer-org/benchmark-bloom)에 있습니다. 직접 실행해보세요.
|
|
287
387
|
|
|
288
|
-
자세한 내용은 ['Intlayer를 선택해야 하는 이유?' 문서](https://intlayer.org/doc/why)를 참조하세요.
|
|
388
|
+
자세한 내용은 ['Intlayer를 선택해야 하는 이유?' 문서](https://intlayer.org/ko/doc/why)를 참조하세요.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-09-22
|
|
4
4
|
title: vue-i18n 대 Intlayer
|
|
5
5
|
description: Vue/Nuxt 앱에서 국제화(i18n)를 위해 vue-i18n과 Intlayer를 비교
|
|
6
6
|
keywords:
|
|
@@ -20,6 +20,8 @@ author: aymericzip
|
|
|
20
20
|
|
|
21
21
|
# vue-i18n 대 Intlayer | Vue 국제화(i18n)
|
|
22
22
|
|
|
23
|
+

|
|
24
|
+
|
|
23
25
|
이 가이드는 **Vue 3** (및 **Nuxt**)용으로 인기 있는 두 가지 i18n 옵션인 **vue-i18n**과 **Intlayer**를 비교합니다.
|
|
24
26
|
우리는 최신 Vue 도구(Vite, Composition API)에 중점을 두고 다음을 평가합니다:
|
|
25
27
|
|
|
@@ -31,6 +33,8 @@ author: aymericzip
|
|
|
31
33
|
6. **개발자 경험(DX), 도구 및 유지보수**
|
|
32
34
|
7. **SEO 및 대규모 프로젝트 확장성**
|
|
33
35
|
|
|
36
|
+
<TOC/>
|
|
37
|
+
|
|
34
38
|
> **요약**: 두 솔루션 모두 Vue 앱을 현지화할 수 있습니다. 만약 **컴포넌트 범위 콘텐츠**, **엄격한 TypeScript 타입**, **빌드 시 누락 키 검사**, **트리 쉐이킹된 사전**, 그리고 **기본 제공 라우터/SEO 도우미**와 더불어 **비주얼 에디터 및 AI 번역**을 원한다면, **Intlayer**가 더 완전하고 현대적인 선택입니다.
|
|
35
39
|
|
|
36
40
|
## 상위 수준 포지셔닝
|
|
@@ -38,6 +42,30 @@ author: aymericzip
|
|
|
38
42
|
- **vue-i18n** - Vue의 사실상 표준 i18n 라이브러리입니다. 유연한 메시지 포맷팅(ICU 스타일), 로컬 메시지를 위한 SFC `<i18n>` 블록, 그리고 방대한 생태계를 갖추고 있습니다. 안전성과 대규모 유지보수는 주로 사용자의 몫입니다.
|
|
39
43
|
- **Intlayer** - 엄격한 TS 타이핑, 빌드 타임 검사, 트리 쉐이킹, 라우터 및 SEO 도우미, 선택적 비주얼 에디터/CMS, AI 지원 번역 기능을 갖춘 Vue/Vite/Nuxt용 컴포넌트 중심 콘텐츠 모델입니다.
|
|
40
44
|
|
|
45
|
+
## 빌드 시 발생하는 비용
|
|
46
|
+
|
|
47
|
+
기능 비교표에 앞서, 실측된 데이터입니다. [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom)은 각 라이브러리를 사용하여 동일한 Vite + Vue 3 앱(10개 페이지, 10개 언어)을 빌드하고 브라우저가 다운로드하는 크기를 기록합니다:
|
|
48
|
+
|
|
49
|
+
<I18nBenchmark framework="vite-vue" vertical/>
|
|
50
|
+
|
|
51
|
+
| Setup | Lib size (gz) | Page JS avg (gz) | Page leak | Component avg (gz) |
|
|
52
|
+
| -------------------- | ------------: | ---------------: | --------: | -----------------: |
|
|
53
|
+
| **base** (no i18n) | 0.0 KB | 41.3 KB | - | 1.1 KB |
|
|
54
|
+
| `vue-i18n` | 24.3 KB | 134.9 KB | 90.0% | 196.0 KB |
|
|
55
|
+
| `@intlayer/vue-i18n` | 7.9 KB | 47.0 KB | 0.0% | 8.4 KB |
|
|
56
|
+
| **`vue-intlayer`** | **3.9 KB** | **57.1 KB** | **0.0%** | **7.7 KB** |
|
|
57
|
+
|
|
58
|
+
`vue-i18n` 런타임 자체만으로도 Intlayer의 **6배**에 달하며, 각 페이지는 **90%의 타 페이지 문자열**을 포함하고, 격리되어 컴파일된 컴포넌트는 `useI18n()`이 전역 메시지 트리에 바인딩하기 때문에 **196 KB**를 끌어옵니다. 반응성 및 페이지 로드 시간을 포함한 전체 실행 결과는 [vue-i18n vs Intlayer 벤치마크](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer-benchmark)에서 확인할 수 있습니다.
|
|
59
|
+
|
|
60
|
+
<ClickToOpenIframe
|
|
61
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
|
|
62
|
+
width="100%"
|
|
63
|
+
height="600px"
|
|
64
|
+
style="border:none;"
|
|
65
|
+
/>
|
|
66
|
+
|
|
67
|
+
> 전체 표는 [Vue 벤치마크 보고서](https://intlayer.org/ko/doc/benchmark/vue)에서 확인하세요.
|
|
68
|
+
|
|
41
69
|
## 나란히 기능 비교 (Vue 중심)
|
|
42
70
|
|
|
43
71
|
| 기능 | **Intlayer** | **vue-i18n** |
|
|
@@ -63,59 +91,74 @@ author: aymericzip
|
|
|
63
91
|
|
|
64
92
|
## 심층 비교
|
|
65
93
|
|
|
66
|
-
|
|
94
|
+
<AccordionGroup>
|
|
95
|
+
<Accordion header="1) 아키텍처 및 확장성">
|
|
67
96
|
|
|
68
|
-
- **vue-i18n**: 일반적인 설정은 로케일별로 **중앙 집중식 카탈로그**를 사용하며(선택적으로 파일/네임스페이스로 분할 가능), SFC `<i18n>` 블록은 로컬 메시지를 허용하지만 프로젝트가 커짐에 따라 팀들은 종종 공유 카탈로그로 되돌아갑니다.
|
|
97
|
+
- **vue-i18n**: 일반적인 설정은 로케일별로 **중앙 집중식 카탈로그**를 사용하며(선택적으로 파일/네임스페이스로 분할 가능), SFC `<i18n>` 블록은 로컬 메시지를 허용하지만 프로젝트가 커짐에 따라 팀들은 종종 공유 카탈로그로 되돌아갑니다. [컴포넌트별 vs 중앙 집중식 i18n](https://intlayer.org/ko/blog/per-component-vs-centralized-i18n)을 참조하세요.
|
|
69
98
|
- **Intlayer**: 각 컴포넌트 옆에 저장되는 **컴포넌트별 사전**을 권장합니다. 이는 팀 간 충돌을 줄이고, 콘텐츠를 쉽게 찾을 수 있게 하며, 자연스럽게 사용되지 않는 키의 누락이나 분산을 제한합니다.
|
|
70
99
|
|
|
71
100
|
**중요한 이유:** 대규모 Vue 앱이나 디자인 시스템에서는 **모듈화된 콘텐츠**가 단일 카탈로그보다 더 잘 확장됩니다.
|
|
72
101
|
|
|
73
|
-
|
|
102
|
+
</Accordion>
|
|
103
|
+
<Accordion header="2) TypeScript 및 안전성">
|
|
74
104
|
|
|
75
105
|
- **vue-i18n**: 좋은 TS 지원을 제공하지만, **엄격한 키 타입 지정**은 일반적으로 사용자 정의 스키마/제네릭 및 신중한 규칙이 필요합니다.
|
|
76
106
|
- **Intlayer**: 콘텐츠에서 **엄격한 타입을 생성**하여 **IDE 자동완성**과 오타/누락 키에 대한 **컴파일 타임 오류**를 제공합니다.
|
|
77
107
|
|
|
78
108
|
**중요한 이유:** 강력한 타입 검사는 **런타임 이전에** 문제를 잡아냅니다.
|
|
79
109
|
|
|
80
|
-
|
|
110
|
+
</Accordion>
|
|
111
|
+
<Accordion header="3) 누락된 번역 처리">
|
|
81
112
|
|
|
82
|
-
- **vue-i18n**: **런타임** 경고/대체 처리(예: 대체 로케일 또는 키 사용).
|
|
83
|
-
- **Intlayer**: 로케일과 키 전반에 걸친 경고/오류를 포함한 **빌드 타임**
|
|
113
|
+
- **vue-i18n**: **런타임** 경고/대체 처리(예: 대체 로케일 또는 키 사용). [누락된 번역 감지](https://intlayer.org/ko/blog/detecting-missing-translations)를 참조하세요.
|
|
114
|
+
- **Intlayer**: 로케일과 키 전반에 걸친 경고/오류를 포함한 **빌드 타임** 감지., 그리고 CI에서의 `npx intlayer test` 지원.
|
|
84
115
|
|
|
85
116
|
**중요한 이유:** 빌드 타임 강제 적용으로 프로덕션 UI를 깔끔하고 일관되게 유지합니다.
|
|
86
117
|
|
|
87
|
-
|
|
118
|
+
</Accordion>
|
|
119
|
+
<Accordion header="4) 라우팅 및 URL 전략 (Vue Router/Nuxt)">
|
|
88
120
|
|
|
89
|
-
- **둘 다** 지역화된 라우트와 함께 작동할 수 있습니다.
|
|
121
|
+
- **둘 다** 지역화된 라우트와 함께 작동할 수 있습니다. [hreflang 가이드](https://intlayer.org/ko/blog/hreflang-guide-multilingual-seo)를 참조하세요.
|
|
90
122
|
- **Intlayer**는 **지역화된 경로 생성**, **로케일 접두사 관리**, 그리고 SEO를 위한 **`<link rel="alternate" hreflang>`** 발행을 돕는 헬퍼를 제공합니다. Nuxt와 함께 사용 시, 프레임워크의 라우팅을 보완합니다.
|
|
91
123
|
|
|
92
124
|
**중요한 이유:** 맞춤형 연결 계층이 줄어들고, 여러 로케일에 걸쳐 **더 깔끔한 SEO**를 구현할 수 있습니다.
|
|
93
125
|
|
|
94
|
-
|
|
126
|
+
</Accordion>
|
|
127
|
+
<Accordion header="5) 성능 및 로딩 동작">
|
|
95
128
|
|
|
96
|
-
- **vue-i18n**: 비동기 로케일 메시지를 지원하며, 과도한 번들링 방지는 사용자의 책임입니다(카탈로그를 신중히 분할해야 함).
|
|
129
|
+
- **vue-i18n**: 비동기 로케일 메시지를 지원하며, 과도한 번들링 방지는 사용자의 책임입니다(카탈로그를 신중히 분할해야 함). 위의 벤치마크가 이를 수치로 보여줍니다: 페이지당 134.9 KB 대 57.1 KB.
|
|
97
130
|
- **Intlayer**: 빌드 시 **트리 쉐이킹**을 수행하고, 사전/로케일별로 **지연 로딩**합니다. 사용하지 않는 콘텐츠는 포함되지 않습니다.
|
|
98
131
|
|
|
99
132
|
**중요한 이유:** 더 작은 번들과 다중 로케일 Vue 앱의 더 빠른 시작 속도를 제공합니다.
|
|
100
133
|
|
|
101
|
-
|
|
134
|
+
</Accordion>
|
|
135
|
+
<Accordion header="6) 개발자 경험 및 툴링">
|
|
102
136
|
|
|
103
137
|
- **vue-i18n**: 성숙한 문서와 커뮤니티를 갖추고 있으며, 일반적으로 편집 워크플로우를 위해 **외부 현지화 플랫폼**에 의존합니다.
|
|
104
|
-
- **Intlayer**: **무료 비주얼 에디터**, 선택적 **CMS**(Git 친화적이거나 외부화 가능), **VSCode 확장**, **CLI/CI** 유틸리티, 그리고 사용자의 제공자 키를 활용한 **AI 지원 번역**을
|
|
138
|
+
- **Intlayer**: **무료 비주얼 에디터**, 선택적 **CMS**(Git 친화적이거나 외부화 가능), **VSCode 확장**, **CLI/CI** 유틸리티, 그리고 사용자의 제공자 키를 활용한 **AI 지원 번역**을 제공합니다., **MCP 서버**
|
|
105
139
|
|
|
106
140
|
**중요한 이유:** 운영 비용 절감과 개발-콘텐츠 주기의 단축.
|
|
107
141
|
|
|
108
|
-
|
|
142
|
+
</Accordion>
|
|
143
|
+
<Accordion header="7) SEO, SSR 및 SSG">
|
|
109
144
|
|
|
110
|
-
- **두 솔루션 모두** Vue SSR과 Nuxt와 함께 작동합니다.
|
|
145
|
+
- **두 솔루션 모두** Vue SSR과 Nuxt와 함께 작동합니다. [국제화 및 SEO](https://intlayer.org/ko/blog/SEO-and-i18n)를 참조하세요.
|
|
111
146
|
- **Intlayer**: 프레임워크에 구애받지 않는 **SEO 도우미**(사이트맵/메타데이터/`hreflang`)를 추가하여 Vue/Nuxt 빌드와 원활하게 작동합니다.
|
|
112
147
|
|
|
113
148
|
**중요한 이유:** 맞춤형 연결 없이 국제 SEO 구현 가능.
|
|
114
149
|
|
|
150
|
+
</Accordion>
|
|
151
|
+
</AccordionGroup>
|
|
152
|
+
|
|
115
153
|
## 왜 Intlayer인가? (문제점 및 접근법)
|
|
116
154
|
|
|
155
|
+

|
|
156
|
+
|
|
117
157
|
대부분의 i18n 스택(예: **vue-i18n**)은 **중앙 집중식 카탈로그**에서 시작합니다:
|
|
118
158
|
|
|
159
|
+
<Tabs defaultTab="per-locale" group="catalog">
|
|
160
|
+
<Tab label="언어당 1개 파일" value="per-locale">
|
|
161
|
+
|
|
119
162
|
```bash
|
|
120
163
|
.
|
|
121
164
|
├── locales
|
|
@@ -127,7 +170,8 @@ author: aymericzip
|
|
|
127
170
|
└── MyComponent.vue
|
|
128
171
|
```
|
|
129
172
|
|
|
130
|
-
|
|
173
|
+
</Tab>
|
|
174
|
+
<Tab label="언어당 1개 폴더" value="per-folder">
|
|
131
175
|
|
|
132
176
|
```bash
|
|
133
177
|
.
|
|
@@ -146,6 +190,34 @@ author: aymericzip
|
|
|
146
190
|
└── MyComponent.vue
|
|
147
191
|
```
|
|
148
192
|
|
|
193
|
+
</Tab>
|
|
194
|
+
</Tabs>
|
|
195
|
+
|
|
196
|
+
이 폴더는 각 언어의 기능별 네임스페이스로 계속해서 비대해집니다:
|
|
197
|
+
|
|
198
|
+
```txt
|
|
199
|
+
locales
|
|
200
|
+
├── EN
|
|
201
|
+
│ ├── blog.json
|
|
202
|
+
│ ├── about.json
|
|
203
|
+
│ ├── auth.json
|
|
204
|
+
│ ├── blog.json
|
|
205
|
+
│ ├── cart.json
|
|
206
|
+
│ ├── categories.json
|
|
207
|
+
│ ├── contact.json
|
|
208
|
+
│ ├── dashboard.json
|
|
209
|
+
│ ├── errors.json
|
|
210
|
+
│ ├── faq.json
|
|
211
|
+
│ ├── footer.json
|
|
212
|
+
│ ├── form.json
|
|
213
|
+
│ ├── home.json
|
|
214
|
+
│ ├── language.json
|
|
215
|
+
│ ├── navbar.json
|
|
216
|
+
│ ├── ... 65 files
|
|
217
|
+
│ └── validation.json
|
|
218
|
+
└── ES
|
|
219
|
+
```
|
|
220
|
+
|
|
149
221
|
이 방식은 앱이 커질수록 개발 속도를 저하시킵니다:
|
|
150
222
|
|
|
151
223
|
1. **새 컴포넌트의 경우** 원격 카탈로그를 생성/편집하고, 네임스페이스를 연결하며, 번역 작업을 수행합니다 (종종 AI 도구에서 복사/붙여넣기 수동 작업 포함).
|
|
@@ -161,7 +233,33 @@ author: aymericzip
|
|
|
161
233
|
└── MyComponent.vue
|
|
162
234
|
```
|
|
163
235
|
|
|
164
|
-
|
|
236
|
+
<Tabs defaultTab="intlayer" group="techno">
|
|
237
|
+
<Tab label="vue-i18n" value="vue-i18n">
|
|
238
|
+
|
|
239
|
+
```json fileName="./locales/en.json"
|
|
240
|
+
{
|
|
241
|
+
"componentExample": {
|
|
242
|
+
"greeting": "Hello World"
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
```vue fileName="./components/MyComponent.vue"
|
|
248
|
+
<script setup lang="ts">
|
|
249
|
+
import { useI18n } from "vue-i18n";
|
|
250
|
+
|
|
251
|
+
const { t } = useI18n();
|
|
252
|
+
</script>
|
|
253
|
+
|
|
254
|
+
<template>
|
|
255
|
+
<span>{{ t("componentExample.greeting") }}</span>
|
|
256
|
+
</template>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
모든 로케일 파일을 수동으로 편집해야 하며, 키는 일반 문자열입니다. 오타가 발생하면 프로덕션에서 `componentExample.greting`으로 그대로 렌더링됩니다.
|
|
260
|
+
|
|
261
|
+
</Tab>
|
|
262
|
+
<Tab label="Intlayer" value="intlayer">
|
|
165
263
|
|
|
166
264
|
```ts fileName="./components/MyComponent/myComponent.content.ts"
|
|
167
265
|
import { t, type Dictionary } from "intlayer";
|
|
@@ -171,8 +269,8 @@ const componentExampleContent = {
|
|
|
171
269
|
content: {
|
|
172
270
|
greeting: t({
|
|
173
271
|
en: "Hello World",
|
|
174
|
-
es: "Hola Mundo",
|
|
175
272
|
fr: "Bonjour le monde",
|
|
273
|
+
es: "Hola Mundo",
|
|
176
274
|
}),
|
|
177
275
|
},
|
|
178
276
|
} satisfies Dictionary;
|
|
@@ -180,11 +278,10 @@ const componentExampleContent = {
|
|
|
180
278
|
export default componentExampleContent;
|
|
181
279
|
```
|
|
182
280
|
|
|
183
|
-
**Vue에서 사용법** (Composition API):
|
|
184
|
-
|
|
185
281
|
```vue fileName="./components/MyComponent/MyComponent.vue"
|
|
186
282
|
<script setup lang="ts">
|
|
187
|
-
import { useIntlayer } from "vue-intlayer"; // Vue
|
|
283
|
+
import { useIntlayer } from "vue-intlayer"; // Vue integration
|
|
284
|
+
|
|
188
285
|
const { greeting } = useIntlayer("component-example");
|
|
189
286
|
</script>
|
|
190
287
|
|
|
@@ -193,6 +290,11 @@ const { greeting } = useIntlayer("component-example");
|
|
|
193
290
|
</template>
|
|
194
291
|
```
|
|
195
292
|
|
|
293
|
+
모든 로케일이 컴포넌트 바로 옆의 단일 타입 파일에 위치합니다.
|
|
294
|
+
|
|
295
|
+
</Tab>
|
|
296
|
+
</Tabs>
|
|
297
|
+
|
|
196
298
|
이 접근 방식:
|
|
197
299
|
|
|
198
300
|
- **개발 속도 향상** (한 번 선언; IDE/AI 자동완성 지원).
|
|
@@ -220,22 +322,71 @@ const { greeting } = useIntlayer("component-example");
|
|
|
220
322
|
|
|
221
323
|
## 언제 어떤 것을 선택해야 할까요?
|
|
222
324
|
|
|
223
|
-
|
|
224
|
-
-
|
|
325
|
+
<AccordionGroup>
|
|
326
|
+
<Accordion header="vue-i18n 선택">
|
|
327
|
+
|
|
328
|
+
**표준 Vue 접근 방식**을 선호하고 카탈로그와 네임스페이스를 직접 관리하는 데 익숙하며, 애플리케이션이 **중소 규모**인 경우(또는 이미 Nuxt i18n에 의존하고 있는 경우). SFC `<i18n>` 블록과 런타임 `setLocaleMessage()`는 Intlayer가 의도적으로 복제하지 않은 기능입니다.
|
|
329
|
+
|
|
330
|
+
</Accordion>
|
|
331
|
+
<Accordion header="Intlayer 선택">
|
|
332
|
+
|
|
333
|
+
**컴포넌트 단위 콘텐츠**, **엄격한 TypeScript**, **빌드 시 안전성 보장**, **Tree-shaking**, 내장된 라우팅/SEO/에디터 툴링을 중시하는 경우, 특히 **대규모 모듈형 Vue/Nuxt 코드베이스** 및 디자인 시스템에 적합합니다. [Vue와 함께 사용하는 Intlayer](https://intlayer.org/ko/doc/environment/vite-and-vue) 또는 [Nuxt와 함께](https://intlayer.org/ko/doc/environment/nuxt-and-vue) 시작하세요.
|
|
334
|
+
|
|
335
|
+
</Accordion>
|
|
336
|
+
<Accordion header="@intlayer/vue-i18n 선택">
|
|
337
|
+
|
|
338
|
+
현재 `vue-i18n`을 사용 중이며 `.vue` 파일을 수정하지 않고 번들 크기를 줄이고자 하는 경우. [호환 어댑터](https://intlayer.org/ko/doc/compatibility/vue-i18n)는 `createI18n`, `useI18n`, `t()`, `d()`, `n()`, `$t`, `v-t`를 유지하고 컴파일된 사전에서 제공합니다. [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer-vue-i18n)의 비교 결과를 확인하세요.
|
|
339
|
+
|
|
340
|
+
</Accordion>
|
|
341
|
+
</AccordionGroup>
|
|
342
|
+
|
|
343
|
+
## vue-i18n과의 상호 운용성
|
|
344
|
+
|
|
345
|
+
`intlayer`는 `vue-i18n` 네임스페이스 관리에도 도움이 될 수 있습니다.
|
|
346
|
+
|
|
347
|
+
`intlayer`를 사용하면 선호하는 i18n 라이브러리 형식으로 콘텐츠를 선언할 수 있으며, intlayer는 선택한 위치(예: `/messages/{{locale}}/{{namespace}}.json`)에 네임스페이스를 생성합니다. [vue-i18n 호환성 문서](https://intlayer.org/ko/doc/compatibility/vue-i18n) 및 [Nuxt i18n 어댑터](https://intlayer.org/ko/doc/compatibility/nuxtjs-i18n)를 참조하세요.
|
|
348
|
+
|
|
349
|
+
## 자주 묻는 질문
|
|
350
|
+
|
|
351
|
+
<FAQ>
|
|
352
|
+
|
|
353
|
+
<Question title="Intlayer는 vue-i18n의 대체재인가요, 아니면 그 위의 레이어인가요?">
|
|
354
|
+
|
|
355
|
+
도입 방식에 따라 둘 다 해당됩니다. `vue-intlayer`는 고유한 `useIntlayer()` 컴포저블을 갖춘 네이티브 런타임입니다. `@intlayer/vue-i18n`은 `vue-i18n` API를 유지하면서 연결 대상을 변경하는 호환 어댑터로, 컴포넌트를 건드리지 않고 마이그레이션한 다음 점진적으로 파일 단위로 전환할 수 있습니다.
|
|
225
356
|
|
|
226
|
-
|
|
357
|
+
</Question>
|
|
227
358
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
359
|
+
<Question title="내 SFC <i18n> 블록은 어떻게 되나요?">
|
|
360
|
+
|
|
361
|
+
어댑터는 이를 읽지 않습니다. 해당 메시지를 로케일 JSON 파일로 옮기거나, 생성된 타입을 지원하는 컴포넌트 옆의 `.content.ts` 파일로 이동하세요. 이는 이전되지 않는 유일한 `vue-i18n` 기능입니다.
|
|
362
|
+
|
|
363
|
+
</Question>
|
|
364
|
+
|
|
365
|
+
<Question title="Intlayer가 Nuxt와 함께 작동하나요?">
|
|
366
|
+
|
|
367
|
+
네. [Nuxt와 함께 사용하는 Intlayer](https://intlayer.org/ko/doc/environment/nuxt-and-vue)는 다국어 라우팅, 로케일 감지 미들웨어 및 사이트맵 생성을 지원합니다. `@nuxtjs/i18n`을 사용 중이라면 [Nuxt i18n 호환 어댑터](https://intlayer.org/ko/doc/compatibility/nuxtjs-i18n)가 마이그레이션 경로입니다.
|
|
368
|
+
|
|
369
|
+
</Question>
|
|
370
|
+
|
|
371
|
+
<Question title="locales/{locale}.json을 단일 진실 공급원(SSOT)으로 유지할 수 있나요?">
|
|
372
|
+
|
|
373
|
+
네. [JSON 동기화 플러그인](https://intlayer.org/ko/doc/compatibility/vue-i18n)은 `vue-i18n` 문법(`{name}`, `{0}`, `"car | cars"` 파이프 복수형)으로 읽고 CLI나 CMS가 업데이트할 때 번역을 다시 기록합니다.
|
|
374
|
+
|
|
375
|
+
</Question>
|
|
376
|
+
|
|
377
|
+
<Question title="Vue에서 Intlayer와 함께 ICU가 작동하나요?">
|
|
378
|
+
|
|
379
|
+
네이티브 ICU 지원은 작업 중입니다. `@intlayer/vue-i18n` 어댑터는 파이프 복수형, 명명된 보간 및 목록 보간을 포함한 `vue-i18n` 고유의 메시지 구문을 지원합니다. Intlayer의 복수화 모델에 대해서는 [열거형 콘텐츠](https://intlayer.org/ko/doc/concept/content/enumeration)를 참조하세요.
|
|
380
|
+
|
|
381
|
+
</Question>
|
|
382
|
+
|
|
383
|
+
</FAQ>
|
|
233
384
|
|
|
234
385
|
## GitHub STARs
|
|
235
386
|
|
|
236
387
|
GitHub stars는 프로젝트의 인기도, 커뮤니티 신뢰도, 장기적 관련성의 강력한 지표입니다. 기술적 품질을 직접 측정하는 것은 아니지만, 얼마나 많은 개발자들이 프로젝트를 유용하게 생각하고, 진행 상황을 따르고 있으며, 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 추정하기 위해 stars는 대안들 간의 견인력을 비교하고 생태계 성장에 대한 통찰력을 제공합니다.
|
|
237
388
|
|
|
238
|
-
[](https://star-history.com/#intlify/vue-i18n&aymericzip/intlayer)
|
|
239
390
|
|
|
240
391
|
## 결론
|
|
241
392
|
|
|
@@ -244,4 +395,15 @@ GitHub stars는 프로젝트의 인기도, 커뮤니티 신뢰도, 장기적 관
|
|
|
244
395
|
- **Intlayer**는 **모듈화된 콘텐츠**, **엄격한 TS**, **빌드 시 안전성**, **트리 쉐이킹된 번들**, 그리고 **라우터/SEO/에디터 도구**를 **기본 제공**합니다.
|
|
245
396
|
- 팀이 다중 로케일, 컴포넌트 기반 Vue/Nuxt 앱에서 **유지보수성과 속도**를 우선시한다면, Intlayer는 오늘날 **가장 완벽한** 경험을 제공합니다.
|
|
246
397
|
|
|
247
|
-
|
|
398
|
+
## 추가 자료
|
|
399
|
+
|
|
400
|
+
- [vue-i18n vs Intlayer benchmark](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer-benchmark), the measured run behind the table above
|
|
401
|
+
- [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/ko/blog/vue-i18n-vs-intlayer-vue-i18n), the adapter on the same app
|
|
402
|
+
- [Is vue-i18n outdated?](https://intlayer.org/ko/blog/is-vue-i18n-outdated)
|
|
403
|
+
- [How to pick a Vue i18n library](https://intlayer.org/ko/blog/how-to-pick-vue-i18n-library)
|
|
404
|
+
- [Using Intlayer with vue-i18n](https://intlayer.org/ko/blog/intlayer-with-vue-i18n)
|
|
405
|
+
- [Vue benchmark report](https://intlayer.org/ko/doc/benchmark/vue)
|
|
406
|
+
- [Migration guide: vue-i18n to Intlayer](https://intlayer.org/ko/doc/migration/vue-i18n)
|
|
407
|
+
- [Bundle optimization](https://intlayer.org/ko/doc/concept/bundle-optimization) and [the Intlayer compiler](https://intlayer.org/ko/doc/compiler)
|
|
408
|
+
|
|
409
|
+
Refer to ['Why Intlayer?' doc](https://intlayer.org/ko/doc/why) for more details.
|