@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
|
@@ -71,6 +71,7 @@ Antes de sumergirnos en la implementación, aquí hay algunas prácticas que deb
|
|
|
71
71
|
title="Demo CodeSandbox - Cómo internacionalizar tu aplicación usando Intlayer"
|
|
72
72
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
73
73
|
loading="lazy"
|
|
74
|
+
/>
|
|
74
75
|
|
|
75
76
|
> Consulta la [Plantilla de Aplicación](https://github.com/aymericzip/next-intl-template) en GitHub.
|
|
76
77
|
|
|
@@ -106,7 +107,9 @@ Aquí está la estructura del proyecto que crearemos:
|
|
|
106
107
|
└── ServerComponent.tsx
|
|
107
108
|
```
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
<Steps>
|
|
111
|
+
|
|
112
|
+
<Step number={1} title="Instalar Dependencias">
|
|
110
113
|
|
|
111
114
|
Instala los paquetes necesarios usando npm:
|
|
112
115
|
|
|
@@ -124,7 +127,9 @@ yarn add next-intl
|
|
|
124
127
|
|
|
125
128
|
- **next-intl**: La biblioteca principal de internacionalización para Next.js App Router que proporciona hooks, funciones del servidor y proveedores del cliente para gestionar las traducciones.
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
</Step>
|
|
131
|
+
|
|
132
|
+
<Step number={2} title="Configura tu Proyecto">
|
|
128
133
|
|
|
129
134
|
Crea un archivo de configuración que defina los locales soportados y configure la solicitud de next-intl. Este archivo sirve como la única fuente de verdad para tu configuración i18n y asegura la seguridad de tipos en toda tu aplicación.
|
|
130
135
|
|
|
@@ -209,7 +214,9 @@ export const { Link, redirect, usePathname, useRouter, getPathname } =
|
|
|
209
214
|
export const proxy = createMiddleware(routingOptions);
|
|
210
215
|
```
|
|
211
216
|
|
|
212
|
-
|
|
217
|
+
</Step>
|
|
218
|
+
|
|
219
|
+
<Step number={3} title="Definir Rutas Dinámicas por Locales">
|
|
213
220
|
|
|
214
221
|
Configura el enrutamiento dinámico para las locales creando un directorio `[locale]` en tu carpeta de la aplicación. Esto permite que Next.js maneje el enrutamiento basado en la localización donde cada locale se convierte en un segmento de la URL (por ejemplo, `/en/about`, `/fr/about`).
|
|
215
222
|
|
|
@@ -297,7 +304,9 @@ export default async function AboutPage({
|
|
|
297
304
|
}
|
|
298
305
|
```
|
|
299
306
|
|
|
300
|
-
|
|
307
|
+
</Step>
|
|
308
|
+
|
|
309
|
+
<Step number={4} title="Crea tus archivos de traducción">
|
|
301
310
|
|
|
302
311
|
Crea archivos JSON para cada locale y namespace. Esta estructura te permite organizar las traducciones de manera lógica y cargar solo lo que necesitas para cada página.
|
|
303
312
|
|
|
@@ -339,7 +348,9 @@ Organizar las traducciones por namespace (por ejemplo, `common.json`, `about.jso
|
|
|
339
348
|
}
|
|
340
349
|
```
|
|
341
350
|
|
|
342
|
-
|
|
351
|
+
</Step>
|
|
352
|
+
|
|
353
|
+
<Step number={5} title="Utiliza las Traducciones en Tus Páginas">
|
|
343
354
|
|
|
344
355
|
Crea un componente de página que cargue las traducciones en el servidor y las pase tanto a los componentes del servidor como del cliente. Esto asegura que las traducciones se carguen antes de renderizar y previene el parpadeo de contenido.
|
|
345
356
|
|
|
@@ -390,7 +401,9 @@ export default async function AboutPage({
|
|
|
390
401
|
}
|
|
391
402
|
```
|
|
392
403
|
|
|
393
|
-
|
|
404
|
+
</Step>
|
|
405
|
+
|
|
406
|
+
<Step number={6} title="Usar Traducciones en Componentes Cliente">
|
|
394
407
|
|
|
395
408
|
Los componentes cliente pueden usar los hooks `useTranslations` y `useFormatter` para acceder a las traducciones y funciones de formato. Estos hooks leen del contexto `NextIntlClientProvider`.
|
|
396
409
|
|
|
@@ -426,7 +439,9 @@ const ClientComponent = () => {
|
|
|
426
439
|
};
|
|
427
440
|
```
|
|
428
441
|
|
|
429
|
-
|
|
442
|
+
</Step>
|
|
443
|
+
|
|
444
|
+
<Step number={7} title="Usar traducciones en componentes del servidor">
|
|
430
445
|
|
|
431
446
|
Los componentes del servidor no pueden usar hooks de React, por lo que reciben las traducciones y los formateadores a través de props desde sus componentes padres. Este enfoque mantiene los componentes del servidor síncronos y permite que se aniden dentro de componentes cliente.
|
|
432
447
|
|
|
@@ -458,9 +473,9 @@ const ServerComponent = ({
|
|
|
458
473
|
|
|
459
474
|
> En tu página/layout, usa `getTranslations` y `getFormatter` de `next-intl/server` para precomputar traducciones y formatos, luego pásalos como props a los componentes del servidor.
|
|
460
475
|
|
|
461
|
-
|
|
476
|
+
</Step>
|
|
462
477
|
|
|
463
|
-
|
|
478
|
+
<Step number={8} title="Cambiar el idioma de tu contenido" isOptional={true}>
|
|
464
479
|
|
|
465
480
|
Para cambiar el idioma de tu contenido con next-intl, renderiza enlaces conscientes del locale que apunten al mismo pathname mientras cambias el locale. El provider reescribe las URLs automáticamente, así que solo tienes que apuntar a la ruta actual.
|
|
466
481
|
|
|
@@ -532,7 +547,9 @@ export default function LocaleSwitcher() {
|
|
|
532
547
|
}
|
|
533
548
|
```
|
|
534
549
|
|
|
535
|
-
|
|
550
|
+
</Step>
|
|
551
|
+
|
|
552
|
+
<Step number={9} title="Usar el componente Link localizado" isOptional={true}>
|
|
536
553
|
|
|
537
554
|
`next-intl` proporciona un subpaquete `next-intl/navigation` que contiene un componente Link localizado que aplica automáticamente la locale activa. Ya lo hemos extraído para ti en el archivo `@/i18n`, por lo que puedes usarlo así:
|
|
538
555
|
|
|
@@ -542,7 +559,9 @@ import { Link } from "@/i18n";
|
|
|
542
559
|
return <Link href="/about">t("about.title")</Link>;
|
|
543
560
|
```
|
|
544
561
|
|
|
545
|
-
|
|
562
|
+
</Step>
|
|
563
|
+
|
|
564
|
+
<Step number={10} title="Acceder a la locale activa dentro de Server Actions" isOptional={true}>
|
|
546
565
|
|
|
547
566
|
Las Server Actions pueden leer la locale actual usando `next-intl/server`. Esto es útil para enviar correos electrónicos localizados o almacenar preferencias de idioma junto con los datos enviados.
|
|
548
567
|
|
|
@@ -565,7 +584,9 @@ export async function handleContactForm(formData: FormData) {
|
|
|
565
584
|
|
|
566
585
|
> `getLocale` lee la locale establecida por el proxy de `next-intl`, por lo que funciona en cualquier parte del servidor: Route Handlers, Server Actions y funciones edge.
|
|
567
586
|
|
|
568
|
-
|
|
587
|
+
</Step>
|
|
588
|
+
|
|
589
|
+
<Step number={11} title="Internacionaliza tus Metadatos" isOptional={true}>
|
|
569
590
|
|
|
570
591
|
Traducir contenido es importante, pero el objetivo principal de la internacionalización es hacer que tu sitio web sea más visible para el mundo. I18n es una palanca increíble para mejorar la visibilidad de tu sitio web mediante un SEO adecuado.
|
|
571
592
|
|
|
@@ -604,7 +625,9 @@ export async function generateMetadata({
|
|
|
604
625
|
// ... Resto del código de la página
|
|
605
626
|
```
|
|
606
627
|
|
|
607
|
-
|
|
628
|
+
</Step>
|
|
629
|
+
|
|
630
|
+
<Step number={12} title="Internacionaliza tu Sitemap" isOptional={true}>
|
|
608
631
|
|
|
609
632
|
Genera un sitemap que incluya todas las versiones locales de tus páginas. Esto ayuda a los motores de búsqueda a descubrir e indexar todas las versiones en diferentes idiomas de tu contenido.
|
|
610
633
|
|
|
@@ -658,7 +681,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
658
681
|
}
|
|
659
682
|
```
|
|
660
683
|
|
|
661
|
-
|
|
684
|
+
</Step>
|
|
685
|
+
|
|
686
|
+
<Step number={13} title="Internacionaliza tu archivo robots.txt" isOptional={true}>
|
|
662
687
|
|
|
663
688
|
Crea un archivo robots.txt que maneje correctamente todas las versiones de locales de tus rutas protegidas. Esto asegura que los motores de búsqueda no indexen páginas de administración o panel en ningún idioma.
|
|
664
689
|
|
|
@@ -691,7 +716,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
691
716
|
}
|
|
692
717
|
```
|
|
693
718
|
|
|
694
|
-
|
|
719
|
+
</Step>
|
|
720
|
+
|
|
721
|
+
<Step number={14} title="Configurar Proxy para el Enrutamiento de Locales" isOptional={true}>
|
|
695
722
|
|
|
696
723
|
Crea un proxy para detectar automáticamente la locale preferida del usuario y redirigirlo a la URL con el prefijo de locale correspondiente. next-intl proporciona una función proxy conveniente que maneja esto automáticamente.
|
|
697
724
|
|
|
@@ -711,7 +738,9 @@ export const config = {
|
|
|
711
738
|
};
|
|
712
739
|
```
|
|
713
740
|
|
|
714
|
-
|
|
741
|
+
</Step>
|
|
742
|
+
|
|
743
|
+
<Step number={15} title="Configurar los tipos de TypeScript para la locale" isOptional={true}>
|
|
715
744
|
|
|
716
745
|
Configurar TypeScript te ayudará a obtener autocompletado y seguridad de tipos para tus claves.
|
|
717
746
|
|
|
@@ -737,7 +766,9 @@ declare module "next-intl" {
|
|
|
737
766
|
|
|
738
767
|
Este código usará la Ampliación de Módulos (Module Augmentation) para añadir los locales y mensajes al tipo AppConfig de next-intl.
|
|
739
768
|
|
|
740
|
-
|
|
769
|
+
</Step>
|
|
770
|
+
|
|
771
|
+
<Step number={16} title="Automatiza tus traducciones usando Intlayer" isOptional={true}>
|
|
741
772
|
|
|
742
773
|
Intlayer es una biblioteca **gratuita** y **de código abierto** diseñada para asistir en el proceso de localización en tu aplicación. Mientras que next-intl se encarga de la carga y gestión de las traducciones, Intlayer ayuda a automatizar el flujo de trabajo de traducción.
|
|
743
774
|
|
|
@@ -762,3 +793,7 @@ Intlayer te permitirá:
|
|
|
762
793
|
Intlayer ofrece un editor visual gratuito para editar tu contenido usando un editor visual. Aprende más sobre [edición visual de tus traducciones](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/intlayer_visual_editor.md).
|
|
763
794
|
|
|
764
795
|
Y más. Para descubrir todas las funcionalidades que ofrece Intlayer, por favor consulta la [documentación sobre el interés de Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/interest_of_intlayer.md).
|
|
796
|
+
|
|
797
|
+
</Step>
|
|
798
|
+
|
|
799
|
+
</Steps>
|
|
@@ -80,6 +80,7 @@ Avant de plonger dans l'implémentation, voici quelques pratiques que vous devri
|
|
|
80
80
|
title="Demo CodeSandbox - Comment internationaliser votre application avec 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
|
> Voir [Application Template](https://github.com/aymericzip/next-i18next-template) sur GitHub.
|
|
85
86
|
|
|
@@ -116,7 +117,9 @@ Voici la structure du projet que nous allons créer :
|
|
|
116
117
|
└── ServerComponent.tsx
|
|
117
118
|
```
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
<Steps>
|
|
121
|
+
|
|
122
|
+
<Step number={1} title="Installer les dépendances">
|
|
120
123
|
|
|
121
124
|
Installez les paquets nécessaires en utilisant npm :
|
|
122
125
|
|
|
@@ -136,7 +139,9 @@ yarn add i18next react-i18next i18next-resources-to-backend
|
|
|
136
139
|
- **react-i18next** : Les bindings React pour i18next qui fournissent des hooks comme `useTranslation` pour les composants clients.
|
|
137
140
|
- **i18next-resources-to-backend** : Un plugin qui permet le chargement dynamique des fichiers de traduction, vous permettant de charger uniquement les namespaces dont vous avez besoin.
|
|
138
141
|
|
|
139
|
-
|
|
142
|
+
</Step>
|
|
143
|
+
|
|
144
|
+
<Step number={2} title="Configurez votre projet">
|
|
140
145
|
|
|
141
146
|
Créez un fichier de configuration pour définir vos locales supportées, la locale par défaut, et des fonctions utilitaires pour la localisation des URLs. Ce fichier sert de source unique de vérité pour votre configuration i18n et garantit la sécurité des types dans toute votre application.
|
|
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="Centraliser les espaces de noms de traduction">
|
|
193
200
|
|
|
194
201
|
Créez une source unique de vérité pour chaque namespace que votre application expose. Réutiliser cette liste permet de garder le code serveur, client et les outils synchronisés et active une typage fort pour les helpers de traduction.
|
|
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="Typage fort des clés de traduction avec TypeScript">
|
|
203
212
|
|
|
204
213
|
Augmentez `i18next` pour pointer vers vos fichiers de langue canoniques (généralement en anglais). TypeScript en déduit alors les clés valides par namespace, ce qui permet de vérifier les appels à `t()` de bout en bout.
|
|
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="Configurer l'initialisation i18n côté serveur">
|
|
241
252
|
|
|
242
253
|
Créez une fonction d'initialisation côté serveur qui charge les traductions pour les composants serveur. Cette fonction crée une instance i18next distincte pour le rendu côté serveur, garantissant que les traductions sont chargées avant le rendu.
|
|
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="Créer un Provider i18n côté client">
|
|
296
309
|
|
|
297
310
|
Créez un provider composant client qui enveloppe votre application avec le contexte i18next. Ce provider reçoit des traductions préchargées depuis le serveur afin d'éviter un flash de contenu non traduit (FOUC) et d'éviter les requêtes en double.
|
|
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="Définir les routes dynamiques pour les locales">
|
|
379
394
|
|
|
380
395
|
Configurez le routage dynamique pour les locales en créant un répertoire `[locale]` dans votre dossier app. Cela permet à Next.js de gérer le routage basé sur la locale où chaque locale devient un segment d'URL (par exemple, `/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="Créez vos fichiers de traduction">
|
|
431
448
|
|
|
432
449
|
Créez des fichiers JSON pour chaque locale et namespace. Cette structure vous permet d'organiser les traductions de manière logique et de ne charger que ce dont vous avez besoin pour chaque page.
|
|
433
450
|
|
|
@@ -493,7 +510,9 @@ Organiser les traductions par namespace (par exemple, `common.json`, `about.json
|
|
|
493
510
|
}
|
|
494
511
|
```
|
|
495
512
|
|
|
496
|
-
|
|
513
|
+
</Step>
|
|
514
|
+
|
|
515
|
+
<Step number={9} title="Utiliser les traductions dans vos pages">
|
|
497
516
|
|
|
498
517
|
Créez un composant de page qui initialise i18next côté serveur et transmet les traductions aux composants serveur et client. Cela garantit que les traductions sont chargées avant le rendu et évite les clignotements de contenu.
|
|
499
518
|
|
|
@@ -553,7 +572,9 @@ export default async function AboutPage({
|
|
|
553
572
|
}
|
|
554
573
|
```
|
|
555
574
|
|
|
556
|
-
|
|
575
|
+
</Step>
|
|
576
|
+
|
|
577
|
+
<Step number={10} title="Utiliser les traductions dans les composants client">
|
|
557
578
|
|
|
558
579
|
Les composants client peuvent utiliser le hook `useTranslation` pour accéder aux traductions. Ce hook fournit l'accès à la fonction de traduction ainsi qu'à l'instance i18n, ce qui vous permet de traduire du contenu et d'accéder aux informations de locale.
|
|
559
580
|
|
|
@@ -604,7 +625,9 @@ const ClientComponent = () => {
|
|
|
604
625
|
export default ClientComponent;
|
|
605
626
|
```
|
|
606
627
|
|
|
607
|
-
|
|
628
|
+
</Step>
|
|
629
|
+
|
|
630
|
+
<Step number={11} title="Utiliser les traductions dans les composants serveur">
|
|
608
631
|
|
|
609
632
|
Les composants serveur ne peuvent pas utiliser les hooks React, ils reçoivent donc les traductions via les props de leurs composants parents. Cette approche maintient les composants serveur synchrones et permet de les imbriquer à l'intérieur des composants client.
|
|
610
633
|
|
|
@@ -650,9 +673,9 @@ const ServerComponent = ({ t, locale, count }: ServerComponentProps) => {
|
|
|
650
673
|
export default ServerComponent;
|
|
651
674
|
```
|
|
652
675
|
|
|
653
|
-
|
|
676
|
+
</Step>
|
|
654
677
|
|
|
655
|
-
|
|
678
|
+
<Step number={12} title="Changer la langue de votre contenu" isOptional={true}>
|
|
656
679
|
|
|
657
680
|
Pour changer la langue de votre contenu dans Next.js, la méthode recommandée est d'utiliser des URLs préfixées par la locale et les liens Next.js. L'exemple ci-dessous lit la locale actuelle depuis la route, la supprime du pathname, et affiche un lien par locale disponible.
|
|
658
681
|
|
|
@@ -724,7 +747,9 @@ export default function LocaleSwitcher() {
|
|
|
724
747
|
}
|
|
725
748
|
```
|
|
726
749
|
|
|
727
|
-
|
|
750
|
+
</Step>
|
|
751
|
+
|
|
752
|
+
<Step number={13} title="Construire un composant Link localisé" isOptional={true}>
|
|
728
753
|
|
|
729
754
|
Réutiliser les URLs localisées dans toute votre application permet de garder une navigation cohérente et optimisée pour le SEO. Enveloppez `next/link` dans un petit helper qui préfixe les routes internes avec la locale active tout en laissant les URLs externes intactes.
|
|
730
755
|
|
|
@@ -775,7 +800,9 @@ export default function LocalizedLink({
|
|
|
775
800
|
|
|
776
801
|
> Astuce : Comme `LocalizedLink` est un remplacement direct, migrez progressivement en échangeant les imports et en laissant le composant gérer les URLs spécifiques à la locale.
|
|
777
802
|
|
|
778
|
-
|
|
803
|
+
</Step>
|
|
804
|
+
|
|
805
|
+
<Step number={14} title="Accéder à la locale active dans les Server Actions" isOptional={true}>
|
|
779
806
|
|
|
780
807
|
Les Server Actions ont souvent besoin de la locale courante pour les emails, la journalisation ou les intégrations tierces. Combinez le cookie de locale défini par votre proxy avec l'en-tête `Accept-Language` en tant que solution de secours.
|
|
781
808
|
|
|
@@ -813,7 +840,9 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
813
840
|
|
|
814
841
|
> Parce que l'assistant s'appuie sur les cookies et les en-têtes de Next.js, il fonctionne dans les Route Handlers, les Server Actions, et d'autres contextes réservés au serveur.
|
|
815
842
|
|
|
816
|
-
|
|
843
|
+
</Step>
|
|
844
|
+
|
|
845
|
+
<Step number={15} title="Internationalisez vos métadonnées" isOptional={true}>
|
|
817
846
|
|
|
818
847
|
Traduire le contenu est important, mais l'objectif principal de l'internationalisation est de rendre votre site web plus visible dans le monde. L'i18n est un levier incroyable pour améliorer la visibilité de votre site via un SEO approprié.
|
|
819
848
|
|
|
@@ -880,7 +909,9 @@ export default async function AboutPage() {
|
|
|
880
909
|
}
|
|
881
910
|
```
|
|
882
911
|
|
|
883
|
-
|
|
912
|
+
</Step>
|
|
913
|
+
|
|
914
|
+
<Step number={16} title="Internationalisez votre sitemap" isOptional={true}>
|
|
884
915
|
|
|
885
916
|
Générez un sitemap qui inclut toutes les versions locales de vos pages. Cela aide les moteurs de recherche à découvrir et indexer toutes les versions linguistiques de votre contenu.
|
|
886
917
|
|
|
@@ -934,7 +965,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
934
965
|
}
|
|
935
966
|
```
|
|
936
967
|
|
|
937
|
-
|
|
968
|
+
</Step>
|
|
969
|
+
|
|
970
|
+
<Step number={17} title="Internationalisez votre fichier robots.txt" isOptional={true}>
|
|
938
971
|
|
|
939
972
|
Créez un fichier robots.txt qui gère correctement toutes les versions locales de vos routes protégées. Cela garantit que les moteurs de recherche n'indexent pas les pages d'administration ou de tableau de bord dans aucune langue.
|
|
940
973
|
|
|
@@ -965,7 +998,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
965
998
|
}
|
|
966
999
|
```
|
|
967
1000
|
|
|
968
|
-
|
|
1001
|
+
</Step>
|
|
1002
|
+
|
|
1003
|
+
<Step number={18} title="Configurer un Middleware pour le Routage des Locales" isOptional={true}>
|
|
969
1004
|
|
|
970
1005
|
Créez un proxy pour détecter automatiquement la locale préférée de l'utilisateur et le rediriger vers l'URL préfixée par la locale appropriée. Cela améliore l'expérience utilisateur en affichant le contenu dans sa langue préférée.
|
|
971
1006
|
|
|
@@ -1054,7 +1089,9 @@ export const config = {
|
|
|
1054
1089
|
};
|
|
1055
1090
|
```
|
|
1056
1091
|
|
|
1057
|
-
|
|
1092
|
+
</Step>
|
|
1093
|
+
|
|
1094
|
+
<Step number={19} title="Automatisez vos traductions avec Intlayer" isOptional={true}>
|
|
1058
1095
|
|
|
1059
1096
|
Intlayer est une bibliothèque **gratuite** et **open-source** conçue pour assister le processus de localisation dans votre application. Alors que i18next gère le chargement et la gestion des traductions, Intlayer aide à automatiser le flux de travail des traductions.
|
|
1060
1097
|
|
|
@@ -1084,3 +1121,7 @@ Intlayer vous permet de :
|
|
|
1084
1121
|
Intlayer propose un éditeur visuel gratuit pour éditer votre contenu via un éditeur visuel. En savoir plus sur [l'édition visuelle de vos traductions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md).
|
|
1085
1122
|
|
|
1086
1123
|
Et plus encore. Pour découvrir toutes les fonctionnalités offertes par Intlayer, veuillez consulter la [documentation sur l'intérêt d'Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/interest_of_intlayer.md).
|
|
1124
|
+
|
|
1125
|
+
</Step>
|
|
1126
|
+
|
|
1127
|
+
</Steps>
|
|
@@ -73,6 +73,7 @@ Localisez les liens en utilisant le composant `Link` pour rediriger l’utilisat
|
|
|
73
73
|
title="Démo CodeSandbox - Comment internationaliser votre application avec Intlayer"
|
|
74
74
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
75
75
|
loading="lazy"
|
|
76
|
+
/>
|
|
76
77
|
|
|
77
78
|
> Voir le [Modèle d’Application](https://github.com/aymericzip/next-intl-template) sur GitHub.
|
|
78
79
|
|
|
@@ -108,7 +109,9 @@ Voici la structure du projet que nous allons créer :
|
|
|
108
109
|
└── ServerComponent.tsx
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
<Steps>
|
|
113
|
+
|
|
114
|
+
<Step number={1} title="Installer les dépendances">
|
|
112
115
|
|
|
113
116
|
Installez les paquets nécessaires en utilisant npm :
|
|
114
117
|
|
|
@@ -126,7 +129,9 @@ yarn add next-intl
|
|
|
126
129
|
|
|
127
130
|
- **next-intl** : La bibliothèque principale d'internationalisation pour Next.js App Router qui fournit des hooks, des fonctions serveur et des providers client pour gérer les traductions.
|
|
128
131
|
|
|
129
|
-
|
|
132
|
+
</Step>
|
|
133
|
+
|
|
134
|
+
<Step number={2} title="Configurer votre projet">
|
|
130
135
|
|
|
131
136
|
Créez un fichier de configuration qui définit vos locales supportées et configure la gestion des requêtes de next-intl. Ce fichier sert de source unique de vérité pour votre configuration i18n et garantit la sécurité des types dans toute votre application.
|
|
132
137
|
|
|
@@ -211,7 +216,9 @@ export const { Link, redirect, usePathname, useRouter, getPathname } =
|
|
|
211
216
|
export const proxy = createMiddleware(routingOptions);
|
|
212
217
|
```
|
|
213
218
|
|
|
214
|
-
|
|
219
|
+
</Step>
|
|
220
|
+
|
|
221
|
+
<Step number={3} title="Définir les routes dynamiques par locale">
|
|
215
222
|
|
|
216
223
|
Configurez le routage dynamique pour les locales en créant un répertoire `[locale]` dans votre dossier app. Cela permet à Next.js de gérer le routage basé sur la locale où chaque locale devient un segment de l'URL (par exemple, `/en/about`, `/fr/about`).
|
|
217
224
|
|
|
@@ -299,7 +306,9 @@ export default async function AboutPage({
|
|
|
299
306
|
}
|
|
300
307
|
```
|
|
301
308
|
|
|
302
|
-
|
|
309
|
+
</Step>
|
|
310
|
+
|
|
311
|
+
<Step number={4} title="Créez vos fichiers de traduction">
|
|
303
312
|
|
|
304
313
|
Créez des fichiers JSON pour chaque locale et namespace. Cette structure vous permet d’organiser les traductions de manière logique et de ne charger que ce dont vous avez besoin pour chaque page.
|
|
305
314
|
|
|
@@ -341,7 +350,9 @@ Organiser les traductions par namespace (par exemple, `common.json`, `about.json
|
|
|
341
350
|
}
|
|
342
351
|
```
|
|
343
352
|
|
|
344
|
-
|
|
353
|
+
</Step>
|
|
354
|
+
|
|
355
|
+
<Step number={5} title="Utiliser les traductions dans vos pages">
|
|
345
356
|
|
|
346
357
|
Créez un composant de page qui charge les traductions côté serveur et les transmet aux composants serveur et client. Cela garantit que les traductions sont chargées avant le rendu et évite les clignotements de contenu.
|
|
347
358
|
|
|
@@ -392,7 +403,9 @@ export default async function AboutPage({
|
|
|
392
403
|
}
|
|
393
404
|
```
|
|
394
405
|
|
|
395
|
-
|
|
406
|
+
</Step>
|
|
407
|
+
|
|
408
|
+
<Step number={6} title="Utiliser les traductions dans les composants client">
|
|
396
409
|
|
|
397
410
|
Les composants client peuvent utiliser les hooks `useTranslations` et `useFormatter` pour accéder aux traductions et aux fonctions de formatage. Ces hooks lisent le contexte de `NextIntlClientProvider`.
|
|
398
411
|
|
|
@@ -428,7 +441,9 @@ const ClientComponent = () => {
|
|
|
428
441
|
};
|
|
429
442
|
```
|
|
430
443
|
|
|
431
|
-
|
|
444
|
+
</Step>
|
|
445
|
+
|
|
446
|
+
<Step number={7} title="Utiliser les traductions dans les composants serveur">
|
|
432
447
|
|
|
433
448
|
Les composants serveur ne peuvent pas utiliser les hooks React, ils reçoivent donc les traductions et les formateurs via des props de leurs composants parents. Cette approche maintient les composants serveur synchrones et leur permet d’être imbriqués à l’intérieur des composants client.
|
|
434
449
|
|
|
@@ -460,9 +475,9 @@ const ServerComponent = ({
|
|
|
460
475
|
|
|
461
476
|
> Dans votre page/layout, utilisez `getTranslations` et `getFormatter` depuis `next-intl/server` pour pré-calculer les traductions et le formatage, puis passez-les en props aux composants serveur.
|
|
462
477
|
|
|
463
|
-
|
|
478
|
+
</Step>
|
|
464
479
|
|
|
465
|
-
|
|
480
|
+
<Step number={8} title="Changer la langue de votre contenu" isOptional={true}>
|
|
466
481
|
|
|
467
482
|
Pour changer la langue de votre contenu avec next-intl, affichez des liens sensibles à la locale qui pointent vers le même chemin tout en changeant la locale. Le provider réécrit automatiquement les URLs, vous n'avez donc qu'à cibler la route actuelle.
|
|
468
483
|
|
|
@@ -534,7 +549,9 @@ export default function LocaleSwitcher() {
|
|
|
534
549
|
}
|
|
535
550
|
```
|
|
536
551
|
|
|
537
|
-
|
|
552
|
+
</Step>
|
|
553
|
+
|
|
554
|
+
<Step number={9} title="Utiliser le composant Link localisé" isOptional={true}>
|
|
538
555
|
|
|
539
556
|
`next-intl` fournit un sous-package `next-intl/navigation` qui contient un composant Link localisé appliquant automatiquement la locale active. Nous l'avons déjà extrait pour vous dans le fichier `@/i18n`, vous pouvez donc l'utiliser ainsi :
|
|
540
557
|
|
|
@@ -544,7 +561,9 @@ import { Link } from "@/i18n";
|
|
|
544
561
|
return <Link href="/about">t("about.title")</Link>;
|
|
545
562
|
```
|
|
546
563
|
|
|
547
|
-
|
|
564
|
+
</Step>
|
|
565
|
+
|
|
566
|
+
<Step number={10} title="Accéder à la locale active dans les Server Actions" isOptional={true}>
|
|
548
567
|
|
|
549
568
|
Les Server Actions peuvent lire la locale courante en utilisant `next-intl/server`. Cela est utile pour envoyer des emails localisés ou stocker les préférences de langue avec les données soumises.
|
|
550
569
|
|
|
@@ -567,7 +586,9 @@ export async function handleContactForm(formData: FormData) {
|
|
|
567
586
|
|
|
568
587
|
> `getLocale` lit la locale définie par le proxy `next-intl`, donc cela fonctionne partout sur le serveur : Route Handlers, Server Actions et fonctions edge.
|
|
569
588
|
|
|
570
|
-
|
|
589
|
+
</Step>
|
|
590
|
+
|
|
591
|
+
<Step number={11} title="Internationalisez vos métadonnées" isOptional={true}>
|
|
571
592
|
|
|
572
593
|
La traduction du contenu est importante, mais l'objectif principal de l'internationalisation est de rendre votre site web plus visible dans le monde. L'i18n est un levier incroyable pour améliorer la visibilité de votre site grâce à un SEO approprié.
|
|
573
594
|
|
|
@@ -606,7 +627,9 @@ export async function generateMetadata({
|
|
|
606
627
|
// ... Reste du code de la page
|
|
607
628
|
```
|
|
608
629
|
|
|
609
|
-
|
|
630
|
+
</Step>
|
|
631
|
+
|
|
632
|
+
<Step number={12} title="Internationalisez votre Sitemap" isOptional={true}>
|
|
610
633
|
|
|
611
634
|
Générez un sitemap qui inclut toutes les versions locales de vos pages. Cela aide les moteurs de recherche à découvrir et indexer toutes les versions linguistiques de votre contenu.
|
|
612
635
|
|
|
@@ -660,7 +683,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
660
683
|
}
|
|
661
684
|
```
|
|
662
685
|
|
|
663
|
-
|
|
686
|
+
</Step>
|
|
687
|
+
|
|
688
|
+
<Step number={13} title="Internationalisez votre fichier robots.txt" isOptional={true}>
|
|
664
689
|
|
|
665
690
|
Créez un fichier robots.txt qui gère correctement toutes les versions locales de vos routes protégées. Cela garantit que les moteurs de recherche n'indexent pas les pages d'administration ou de tableau de bord dans aucune langue.
|
|
666
691
|
|
|
@@ -693,7 +718,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
693
718
|
}
|
|
694
719
|
```
|
|
695
720
|
|
|
696
|
-
|
|
721
|
+
</Step>
|
|
722
|
+
|
|
723
|
+
<Step number={14} title="Configurer un proxy pour le routage des locales" isOptional={true}>
|
|
697
724
|
|
|
698
725
|
Créez un proxy pour détecter automatiquement la locale préférée de l'utilisateur et le rediriger vers l'URL préfixée par la locale appropriée. next-intl fournit une fonction proxy pratique qui gère cela automatiquement.
|
|
699
726
|
|
|
@@ -713,7 +740,9 @@ export const config = {
|
|
|
713
740
|
};
|
|
714
741
|
```
|
|
715
742
|
|
|
716
|
-
|
|
743
|
+
</Step>
|
|
744
|
+
|
|
745
|
+
<Step number={15} title="Configurer les types TypeScript pour la locale" isOptional={true}>
|
|
717
746
|
|
|
718
747
|
Configurer TypeScript vous aidera à bénéficier de l'autocomplétion et de la sécurité de type pour vos clés.
|
|
719
748
|
|
|
@@ -739,7 +768,9 @@ declare module "next-intl" {
|
|
|
739
768
|
|
|
740
769
|
Ce code utilise l'augmentation de module pour ajouter les locales et les messages au type AppConfig de next-intl.
|
|
741
770
|
|
|
742
|
-
|
|
771
|
+
</Step>
|
|
772
|
+
|
|
773
|
+
<Step number={16} title="Automatisez vos traductions avec Intlayer" isOptional={true}>
|
|
743
774
|
|
|
744
775
|
Intlayer est une bibliothèque **gratuite** et **open-source** conçue pour assister le processus de localisation dans votre application. Alors que next-intl gère le chargement et la gestion des traductions, Intlayer aide à automatiser le flux de travail des traductions.
|
|
745
776
|
|
|
@@ -764,3 +795,7 @@ Intlayer vous permet de :
|
|
|
764
795
|
Intlayer propose un éditeur visuel gratuit pour modifier votre contenu via une interface visuelle. En savoir plus sur [l’édition visuelle de vos traductions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md).
|
|
765
796
|
|
|
766
797
|
Et plus encore. Pour découvrir toutes les fonctionnalités offertes par Intlayer, veuillez consulter la [documentation sur l’intérêt d’Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/interest_of_intlayer.md).
|
|
798
|
+
|
|
799
|
+
</Step>
|
|
800
|
+
|
|
801
|
+
</Steps>
|