@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
|
@@ -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
|
> GitHubの[Application Template](https://github.com/aymericzip/next-i18next-template)をご覧ください。
|
|
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**: i18nextのReactバインディングで、クライアントコンポーネント向けに`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]` ディレクトリを作成して、ロケールの動的ルーティングを設定します。これにより、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
|
|
|
@@ -493,7 +510,9 @@ export default function LocaleLayout({
|
|
|
493
510
|
}
|
|
494
511
|
```
|
|
495
512
|
|
|
496
|
-
|
|
513
|
+
</Step>
|
|
514
|
+
|
|
515
|
+
<Step number={9} title="ページで翻訳を利用する">
|
|
497
516
|
|
|
498
517
|
i18nextをサーバー上で初期化し、翻訳をサーバーコンポーネントとクライアントコンポーネントの両方に渡すページコンポーネントを作成します。これにより、レンダリング前に翻訳が読み込まれ、コンテンツのフラッシュを防止できます。
|
|
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="クライアントコンポーネントでの翻訳の使用">
|
|
557
578
|
|
|
558
579
|
クライアントコンポーネントでは、`useTranslation` フックを使用して翻訳にアクセスできます。このフックは翻訳関数とi18nインスタンスへのアクセスを提供し、コンテンツの翻訳やロケール情報の取得を可能にします。
|
|
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="サーバーコンポーネントでの翻訳の使用">
|
|
608
631
|
|
|
609
632
|
サーバーコンポーネントはReactのフックを使用できないため、親コンポーネントからprops経由で翻訳を受け取ります。この方法により、サーバーコンポーネントは同期的に保たれ、クライアントコンポーネント内にネストすることが可能になります。
|
|
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="コンテンツの言語を変更する" isOptional={true}>
|
|
656
679
|
|
|
657
680
|
Next.jsでコンテンツの言語を変更する推奨方法は、ロケール接頭辞付きのURLとNext.jsのリンクを使用することです。以下の例では、現在のロケールをルートから読み取り、パス名からそれを取り除き、利用可能な各ロケールごとにリンクをレンダリングします。
|
|
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="ローカライズされたLinkコンポーネントの作成" isOptional={true}>
|
|
728
753
|
|
|
729
754
|
アプリ全体でローカライズされたURLを再利用することで、ナビゲーションの一貫性を保ち、SEOにも効果的です。`next/link`をラップし、内部ルートにはアクティブなロケールをプレフィックスとして付け、外部URLはそのままにする小さなヘルパーを作成しましょう。
|
|
730
755
|
|
|
@@ -775,7 +800,9 @@ export default function LocalizedLink({
|
|
|
775
800
|
|
|
776
801
|
> ヒント: `LocalizedLink` はドロップイン置換なので、インポートを差し替えてコンポーネントにロケール固有のURL処理を任せる形で段階的に移行できます。
|
|
777
802
|
|
|
778
|
-
|
|
803
|
+
</Step>
|
|
804
|
+
|
|
805
|
+
<Step number={14} title="サーバーアクション内でアクティブなロケールにアクセスする" isOptional={true}>
|
|
779
806
|
|
|
780
807
|
サーバーアクションでは、メール送信やログ記録、サードパーティ連携のために現在のロケールが必要になることが多いです。プロキシで設定されたロケールクッキーと、フォールバックとしての `Accept-Language` ヘッダーを組み合わせて使用します。
|
|
781
808
|
|
|
@@ -813,7 +840,9 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
813
840
|
|
|
814
841
|
> このヘルパーは Next.js のクッキーとヘッダーに依存しているため、Route Handlers、Server Actions、その他のサーバー専用コンテキストで動作します。
|
|
815
842
|
|
|
816
|
-
|
|
843
|
+
</Step>
|
|
844
|
+
|
|
845
|
+
<Step number={15} title="メタデータの国際化" isOptional={true}>
|
|
817
846
|
|
|
818
847
|
コンテンツの翻訳は重要ですが、国際化の主な目的はあなたのウェブサイトを世界により見えるようにすることです。I18n は適切な SEO を通じてウェブサイトの可視性を向上させるための強力な手段です。
|
|
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="サイトマップの多言語対応" isOptional={true}>
|
|
884
915
|
|
|
885
916
|
すべてのロケールバージョンのページを含むサイトマップを生成します。これにより、検索エンジンがすべての言語バージョンのコンテンツを検出し、インデックス化しやすくなります。
|
|
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="robots.txtの多言語対応" isOptional={true}>
|
|
938
971
|
|
|
939
972
|
保護されたルートのすべてのロケールバージョンを適切に処理するrobots.txtファイルを作成します。これにより、検索エンジンが管理者ページやダッシュボードページをどの言語でもインデックスしないようにします。
|
|
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="ロケールルーティングのためのミドルウェア設定" isOptional={true}>
|
|
969
1004
|
|
|
970
1005
|
ユーザーの好みのロケールを自動的に検出し、適切なロケール接頭辞付きURLにリダイレクトするプロキシを作成します。これにより、ユーザーは自分の好みの言語でコンテンツを閲覧でき、ユーザー体験が向上します。
|
|
971
1006
|
|
|
@@ -1054,7 +1089,9 @@ export const config = {
|
|
|
1054
1089
|
};
|
|
1055
1090
|
```
|
|
1056
1091
|
|
|
1057
|
-
|
|
1092
|
+
</Step>
|
|
1093
|
+
|
|
1094
|
+
<Step number={19} title="Intlayerを使った翻訳の自動化" isOptional={true}>
|
|
1058
1095
|
|
|
1059
1096
|
Intlayerは、アプリケーションのローカリゼーションプロセスを支援するために設計された**無料**かつ**オープンソース**のライブラリです。i18nextが翻訳の読み込みと管理を担当する一方で、Intlayerは翻訳ワークフローの自動化を支援します。
|
|
1060
1097
|
|
|
@@ -1084,3 +1121,7 @@ Intlayerが可能にすること:
|
|
|
1084
1121
|
Intlayerは無料のビジュアルエディターを提供しており、視覚的にコンテンツを編集できます。詳細は[翻訳のビジュアル編集](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)をご覧ください。
|
|
1085
1122
|
|
|
1086
1123
|
その他にも多数の機能があります。Intlayerが提供するすべての機能については、[Intlayerの利点に関するドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/interest_of_intlayer.md)をご参照ください。
|
|
1124
|
+
|
|
1125
|
+
</Step>
|
|
1126
|
+
|
|
1127
|
+
</Steps>
|
|
@@ -71,6 +71,7 @@ history:
|
|
|
71
71
|
title="デモ CodeSandbox - 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
|
> GitHub の [Application Template](https://github.com/aymericzip/next-intl-template) を参照してください。
|
|
76
77
|
|
|
@@ -106,7 +107,9 @@ history:
|
|
|
106
107
|
└── ServerComponent.tsx
|
|
107
108
|
```
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
<Steps>
|
|
111
|
+
|
|
112
|
+
<Step number={1} title="依存関係のインストール">
|
|
110
113
|
|
|
111
114
|
npmを使って必要なパッケージをインストールします:
|
|
112
115
|
|
|
@@ -124,7 +127,9 @@ yarn add next-intl
|
|
|
124
127
|
|
|
125
128
|
- **next-intl**: Next.js App Router向けのコア国際化ライブラリで、翻訳管理のためのフック、サーバー関数、クライアントプロバイダーを提供します。
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
</Step>
|
|
131
|
+
|
|
132
|
+
<Step number={2} title="プロジェクトの設定">
|
|
128
133
|
|
|
129
134
|
サポートするロケールを定義し、next-intlのリクエスト設定を行う設定ファイルを作成します。このファイルはi18n設定の単一の信頼できる情報源として機能し、アプリケーション全体で型安全性を保証します。
|
|
130
135
|
|
|
@@ -208,7 +213,9 @@ export const { Link, redirect, usePathname, useRouter, getPathname } =
|
|
|
208
213
|
export const proxy = createMiddleware(routingOptions);
|
|
209
214
|
```
|
|
210
215
|
|
|
211
|
-
|
|
216
|
+
</Step>
|
|
217
|
+
|
|
218
|
+
<Step number={3} title="動的ロケールルートの定義">
|
|
212
219
|
|
|
213
220
|
ロケールごとの動的ルーティングを設定するために、アプリフォルダ内に `[locale]` ディレクトリを作成します。これにより、Next.js はロケールベースのルーティングを処理でき、各ロケールが URL セグメント(例:`/en/about`、`/fr/about`)になります。
|
|
214
221
|
|
|
@@ -297,7 +304,9 @@ export default async function AboutPage({
|
|
|
297
304
|
}
|
|
298
305
|
```
|
|
299
306
|
|
|
300
|
-
|
|
307
|
+
</Step>
|
|
308
|
+
|
|
309
|
+
<Step number={4} title="翻訳ファイルを作成する">
|
|
301
310
|
|
|
302
311
|
各ロケールと名前空間ごとにJSONファイルを作成します。この構造により、翻訳を論理的に整理し、各ページに必要なものだけを読み込むことができます。
|
|
303
312
|
|
|
@@ -339,7 +348,9 @@ export default async function AboutPage({
|
|
|
339
348
|
}
|
|
340
349
|
```
|
|
341
350
|
|
|
342
|
-
|
|
351
|
+
</Step>
|
|
352
|
+
|
|
353
|
+
<Step number={5} title="ページで翻訳を利用する">
|
|
343
354
|
|
|
344
355
|
サーバーで翻訳を読み込み、それをサーバーコンポーネントとクライアントコンポーネントの両方に渡すページコンポーネントを作成します。これにより、レンダリング前に翻訳が読み込まれ、コンテンツのフラッシュを防止します。
|
|
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="クライアントコンポーネントでの翻訳の使用">
|
|
394
407
|
|
|
395
408
|
クライアントコンポーネントは、`useTranslations` と `useFormatter` フックを使用して翻訳およびフォーマット関数にアクセスできます。これらのフックは `NextIntlClientProvider` コンテキストから読み取ります。
|
|
396
409
|
|
|
@@ -426,7 +439,9 @@ const ClientComponent = () => {
|
|
|
426
439
|
};
|
|
427
440
|
```
|
|
428
441
|
|
|
429
|
-
|
|
442
|
+
</Step>
|
|
443
|
+
|
|
444
|
+
<Step number={7} title="サーバーコンポーネントでの翻訳の使用">
|
|
430
445
|
|
|
431
446
|
サーバーコンポーネントは React フックを使用できないため、親コンポーネントから props 経由で翻訳とフォーマッターを受け取ります。この方法により、サーバーコンポーネントは同期的に保たれ、クライアントコンポーネント内にネストすることが可能になります。
|
|
432
447
|
|
|
@@ -458,9 +473,9 @@ const ServerComponent = ({
|
|
|
458
473
|
|
|
459
474
|
> ページやレイアウト内で、`next-intl/server` から `getTranslations` と `getFormatter` を使用して翻訳とフォーマットを事前計算し、それらを props としてサーバーコンポーネントに渡してください。
|
|
460
475
|
|
|
461
|
-
|
|
476
|
+
</Step>
|
|
462
477
|
|
|
463
|
-
|
|
478
|
+
<Step number={8} title="コンテンツの言語を変更する" isOptional={true}>
|
|
464
479
|
|
|
465
480
|
next-intl を使ってコンテンツの言語を変更するには、同じパス名を指しながらロケールを切り替えるロケール対応リンクをレンダリングします。プロバイダーが URL を自動的に書き換えるため、現在のルートをターゲットにするだけで済みます。
|
|
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="ローカライズされたLinkコンポーネントを使用する" isOptional={true}>
|
|
536
553
|
|
|
537
554
|
`next-intl`は、アクティブなロケールを自動的に適用するローカライズされたリンクコンポーネントを含むサブパッケージ`next-intl/navigation`を提供しています。これはすでに`@/i18n`ファイルで抽出してあるので、以下のように使用できます。
|
|
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="Server Actions内でアクティブなロケールにアクセスする" isOptional={true}>
|
|
546
565
|
|
|
547
566
|
Server Actionsは`next-intl/server`を使用して現在のロケールを読み取ることができます。これはローカライズされたメールを送信したり、送信されたデータと共に言語設定を保存したりするのに便利です。
|
|
548
567
|
|
|
@@ -565,7 +584,9 @@ export async function handleContactForm(formData: FormData) {
|
|
|
565
584
|
|
|
566
585
|
> `getLocale` は `next-intl` プロキシによって設定されたロケールを読み取るため、サーバーのどこでも動作します:ルートハンドラー、サーバーアクション、およびエッジ関数。
|
|
567
586
|
|
|
568
|
-
|
|
587
|
+
</Step>
|
|
588
|
+
|
|
589
|
+
<Step number={11} title="メタデータの国際化" isOptional={true}>
|
|
569
590
|
|
|
570
591
|
コンテンツの翻訳は重要ですが、国際化の主な目的はあなたのウェブサイトを世界により見えるようにすることです。I18nは適切なSEOを通じてウェブサイトの可視性を向上させるための強力な手段です。
|
|
571
592
|
|
|
@@ -605,7 +626,9 @@ export async function generateMetadata({
|
|
|
605
626
|
// ... ページの残りのコード
|
|
606
627
|
```
|
|
607
628
|
|
|
608
|
-
|
|
629
|
+
</Step>
|
|
630
|
+
|
|
631
|
+
<Step number={12} title="サイトマップの国際化" isOptional={true}>
|
|
609
632
|
|
|
610
633
|
すべてのロケールバージョンのページを含むサイトマップを生成します。これにより、検索エンジンがすべての言語バージョンのコンテンツを検出し、インデックス化するのに役立ちます。
|
|
611
634
|
|
|
@@ -659,7 +682,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
659
682
|
}
|
|
660
683
|
```
|
|
661
684
|
|
|
662
|
-
|
|
685
|
+
</Step>
|
|
686
|
+
|
|
687
|
+
<Step number={13} title="robots.txtの多言語対応" isOptional={true}>
|
|
663
688
|
|
|
664
689
|
保護されたルートのすべてのロケールバージョンを適切に処理するrobots.txtファイルを作成します。これにより、検索エンジンが管理者ページやダッシュボードページをどの言語でもインデックスしないようにできます。
|
|
665
690
|
|
|
@@ -692,7 +717,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
692
717
|
}
|
|
693
718
|
```
|
|
694
719
|
|
|
695
|
-
|
|
720
|
+
</Step>
|
|
721
|
+
|
|
722
|
+
<Step number={14} title="ロケールルーティングのためのプロキシ設定" isOptional={true}>
|
|
696
723
|
|
|
697
724
|
ユーザーの優先ロケールを自動的に検出し、適切なロケールプレフィックス付きURLへリダイレクトするプロキシを作成します。next-intlはこれを自動で処理する便利なプロキシ関数を提供しています。
|
|
698
725
|
|
|
@@ -712,7 +739,9 @@ export const config = {
|
|
|
712
739
|
};
|
|
713
740
|
```
|
|
714
741
|
|
|
715
|
-
|
|
742
|
+
</Step>
|
|
743
|
+
|
|
744
|
+
<Step number={15} title="ロケール用のTypeScript型を設定する" isOptional={true}>
|
|
716
745
|
|
|
717
746
|
TypeScriptを設定すると、キーのオートコンプリートと型安全性が得られます。
|
|
718
747
|
|
|
@@ -738,7 +767,9 @@ declare module "next-intl" {
|
|
|
738
767
|
|
|
739
768
|
このコードはモジュール拡張(Module Augmentation)を使用して、locales と messages を next-intl の AppConfig 型に追加します。
|
|
740
769
|
|
|
741
|
-
|
|
770
|
+
</Step>
|
|
771
|
+
|
|
772
|
+
<Step number={16} title="Intlayerを使って翻訳を自動化する" isOptional={true}>
|
|
742
773
|
|
|
743
774
|
Intlayerは、アプリケーションのローカリゼーションプロセスを支援するために設計された**無料**かつ**オープンソース**のライブラリです。next-intlが翻訳の読み込みと管理を担当する一方で、Intlayerは翻訳ワークフローの自動化を支援します。
|
|
744
775
|
|
|
@@ -763,3 +794,7 @@ Intlayerは以下のことを可能にします:
|
|
|
763
794
|
Intlayerは、ビジュアルエディターを使用してコンテンツを編集できる無料のビジュアルエディターを提供しています。詳細は[翻訳のビジュアル編集について](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)をご覧ください。
|
|
764
795
|
|
|
765
796
|
その他にも多数の機能があります。Intlayerが提供するすべての機能を知るには、[Intlayerの利点に関するドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/interest_of_intlayer.md)をご参照ください。
|
|
797
|
+
|
|
798
|
+
</Step>
|
|
799
|
+
|
|
800
|
+
</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
|
> GitHub에서 [Application Template](https://github.com/aymericzip/next-i18next-template)을 참조하세요.
|
|
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**: 클라이언트 컴포넌트를 위한 `useTranslation` 훅 등을 제공하는 i18next의 React 바인딩입니다.
|
|
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
|
애플리케이션에서 노출하는 모든 네임스페이스에 대해 단일 소스 오브 트루스를 만드세요. 이 목록을 재사용하면 서버, 클라이언트, 툴링 코드가 동기화되고 번역 헬퍼에 대한 강력한 타입 지원이 활성화됩니다.
|
|
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가 네임스페이스별 유효한 키를 추론하여 `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]` 디렉토리를 생성하여 로케일에 대한 동적 라우팅을 설정합니다. 이를 통해 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
|
|
|
@@ -493,7 +510,9 @@ export default function LocaleLayout({
|
|
|
493
510
|
}
|
|
494
511
|
```
|
|
495
512
|
|
|
496
|
-
|
|
513
|
+
</Step>
|
|
514
|
+
|
|
515
|
+
<Step number={9} title="페이지에서 번역 활용하기">
|
|
497
516
|
|
|
498
517
|
서버에서 i18next를 초기화하고 번역을 서버와 클라이언트 컴포넌트 모두에 전달하는 페이지 컴포넌트를 만듭니다. 이렇게 하면 렌더링 전에 번역이 로드되어 콘텐츠 깜빡임을 방지할 수 있습니다.
|
|
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="클라이언트 컴포넌트에서 번역 사용하기">
|
|
557
578
|
|
|
558
579
|
클라이언트 컴포넌트는 `useTranslation` 훅을 사용하여 번역에 접근할 수 있습니다. 이 훅은 번역 함수와 i18n 인스턴스에 접근할 수 있게 하여, 콘텐츠를 번역하고 로케일 정보를 사용할 수 있도록 합니다.
|
|
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="서버 컴포넌트에서 번역 사용하기">
|
|
608
631
|
|
|
609
632
|
서버 컴포넌트는 React 훅을 사용할 수 없으므로, 부모 컴포넌트로부터 props를 통해 번역을 전달받습니다. 이 방법은 서버 컴포넌트를 동기적으로 유지하며 클라이언트 컴포넌트 내부에 중첩될 수 있도록 합니다.
|
|
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="콘텐츠 언어 변경하기" isOptional={true}>
|
|
656
679
|
|
|
657
680
|
Next.js에서 콘텐츠의 언어를 변경하는 권장 방법은 로케일 접두사가 붙은 URL과 Next.js 링크를 사용하는 것입니다. 아래 예제는 현재 로케일을 경로에서 읽어와 경로명에서 제거하고, 사용 가능한 각 로케일에 대해 하나의 링크를 렌더링합니다.
|
|
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="지역화된 Link 컴포넌트 만들기" isOptional={true}>
|
|
728
753
|
|
|
729
754
|
앱 전반에 걸쳐 지역화된 URL을 재사용하면 내비게이션이 일관되고 SEO 친화적으로 유지됩니다. 내부 경로에는 활성 로케일을 접두사로 붙이고 외부 URL은 그대로 두는 작은 헬퍼로 `next/link`를 감싸세요.
|
|
730
755
|
|
|
@@ -775,7 +800,9 @@ export default function LocalizedLink({
|
|
|
775
800
|
|
|
776
801
|
> 팁: `LocalizedLink`는 드롭인 교체이므로, import를 교체하고 컴포넌트가 로케일별 URL을 처리하도록 하여 점진적으로 마이그레이션하세요.
|
|
777
802
|
|
|
778
|
-
|
|
803
|
+
</Step>
|
|
804
|
+
|
|
805
|
+
<Step number={14} title="서버 액션 내에서 활성 로케일 접근하기" isOptional={true}>
|
|
779
806
|
|
|
780
807
|
서버 액션은 종종 이메일, 로깅 또는 서드파티 통합을 위해 현재 로케일이 필요합니다. 프록시가 설정한 로케일 쿠키와 `Accept-Language` 헤더를 결합하여 폴백으로 사용하세요.
|
|
781
808
|
|
|
@@ -813,7 +840,9 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
813
840
|
|
|
814
841
|
> 이 헬퍼는 Next.js의 쿠키와 헤더에 의존하기 때문에, Route Handlers, Server Actions 및 기타 서버 전용 컨텍스트에서 작동합니다.
|
|
815
842
|
|
|
816
|
-
|
|
843
|
+
</Step>
|
|
844
|
+
|
|
845
|
+
<Step number={15} title="메타데이터 국제화하기" isOptional={true}>
|
|
817
846
|
|
|
818
847
|
콘텐츠 번역도 중요하지만, 국제화의 주요 목표는 여러분의 웹사이트를 전 세계에 더 잘 노출시키는 것입니다. I18n은 적절한 SEO를 통해 웹사이트 가시성을 향상시키는 놀라운 수단입니다.
|
|
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="사이트맵 국제화하기" isOptional={true}>
|
|
884
915
|
|
|
885
916
|
모든 로케일 버전의 페이지를 포함하는 사이트맵을 생성하세요. 이는 검색 엔진이 모든 언어 버전의 콘텐츠를 발견하고 색인화하는 데 도움을 줍니다.
|
|
886
917
|
|
|
@@ -935,7 +966,9 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
|
|
935
966
|
}
|
|
936
967
|
```
|
|
937
968
|
|
|
938
|
-
|
|
969
|
+
</Step>
|
|
970
|
+
|
|
971
|
+
<Step number={17} title="robots.txt 국제화하기" isOptional={true}>
|
|
939
972
|
|
|
940
973
|
보호된 경로의 모든 로케일 버전을 적절히 처리하는 robots.txt 파일을 만드세요. 이를 통해 검색 엔진이 어떤 언어로든 관리자(admin) 또는 대시보드 페이지를 인덱싱하지 않도록 보장합니다.
|
|
941
974
|
|
|
@@ -966,7 +999,9 @@ export default function robots(): MetadataRoute.Robots {
|
|
|
966
999
|
}
|
|
967
1000
|
```
|
|
968
1001
|
|
|
969
|
-
|
|
1002
|
+
</Step>
|
|
1003
|
+
|
|
1004
|
+
<Step number={18} title="로케일 라우팅을 위한 미들웨어 설정" isOptional={true}>
|
|
970
1005
|
|
|
971
1006
|
사용자의 선호 로케일을 자동으로 감지하고 적절한 로케일 접두사가 붙은 URL로 리디렉션하는 프록시를 만듭니다. 이를 통해 사용자는 선호하는 언어로 된 콘텐츠를 볼 수 있어 사용자 경험이 향상됩니다.
|
|
972
1007
|
|
|
@@ -1055,7 +1090,9 @@ export const config = {
|
|
|
1055
1090
|
};
|
|
1056
1091
|
```
|
|
1057
1092
|
|
|
1058
|
-
|
|
1093
|
+
</Step>
|
|
1094
|
+
|
|
1095
|
+
<Step number={19} title="Intlayer를 사용하여 번역 자동화하기" isOptional={true}>
|
|
1059
1096
|
|
|
1060
1097
|
Intlayer는 애플리케이션의 현지화 과정을 지원하기 위해 설계된 **무료**이자 **오픈 소스** 라이브러리입니다. i18next가 번역 로딩과 관리를 담당하는 반면, Intlayer는 번역 워크플로우 자동화를 도와줍니다.
|
|
1061
1098
|
|
|
@@ -1081,3 +1118,7 @@ Intlayer는 다음을 가능하게 합니다:
|
|
|
1081
1118
|
Intlayer는 비주얼 에디터를 사용하여 콘텐츠를 편집할 수 있는 무료 비주얼 에디터를 제공합니다. [번역 비주얼 편집](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)에서 자세히 알아보세요.
|
|
1082
1119
|
|
|
1083
1120
|
그리고 더 많은 기능들이 있습니다. Intlayer가 제공하는 모든 기능을 확인하려면 [Intlayer의 장점 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/interest_of_intlayer.md)를 참조하세요.
|
|
1121
|
+
|
|
1122
|
+
</Step>
|
|
1123
|
+
|
|
1124
|
+
</Steps>
|