@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 yang Sama, Bundle Berbeda"
|
|
5
5
|
description: Apa yang berubah ketika aplikasi Vue 3 menyimpan panggilan vue-i18n-nya tetapi melayaninya melalui adapter kompatibilitas @intlayer/vue-i18n. JavaScript per halaman, ukuran runtime, ukuran komponen dan kebocoran diukur pada kode Vite + Vue yang sama, ditambah apa yang adapter simpan, abaikan dan tidak dapat gantikan.
|
|
6
6
|
keywords:
|
|
@@ -25,12 +25,364 @@ author: aymericzip
|
|
|
25
25
|
|
|
26
26
|
# vue-i18n VERSUS @intlayer/vue-i18n | API yang Sama, Bundle Berbeda
|
|
27
27
|
|
|
28
|
+

|
|
29
|
+
|
|
28
30
|
`@intlayer/vue-i18n` adalah adapter kompatibilitas: ini mengekspos API `vue-i18n` (`createI18n`, `useI18n`, `t()`, `d()`, `n()`, `$t`, `v-t`, `i18n.global.locale`...) dan melayaninya dari kamus yang dikompilasi oleh Intlayer. File `.vue` Anda tidak berubah. Apa yang terikat pada `t("footer.github")` yang berubah.
|
|
29
31
|
|
|
30
|
-
Artikel ini mengukur pertukaran tersebut pada aplikasi Vite + Vue 3 yang sama, dibangun sekali dengan `vue-i18n` dan sekali dengan adapter. Angka-angka tersebut berasal dari [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Untuk perbandingan `vue-i18n` dan Intlayer sebagai library, baca [vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer) dan [benchmark vue-i18n vs Intlayer](https://intlayer.org/blog/vue-i18n-vs-intlayer-benchmark). Yang ini tentang apa yang berubah adapter ketika Anda mempertahankan komponen seperti apa adanya.
|
|
32
|
+
Artikel ini mengukur pertukaran tersebut pada aplikasi Vite + Vue 3 yang sama, dibangun sekali dengan `vue-i18n` dan sekali dengan adapter. Angka-angka tersebut berasal dari [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Untuk perbandingan `vue-i18n` dan Intlayer sebagai library, baca [vue-i18n vs Intlayer](https://intlayer.org/id/blog/vue-i18n-vs-intlayer) dan [benchmark vue-i18n vs Intlayer](https://intlayer.org/id/blog/vue-i18n-vs-intlayer-benchmark). Yang ini tentang apa yang berubah adapter ketika Anda mempertahankan komponen seperti apa adanya.
|
|
31
33
|
|
|
32
34
|
<TOC/>
|
|
33
35
|
|
|
34
36
|
> **tl;dr**: Pada aplikasi Vite + Vue 3 yang sama, mengganti `vue-i18n` dengan `@intlayer/vue-i18n` mengurangi JavaScript per-halaman dari **134.9 KB menjadi 47.0 KB** gzip (aplikasi tanpa i18n berukuran 41.3 KB), runtime dari **24.3 KB menjadi 7.9 KB**, rata-rata komponen dari **196 KB menjadi 8.4 KB**, dan kebocoran string halaman asing dari **90% menjadi 0%**, tanpa mengedit file `.vue` apa pun. `createI18n({ messages })` terus berfungsi sebagai fallback; hapus impor JSON untuk mendapatkan angka di atas. Blok SFC `<i18n>` dan `setLocaleMessage()` runtime adalah dua fitur yang tidak terbawa.
|
|
35
37
|
|
|
36
38
|
## Apa itu `@intlayer/vue-i18n`
|
|
39
|
+
|
|
40
|
+
`vue-i18n` adalah runtime. `createI18n({ messages: { en, fr, ... } })` membangun instans global yang menyimpan setiap pesan dari setiap lokal; `useI18n()` mengikat setiap komponen ke dalamnya; `t("footer.github")` menelusuri hierarki saat waktu render. Desain itulah yang memungkinkan blok SFC `<i18n>` dan `setLocaleMessage()`, dan itulah sebabnya grafik dependensi setiap komponen mencakup seluruh hierarki.
|
|
41
|
+
|
|
42
|
+
`@intlayer/vue-i18n` mempertahankan API dan mengganti hierarki tersebut:
|
|
43
|
+
|
|
44
|
+
1. **Import aliasing.** `vueI18nVitePlugin()` dari `@intlayer/vue-i18n/plugin` membungkus `vite-intlayer` dan menambahkan `resolve.alias` sehingga `vue-i18n` diselesaikan ke `@intlayer/vue-i18n`. Tidak ada impor yang diganti namanya.
|
|
45
|
+
2. **JSON sebagai sumber kebenaran.** Plugin `syncJSON` membaca `locales/{locale}.json` Anda yang sudah ada dengan `format: "vue-i18n"` (sehingga interpolasi daftar `{name}`, `{0}` dan bentuk jamak `"car | cars"` diurai dengan benar) dan menulis kembali terjemahan saat CLI atau CMS memperbaruinya.
|
|
46
|
+
3. **Pengikatan call-site.** Tahap optimalisasi Intlayer menulis ulang lokasi pemanggilan `useI18n()` sehingga komponen menerima kamus yang disebutkan oleh kuncinya, dalam lokal aktif, sebagai impor yang dapat dilacak dan dipecah oleh bundler.
|
|
47
|
+
|
|
48
|
+
```vue fileName="src/components/Footer.vue"
|
|
49
|
+
<!-- Kode Anda, tidak berubah -->
|
|
50
|
+
<script setup lang="ts">
|
|
51
|
+
import { useI18n } from "vue-i18n";
|
|
52
|
+
|
|
53
|
+
const { t } = useI18n();
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<template>
|
|
57
|
+
<a href="https://github.com/intlayer-org/benchmark-bloom">{{
|
|
58
|
+
t("footer.github")
|
|
59
|
+
}}</a>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```ts fileName="Apa yang dihasilkan kompiler (disederhanakan)"
|
|
64
|
+
import _dicHash_footer from "../.intlayer/dictionaries/footer.mjs";
|
|
65
|
+
import { useDictionary as useI18n } from "@intlayer/vue-i18n";
|
|
66
|
+
|
|
67
|
+
const { t } = useI18n(_dicHash_footer);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Komponen tidak lagi mengakses hierarki pesan global. Komponen mengakses `footer`. Itulah sebabnya kolom ukuran komponen di bawah ini turun dari 196 KB menjadi 8 KB.
|
|
71
|
+
|
|
72
|
+
## Apa yang adapter simpan, abaikan, dan tidak gantikan
|
|
73
|
+
|
|
74
|
+
| API `vue-i18n` | Dengan `@intlayer/vue-i18n` |
|
|
75
|
+
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
76
|
+
| `useI18n()` → `{ t, d, n, te, tm, rt, locale, availableLocales }` | ✅ Dipertahankan. Kunci `t` memiliki tipe berdasarkan kamus Anda |
|
|
77
|
+
| `t("key", { name })`, `t("key", [a, b])`, `t("key", count)` | ✅ Dipertahankan. `{name}`, `{0}` dan bentuk jamak dengan tanda pipa diselesaikan seperti sebelumnya |
|
|
78
|
+
| `d(date, "long")`, `n(value, "currency")` | ✅ Dipertahankan. `datetimeFormats` / `numberFormats` dari `createI18n()` dihormati, didukung oleh `Intl` bawaan |
|
|
79
|
+
| `i18n.global.locale.value = "fr"` | ✅ Dipertahankan. `WritableComputedRef` yang didukung oleh klien Intlayer; reaktivitas berfungsi seperti sebelumnya |
|
|
80
|
+
| `$t`, `$tc`, `$te`, `$tm`, `$rt`, `$d`, `$n`, `$i18n` (Options API) | ✅ Dipertahankan. Didaftarkan di `app.config.globalProperties` oleh `app.use(i18n)` |
|
|
81
|
+
| Direktif `v-t` | ✅ Dipertahankan |
|
|
82
|
+
| `legacy: true` | ✅ Diterima |
|
|
83
|
+
| `createI18n({ messages })` | ⚠️ `messages` digunakan sebagai **fallback runtime** dengan peringatan dev. Hapus impor JSON untuk penghematan bundle |
|
|
84
|
+
| `setLocaleMessage()`, `mergeLocaleMessage()` | ❌ Peringatan dan tidak melakukan apa pun. Pemuatan pesan runtime digantikan oleh kamus saat build |
|
|
85
|
+
| Blok kustom SFC `<i18n>` | ❌ Tidak dibaca. Pindahkan pesan-pesan tersebut ke dalam JSON lokal (atau `.content.ts` di sebelah komponen) |
|
|
86
|
+
| `@nuxtjs/i18n` | ⚠️ Adapter terpisah, lihat [dokumentasi kompatibilitas Nuxt](https://intlayer.org/id/doc/compatibility/nuxtjs-i18n) |
|
|
87
|
+
|
|
88
|
+
## Benchmark
|
|
89
|
+
|
|
90
|
+
### Apa yang diukur
|
|
91
|
+
|
|
92
|
+
Rangkaian [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom) membangun **aplikasi Vite + Vue 3 yang sama** dengan setiap konfigurasi: **10 halaman** (home, about, blog, careers, contact, FAQ, pricing, products, settings, team), **10 lokal** (`en`, `fr`, `es`, `de`, `it`, `pt`, `zh`, `ja`, `ko`, `ru`), komponen identik dan konten identik. Halaman diukur dalam `en` dan `fr`.
|
|
93
|
+
|
|
94
|
+
Keduanya dibangun dalam konfigurasi **statis**, yang dikirimkan sebagian besar proyek Vue: untuk `vue-i18n`, JSON setiap lokal diimpor dan diteruskan ke `createI18n({ messages })`; untuk adapter, komponen yang sama dengan `vite.config.ts` dan `intlayer.config.ts` diubah dan impor `messages` dihapus. `vue-intlayer` native disertakan sebagai referensi.
|
|
95
|
+
|
|
96
|
+
Untuk setiap build, pengujian mencatat:
|
|
97
|
+
|
|
98
|
+
- **Lib size**: ukuran gzip (dan minified) dari komponen kosong yang hanya mengimpor library i18n.
|
|
99
|
+
- **Page JS**: JavaScript gzip yang diunduh per halaman, dirata-ratakan di semua halaman dan lokal.
|
|
100
|
+
- **Locale leak %**: bagian dari string terjemahan dalam JS yang diunduh milik lokal yang pengguna **tidak** lihat.
|
|
101
|
+
- **Page leak %**: bagian dari string terjemahan dalam JS yang diunduh milik halaman tempat pengguna **tidak** berada.
|
|
102
|
+
- **Component avg**: rata-rata ukuran gzip setiap komponen yang dikompilasi secara terisolasi.
|
|
103
|
+
- **E2E reactivity**: waktu dari pemilihan lokal baru hingga lokal aktif dan `html[lang]` diperbarui di DOM (Playwright, 5 iterasi).
|
|
104
|
+
- **Page load**: `PerformanceNavigationTiming.duration`.
|
|
105
|
+
|
|
106
|
+
> Angka-angka di bawah ini berasal dari pengujian tanggal **12-09-2026** dengan `vue-i18n` 11.4.0 dan `@intlayer/vue-i18n` 9.5.1. Aplikasi pengujian sengaja dibuat kecil (beberapa lusin string per lokal), sehingga persentase kebocoran menggambarkan **pola**: mereka bertambah seiring bertambahnya konten Anda sementara biaya runtime tetap tetap.
|
|
107
|
+
|
|
108
|
+
### Hasil pada Vite + Vue 3
|
|
109
|
+
|
|
110
|
+
Pilih metrik dan pustaka yang Anda minati:
|
|
111
|
+
|
|
112
|
+
<I18nBenchmark framework="vite-vue" vertical/>
|
|
113
|
+
|
|
114
|
+
| Penyiapan | Strategi | Ukuran Lib (gz) | Ukuran Lib (min) | Rata-rata JS Halaman (gz) | Kebocoran lokal | Kebocoran halaman | Rata-rata Komponen (gz) | Reaktivitas E2E | Waktu Muat Halaman |
|
|
115
|
+
| ------------------------ | -------- | --------------: | ---------------: | ------------------------: | --------------: | ----------------: | ----------------------: | --------------: | -----------------: |
|
|
116
|
+
| **base** (tanpa i18n) | - | 0.0 KB | 0.0 KB | 41.3 KB | 0.0% | - | 1.1 KB | 1.8 ms | 10.8 ms |
|
|
117
|
+
| `vue-i18n` | static | 24.3 KB | 83.2 KB | 134.9 KB | 50.0% | 90.0% | 196.0 KB | 2.8 ms | 13.6 ms |
|
|
118
|
+
| **`@intlayer/vue-i18n`** | static | **7.9 KB** | **23.2 KB** | **47.0 KB** | **15.0%** | **0.0%** | **8.4 KB** | **1.5 ms** | **9.3 ms** |
|
|
119
|
+
| `vue-intlayer` (native) | static | 3.9 KB | 11.1 KB | 57.1 KB | 56.8% | 0.0% | 7.7 KB | 4.5 ms | 13.8 ms |
|
|
120
|
+
| `vue-intlayer` (native) | dynamic | 3.9 KB | 11.1 KB | 59.8 KB | 50.0% | 0.0% | 6.5 KB | 4.0 ms | 15.8 ms |
|
|
121
|
+
|
|
122
|
+
> Kolom kebocoran halaman aplikasi dasar dibiarkan kosong: tanpa library i18n, sidik jari mendeteksi string yang di-hardcode dalam chunk bersama dan angkanya tidak bermakna.
|
|
123
|
+
|
|
124
|
+
**Cara membacanya**
|
|
125
|
+
|
|
126
|
+
- **88 KB lebih sedikit per halaman, komponen yang sama.** `vue-i18n` membawa aplikasi 41.3 KB ke **134.9 KB**. Build adapter dari komponen yang sama berada di **47.0 KB**, 5.7 KB di atas aplikasi dasar. Sebagian besar perbedaannya adalah 74.9 KB dari `src/locales` yang ditarik oleh `createI18n({ messages })` ke setiap halaman dan tidak pernah dibundel adapter sebagai satu blok.
|
|
127
|
+
- **Ukuran runtime menyusut 3x lipat.** Komponen kosong yang hanya mengimpor `vue-i18n` berukuran **24.3 KB gzip / 83.2 KB minified**: `@intlify/core-base`, kompiler pesan dan runtime. Adapter berukuran **7.9 KB / 23.2 KB**, sebagian besar adalah inti Intlayer ditambah permukaan API `vue-i18n`.
|
|
128
|
+
- **Komponen: 23x lebih kecil.** Komponen `useI18n()` yang dikompilasi secara terisolasi rata-rata berukuran **196 KB**, karena `t` terikat pada instans yang menyimpan setiap pesan dari setiap lokal. Dengan adapter, komponen yang sama rata-rata berukuran **8.4 KB**: komponen ini hanya mencapai kamusnya sendiri.
|
|
129
|
+
- **Kebocoran.** `vue-i18n` mengirimkan setiap lokal dan string setiap halaman di setiap halaman: kebocoran lokal 50% (pada dua lokal yang diuji; dengan sepuluh lokal yang dibundel, pemborosan sebenarnya lebih tinggi), kebocoran halaman 90%. Adapter menurunkan kebocoran halaman menjadi **0%** karena setiap komponen hanya mengimpor kamusnya. Kebocoran lokal berada di 15% dalam pengujian `static` ini; `importMode: 'dynamic'` adalah pengaturan yang menghilangkannya, dan konfigurasi tersebut bukan bagian dari pengujian Vue ini.
|
|
130
|
+
- **Reaktivitas dan waktu muat halaman.** Perpindahan lokal murah untuk keduanya (1.5-2.8 ms); sistem reaktivitas Vue membuatnya demikian setelah pesan berada dalam memori. Pemuatan halaman beralih dari 13.6 ms menjadi **9.3 ms**, sejalan dengan berkurangnya 88 KB JavaScript yang harus di-parse.
|
|
131
|
+
- **Tentang baris native.** `vue-intlayer` dalam pengujian ini membundel setiap lokal dalam mode `static` dan mencapai 57.1 KB dengan runtime 3.9 KB; kamus adapter yang disinkronkan membawa lebih sedikit string lokal asing, itulah sebabnya angka per halaman lebih rendah. Runtime bawaan tetap menjadi yang teringan dari ketiganya, dan model `.content.ts`-nya adalah tempat blok SFC `<i18n>` menemukan padanannya.
|
|
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
|
+
> Tabel lengkap, setiap pustaka dan strategi, dalam [laporan benchmark Vue](https://intlayer.org/id/doc/benchmark/vue).
|
|
141
|
+
|
|
142
|
+
## Mengapa angka berubah
|
|
143
|
+
|
|
144
|
+

|
|
145
|
+
|
|
146
|
+
Tidak ada apa pun di `src/components/` yang berubah, jadi keuntungan berasal dari apa yang terikat pada `useI18n`.
|
|
147
|
+
|
|
148
|
+
**Dengan `vue-i18n`**, pengikatannya adalah instans global. `createI18n({ messages: { en, fr, ... } })` adalah satu impor yang menampung semuanya; setiap komponen yang memanggil `useI18n()` dapat mengakses semuanya, sehingga bundler tidak dapat memecahnya di bawah tingkat instans. Mengoptimalkan berarti _Anda_ memecah `en.json` berdasarkan rute, memanggil `setLocaleMessage()` dalam guard router, dan menjaga peta rute-ke-berkas tetap benar saat komponen dipindahkan. Pemborosan tumbuh pada dua sumbu sekaligus, halaman dan lokal:
|
|
149
|
+
|
|
150
|
+

|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
.
|
|
154
|
+
├── locales
|
|
155
|
+
│ ├── en.json # string setiap halaman
|
|
156
|
+
│ └── fr.json
|
|
157
|
+
└── src
|
|
158
|
+
├── i18n.ts # createI18n({ messages: { en, fr, ... } })
|
|
159
|
+
├── main.ts # app.use(i18n)
|
|
160
|
+
└── components
|
|
161
|
+
└── Footer.vue # useI18n(); t("footer.github")
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Dengan `@intlayer/vue-i18n`**, pengikatannya adalah kamus. `syncJSON` mengubah setiap kunci tingkat atas `en.json` menjadi kamus; tahap pengoptimalan memberikan komponen kamus yang disebutkan kuncinya, sebagai impor yang dilacak dan dipecah bundler per halaman.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
.
|
|
168
|
+
├── intlayer.config.ts # syncJSON({ format: "vue-i18n", source: ... })
|
|
169
|
+
├── locales
|
|
170
|
+
│ ├── en.json # tidak berubah, tetap menjadi sumber kebenaran
|
|
171
|
+
│ └── fr.json
|
|
172
|
+
├── .intlayer/ # dihasilkan: satu kamus per kunci tingkat atas, per lokal
|
|
173
|
+
└── src
|
|
174
|
+
├── i18n.ts # createI18n({}) ← impor messages dihapus
|
|
175
|
+
├── main.ts # app.use(i18n) ← tidak berubah
|
|
176
|
+
└── components
|
|
177
|
+
└── Footer.vue # useI18n(); t("footer.github") ← tidak berubah
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Impor `messages` di `i18n.ts` adalah satu baris yang perlu dihapus. Itulah penghematan 88 KB.
|
|
181
|
+
|
|
182
|
+
## Migrasi dalam tiga langkah
|
|
183
|
+
|
|
184
|
+
<Steps>
|
|
185
|
+
<Step number={1} title="Pasang">
|
|
186
|
+
|
|
187
|
+
```bash packageManager="npm"
|
|
188
|
+
npx intlayer init --interactive
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
```bash packageManager="pnpm"
|
|
192
|
+
pnpm dlx intlayer init --interactive
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```bash packageManager="yarn"
|
|
196
|
+
yarn dlx intlayer init --interactive
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
```bash packageManager="bun"
|
|
200
|
+
bunx intlayer init --interactive
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Perintah ini mendeteksi `vue-i18n`, memasang `intlayer`, `vue-intlayer`, `@intlayer/vue-i18n`, dan `@intlayer/sync-json-plugin`, serta mengisi `intlayer.config.ts`. Tetap pasang `vue-i18n`: ini adalah dependensi sejawat dan menyediakan tipenya.
|
|
204
|
+
|
|
205
|
+
</Step>
|
|
206
|
+
<Step number={2} title="Arahkan Intlayer ke berkas lokal Anda">
|
|
207
|
+
|
|
208
|
+
```ts fileName="intlayer.config.ts"
|
|
209
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
210
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
211
|
+
|
|
212
|
+
const config: IntlayerConfig = {
|
|
213
|
+
internationalization: {
|
|
214
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
215
|
+
defaultLocale: Locales.ENGLISH,
|
|
216
|
+
},
|
|
217
|
+
dictionary: {
|
|
218
|
+
// "static" membundel setiap lokal; "dynamic" memuat yang aktif sesuai permintaan
|
|
219
|
+
importMode: "dynamic",
|
|
220
|
+
format: "vue-i18n",
|
|
221
|
+
},
|
|
222
|
+
plugins: [
|
|
223
|
+
syncJSON({
|
|
224
|
+
// dialek vue-i18n: {name}, {0}, "car | cars"
|
|
225
|
+
format: "vue-i18n",
|
|
226
|
+
source: ({ locale }) => `./locales/${locale}.json`,
|
|
227
|
+
location: "locales",
|
|
228
|
+
}),
|
|
229
|
+
],
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export default config;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
`locales/{locale}.json` tetap berada di tempatnya semula. Setiap kunci tingkat atas (`footer`, `hero`...) menjadi kamus.
|
|
236
|
+
|
|
237
|
+
</Step>
|
|
238
|
+
<Step number={3} title="Tambahkan plugin dan hapus impor messages">
|
|
239
|
+
|
|
240
|
+
```ts fileName="vite.config.ts"
|
|
241
|
+
import { defineConfig } from "vite";
|
|
242
|
+
import vue from "@vitejs/plugin-vue";
|
|
243
|
+
import { vueI18nVitePlugin } from "@intlayer/vue-i18n/plugin";
|
|
244
|
+
|
|
245
|
+
export default defineConfig({
|
|
246
|
+
plugins: [vue(), vueI18nVitePlugin()],
|
|
247
|
+
});
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
```ts fileName="src/i18n.ts"
|
|
251
|
+
import { createI18n } from "vue-i18n";
|
|
252
|
+
|
|
253
|
+
// Sebelum: createI18n({ locale: "en", messages: { en, fr, es } })
|
|
254
|
+
export const i18n = createI18n({ locale: "en" });
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
`vueI18nVitePlugin()` membungkus `vite-intlayer` (pemantauan konten, kompilasi kamus, fase optimasi) dan membuat alias `vue-i18n` ke adapter. Menghapus impor `messages` adalah apa yang memangkas 88 KB; membiarkannya tetap membuat aplikasi berjalan namun mengirimkan keduanya.
|
|
258
|
+
|
|
259
|
+
</Step>
|
|
260
|
+
</Steps>
|
|
261
|
+
|
|
262
|
+
### Apa yang dapat Anda hapus setelahnya
|
|
263
|
+
|
|
264
|
+
| Berkas / pola | Alasan |
|
|
265
|
+
| --------------------------------------------------- | ------------------------------------------------------------------------------------ |
|
|
266
|
+
| `import en from "./locales/en.json"` dan sejenisnya | Digunakan hanya sebagai fallback oleh adapter. Di sinilah 88 KB berada |
|
|
267
|
+
| `setLocaleMessage()` di guard router | Tidak ada operasi. Pemuatan per-rute sekarang menjadi tugas compiler |
|
|
268
|
+
| `@intlify/unplugin-vue-i18n` | Tidak diperlukan: ini mengompilasi awal pesan dan blok SFC yang tidak dibaca adapter |
|
|
269
|
+
| Blok SFC `<i18n>` | Tidak dibaca; pindahkan ke JSON lokal atau ke `.content.ts` per komponen |
|
|
270
|
+
|
|
271
|
+
### Apa yang Anda dapatkan di luar byte
|
|
272
|
+
|
|
273
|
+
- **Kunci bertipe.** `t("footer.github")` memiliki tipe terhadap kamus `footer` yang dikompilasi; jalur yang salah adalah kesalahan TypeScript alih-alih kunci yang dirender sebagai teks.
|
|
274
|
+
- **`npx intlayer test`** menggagalkan CI jika ada kunci yang hilang di lokal mana pun. **`npx intlayer fill`** menerjemahkan yang hilang dengan kunci penyedia Anda sendiri (OpenAI, Anthropic, Mistral, Gemini...) dan menulisnya kembali ke `locales/{locale}.json`.
|
|
275
|
+
- **Editor Visual dan CMS** beroperasi pada JSON yang sama, sehingga non-pengembang dapat mengedit melalui UI dan berkas diperbarui.
|
|
276
|
+
- **Peralihan bertahap ke `.content.ts`**. Setiap komponen dapat beralih dari `useI18n()` ke `useIntlayer("footer")` dengan berkas konten yang ditempatkan bersama. Kamus JSON dan `.content.ts` dapat hidup berdampingan dan digabungkan.
|
|
277
|
+
|
|
278
|
+
## Batasan yang perlu diketahui sebelum memulai
|
|
279
|
+
|
|
280
|
+
<AccordionGroup>
|
|
281
|
+
<Accordion header="Blok SFC <i18n> tidak dibaca">
|
|
282
|
+
|
|
283
|
+
Jika pesan Anda berada di dalam komponen, pesan tersebut harus dipindahkan ke berkas lokal, atau ke `.content.ts`, yang merupakan konsep serupa dengan tipe yang dihasilkan.
|
|
284
|
+
|
|
285
|
+
</Accordion>
|
|
286
|
+
<Accordion header="Pemuatan pesan saat runtime telah dihapus">
|
|
287
|
+
|
|
288
|
+
`setLocaleMessage()` dan `mergeLocaleMessage()` memberikan peringatan dan kembali. Terjemahan yang diambil dari CMS saat runtime memerlukan [CMS Intlayer](https://intlayer.org/id/doc/concept/cms), atau perintah `intlayer pull` / `push`.
|
|
289
|
+
|
|
290
|
+
</Accordion>
|
|
291
|
+
<Accordion header="messages adalah fallback, bukan gratis">
|
|
292
|
+
|
|
293
|
+
Menyimpan impor JSON di `createI18n()` mempertahankan 75 KB di dalam bundel. Hapus setelah `intlayer test` berhasil.
|
|
294
|
+
|
|
295
|
+
</Accordion>
|
|
296
|
+
<Accordion header="Adaptor bukan runtime bawaan">
|
|
297
|
+
|
|
298
|
+
7.9 KB dibandingkan 3.9 KB untuk `vue-intlayer`. Setelah setiap komponen beralih ke `useIntlayer`, hapus adaptor tersebut.
|
|
299
|
+
|
|
300
|
+
</Accordion>
|
|
301
|
+
</AccordionGroup>
|
|
302
|
+
|
|
303
|
+
## Kapan menggunakan yang mana?
|
|
304
|
+
|
|
305
|
+
<AccordionGroup>
|
|
306
|
+
<Accordion header="Tetap di vue-i18n">
|
|
307
|
+
|
|
308
|
+
Aplikasi Anda bergantung pada blok SFC `<i18n>`, alur `setLocaleMessage()` runtime, atau 90 KB per halaman tidak menjadi masalah bagi audiens Anda.
|
|
309
|
+
|
|
310
|
+
</Accordion>
|
|
311
|
+
<Accordion header="Gunakan @intlayer/vue-i18n">
|
|
312
|
+
|
|
313
|
+
Anda menggunakan `vue-i18n` dan menginginkan penghematan 88 KB, komponen 23x lebih kecil, 0% kebocoran halaman, kunci bertipe, dan pemeriksaan CI tanpa mengedit berkas `.vue`. Ini adalah titik masuk untuk basis kode `vue-i18n` yang sudah ada.
|
|
314
|
+
|
|
315
|
+
</Accordion>
|
|
316
|
+
<Accordion header="Beralih ke native (vue-intlayer)">
|
|
317
|
+
|
|
318
|
+
Untuk proyek baru, atau setelah adaptor menyelesaikan tugasnya. Menawarkan runtime teringan (3.9 KB) dan model `.content.ts` per komponen yang menggantikan blok `<i18n>` dengan konten bertipe. Mulai dengan [Intlayer dengan Vue](https://intlayer.org/id/doc/environment/vite-and-vue) atau [dengan Nuxt](https://intlayer.org/id/doc/environment/nuxt-and-vue).
|
|
319
|
+
|
|
320
|
+
</Accordion>
|
|
321
|
+
</AccordionGroup>
|
|
322
|
+
|
|
323
|
+
## FAQ
|
|
324
|
+
|
|
325
|
+
<FAQ>
|
|
326
|
+
|
|
327
|
+
<Question title="Apakah saya harus mengedit berkas .vue saya?">
|
|
328
|
+
|
|
329
|
+
Tidak. Build benchmark hanya mengubah `vite.config.ts`, `intlayer.config.ts`, dan satu baris di `src/i18n.ts`, impor `messages`. Setiap panggilan `useI18n()`, `$t`, `v-t`, dan Options API tetap seperti semula.
|
|
330
|
+
|
|
331
|
+
</Question>
|
|
332
|
+
|
|
333
|
+
<Question title="Mengapa ukuran komponen 23x lebih kecil?">
|
|
334
|
+
|
|
335
|
+
Karena `useI18n()` berhenti mengakses instans global. `createI18n({ messages })` menyimpan setiap pesan dari setiap lokal, sehingga komponen yang dikompilasi secara terisolasi menarik 196 KB. Dengan adaptor, komponen hanya mengakses kamusnya sendiri: 8.4 KB.
|
|
336
|
+
|
|
337
|
+
</Question>
|
|
338
|
+
|
|
339
|
+
<Question title="Bagaimana dengan pemformatan d() dan n()?">
|
|
340
|
+
|
|
341
|
+
Dipertahankan. Konfigurasi `datetimeFormats` dan `numberFormats` yang diteruskan ke `createI18n()` dihormati, didukung oleh API `Intl` bawaan. Lihat [pemformatan tanggal, waktu, dan angka](https://intlayer.org/id/blog/date-time-number-formatting-locales).
|
|
342
|
+
|
|
343
|
+
</Question>
|
|
344
|
+
|
|
345
|
+
<Question title="Apakah ini berfungsi dengan Nuxt?">
|
|
346
|
+
|
|
347
|
+
`@intlayer/vue-i18n` menargetkan Vite + Vue. Untuk `@nuxtjs/i18n`, gunakan [adaptor kompatibilitas Nuxt i18n](https://intlayer.org/id/doc/compatibility/nuxtjs-i18n), dan lihat [Intlayer dengan Nuxt](https://intlayer.org/id/doc/environment/nuxt-and-vue) untuk konfigurasi bawaan.
|
|
348
|
+
|
|
349
|
+
</Question>
|
|
350
|
+
|
|
351
|
+
<Question title="Bisakah saya bermigrasi komponen demi komponen?">
|
|
352
|
+
|
|
353
|
+
Ya. Setiap komponen dapat beralih dari `useI18n()` ke `useIntlayer("footer")` dengan berkas konten yang ditempatkan bersama. Kamus JSON dan `.content.ts` dapat hidup berdampingan dan digabungkan.
|
|
354
|
+
|
|
355
|
+
</Question>
|
|
356
|
+
|
|
357
|
+
</FAQ>
|
|
358
|
+
|
|
359
|
+
## Perbandingan terkait
|
|
360
|
+
|
|
361
|
+
Seri adaptor yang sama:
|
|
362
|
+
|
|
363
|
+
- [next-intl vs @intlayer/next-intl](https://intlayer.org/id/blog/next-intl-vs-intlayer-next-intl)
|
|
364
|
+
- [i18next vs @intlayer/i18next](https://intlayer.org/id/blog/i18next-vs-intlayer-i18next)
|
|
365
|
+
- [Lingui vs @intlayer/lingui](https://intlayer.org/id/blog/lingui-vs-intlayer-lingui)
|
|
366
|
+
|
|
367
|
+
Pustaka yang dibandingkan secara langsung:
|
|
368
|
+
|
|
369
|
+
- [vue-i18n vs Intlayer](https://intlayer.org/id/blog/vue-i18n-vs-intlayer), fitur dan DX
|
|
370
|
+
- [benchmark vue-i18n vs Intlayer](https://intlayer.org/id/blog/vue-i18n-vs-intlayer-benchmark), pengujian yang sama secara lengkap
|
|
371
|
+
- [Apakah vue-i18n sudah usang?](https://intlayer.org/id/blog/is-vue-i18n-outdated)
|
|
372
|
+
- [Cara memilih library i18n Vue](https://intlayer.org/id/blog/how-to-pick-vue-i18n-library)
|
|
373
|
+
|
|
374
|
+
Dokumentasi referensi:
|
|
375
|
+
|
|
376
|
+
- [Adapter kompatibilitas: vue-i18n](https://intlayer.org/id/doc/compatibility/vue-i18n) dan [Nuxt i18n](https://intlayer.org/id/doc/compatibility/nuxtjs-i18n)
|
|
377
|
+
- [Panduan migrasi: vue-i18n ke Intlayer](https://intlayer.org/id/doc/migration/vue-i18n)
|
|
378
|
+
- [Laporan benchmark Vue](https://intlayer.org/id/doc/benchmark/vue)
|
|
379
|
+
- [Optimalisasi bundel](https://intlayer.org/id/doc/concept/bundle-optimization) dan [kompiler Intlayer](https://intlayer.org/id/doc/compiler)
|
|
380
|
+
- [Editor Visual](https://intlayer.org/id/doc/concept/editor), [CMS](https://intlayer.org/id/doc/concept/cms) dan [terjemahan AI](https://intlayer.org/id/doc/concept/auto-fill)
|
|
381
|
+
|
|
382
|
+
## Kesimpulan
|
|
383
|
+
|
|
384
|
+
`@intlayer/vue-i18n` mengubah apa yang diikat oleh `useI18n()`: dari instans global yang menyimpan setiap pesan dari setiap lokal ke kamus yang dikompilasi untuk komponen tersebut. Pada aplikasi Vite + Vue 3 yang sama, ini berarti **88 KB lebih sedikit per halaman**, **runtime 3x lebih kecil**, **komponen 23x lebih kecil** dan **0% kebocoran halaman**, hanya dengan satu file konfigurasi, satu baris plugin, dan satu impor yang dihapus. Blok SFC `<i18n>` dan pemuatan pesan runtime adalah dua hal yang tidak didukungnya, dan runtime `vue-intlayer` native tetap berukuran setengahnya.
|
|
385
|
+
|
|
386
|
+
Semua data mentah, aplikasi pengujian, dan skrip ada di [repositori Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom). Jalankan sendiri.
|
|
387
|
+
|
|
388
|
+
Lihat [dokumen 'Mengapa Intlayer?'](https://intlayer.org/id/doc/why) untuk detail selengkapnya.
|