@intlayer/docs 8.9.8 → 8.10.0-canary.1
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 +14 -0
- package/docs/ar/benchmark/nextjs.md +20 -11
- package/docs/ar/benchmark/solid.md +14 -5
- package/docs/ar/benchmark/svelte.md +14 -5
- package/docs/ar/benchmark/tanstack.md +16 -7
- package/docs/ar/benchmark/vue.md +14 -5
- package/docs/ar/configuration.md +6 -6
- package/docs/ar/custom_domains.md +11 -11
- package/docs/ar/dictionary/content_file.md +41 -0
- package/docs/ar/dictionary/markdown.md +402 -82
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_astro_lit.md +2 -2
- package/docs/ar/intlayer_with_astro_preact.md +3 -3
- package/docs/ar/intlayer_with_astro_react.md +2 -2
- package/docs/ar/intlayer_with_astro_solid.md +3 -3
- package/docs/ar/intlayer_with_astro_svelte.md +1 -1
- package/docs/ar/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ar/intlayer_with_astro_vue.md +1 -1
- package/docs/ar/intlayer_with_nextjs_14.md +2 -2
- package/docs/ar/intlayer_with_nextjs_15.md +2 -2
- package/docs/ar/intlayer_with_nextjs_16.md +1 -1
- package/docs/ar/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- package/docs/ar/intlayer_with_react_native+expo.md +2 -2
- package/docs/ar/intlayer_with_react_router_v7.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ar/intlayer_with_storybook.md +7 -7
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vanilla.md +2 -2
- package/docs/ar/intlayer_with_vite+lit.md +1 -1
- package/docs/ar/intlayer_with_vite+preact.md +1 -1
- package/docs/ar/intlayer_with_vite+react.md +1 -1
- package/docs/ar/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +2 -2
- package/docs/ar/intlayer_with_vite+vanilla.md +4 -4
- package/docs/ar/intlayer_with_vite+vue.md +1 -1
- package/docs/ar/readme.md +13 -0
- package/docs/bn/cli/init.md +1 -1
- package/docs/bn/configuration.md +6 -6
- package/docs/bn/custom_domains.md +11 -11
- package/docs/bn/intlayer_with_storybook.md +7 -7
- package/docs/bn/intlayer_with_vanilla.md +2 -2
- package/docs/bn/intlayer_with_vite+lit.md +3 -3
- package/docs/bn/intlayer_with_vite+vanilla.md +5 -5
- package/docs/cs/cli/init.md +1 -1
- package/docs/cs/configuration.md +6 -6
- package/docs/cs/custom_domains.md +11 -11
- package/docs/cs/intlayer_with_storybook.md +7 -7
- package/docs/cs/intlayer_with_vanilla.md +2 -2
- package/docs/cs/intlayer_with_vite+lit.md +3 -3
- package/docs/cs/intlayer_with_vite+vanilla.md +5 -5
- package/docs/de/benchmark/nextjs.md +15 -6
- package/docs/de/benchmark/solid.md +14 -5
- package/docs/de/benchmark/svelte.md +14 -5
- package/docs/de/benchmark/tanstack.md +15 -6
- package/docs/de/benchmark/vue.md +14 -5
- package/docs/de/configuration.md +6 -6
- package/docs/de/custom_domains.md +11 -11
- package/docs/de/dictionary/content_file.md +41 -0
- package/docs/de/dictionary/markdown.md +297 -91
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_astro_lit.md +2 -2
- package/docs/de/intlayer_with_astro_preact.md +3 -3
- package/docs/de/intlayer_with_astro_react.md +2 -2
- package/docs/de/intlayer_with_astro_solid.md +3 -3
- package/docs/de/intlayer_with_astro_svelte.md +1 -1
- package/docs/de/intlayer_with_astro_vanilla.md +1 -1
- package/docs/de/intlayer_with_astro_vue.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +2 -2
- package/docs/de/intlayer_with_nextjs_15.md +2 -2
- package/docs/de/intlayer_with_nextjs_16.md +1 -1
- package/docs/de/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +2 -2
- package/docs/de/intlayer_with_react_router_v7.md +1 -1
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/de/intlayer_with_storybook.md +7 -7
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vanilla.md +2 -2
- package/docs/de/intlayer_with_vite+lit.md +2 -2
- package/docs/de/intlayer_with_vite+preact.md +2 -2
- package/docs/de/intlayer_with_vite+react.md +2 -2
- package/docs/de/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +3 -3
- package/docs/de/intlayer_with_vite+vanilla.md +5 -5
- package/docs/de/intlayer_with_vite+vue.md +2 -2
- package/docs/de/readme.md +13 -0
- package/docs/en/agent_skills.md +2 -2
- package/docs/en/benchmark/___nextjs.md +1 -1
- package/docs/en/benchmark/___tanstack.md +2 -2
- package/docs/en/benchmark/nextjs.md +11 -2
- package/docs/en/benchmark/solid.md +10 -1
- package/docs/en/benchmark/svelte.md +10 -1
- package/docs/en/benchmark/tanstack.md +10 -1
- package/docs/en/benchmark/vue.md +10 -1
- package/docs/en/configuration.md +7 -7
- package/docs/en/custom_domains.md +11 -11
- package/docs/en/dictionary/content_file.md +41 -0
- package/docs/en/dictionary/markdown.md +259 -26
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_astro_lit.md +4 -4
- package/docs/en/intlayer_with_astro_preact.md +3 -3
- package/docs/en/intlayer_with_astro_react.md +2 -2
- package/docs/en/intlayer_with_astro_solid.md +3 -3
- package/docs/en/intlayer_with_astro_svelte.md +1 -1
- package/docs/en/intlayer_with_astro_vanilla.md +1 -1
- package/docs/en/intlayer_with_astro_vue.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +1 -1
- package/docs/en/intlayer_with_nextjs_15.md +1 -1
- package/docs/en/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en/intlayer_with_nuxt.md +1 -1
- package/docs/en/intlayer_with_react_native+expo.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +1 -1
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/en/intlayer_with_storybook.md +7 -7
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vanilla.md +2 -2
- package/docs/en/intlayer_with_vite+lit.md +2 -2
- package/docs/en/intlayer_with_vite+preact.md +1 -1
- package/docs/en/intlayer_with_vite+react.md +1 -1
- package/docs/en/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/en/intlayer_with_vite+svelte.md +2 -2
- package/docs/en/intlayer_with_vite+vanilla.md +4 -4
- package/docs/en/intlayer_with_vite+vue.md +1 -1
- package/docs/en/readme.md +13 -0
- package/docs/en-GB/agent_skills.md +2 -2
- package/docs/en-GB/benchmark/nextjs.md +16 -7
- package/docs/en-GB/benchmark/solid.md +14 -5
- package/docs/en-GB/benchmark/svelte.md +14 -5
- package/docs/en-GB/benchmark/tanstack.md +16 -7
- package/docs/en-GB/benchmark/vue.md +14 -5
- package/docs/en-GB/cli/init.md +1 -1
- package/docs/en-GB/configuration.md +7 -7
- package/docs/en-GB/custom_domains.md +11 -11
- package/docs/en-GB/dictionary/content_file.md +41 -0
- package/docs/en-GB/dictionary/markdown.md +377 -57
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +2 -2
- package/docs/en-GB/intlayer_with_astro_preact.md +3 -3
- package/docs/en-GB/intlayer_with_astro_react.md +2 -2
- package/docs/en-GB/intlayer_with_astro_solid.md +3 -3
- package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_15.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en-GB/intlayer_with_nuxt.md +1 -1
- package/docs/en-GB/intlayer_with_react_native+expo.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/en-GB/intlayer_with_storybook.md +7 -7
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vanilla.md +2 -2
- package/docs/en-GB/intlayer_with_vite+lit.md +2 -2
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +2 -2
- package/docs/en-GB/intlayer_with_vite+vanilla.md +4 -4
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/readme.md +13 -0
- package/docs/es/agent_skills.md +2 -2
- package/docs/es/benchmark/nextjs.md +15 -6
- package/docs/es/benchmark/solid.md +14 -5
- package/docs/es/benchmark/svelte.md +14 -5
- package/docs/es/benchmark/tanstack.md +15 -6
- package/docs/es/benchmark/vue.md +14 -5
- package/docs/es/configuration.md +1 -1
- package/docs/es/custom_domains.md +11 -11
- package/docs/es/dictionary/content_file.md +41 -0
- package/docs/es/dictionary/markdown.md +316 -110
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_astro_lit.md +2 -2
- package/docs/es/intlayer_with_astro_preact.md +3 -3
- package/docs/es/intlayer_with_astro_react.md +2 -2
- package/docs/es/intlayer_with_astro_solid.md +3 -3
- package/docs/es/intlayer_with_astro_svelte.md +1 -1
- package/docs/es/intlayer_with_astro_vanilla.md +1 -1
- package/docs/es/intlayer_with_astro_vue.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +2 -2
- package/docs/es/intlayer_with_nextjs_15.md +2 -2
- package/docs/es/intlayer_with_nextjs_16.md +1 -1
- package/docs/es/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +2 -2
- package/docs/es/intlayer_with_react_router_v7.md +1 -1
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/es/intlayer_with_storybook.md +5 -5
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vanilla.md +2 -2
- package/docs/es/intlayer_with_vite+lit.md +2 -2
- package/docs/es/intlayer_with_vite+preact.md +2 -2
- package/docs/es/intlayer_with_vite+react.md +2 -2
- package/docs/es/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +3 -3
- package/docs/es/intlayer_with_vite+vanilla.md +4 -4
- package/docs/es/intlayer_with_vite+vue.md +2 -2
- package/docs/es/readme.md +13 -0
- package/docs/fr/agent_skills.md +2 -2
- package/docs/fr/benchmark/nextjs.md +20 -11
- package/docs/fr/benchmark/solid.md +14 -5
- package/docs/fr/benchmark/svelte.md +14 -5
- package/docs/fr/benchmark/tanstack.md +16 -7
- package/docs/fr/benchmark/vue.md +14 -5
- package/docs/fr/configuration.md +6 -6
- package/docs/fr/custom_domains.md +11 -11
- package/docs/fr/dictionary/content_file.md +41 -0
- package/docs/fr/dictionary/markdown.md +320 -114
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_astro_lit.md +4 -4
- package/docs/fr/intlayer_with_astro_preact.md +3 -3
- package/docs/fr/intlayer_with_astro_react.md +2 -2
- package/docs/fr/intlayer_with_astro_solid.md +3 -3
- package/docs/fr/intlayer_with_astro_svelte.md +1 -1
- package/docs/fr/intlayer_with_astro_vanilla.md +1 -1
- package/docs/fr/intlayer_with_astro_vue.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +2 -2
- package/docs/fr/intlayer_with_nextjs_15.md +2 -2
- package/docs/fr/intlayer_with_nextjs_16.md +1 -1
- package/docs/fr/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- package/docs/fr/intlayer_with_react_native+expo.md +2 -2
- package/docs/fr/intlayer_with_react_router_v7.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/fr/intlayer_with_storybook.md +7 -7
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +1 -1
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vanilla.md +2 -2
- package/docs/fr/intlayer_with_vite+lit.md +3 -3
- package/docs/fr/intlayer_with_vite+preact.md +2 -2
- package/docs/fr/intlayer_with_vite+react.md +2 -2
- package/docs/fr/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +3 -3
- package/docs/fr/intlayer_with_vite+vanilla.md +5 -5
- package/docs/fr/intlayer_with_vite+vue.md +2 -2
- package/docs/fr/readme.md +15 -0
- package/docs/hi/benchmark/nextjs.md +20 -11
- package/docs/hi/benchmark/solid.md +14 -5
- package/docs/hi/benchmark/svelte.md +14 -5
- package/docs/hi/benchmark/tanstack.md +16 -7
- package/docs/hi/benchmark/vue.md +14 -5
- package/docs/hi/cli/init.md +1 -1
- package/docs/hi/configuration.md +6 -6
- package/docs/hi/custom_domains.md +11 -11
- package/docs/hi/dictionary/content_file.md +41 -0
- package/docs/hi/dictionary/markdown.md +394 -74
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_astro_lit.md +2 -2
- package/docs/hi/intlayer_with_astro_preact.md +3 -3
- package/docs/hi/intlayer_with_astro_react.md +2 -2
- package/docs/hi/intlayer_with_astro_solid.md +3 -3
- package/docs/hi/intlayer_with_astro_svelte.md +1 -1
- package/docs/hi/intlayer_with_astro_vanilla.md +1 -1
- package/docs/hi/intlayer_with_astro_vue.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +2 -2
- package/docs/hi/intlayer_with_nextjs_15.md +2 -2
- package/docs/hi/intlayer_with_nextjs_16.md +1 -1
- package/docs/hi/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- package/docs/hi/intlayer_with_react_native+expo.md +2 -2
- package/docs/hi/intlayer_with_react_router_v7.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/hi/intlayer_with_storybook.md +7 -7
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vanilla.md +2 -2
- package/docs/hi/intlayer_with_vite+lit.md +3 -3
- package/docs/hi/intlayer_with_vite+preact.md +2 -2
- package/docs/hi/intlayer_with_vite+react.md +2 -2
- package/docs/hi/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +3 -3
- package/docs/hi/intlayer_with_vite+vanilla.md +5 -5
- package/docs/hi/intlayer_with_vite+vue.md +2 -2
- package/docs/hi/readme.md +14 -1
- package/docs/id/agent_skills.md +2 -2
- package/docs/id/benchmark/nextjs.md +20 -11
- package/docs/id/benchmark/solid.md +14 -5
- package/docs/id/benchmark/svelte.md +14 -5
- package/docs/id/benchmark/tanstack.md +16 -7
- package/docs/id/benchmark/vue.md +14 -5
- package/docs/id/cli/init.md +1 -1
- package/docs/id/configuration.md +6 -6
- package/docs/id/custom_domains.md +11 -11
- package/docs/id/dictionary/content_file.md +41 -0
- package/docs/id/dictionary/markdown.md +398 -78
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_astro_lit.md +2 -2
- package/docs/id/intlayer_with_astro_preact.md +3 -3
- package/docs/id/intlayer_with_astro_react.md +2 -2
- package/docs/id/intlayer_with_astro_solid.md +3 -3
- package/docs/id/intlayer_with_astro_svelte.md +1 -1
- package/docs/id/intlayer_with_astro_vanilla.md +1 -1
- package/docs/id/intlayer_with_astro_vue.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +1 -1
- package/docs/id/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +1 -1
- package/docs/id/intlayer_with_react_router_v7.md +1 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/id/intlayer_with_storybook.md +7 -7
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vanilla.md +2 -2
- package/docs/id/intlayer_with_vite+lit.md +2 -2
- package/docs/id/intlayer_with_vite+preact.md +1 -1
- package/docs/id/intlayer_with_vite+react.md +1 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +2 -2
- package/docs/id/intlayer_with_vite+vanilla.md +4 -4
- package/docs/id/intlayer_with_vite+vue.md +1 -1
- package/docs/id/readme.md +13 -0
- package/docs/it/benchmark/nextjs.md +18 -9
- package/docs/it/benchmark/solid.md +14 -5
- package/docs/it/benchmark/svelte.md +14 -5
- package/docs/it/benchmark/tanstack.md +16 -7
- package/docs/it/benchmark/vue.md +14 -5
- package/docs/it/configuration.md +6 -6
- package/docs/it/custom_domains.md +11 -11
- package/docs/it/dictionary/content_file.md +41 -0
- package/docs/it/dictionary/markdown.md +318 -117
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_astro_lit.md +2 -2
- package/docs/it/intlayer_with_astro_preact.md +3 -3
- package/docs/it/intlayer_with_astro_react.md +2 -2
- package/docs/it/intlayer_with_astro_solid.md +3 -3
- package/docs/it/intlayer_with_astro_svelte.md +1 -1
- package/docs/it/intlayer_with_astro_vanilla.md +1 -1
- package/docs/it/intlayer_with_astro_vue.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +2 -2
- package/docs/it/intlayer_with_nextjs_15.md +2 -2
- package/docs/it/intlayer_with_nextjs_16.md +1 -1
- package/docs/it/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +2 -2
- package/docs/it/intlayer_with_react_router_v7.md +1 -1
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/it/intlayer_with_storybook.md +7 -7
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vanilla.md +2 -2
- package/docs/it/intlayer_with_vite+lit.md +2 -2
- package/docs/it/intlayer_with_vite+preact.md +2 -2
- package/docs/it/intlayer_with_vite+react.md +2 -2
- package/docs/it/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +3 -3
- package/docs/it/intlayer_with_vite+vanilla.md +5 -5
- package/docs/it/intlayer_with_vite+vue.md +1 -1
- package/docs/it/readme.md +13 -0
- package/docs/ja/benchmark/nextjs.md +15 -6
- package/docs/ja/benchmark/solid.md +10 -1
- package/docs/ja/benchmark/svelte.md +10 -1
- package/docs/ja/benchmark/tanstack.md +15 -6
- package/docs/ja/benchmark/vue.md +10 -1
- package/docs/ja/configuration.md +1 -1
- package/docs/ja/custom_domains.md +9 -9
- package/docs/ja/dictionary/content_file.md +41 -0
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_astro_lit.md +2 -2
- package/docs/ja/intlayer_with_astro_preact.md +2 -2
- package/docs/ja/intlayer_with_astro_react.md +1 -1
- package/docs/ja/intlayer_with_astro_solid.md +1 -1
- package/docs/ja/intlayer_with_astro_svelte.md +1 -1
- package/docs/ja/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ja/intlayer_with_astro_vue.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +2 -2
- package/docs/ja/intlayer_with_nextjs_15.md +2 -2
- package/docs/ja/intlayer_with_nextjs_16.md +1 -1
- package/docs/ja/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_native+expo.md +2 -2
- package/docs/ja/intlayer_with_react_router_v7.md +2 -2
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ja/intlayer_with_storybook.md +5 -5
- package/docs/ja/intlayer_with_svelte_kit.md +1 -1
- package/docs/ja/intlayer_with_tanstack+solid.md +1 -1
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/intlayer_with_vanilla.md +2 -2
- package/docs/ja/intlayer_with_vite+lit.md +1 -1
- package/docs/ja/intlayer_with_vite+preact.md +1 -1
- package/docs/ja/intlayer_with_vite+react.md +1 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +2 -2
- package/docs/ja/intlayer_with_vite+vanilla.md +2 -2
- package/docs/ja/intlayer_with_vite+vue.md +1 -1
- package/docs/ja/readme.md +13 -0
- package/docs/ko/benchmark/nextjs.md +15 -6
- package/docs/ko/benchmark/solid.md +13 -4
- package/docs/ko/benchmark/svelte.md +13 -4
- package/docs/ko/benchmark/tanstack.md +15 -6
- package/docs/ko/benchmark/vue.md +13 -4
- package/docs/ko/configuration.md +1 -1
- package/docs/ko/custom_domains.md +9 -9
- package/docs/ko/dictionary/content_file.md +41 -0
- package/docs/ko/dictionary/markdown.md +325 -119
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_astro_lit.md +2 -2
- package/docs/ko/intlayer_with_astro_preact.md +2 -2
- package/docs/ko/intlayer_with_astro_react.md +1 -1
- package/docs/ko/intlayer_with_astro_solid.md +1 -1
- package/docs/ko/intlayer_with_astro_svelte.md +1 -1
- package/docs/ko/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ko/intlayer_with_astro_vue.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +2 -2
- package/docs/ko/intlayer_with_nextjs_15.md +2 -2
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ko/intlayer_with_storybook.md +5 -5
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vanilla.md +2 -2
- package/docs/ko/intlayer_with_vite+lit.md +2 -2
- package/docs/ko/intlayer_with_vite+preact.md +2 -2
- package/docs/ko/intlayer_with_vite+react.md +2 -2
- package/docs/ko/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +3 -3
- package/docs/ko/intlayer_with_vite+vanilla.md +3 -3
- package/docs/ko/intlayer_with_vite+vue.md +2 -2
- package/docs/ko/readme.md +13 -0
- package/docs/nl/configuration.md +6 -6
- package/docs/nl/custom_domains.md +11 -11
- package/docs/nl/intlayer_with_storybook.md +7 -7
- package/docs/nl/intlayer_with_vanilla.md +2 -2
- package/docs/nl/intlayer_with_vite+lit.md +2 -2
- package/docs/nl/intlayer_with_vite+vanilla.md +4 -4
- package/docs/pl/agent_skills.md +2 -2
- package/docs/pl/benchmark/nextjs.md +20 -11
- package/docs/pl/benchmark/solid.md +15 -6
- package/docs/pl/benchmark/svelte.md +15 -6
- package/docs/pl/benchmark/tanstack.md +16 -7
- package/docs/pl/benchmark/vue.md +16 -7
- package/docs/pl/configuration.md +6 -6
- package/docs/pl/custom_domains.md +11 -11
- package/docs/pl/dictionary/content_file.md +41 -0
- package/docs/pl/dictionary/markdown.md +303 -98
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_astro_lit.md +2 -2
- package/docs/pl/intlayer_with_astro_preact.md +3 -3
- package/docs/pl/intlayer_with_astro_react.md +2 -2
- package/docs/pl/intlayer_with_astro_solid.md +3 -3
- package/docs/pl/intlayer_with_astro_svelte.md +1 -1
- package/docs/pl/intlayer_with_astro_vanilla.md +1 -1
- package/docs/pl/intlayer_with_astro_vue.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +1 -1
- package/docs/pl/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/pl/intlayer_with_nuxt.md +1 -1
- package/docs/pl/intlayer_with_react_native+expo.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/pl/intlayer_with_storybook.md +7 -7
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +1 -1
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vanilla.md +2 -2
- package/docs/pl/intlayer_with_vite+lit.md +3 -3
- package/docs/pl/intlayer_with_vite+preact.md +2 -2
- package/docs/pl/intlayer_with_vite+react.md +2 -2
- package/docs/pl/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +3 -3
- package/docs/pl/intlayer_with_vite+vanilla.md +5 -5
- package/docs/pl/intlayer_with_vite+vue.md +2 -2
- package/docs/pl/readme.md +13 -0
- package/docs/pt/benchmark/nextjs.md +20 -11
- package/docs/pt/benchmark/solid.md +14 -5
- package/docs/pt/benchmark/svelte.md +14 -5
- package/docs/pt/benchmark/tanstack.md +16 -7
- package/docs/pt/benchmark/vue.md +14 -5
- package/docs/pt/configuration.md +6 -6
- package/docs/pt/custom_domains.md +11 -11
- package/docs/pt/dictionary/content_file.md +41 -0
- package/docs/pt/dictionary/markdown.md +303 -98
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular.md +1 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_astro_lit.md +1 -1
- package/docs/pt/intlayer_with_astro_preact.md +3 -3
- package/docs/pt/intlayer_with_astro_react.md +2 -2
- package/docs/pt/intlayer_with_astro_solid.md +3 -3
- package/docs/pt/intlayer_with_astro_svelte.md +1 -1
- package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
- package/docs/pt/intlayer_with_astro_vue.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +2 -2
- package/docs/pt/intlayer_with_nextjs_15.md +2 -2
- package/docs/pt/intlayer_with_nextjs_16.md +1 -1
- package/docs/pt/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +2 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/pt/intlayer_with_storybook.md +7 -7
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +1 -1
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/intlayer_with_vanilla.md +2 -2
- package/docs/pt/intlayer_with_vite+lit.md +3 -3
- package/docs/pt/intlayer_with_vite+preact.md +2 -2
- package/docs/pt/intlayer_with_vite+react.md +2 -2
- package/docs/pt/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +3 -3
- package/docs/pt/intlayer_with_vite+vanilla.md +5 -5
- package/docs/pt/intlayer_with_vite+vue.md +1 -1
- package/docs/pt/readme.md +13 -0
- package/docs/ru/agent_skills.md +1 -1
- package/docs/ru/benchmark/index.md +2 -2
- package/docs/ru/benchmark/nextjs.md +28 -19
- package/docs/ru/benchmark/solid.md +16 -7
- package/docs/ru/benchmark/svelte.md +17 -8
- package/docs/ru/benchmark/tanstack.md +20 -11
- package/docs/ru/benchmark/vue.md +19 -10
- package/docs/ru/bundle_optimization.md +1 -1
- package/docs/ru/cli/index.md +23 -23
- package/docs/ru/cli/init.md +7 -7
- package/docs/ru/cli/standalone.md +5 -5
- package/docs/ru/compiler.md +3 -3
- package/docs/ru/configuration.md +8 -8
- package/docs/ru/custom_domains.md +12 -12
- package/docs/ru/dictionary/content_file.md +41 -0
- package/docs/ru/dictionary/html.md +6 -6
- package/docs/ru/dictionary/markdown.md +100 -500
- package/docs/ru/interest_of_intlayer.md +3 -3
- package/docs/ru/intlayer_with_analog.md +1 -1
- package/docs/ru/intlayer_with_angular.md +1 -1
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_astro_lit.md +5 -5
- package/docs/ru/intlayer_with_astro_preact.md +4 -4
- package/docs/ru/intlayer_with_astro_react.md +3 -3
- package/docs/ru/intlayer_with_astro_solid.md +4 -4
- package/docs/ru/intlayer_with_astro_svelte.md +2 -2
- package/docs/ru/intlayer_with_astro_vanilla.md +2 -2
- package/docs/ru/intlayer_with_astro_vue.md +2 -2
- package/docs/ru/intlayer_with_fastify.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +2 -2
- package/docs/ru/intlayer_with_nextjs_15.md +2 -2
- package/docs/ru/intlayer_with_nextjs_16.md +1 -1
- package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- package/docs/ru/intlayer_with_react_native+expo.md +2 -2
- package/docs/ru/intlayer_with_react_router_v7.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/ru/intlayer_with_storybook.md +10 -10
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +7 -7
- package/docs/ru/intlayer_with_tanstack.md +1 -1
- package/docs/ru/intlayer_with_vanilla.md +4 -4
- package/docs/ru/intlayer_with_vite+lit.md +5 -5
- package/docs/ru/intlayer_with_vite+preact.md +2 -2
- package/docs/ru/intlayer_with_vite+react.md +2 -2
- package/docs/ru/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +3 -3
- package/docs/ru/intlayer_with_vite+vanilla.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +2 -2
- package/docs/ru/readme.md +13 -0
- package/docs/tr/benchmark/nextjs.md +16 -7
- package/docs/tr/benchmark/solid.md +14 -5
- package/docs/tr/benchmark/svelte.md +14 -5
- package/docs/tr/benchmark/tanstack.md +16 -7
- package/docs/tr/benchmark/vue.md +14 -5
- package/docs/tr/configuration.md +6 -6
- package/docs/tr/custom_domains.md +11 -11
- package/docs/tr/dictionary/content_file.md +41 -0
- package/docs/tr/dictionary/markdown.md +320 -116
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_astro_lit.md +2 -2
- package/docs/tr/intlayer_with_astro_preact.md +3 -3
- package/docs/tr/intlayer_with_astro_react.md +2 -2
- package/docs/tr/intlayer_with_astro_solid.md +3 -3
- package/docs/tr/intlayer_with_astro_svelte.md +1 -1
- package/docs/tr/intlayer_with_astro_vanilla.md +1 -1
- package/docs/tr/intlayer_with_astro_vue.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +2 -2
- package/docs/tr/intlayer_with_nextjs_16.md +1 -1
- package/docs/tr/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +2 -2
- package/docs/tr/intlayer_with_react_router_v7.md +1 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/tr/intlayer_with_storybook.md +7 -7
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vanilla.md +2 -2
- package/docs/tr/intlayer_with_vite+lit.md +3 -3
- package/docs/tr/intlayer_with_vite+preact.md +2 -2
- package/docs/tr/intlayer_with_vite+react.md +2 -2
- package/docs/tr/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +3 -3
- package/docs/tr/intlayer_with_vite+vanilla.md +5 -5
- package/docs/tr/intlayer_with_vite+vue.md +2 -2
- package/docs/tr/readme.md +13 -0
- package/docs/uk/agent_skills.md +1 -1
- package/docs/uk/benchmark/index.md +2 -2
- package/docs/uk/benchmark/nextjs.md +29 -20
- package/docs/uk/benchmark/solid.md +16 -7
- package/docs/uk/benchmark/svelte.md +17 -8
- package/docs/uk/benchmark/tanstack.md +21 -12
- package/docs/uk/benchmark/vue.md +20 -11
- package/docs/uk/bundle_optimization.md +1 -1
- package/docs/uk/cli/index.md +21 -21
- package/docs/uk/cli/init.md +9 -9
- package/docs/uk/cli/standalone.md +16 -16
- package/docs/uk/compiler.md +3 -3
- package/docs/uk/configuration.md +8 -8
- package/docs/uk/custom_domains.md +12 -12
- package/docs/uk/dictionary/content_file.md +41 -0
- package/docs/uk/dictionary/markdown.md +405 -85
- package/docs/uk/interest_of_intlayer.md +2 -2
- package/docs/uk/intlayer_with_analog.md +1 -1
- package/docs/uk/intlayer_with_angular.md +1 -1
- package/docs/uk/intlayer_with_astro.md +2 -2
- package/docs/uk/intlayer_with_astro_lit.md +3 -3
- package/docs/uk/intlayer_with_astro_preact.md +4 -4
- package/docs/uk/intlayer_with_astro_react.md +3 -3
- package/docs/uk/intlayer_with_astro_solid.md +4 -4
- package/docs/uk/intlayer_with_astro_svelte.md +2 -2
- package/docs/uk/intlayer_with_astro_vanilla.md +2 -2
- package/docs/uk/intlayer_with_astro_vue.md +2 -2
- package/docs/uk/intlayer_with_fastify.md +1 -1
- package/docs/uk/intlayer_with_nextjs_14.md +1 -1
- package/docs/uk/intlayer_with_nextjs_15.md +1 -1
- package/docs/uk/intlayer_with_nextjs_16.md +1 -1
- package/docs/uk/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/uk/intlayer_with_nuxt.md +1 -1
- package/docs/uk/intlayer_with_react_native+expo.md +1 -1
- package/docs/uk/intlayer_with_react_router_v7.md +1 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/uk/intlayer_with_storybook.md +9 -9
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +4 -4
- package/docs/uk/intlayer_with_tanstack.md +1 -1
- package/docs/uk/intlayer_with_vanilla.md +3 -3
- package/docs/uk/intlayer_with_vite+lit.md +4 -4
- package/docs/uk/intlayer_with_vite+preact.md +2 -2
- package/docs/uk/intlayer_with_vite+react.md +2 -2
- package/docs/uk/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/uk/intlayer_with_vite+solid.md +1 -1
- package/docs/uk/intlayer_with_vite+svelte.md +3 -3
- package/docs/uk/intlayer_with_vite+vanilla.md +6 -6
- package/docs/uk/intlayer_with_vite+vue.md +2 -2
- package/docs/uk/readme.md +13 -0
- package/docs/ur/cli/init.md +1 -1
- package/docs/ur/configuration.md +6 -6
- package/docs/ur/custom_domains.md +11 -11
- package/docs/ur/intlayer_with_storybook.md +7 -7
- package/docs/ur/intlayer_with_vanilla.md +2 -2
- package/docs/ur/intlayer_with_vite+lit.md +2 -2
- package/docs/ur/intlayer_with_vite+vanilla.md +4 -4
- package/docs/vi/agent_skills.md +2 -2
- package/docs/vi/benchmark/nextjs.md +20 -11
- package/docs/vi/benchmark/solid.md +14 -5
- package/docs/vi/benchmark/svelte.md +14 -5
- package/docs/vi/benchmark/tanstack.md +16 -7
- package/docs/vi/benchmark/vue.md +14 -5
- package/docs/vi/cli/init.md +1 -1
- package/docs/vi/configuration.md +6 -6
- package/docs/vi/custom_domains.md +11 -11
- package/docs/vi/dictionary/content_file.md +41 -0
- package/docs/vi/dictionary/markdown.md +408 -88
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_astro_lit.md +2 -2
- package/docs/vi/intlayer_with_astro_preact.md +3 -3
- package/docs/vi/intlayer_with_astro_react.md +2 -2
- package/docs/vi/intlayer_with_astro_solid.md +3 -3
- package/docs/vi/intlayer_with_astro_svelte.md +1 -1
- package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
- package/docs/vi/intlayer_with_astro_vue.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +1 -1
- package/docs/vi/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/vi/intlayer_with_nuxt.md +1 -1
- package/docs/vi/intlayer_with_react_native+expo.md +1 -1
- package/docs/vi/intlayer_with_react_router_v7.md +1 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/vi/intlayer_with_storybook.md +7 -7
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vanilla.md +2 -2
- package/docs/vi/intlayer_with_vite+lit.md +2 -2
- package/docs/vi/intlayer_with_vite+preact.md +1 -1
- package/docs/vi/intlayer_with_vite+react.md +1 -1
- package/docs/vi/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +2 -2
- package/docs/vi/intlayer_with_vite+vanilla.md +4 -4
- package/docs/vi/intlayer_with_vite+vue.md +1 -1
- package/docs/vi/readme.md +13 -0
- package/docs/zh/benchmark/nextjs.md +20 -11
- package/docs/zh/benchmark/solid.md +10 -1
- package/docs/zh/benchmark/svelte.md +10 -1
- package/docs/zh/benchmark/tanstack.md +16 -7
- package/docs/zh/benchmark/vue.md +10 -1
- package/docs/zh/cli/init.md +1 -1
- package/docs/zh/configuration.md +6 -6
- package/docs/zh/custom_domains.md +11 -11
- package/docs/zh/dictionary/content_file.md +41 -0
- package/docs/zh/dictionary/markdown.md +313 -111
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_astro_lit.md +2 -2
- package/docs/zh/intlayer_with_astro_preact.md +3 -3
- package/docs/zh/intlayer_with_astro_react.md +2 -2
- package/docs/zh/intlayer_with_astro_solid.md +3 -3
- package/docs/zh/intlayer_with_astro_svelte.md +1 -1
- package/docs/zh/intlayer_with_astro_vanilla.md +1 -1
- package/docs/zh/intlayer_with_astro_vue.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +2 -2
- package/docs/zh/intlayer_with_nextjs_15.md +2 -2
- package/docs/zh/intlayer_with_nextjs_16.md +1 -1
- package/docs/zh/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- package/docs/zh/intlayer_with_react_native+expo.md +2 -2
- package/docs/zh/intlayer_with_react_router_v7.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
- package/docs/zh/intlayer_with_storybook.md +7 -7
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vanilla.md +2 -2
- package/docs/zh/intlayer_with_vite+lit.md +2 -2
- package/docs/zh/intlayer_with_vite+preact.md +1 -1
- package/docs/zh/intlayer_with_vite+react.md +1 -1
- package/docs/zh/intlayer_with_vite+react_compiler.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +2 -2
- package/docs/zh/intlayer_with_vite+vanilla.md +4 -4
- package/docs/zh/intlayer_with_vite+vue.md +1 -1
- package/docs/zh/readme.md +13 -0
- package/frequent_questions/ru/intlayerNode.md +2 -2
- package/frequent_questions/uk/intlayerNode.md +2 -2
- package/package.json +7 -7
- package/docs/ja/dictionary/markdown.md +0 -631
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-05-18
|
|
4
4
|
title: Лучшее решение i18n для Next.js в 2026 году - Отчет о бенчмарке
|
|
5
5
|
description: Сравните библиотеки интернационализации (i18n) для Next.js, такие как next-intl, next-i18next и Intlayer. Подробный отчет о производительности, размере бандла, утечках и реактивности.
|
|
6
6
|
keywords:
|
|
@@ -17,12 +17,15 @@ slugs:
|
|
|
17
17
|
author: Aymeric PINEAU
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.9.8
|
|
21
|
+
date: 2026-05-18
|
|
22
|
+
changes: "Добавить сравнение звезд GitHub"
|
|
20
23
|
- version: 8.7.5
|
|
21
24
|
date: 2026-01-06
|
|
22
25
|
changes: "Инициализация бенчмарка"
|
|
23
26
|
---
|
|
24
27
|
|
|
25
|
-
# Библиотеки i18n для Next.js
|
|
28
|
+
# Библиотеки i18n для Next.js - Отчет о бенчмарке 2026
|
|
26
29
|
|
|
27
30
|
Эта страница представляет собой отчет о бенчмарке i18n-решений для Next.js.
|
|
28
31
|
|
|
@@ -57,7 +60,7 @@ style="border:none;"
|
|
|
57
60
|
|
|
58
61
|
Еще одним последствием использования библиотек i18n является замедление разработки. Превращение компонентов в мультиязычный контент на разных языках отнимает много времени.
|
|
59
62
|
|
|
60
|
-
Поскольку проблема сложна, существует множество решений
|
|
63
|
+
Поскольку проблема сложна, существует множество решений - одни ориентированы на DX, другие на производительность или масштабируемость и так далее.
|
|
61
64
|
|
|
62
65
|
Intlayer пытается оптимизировать все эти аспекты.
|
|
63
66
|
|
|
@@ -85,17 +88,17 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
85
88
|
|
|
86
89
|
**Динамическая загрузка**
|
|
87
90
|
|
|
88
|
-
Даже если вы объявляете маршруты типа `[locale]/page.tsx`, с Webpack или Turbopack, и даже если определен `generateStaticParams`, сборщик не рассматривает `locale` как статическую константу. Это означает, что он может включить контент для всех языков в каждую страницу. Основной способ ограничить это
|
|
91
|
+
Даже если вы объявляете маршруты типа `[locale]/page.tsx`, с Webpack или Turbopack, и даже если определен `generateStaticParams`, сборщик не рассматривает `locale` как статическую константу. Это означает, что он может включить контент для всех языков в каждую страницу. Основной способ ограничить это - загружать контент через динамический импорт (например, `import('./locales/${locale}.json')`).
|
|
89
92
|
|
|
90
93
|
На этапе сборки Next.js создает один JS-бандл на локаль (например, `./locales_fr_12345.js`). Когда сайт отправляется клиенту и страница запускается, браузер выполняет дополнительный HTTP-запрос для необходимого JS-файла (например, `./locales_fr_12345.js`).
|
|
91
94
|
|
|
92
|
-
> Другой способ решения той же проблемы
|
|
95
|
+
> Другой способ решения той же проблемы - использование `fetch()` для динамической загрузки JSON. Так работает `Tolgee`, когда JSON находится в `/public`, или `next-translate`, который полагается на `getStaticProps` для загрузки контента. Процесс тот же: браузер делает дополнительный HTTP-запрос для загрузки ресурса.
|
|
93
96
|
|
|
94
97
|
**Разделение контента**
|
|
95
98
|
|
|
96
99
|
Если вы используете синтаксис типа `const t = useTranslation()` + `t('my-object.my-sub-object.my-key')`, весь JSON обычно должен быть в бандле, чтобы библиотека могла его проанализировать и разрешить ключ. Большая часть этого контента попадает в сборку, даже если он не используется на странице.
|
|
97
100
|
|
|
98
|
-
Чтобы смягчить это, некоторые библиотеки просят вас указывать для каждой страницы, какие пространства имен загружать
|
|
101
|
+
Чтобы смягчить это, некоторые библиотеки просят вас указывать для каждой страницы, какие пространства имен загружать - например, `next-i18next`, `next-intl`, `lingui`, `next-translate`, `next-international`.
|
|
99
102
|
|
|
100
103
|
Напротив, `Paraglide` добавляет дополнительный шаг перед сборкой, чтобы превратить JSON в плоские символы, такие как `const en_my_var = () => 'my value'`. Теоретически это позволяет исключать неиспользуемый контент на странице. Как мы увидим, у этого метода все же есть свои компромиссы.
|
|
101
104
|
|
|
@@ -140,9 +143,9 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
140
143
|
|
|
141
144
|
Я запускал одно и то же мультиязычное приложение в реальном браузере для каждого стека, а затем записывал, что на самом деле передавалось по сети и сколько времени это занимало. Размеры указаны **после обычного веб-сжатия**, так как это ближе к тому, что скачивают пользователи, чем количество исходного кода.
|
|
142
145
|
|
|
143
|
-
- **Размер библиотеки интернационализации**: После сборки, tree-shaking и минимизации, размер i18n-библиотеки
|
|
146
|
+
- **Размер библиотеки интернационализации**: После сборки, tree-shaking и минимизации, размер i18n-библиотеки - это размер провайдеров (например, `NextIntlClientProvider`) + код хуков (например, `useTranslations`) в пустом компоненте. Это не включает загрузку файлов перевода. Это ответ на вопрос, насколько "дорогая" библиотека сама по себе до добавления вашего контента.
|
|
144
147
|
|
|
145
|
-
- **JavaScript на страницу**: Для каждого маршрута бенчмарка
|
|
148
|
+
- **JavaScript на страницу**: Для каждого маршрута бенчмарка - сколько скриптов браузер загружает при посещении, усредненное по страницам в наборе (и по локалям, где отчет их объединяет). Тяжелые страницы - это медленные страницы.
|
|
146
149
|
|
|
147
150
|
- **Утечка из других локалей**: Это контент той же страницы, но на другом языке, который ошибочно загружается на проверяемую страницу. Этого контента следует избегать (например, контент страницы `/fr/about` в бандле страницы `/en/about`).
|
|
148
151
|
|
|
@@ -150,19 +153,25 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
150
153
|
|
|
151
154
|
- **Средний размер бандла компонента**: Общие элементы пользовательского интерфейса измеряются **по отдельности**, а не прячутся внутри одного гигантского числа приложения. Это показывает, не раздувает ли интернационализация обычные компоненты. Например, если ваш компонент перерендеривается, он будет загружать все эти данные из памяти. Привязка гигантского JSON-файла к любому компоненту подобна подключению большого хранилища неиспользуемых данных, которое замедлит работу ваших компонентов.
|
|
152
155
|
|
|
153
|
-
- **Скорость переключения языка**: Я переключаю язык с помощью собственного элемента управления приложения и засекаю время, пока страница явно не переключится
|
|
156
|
+
- **Скорость переключения языка**: Я переключаю язык с помощью собственного элемента управления приложения и засекаю время, пока страница явно не переключится - то, что заметит посетитель, а не лабораторный микро-шаг.
|
|
154
157
|
|
|
155
158
|
- **Работа по рендерингу после смены языка**: Более узкое наблюдение: сколько усилий потребовалось интерфейсу для перерисовки на новом языке после начала переключения. Полезно, когда "ощущаемое" время и стоимость фреймворка расходятся.
|
|
156
159
|
|
|
157
160
|
- **Время начальной загрузки страницы**: От перехода до того момента, когда браузер считает страницу полностью загруженной для протестированных сценариев. Хорошо для сравнения "холодных стартов".
|
|
158
161
|
|
|
159
|
-
- **Время гидратации**: Когда приложение предоставляет такие данные
|
|
162
|
+
- **Время гидратации**: Когда приложение предоставляет такие данные - сколько времени клиент тратит на превращение серверного HTML в нечто, на что можно нажать. Прочерк в таблицах означает, что данная реализация не предоставила надежных данных по гидратации в этом бенчмарке.
|
|
163
|
+
|
|
164
|
+
## Звезды на GitHub
|
|
165
|
+
|
|
166
|
+
Звезды на GitHub - это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
167
|
+
|
|
168
|
+
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&lingui/js-lingui&vinissimus/next-translate&inostudio/next-international&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
160
169
|
|
|
161
170
|
## Результаты в деталях
|
|
162
171
|
|
|
163
|
-
### 1
|
|
172
|
+
### 1 - Решения, которых следует избегать
|
|
164
173
|
|
|
165
|
-
Некоторых решений, таких как `gt-next` или `lingo.dev`, явно лучше избегать. Они сочетают в себе привязку к вендору с загрязнением вашей кодовой базы. Несмотря на многие часы попыток их внедрить, мне так и не удалось заставить их работать
|
|
174
|
+
Некоторых решений, таких как `gt-next` или `lingo.dev`, явно лучше избегать. Они сочетают в себе привязку к вендору с загрязнением вашей кодовой базы. Несмотря на многие часы попыток их внедрить, мне так и не удалось заставить их работать - ни на TanStack Start, ни на Next.js.
|
|
166
175
|
|
|
167
176
|
Встреченные проблемы:
|
|
168
177
|
|
|
@@ -176,12 +185,12 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
176
185
|
|
|
177
186
|
**(Lingo.dev)** (`@lingo.dev/compiler@0.4.0`):
|
|
178
187
|
|
|
179
|
-
- Квота AI превышена, что полностью блокирует сборку
|
|
188
|
+
- Квота AI превышена, что полностью блокирует сборку - вы не можете отправить приложение в продакшн без оплаты.
|
|
180
189
|
- Компилятор пропустил почти 40% переведенного контента. Мне пришлось переписать все вызовы `.map` в плоские блоки компонентов, чтобы это заработало.
|
|
181
190
|
- Их CLI работает с ошибками и периодически сбрасывает конфигурационный файл без причины.
|
|
182
191
|
- При сборке он полностью удалял сгенерированные JSON-файлы при добавлении нового контента. В результате несколько ключей могли стереть более 300 существующих ключей.
|
|
183
192
|
|
|
184
|
-
### 2
|
|
193
|
+
### 2 - Экспериментальные решения
|
|
185
194
|
|
|
186
195
|
**(Wuchale)** (`wuchale@0.22.11`):
|
|
187
196
|
|
|
@@ -193,9 +202,9 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
193
202
|
Лично мне не нравится необходимость перегенерировать JS-файлы перед каждым пушем, что создает постоянный риск конфликтов слияния в PR. Инструмент также кажется более ориентированным на Vite, чем на Next.js.
|
|
194
203
|
Наконец, по сравнению с другими решениями, Paraglide не использует хранилище (например, React context) для получения текущей локали для рендеринга контента. Для каждого обрабатываемого узла он запрашивает локаль из localStorage / куки и т.д. Это приводит к выполнению ненужной логики, которая влияет на реактивность компонентов.
|
|
195
204
|
|
|
196
|
-
> Примечание по paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате показатель 'размер библиотеки' в отчете о бенчмарке практически равен 0. Генерация кода
|
|
205
|
+
> Примечание по paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате показатель 'размер библиотеки' в отчете о бенчмарке практически равен 0. Генерация кода - это хорошо, так как используемая функция будет включать только необходимую логику (все префиксы против отсутствия префиксов, куки против хранилища и т.д.). В сравнении с этим, Intlayer выполняет фильтрацию с помощью внедрения переменных окружения в сборку, чтобы заставить сборщик исключить контент в зависимости от логики. Благодаря этому paraglide и intlayer оказываются в 6-10 раз легче, чем i18next или next-intl.
|
|
197
206
|
|
|
198
|
-
### 3
|
|
207
|
+
### 3 - Приемлемые решения
|
|
199
208
|
|
|
200
209
|
**(Tolgee)** (`@tolgee/react@7.0.0`):
|
|
201
210
|
|
|
@@ -203,7 +212,7 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
203
212
|
|
|
204
213
|
**(Next Intl)** (`next-intl@4.9.1`):
|
|
205
214
|
|
|
206
|
-
`next-intl`
|
|
215
|
+
`next-intl` - самый модный вариант, который чаще всего продвигают AI-агенты, но, на мой взгляд, ошибочно. Начать работу легко. На практике оптимизация для ограничения утечек сложна. Сочетание динамической загрузки + пространств имен + типов TypeScript сильно замедляет разработку. Пакет также довольно тяжелый (~13 КБ для `NextIntlClientProvider` + `useTranslations`, что более чем в 2 раза больше `next-intlayer`). **next-intl** раньше блокировал статический рендеринг страниц Next.js. Он предоставляет помощник под названием `setRequestLocale()`. Кажется, это частично решено для централизованных файлов типа `en.json` / `fr.json`, но статический рендеринг все равно ломается, когда контент разделен на пространства имен, такие как `en/shared.json` / `fr/shared.json` / `es/shared.json`.
|
|
207
216
|
|
|
208
217
|
**(Next I18next)** (`next-i18next@16.0.5`):
|
|
209
218
|
|
|
@@ -219,11 +228,11 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
219
228
|
|
|
220
229
|
`Lingui` часто хвалят. Лично мне рабочий процесс с `lingui extract` / `lingui compile` показался более сложным, чем у альтернатив, без явных преимуществ. Я также заметил непоследовательный синтаксис, который путает AI (например, `t()`, `t''`, `i18n.t()`, `<Trans>`).
|
|
221
230
|
|
|
222
|
-
### 4
|
|
231
|
+
### 4 - Рекомендации
|
|
223
232
|
|
|
224
233
|
**(Next Translate)** (`next-translate@3.1.2`):
|
|
225
234
|
|
|
226
|
-
`next-translate`
|
|
235
|
+
`next-translate` - моя основная рекомендация, если вам нравится API в стиле `t()`. Он элегантен благодаря `next-translate-plugin`, загружая пространства имен через `getStaticProps` с помощью загрузчика Webpack / Turbopack. Это также самый легкий вариант (~2.5 КБ). Что касается пространств имен, их определение для каждой страницы или маршрута в конфиге хорошо продумано и проще в обслуживании, чем основные альтернативы, такие как **next-intl** или **next-i18next**. В версии `3.1.2` я заметил, что статический рендеринг не работал; Next.js откатывался к динамическому рендерингу.
|
|
227
236
|
|
|
228
237
|
**(Intlayer)** (`next-intlayer@8.7.12`):
|
|
229
238
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-05-18
|
|
4
4
|
title: Лучшее i18n решение для Solid в 2026 году - Отчет о бенчмарке
|
|
5
5
|
description: Сравните библиотеки интернационализации (i18n) для Solid, такие как solid-primitives, solid-i18next и Intlayer. Подробный отчет о производительности, размере бандла, утечках и реактивности.
|
|
6
6
|
keywords:
|
|
@@ -17,12 +17,15 @@ slugs:
|
|
|
17
17
|
author: Aymeric PINEAU
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.9.8
|
|
21
|
+
date: 2026-05-18
|
|
22
|
+
changes: "Добавить сравнение звезд GitHub"
|
|
20
23
|
- version: 8.7.12
|
|
21
24
|
date: 2026-01-06
|
|
22
25
|
changes: "Инициализация бенчмарка"
|
|
23
26
|
---
|
|
24
27
|
|
|
25
|
-
# Библиотеки i18n для Solid
|
|
28
|
+
# Библиотеки i18n для Solid - Отчет о бенчмарке 2026
|
|
26
29
|
|
|
27
30
|
Эта страница представляет собой отчет о бенчмарке i18n-решений для Solid.
|
|
28
31
|
|
|
@@ -54,7 +57,7 @@ history:
|
|
|
54
57
|
|
|
55
58
|
На практике в наименее оптимизированных реализациях интернационализированная страница может оказаться в несколько раз тяжелее версии без i18n.
|
|
56
59
|
|
|
57
|
-
Другой аспект
|
|
60
|
+
Другой аспект - это опыт разработчика: то, как вы объявляете контент, типы, организацию пространств имен, динамическую загрузку и реактивность при смене локали.
|
|
58
61
|
|
|
59
62
|
## TL;DR
|
|
60
63
|
|
|
@@ -98,7 +101,7 @@ history:
|
|
|
98
101
|
- `solid-i18next` (v17.0.2)
|
|
99
102
|
- `@inlang/paraglide-js` (v2.17.0)
|
|
100
103
|
|
|
101
|
-
Фреймворк
|
|
104
|
+
Фреймворк - `Solid` с мультиязычным приложением из **10 страниц** и **10 языков**.
|
|
102
105
|
|
|
103
106
|
Мы сравнили **четыре стратегии загрузки**:
|
|
104
107
|
|
|
@@ -114,13 +117,19 @@ history:
|
|
|
114
117
|
- **Локальная статическая (Scoped static)**: Позволяет организовать код (логическое разделение) без сложных дополнительных сетевых запросов.
|
|
115
118
|
- **Локальная динамическая (Scoped dynamic)**: Лучший подход для _разделения кода_ и производительности. Минимизирует использование памяти, загружая только то, что нужно для текущего представления и активной локали.
|
|
116
119
|
|
|
120
|
+
## Звезды на GitHub
|
|
121
|
+
|
|
122
|
+
Звезды на GitHub - это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
123
|
+
|
|
124
|
+
[](https://www.star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
|
|
125
|
+
|
|
117
126
|
## Результаты в деталях
|
|
118
127
|
|
|
119
|
-
### 1
|
|
128
|
+
### 1 - Решения, которых следует избегать
|
|
120
129
|
|
|
121
130
|
> В экосистеме Solid нет однозначных решений, которых следует избегать.
|
|
122
131
|
|
|
123
|
-
### 2
|
|
132
|
+
### 2 - Приемлемые решения
|
|
124
133
|
|
|
125
134
|
**(solid-i18next)** (`solid-i18next@17.0.2`):
|
|
126
135
|
|
|
@@ -141,7 +150,7 @@ Solid primitive чрезвычайно легкий и эффективный.
|
|
|
141
150
|
Лично мне не нравится необходимость регенерировать JS-файлы перед каждым пушем, что создает постоянный риск конфликтов при слиянии в PR.
|
|
142
151
|
Наконец, по сравнению с другими решениями, Paraglide не использует стор (например, Solid signal) для получения текущей локали для рендеринга. Для каждого обработанного узла он запрашивает локаль из localStorage / куки и т.д. Это приводит к выполнению ненужной логики, что влияет на реактивность компонентов.
|
|
143
152
|
|
|
144
|
-
### 3
|
|
153
|
+
### 3 - Рекомендации
|
|
145
154
|
|
|
146
155
|
**(Intlayer)** (`solid-intlayer@8.7.12`):
|
|
147
156
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-05-18
|
|
4
4
|
title: Лучшее i18n решение для Svelte в 2026 году - Отчет о бенчмарке
|
|
5
5
|
description: Сравните библиотеки интернационализации (i18n) для Svelte, такие как svelte-i18n, Paraglide и Intlayer. Подробный отчет о производительности, размере бандла, утечках и реактивности.
|
|
6
6
|
keywords:
|
|
@@ -17,12 +17,15 @@ slugs:
|
|
|
17
17
|
author: Aymeric PINEAU
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.9.8
|
|
21
|
+
date: 2026-05-18
|
|
22
|
+
changes: "Добавить сравнение звезд GitHub"
|
|
20
23
|
- version: 8.7.12
|
|
21
24
|
date: 2026-01-06
|
|
22
25
|
changes: "Инициализация бенчмарка"
|
|
23
26
|
---
|
|
24
27
|
|
|
25
|
-
# Библиотеки i18n для Svelte
|
|
28
|
+
# Библиотеки i18n для Svelte - Отчет о бенчмарке 2026
|
|
26
29
|
|
|
27
30
|
Эта страница представляет собой отчет о бенчмарке i18n-решений для Svelte.
|
|
28
31
|
|
|
@@ -55,7 +58,7 @@ style="border:none;"
|
|
|
55
58
|
|
|
56
59
|
На практике в наименее оптимизированных реализациях интернационализированная страница может оказаться в несколько раз тяжелее версии без i18n.
|
|
57
60
|
|
|
58
|
-
Другой аспект
|
|
61
|
+
Другой аспект - это опыт разработчика: то, как вы объявляете контент, типы, организацию пространств имен, динамическую загрузку и реактивность при смене локали.
|
|
59
62
|
|
|
60
63
|
## TL;DR
|
|
61
64
|
|
|
@@ -97,7 +100,7 @@ style="border:none;"
|
|
|
97
100
|
- `svelte-i18n` (v4.0.1)
|
|
98
101
|
- `@inlang/paraglide-js` (v2.17.0)
|
|
99
102
|
|
|
100
|
-
Фреймворк
|
|
103
|
+
Фреймворк - `Svelte` с мультиязычным приложением из **10 страниц** и **10 языков**.
|
|
101
104
|
|
|
102
105
|
Мы сравнили **четыре стратегии загрузки**:
|
|
103
106
|
|
|
@@ -113,13 +116,19 @@ style="border:none;"
|
|
|
113
116
|
- **Локальная статическая (Scoped static)**: Позволяет организовать код (логическое разделение) без сложных дополнительных сетевых запросов.
|
|
114
117
|
- **Локальная динамическая (Scoped dynamic)**: Лучший подход для _разделения кода_ и производительности. Минимизирует использование памяти, загружая только то, что нужно для текущего представления и активной локали.
|
|
115
118
|
|
|
119
|
+
## Звезды на GitHub
|
|
120
|
+
|
|
121
|
+
Звезды на GitHub - это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
122
|
+
|
|
123
|
+
[](https://www.star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
124
|
+
|
|
116
125
|
## Результаты в деталях
|
|
117
126
|
|
|
118
|
-
### 1
|
|
127
|
+
### 1 - Решения, которых следует избегать
|
|
119
128
|
|
|
120
129
|
> В экосистеме Svelte нет однозначных решений, которых следует избегать.
|
|
121
130
|
|
|
122
|
-
### 2
|
|
131
|
+
### 2 - Приемлемые решения
|
|
123
132
|
|
|
124
133
|
**(Paraglide)** (`@inlang/paraglide-js@2.17.0`):
|
|
125
134
|
|
|
@@ -129,13 +138,13 @@ style="border:none;"
|
|
|
129
138
|
Лично мне не нравится необходимость регенерировать JS-файлы перед каждым пушем, что создает постоянный риск конфликтов при слиянии в PR. Инструмент также кажется более ориентированным на Vite, чем на Next.js.
|
|
130
139
|
Наконец, по сравнению с другими решениями, Paraglide не использует стор (например, Svelte store) для получения поточної локали для рендеринга. Для каждого обработанного узла он запрашивает локаль из localStorage / куки и т.д. Это приводит к выполнению ненужной логики, что влияет на реактивность компонентов.
|
|
131
140
|
|
|
132
|
-
> Примечание о paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате чего метрика 'размер библиотеки' в отчете бенчмарка практически равна 0. Генерация кода
|
|
141
|
+
> Примечание о paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате чего метрика 'размер библиотеки' в отчете бенчмарка практически равна 0. Генерация кода - это хорошо, потому что используемая функция будет включать только необходимую логику (полный префикс против отсутствия префикса, куки против хранилища и т. д.). Для сравнения, Intlayer выполняет эту фильтрацию с помощью внедрения переменных окружения во время сборки, чтобы заставить бандлер выполнять tree-shaking контента в зависимости от логики. Благодаря этому paraglide и intlayer в итоге оказываются в 6-10 раз легче, чем i18next или next-intl.
|
|
133
142
|
|
|
134
143
|
**(svelte-i18n)** (`svelte-i18n@3.4.0`):
|
|
135
144
|
|
|
136
145
|
Это решение отвечает всем потребностям i18n в Svelte-проекте. Но, как и в случае с i18next или другими основными решениями i18n, оно немного тяжеловато (~15.9 КБ, что примерно в 7 раз больше `svelte-intlayer`).
|
|
137
146
|
|
|
138
|
-
### 3
|
|
147
|
+
### 3 - Рекомендации
|
|
139
148
|
|
|
140
149
|
**(Intlayer)** (`svelte-intlayer@8.7.12`):
|
|
141
150
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-05-18
|
|
4
4
|
title: Лучшее решение i18n для TanStack Start в 2026 году - Отчет о бенчмарке
|
|
5
5
|
description: Сравните библиотеки интернационализации для TanStack Start, такие как react-i18next, use-intl и Intlayer. Подробный отчет о производительности, размере бандла, утечках и реактивности.
|
|
6
6
|
keywords:
|
|
@@ -17,12 +17,15 @@ slugs:
|
|
|
17
17
|
author: Aymeric PINEAU
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.9.8
|
|
21
|
+
date: 2026-05-18
|
|
22
|
+
changes: "Добавить сравнение звезд GitHub"
|
|
20
23
|
- version: 8.7.5
|
|
21
24
|
date: 2026-01-06
|
|
22
25
|
changes: "Инициализация бенчмарка"
|
|
23
26
|
---
|
|
24
27
|
|
|
25
|
-
# Библиотеки i18n для TanStack Start
|
|
28
|
+
# Библиотеки i18n для TanStack Start - Отчет о бенчмарке 2026
|
|
26
29
|
|
|
27
30
|
Эта страница представляет собой отчет о бенчмарке i18n-решений для TanStack Start.
|
|
28
31
|
|
|
@@ -55,7 +58,7 @@ history:
|
|
|
55
58
|
|
|
56
59
|
На практике в наименее оптимизированных реализациях интернационализированная страница может оказаться в несколько раз тяжелее версии без i18n.
|
|
57
60
|
|
|
58
|
-
Другой аспект
|
|
61
|
+
Другой аспект - это опыт разработчика: то, как вы объявляете контент, типы, организацию пространств имен, динамическую загрузку и реактивность при смене локали.
|
|
59
62
|
|
|
60
63
|
## TL;DR
|
|
61
64
|
|
|
@@ -105,7 +108,7 @@ history:
|
|
|
105
108
|
- `gt-react` (vlatest)
|
|
106
109
|
- `lingo.dev` (v0.133.9)
|
|
107
110
|
|
|
108
|
-
Фреймворк
|
|
111
|
+
Фреймворк - `TanStack Start` с мультиязычным приложением из **10 страниц** и **10 языков**.
|
|
109
112
|
|
|
110
113
|
Мы сравнили **четыре стратегии загрузки**:
|
|
111
114
|
|
|
@@ -121,9 +124,15 @@ history:
|
|
|
121
124
|
- **Локальная статическая (Scoped static)**: Позволяет организовать код (логическое разделение) без сложных дополнительных сетевых запросов.
|
|
122
125
|
- **Локальная динамическая (Scoped dynamic)**: Лучший подход для _разделения кода_ и производительности. Минимизирует использование памяти, загружая только то, что нужно для текущего представления и активной локали.
|
|
123
126
|
|
|
127
|
+
## Звезды на GitHub
|
|
128
|
+
|
|
129
|
+
Звезды на GitHub - это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
130
|
+
|
|
131
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&lingui/js-lingui&amannn/next-intl&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
132
|
+
|
|
124
133
|
## Результаты в деталях
|
|
125
134
|
|
|
126
|
-
### 1
|
|
135
|
+
### 1 - Решения, которых следует избегать
|
|
127
136
|
|
|
128
137
|
Некоторых решений, таких как `gt-react` или `lingo.dev`, явно стоит остерегаться. Они сочетают в себе привязку к вендору с загрязнением вашей кодовой базы. Хуже того: несмотря на многие часы попыток внедрить их, мне так и не удалось заставить их работать должным образом на TanStack Start (аналогично Next.js с `gt-next`).
|
|
129
138
|
|
|
@@ -145,19 +154,19 @@ history:
|
|
|
145
154
|
- При сборке он полностью удалял сгенерированные JSON-файлы, когда добавлялся новый контент. В результате всего несколько ключей могли стереть сотни существующих.
|
|
146
155
|
- Я столкнулся с проблемами реактивности в этой библиотеке на TanStack Start: при смене локали мне приходилось принудительно перерендеривать провайдер.
|
|
147
156
|
|
|
148
|
-
### 2
|
|
157
|
+
### 2 - Экспериментальные решения
|
|
149
158
|
|
|
150
159
|
**(Wuchale)** (`wuchale@0.22.11`):
|
|
151
160
|
|
|
152
161
|
Идея `Wuchale` интересна, но это пока не жизнеспособное решение. Я столкнулся с проблемами реактивности в этой библиотеке и был вынужден принудительно перерендеривать провайдер, чтобы приложение заработало на TanStack Start. Документация также довольно неясная, что затрудняет начало работы.
|
|
153
162
|
|
|
154
|
-
### 3
|
|
163
|
+
### 3 - Приемлемые решения
|
|
155
164
|
|
|
156
165
|
**(Paraglide)** (`@inlang/paraglide-js@2.15.1`):
|
|
157
166
|
|
|
158
167
|
`Paraglide` предлагает инновационный, хорошо продуманный подход. Тем не менее, в этом бенчмарке обещанный tree-shaking не сработал ни для моей реализации на Next.js, ни для TanStack Start. Процесс работы и DX также сложнее, чем у других вариантов. Лично я не в восторге от необходимости перегенерировать JS-файлы перед каждым пушем, что создает постоянный риск конфликтов при слиянии в PR.
|
|
159
168
|
|
|
160
|
-
> Примечание о paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате чего метрика 'размер библиотеки' в отчете бенчмарка практически равна 0. Генерация кода
|
|
169
|
+
> Примечание о paraglide: решение внедряет код в вашу кодовую базу для импорта, в результате чего метрика 'размер библиотеки' в отчете бенчмарка практически равна 0. Генерация кода - это хорошо, потому что используемая функция будет включать только необходимую логику (полный префикс против отсутствия префикса, куки против хранилища и т. д.). Для сравнения, Intlayer выполняет эту фильтрацию с помощью внедрения переменных окружения в сборку, чтобы заставить бандлер выполнять tree-shaking контента в зависимости от логики. Благодаря этому paraglide и intlayer в итоге оказываются в 6-10 раз легче, чем i18next или next-intl.
|
|
161
170
|
|
|
162
171
|
**(Tolgee)** (`@tolgee/react@7.0.0`):
|
|
163
172
|
|
|
@@ -167,7 +176,7 @@ history:
|
|
|
167
176
|
|
|
168
177
|
**(use-intl)** (`use-intl@4.9.1`):
|
|
169
178
|
|
|
170
|
-
`use-intl`
|
|
179
|
+
`use-intl` - самый модный представитель "intl" в экосистеме React (из того же семейства, что и `next-intl`), который часто продвигают AI-агенты, но, на мой взгляд, ошибочно в контексте производительности. Начать работу довольно просто. На практике процесс оптимизации и ограничения утечек довольно сложен. Аналогично, сочетание динамической загрузки + пространств имен + типов TypeScript сильно замедляет разработку.
|
|
171
180
|
|
|
172
181
|
На TanStack Start вы избегаете ловушек, специфичных для Next.js (`setRequestLocale`, статический рендеринг), но основная проблема та же: без строгой дисциплины бандл быстро переполняется сообщениями, а обслуживание пространств имен для каждого маршрута становится мучительным.
|
|
173
182
|
|
|
@@ -185,9 +194,9 @@ history:
|
|
|
185
194
|
|
|
186
195
|
**(react-intl)** (`react-intl@10.1.1`):
|
|
187
196
|
|
|
188
|
-
`react-intl`
|
|
197
|
+
`react-intl` - это производительная реализация от команды Format.js. DX остается многословным: `const intl = useIntl()` + `intl.formatMessage({ id: "xx.xx" })` добавляет сложности, лишней работы для JavaScript и привязывает глобальный экземппляр i18n ко многим узлам в дереве React.
|
|
189
198
|
|
|
190
|
-
### 4
|
|
199
|
+
### 4 - Рекомендации
|
|
191
200
|
|
|
192
201
|
В этом бенчмарке TanStack Start нет прямого эквивалента `next-translate` (плагин Next.js + `getStaticProps`). Для команд, которые действительно хотят API `t()` со зрелой экосистемой, `react-i18next` и `use-intl` остаются "разумным" выбором, но будьте готовы потратить много времени на оптимизацию, чтобы избежать утечек.
|
|
193
202
|
|
package/docs/ru/benchmark/vue.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-05-18
|
|
4
4
|
title: Лучшее i18n решение для Vue в 2026 году - Отчет о бенчмарке
|
|
5
5
|
description: Сравните библиотеки интернационализации (i18n) для Vue, такие как vue-i18n, fluent-vue и Intlayer. Подробный отчет о производительности, размере бандла, утечках и реактивности.
|
|
6
6
|
keywords:
|
|
@@ -17,12 +17,15 @@ slugs:
|
|
|
17
17
|
author: Aymeric PINEAU
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.9.8
|
|
21
|
+
date: 2026-05-18
|
|
22
|
+
changes: "Добавить сравнение звезд GitHub"
|
|
20
23
|
- version: 8.7.12
|
|
21
24
|
date: 2026-01-06
|
|
22
25
|
changes: "Инициализация бенчмарка"
|
|
23
26
|
---
|
|
24
27
|
|
|
25
|
-
# Библиотеки i18n для Vue
|
|
28
|
+
# Библиотеки i18n для Vue - Отчет о бенчмарке 2026
|
|
26
29
|
|
|
27
30
|
Эта страница представляет собой отчет о бенчмарке i18n-решений для Vue.
|
|
28
31
|
|
|
@@ -55,7 +58,7 @@ style="border:none;"
|
|
|
55
58
|
|
|
56
59
|
На практике в наименее оптимизированных реализациях интернационализированная страница может оказаться в несколько раз тяжелее версии без i18n.
|
|
57
60
|
|
|
58
|
-
Другой аспект
|
|
61
|
+
Другой аспект - это опыт разработчика: то, как вы объявляете контент, типы, организацию пространств имен, динамическую загрузку и реактивность при смене локали.
|
|
59
62
|
|
|
60
63
|
## TL;DR
|
|
61
64
|
|
|
@@ -97,7 +100,7 @@ style="border:none;"
|
|
|
97
100
|
- `vue-i18n` (v11.4.0)
|
|
98
101
|
- `fluent-vue` (v3.8.2)
|
|
99
102
|
|
|
100
|
-
Фреймворк
|
|
103
|
+
Фреймворк - `Vue` с мультиязычным приложением из **10 страниц** и **10 языков**.
|
|
101
104
|
|
|
102
105
|
Мы сравнили **четыре стратегии загрузки**:
|
|
103
106
|
|
|
@@ -117,9 +120,9 @@ style="border:none;"
|
|
|
117
120
|
|
|
118
121
|
Я запускал одно и то же мультиязычное приложение в реальном браузере для каждого стека, а затем фиксировал, что на самом деле передавалось по сети и сколько времени это занимало. Размеры указаны **после обычного веб-сжатия**, так как это ближе к тому, что люди реально скачивают.
|
|
119
122
|
|
|
120
|
-
- **Размер библиотеки интернационализации**: После сборки, tree-shaking и минификации, размер библиотеки i18n
|
|
123
|
+
- **Размер библиотеки интернационализации**: После сборки, tree-shaking и минификации, размер библиотеки i18n - это размер кода провайдеров + композиблов (composables) в пустом компоненте. Это не включает загрузку файлов перевода. Это показывает, насколько "дорогая" библиотека еще до появления вашего контента.
|
|
121
124
|
|
|
122
|
-
- **JavaScript на страницу**: Для каждого тестового маршрута
|
|
125
|
+
- **JavaScript на страницу**: Для каждого тестового маршрута - сколько скриптов загружает браузер во время посещения, усреднено по страницам теста (и по локалям). Тяжелые страницы - это медленные страницы.
|
|
123
126
|
|
|
124
127
|
- **Утечка из других локалей (Leakage)**: Это контент той же страницы, но на другом языке, который по ошибке загружается на проверяемую страницу. Этот контент является лишним и его следует избегать (например, контент страницы `/fr/about` в бандле страницы `/en/about`).
|
|
125
128
|
|
|
@@ -127,7 +130,7 @@ style="border:none;"
|
|
|
127
130
|
|
|
128
131
|
- **Средний размер бандла компонента**: Отдельные UI-элементы измеряются **по одному**, а не прячутся внутри одного гигантского общего показателя приложения. Это показывает, "раздувает" ли интернационализация обычные компоненты. Например, если ваш компонент перерендерится, он будет загружать все эти данные из памяти. Привязка гигантского JSON к любому компоненту похожа на подключение большого хранилища неиспользуемых данных, что замедляет производительность ваших компонентов.
|
|
129
132
|
|
|
130
|
-
- **Скорость реакции на переключение языка**: Я переключаю язык через собственный интерфейс приложения и замеряю время до момента, когда страница явно обновилась
|
|
133
|
+
- **Скорость реакции на переключение языка**: Я переключаю язык через собственный интерфейс приложения и замеряю время до момента, когда страница явно обновилась - то, что заметит посетитель.
|
|
131
134
|
|
|
132
135
|
- **Работа рендеринга после смены языка**: Более узкий показатель: сколько усилий затратил интерфейс на перерисовку для нового языка после начала переключения. Полезно, когда "ощутимое" время и стоимость работы фреймворка различаются.
|
|
133
136
|
|
|
@@ -135,13 +138,19 @@ style="border:none;"
|
|
|
135
138
|
|
|
136
139
|
- **Время гидратации (Hydration)**: Время, которое клиент тратит на превращение HTML от сервера в интерактивный интерфейс. Прочерк в таблицах означает, что данная реализация не предоставила надежных данных о гидратации в этом тесте.
|
|
137
140
|
|
|
141
|
+
## Звезды на GitHub
|
|
142
|
+
|
|
143
|
+
Звезды на GitHub - это сильный индикатор популярности проекта, доверия сообщества и долгосрочной актуальности. Хотя они не являются прямым показателем технического качества, они отражают, сколько разработчиков считают проект полезным, следят за его прогрессом и, вероятно, будут его использовать. Для оценки ценности проекта звезды помогают сравнивать популярность альтернатив и дают представление о росте экосистемы.
|
|
144
|
+
|
|
145
|
+
[](https://www.star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
|
|
146
|
+
|
|
138
147
|
## Результаты в деталях
|
|
139
148
|
|
|
140
|
-
### 1
|
|
149
|
+
### 1 - Решения, которых следует избегать
|
|
141
150
|
|
|
142
151
|
> В экосистеме Vue нет однозначных решений, которых следует избегать.
|
|
143
152
|
|
|
144
|
-
### 2
|
|
153
|
+
### 2 - Приемлемые решения
|
|
145
154
|
|
|
146
155
|
**(vue-i18n)** (`vue-i18n@11.4.0`):
|
|
147
156
|
|
|
@@ -153,7 +162,7 @@ style="border:none;"
|
|
|
153
162
|
|
|
154
163
|
- **fluent-vue** предлагает попытку инновации через формат .ftl. Организация сообщений отличная, с ней легче начать работу. Но на практике отсутствие типобезопасности повышает риск ошибок и может быстро стать трудозатратным при отладке. Более того, это решение загружает сообщения с помощью плагина vite, который принудительно загружает весь контент на всех языках в каждую страницу. Кроме того, это чрезвычайно тяжелое решение (~92.7 КБ, что примерно в 34 раза больше `vue-intlayer`).
|
|
155
164
|
|
|
156
|
-
### 3
|
|
165
|
+
### 3 - Рекомендации
|
|
157
166
|
|
|
158
167
|
**(Intlayer)** (`vue-intlayer@8.7.12`):
|
|
159
168
|
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Сканирование бандла
|
|
37
37
|
|
|
38
|
-
Анализ бандла
|
|
38
|
+
Анализ бандла - это первый шаг к выявлению "тяжелых" JSON-файлов и возможностей разделения кода. Эти инструменты генерируют визуальную древовидную карту (treemap) скомпилированного кода вашего приложения, позволяя вам точно увидеть, какие библиотеки занимают больше всего места.
|
|
39
39
|
|
|
40
40
|
<Tabs>
|
|
41
41
|
<Tab value="vite">
|