@intlayer/docs 8.12.1 → 8.12.3
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/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +121 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +120 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts.map +1 -1
- package/dist/types/frequentQuestions.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +6 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/legal.d.ts.map +1 -1
- package/docs/ar/bundle_optimization.md +250 -102
- package/docs/ar/configuration.md +10 -9
- package/docs/ar/intlayer_with_adonisjs.md +1 -1
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular_19.md +1 -1
- package/docs/ar/intlayer_with_angular_21.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_astro_lit.md +1 -1
- package/docs/ar/intlayer_with_astro_preact.md +1 -1
- package/docs/ar/intlayer_with_astro_react.md +1 -1
- package/docs/ar/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_fastify.md +1 -1
- package/docs/ar/intlayer_with_hono.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +1 -1
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vanilla.md +1 -1
- 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+solid.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +1 -1
- package/docs/ar/intlayer_with_vite+vanilla.md +1 -1
- package/docs/ar/intlayer_with_vite+vue.md +1 -1
- package/docs/bn/bundle_optimization.md +252 -104
- package/docs/bn/configuration.md +10 -9
- package/docs/bn/intlayer_with_angular_21.md +1 -1
- package/docs/bn/intlayer_with_fastify.md +1 -1
- package/docs/bn/intlayer_with_hono.md +1 -1
- package/docs/bn/intlayer_with_vanilla.md +1 -1
- package/docs/bn/intlayer_with_vite+lit.md +1 -1
- package/docs/bn/intlayer_with_vite+vanilla.md +1 -1
- package/docs/cs/bundle_optimization.md +253 -105
- package/docs/cs/configuration.md +10 -9
- package/docs/cs/intlayer_with_angular_21.md +1 -1
- package/docs/cs/intlayer_with_fastify.md +1 -1
- package/docs/cs/intlayer_with_hono.md +1 -1
- package/docs/cs/intlayer_with_vanilla.md +1 -1
- package/docs/cs/intlayer_with_vite+lit.md +1 -1
- package/docs/cs/intlayer_with_vite+vanilla.md +1 -1
- package/docs/de/bundle_optimization.md +245 -97
- package/docs/de/configuration.md +10 -9
- package/docs/de/intlayer_with_adonisjs.md +1 -1
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular_19.md +1 -1
- package/docs/de/intlayer_with_angular_21.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_astro_lit.md +1 -1
- package/docs/de/intlayer_with_astro_preact.md +1 -1
- package/docs/de/intlayer_with_astro_react.md +1 -1
- package/docs/de/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_fastify.md +1 -1
- package/docs/de/intlayer_with_hono.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +1 -1
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/de/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vanilla.md +1 -1
- package/docs/de/intlayer_with_vite+lit.md +1 -1
- package/docs/de/intlayer_with_vite+preact.md +1 -1
- package/docs/de/intlayer_with_vite+react.md +1 -1
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +1 -1
- package/docs/de/intlayer_with_vite+vanilla.md +1 -1
- package/docs/de/intlayer_with_vite+vue.md +1 -1
- package/docs/de/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/de/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/de/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/de/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/en/bundle_optimization.md +172 -49
- package/docs/en/configuration.md +10 -9
- package/docs/en/intlayer_with_adonisjs.md +1 -1
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular_19.md +1 -1
- package/docs/en/intlayer_with_angular_21.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_astro_lit.md +1 -1
- package/docs/en/intlayer_with_astro_preact.md +1 -1
- package/docs/en/intlayer_with_astro_react.md +1 -1
- package/docs/en/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_fastify.md +1 -1
- package/docs/en/intlayer_with_hono.md +1 -1
- package/docs/en/intlayer_with_nestjs.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_16.md +1 -1
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/en/intlayer_with_nuxt.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_tanstack+solid.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vanilla.md +1 -1
- package/docs/en/intlayer_with_vite+lit.md +1 -1
- 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+solid.md +1 -1
- package/docs/en/intlayer_with_vite+svelte.md +1 -1
- package/docs/en/intlayer_with_vite+vanilla.md +1 -1
- package/docs/en/intlayer_with_vite+vue.md +1 -1
- package/docs/en/migration_from_i18next_to_intlayer.md +316 -0
- package/docs/en/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/en/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/en/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/en-GB/bundle_optimization.md +230 -82
- package/docs/en-GB/configuration.md +10 -9
- package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular_19.md +1 -1
- package/docs/en-GB/intlayer_with_angular_21.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
- package/docs/en-GB/intlayer_with_astro_preact.md +1 -1
- package/docs/en-GB/intlayer_with_astro_react.md +1 -1
- package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_fastify.md +1 -1
- package/docs/en-GB/intlayer_with_hono.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_vite+lit.md +1 -1
- 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+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/es/bundle_optimization.md +250 -102
- package/docs/es/configuration.md +10 -9
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular_19.md +1 -1
- package/docs/es/intlayer_with_angular_21.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_astro_lit.md +1 -1
- package/docs/es/intlayer_with_astro_preact.md +1 -1
- package/docs/es/intlayer_with_astro_react.md +1 -1
- package/docs/es/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +1 -1
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/es/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vanilla.md +1 -1
- package/docs/es/intlayer_with_vite+lit.md +1 -1
- package/docs/es/intlayer_with_vite+preact.md +1 -1
- package/docs/es/intlayer_with_vite+react.md +1 -1
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +1 -1
- package/docs/es/intlayer_with_vite+vanilla.md +1 -1
- package/docs/es/intlayer_with_vite+vue.md +1 -1
- package/docs/es/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/es/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/es/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/es/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/es/packages/next-intlayer/index.md +1 -1
- package/docs/es/packages/react-intlayer/index.md +1 -1
- package/docs/fr/bundle_optimization.md +223 -75
- package/docs/fr/configuration.md +10 -9
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular_19.md +1 -1
- package/docs/fr/intlayer_with_angular_21.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_astro_lit.md +1 -1
- package/docs/fr/intlayer_with_astro_preact.md +1 -1
- package/docs/fr/intlayer_with_astro_react.md +1 -1
- package/docs/fr/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +1 -1
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vanilla.md +1 -1
- package/docs/fr/intlayer_with_vite+lit.md +1 -1
- package/docs/fr/intlayer_with_vite+preact.md +1 -1
- package/docs/fr/intlayer_with_vite+react.md +1 -1
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +1 -1
- package/docs/fr/intlayer_with_vite+vanilla.md +1 -1
- package/docs/fr/intlayer_with_vite+vue.md +1 -1
- package/docs/fr/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/fr/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/fr/packages/react-intlayer/index.md +1 -1
- package/docs/hi/bundle_optimization.md +253 -105
- package/docs/hi/configuration.md +10 -9
- package/docs/hi/intlayer_with_adonisjs.md +1 -1
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular_19.md +1 -1
- package/docs/hi/intlayer_with_angular_21.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_astro_lit.md +1 -1
- package/docs/hi/intlayer_with_astro_preact.md +1 -1
- package/docs/hi/intlayer_with_astro_react.md +1 -1
- package/docs/hi/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_fastify.md +1 -1
- package/docs/hi/intlayer_with_hono.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +1 -1
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vanilla.md +1 -1
- package/docs/hi/intlayer_with_vite+lit.md +1 -1
- package/docs/hi/intlayer_with_vite+preact.md +1 -1
- package/docs/hi/intlayer_with_vite+react.md +1 -1
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +1 -1
- package/docs/hi/intlayer_with_vite+vanilla.md +1 -1
- package/docs/hi/intlayer_with_vite+vue.md +1 -1
- package/docs/hi/packages/intlayer/index.md +1 -1
- package/docs/id/bundle_optimization.md +258 -110
- package/docs/id/configuration.md +10 -9
- package/docs/id/intlayer_with_adonisjs.md +1 -1
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular_19.md +1 -1
- package/docs/id/intlayer_with_angular_21.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_astro_lit.md +1 -1
- package/docs/id/intlayer_with_astro_preact.md +1 -1
- package/docs/id/intlayer_with_astro_react.md +1 -1
- package/docs/id/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_fastify.md +1 -1
- package/docs/id/intlayer_with_hono.md +1 -1
- package/docs/id/intlayer_with_nestjs.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_no_locale_path.md +1 -1
- package/docs/id/intlayer_with_nuxt.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_tanstack+solid.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vanilla.md +1 -1
- package/docs/id/intlayer_with_vite+lit.md +1 -1
- 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+solid.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +1 -1
- package/docs/id/intlayer_with_vite+vanilla.md +1 -1
- package/docs/id/intlayer_with_vite+vue.md +1 -1
- package/docs/it/bundle_optimization.md +249 -103
- package/docs/it/configuration.md +10 -9
- package/docs/it/intlayer_with_adonisjs.md +1 -1
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular_19.md +1 -1
- package/docs/it/intlayer_with_angular_21.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_astro_lit.md +1 -1
- package/docs/it/intlayer_with_astro_preact.md +1 -1
- package/docs/it/intlayer_with_astro_react.md +1 -1
- package/docs/it/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_fastify.md +1 -1
- package/docs/it/intlayer_with_hono.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +1 -1
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/it/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vanilla.md +1 -1
- package/docs/it/intlayer_with_vite+lit.md +1 -1
- package/docs/it/intlayer_with_vite+preact.md +1 -1
- package/docs/it/intlayer_with_vite+react.md +1 -1
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +1 -1
- package/docs/it/intlayer_with_vite+vanilla.md +1 -1
- package/docs/it/intlayer_with_vite+vue.md +1 -1
- package/docs/it/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/it/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/it/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/it/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/ja/bundle_optimization.md +245 -97
- package/docs/ja/configuration.md +10 -9
- package/docs/ja/intlayer_with_adonisjs.md +1 -1
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular_19.md +1 -1
- package/docs/ja/intlayer_with_angular_21.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_astro_lit.md +1 -1
- package/docs/ja/intlayer_with_astro_preact.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_fastify.md +1 -1
- package/docs/ja/intlayer_with_hono.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +1 -1
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.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 +1 -1
- package/docs/ja/intlayer_with_vite+lit.md +1 -1
- package/docs/ja/intlayer_with_vite+solid.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +1 -1
- package/docs/ja/intlayer_with_vite+vanilla.md +1 -1
- package/docs/ja/intlayer_with_vite+vue.md +1 -1
- package/docs/ja/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/ja/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/ko/bundle_optimization.md +253 -105
- package/docs/ko/configuration.md +10 -9
- package/docs/ko/intlayer_with_adonisjs.md +1 -1
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular_19.md +1 -1
- package/docs/ko/intlayer_with_angular_21.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_astro_lit.md +1 -1
- package/docs/ko/intlayer_with_astro_preact.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_fastify.md +1 -1
- package/docs/ko/intlayer_with_hono.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- 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_no_locale_path.md +1 -1
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vanilla.md +1 -1
- package/docs/ko/intlayer_with_vite+lit.md +1 -1
- package/docs/ko/intlayer_with_vite+preact.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +1 -1
- package/docs/ko/intlayer_with_vite+vanilla.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/ko/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/nl/bundle_optimization.md +249 -101
- package/docs/nl/configuration.md +10 -9
- package/docs/nl/intlayer_with_angular_21.md +1 -1
- package/docs/nl/intlayer_with_fastify.md +1 -1
- package/docs/nl/intlayer_with_hono.md +1 -1
- package/docs/nl/intlayer_with_vanilla.md +1 -1
- package/docs/nl/intlayer_with_vite+lit.md +1 -1
- package/docs/nl/intlayer_with_vite+vanilla.md +1 -1
- package/docs/pl/bundle_optimization.md +258 -111
- package/docs/pl/configuration.md +10 -9
- package/docs/pl/intlayer_with_adonisjs.md +1 -1
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular_19.md +1 -1
- package/docs/pl/intlayer_with_angular_21.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_astro_lit.md +1 -1
- package/docs/pl/intlayer_with_astro_preact.md +1 -1
- package/docs/pl/intlayer_with_astro_react.md +1 -1
- package/docs/pl/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_fastify.md +1 -1
- package/docs/pl/intlayer_with_hono.md +1 -1
- package/docs/pl/intlayer_with_nestjs.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_no_locale_path.md +1 -1
- package/docs/pl/intlayer_with_nuxt.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_tanstack+solid.md +1 -1
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vanilla.md +1 -1
- package/docs/pl/intlayer_with_vite+lit.md +1 -1
- package/docs/pl/intlayer_with_vite+preact.md +1 -1
- package/docs/pl/intlayer_with_vite+react.md +1 -1
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +1 -1
- package/docs/pl/intlayer_with_vite+vanilla.md +1 -1
- package/docs/pl/intlayer_with_vite+vue.md +1 -1
- package/docs/pt/bundle_optimization.md +256 -115
- package/docs/pt/configuration.md +10 -9
- package/docs/pt/intlayer_with_adonisjs.md +1 -1
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular_19.md +1 -1
- package/docs/pt/intlayer_with_angular_21.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 +1 -1
- package/docs/pt/intlayer_with_astro_react.md +1 -1
- package/docs/pt/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_fastify.md +1 -1
- package/docs/pt/intlayer_with_hono.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +1 -1
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.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 +1 -1
- package/docs/pt/intlayer_with_vite+lit.md +1 -1
- package/docs/pt/intlayer_with_vite+preact.md +1 -1
- package/docs/pt/intlayer_with_vite+react.md +1 -1
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +1 -1
- package/docs/pt/intlayer_with_vite+vanilla.md +1 -1
- package/docs/pt/intlayer_with_vite+vue.md +1 -1
- package/docs/pt/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/pt/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/ru/bundle_optimization.md +253 -105
- package/docs/ru/configuration.md +10 -9
- package/docs/ru/intlayer_with_adonisjs.md +1 -1
- package/docs/ru/intlayer_with_analog.md +1 -1
- package/docs/ru/intlayer_with_angular_19.md +1 -1
- package/docs/ru/intlayer_with_angular_21.md +1 -1
- package/docs/ru/intlayer_with_astro.md +1 -1
- package/docs/ru/intlayer_with_astro_lit.md +1 -1
- package/docs/ru/intlayer_with_astro_preact.md +1 -1
- package/docs/ru/intlayer_with_astro_react.md +1 -1
- package/docs/ru/intlayer_with_astro_solid.md +1 -1
- package/docs/ru/intlayer_with_astro_svelte.md +1 -1
- package/docs/ru/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ru/intlayer_with_astro_vue.md +1 -1
- package/docs/ru/intlayer_with_create_react_app.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_fastify.md +1 -1
- package/docs/ru/intlayer_with_hono.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +1 -1
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/ru/intlayer_with_tanstack.md +1 -1
- package/docs/ru/intlayer_with_vanilla.md +1 -1
- package/docs/ru/intlayer_with_vite+lit.md +1 -1
- package/docs/ru/intlayer_with_vite+preact.md +1 -1
- package/docs/ru/intlayer_with_vite+react.md +1 -1
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +1 -1
- package/docs/ru/intlayer_with_vite+vanilla.md +1 -1
- package/docs/ru/intlayer_with_vite+vue.md +1 -1
- package/docs/ru/migration_from_i18next_to_intlayer.md +313 -0
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +338 -0
- package/docs/ru/migration_from_next-intl_to_intlayer.md +347 -0
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +367 -0
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +342 -0
- package/docs/tr/bundle_optimization.md +255 -107
- package/docs/tr/configuration.md +10 -9
- package/docs/tr/intlayer_with_adonisjs.md +1 -1
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular_19.md +1 -1
- package/docs/tr/intlayer_with_angular_21.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_astro_lit.md +1 -1
- package/docs/tr/intlayer_with_astro_preact.md +1 -1
- package/docs/tr/intlayer_with_astro_react.md +1 -1
- package/docs/tr/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_fastify.md +1 -1
- package/docs/tr/intlayer_with_hono.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +1 -1
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vanilla.md +1 -1
- package/docs/tr/intlayer_with_vite+lit.md +1 -1
- package/docs/tr/intlayer_with_vite+preact.md +1 -1
- package/docs/tr/intlayer_with_vite+react.md +1 -1
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +1 -1
- package/docs/tr/intlayer_with_vite+vanilla.md +1 -1
- package/docs/tr/intlayer_with_vite+vue.md +1 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +314 -0
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +339 -0
- package/docs/tr/migration_from_next-intl_to_intlayer.md +348 -0
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +312 -0
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +368 -0
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +343 -0
- package/docs/uk/bundle_optimization.md +250 -102
- package/docs/uk/configuration.md +10 -9
- package/docs/uk/intlayer_with_adonisjs.md +1 -1
- package/docs/uk/intlayer_with_analog.md +1 -1
- package/docs/uk/intlayer_with_angular_19.md +1 -1
- package/docs/uk/intlayer_with_angular_21.md +1 -1
- package/docs/uk/intlayer_with_astro.md +1 -1
- package/docs/uk/intlayer_with_astro_lit.md +1 -1
- package/docs/uk/intlayer_with_astro_preact.md +1 -1
- package/docs/uk/intlayer_with_astro_react.md +1 -1
- package/docs/uk/intlayer_with_astro_solid.md +1 -1
- package/docs/uk/intlayer_with_astro_svelte.md +1 -1
- package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
- package/docs/uk/intlayer_with_astro_vue.md +1 -1
- package/docs/uk/intlayer_with_create_react_app.md +1 -1
- package/docs/uk/intlayer_with_express.md +1 -1
- package/docs/uk/intlayer_with_fastify.md +1 -1
- package/docs/uk/intlayer_with_hono.md +1 -1
- package/docs/uk/intlayer_with_nestjs.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_no_locale_path.md +1 -1
- package/docs/uk/intlayer_with_nuxt.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_tanstack+solid.md +1 -1
- package/docs/uk/intlayer_with_tanstack.md +1 -1
- package/docs/uk/intlayer_with_vanilla.md +1 -1
- package/docs/uk/intlayer_with_vite+lit.md +1 -1
- package/docs/uk/intlayer_with_vite+preact.md +1 -1
- package/docs/uk/intlayer_with_vite+react.md +1 -1
- package/docs/uk/intlayer_with_vite+solid.md +1 -1
- package/docs/uk/intlayer_with_vite+svelte.md +1 -1
- package/docs/uk/intlayer_with_vite+vanilla.md +1 -1
- package/docs/uk/intlayer_with_vite+vue.md +1 -1
- package/docs/ur/bundle_optimization.md +257 -109
- package/docs/ur/configuration.md +10 -9
- package/docs/ur/intlayer_with_angular_21.md +1 -1
- package/docs/ur/intlayer_with_fastify.md +1 -1
- package/docs/ur/intlayer_with_hono.md +1 -1
- package/docs/ur/intlayer_with_vanilla.md +1 -1
- package/docs/ur/intlayer_with_vite+lit.md +1 -1
- package/docs/ur/intlayer_with_vite+vanilla.md +1 -1
- package/docs/vi/bundle_optimization.md +259 -111
- package/docs/vi/configuration.md +10 -9
- package/docs/vi/intlayer_with_adonisjs.md +1 -1
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular_19.md +1 -1
- package/docs/vi/intlayer_with_angular_21.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_astro_lit.md +1 -1
- package/docs/vi/intlayer_with_astro_preact.md +1 -1
- package/docs/vi/intlayer_with_astro_react.md +1 -1
- package/docs/vi/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_fastify.md +1 -1
- package/docs/vi/intlayer_with_hono.md +1 -1
- package/docs/vi/intlayer_with_nestjs.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_no_locale_path.md +1 -1
- package/docs/vi/intlayer_with_nuxt.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_tanstack+solid.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vanilla.md +1 -1
- package/docs/vi/intlayer_with_vite+lit.md +1 -1
- 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+solid.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +1 -1
- package/docs/vi/intlayer_with_vite+vanilla.md +1 -1
- package/docs/vi/intlayer_with_vite+vue.md +1 -1
- package/docs/zh/bundle_optimization.md +260 -112
- package/docs/zh/configuration.md +10 -9
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular_19.md +1 -1
- package/docs/zh/intlayer_with_angular_21.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_astro_lit.md +1 -1
- package/docs/zh/intlayer_with_astro_preact.md +1 -1
- package/docs/zh/intlayer_with_astro_react.md +1 -1
- package/docs/zh/intlayer_with_astro_solid.md +1 -1
- 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_create_react_app.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +1 -1
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1 -1
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- 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_tanstack+solid.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vanilla.md +1 -1
- package/docs/zh/intlayer_with_vite+lit.md +1 -1
- 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+solid.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +1 -1
- package/docs/zh/intlayer_with_vite+vanilla.md +1 -1
- package/docs/zh/intlayer_with_vite+vue.md +1 -1
- package/docs/zh-TW/bundle_optimization.md +602 -0
- package/docs/zh-TW/intlayer_with_angular_21.md +1 -1
- package/package.json +8 -8
- package/src/generated/docs.entry.ts +120 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-25
|
|
3
|
-
updatedAt: 2026-
|
|
4
|
-
title: i18n بنڈل سائز اور کارکردگی کی
|
|
5
|
-
description: انٹرنیشنلائزیشن (i18n) مواد کو
|
|
3
|
+
updatedAt: 2026-06-07
|
|
4
|
+
title: i18n بنڈل سائز اور کارکردگی کی آپٹیمائزیشن
|
|
5
|
+
description: انٹرنیشنلائزیشن (i18n) مواد کو آپٹیمائز کرکے اپنی ایپلیکیشن کے بنڈل سائز کو کم کریں۔ جانیں کہ Intlayer کے ساتھ ڈکشنریوں کے لیے ٹری شیکنگ (tree shaking) اور لیزی لوڈنگ (lazy loading) کا استعمال کیسے کریں۔
|
|
6
6
|
keywords:
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
7
|
+
- Bundle Optimisation
|
|
8
|
+
- Content Automation
|
|
9
|
+
- Dynamic Content
|
|
10
10
|
- Intlayer
|
|
11
11
|
- Next.js
|
|
12
12
|
- JavaScript
|
|
@@ -16,33 +16,36 @@ slugs:
|
|
|
16
16
|
- concept
|
|
17
17
|
- bundle-optimization
|
|
18
18
|
history:
|
|
19
|
+
- version: 8.12.0
|
|
20
|
+
date: 2026-06-07
|
|
21
|
+
changes: "Babel/Webpack کے لیے `intlayerPurgeBabelPlugin` اور `intlayerMinifyBabelPlugin` شامل کیا گیا؛ پلگ ان پائپ لائن کو واضح کیا گیا"
|
|
19
22
|
- version: 8.7.0
|
|
20
23
|
date: 2026-04-08
|
|
21
|
-
changes: "بلڈ کنفیگریشن میں `minify` اور `purge`
|
|
24
|
+
changes: "بلڈ کنفیگریشن میں `minify` اور `purge` آپشنز شامل کیے گئے"
|
|
22
25
|
---
|
|
23
26
|
|
|
24
|
-
# i18n بنڈل سائز اور کارکردگی کی
|
|
27
|
+
# i18n بنڈل سائز اور کارکردگی کی آپٹیمائزیشن
|
|
25
28
|
|
|
26
|
-
روایتی i18n
|
|
29
|
+
روایتی i18n سلوشنز جو JSON فائلوں پر انحصار کرتے ہیں، ان کے ساتھ ایک سب سے عام چیلنج مواد کے سائز کا انتظام (management) کرنا ہے۔ اگر ڈیویلپرز دستی (manually) طور پر مواد کو نیم اسپیسز (namespaces) میں الگ نہیں کرتے ہیں، تو صارفین اکثر ہر صفحے اور ممکنہ طور پر ہر زبان کے ترجمے ڈاؤن لوڈ کر لیتے ہیں، صرف ایک صفحہ دیکھنے کے لیے۔
|
|
27
30
|
|
|
28
|
-
مثال کے طور پر، 10 زبانوں میں ترجمہ شدہ 10 صفحات والی ایپلیکیشن کے نتیجے میں
|
|
31
|
+
مثال کے طور پر، 10 زبانوں میں ترجمہ شدہ 10 صفحات والی ایپلیکیشن کے نتیجے میں صارف 100 صفحات کے مواد کو ڈاؤن لوڈ کر سکتا ہے، حالانکہ اسے صرف **ایک** کی ضرورت ہوتی ہے (موجودہ زبان میں موجودہ صفحہ)۔ اس سے بینڈوڈتھ (bandwidth) ضائع ہوتی ہے اور لوڈ ہونے میں زیادہ وقت لگتا ہے۔
|
|
29
32
|
|
|
30
|
-
**Intlayer بلڈ ٹائم آپٹیمائزیشن کے ذریعے
|
|
33
|
+
**Intlayer اس مسئلے کو بلڈ ٹائم آپٹیمائزیشن کے ذریعے حل کرتا ہے۔** یہ آپ کے کوڈ کا تجزیہ (analyze) کرتا ہے تاکہ معلوم کیا جا سکے کہ ہر جزو (component) کے لیے بالکل کون سی ڈکشنریاں استعمال ہو رہی ہیں، اور آپ کے بنڈل میں صرف ضروری مواد کو دوبارہ انجیکٹ (re-inject) کرتا ہے۔
|
|
31
34
|
|
|
32
|
-
##
|
|
35
|
+
## فہرستِ مضامین
|
|
33
36
|
|
|
34
37
|
<TOC />
|
|
35
38
|
|
|
36
|
-
## اپنے بنڈل
|
|
39
|
+
## اپنے بنڈل کا تجزیہ کریں
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
"بھاری" JSON فائلوں اور کوڈ-اسپلٹنگ کے مواقع کی نشاندہی کرنے کا پہلا قدم آپ کے بنڈل کا تجزیہ کرنا ہے۔ یہ ٹولز آپ کی ایپلیکیشن کے مرتب شدہ (compiled) کوڈ کا ایک بصری ٹری میپ (treemap) تیار کرتے ہیں، جس سے آپ دیکھ سکتے ہیں کہ کون سی لائبریریاں سب سے زیادہ جگہ لے رہی ہیں۔
|
|
39
42
|
|
|
40
43
|
<Tabs>
|
|
41
44
|
<Tab value="vite">
|
|
42
45
|
|
|
43
46
|
### Vite / Rollup
|
|
44
47
|
|
|
45
|
-
Vite
|
|
48
|
+
Vite اندرونِ خانہ Rollup استعمال کرتا ہے۔ `rollup-plugin-visualizer` ایک انٹرایکٹو HTML فائل بناتا ہے جو آپ کے گراف میں ہر ماڈیول کا سائز دکھاتا ہے۔
|
|
46
49
|
|
|
47
50
|
```bash
|
|
48
51
|
npm install -D rollup-plugin-visualizer
|
|
@@ -55,7 +58,7 @@ import { visualizer } from "rollup-plugin-visualizer";
|
|
|
55
58
|
export default defineConfig({
|
|
56
59
|
plugins: [
|
|
57
60
|
visualizer({
|
|
58
|
-
open: true, //
|
|
61
|
+
open: true, // خود بخود رپورٹ براؤزر میں کھولیں
|
|
59
62
|
filename: "stats.html",
|
|
60
63
|
gzipSize: true,
|
|
61
64
|
brotliSize: true,
|
|
@@ -69,7 +72,7 @@ export default defineConfig({
|
|
|
69
72
|
|
|
70
73
|
### Next.js (Turbopack)
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
ایسے پروجیکٹس جو App Router اور Turbopack استعمال کرتے ہیں، ان کے لیے Next.js ایک بلٹ ان (built-in)، تجرباتی اینالائزر فراہم کرتا ہے جسے کسی اضافی ڈیپینڈنسی (dependency) کی ضرورت نہیں ہوتی۔
|
|
73
76
|
|
|
74
77
|
```bash packageManager='npm'
|
|
75
78
|
npx next experimental-analyze
|
|
@@ -92,7 +95,7 @@ bun next experimental-analyze
|
|
|
92
95
|
|
|
93
96
|
### Next.js (Webpack)
|
|
94
97
|
|
|
95
|
-
اگر آپ Next.js میں ڈیفالٹ Webpack بنڈلر استعمال کر رہے
|
|
98
|
+
اگر آپ Next.js میں ڈیفالٹ Webpack بنڈلر استعمال کر رہے ہیں تو آفیشل بنڈل اینالائزر استعمال کریں۔ اپنی بلڈ کے دوران ایک انوائرنمنٹ ویری ایبل (environment variable) سیٹ کر کے اسے ٹرگر کریں۔
|
|
96
99
|
|
|
97
100
|
```bash packageManager='npm'
|
|
98
101
|
npm install -D @next/bundle-analyzer
|
|
@@ -116,7 +119,7 @@ const withBundleAnalyzer = require("@next/bundle-analyzer")({
|
|
|
116
119
|
});
|
|
117
120
|
|
|
118
121
|
module.exports = withBundleAnalyzer({
|
|
119
|
-
// آپ
|
|
122
|
+
// آپ کا Next.js کنفیگ
|
|
120
123
|
});
|
|
121
124
|
```
|
|
122
125
|
|
|
@@ -129,9 +132,9 @@ ANALYZE=true npm run build
|
|
|
129
132
|
</Tab>
|
|
130
133
|
<Tab value="Webpack (CRA / Angular / etc)">
|
|
131
134
|
|
|
132
|
-
###
|
|
135
|
+
### Standard Webpack
|
|
133
136
|
|
|
134
|
-
Create React App (ejected)، Angular، یا کسٹم Webpack سیٹ اپ کے لیے، انڈسٹری اسٹینڈرڈ `webpack-bundle-analyzer` استعمال کریں۔
|
|
137
|
+
Create React App (ejected)، Angular، یا کسٹم Webpack سیٹ اپ کے لیے، انڈسٹری اسٹینڈرڈ `webpack-bundle-analyzer` کا استعمال کریں۔
|
|
135
138
|
|
|
136
139
|
```bash packageManager='npm'
|
|
137
140
|
npm install -D webpack-bundle-analyzer
|
|
@@ -149,7 +152,7 @@ pnpm add -D webpack-bundle-analyzer
|
|
|
149
152
|
bun add -d webpack-bundle-analyzer
|
|
150
153
|
```
|
|
151
154
|
|
|
152
|
-
```typescript fileName="webpack.config.ts
|
|
155
|
+
```typescript fileName="webpack.config.ts"
|
|
153
156
|
import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
|
|
154
157
|
|
|
155
158
|
export default {
|
|
@@ -168,27 +171,64 @@ export default {
|
|
|
168
171
|
|
|
169
172
|
## یہ کیسے کام کرتا ہے
|
|
170
173
|
|
|
171
|
-
Intlayer **فی
|
|
174
|
+
Intlayer ایک **فی جزو (per-component)** طریقہ کار استعمال کرتا ہے۔ عالمی (global) JSON فائلوں کے برعکس، آپ کا مواد آپ کے اجزاء (components) کے ساتھ یا ان کے اندر وضع (define) کیا جاتا ہے۔ بلڈ کے عمل کے دوران، Intlayer مندرجہ ذیل کام کرے گا:
|
|
172
175
|
|
|
173
|
-
1.
|
|
174
|
-
2.
|
|
175
|
-
3.
|
|
176
|
+
1. `useIntlayer` کی کالز کو تلاش کرنے کے لیے آپ کے کوڈ کا **تجزیہ (Analyze)** کرے گا۔
|
|
177
|
+
2. متعلقہ ڈکشنری کا مواد **تیار (Build)** کرے گا۔
|
|
178
|
+
3. آپ کی کنفیگریشن کے مطابق آپٹیمائز شدہ کوڈ کے ساتھ `useIntlayer` کی کال کو **تبدیل (Replace)** کر دے گا۔
|
|
176
179
|
|
|
177
180
|
یہ یقینی بناتا ہے کہ:
|
|
178
181
|
|
|
179
|
-
- اگر
|
|
180
|
-
- اگر کوئی
|
|
182
|
+
- اگر کسی جزو کو درآمد (import) نہیں کیا گیا ہے، تو اس کا مواد بنڈل میں شامل نہیں ہوگا (Dead Code Elimination)۔
|
|
183
|
+
- اگر کوئی جزو لیزی لوڈ (lazy-loaded) ہے، تو اس کا مواد بھی لیزی لوڈ ہوگا۔
|
|
181
184
|
|
|
182
|
-
##
|
|
185
|
+
## پلگ ان کا حوالہ (Plugin Reference)
|
|
186
|
+
|
|
187
|
+
Intlayer کا بلڈ آپٹیمائزیشن کئی الگ الگ پلگ انز میں تقسیم ہے، جن میں سے ہر ایک کی صرف ایک ذمہ داری ہے۔ ہر ایک پلگ ان کیا کرتا ہے اسے سمجھنے سے انہیں ترتیب دیتے وقت الجھن سے بچا جا سکتا ہے۔
|
|
188
|
+
|
|
189
|
+
### Babel پلگ انز (`@intlayer/babel`)
|
|
190
|
+
|
|
191
|
+
یہ براہ راست Webpack پر مبنی سیٹ اپس کے لیے `babel.config.js` میں استعمال ہوتے ہیں (جیسے Babel کے ساتھ Next.js، CRA، کسٹم Webpack وغیرہ)۔
|
|
192
|
+
|
|
193
|
+
| پلگ ان | یہ کیا کرتا ہے |
|
|
194
|
+
| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| `intlayerExtractBabelPlugin` | `.content.ts` فائلوں کو اسکین کرتا ہے اور مرتب کی گئی (compiled) ڈکشنریوں کو `.intlayer/` میں لکھتا ہے |
|
|
196
|
+
| `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` کو `useDictionary(hash)` میں بدل دیتا ہے اور متعلقہ ڈکشنری کا `import` شامل (inject) کرتا ہے |
|
|
197
|
+
| `intlayerPurgeBabelPlugin` | تمام سورس (source) فائلوں کو اسکین کرتا ہے، مرتب شدہ `.intlayer/**/*.json` ڈکشنری فائلوں سے **غیر استعمال شدہ مواد (unused content fields)** کو ہٹا دیتا ہے |
|
|
198
|
+
| `intlayerMinifyBabelPlugin` | JSON فائلوں اور سورس کوڈ دونوں میں **مواد کی فیلڈ کیز (keys) کا نام بدل کر** چھوٹے حروف تہجی (alias) رکھ دیتا ہے (جیسے `title` → `a`) |
|
|
199
|
+
|
|
200
|
+
> **پلگ ان کی ترتیب اہم ہے۔** آپ کے `babel.config.js` میں purge اور minify کے پلگ انز کا optimize پلگ ان سے **پہلے** ہونا لازمی ہے۔ optimize مرحلہ (pass) `useIntlayer('key')` کو ایک مبہم `useDictionary(hash)` کال سے بدل دیتا ہے، جس سے ڈکشنری کی (key) کی وہ معلومات مٹ جاتی ہے جس کی purge اور minify مراحل کو ضرورت ہوتی ہے تاکہ وہ جان سکیں کہ کون سی فیلڈز استعمال ہو رہی ہیں۔
|
|
201
|
+
|
|
202
|
+
ہر Babel پلگ ان کے ساتھ ایک آپشنز ہیلپر (options helper) منسلک ہوتا ہے جو کنفیگ لوڈ ہونے کے وقت ایک بار آپ کے `intlayer.config.ts` کو پڑھتا ہے اور پہلے سے حل شدہ (pre-resolved) ویلیوز (values) واپس کرتا ہے:
|
|
203
|
+
|
|
204
|
+
| آپشنز ہیلپر (Options helper) | کس کے ساتھ استعمال ہوتا ہے |
|
|
205
|
+
| :--------------------------- | :---------------------------- |
|
|
206
|
+
| `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
|
|
207
|
+
| `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
|
|
208
|
+
| `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
|
|
209
|
+
| `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
|
|
210
|
+
|
|
211
|
+
### Vite پلگ انز (`vite-intlayer`)
|
|
212
|
+
|
|
213
|
+
Vite کے صارفین **انہیں کبھی بھی براہ راست کنفیگر نہیں کرتے**۔ جب آپ `vite.config.ts` میں `withIntlayer()` کو کال کرتے ہیں تو یہ خود بخود وائر اپ ہو جاتے ہیں۔ `intlayer.config.ts` میں موجود `build.purge` اور `build.minify` فلیگز بغیر کسی اضافی پلگ ان رجسٹریشن کے اس رویے (behaviour) کو ٹوگل (toggle) کرتے ہیں۔
|
|
214
|
+
|
|
215
|
+
| اندرونی Vite پلگ ان | مساوی رویہ (Equivalent behaviour) |
|
|
216
|
+
| :------------------ | :---------------------------------------------------------------------------------------------- |
|
|
217
|
+
| Usage analyzer | بالکل `intlayerPurgeBabelPlugin` کے تجزیاتی (analyse) مرحلے کی طرح |
|
|
218
|
+
| Dictionary prune | بالکل `intlayerPurgeBabelPlugin` کے JSON رائٹ (write) مرحلے کی طرح |
|
|
219
|
+
| Dictionary minify | بالکل `intlayerMinifyBabelPlugin` کے JSON رائٹ مرحلے کی طرح |
|
|
220
|
+
| Babel transform | بالکل `intlayerMinifyBabelPlugin` کے سورس کوڈ کے رینیم اور `intlayerOptimizeBabelPlugin` کی طرح |
|
|
221
|
+
|
|
222
|
+
## پلیٹ فارم کے لحاظ سے سیٹ اپ
|
|
183
223
|
|
|
184
224
|
<Tabs>
|
|
185
225
|
<Tab value="nextjs">
|
|
186
226
|
|
|
187
227
|
### Next.js
|
|
188
228
|
|
|
189
|
-
Next.js کو
|
|
229
|
+
Next.js کو آپٹیمائز پاس (import rewrite) کے لیے `@intlayer/swc` پلگ ان کی ضرورت ہوتی ہے، کیونکہ Next.js بلڈز کے لیے SWC کا استعمال کرتا ہے۔
|
|
190
230
|
|
|
191
|
-
> یہ پلگ ان ڈیفالٹ
|
|
231
|
+
> یہ پلگ ان بائی ڈیفالٹ انسٹال نہیں ہوتا کیونکہ SWC کے پلگ انز Next.js کے لیے اب بھی تجرباتی مراحل میں ہیں۔ یہ مستقبل میں بدل سکتا ہے۔
|
|
192
232
|
|
|
193
233
|
```bash packageManager="npm"
|
|
194
234
|
npm install -D @intlayer/swc
|
|
@@ -206,21 +246,63 @@ pnpm add -D @intlayer/swc
|
|
|
206
246
|
bun add -d @intlayer/swc
|
|
207
247
|
```
|
|
208
248
|
|
|
209
|
-
|
|
249
|
+
انسٹال ہونے کے بعد، Intlayer خود بخود پلگ ان کو شناخت کر کے اس کا استعمال شروع کر دے گا۔
|
|
250
|
+
|
|
251
|
+
**purge اور minify** مراحل (فیلڈ کو ہٹانے اور رینیم کرنے) کے لیے، اس کے ساتھ `@intlayer/babel` انسٹال کریں اور Babel کے پلگ انز کو شامل کریں۔ چونکہ Next.js ٹرانسفارمیشن کے لیے SWC استعمال کرتا ہے لیکن پھر بھی پلگ ان کنفیگریشن کے لیے `babel.config.js` کو ایویلیوایٹ (evaluate) کرتا ہے، اس لیے Babel پلگ انز SWC سے پہلے ایک پری-پاس (pre-pass) کے طور پر چلتے ہیں۔
|
|
252
|
+
|
|
253
|
+
```bash packageManager="npm"
|
|
254
|
+
npm install -D @intlayer/babel
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
```javascript fileName="babel.config.js"
|
|
258
|
+
const {
|
|
259
|
+
intlayerPurgeBabelPlugin,
|
|
260
|
+
intlayerMinifyBabelPlugin,
|
|
261
|
+
getPurgePluginOptions,
|
|
262
|
+
getMinifyPluginOptions,
|
|
263
|
+
} = require("@intlayer/babel");
|
|
264
|
+
|
|
265
|
+
module.exports = {
|
|
266
|
+
presets: ["next/babel"],
|
|
267
|
+
plugins: [
|
|
268
|
+
// Purge: غیر استعمال شدہ مواد کو .intlayer/**/*.json سے ہٹا دیں
|
|
269
|
+
[intlayerPurgeBabelPlugin, getPurgePluginOptions()],
|
|
270
|
+
// Minify: JSON اور سورس کوڈ میں مواد کی فیلڈ کیز کا نام بدلیں
|
|
271
|
+
[intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
|
|
272
|
+
// نوٹ: intlayerOptimizeBabelPlugin کی یہاں ضرورت نہیں ہے کیونکہ
|
|
273
|
+
// @intlayer/swc اسے useIntlayer → useDictionary ری رائٹ کو سنبھالتا ہے۔
|
|
274
|
+
],
|
|
275
|
+
};
|
|
276
|
+
```
|
|
210
277
|
|
|
211
278
|
</Tab>
|
|
212
279
|
<Tab value="vite">
|
|
213
280
|
|
|
214
281
|
### Vite
|
|
215
282
|
|
|
216
|
-
Vite `@intlayer/babel` پلگ ان
|
|
283
|
+
Vite `@intlayer/babel` کا پلگ ان استعمال کرتا ہے، جسے `vite-intlayer` کی ڈیپینڈنسی کے طور پر شامل کیا گیا ہے۔ پوری آپٹیمائزیشن پائپ لائن — امپورٹ ری رائٹ (import rewrite)، پرج (purge)، اور منی فائی (minify) — بائی ڈیفالٹ فعال ہے اور اس کے لیے کسی اضافی پلگ ان رجسٹریشن کی ضرورت نہیں ہے۔
|
|
284
|
+
|
|
285
|
+
اپنے `intlayer.config.ts` میں متعلقہ فلیگز (flags) سیٹ کر کے پرج اور منی فائی کو فعال کریں:
|
|
286
|
+
|
|
287
|
+
```typescript fileName="intlayer.config.ts"
|
|
288
|
+
import type { IntlayerConfig } from "intlayer";
|
|
289
|
+
|
|
290
|
+
const config: IntlayerConfig = {
|
|
291
|
+
build: {
|
|
292
|
+
purge: true, // بنڈل کیے گئے JSON سے غیر استعمال شدہ مواد کو ہٹا دیں
|
|
293
|
+
minify: true, // مواد کی فیلڈ کیز کو چھوٹے عرفی ناموں (aliases) میں بدل دیں
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
export default config;
|
|
298
|
+
```
|
|
217
299
|
|
|
218
300
|
</Tab>
|
|
219
301
|
<Tab value="webpack">
|
|
220
302
|
|
|
221
|
-
### Webpack
|
|
303
|
+
### Webpack (اور Next.js بیبل (Babel) کے ساتھ)
|
|
222
304
|
|
|
223
|
-
|
|
305
|
+
`@intlayer/babel` انسٹال کریں:
|
|
224
306
|
|
|
225
307
|
```bash packageManager="npm"
|
|
226
308
|
npm install -D @intlayer/babel
|
|
@@ -238,14 +320,37 @@ pnpm add -D @intlayer/babel
|
|
|
238
320
|
bun add -d @intlayer/babel
|
|
239
321
|
```
|
|
240
322
|
|
|
241
|
-
|
|
323
|
+
چاروں پلگ انز کو مناسب ترتیب میں `babel.config.js` کے اندر شامل کریں:
|
|
324
|
+
|
|
325
|
+
```javascript fileName="babel.config.js"
|
|
242
326
|
const {
|
|
243
|
-
|
|
327
|
+
intlayerExtractBabelPlugin,
|
|
328
|
+
intlayerPurgeBabelPlugin,
|
|
329
|
+
intlayerMinifyBabelPlugin,
|
|
244
330
|
intlayerOptimizeBabelPlugin,
|
|
331
|
+
getExtractPluginOptions,
|
|
332
|
+
getPurgePluginOptions,
|
|
333
|
+
getMinifyPluginOptions,
|
|
334
|
+
getOptimizePluginOptions,
|
|
245
335
|
} = require("@intlayer/babel");
|
|
246
336
|
|
|
247
337
|
module.exports = {
|
|
248
|
-
plugins: [
|
|
338
|
+
plugins: [
|
|
339
|
+
// Extract: compile .content.ts files → .intlayer/**/*.json
|
|
340
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
341
|
+
|
|
342
|
+
// Purge: remove unused fields from .intlayer/**/*.json
|
|
343
|
+
// (intlayer.config.ts میں موجود build.purge فلیگ کو پڑھتا ہے)
|
|
344
|
+
[intlayerPurgeBabelPlugin, getPurgePluginOptions()],
|
|
345
|
+
|
|
346
|
+
// Minify: rename field keys in JSON + source code
|
|
347
|
+
// (intlayer.config.ts میں موجود build.minify فلیگ کو پڑھتا ہے)
|
|
348
|
+
[intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
|
|
349
|
+
|
|
350
|
+
// Optimize: rewrite useIntlayer('key') → useDictionary(hash)
|
|
351
|
+
// یہ سب سے آخر میں ہونا چاہیے کیونکہ یہ ڈکشنری کی (key) کو مٹا دیتا ہے۔
|
|
352
|
+
[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
|
|
353
|
+
],
|
|
249
354
|
};
|
|
250
355
|
```
|
|
251
356
|
|
|
@@ -254,57 +359,62 @@ module.exports = {
|
|
|
254
359
|
|
|
255
360
|
## کنفیگریشن
|
|
256
361
|
|
|
257
|
-
آپ
|
|
362
|
+
آپ یہ کنٹرول کر سکتے ہیں کہ Intlayer آپ کے بنڈل کو کس طرح آپٹیمائز کرتا ہے، یہ آپ کی `intlayer.config.ts` کی فلیگ `build` کی پراپرٹی کا استعمال کر کے کیا جا سکتا ہے۔
|
|
258
363
|
|
|
259
364
|
```typescript fileName="intlayer.config.ts"
|
|
260
365
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
261
366
|
|
|
262
367
|
const config: IntlayerConfig = {
|
|
263
368
|
internationalization: {
|
|
264
|
-
locales: [Locales.ENGLISH, Locales.
|
|
369
|
+
locales: [Locales.ENGLISH, Locales.URDU],
|
|
265
370
|
defaultLocale: Locales.ENGLISH,
|
|
266
371
|
},
|
|
267
372
|
dictionary: {
|
|
268
373
|
importMode: "dynamic",
|
|
269
374
|
},
|
|
270
375
|
build: {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
* اس بات کی نشاندہی کرتا ہے کہ آیا بلڈ کو ٹائپ اسکرپٹ اقسام (TypeScript types) کو چیک کرنا چاہئے
|
|
283
|
-
*/
|
|
284
|
-
checkTypes: false;
|
|
376
|
+
// بلڈ ٹائم پر useIntlayer() کالز کو براہ راست ڈکشنری امپورٹس (imports) سے بدل دیں۔
|
|
377
|
+
// undefined = خودکار (پروڈکشن میں فعال)، true = ہمیشہ، false = کبھی نہیں۔
|
|
378
|
+
optimize: undefined,
|
|
379
|
+
|
|
380
|
+
// مرتب شدہ ڈکشنریوں میں موجود مواد کی فیلڈ کیز کا نام چھوٹے حروفِ تہجی
|
|
381
|
+
// عرفی ناموں (مثلاً title → a) میں تبدیل کریں۔ اس سے JSON کا سائز کم ہوتا ہے؛ اس کے لیے optimize کی ضرورت ہوتی ہے۔
|
|
382
|
+
minify: true,
|
|
383
|
+
|
|
384
|
+
// سورس کوڈ میں ان مواد کی فیلڈز کو ہٹا دیں جو کبھی ایکسیس نہیں ہوتی ہیں۔
|
|
385
|
+
// اس کے لیے optimize کی ضرورت ہوتی ہے۔
|
|
386
|
+
purge: true,
|
|
285
387
|
},
|
|
286
388
|
};
|
|
287
389
|
|
|
288
390
|
export default config;
|
|
289
391
|
```
|
|
290
392
|
|
|
291
|
-
> زیادہ تر معاملات میں `optimize` کے لیے ڈیفالٹ
|
|
393
|
+
> زیادہ تر معاملات میں `optimize` کے لیے ڈیفالٹ ویلیو (`undefined`) رکھنا تجویز کیا جاتا ہے۔
|
|
292
394
|
|
|
293
|
-
>
|
|
395
|
+
> تمام آپشنز کے لیے کنفیگریشن کا حوالہ دیکھیں: [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/configuration.md)
|
|
294
396
|
|
|
295
|
-
### بلڈ کے
|
|
397
|
+
### بلڈ کے آپشنز (Build Options)
|
|
296
398
|
|
|
297
|
-
|
|
399
|
+
| پراپرٹی | قسم (Type) | ڈیفالٹ | تفصیل (Description) |
|
|
400
|
+
| :------------- | :--------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
401
|
+
| **`optimize`** | `boolean \| undefined` | `undefined` | امپورٹ ری رائٹ (import rewrite) پاس کو فعال بناتا ہے۔ `undefined` = صرف پروڈکشن بلڈز میں فعال ہوتا ہے۔ `false` کرنے پر پرج (purge) اور منی فائی (minify) بھی غیر فعال ہو جاتے ہیں۔ |
|
|
402
|
+
| **`minify`** | `boolean` | `false` | مرتب شدہ JSON فائلوں میں مواد کی فیلڈ کیز (keys) کو چھوٹے حروف تہجی والے عرفی ناموں (aliases) میں بدل دیتا ہے۔ سورس کوڈ میں بھی ملنے والی پراپرٹی ایکسیسز کو تبدیل کرتا ہے۔ اگر `optimize` کی ویلیو `false` ہو تو اس کا کوئی اثر نہیں ہوتا۔ |
|
|
403
|
+
| **`purge`** | `boolean` | `false` | مرتب شدہ JSON فائلوں سے ان مواد کی فیلڈز کو ہٹا دیتا ہے جن تک سورس کوڈ میں کبھی بھی رسائی نہیں کی گئی۔ اگر `optimize` کی ویلیو `false` ہو تو اس کا کوئی اثر نہیں ہوتا۔ |
|
|
298
404
|
|
|
299
|
-
|
|
300
|
-
| :------------- | :-------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
301
|
-
| **`optimize`** | `boolean` | `undefined` | کنٹرول کرتا ہے کہ آیا بلڈ آپٹیمائزیشن فعال ہے یا نہیں۔ اگر `true` ہے، تو Intlayer ڈکشنری کالز کو بہتر انجیکشنز سے بدل دیتا ہے۔ اگر `false` ہے، تو آپٹیمائزیشن غیر فعال ہے۔ پروڈکشن میں `true` سیٹ کرنا بہتر ہے۔ |
|
|
302
|
-
| **`minify`** | `boolean` | `false` | بنڈل سائز کم کرنے کے لیے ڈکشنریوں کو منی فائی کرنا ہے یا نہیں۔ |
|
|
303
|
-
| **`purge`** | `boolean` | `false` | ڈکشنریوں میں غیر استعمال شدہ کلیدوں کو صاف کرنا ہے یا نہیں۔ |
|
|
405
|
+
### منی فیکیشن (فیلڈ کی کا نام بدلنا)
|
|
304
406
|
|
|
305
|
-
|
|
407
|
+
`build.minify` آپ کے JavaScript بنڈل کو منی فائی **نہیں** کرتا — یہ کام آپ کا بنڈلر کرتا ہے۔ اس کے بجائے، یہ ہر یوزر کے ڈیفائن کردہ مواد کی فیلڈ کی (key) کو ایک چھوٹے حروف تہجی عرفی نام (alias) میں بدل کر مرتب شدہ ڈکشنری کی JSON فائلوں کو سکیڑتا ہے:
|
|
306
408
|
|
|
307
|
-
|
|
409
|
+
```
|
|
410
|
+
// منی فیکیشن سے پہلے
|
|
411
|
+
{ "title": "ہیلو", "subtitle": "دنیا" }
|
|
412
|
+
|
|
413
|
+
// منی فیکیشن کے بعد
|
|
414
|
+
{ "a": "ہیلو", "b": "دنیا" }
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
اسی طرح سورس کوڈ میں موجود تمام پراپرٹی ایکسیس پر بھی یہی تبدیلی لاگو ہوتی ہے، اس لیے مرتب شدہ آؤٹ پٹ میں `content.title` بدل کر `content.a` بن جاتا ہے۔ رن ٹائم کا رویہ مکمل طور پر یکساں رہتا ہے۔
|
|
308
418
|
|
|
309
419
|
```typescript fileName="intlayer.config.ts"
|
|
310
420
|
import type { IntlayerConfig } from "intlayer";
|
|
@@ -318,11 +428,13 @@ const config: IntlayerConfig = {
|
|
|
318
428
|
export default config;
|
|
319
429
|
```
|
|
320
430
|
|
|
321
|
-
>
|
|
431
|
+
> منی فیکیشن کو چھوڑ (skipped) دیا جاتا ہے جب `optimize` کی ویلیو `false` ہو، یا جب `editor.enabled` کی ویلیو `true` ہو (ویژول ایڈیٹر کو ایڈیٹنگ کی اجازت دینے کے لیے اصل فیلڈ کے ناموں کی ضرورت ہوتی ہے)۔
|
|
432
|
+
|
|
433
|
+
> منی فیکیشن ان ڈکشنریوں کے لیے بھی نظرانداز کی جاتی ہے جنہیں `importMode: 'fetch'` کے ذریعے لوڈ کیا گیا ہو کیونکہ ان کا JSON ریموٹ API سے اصل فیلڈ ناموں کے ساتھ پیش کیا جاتا ہے — کلائنٹ سائیڈ کیز کا نام بدلنے سے سرور/کلائنٹ کا کنٹریکٹ (contract) ٹوٹ جائے گا۔
|
|
322
434
|
|
|
323
|
-
### پرجنگ (
|
|
435
|
+
### پرجنگ (غیر استعمال شدہ فیلڈز کو ہٹانا)
|
|
324
436
|
|
|
325
|
-
|
|
437
|
+
`build.purge` تجزیہ کرتا ہے کہ سورس کوڈ میں دراصل کن مواد کی فیلڈز تک رسائی حاصل کی گئی ہے اور باقی تمام فیلڈز کو مرتب شدہ JSON فائلوں سے ہٹا دیتا ہے۔
|
|
326
438
|
|
|
327
439
|
```typescript fileName="intlayer.config.ts"
|
|
328
440
|
import type { IntlayerConfig } from "intlayer";
|
|
@@ -336,27 +448,43 @@ const config: IntlayerConfig = {
|
|
|
336
448
|
export default config;
|
|
337
449
|
```
|
|
338
450
|
|
|
339
|
-
|
|
451
|
+
**مثال:** پانچ فیلڈز پر مشتمل ایک ڈکشنری جس میں سے صرف دو استعمال ہوئی ہوں:
|
|
452
|
+
|
|
453
|
+
```
|
|
454
|
+
// پرج کرنے سے پہلے
|
|
455
|
+
{ "title": "…", "subtitle": "…", "cta": "…", "footer": "…", "badge": "…" }
|
|
456
|
+
|
|
457
|
+
// پرج کرنے کے بعد (سورس کوڈ میں صرف title + subtitle ایکسیس ہوئے)
|
|
458
|
+
{ "title": "…", "subtitle": "…" }
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
> جب `optimize` کی ویلیو `false` ہو یا جب `editor.enabled` کی ویلیو `true` ہو تو پرجنگ (Purging) چھوڑ (skipped) دی جاتی ہے۔
|
|
462
|
+
|
|
463
|
+
> پرجنگ کو حفاظتی تدابیر (conservatively) کے طور پر ان حالات میں بھی چھوڑ دیا جاتا ہے جب کوئی سورس فائل پارس (parse) نہیں ہو پاتی، یا جب `useIntlayer` کا نتیجہ کسی ویری ایبل کو تفویض (assign) کر دیا جائے اور پھر ان طریقوں سے آگے بڑھایا جائے جن کا اسٹیٹک اینالائزر کھوج نہیں لگا سکتا (جیسے اسپریڈ کو کسی آبجیکٹ میں ڈالنا، ڈسٹرکچر کیے بغیر پروپ کے طور پر بھیجنا)۔ ان صورتوں میں، مکمل ڈکشنری محفوظ رکھی جاتی ہے۔
|
|
464
|
+
|
|
465
|
+
### امپورٹ موڈ (Import Mode)
|
|
340
466
|
|
|
341
|
-
|
|
467
|
+
بڑی ایپلیکیشنز، جن میں متعدد صفحات اور مقامات (locales) شامل ہوں، ان کا JSON بنڈل کے سائز کا ایک اہم حصہ ہو سکتا ہے۔ Intlayer آپ کو یہ اختیار دیتا ہے کہ آپ `importMode` کا استعمال کرتے ہوئے ڈکشنری کے لوڈ ہونے کے طریقہ کار کو کنٹرول کریں۔
|
|
342
468
|
|
|
343
|
-
|
|
469
|
+
### عالمی (Global) تعریف
|
|
344
470
|
|
|
345
|
-
امپورٹ موڈ کو آپ کی `intlayer.config.ts` فائل میں عالمی سطح پر
|
|
471
|
+
امپورٹ موڈ کو آپ کی `intlayer.config.ts` فائل میں عالمی سطح پر ڈیفائن کیا جا سکتا ہے۔
|
|
346
472
|
|
|
347
473
|
```typescript fileName="intlayer.config.ts"
|
|
348
474
|
import type { IntlayerConfig } from "intlayer";
|
|
349
475
|
|
|
350
476
|
const config: IntlayerConfig = {
|
|
351
|
-
|
|
352
|
-
|
|
477
|
+
dictionary: {
|
|
478
|
+
importMode: "dynamic", // ڈیفالٹ 'static' ہے
|
|
353
479
|
},
|
|
354
480
|
};
|
|
355
481
|
|
|
356
482
|
export default config;
|
|
357
483
|
```
|
|
358
484
|
|
|
359
|
-
|
|
485
|
+
### فی ڈکشنری (Per-dictionary) کی تعریف
|
|
486
|
+
|
|
487
|
+
آپ کسی بھی انفرادی ڈکشنری کے لیے اس کی `.content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5|md|mdx|yaml|yml}}` فائل کے ذریعے امپورٹ موڈ کو اوور رائڈ (override) کر سکتے ہیں۔
|
|
360
488
|
|
|
361
489
|
```ts
|
|
362
490
|
import { type Dictionary, t } from "intlayer";
|
|
@@ -372,83 +500,103 @@ const appContent: Dictionary = {
|
|
|
372
500
|
export default appContent;
|
|
373
501
|
```
|
|
374
502
|
|
|
375
|
-
| پراپرٹی |
|
|
376
|
-
| :--------------- | :--------------------------------- | :--------- |
|
|
377
|
-
| **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` |
|
|
503
|
+
| پراپرٹی | قسم (Type) | ڈیفالٹ | تفصیل (Description) |
|
|
504
|
+
| :--------------- | :--------------------------------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
505
|
+
| **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` | **منسوخ (Deprecated)**: اس کی جگہ `dictionary.importMode` استعمال کریں۔ اس بات کا تعین کرتا ہے کہ ڈکشنریاں کیسے لوڈ ہوں گی (نیچے ملاحظہ کریں)۔ |
|
|
378
506
|
|
|
379
|
-
`importMode`
|
|
380
|
-
آپ اسے `intlayer.config.ts` فائل میں `dictionary` آبجیکٹ کے تحت عالمی سطح پر بیان کر سکتے ہیں، یا آپ اسے اس کی `.content.ts` فائل میں کسی خاص ڈکشنری کے لیے تبدیل کر سکتے ہیں۔
|
|
507
|
+
`importMode` کی سیٹنگ یہ طے کرتی ہے کہ ڈکشنری کا مواد آپ کے جزو (component) میں کیسے شامل ہوگا۔ آپ اسے عالمی سطح پر `intlayer.config.ts` میں `dictionary` آبجیکٹ کے تحت رکھ سکتے ہیں یا پھر کسی ایک مخصوص ڈکشنری کے لیے اس کی `.content.ts` فائل میں اوور رائڈ کر سکتے ہیں۔
|
|
381
508
|
|
|
382
|
-
### 1.
|
|
509
|
+
### 1. اسٹیٹک موڈ (Static Mode - `default`)
|
|
383
510
|
|
|
384
|
-
|
|
511
|
+
اسٹیٹک موڈ میں، Intlayer `useIntlayer` کی جگہ پر `useDictionary` رکھ دیتا ہے اور ڈکشنری کو براہ راست JavaScript بنڈل میں انجیکٹ کر دیتا ہے۔
|
|
385
512
|
|
|
386
|
-
- **فوائد:** فوری رینڈرنگ (سنکرونس)، ہائیڈریشن کے دوران
|
|
387
|
-
- **نقصانات:** بنڈل میں
|
|
388
|
-
-
|
|
513
|
+
- **فوائد:** فوری رینڈرنگ (سنکرونس - synchronous)، ہائیڈریشن (hydration) کے دوران کسی اضافی نیٹ ورک ریکویسٹ (network request) کی ضرورت نہیں پڑتی۔
|
|
514
|
+
- **نقصانات:** اس بنڈل میں متعلقہ جزو کے لیے دستیاب **تمام** زبانوں کا ترجمہ شامل ہوتا ہے۔
|
|
515
|
+
- **بہترین استعمال:** سنگل پیج ایپلیکیشنز (SPA) کے لیے۔
|
|
389
516
|
|
|
390
|
-
|
|
517
|
+
**ٹرانسفارم ہونے کے بعد کوڈ کی مثال:**
|
|
391
518
|
|
|
392
519
|
```tsx
|
|
393
520
|
// آپ کا کوڈ
|
|
394
521
|
const content = useIntlayer("my-key");
|
|
395
522
|
|
|
396
|
-
//
|
|
523
|
+
// ٹرانسفارم ہونے کے بعد آپٹیمائز شدہ کوڈ کی مثال (اسٹیٹک)
|
|
524
|
+
// یہ صرف وضاحت کے لیے ہے، اصل کوڈ آپٹیمائزیشن کے مقاصد کی وجہ سے مختلف ہو سکتا ہے
|
|
397
525
|
const content = useDictionary({
|
|
398
526
|
key: "my-key",
|
|
399
527
|
content: {
|
|
400
528
|
nodeType: "translation",
|
|
401
529
|
translation: {
|
|
402
530
|
en: "My title",
|
|
403
|
-
|
|
531
|
+
ur: "میرا عنوان",
|
|
404
532
|
},
|
|
405
533
|
},
|
|
406
534
|
});
|
|
407
535
|
```
|
|
408
536
|
|
|
409
|
-
### 2.
|
|
537
|
+
### 2. ڈائنامک موڈ (Dynamic Mode)
|
|
410
538
|
|
|
411
|
-
|
|
539
|
+
ڈائنامک موڈ میں، Intlayer `useIntlayer` کی جگہ پر `useDictionaryAsync` رکھ دیتا ہے۔ یہ خصوصاً متعلقہ زبان (locale) کے JSON کو لیزی-لوڈ کرنے کے لیے `import()` (جو سسپنس جیسی تکنیک ہے) کا استعمال کرتا ہے۔
|
|
412
540
|
|
|
413
|
-
- **فوائد:**
|
|
414
|
-
- **نقصانات:** ہائیڈریشن کے دوران
|
|
415
|
-
-
|
|
541
|
+
- **فوائد:** **لوکیل-لیول ٹری شیکنگ (Locale-level tree shaking)۔** جو صارف انگریزی ورژن دیکھ رہا ہے، وہ _صرف_ انگریزی ڈکشنری ہی ڈاؤن لوڈ کرے گا۔ اردو ڈکشنری لوڈ نہیں کی جائے گی۔
|
|
542
|
+
- **نقصانات:** ہائیڈریشن کے دوران ہر جزو (component) کے لیے ایک نیٹ ورک ریکویسٹ (نیٹ ورک فیچ) بھیجی جاتی ہے۔
|
|
543
|
+
- **بہترین استعمال:** متن سے بھرپور حصوں، مضامین، یا ایسی بڑی ایپلیکیشنز کے لیے جہاں زبانوں کی تعداد بہت زیادہ ہو اور بنڈل کا سائز بہت اہمیت رکھتا ہو۔
|
|
416
544
|
|
|
417
|
-
|
|
545
|
+
**ٹرانسفارم ہونے کے بعد کوڈ کی مثال:**
|
|
418
546
|
|
|
419
547
|
```tsx
|
|
420
548
|
// آپ کا کوڈ
|
|
421
549
|
const content = useIntlayer("my-key");
|
|
422
550
|
|
|
423
|
-
//
|
|
551
|
+
// ٹرانسفارم ہونے کے بعد آپٹیمائز شدہ کوڈ کی مثال (ڈائنامک)
|
|
552
|
+
// یہ صرف وضاحت کے لیے ہے، اصل کوڈ آپٹیمائزیشن کے مقاصد کی وجہ سے مختلف ہو سکتا ہے
|
|
424
553
|
const content = useDictionaryAsync({
|
|
425
554
|
en: () =>
|
|
426
555
|
import(".intlayer/dynamic_dictionary/my-key/en.json").then(
|
|
427
556
|
(mod) => mod.default
|
|
428
557
|
),
|
|
429
|
-
|
|
430
|
-
import(".intlayer/dynamic_dictionary/my-key/
|
|
558
|
+
ur: () =>
|
|
559
|
+
import(".intlayer/dynamic_dictionary/my-key/ur.json").then(
|
|
431
560
|
(mod) => mod.default
|
|
432
561
|
),
|
|
433
562
|
});
|
|
434
563
|
```
|
|
435
564
|
|
|
436
|
-
>
|
|
565
|
+
> `importMode: 'dynamic'` کے استعمال کے دوران، اگر ایک صفحے پر آپ کے پاس 100 ایسے اجزاء ہیں جو `useIntlayer` کو کال کر رہے ہیں، تو براؤزر 100 الگ الگ ریکویسٹ بھیجنے کی کوشش کرے گا۔ اس ریکویسٹ کی "آبشار (waterfall)" سے بچنے کے لیے، بہتر ہے کہ مواد کو چھوٹے چھوٹے ایٹم اجزاء کی بجائے چند بڑے حصوں (جیسے کہ ایک سیکشن کے لیے ایک ڈکشنری) میں وضع کریں۔ آپ مختلف `.content` فائلوں کے لیے ایک جیسی کی (key) بھی استعمال کر سکتے ہیں۔ Intlayer انہیں ایک واحد ڈکشنری میں ضم کر دے گا۔
|
|
437
566
|
|
|
438
567
|
### 3. فیچ موڈ (Fetch Mode)
|
|
439
568
|
|
|
440
|
-
|
|
569
|
+
یہ موڈ بالکل ڈائنامک موڈ کی طرح برتاؤ کرتا ہے لیکن پہلے Intlayer Live Sync API سے ڈکشنری کو لانے (fetch کرنے) کی کوشش کرتا ہے۔ اگر API کال ناکام ہو جائے یا مواد لائیو اپڈیٹ کے لیے نشان زد (marked) نہ ہو، تو یہ واپس ڈائنامک امپورٹ کی طرف چلا جاتا ہے (fallback)۔
|
|
570
|
+
|
|
571
|
+
**ٹرانسفارم ہونے کے بعد کوڈ کی مثال:**
|
|
572
|
+
|
|
573
|
+
```tsx
|
|
574
|
+
// آپ کا کوڈ
|
|
575
|
+
const content = useIntlayer("my-key");
|
|
576
|
+
|
|
577
|
+
// آپٹیمائز شدہ کوڈ کی مثال (فیچ)
|
|
578
|
+
const content = useDictionaryAsync({
|
|
579
|
+
en: () =>
|
|
580
|
+
fetch("https://intlayer.my-domain.com/dictionary/my-key/en").then((res) =>
|
|
581
|
+
res.json()
|
|
582
|
+
),
|
|
583
|
+
ur: () =>
|
|
584
|
+
fetch("https://intlayer.my-domain.com/dictionary/my-key/ur").then((res) =>
|
|
585
|
+
res.json()
|
|
586
|
+
),
|
|
587
|
+
});
|
|
588
|
+
```
|
|
441
589
|
|
|
442
|
-
> مزید تفصیلات کے لیے CMS
|
|
590
|
+
> مزید تفصیلات کے لیے CMS کی دستاویزات دیکھیں: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/intlayer_CMS.md)
|
|
443
591
|
|
|
444
|
-
> فیچ موڈ میں،
|
|
592
|
+
> فیچ موڈ میں، پرج (purge) اور منی فائی (minify) کو استعمال نہیں کیا جا سکتا کیونکہ JSON کو ریموٹ API کی مدد سے اصل ناموں (original field names) کے ذریعے پیش کیا جاتا ہے۔
|
|
445
593
|
|
|
446
|
-
## خلاصہ:
|
|
594
|
+
## خلاصہ: اسٹیٹک بمقابلہ ڈائنامک
|
|
447
595
|
|
|
448
|
-
| خصوصیت
|
|
449
|
-
|
|
|
450
|
-
| **JS بنڈل سائز**
|
|
451
|
-
|
|
|
452
|
-
| **نیٹ ورک
|
|
453
|
-
| **ٹری شیکنگ**
|
|
454
|
-
| **بہترین
|
|
596
|
+
| خصوصیت | اسٹیٹک موڈ (Static Mode) | ڈائنامک موڈ (Dynamic Mode) |
|
|
597
|
+
| :-------------------------- | :------------------------------------------ | :--------------------------------------- |
|
|
598
|
+
| **JS بنڈل کا سائز** | زیادہ بڑا (تمام زبانوں کے مواد پر مشتمل) | سب سے چھوٹا (صرف کوڈ، کوئی مواد نہیں) |
|
|
599
|
+
| **شروعاتی لوڈنگ** | فوری (مواد پہلے سے ہی بنڈل کے اندر ہوتا ہے) | تھوڑی تاخیر (JSON کو فیچ کیا جاتا ہے) |
|
|
600
|
+
| **نیٹ ورک ریکویسٹس** | 0 اضافی ریکویسٹ | 1 ریکویسٹ فی ڈکشنری کی (key) |
|
|
601
|
+
| **ٹری شیکنگ** | صرف کمپوننٹ کی حد تک | کمپوننٹ اور لوکیل دونوں کے لیے |
|
|
602
|
+
| **بہترین استعمال کا میدان** | UI کمپوننٹس، اور چھوٹی ایپس | ٹیکسٹ سے بھرپور صفحات، کثیر اللسانی ایپس |
|