@intlayer/docs 8.11.3 → 8.12.0-canary.0
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/blog/ar/i18n_using_next-i18next.md +60 -20
- package/blog/ar/i18n_using_next-intl.md +51 -17
- package/blog/de/i18n_using_next-i18next.md +61 -20
- package/blog/de/i18n_using_next-intl.md +51 -17
- package/blog/en/i18n_using_next-i18next.md +61 -20
- package/blog/en/i18n_using_next-intl.md +51 -17
- package/blog/en-GB/i18n_using_next-i18next.md +61 -20
- package/blog/en-GB/i18n_using_next-intl.md +51 -17
- package/blog/es/i18n_using_next-i18next.md +61 -20
- package/blog/es/i18n_using_next-intl.md +52 -17
- package/blog/fr/i18n_using_next-i18next.md +61 -20
- package/blog/fr/i18n_using_next-intl.md +52 -17
- package/blog/hi/i18n_using_next-i18next.md +61 -20
- package/blog/hi/i18n_using_next-intl.md +51 -17
- package/blog/id/i18n_using_next-i18next.md +61 -20
- package/blog/id/i18n_using_next-intl.md +51 -17
- package/blog/it/i18n_using_next-i18next.md +61 -20
- package/blog/it/i18n_using_next-intl.md +51 -17
- package/blog/ja/i18n_using_next-i18next.md +61 -20
- package/blog/ja/i18n_using_next-intl.md +52 -17
- package/blog/ko/i18n_using_next-i18next.md +61 -20
- package/blog/ko/i18n_using_next-intl.md +52 -17
- package/blog/pl/i18n_using_next-i18next.md +61 -20
- package/blog/pl/i18n_using_next-intl.md +51 -17
- package/blog/pt/i18n_using_next-i18next.md +61 -20
- package/blog/pt/i18n_using_next-intl.md +51 -17
- package/blog/ru/i18n_using_next-i18next.md +61 -20
- package/blog/ru/i18n_using_next-intl.md +52 -17
- package/blog/tr/i18n_using_next-i18next.md +61 -20
- package/blog/tr/i18n_using_next-intl.md +51 -17
- package/blog/uk/i18n_using_next-i18next.md +61 -20
- package/blog/uk/i18n_using_next-intl.md +51 -17
- package/blog/vi/i18n_using_next-i18next.md +61 -20
- package/blog/vi/i18n_using_next-intl.md +51 -17
- package/blog/zh/i18n_using_next-i18next.md +61 -20
- package/blog/zh/i18n_using_next-intl.md +52 -17
- package/dist/cjs/common.cjs +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/esm/common.mjs +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/docs/ar/cli/build.md +1 -1
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +2 -2
- package/docs/ar/intlayer_with_analog.md +6 -6
- package/docs/ar/intlayer_with_angular_19.md +6 -6
- package/docs/ar/intlayer_with_angular_21.md +6 -6
- package/docs/ar/intlayer_with_astro.md +55 -56
- package/docs/ar/intlayer_with_astro_lit.md +58 -58
- package/docs/ar/intlayer_with_astro_preact.md +52 -52
- package/docs/ar/intlayer_with_astro_react.md +54 -54
- package/docs/ar/intlayer_with_astro_solid.md +54 -54
- package/docs/ar/intlayer_with_astro_svelte.md +54 -54
- package/docs/ar/intlayer_with_astro_vanilla.md +54 -54
- package/docs/ar/intlayer_with_astro_vue.md +54 -54
- package/docs/ar/intlayer_with_create_react_app.md +5 -6
- package/docs/ar/intlayer_with_express.md +2 -2
- package/docs/ar/intlayer_with_fastify.md +2 -2
- package/docs/ar/intlayer_with_hono.md +2 -2
- package/docs/ar/intlayer_with_lynx+react.md +2 -2
- package/docs/ar/intlayer_with_nestjs.md +2 -13
- package/docs/ar/intlayer_with_next-i18next.md +2 -2
- package/docs/ar/intlayer_with_next-intl.md +2 -2
- package/docs/ar/intlayer_with_nextjs_14.md +5 -6
- package/docs/ar/intlayer_with_nextjs_15.md +5 -6
- package/docs/ar/intlayer_with_nextjs_16.md +2 -2
- package/docs/ar/intlayer_with_nextjs_compiler.md +37 -39
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +5 -6
- package/docs/ar/intlayer_with_nextjs_page_router.md +5 -6
- package/docs/ar/intlayer_with_nuxt.md +33 -33
- package/docs/ar/intlayer_with_react_native+expo.md +2 -2
- package/docs/ar/intlayer_with_react_router_v7.md +2 -2
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/ar/intlayer_with_storybook.md +2 -2
- package/docs/ar/intlayer_with_svelte_kit.md +15 -15
- package/docs/ar/intlayer_with_tanstack+solid.md +6 -6
- package/docs/ar/intlayer_with_tanstack.md +13 -13
- package/docs/ar/intlayer_with_vanilla.md +5 -6
- package/docs/ar/intlayer_with_vite+lit.md +6 -6
- package/docs/ar/intlayer_with_vite+preact.md +44 -45
- package/docs/ar/intlayer_with_vite+react.md +36 -38
- package/docs/ar/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/ar/intlayer_with_vite+solid.md +29 -30
- package/docs/ar/intlayer_with_vite+svelte.md +16 -17
- package/docs/ar/intlayer_with_vite+vanilla.md +5 -6
- package/docs/ar/intlayer_with_vite+vue.md +58 -59
- package/docs/ar/introduction.md +43 -28
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/intlayer_with_angular_21.md +2 -2
- package/docs/bn/intlayer_with_fastify.md +2 -2
- package/docs/bn/intlayer_with_hono.md +2 -2
- package/docs/bn/intlayer_with_storybook.md +2 -2
- package/docs/bn/intlayer_with_vanilla.md +2 -2
- package/docs/bn/intlayer_with_vite+lit.md +2 -2
- package/docs/bn/intlayer_with_vite+vanilla.md +2 -2
- package/docs/bn/introduction.md +43 -28
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/interest_of_intlayer.md +8 -0
- package/docs/cs/intlayer_with_angular_21.md +6 -6
- package/docs/cs/intlayer_with_fastify.md +2 -2
- package/docs/cs/intlayer_with_hono.md +2 -2
- package/docs/cs/intlayer_with_storybook.md +2 -2
- package/docs/cs/intlayer_with_vanilla.md +5 -6
- package/docs/cs/intlayer_with_vite+lit.md +6 -6
- package/docs/cs/intlayer_with_vite+vanilla.md +5 -6
- package/docs/cs/introduction.md +43 -28
- package/docs/de/cli/build.md +1 -1
- package/docs/de/cli/index.md +1 -1
- package/docs/de/interest_of_intlayer.md +8 -0
- package/docs/de/intlayer_with_adonisjs.md +2 -2
- package/docs/de/intlayer_with_analog.md +13 -6
- package/docs/de/intlayer_with_angular_19.md +13 -6
- package/docs/de/intlayer_with_angular_21.md +13 -6
- package/docs/de/intlayer_with_astro.md +62 -56
- package/docs/de/intlayer_with_astro_lit.md +65 -58
- package/docs/de/intlayer_with_astro_preact.md +59 -52
- package/docs/de/intlayer_with_astro_react.md +61 -54
- package/docs/de/intlayer_with_astro_solid.md +61 -54
- package/docs/de/intlayer_with_astro_svelte.md +61 -54
- package/docs/de/intlayer_with_astro_vanilla.md +61 -54
- package/docs/de/intlayer_with_astro_vue.md +61 -54
- package/docs/de/intlayer_with_create_react_app.md +5 -6
- package/docs/de/intlayer_with_express.md +2 -2
- package/docs/de/intlayer_with_fastify.md +2 -2
- package/docs/de/intlayer_with_hono.md +2 -2
- package/docs/de/intlayer_with_lynx+react.md +9 -2
- package/docs/de/intlayer_with_nestjs.md +2 -13
- package/docs/de/intlayer_with_next-i18next.md +2 -2
- package/docs/de/intlayer_with_next-intl.md +2 -2
- package/docs/de/intlayer_with_nextjs_14.md +12 -6
- package/docs/de/intlayer_with_nextjs_15.md +12 -6
- package/docs/de/intlayer_with_nextjs_16.md +77 -72
- package/docs/de/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/de/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/de/intlayer_with_nuxt.md +40 -33
- package/docs/de/intlayer_with_react_native+expo.md +9 -2
- package/docs/de/intlayer_with_react_router_v7.md +9 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/de/intlayer_with_storybook.md +9 -2
- package/docs/de/intlayer_with_svelte_kit.md +23 -17
- package/docs/de/intlayer_with_tanstack+solid.md +13 -6
- package/docs/de/intlayer_with_tanstack.md +13 -6
- package/docs/de/intlayer_with_vanilla.md +12 -6
- package/docs/de/intlayer_with_vite+lit.md +13 -6
- package/docs/de/intlayer_with_vite+preact.md +68 -62
- package/docs/de/intlayer_with_vite+react.md +60 -55
- package/docs/de/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/de/intlayer_with_vite+solid.md +53 -47
- package/docs/de/intlayer_with_vite+svelte.md +40 -34
- package/docs/de/intlayer_with_vite+vanilla.md +12 -6
- package/docs/de/intlayer_with_vite+vue.md +60 -54
- package/docs/de/introduction.md +43 -28
- package/docs/en/cli/build.md +1 -1
- package/docs/en/cli/index.md +1 -1
- package/docs/en/interest_of_intlayer.md +8 -0
- package/docs/en/intlayer_with_adonisjs.md +2 -2
- package/docs/en/intlayer_with_analog.md +13 -6
- package/docs/en/intlayer_with_angular_19.md +13 -6
- package/docs/en/intlayer_with_angular_21.md +13 -6
- package/docs/en/intlayer_with_astro.md +62 -56
- package/docs/en/intlayer_with_astro_lit.md +65 -58
- package/docs/en/intlayer_with_astro_preact.md +65 -58
- package/docs/en/intlayer_with_astro_react.md +61 -54
- package/docs/en/intlayer_with_astro_solid.md +61 -54
- package/docs/en/intlayer_with_astro_svelte.md +61 -54
- package/docs/en/intlayer_with_astro_vanilla.md +61 -54
- package/docs/en/intlayer_with_astro_vue.md +61 -54
- package/docs/en/intlayer_with_create_react_app.md +12 -6
- package/docs/en/intlayer_with_express.md +2 -2
- package/docs/en/intlayer_with_fastify.md +2 -2
- package/docs/en/intlayer_with_hono.md +2 -2
- package/docs/en/intlayer_with_lynx+react.md +9 -2
- package/docs/en/intlayer_with_nestjs.md +2 -13
- package/docs/en/intlayer_with_next-i18next.md +2 -2
- package/docs/en/intlayer_with_next-intl.md +2 -2
- package/docs/en/intlayer_with_nextjs_14.md +12 -6
- package/docs/en/intlayer_with_nextjs_15.md +12 -6
- package/docs/en/intlayer_with_nextjs_16.md +12 -6
- package/docs/en/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/en/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/en/intlayer_with_nuxt.md +40 -33
- package/docs/en/intlayer_with_react_native+expo.md +9 -2
- package/docs/en/intlayer_with_react_router_v7.md +9 -2
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/en/intlayer_with_storybook.md +9 -2
- package/docs/en/intlayer_with_svelte_kit.md +12 -6
- package/docs/en/intlayer_with_tanstack+solid.md +13 -6
- package/docs/en/intlayer_with_tanstack.md +13 -6
- package/docs/en/intlayer_with_vanilla.md +12 -6
- package/docs/en/intlayer_with_vite+lit.md +13 -6
- package/docs/en/intlayer_with_vite+preact.md +12 -6
- package/docs/en/intlayer_with_vite+react.md +12 -6
- package/docs/en/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/en/intlayer_with_vite+solid.md +12 -6
- package/docs/en/intlayer_with_vite+svelte.md +12 -6
- package/docs/en/intlayer_with_vite+vanilla.md +12 -6
- package/docs/en/intlayer_with_vite+vue.md +12 -6
- package/docs/en/introduction.md +43 -28
- package/docs/en-GB/cli/build.md +1 -1
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/interest_of_intlayer.md +8 -0
- package/docs/en-GB/intlayer_with_adonisjs.md +2 -2
- package/docs/en-GB/intlayer_with_analog.md +13 -6
- package/docs/en-GB/intlayer_with_angular_19.md +13 -6
- package/docs/en-GB/intlayer_with_angular_21.md +13 -6
- package/docs/en-GB/intlayer_with_astro.md +62 -56
- package/docs/en-GB/intlayer_with_astro_lit.md +65 -58
- package/docs/en-GB/intlayer_with_astro_preact.md +59 -52
- package/docs/en-GB/intlayer_with_astro_react.md +61 -54
- package/docs/en-GB/intlayer_with_astro_solid.md +61 -54
- package/docs/en-GB/intlayer_with_astro_svelte.md +61 -54
- package/docs/en-GB/intlayer_with_astro_vanilla.md +61 -54
- package/docs/en-GB/intlayer_with_astro_vue.md +61 -54
- package/docs/en-GB/intlayer_with_create_react_app.md +5 -6
- package/docs/en-GB/intlayer_with_express.md +2 -2
- package/docs/en-GB/intlayer_with_fastify.md +2 -2
- package/docs/en-GB/intlayer_with_hono.md +2 -2
- package/docs/en-GB/intlayer_with_lynx+react.md +9 -2
- package/docs/en-GB/intlayer_with_nestjs.md +2 -13
- package/docs/en-GB/intlayer_with_next-i18next.md +2 -2
- package/docs/en-GB/intlayer_with_next-intl.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +12 -6
- package/docs/en-GB/intlayer_with_nextjs_15.md +12 -6
- package/docs/en-GB/intlayer_with_nextjs_16.md +12 -6
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/en-GB/intlayer_with_nuxt.md +40 -33
- package/docs/en-GB/intlayer_with_react_native+expo.md +9 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +9 -2
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/en-GB/intlayer_with_storybook.md +9 -2
- package/docs/en-GB/intlayer_with_svelte_kit.md +13 -6
- package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -6
- package/docs/en-GB/intlayer_with_tanstack.md +13 -6
- package/docs/en-GB/intlayer_with_vanilla.md +12 -6
- package/docs/en-GB/intlayer_with_vite+lit.md +13 -6
- package/docs/en-GB/intlayer_with_vite+preact.md +13 -6
- package/docs/en-GB/intlayer_with_vite+react.md +12 -6
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/en-GB/intlayer_with_vite+solid.md +13 -6
- package/docs/en-GB/intlayer_with_vite+svelte.md +88 -82
- package/docs/en-GB/intlayer_with_vite+vanilla.md +12 -6
- package/docs/en-GB/intlayer_with_vite+vue.md +13 -6
- package/docs/en-GB/introduction.md +43 -46
- package/docs/es/cli/build.md +1 -1
- package/docs/es/cli/index.md +1 -1
- package/docs/es/interest_of_intlayer.md +8 -0
- package/docs/es/intlayer_with_adonisjs.md +2 -2
- package/docs/es/intlayer_with_analog.md +13 -6
- package/docs/es/intlayer_with_angular_19.md +13 -6
- package/docs/es/intlayer_with_angular_21.md +13 -6
- package/docs/es/intlayer_with_astro.md +62 -56
- package/docs/es/intlayer_with_astro_lit.md +65 -58
- package/docs/es/intlayer_with_astro_preact.md +59 -52
- package/docs/es/intlayer_with_astro_react.md +61 -54
- package/docs/es/intlayer_with_astro_solid.md +61 -54
- package/docs/es/intlayer_with_astro_svelte.md +61 -54
- package/docs/es/intlayer_with_astro_vanilla.md +61 -54
- package/docs/es/intlayer_with_astro_vue.md +61 -54
- package/docs/es/intlayer_with_create_react_app.md +5 -6
- package/docs/es/intlayer_with_express.md +2 -2
- package/docs/es/intlayer_with_fastify.md +2 -2
- package/docs/es/intlayer_with_hono.md +2 -2
- package/docs/es/intlayer_with_lynx+react.md +9 -2
- package/docs/es/intlayer_with_nestjs.md +2 -13
- package/docs/es/intlayer_with_next-i18next.md +2 -2
- package/docs/es/intlayer_with_next-intl.md +2 -2
- package/docs/es/intlayer_with_nextjs_14.md +12 -6
- package/docs/es/intlayer_with_nextjs_15.md +12 -6
- package/docs/es/intlayer_with_nextjs_16.md +31 -26
- package/docs/es/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/es/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/es/intlayer_with_nuxt.md +40 -33
- package/docs/es/intlayer_with_react_native+expo.md +9 -2
- package/docs/es/intlayer_with_react_router_v7.md +9 -2
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/es/intlayer_with_storybook.md +9 -2
- package/docs/es/intlayer_with_svelte_kit.md +12 -6
- package/docs/es/intlayer_with_tanstack+solid.md +13 -6
- package/docs/es/intlayer_with_tanstack.md +13 -6
- package/docs/es/intlayer_with_vanilla.md +12 -6
- package/docs/es/intlayer_with_vite+lit.md +13 -6
- package/docs/es/intlayer_with_vite+preact.md +12 -6
- package/docs/es/intlayer_with_vite+react.md +12 -6
- package/docs/es/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/es/intlayer_with_vite+solid.md +12 -6
- package/docs/es/intlayer_with_vite+svelte.md +12 -6
- package/docs/es/intlayer_with_vite+vanilla.md +12 -6
- package/docs/es/intlayer_with_vite+vue.md +12 -6
- package/docs/es/introduction.md +43 -28
- package/docs/fr/cli/build.md +1 -1
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/interest_of_intlayer.md +8 -0
- package/docs/fr/intlayer_with_adonisjs.md +2 -2
- package/docs/fr/intlayer_with_analog.md +13 -6
- package/docs/fr/intlayer_with_angular_19.md +13 -6
- package/docs/fr/intlayer_with_angular_21.md +13 -6
- package/docs/fr/intlayer_with_astro.md +63 -57
- package/docs/fr/intlayer_with_astro_lit.md +66 -59
- package/docs/fr/intlayer_with_astro_preact.md +66 -59
- package/docs/fr/intlayer_with_astro_react.md +62 -55
- package/docs/fr/intlayer_with_astro_solid.md +62 -55
- package/docs/fr/intlayer_with_astro_svelte.md +62 -55
- package/docs/fr/intlayer_with_astro_vanilla.md +62 -55
- package/docs/fr/intlayer_with_astro_vue.md +62 -55
- package/docs/fr/intlayer_with_create_react_app.md +5 -6
- package/docs/fr/intlayer_with_express.md +2 -2
- package/docs/fr/intlayer_with_fastify.md +2 -2
- package/docs/fr/intlayer_with_hono.md +2 -2
- package/docs/fr/intlayer_with_lynx+react.md +9 -2
- package/docs/fr/intlayer_with_nestjs.md +2 -13
- package/docs/fr/intlayer_with_next-i18next.md +2 -2
- package/docs/fr/intlayer_with_next-intl.md +2 -2
- package/docs/fr/intlayer_with_nextjs_14.md +12 -6
- package/docs/fr/intlayer_with_nextjs_15.md +12 -6
- package/docs/fr/intlayer_with_nextjs_16.md +12 -6
- package/docs/fr/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/fr/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/fr/intlayer_with_nuxt.md +40 -33
- package/docs/fr/intlayer_with_react_native+expo.md +9 -2
- package/docs/fr/intlayer_with_react_router_v7.md +9 -2
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/fr/intlayer_with_storybook.md +9 -2
- package/docs/fr/intlayer_with_svelte_kit.md +12 -6
- package/docs/fr/intlayer_with_tanstack+solid.md +13 -6
- package/docs/fr/intlayer_with_tanstack.md +14 -7
- package/docs/fr/intlayer_with_vanilla.md +12 -6
- package/docs/fr/intlayer_with_vite+lit.md +13 -6
- package/docs/fr/intlayer_with_vite+preact.md +12 -6
- package/docs/fr/intlayer_with_vite+react.md +12 -6
- package/docs/fr/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/fr/intlayer_with_vite+solid.md +12 -6
- package/docs/fr/intlayer_with_vite+svelte.md +12 -6
- package/docs/fr/intlayer_with_vite+vanilla.md +12 -6
- package/docs/fr/intlayer_with_vite+vue.md +12 -6
- package/docs/fr/introduction.md +43 -28
- package/docs/hi/cli/build.md +1 -1
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/intlayer_with_adonisjs.md +2 -2
- package/docs/hi/intlayer_with_analog.md +6 -6
- package/docs/hi/intlayer_with_angular_19.md +6 -6
- package/docs/hi/intlayer_with_angular_21.md +6 -6
- package/docs/hi/intlayer_with_astro.md +55 -56
- package/docs/hi/intlayer_with_astro_lit.md +58 -58
- package/docs/hi/intlayer_with_astro_preact.md +52 -52
- package/docs/hi/intlayer_with_astro_react.md +54 -54
- package/docs/hi/intlayer_with_astro_solid.md +54 -54
- package/docs/hi/intlayer_with_astro_svelte.md +54 -54
- package/docs/hi/intlayer_with_astro_vanilla.md +54 -54
- package/docs/hi/intlayer_with_astro_vue.md +54 -54
- package/docs/hi/intlayer_with_create_react_app.md +5 -6
- package/docs/hi/intlayer_with_express.md +2 -2
- package/docs/hi/intlayer_with_fastify.md +2 -2
- package/docs/hi/intlayer_with_hono.md +2 -2
- package/docs/hi/intlayer_with_lynx+react.md +2 -2
- package/docs/hi/intlayer_with_nestjs.md +2 -13
- package/docs/hi/intlayer_with_next-i18next.md +2 -2
- package/docs/hi/intlayer_with_next-intl.md +2 -2
- package/docs/hi/intlayer_with_nextjs_14.md +5 -6
- package/docs/hi/intlayer_with_nextjs_15.md +5 -6
- package/docs/hi/intlayer_with_nextjs_16.md +2 -2
- package/docs/hi/intlayer_with_nextjs_compiler.md +52 -54
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +5 -6
- package/docs/hi/intlayer_with_nextjs_page_router.md +5 -6
- package/docs/hi/intlayer_with_nuxt.md +33 -33
- package/docs/hi/intlayer_with_react_native+expo.md +2 -2
- package/docs/hi/intlayer_with_react_router_v7.md +2 -2
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/hi/intlayer_with_storybook.md +2 -2
- package/docs/hi/intlayer_with_svelte_kit.md +16 -17
- package/docs/hi/intlayer_with_tanstack+solid.md +6 -6
- package/docs/hi/intlayer_with_tanstack.md +6 -6
- package/docs/hi/intlayer_with_vanilla.md +5 -6
- package/docs/hi/intlayer_with_vite+lit.md +6 -6
- package/docs/hi/intlayer_with_vite+preact.md +61 -62
- package/docs/hi/intlayer_with_vite+react.md +53 -55
- package/docs/hi/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/hi/intlayer_with_vite+solid.md +46 -47
- package/docs/hi/intlayer_with_vite+svelte.md +33 -34
- package/docs/hi/intlayer_with_vite+vanilla.md +5 -6
- package/docs/hi/intlayer_with_vite+vue.md +53 -54
- package/docs/hi/introduction.md +43 -28
- package/docs/id/cli/build.md +1 -1
- package/docs/id/cli/index.md +1 -1
- package/docs/id/interest_of_intlayer.md +8 -0
- package/docs/id/intlayer_with_adonisjs.md +2 -2
- package/docs/id/intlayer_with_analog.md +13 -6
- package/docs/id/intlayer_with_angular_19.md +13 -6
- package/docs/id/intlayer_with_angular_21.md +13 -6
- package/docs/id/intlayer_with_astro.md +62 -56
- package/docs/id/intlayer_with_astro_lit.md +65 -58
- package/docs/id/intlayer_with_astro_preact.md +59 -52
- package/docs/id/intlayer_with_astro_react.md +61 -54
- package/docs/id/intlayer_with_astro_solid.md +61 -54
- package/docs/id/intlayer_with_astro_svelte.md +61 -54
- package/docs/id/intlayer_with_astro_vanilla.md +61 -54
- package/docs/id/intlayer_with_astro_vue.md +61 -54
- package/docs/id/intlayer_with_create_react_app.md +5 -6
- package/docs/id/intlayer_with_express.md +2 -2
- package/docs/id/intlayer_with_fastify.md +2 -2
- package/docs/id/intlayer_with_hono.md +2 -2
- package/docs/id/intlayer_with_lynx+react.md +9 -2
- package/docs/id/intlayer_with_nestjs.md +2 -12
- package/docs/id/intlayer_with_next-i18next.md +2 -2
- package/docs/id/intlayer_with_next-intl.md +2 -2
- package/docs/id/intlayer_with_nextjs_14.md +12 -6
- package/docs/id/intlayer_with_nextjs_15.md +12 -6
- package/docs/id/intlayer_with_nextjs_16.md +9 -2
- package/docs/id/intlayer_with_nextjs_compiler.md +74 -77
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/id/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/id/intlayer_with_nuxt.md +40 -33
- package/docs/id/intlayer_with_react_native+expo.md +9 -2
- package/docs/id/intlayer_with_react_router_v7.md +9 -2
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/id/intlayer_with_storybook.md +9 -2
- package/docs/id/intlayer_with_svelte_kit.md +23 -17
- package/docs/id/intlayer_with_tanstack+solid.md +13 -6
- package/docs/id/intlayer_with_tanstack.md +13 -6
- package/docs/id/intlayer_with_vanilla.md +12 -6
- package/docs/id/intlayer_with_vite+lit.md +13 -6
- package/docs/id/intlayer_with_vite+preact.md +68 -62
- package/docs/id/intlayer_with_vite+react.md +60 -55
- package/docs/id/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/id/intlayer_with_vite+solid.md +53 -47
- package/docs/id/intlayer_with_vite+svelte.md +40 -34
- package/docs/id/intlayer_with_vite+vanilla.md +12 -6
- package/docs/id/intlayer_with_vite+vue.md +60 -54
- package/docs/id/introduction.md +43 -28
- package/docs/it/cli/build.md +1 -1
- package/docs/it/cli/index.md +1 -1
- package/docs/it/interest_of_intlayer.md +8 -0
- package/docs/it/intlayer_with_adonisjs.md +2 -2
- package/docs/it/intlayer_with_analog.md +13 -6
- package/docs/it/intlayer_with_angular_19.md +13 -6
- package/docs/it/intlayer_with_angular_21.md +13 -6
- package/docs/it/intlayer_with_astro.md +62 -56
- package/docs/it/intlayer_with_astro_lit.md +65 -58
- package/docs/it/intlayer_with_astro_preact.md +59 -52
- package/docs/it/intlayer_with_astro_react.md +61 -54
- package/docs/it/intlayer_with_astro_solid.md +61 -54
- package/docs/it/intlayer_with_astro_svelte.md +61 -54
- package/docs/it/intlayer_with_astro_vanilla.md +61 -54
- package/docs/it/intlayer_with_astro_vue.md +61 -54
- package/docs/it/intlayer_with_create_react_app.md +5 -6
- package/docs/it/intlayer_with_express.md +2 -2
- package/docs/it/intlayer_with_fastify.md +2 -2
- package/docs/it/intlayer_with_hono.md +2 -2
- package/docs/it/intlayer_with_lynx+react.md +9 -2
- package/docs/it/intlayer_with_nestjs.md +2 -13
- package/docs/it/intlayer_with_next-i18next.md +2 -2
- package/docs/it/intlayer_with_next-intl.md +2 -2
- package/docs/it/intlayer_with_nextjs_14.md +32 -27
- package/docs/it/intlayer_with_nextjs_15.md +12 -6
- package/docs/it/intlayer_with_nextjs_16.md +9 -2
- package/docs/it/intlayer_with_nextjs_compiler.md +52 -54
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/it/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/it/intlayer_with_nuxt.md +40 -33
- package/docs/it/intlayer_with_react_native+expo.md +9 -2
- package/docs/it/intlayer_with_react_router_v7.md +9 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/it/intlayer_with_storybook.md +9 -2
- package/docs/it/intlayer_with_svelte_kit.md +55 -49
- package/docs/it/intlayer_with_tanstack+solid.md +13 -6
- package/docs/it/intlayer_with_tanstack.md +13 -6
- package/docs/it/intlayer_with_vanilla.md +12 -6
- package/docs/it/intlayer_with_vite+lit.md +13 -6
- package/docs/it/intlayer_with_vite+preact.md +68 -62
- package/docs/it/intlayer_with_vite+react.md +60 -55
- package/docs/it/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/it/intlayer_with_vite+solid.md +53 -47
- package/docs/it/intlayer_with_vite+svelte.md +40 -34
- package/docs/it/intlayer_with_vite+vanilla.md +12 -6
- package/docs/it/intlayer_with_vite+vue.md +82 -76
- package/docs/it/introduction.md +43 -28
- package/docs/ja/cli/build.md +1 -1
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/intlayer_with_adonisjs.md +2 -2
- package/docs/ja/intlayer_with_analog.md +6 -6
- package/docs/ja/intlayer_with_angular_19.md +6 -6
- package/docs/ja/intlayer_with_angular_21.md +6 -6
- package/docs/ja/intlayer_with_astro.md +55 -56
- package/docs/ja/intlayer_with_astro_lit.md +58 -58
- package/docs/ja/intlayer_with_astro_preact.md +58 -58
- package/docs/ja/intlayer_with_astro_react.md +54 -54
- package/docs/ja/intlayer_with_astro_solid.md +54 -54
- package/docs/ja/intlayer_with_astro_svelte.md +54 -54
- package/docs/ja/intlayer_with_astro_vanilla.md +54 -54
- package/docs/ja/intlayer_with_astro_vue.md +54 -54
- package/docs/ja/intlayer_with_create_react_app.md +5 -6
- package/docs/ja/intlayer_with_express.md +2 -2
- package/docs/ja/intlayer_with_fastify.md +2 -2
- package/docs/ja/intlayer_with_hono.md +2 -2
- package/docs/ja/intlayer_with_lynx+react.md +2 -2
- package/docs/ja/intlayer_with_nestjs.md +2 -13
- package/docs/ja/intlayer_with_next-i18next.md +2 -2
- package/docs/ja/intlayer_with_next-intl.md +2 -2
- package/docs/ja/intlayer_with_nextjs_14.md +5 -6
- package/docs/ja/intlayer_with_nextjs_15.md +5 -6
- package/docs/ja/intlayer_with_nextjs_16.md +2 -2
- package/docs/ja/intlayer_with_nextjs_compiler.md +74 -77
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +5 -6
- package/docs/ja/intlayer_with_nextjs_page_router.md +5 -6
- package/docs/ja/intlayer_with_nuxt.md +33 -33
- 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 +2 -2
- package/docs/ja/intlayer_with_storybook.md +2 -2
- package/docs/ja/intlayer_with_svelte_kit.md +5 -6
- package/docs/ja/intlayer_with_tanstack+solid.md +6 -6
- package/docs/ja/intlayer_with_tanstack.md +6 -6
- package/docs/ja/intlayer_with_vanilla.md +5 -6
- package/docs/ja/intlayer_with_vite+lit.md +6 -6
- package/docs/ja/intlayer_with_vite+preact.md +5 -6
- package/docs/ja/intlayer_with_vite+react.md +2 -2
- package/docs/ja/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/ja/intlayer_with_vite+solid.md +46 -47
- package/docs/ja/intlayer_with_vite+svelte.md +33 -34
- package/docs/ja/intlayer_with_vite+vanilla.md +5 -6
- package/docs/ja/intlayer_with_vite+vue.md +53 -54
- package/docs/ja/introduction.md +43 -28
- package/docs/ko/cli/build.md +1 -1
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/interest_of_intlayer.md +8 -0
- package/docs/ko/intlayer_with_adonisjs.md +2 -2
- package/docs/ko/intlayer_with_analog.md +9 -2
- package/docs/ko/intlayer_with_angular_19.md +9 -2
- package/docs/ko/intlayer_with_angular_21.md +9 -2
- package/docs/ko/intlayer_with_astro.md +9 -2
- package/docs/ko/intlayer_with_astro_lit.md +9 -2
- package/docs/ko/intlayer_with_astro_preact.md +9 -2
- package/docs/ko/intlayer_with_astro_react.md +9 -2
- package/docs/ko/intlayer_with_astro_solid.md +9 -2
- package/docs/ko/intlayer_with_astro_svelte.md +9 -2
- package/docs/ko/intlayer_with_astro_vanilla.md +9 -2
- package/docs/ko/intlayer_with_astro_vue.md +9 -2
- package/docs/ko/intlayer_with_create_react_app.md +5 -6
- package/docs/ko/intlayer_with_express.md +2 -2
- package/docs/ko/intlayer_with_fastify.md +2 -2
- package/docs/ko/intlayer_with_hono.md +2 -2
- package/docs/ko/intlayer_with_lynx+react.md +9 -2
- package/docs/ko/intlayer_with_nestjs.md +2 -13
- package/docs/ko/intlayer_with_next-i18next.md +2 -2
- package/docs/ko/intlayer_with_next-intl.md +2 -2
- package/docs/ko/intlayer_with_nextjs_14.md +9 -2
- package/docs/ko/intlayer_with_nextjs_15.md +9 -2
- package/docs/ko/intlayer_with_nextjs_16.md +12 -6
- package/docs/ko/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/ko/intlayer_with_nextjs_page_router.md +9 -2
- package/docs/ko/intlayer_with_nuxt.md +9 -2
- package/docs/ko/intlayer_with_react_native+expo.md +9 -2
- package/docs/ko/intlayer_with_react_router_v7.md +113 -106
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +113 -106
- package/docs/ko/intlayer_with_storybook.md +9 -2
- package/docs/ko/intlayer_with_svelte_kit.md +12 -6
- package/docs/ko/intlayer_with_tanstack+solid.md +9 -2
- package/docs/ko/intlayer_with_tanstack.md +9 -2
- package/docs/ko/intlayer_with_vanilla.md +9 -2
- package/docs/ko/intlayer_with_vite+lit.md +9 -2
- package/docs/ko/intlayer_with_vite+preact.md +12 -6
- package/docs/ko/intlayer_with_vite+react.md +12 -6
- package/docs/ko/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/ko/intlayer_with_vite+solid.md +12 -6
- package/docs/ko/intlayer_with_vite+svelte.md +109 -104
- package/docs/ko/intlayer_with_vite+vanilla.md +9 -2
- package/docs/ko/intlayer_with_vite+vue.md +12 -6
- package/docs/ko/introduction.md +43 -28
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/interest_of_intlayer.md +8 -0
- package/docs/nl/intlayer_with_angular_21.md +6 -6
- package/docs/nl/intlayer_with_fastify.md +2 -2
- package/docs/nl/intlayer_with_hono.md +2 -2
- package/docs/nl/intlayer_with_storybook.md +2 -2
- package/docs/nl/intlayer_with_vanilla.md +5 -6
- package/docs/nl/intlayer_with_vite+lit.md +6 -6
- package/docs/nl/intlayer_with_vite+vanilla.md +5 -6
- package/docs/nl/introduction.md +43 -28
- package/docs/pl/cli/build.md +1 -1
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/interest_of_intlayer.md +8 -0
- package/docs/pl/intlayer_with_adonisjs.md +2 -2
- package/docs/pl/intlayer_with_analog.md +6 -6
- package/docs/pl/intlayer_with_angular_19.md +6 -6
- package/docs/pl/intlayer_with_angular_21.md +6 -6
- package/docs/pl/intlayer_with_astro.md +55 -56
- package/docs/pl/intlayer_with_astro_lit.md +58 -58
- package/docs/pl/intlayer_with_astro_preact.md +52 -52
- package/docs/pl/intlayer_with_astro_react.md +54 -54
- package/docs/pl/intlayer_with_astro_solid.md +54 -54
- package/docs/pl/intlayer_with_astro_svelte.md +54 -54
- package/docs/pl/intlayer_with_astro_vanilla.md +54 -54
- package/docs/pl/intlayer_with_astro_vue.md +54 -54
- package/docs/pl/intlayer_with_create_react_app.md +5 -6
- package/docs/pl/intlayer_with_express.md +2 -2
- package/docs/pl/intlayer_with_fastify.md +2 -2
- package/docs/pl/intlayer_with_hono.md +2 -2
- package/docs/pl/intlayer_with_lynx+react.md +2 -2
- package/docs/pl/intlayer_with_nestjs.md +2 -12
- package/docs/pl/intlayer_with_next-i18next.md +2 -2
- package/docs/pl/intlayer_with_next-intl.md +2 -2
- package/docs/pl/intlayer_with_nextjs_14.md +5 -6
- package/docs/pl/intlayer_with_nextjs_15.md +5 -6
- package/docs/pl/intlayer_with_nextjs_16.md +70 -72
- package/docs/pl/intlayer_with_nextjs_compiler.md +52 -54
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +5 -6
- package/docs/pl/intlayer_with_nextjs_page_router.md +5 -6
- package/docs/pl/intlayer_with_nuxt.md +33 -33
- package/docs/pl/intlayer_with_react_native+expo.md +2 -2
- package/docs/pl/intlayer_with_react_router_v7.md +2 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/pl/intlayer_with_storybook.md +2 -2
- package/docs/pl/intlayer_with_svelte_kit.md +16 -17
- package/docs/pl/intlayer_with_tanstack+solid.md +6 -6
- package/docs/pl/intlayer_with_tanstack.md +6 -6
- package/docs/pl/intlayer_with_vanilla.md +5 -6
- package/docs/pl/intlayer_with_vite+lit.md +6 -6
- package/docs/pl/intlayer_with_vite+preact.md +61 -62
- package/docs/pl/intlayer_with_vite+react.md +53 -55
- package/docs/pl/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/pl/intlayer_with_vite+solid.md +46 -47
- package/docs/pl/intlayer_with_vite+svelte.md +33 -34
- package/docs/pl/intlayer_with_vite+vanilla.md +5 -6
- package/docs/pl/intlayer_with_vite+vue.md +75 -76
- package/docs/pl/introduction.md +43 -28
- package/docs/pt/cli/build.md +1 -1
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/interest_of_intlayer.md +8 -0
- package/docs/pt/intlayer_with_adonisjs.md +2 -2
- package/docs/pt/intlayer_with_analog.md +13 -6
- package/docs/pt/intlayer_with_angular_19.md +13 -6
- package/docs/pt/intlayer_with_angular_21.md +13 -6
- package/docs/pt/intlayer_with_astro.md +62 -56
- package/docs/pt/intlayer_with_astro_lit.md +65 -58
- package/docs/pt/intlayer_with_astro_preact.md +59 -52
- package/docs/pt/intlayer_with_astro_react.md +61 -54
- package/docs/pt/intlayer_with_astro_solid.md +61 -54
- package/docs/pt/intlayer_with_astro_svelte.md +61 -54
- package/docs/pt/intlayer_with_astro_vanilla.md +61 -54
- package/docs/pt/intlayer_with_astro_vue.md +61 -54
- package/docs/pt/intlayer_with_create_react_app.md +5 -6
- package/docs/pt/intlayer_with_express.md +2 -2
- package/docs/pt/intlayer_with_fastify.md +2 -2
- package/docs/pt/intlayer_with_hono.md +2 -2
- package/docs/pt/intlayer_with_lynx+react.md +9 -2
- package/docs/pt/intlayer_with_nestjs.md +2 -13
- package/docs/pt/intlayer_with_next-i18next.md +2 -2
- package/docs/pt/intlayer_with_next-intl.md +2 -2
- package/docs/pt/intlayer_with_nextjs_14.md +12 -6
- package/docs/pt/intlayer_with_nextjs_15.md +12 -6
- package/docs/pt/intlayer_with_nextjs_16.md +31 -26
- package/docs/pt/intlayer_with_nextjs_compiler.md +5 -6
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/pt/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/pt/intlayer_with_nuxt.md +40 -33
- package/docs/pt/intlayer_with_react_native+expo.md +9 -2
- package/docs/pt/intlayer_with_react_router_v7.md +9 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/pt/intlayer_with_storybook.md +9 -2
- package/docs/pt/intlayer_with_svelte_kit.md +55 -49
- package/docs/pt/intlayer_with_tanstack+solid.md +13 -6
- package/docs/pt/intlayer_with_tanstack.md +13 -6
- package/docs/pt/intlayer_with_vanilla.md +12 -6
- package/docs/pt/intlayer_with_vite+lit.md +13 -6
- package/docs/pt/intlayer_with_vite+preact.md +12 -6
- package/docs/pt/intlayer_with_vite+react.md +12 -6
- package/docs/pt/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/pt/intlayer_with_vite+solid.md +12 -6
- package/docs/pt/intlayer_with_vite+svelte.md +40 -34
- package/docs/pt/intlayer_with_vite+vanilla.md +12 -6
- package/docs/pt/intlayer_with_vite+vue.md +12 -6
- package/docs/pt/introduction.md +43 -28
- package/docs/ru/cli/build.md +1 -1
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/interest_of_intlayer.md +8 -0
- package/docs/ru/intlayer_with_adonisjs.md +2 -2
- package/docs/ru/intlayer_with_analog.md +13 -6
- package/docs/ru/intlayer_with_angular_19.md +13 -6
- package/docs/ru/intlayer_with_angular_21.md +13 -6
- package/docs/ru/intlayer_with_astro.md +62 -56
- package/docs/ru/intlayer_with_astro_lit.md +65 -58
- package/docs/ru/intlayer_with_astro_preact.md +65 -58
- package/docs/ru/intlayer_with_astro_react.md +61 -54
- package/docs/ru/intlayer_with_astro_solid.md +61 -54
- package/docs/ru/intlayer_with_astro_svelte.md +61 -54
- package/docs/ru/intlayer_with_astro_vanilla.md +61 -54
- package/docs/ru/intlayer_with_astro_vue.md +61 -54
- package/docs/ru/intlayer_with_create_react_app.md +5 -6
- package/docs/ru/intlayer_with_express.md +2 -2
- package/docs/ru/intlayer_with_fastify.md +2 -2
- package/docs/ru/intlayer_with_hono.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +9 -2
- package/docs/ru/intlayer_with_nestjs.md +2 -13
- package/docs/ru/intlayer_with_next-i18next.md +2 -2
- package/docs/ru/intlayer_with_next-intl.md +2 -2
- package/docs/ru/intlayer_with_nextjs_14.md +12 -6
- package/docs/ru/intlayer_with_nextjs_15.md +12 -6
- package/docs/ru/intlayer_with_nextjs_16.md +77 -72
- package/docs/ru/intlayer_with_nextjs_compiler.md +52 -54
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/ru/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/ru/intlayer_with_nuxt.md +40 -33
- package/docs/ru/intlayer_with_react_native+expo.md +9 -2
- package/docs/ru/intlayer_with_react_router_v7.md +9 -2
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/ru/intlayer_with_storybook.md +9 -2
- package/docs/ru/intlayer_with_svelte_kit.md +23 -17
- package/docs/ru/intlayer_with_tanstack+solid.md +13 -6
- package/docs/ru/intlayer_with_tanstack.md +13 -6
- package/docs/ru/intlayer_with_vanilla.md +12 -6
- package/docs/ru/intlayer_with_vite+lit.md +13 -6
- package/docs/ru/intlayer_with_vite+preact.md +68 -62
- package/docs/ru/intlayer_with_vite+react.md +59 -54
- package/docs/ru/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/ru/intlayer_with_vite+solid.md +53 -47
- package/docs/ru/intlayer_with_vite+svelte.md +40 -34
- package/docs/ru/intlayer_with_vite+vanilla.md +12 -6
- package/docs/ru/intlayer_with_vite+vue.md +60 -54
- package/docs/ru/introduction.md +43 -28
- package/docs/tr/cli/build.md +1 -1
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/interest_of_intlayer.md +8 -0
- package/docs/tr/intlayer_with_adonisjs.md +2 -2
- package/docs/tr/intlayer_with_analog.md +13 -6
- package/docs/tr/intlayer_with_angular_19.md +13 -6
- package/docs/tr/intlayer_with_angular_21.md +13 -6
- package/docs/tr/intlayer_with_astro.md +62 -56
- package/docs/tr/intlayer_with_astro_lit.md +73 -66
- package/docs/tr/intlayer_with_astro_preact.md +67 -60
- package/docs/tr/intlayer_with_astro_react.md +69 -62
- package/docs/tr/intlayer_with_astro_solid.md +69 -62
- package/docs/tr/intlayer_with_astro_svelte.md +69 -62
- package/docs/tr/intlayer_with_astro_vanilla.md +69 -62
- package/docs/tr/intlayer_with_astro_vue.md +61 -54
- package/docs/tr/intlayer_with_create_react_app.md +5 -6
- package/docs/tr/intlayer_with_express.md +2 -2
- package/docs/tr/intlayer_with_fastify.md +2 -2
- package/docs/tr/intlayer_with_hono.md +2 -2
- package/docs/tr/intlayer_with_lynx+react.md +9 -2
- package/docs/tr/intlayer_with_nestjs.md +2 -13
- package/docs/tr/intlayer_with_next-i18next.md +2 -2
- package/docs/tr/intlayer_with_next-intl.md +2 -2
- package/docs/tr/intlayer_with_nextjs_14.md +5 -6
- package/docs/tr/intlayer_with_nextjs_15.md +12 -6
- package/docs/tr/intlayer_with_nextjs_16.md +77 -72
- package/docs/tr/intlayer_with_nextjs_compiler.md +74 -77
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/tr/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/tr/intlayer_with_nuxt.md +40 -33
- package/docs/tr/intlayer_with_react_native+expo.md +9 -2
- package/docs/tr/intlayer_with_react_router_v7.md +9 -2
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/tr/intlayer_with_storybook.md +9 -2
- package/docs/tr/intlayer_with_svelte_kit.md +23 -17
- package/docs/tr/intlayer_with_tanstack+solid.md +13 -6
- package/docs/tr/intlayer_with_tanstack.md +13 -6
- package/docs/tr/intlayer_with_vanilla.md +12 -6
- package/docs/tr/intlayer_with_vite+lit.md +13 -6
- package/docs/tr/intlayer_with_vite+preact.md +68 -62
- package/docs/tr/intlayer_with_vite+react.md +60 -55
- package/docs/tr/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/tr/intlayer_with_vite+solid.md +53 -47
- package/docs/tr/intlayer_with_vite+svelte.md +40 -34
- package/docs/tr/intlayer_with_vite+vanilla.md +12 -6
- package/docs/tr/intlayer_with_vite+vue.md +60 -54
- package/docs/tr/introduction.md +43 -28
- package/docs/uk/cli/build.md +1 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/interest_of_intlayer.md +8 -0
- package/docs/uk/intlayer_with_adonisjs.md +2 -2
- package/docs/uk/intlayer_with_analog.md +13 -6
- package/docs/uk/intlayer_with_angular_19.md +13 -6
- package/docs/uk/intlayer_with_angular_21.md +13 -6
- package/docs/uk/intlayer_with_astro.md +62 -56
- package/docs/uk/intlayer_with_astro_lit.md +65 -58
- package/docs/uk/intlayer_with_astro_preact.md +59 -52
- package/docs/uk/intlayer_with_astro_react.md +61 -54
- package/docs/uk/intlayer_with_astro_solid.md +61 -54
- package/docs/uk/intlayer_with_astro_svelte.md +61 -54
- package/docs/uk/intlayer_with_astro_vanilla.md +61 -54
- package/docs/uk/intlayer_with_astro_vue.md +61 -54
- package/docs/uk/intlayer_with_create_react_app.md +5 -6
- package/docs/uk/intlayer_with_express.md +2 -2
- package/docs/uk/intlayer_with_fastify.md +2 -2
- package/docs/uk/intlayer_with_hono.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +9 -2
- package/docs/uk/intlayer_with_nestjs.md +2 -12
- package/docs/uk/intlayer_with_next-i18next.md +2 -2
- package/docs/uk/intlayer_with_next-intl.md +2 -2
- package/docs/uk/intlayer_with_nextjs_14.md +12 -6
- package/docs/uk/intlayer_with_nextjs_15.md +12 -6
- package/docs/uk/intlayer_with_nextjs_16.md +77 -72
- package/docs/uk/intlayer_with_nextjs_compiler.md +74 -77
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/uk/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/uk/intlayer_with_nuxt.md +40 -33
- package/docs/uk/intlayer_with_react_native+expo.md +9 -2
- package/docs/uk/intlayer_with_react_router_v7.md +9 -2
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/uk/intlayer_with_storybook.md +9 -2
- package/docs/uk/intlayer_with_svelte_kit.md +23 -17
- package/docs/uk/intlayer_with_tanstack+solid.md +13 -6
- package/docs/uk/intlayer_with_tanstack.md +13 -6
- package/docs/uk/intlayer_with_vanilla.md +12 -6
- package/docs/uk/intlayer_with_vite+lit.md +13 -6
- package/docs/uk/intlayer_with_vite+preact.md +68 -62
- package/docs/uk/intlayer_with_vite+react.md +60 -55
- package/docs/uk/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/uk/intlayer_with_vite+solid.md +53 -47
- package/docs/uk/intlayer_with_vite+svelte.md +40 -34
- package/docs/uk/intlayer_with_vite+vanilla.md +12 -6
- package/docs/uk/intlayer_with_vite+vue.md +60 -54
- package/docs/uk/introduction.md +43 -28
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/intlayer_with_angular_21.md +6 -6
- package/docs/ur/intlayer_with_fastify.md +2 -2
- package/docs/ur/intlayer_with_hono.md +2 -2
- package/docs/ur/intlayer_with_storybook.md +2 -2
- package/docs/ur/intlayer_with_vanilla.md +5 -6
- package/docs/ur/intlayer_with_vite+lit.md +6 -6
- package/docs/ur/intlayer_with_vite+vanilla.md +5 -6
- package/docs/ur/introduction.md +43 -28
- package/docs/vi/cli/build.md +1 -1
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/interest_of_intlayer.md +8 -0
- package/docs/vi/intlayer_with_adonisjs.md +2 -2
- package/docs/vi/intlayer_with_analog.md +13 -6
- package/docs/vi/intlayer_with_angular_19.md +13 -6
- package/docs/vi/intlayer_with_angular_21.md +13 -6
- package/docs/vi/intlayer_with_astro.md +62 -56
- package/docs/vi/intlayer_with_astro_lit.md +65 -58
- package/docs/vi/intlayer_with_astro_preact.md +59 -52
- package/docs/vi/intlayer_with_astro_react.md +61 -54
- package/docs/vi/intlayer_with_astro_solid.md +61 -54
- package/docs/vi/intlayer_with_astro_svelte.md +61 -54
- package/docs/vi/intlayer_with_astro_vanilla.md +61 -54
- package/docs/vi/intlayer_with_astro_vue.md +61 -54
- package/docs/vi/intlayer_with_create_react_app.md +5 -6
- package/docs/vi/intlayer_with_express.md +2 -2
- package/docs/vi/intlayer_with_fastify.md +2 -2
- package/docs/vi/intlayer_with_hono.md +2 -2
- package/docs/vi/intlayer_with_lynx+react.md +9 -2
- package/docs/vi/intlayer_with_nestjs.md +2 -12
- package/docs/vi/intlayer_with_next-i18next.md +2 -2
- package/docs/vi/intlayer_with_next-intl.md +2 -2
- package/docs/vi/intlayer_with_nextjs_14.md +12 -6
- package/docs/vi/intlayer_with_nextjs_15.md +9 -2
- package/docs/vi/intlayer_with_nextjs_16.md +77 -72
- package/docs/vi/intlayer_with_nextjs_compiler.md +74 -77
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +12 -6
- package/docs/vi/intlayer_with_nextjs_page_router.md +12 -6
- package/docs/vi/intlayer_with_nuxt.md +40 -33
- package/docs/vi/intlayer_with_react_native+expo.md +9 -2
- package/docs/vi/intlayer_with_react_router_v7.md +9 -2
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +9 -2
- package/docs/vi/intlayer_with_storybook.md +9 -2
- package/docs/vi/intlayer_with_svelte_kit.md +23 -17
- package/docs/vi/intlayer_with_tanstack+solid.md +13 -6
- package/docs/vi/intlayer_with_tanstack.md +13 -6
- package/docs/vi/intlayer_with_vanilla.md +12 -6
- package/docs/vi/intlayer_with_vite+lit.md +13 -6
- package/docs/vi/intlayer_with_vite+preact.md +68 -62
- package/docs/vi/intlayer_with_vite+react.md +60 -55
- package/docs/vi/intlayer_with_vite+react_compiler.md +5 -6
- package/docs/vi/intlayer_with_vite+solid.md +53 -47
- package/docs/vi/intlayer_with_vite+svelte.md +42 -36
- package/docs/vi/intlayer_with_vite+vanilla.md +12 -6
- package/docs/vi/intlayer_with_vite+vue.md +60 -54
- package/docs/vi/introduction.md +43 -28
- package/docs/zh/cli/build.md +1 -1
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/intlayer_with_adonisjs.md +2 -2
- package/docs/zh/intlayer_with_analog.md +2 -2
- package/docs/zh/intlayer_with_angular_19.md +2 -2
- package/docs/zh/intlayer_with_angular_21.md +6 -6
- package/docs/zh/intlayer_with_astro.md +2 -2
- package/docs/zh/intlayer_with_astro_lit.md +2 -2
- package/docs/zh/intlayer_with_astro_preact.md +2 -2
- package/docs/zh/intlayer_with_astro_react.md +2 -2
- package/docs/zh/intlayer_with_astro_solid.md +2 -2
- package/docs/zh/intlayer_with_astro_svelte.md +2 -2
- package/docs/zh/intlayer_with_astro_vanilla.md +2 -2
- package/docs/zh/intlayer_with_astro_vue.md +2 -2
- package/docs/zh/intlayer_with_create_react_app.md +2 -2
- package/docs/zh/intlayer_with_express.md +2 -2
- package/docs/zh/intlayer_with_fastify.md +2 -2
- package/docs/zh/intlayer_with_hono.md +2 -2
- package/docs/zh/intlayer_with_lynx+react.md +2 -2
- package/docs/zh/intlayer_with_nestjs.md +2 -13
- package/docs/zh/intlayer_with_next-i18next.md +2 -2
- package/docs/zh/intlayer_with_next-intl.md +2 -2
- package/docs/zh/intlayer_with_nextjs_14.md +5 -6
- package/docs/zh/intlayer_with_nextjs_15.md +5 -6
- package/docs/zh/intlayer_with_nextjs_16.md +5 -6
- package/docs/zh/intlayer_with_nextjs_compiler.md +157 -161
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +92 -94
- package/docs/zh/intlayer_with_nextjs_page_router.md +5 -6
- package/docs/zh/intlayer_with_nuxt.md +33 -33
- package/docs/zh/intlayer_with_react_native+expo.md +2 -2
- package/docs/zh/intlayer_with_react_router_v7.md +2 -2
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/zh/intlayer_with_storybook.md +2 -2
- package/docs/zh/intlayer_with_svelte_kit.md +228 -229
- package/docs/zh/intlayer_with_tanstack+solid.md +2 -2
- package/docs/zh/intlayer_with_tanstack.md +2 -2
- 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 +102 -104
- package/docs/zh/intlayer_with_vite+react.md +53 -55
- package/docs/zh/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/zh/intlayer_with_vite+solid.md +46 -47
- package/docs/zh/intlayer_with_vite+svelte.md +33 -34
- package/docs/zh/intlayer_with_vite+vanilla.md +2 -2
- package/docs/zh/intlayer_with_vite+vue.md +75 -76
- package/docs/zh/introduction.md +43 -28
- package/docs/zh-TW/intlayer_with_angular_21.md +6 -6
- package/docs/zh-TW/introduction.md +43 -28
- package/package.json +7 -7
- package/src/common.ts +1 -1
|
@@ -81,6 +81,7 @@ Antes de mergulharmos na implementação, aqui estão algumas práticas que voc
|
|
|
81
81
|
title="Demo CodeSandbox - Como Internacionalizar sua aplicação usando Intlayer"
|
|
82
82
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
83
83
|
loading="lazy"
|
|
84
|
+
/>
|
|
84
85
|
|
|
85
86
|
> Veja [Application Template](https://github.com/aymericzip/next-i18next-template) no GitHub.
|
|
86
87
|
|
|
@@ -117,7 +118,9 @@ Aqui está a estrutura do projeto que vamos criar:
|
|
|
117
118
|
└── ServerComponent.tsx
|
|
118
119
|
```
|
|
119
120
|
|
|
120
|
-
|
|
121
|
+
<Steps>
|
|
122
|
+
|
|
123
|
+
<Step number={1} title="Instalar Dependências">
|
|
121
124
|
|
|
122
125
|
Instale os pacotes necessários usando npm:
|
|
123
126
|
|
|
@@ -137,7 +140,9 @@ yarn add i18next react-i18next i18next-resources-to-backend
|
|
|
137
140
|
- **react-i18next**: Bindings do React para i18next que fornecem hooks como `useTranslation` para componentes cliente.
|
|
138
141
|
- **i18next-resources-to-backend**: Um plugin que permite o carregamento dinâmico dos arquivos de tradução, permitindo carregar apenas os namespaces que você precisa.
|
|
139
142
|
|
|
140
|
-
|
|
143
|
+
</Step>
|
|
144
|
+
|
|
145
|
+
<Step number={2} title="Configure Seu Projeto">
|
|
141
146
|
|
|
142
147
|
Crie um arquivo de configuração para definir os seus locales suportados, o locale padrão e funções auxiliares para a localização de URLs. Este arquivo serve como a fonte única de verdade para a sua configuração i18n e garante segurança de tipos em toda a sua aplicação.
|
|
143
148
|
|
|
@@ -190,7 +195,9 @@ export function getCookie(locale: Locale) {
|
|
|
190
195
|
}
|
|
191
196
|
```
|
|
192
197
|
|
|
193
|
-
|
|
198
|
+
</Step>
|
|
199
|
+
|
|
200
|
+
<Step number={3} title="Centralizar Namespaces de Tradução">
|
|
194
201
|
|
|
195
202
|
Crie uma fonte única de verdade para cada namespace que sua aplicação expõe. Reutilizar essa lista mantém o código do servidor, cliente e ferramentas sincronizados e desbloqueia a tipagem forte para os helpers de tradução.
|
|
196
203
|
|
|
@@ -200,7 +207,9 @@ export const namespaces = ["common", "about"] as const;
|
|
|
200
207
|
export type Namespace = (typeof namespaces)[number];
|
|
201
208
|
```
|
|
202
209
|
|
|
203
|
-
|
|
210
|
+
</Step>
|
|
211
|
+
|
|
212
|
+
<Step number={4} title="Tipar Fortemente as Chaves de Tradução com TypeScript">
|
|
204
213
|
|
|
205
214
|
Aumente o `i18next` para apontar para seus arquivos de idioma canônicos (geralmente em inglês). O TypeScript então infere as chaves válidas por namespace, assim as chamadas para `t()` são verificadas de ponta a ponta.
|
|
206
215
|
|
|
@@ -238,7 +247,9 @@ const { t } = useTranslation("about");
|
|
|
238
247
|
export type AboutTranslator = TFunction<"about">;
|
|
239
248
|
```
|
|
240
249
|
|
|
241
|
-
|
|
250
|
+
</Step>
|
|
251
|
+
|
|
252
|
+
<Step number={5} title="Configurar a Inicialização do i18n no Lado do Servidor">
|
|
242
253
|
|
|
243
254
|
Crie uma função de inicialização do lado do servidor que carrega traduções para componentes do servidor. Esta função cria uma instância separada do i18next para renderização do lado do servidor, garantindo que as traduções sejam carregadas antes da renderização.
|
|
244
255
|
|
|
@@ -293,7 +304,9 @@ export async function initI18next(
|
|
|
293
304
|
}
|
|
294
305
|
```
|
|
295
306
|
|
|
296
|
-
|
|
307
|
+
</Step>
|
|
308
|
+
|
|
309
|
+
<Step number={6} title="Criar o Provedor i18n no Lado do Cliente">
|
|
297
310
|
|
|
298
311
|
Crie um componente provedor no cliente que envolva sua aplicação com o contexto do i18next. Este provedor recebe traduções pré-carregadas do servidor para evitar o flash de conteúdo não traduzido (FOUC) e evitar buscas duplicadas.
|
|
299
312
|
|
|
@@ -376,7 +389,9 @@ export default function I18nProvider({
|
|
|
376
389
|
}
|
|
377
390
|
```
|
|
378
391
|
|
|
379
|
-
|
|
392
|
+
</Step>
|
|
393
|
+
|
|
394
|
+
<Step number={7} title="Definir Rotas Dinâmicas por Locale">
|
|
380
395
|
|
|
381
396
|
Configure o roteamento dinâmico para os locales criando um diretório `[locale]` na sua pasta app. Isso permite que o Next.js gerencie o roteamento baseado em locale, onde cada locale se torna um segmento da URL (ex.: `/en/about`, `/fr/about`).
|
|
382
397
|
|
|
@@ -428,7 +443,9 @@ export default function LocaleLayout({
|
|
|
428
443
|
}
|
|
429
444
|
```
|
|
430
445
|
|
|
431
|
-
|
|
446
|
+
</Step>
|
|
447
|
+
|
|
448
|
+
<Step number={8} title="Crie Seus Arquivos de Tradução">
|
|
432
449
|
|
|
433
450
|
Crie arquivos JSON para cada locale e namespace. Essa estrutura permite organizar as traduções de forma lógica e carregar apenas o que você precisa para cada página.
|
|
434
451
|
|
|
@@ -482,7 +499,9 @@ Organizar traduções por namespace (por exemplo, `common.json`, `about.json`) p
|
|
|
482
499
|
}
|
|
483
500
|
```
|
|
484
501
|
|
|
485
|
-
|
|
502
|
+
</Step>
|
|
503
|
+
|
|
504
|
+
<Step number={9} title="Utilize Traduções nas Suas Páginas">
|
|
486
505
|
|
|
487
506
|
Crie um componente de página que inicialize o i18next no servidor e passe as traduções tanto para os componentes do servidor quanto para os do cliente. Isso garante que as traduções sejam carregadas antes da renderização e evita o piscar de conteúdo.
|
|
488
507
|
|
|
@@ -542,7 +561,9 @@ export default async function AboutPage({
|
|
|
542
561
|
}
|
|
543
562
|
```
|
|
544
563
|
|
|
545
|
-
|
|
564
|
+
</Step>
|
|
565
|
+
|
|
566
|
+
<Step number={10} title="Usar Traduções em Componentes Cliente">
|
|
546
567
|
|
|
547
568
|
Componentes cliente podem usar o hook `useTranslation` para acessar traduções. Este hook fornece acesso à função de tradução e à instância i18n, permitindo traduzir conteúdo e acessar informações de locale.
|
|
548
569
|
|
|
@@ -593,7 +614,9 @@ const ClientComponent = () => {
|
|
|
593
614
|
export default ClientComponent;
|
|
594
615
|
```
|
|
595
616
|
|
|
596
|
-
|
|
617
|
+
</Step>
|
|
618
|
+
|
|
619
|
+
<Step number={11} title="Usar Traduções em Componentes de Servidor">
|
|
597
620
|
|
|
598
621
|
Componentes server não podem usar React hooks, então eles recebem traduções via props de seus componentes pai. Essa abordagem mantém os componentes server síncronos e permite que sejam aninhados dentro de componentes client.
|
|
599
622
|
|
|
@@ -639,9 +662,9 @@ const ServerComponent = ({ t, locale, count }: ServerComponentProps) => {
|
|
|
639
662
|
export default ServerComponent;
|
|
640
663
|
```
|
|
641
664
|
|
|
642
|
-
|
|
665
|
+
</Step>
|
|
643
666
|
|
|
644
|
-
|
|
667
|
+
<Step number={12} title="Alterar o idioma do seu conteúdo" isOptional={true}>
|
|
645
668
|
|
|
646
669
|
Para alterar o idioma do seu conteúdo no Next.js, a forma recomendada é usar URLs prefixadas com o locale e links do Next.js. O exemplo abaixo lê o locale atual da rota, remove-o do pathname e renderiza um link para cada locale disponível.
|
|
647
670
|
|
|
@@ -713,7 +736,9 @@ export default function LocaleSwitcher() {
|
|
|
713
736
|
}
|
|
714
737
|
```
|
|
715
738
|
|
|
716
|
-
|
|
739
|
+
</Step>
|
|
740
|
+
|
|
741
|
+
<Step number={13} title="Construir um componente Link localizado" isOptional={true}>
|
|
717
742
|
|
|
718
743
|
Reutilizar URLs localizadas em toda a sua aplicação mantém a navegação consistente e otimizada para SEO. Envolva o `next/link` em um pequeno helper que prefixa rotas internas com o locale ativo, enquanto deixa URLs externas intactas.
|
|
719
744
|
|
|
@@ -764,7 +789,9 @@ export default function LocalizedLink({
|
|
|
764
789
|
|
|
765
790
|
> Dica: Como `LocalizedLink` é um substituto direto, faça a migração gradualmente trocando os imports e deixando o componente lidar com URLs específicas de locale.
|
|
766
791
|
|
|
767
|
-
|
|
792
|
+
</Step>
|
|
793
|
+
|
|
794
|
+
<Step number={14} title="Acessar o locale ativo dentro das Server Actions" isOptional={true}>
|
|
768
795
|
|
|
769
796
|
Server Actions frequentemente precisam do locale atual para emails, logs ou integrações com terceiros. Combine o cookie de locale definido pelo seu proxy com o cabeçalho `Accept-Language` como fallback.
|
|
770
797
|
|
|
@@ -802,7 +829,9 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
802
829
|
|
|
803
830
|
> Como o helper depende dos cookies e headers do Next.js, ele funciona em Route Handlers, Server Actions e outros contextos exclusivos do servidor.
|
|
804
831
|
|
|
805
|
-
|
|
832
|
+
</Step>
|
|
833
|
+
|
|
834
|
+
<Step number={15} title="Internacionalize Seus Metadados" isOptional={true}>
|
|
806
835
|
|
|
807
836
|
Traduzir o conteúdo é importante, mas o principal objetivo da internacionalização é tornar seu site mais visível para o mundo. I18n é uma alavanca incrível para melhorar a visibilidade do seu site por meio de SEO adequado.
|
|
808
837
|
|
|
@@ -869,7 +898,9 @@ export default async function AboutPage() {
|
|
|
869
898
|
}
|
|
870
899
|
```
|
|
871
900
|
|
|
872
|
-
|
|
901
|
+
</Step>
|
|
902
|
+
|
|
903
|
+
<Step number={16} title="Internacionalize seu Sitemap" isOptional={true}>
|
|
873
904
|
|
|
874
905
|
Gere um sitemap que inclua todas as versões de locale das suas páginas. Isso ajuda os motores de busca a descobrir e indexar todas as versões linguísticas do seu conteúdo.
|
|
875
906
|
|
|
@@ -923,7 +954,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
923
954
|
}
|
|
924
955
|
```
|
|
925
956
|
|
|
926
|
-
|
|
957
|
+
</Step>
|
|
958
|
+
|
|
959
|
+
<Step number={17} title="Internacionalize seu robots.txt" isOptional={true}>
|
|
927
960
|
|
|
928
961
|
Crie um arquivo robots.txt que gerencie corretamente todas as versões de locale das suas rotas protegidas. Isso garante que os motores de busca não indexem páginas de administração ou dashboard em nenhum idioma.
|
|
929
962
|
|
|
@@ -954,7 +987,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
954
987
|
}
|
|
955
988
|
```
|
|
956
989
|
|
|
957
|
-
|
|
990
|
+
</Step>
|
|
991
|
+
|
|
992
|
+
<Step number={18} title="Configurar Middleware para Roteamento de Locale" isOptional={true}>
|
|
958
993
|
|
|
959
994
|
Crie um proxy para detectar automaticamente o locale preferido do usuário e redirecioná-lo para a URL apropriada com prefixo de locale. Isso melhora a experiência do usuário ao mostrar o conteúdo no idioma preferido.
|
|
960
995
|
|
|
@@ -1043,7 +1078,9 @@ export const config = {
|
|
|
1043
1078
|
};
|
|
1044
1079
|
```
|
|
1045
1080
|
|
|
1046
|
-
|
|
1081
|
+
</Step>
|
|
1082
|
+
|
|
1083
|
+
<Step number={19} title="Automatize Suas Traduções Usando o Intlayer" isOptional={true}>
|
|
1047
1084
|
|
|
1048
1085
|
Intlayer é uma biblioteca **gratuita** e **open-source** projetada para auxiliar o processo de localização na sua aplicação. Enquanto o i18next gerencia o carregamento e a gestão das traduções, o Intlayer ajuda a automatizar o fluxo de trabalho das traduções.
|
|
1049
1086
|
|
|
@@ -1073,3 +1110,7 @@ O Intlayer permite que você:
|
|
|
1073
1110
|
Intlayer oferece um editor visual gratuito para editar seu conteúdo usando um editor visual. Saiba mais sobre [edição visual das suas traduções](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md).
|
|
1074
1111
|
|
|
1075
1112
|
E mais. Para descobrir todos os recursos fornecidos pelo Intlayer, consulte a [documentação Interesse do Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/interest_of_intlayer.md).
|
|
1113
|
+
|
|
1114
|
+
</Step>
|
|
1115
|
+
|
|
1116
|
+
</Steps>
|
|
@@ -109,7 +109,9 @@ Aqui está a estrutura do projeto que iremos criar:
|
|
|
109
109
|
└── ServerComponent.tsx
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
<Steps>
|
|
113
|
+
|
|
114
|
+
<Step number={1} title="Instalar Dependências">
|
|
113
115
|
|
|
114
116
|
Instale os pacotes necessários usando npm:
|
|
115
117
|
|
|
@@ -127,7 +129,9 @@ yarn add next-intl
|
|
|
127
129
|
|
|
128
130
|
- **next-intl**: A biblioteca principal de internacionalização para o Next.js App Router que fornece hooks, funções no servidor e provedores no cliente para gerenciar traduções.
|
|
129
131
|
|
|
130
|
-
|
|
132
|
+
</Step>
|
|
133
|
+
|
|
134
|
+
<Step number={2} title="Configure seu Projeto">
|
|
131
135
|
|
|
132
136
|
Crie um arquivo de configuração que defina os seus locales suportados e configure a request do next-intl. Este arquivo serve como a fonte única de verdade para a sua configuração i18n e garante segurança de tipos em toda a sua aplicação.
|
|
133
137
|
|
|
@@ -212,7 +216,9 @@ export const { Link, redirect, usePathname, useRouter, getPathname } =
|
|
|
212
216
|
export const proxy = createMiddleware(routingOptions);
|
|
213
217
|
```
|
|
214
218
|
|
|
215
|
-
|
|
219
|
+
</Step>
|
|
220
|
+
|
|
221
|
+
<Step number={3} title="Definir Rotas Dinâmicas por Locale">
|
|
216
222
|
|
|
217
223
|
Configure o roteamento dinâmico para locais criando um diretório `[locale]` na sua pasta de app. Isso permite que o Next.js gerencie o roteamento baseado em localidade, onde cada localidade se torna um segmento da URL (por exemplo, `/en/about`, `/fr/about`).
|
|
218
224
|
|
|
@@ -300,7 +306,9 @@ export default async function AboutPage({
|
|
|
300
306
|
}
|
|
301
307
|
```
|
|
302
308
|
|
|
303
|
-
|
|
309
|
+
</Step>
|
|
310
|
+
|
|
311
|
+
<Step number={4} title="Crie Seus Arquivos de Tradução">
|
|
304
312
|
|
|
305
313
|
Crie arquivos JSON para cada locale e namespace. Essa estrutura permite organizar as traduções de forma lógica e carregar apenas o que você precisa para cada página.
|
|
306
314
|
|
|
@@ -342,7 +350,9 @@ Organizar as traduções por namespace (por exemplo, `common.json`, `about.json`
|
|
|
342
350
|
}
|
|
343
351
|
```
|
|
344
352
|
|
|
345
|
-
|
|
353
|
+
</Step>
|
|
354
|
+
|
|
355
|
+
<Step number={5} title="Utilize as Traduções nas Suas Páginas">
|
|
346
356
|
|
|
347
357
|
Crie um componente de página que carregue as traduções no servidor e as passe para componentes tanto do servidor quanto do cliente. Isso garante que as traduções sejam carregadas antes da renderização e evita o flashing de conteúdo.
|
|
348
358
|
|
|
@@ -393,7 +403,9 @@ export default async function AboutPage({
|
|
|
393
403
|
}
|
|
394
404
|
```
|
|
395
405
|
|
|
396
|
-
|
|
406
|
+
</Step>
|
|
407
|
+
|
|
408
|
+
<Step number={6} title="Usar Traduções em Componentes Client">
|
|
397
409
|
|
|
398
410
|
Componentes client podem usar os hooks `useTranslations` e `useFormatter` para acessar traduções e funções de formatação. Esses hooks leem do contexto `NextIntlClientProvider`.
|
|
399
411
|
|
|
@@ -429,7 +441,9 @@ const ClientComponent = () => {
|
|
|
429
441
|
};
|
|
430
442
|
```
|
|
431
443
|
|
|
432
|
-
|
|
444
|
+
</Step>
|
|
445
|
+
|
|
446
|
+
<Step number={7} title="Usar Traduções em Componentes de Servidor">
|
|
433
447
|
|
|
434
448
|
Componentes de servidor não podem usar hooks do React, então eles recebem traduções e formatadores via props de seus componentes pai. Essa abordagem mantém os componentes de servidor síncronos e permite que eles sejam aninhados dentro de componentes cliente.
|
|
435
449
|
|
|
@@ -461,9 +475,9 @@ const ServerComponent = ({
|
|
|
461
475
|
|
|
462
476
|
> Na sua página/layout, use `getTranslations` e `getFormatter` de `next-intl/server` para pré-calcular traduções e formatações, e então passe-os como props para os componentes de servidor.
|
|
463
477
|
|
|
464
|
-
|
|
478
|
+
</Step>
|
|
465
479
|
|
|
466
|
-
|
|
480
|
+
<Step number={8} title="Mude o idioma do seu conteúdo" isOptional={true}>
|
|
467
481
|
|
|
468
482
|
Para mudar o idioma do seu conteúdo com next-intl, renderize links sensíveis ao locale que apontam para o mesmo pathname enquanto troca o locale. O provider reescreve as URLs automaticamente, então você só precisa direcionar para a rota atual.
|
|
469
483
|
|
|
@@ -535,7 +549,9 @@ export default function LocaleSwitcher() {
|
|
|
535
549
|
}
|
|
536
550
|
```
|
|
537
551
|
|
|
538
|
-
|
|
552
|
+
</Step>
|
|
553
|
+
|
|
554
|
+
<Step number={9} title="Use o componente Link localizado" isOptional={true}>
|
|
539
555
|
|
|
540
556
|
O `next-intl` fornece um subpacote `next-intl/navigation` que contém um componente Link localizado que aplica automaticamente a localidade ativa. Já o extraímos para você no arquivo `@/i18n`, então você pode usá-lo assim:
|
|
541
557
|
|
|
@@ -545,7 +561,9 @@ import { Link } from "@/i18n";
|
|
|
545
561
|
return <Link href="/about">t("about.title")</Link>;
|
|
546
562
|
```
|
|
547
563
|
|
|
548
|
-
|
|
564
|
+
</Step>
|
|
565
|
+
|
|
566
|
+
<Step number={10} title="Acesse a localidade ativa dentro das Server Actions" isOptional={true}>
|
|
549
567
|
|
|
550
568
|
As Server Actions podem ler a localidade atual usando `next-intl/server`. Isso é útil para enviar e-mails localizados ou armazenar preferências de idioma junto com os dados enviados.
|
|
551
569
|
|
|
@@ -568,7 +586,9 @@ export async function handleContactForm(formData: FormData) {
|
|
|
568
586
|
|
|
569
587
|
> `getLocale` lê o locale definido pelo proxy do `next-intl`, então funciona em qualquer lugar no servidor: Route Handlers, Server Actions e edge functions.
|
|
570
588
|
|
|
571
|
-
|
|
589
|
+
</Step>
|
|
590
|
+
|
|
591
|
+
<Step number={11} title="Internacionalize seus Metadados" isOptional={true}>
|
|
572
592
|
|
|
573
593
|
Traduzir conteúdo é importante, mas o objetivo principal da internacionalização é tornar seu site mais visível para o mundo. I18n é uma alavanca incrível para melhorar a visibilidade do seu site por meio de SEO adequado.
|
|
574
594
|
|
|
@@ -607,7 +627,9 @@ export async function generateMetadata({
|
|
|
607
627
|
// ... Resto do código da página
|
|
608
628
|
```
|
|
609
629
|
|
|
610
|
-
|
|
630
|
+
</Step>
|
|
631
|
+
|
|
632
|
+
<Step number={12} title="Internacionalize Seu Sitemap" isOptional={true}>
|
|
611
633
|
|
|
612
634
|
Gere um sitemap que inclua todas as versões locais das suas páginas. Isso ajuda os motores de busca a descobrir e indexar todas as versões linguísticas do seu conteúdo.
|
|
613
635
|
|
|
@@ -661,7 +683,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
661
683
|
}
|
|
662
684
|
```
|
|
663
685
|
|
|
664
|
-
|
|
686
|
+
</Step>
|
|
687
|
+
|
|
688
|
+
<Step number={13} title="Internacionalize seu robots.txt" isOptional={true}>
|
|
665
689
|
|
|
666
690
|
Crie um arquivo robots.txt que gerencie corretamente todas as versões de locale das suas rotas protegidas. Isso garante que os motores de busca não indexem páginas de administração ou dashboard em nenhum idioma.
|
|
667
691
|
|
|
@@ -694,7 +718,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
694
718
|
}
|
|
695
719
|
```
|
|
696
720
|
|
|
697
|
-
|
|
721
|
+
</Step>
|
|
722
|
+
|
|
723
|
+
<Step number={14} title="Configurar Proxy para Roteamento de Locale" isOptional={true}>
|
|
698
724
|
|
|
699
725
|
Crie um proxy para detectar automaticamente o locale preferido do usuário e redirecioná-lo para a URL apropriada com prefixo de locale. O next-intl fornece uma função proxy conveniente que faz isso automaticamente.
|
|
700
726
|
|
|
@@ -714,7 +740,9 @@ export const config = {
|
|
|
714
740
|
};
|
|
715
741
|
```
|
|
716
742
|
|
|
717
|
-
|
|
743
|
+
</Step>
|
|
744
|
+
|
|
745
|
+
<Step number={15} title="Configurar Tipos TypeScript para o Locale" isOptional={true}>
|
|
718
746
|
|
|
719
747
|
Configurar o TypeScript ajudará você a obter autocompletar e segurança de tipos para suas chaves.
|
|
720
748
|
|
|
@@ -740,7 +768,9 @@ declare module "next-intl" {
|
|
|
740
768
|
|
|
741
769
|
Este código usará Module Augmentation para adicionar os locales e mensagens ao tipo AppConfig do next-intl.
|
|
742
770
|
|
|
743
|
-
|
|
771
|
+
</Step>
|
|
772
|
+
|
|
773
|
+
<Step number={16} title="Automatize Suas Traduções Usando Intlayer" isOptional={true}>
|
|
744
774
|
|
|
745
775
|
Intlayer é uma biblioteca **gratuita** e **open-source** projetada para auxiliar o processo de localização na sua aplicação. Enquanto o next-intl gerencia o carregamento e a gestão das traduções, o Intlayer ajuda a automatizar o fluxo de trabalho das traduções.
|
|
746
776
|
|
|
@@ -765,3 +795,7 @@ O Intlayer permite que você:
|
|
|
765
795
|
Intlayer oferece um editor visual gratuito para editar seu conteúdo usando um editor visual. Saiba mais sobre [edição visual das suas traduções](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md).
|
|
766
796
|
|
|
767
797
|
E mais. Para descobrir todos os recursos fornecidos pelo Intlayer, consulte a [documentação sobre o interesse do Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/interest_of_intlayer.md).
|
|
798
|
+
|
|
799
|
+
</Step>
|
|
800
|
+
|
|
801
|
+
</Steps>
|
|
@@ -80,6 +80,7 @@ history:
|
|
|
80
80
|
title="Демо CodeSandbox - Как интернационализировать ваше приложение с помощью Intlayer"
|
|
81
81
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
82
82
|
loading="lazy"
|
|
83
|
+
/>
|
|
83
84
|
|
|
84
85
|
> Смотрите [шаблон приложения](https://github.com/aymericzip/next-i18next-template) на GitHub.
|
|
85
86
|
|
|
@@ -116,7 +117,9 @@ history:
|
|
|
116
117
|
└── ServerComponent.tsx
|
|
117
118
|
```
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
<Steps>
|
|
121
|
+
|
|
122
|
+
<Step number={1} title="Установка зависимостей">
|
|
120
123
|
|
|
121
124
|
Установите необходимые пакеты с помощью npm:
|
|
122
125
|
|
|
@@ -136,7 +139,9 @@ yarn add i18next react-i18next i18next-resources-to-backend
|
|
|
136
139
|
- **react-i18next**: Обертки для React над i18next, предоставляющие хуки, такие как `useTranslation`, для клиентских компонентов.
|
|
137
140
|
- **i18next-resources-to-backend**: Плагин, который позволяет динамически загружать файлы переводов, загружая только необходимые пространства имён.
|
|
138
141
|
|
|
139
|
-
|
|
142
|
+
</Step>
|
|
143
|
+
|
|
144
|
+
<Step number={2} title="Настройка проекта">
|
|
140
145
|
|
|
141
146
|
Создайте файл конфигурации, чтобы определить поддерживаемые локали, локаль по умолчанию и вспомогательные функции для локализации URL. Этот файл служит единственным источником правды для вашей настройки i18n и обеспечивает типобезопасность во всем приложении.
|
|
142
147
|
|
|
@@ -189,7 +194,9 @@ export function getCookie(locale: Locale) {
|
|
|
189
194
|
}
|
|
190
195
|
```
|
|
191
196
|
|
|
192
|
-
|
|
197
|
+
</Step>
|
|
198
|
+
|
|
199
|
+
<Step number={3} title="Централизовать пространства имён переводов">
|
|
193
200
|
|
|
194
201
|
Создайте единый источник правды для каждого namespace, который использует ваше приложение. Повторное использование этого списка поддерживает синхронизацию кода сервера, клиента и инструментов, а также обеспечивает строгую типизацию для помощников перевода.
|
|
195
202
|
|
|
@@ -199,7 +206,9 @@ export const namespaces = ["common", "about"] as const;
|
|
|
199
206
|
export type Namespace = (typeof namespaces)[number];
|
|
200
207
|
```
|
|
201
208
|
|
|
202
|
-
|
|
209
|
+
</Step>
|
|
210
|
+
|
|
211
|
+
<Step number={4} title="Строгая типизация ключей перевода с помощью TypeScript">
|
|
203
212
|
|
|
204
213
|
Расширьте `i18next`, чтобы он ссылался на ваши канонические языковые файлы (обычно английские). TypeScript тогда выводит допустимые ключи для каждого namespace, поэтому вызовы `t()` проверяются полностью.
|
|
205
214
|
|
|
@@ -237,7 +246,9 @@ const { t } = useTranslation("about");
|
|
|
237
246
|
export type AboutTranslator = TFunction<"about">;
|
|
238
247
|
```
|
|
239
248
|
|
|
240
|
-
|
|
249
|
+
</Step>
|
|
250
|
+
|
|
251
|
+
<Step number={5} title="Настройка инициализации i18n на стороне сервера">
|
|
241
252
|
|
|
242
253
|
Создайте функцию инициализации на стороне сервера, которая загружает переводы для серверных компонентов. Эта функция создает отдельный экземпляр i18next для серверного рендеринга, обеспечивая загрузку переводов до рендеринга.
|
|
243
254
|
|
|
@@ -292,7 +303,9 @@ export async function initI18next(
|
|
|
292
303
|
}
|
|
293
304
|
```
|
|
294
305
|
|
|
295
|
-
|
|
306
|
+
</Step>
|
|
307
|
+
|
|
308
|
+
<Step number={6} title="Создание клиентского провайдера i18n">
|
|
296
309
|
|
|
297
310
|
Создайте клиентский компонент-провайдер, который оборачивает ваше приложение в контекст i18next. Этот провайдер получает предварительно загруженные переводы с сервера, чтобы предотвратить мерцание непереведённого контента (FOUC) и избежать повторных запросов.
|
|
298
311
|
|
|
@@ -375,7 +388,9 @@ export default function I18nProvider({
|
|
|
375
388
|
}
|
|
376
389
|
```
|
|
377
390
|
|
|
378
|
-
|
|
391
|
+
</Step>
|
|
392
|
+
|
|
393
|
+
<Step number={7} title="Определение динамических маршрутов локалей">
|
|
379
394
|
|
|
380
395
|
Настройте динамическую маршрутизацию для локалей, создав директорию `[locale]` в вашей папке app. Это позволяет Next.js обрабатывать маршрутизацию на основе локалей, где каждая локаль становится сегментом URL (например, `/en/about`, `/fr/about`).
|
|
381
396
|
|
|
@@ -427,7 +442,9 @@ export default function LocaleLayout({
|
|
|
427
442
|
}
|
|
428
443
|
```
|
|
429
444
|
|
|
430
|
-
|
|
445
|
+
</Step>
|
|
446
|
+
|
|
447
|
+
<Step number={8} title="Создайте файлы переводов">
|
|
431
448
|
|
|
432
449
|
Создайте JSON-файлы для каждой локали и пространства имён. Такая структура позволяет логично организовать переводы и загружать только то, что необходимо для каждой страницы.
|
|
433
450
|
|
|
@@ -520,7 +537,9 @@ export default function LocaleLayout({
|
|
|
520
537
|
}
|
|
521
538
|
```
|
|
522
539
|
|
|
523
|
-
|
|
540
|
+
</Step>
|
|
541
|
+
|
|
542
|
+
<Step number={9} title="Использование переводов на ваших страницах">
|
|
524
543
|
|
|
525
544
|
Создайте компонент страницы, который инициализирует i18next на сервере и передаёт переводы как серверным, так и клиентским компонентам. Это гарантирует, что переводы загружены до рендера и предотвращает мерцание контента.
|
|
526
545
|
|
|
@@ -580,7 +599,9 @@ export default async function AboutPage({
|
|
|
580
599
|
}
|
|
581
600
|
```
|
|
582
601
|
|
|
583
|
-
|
|
602
|
+
</Step>
|
|
603
|
+
|
|
604
|
+
<Step number={10} title="Использование переводов в клиентских компонентах">
|
|
584
605
|
|
|
585
606
|
Клиентские компоненты могут использовать хук `useTranslation` для доступа к переводам. Этот хук предоставляет функцию перевода и экземпляр i18n, что позволяет переводить контент и получать информацию о локали.
|
|
586
607
|
|
|
@@ -631,7 +652,9 @@ const ClientComponent = () => {
|
|
|
631
652
|
export default ClientComponent;
|
|
632
653
|
```
|
|
633
654
|
|
|
634
|
-
|
|
655
|
+
</Step>
|
|
656
|
+
|
|
657
|
+
<Step number={11} title="Использование переводов в серверных компонентах">
|
|
635
658
|
|
|
636
659
|
Серверные компоненты не могут использовать React hooks, поэтому они получают переводы через props от своих родительских компонентов. Такой подход сохраняет синхронность серверных компонентов и позволяет вкладывать их внутрь клиентских компонентов.
|
|
637
660
|
|
|
@@ -677,9 +700,9 @@ const ServerComponent = ({ t, locale, count }: ServerComponentProps) => {
|
|
|
677
700
|
export default ServerComponent;
|
|
678
701
|
```
|
|
679
702
|
|
|
680
|
-
|
|
703
|
+
</Step>
|
|
681
704
|
|
|
682
|
-
|
|
705
|
+
<Step number={12} title="Изменение языка вашего контента" isOptional={true}>
|
|
683
706
|
|
|
684
707
|
Для изменения языка вашего контента в Next.js рекомендуется использовать URL с префиксом локали и ссылки Next.js. Пример ниже считывает текущую локаль из маршрута, удаляет её из пути и отображает по одной ссылке для каждой доступной локали.
|
|
685
708
|
|
|
@@ -751,7 +774,9 @@ export default function LocaleSwitcher() {
|
|
|
751
774
|
}
|
|
752
775
|
```
|
|
753
776
|
|
|
754
|
-
|
|
777
|
+
</Step>
|
|
778
|
+
|
|
779
|
+
<Step number={13} title="Создание локализованного компонента Link" isOptional={true}>
|
|
755
780
|
|
|
756
781
|
Повторное использование локализованных URL по всему вашему приложению обеспечивает согласованную навигацию и улучшает SEO. Оберните `next/link` в небольшой помощник, который добавляет префикс активной локали к внутренним маршрутам, оставляя внешние URL без изменений.
|
|
757
782
|
|
|
@@ -802,7 +827,9 @@ export default function LocalizedLink({
|
|
|
802
827
|
|
|
803
828
|
> Совет: Поскольку `LocalizedLink` является заменой "drop-in", мигрируйте постепенно, меняя импорты и позволяя компоненту обрабатывать URL-адреса, специфичные для локали.
|
|
804
829
|
|
|
805
|
-
|
|
830
|
+
</Step>
|
|
831
|
+
|
|
832
|
+
<Step number={14} title="Доступ к активной локали внутри Server Actions" isOptional={true}>
|
|
806
833
|
|
|
807
834
|
Server Actions часто нуждаются в текущей локали для писем, логирования или интеграций с третьими сторонами. Объедините cookie с локалью, установленной вашим прокси, с заголовком `Accept-Language` в качестве резервного варианта.
|
|
808
835
|
|
|
@@ -840,7 +867,9 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
840
867
|
|
|
841
868
|
> Поскольку помощник использует cookies и заголовки Next.js, он работает в Route Handlers, Server Actions и других контекстах, доступных только на сервере.
|
|
842
869
|
|
|
843
|
-
|
|
870
|
+
</Step>
|
|
871
|
+
|
|
872
|
+
<Step number={15} title="Интернационализация ваших метаданных" isOptional={true}>
|
|
844
873
|
|
|
845
874
|
Перевод контента важен, но основная цель интернационализации, сделать ваш сайт более заметным для всего мира. I18n, это мощный инструмент для улучшения видимости вашего сайта через правильное SEO.
|
|
846
875
|
|
|
@@ -907,7 +936,9 @@ export default async function AboutPage() {
|
|
|
907
936
|
}
|
|
908
937
|
```
|
|
909
938
|
|
|
910
|
-
|
|
939
|
+
</Step>
|
|
940
|
+
|
|
941
|
+
<Step number={16} title="Интернационализация вашей карты сайта" isOptional={true}>
|
|
911
942
|
|
|
912
943
|
Создайте карту сайта, которая включает все версии страниц для каждой локали. Это помогает поисковым системам обнаруживать и индексировать все языковые версии вашего контента.
|
|
913
944
|
|
|
@@ -962,7 +993,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
962
993
|
}
|
|
963
994
|
```
|
|
964
995
|
|
|
965
|
-
|
|
996
|
+
</Step>
|
|
997
|
+
|
|
998
|
+
<Step number={17} title="Интернационализация вашего файла robots.txt" isOptional={true}>
|
|
966
999
|
|
|
967
1000
|
Создайте файл robots.txt, который корректно обрабатывает все языковые версии ваших защищённых маршрутов. Это гарантирует, что поисковые системы не будут индексировать страницы админки или панели управления на любом языке.
|
|
968
1001
|
|
|
@@ -993,7 +1026,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
993
1026
|
}
|
|
994
1027
|
```
|
|
995
1028
|
|
|
996
|
-
|
|
1029
|
+
</Step>
|
|
1030
|
+
|
|
1031
|
+
<Step number={18} title="Настройка Middleware для маршрутизации по локали" isOptional={true}>
|
|
997
1032
|
|
|
998
1033
|
Создайте прокси, который автоматически определяет предпочитаемую пользователем локаль и перенаправляет его на соответствующий URL с префиксом локали. Это улучшает пользовательский опыт, показывая контент на предпочитаемом языке.
|
|
999
1034
|
|
|
@@ -1082,7 +1117,9 @@ export const config = {
|
|
|
1082
1117
|
};
|
|
1083
1118
|
```
|
|
1084
1119
|
|
|
1085
|
-
|
|
1120
|
+
</Step>
|
|
1121
|
+
|
|
1122
|
+
<Step number={19} title="Автоматизируйте ваши переводы с помощью Intlayer" isOptional={true}>
|
|
1086
1123
|
|
|
1087
1124
|
Intlayer, это **бесплатная** и **открытая** библиотека, созданная для помощи в процессе локализации вашего приложения. В то время как i18next отвечает за загрузку и управление переводами, Intlayer помогает автоматизировать рабочий процесс перевода.
|
|
1088
1125
|
|
|
@@ -1112,3 +1149,7 @@ Intlayer позволяет вам:
|
|
|
1112
1149
|
Intlayer предлагает бесплатный визуальный редактор для редактирования вашего контента. Узнайте больше о [визуальном редактировании переводов](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md).
|
|
1113
1150
|
|
|
1114
1151
|
И многое другое. Чтобы узнать обо всех возможностях Intlayer, пожалуйста, обратитесь к [документации по интересу Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/interest_of_intlayer.md).
|
|
1152
|
+
|
|
1153
|
+
</Step>
|
|
1154
|
+
|
|
1155
|
+
</Steps>
|