@intlayer/docs 7.5.6 → 7.5.8
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/intlayer_with_i18next.md +8 -4
- package/blog/ar/intlayer_with_next-i18next.md +8 -4
- package/blog/ar/intlayer_with_next-intl.md +8 -4
- package/blog/ar/intlayer_with_react-i18next.md +8 -4
- package/blog/ar/intlayer_with_react-intl.md +8 -4
- package/blog/ar/intlayer_with_vue-i18n.md +8 -4
- package/blog/de/intlayer_with_i18next.md +8 -4
- package/blog/de/intlayer_with_next-i18next.md +8 -4
- package/blog/de/intlayer_with_next-intl.md +8 -4
- package/blog/de/intlayer_with_react-i18next.md +8 -4
- package/blog/de/intlayer_with_react-intl.md +8 -4
- package/blog/de/intlayer_with_vue-i18n.md +8 -4
- package/blog/en/intlayer_with_i18next.md +8 -4
- package/blog/en/intlayer_with_next-i18next.md +8 -4
- package/blog/en/intlayer_with_next-intl.md +8 -4
- package/blog/en/intlayer_with_react-i18next.md +8 -4
- package/blog/en/intlayer_with_react-intl.md +8 -4
- package/blog/en/intlayer_with_vue-i18n.md +8 -4
- package/blog/en-GB/intlayer_with_i18next.md +8 -4
- package/blog/en-GB/intlayer_with_next-i18next.md +8 -4
- package/blog/en-GB/intlayer_with_next-intl.md +8 -4
- package/blog/en-GB/intlayer_with_react-i18next.md +8 -4
- package/blog/en-GB/intlayer_with_react-intl.md +8 -4
- package/blog/en-GB/intlayer_with_vue-i18n.md +8 -4
- package/blog/es/intlayer_with_i18next.md +8 -4
- package/blog/es/intlayer_with_next-i18next.md +8 -4
- package/blog/es/intlayer_with_next-intl.md +8 -4
- package/blog/es/intlayer_with_react-i18next.md +8 -4
- package/blog/es/intlayer_with_react-intl.md +8 -4
- package/blog/es/intlayer_with_vue-i18n.md +8 -4
- package/blog/fr/intlayer_with_i18next.md +8 -4
- package/blog/fr/intlayer_with_next-i18next.md +8 -4
- package/blog/fr/intlayer_with_next-intl.md +8 -4
- package/blog/fr/intlayer_with_react-i18next.md +8 -4
- package/blog/fr/intlayer_with_react-intl.md +8 -4
- package/blog/fr/intlayer_with_vue-i18n.md +8 -4
- package/blog/hi/intlayer_with_i18next.md +8 -4
- package/blog/hi/intlayer_with_next-i18next.md +8 -4
- package/blog/hi/intlayer_with_next-intl.md +8 -4
- package/blog/hi/intlayer_with_react-i18next.md +8 -4
- package/blog/hi/intlayer_with_react-intl.md +8 -4
- package/blog/hi/intlayer_with_vue-i18n.md +8 -4
- package/blog/id/intlayer_with_i18next.md +8 -4
- package/blog/id/intlayer_with_next-i18next.md +8 -4
- package/blog/id/intlayer_with_next-intl.md +8 -4
- package/blog/id/intlayer_with_react-i18next.md +8 -4
- package/blog/id/intlayer_with_react-intl.md +8 -4
- package/blog/id/intlayer_with_vue-i18n.md +8 -4
- package/blog/it/intlayer_with_i18next.md +8 -4
- package/blog/it/intlayer_with_next-i18next.md +8 -4
- package/blog/it/intlayer_with_next-intl.md +8 -4
- package/blog/it/intlayer_with_react-i18next.md +8 -4
- package/blog/it/intlayer_with_react-intl.md +8 -4
- package/blog/it/intlayer_with_vue-i18n.md +8 -4
- package/blog/ja/intlayer_with_i18next.md +8 -4
- package/blog/ja/intlayer_with_next-i18next.md +8 -4
- package/blog/ja/intlayer_with_next-intl.md +8 -4
- package/blog/ja/intlayer_with_react-i18next.md +8 -4
- package/blog/ja/intlayer_with_react-intl.md +8 -4
- package/blog/ja/intlayer_with_vue-i18n.md +8 -4
- package/blog/ko/intlayer_with_i18next.md +8 -4
- package/blog/ko/intlayer_with_next-i18next.md +8 -4
- package/blog/ko/intlayer_with_next-intl.md +8 -4
- package/blog/ko/intlayer_with_react-i18next.md +8 -4
- package/blog/ko/intlayer_with_react-intl.md +8 -4
- package/blog/ko/intlayer_with_vue-i18n.md +8 -4
- package/blog/pl/intlayer_with_i18next.md +8 -4
- package/blog/pl/intlayer_with_next-i18next.md +8 -4
- package/blog/pl/intlayer_with_next-intl.md +8 -4
- package/blog/pl/intlayer_with_react-i18next.md +8 -4
- package/blog/pl/intlayer_with_react-intl.md +8 -4
- package/blog/pl/intlayer_with_vue-i18n.md +8 -4
- package/blog/pt/intlayer_with_i18next.md +8 -4
- package/blog/pt/intlayer_with_next-i18next.md +8 -4
- package/blog/pt/intlayer_with_next-intl.md +8 -4
- package/blog/pt/intlayer_with_react-i18next.md +8 -4
- package/blog/pt/intlayer_with_react-intl.md +8 -4
- package/blog/pt/intlayer_with_vue-i18n.md +8 -4
- package/blog/ru/intlayer_with_i18next.md +8 -4
- package/blog/ru/intlayer_with_next-i18next.md +8 -4
- package/blog/ru/intlayer_with_next-intl.md +8 -4
- package/blog/ru/intlayer_with_react-i18next.md +8 -4
- package/blog/ru/intlayer_with_react-intl.md +8 -4
- package/blog/ru/intlayer_with_vue-i18n.md +8 -4
- package/blog/tr/intlayer_with_i18next.md +8 -4
- package/blog/tr/intlayer_with_next-i18next.md +8 -4
- package/blog/tr/intlayer_with_next-intl.md +8 -4
- package/blog/tr/intlayer_with_react-i18next.md +8 -4
- package/blog/tr/intlayer_with_react-intl.md +8 -4
- package/blog/tr/intlayer_with_vue-i18n.md +8 -4
- package/blog/vi/intlayer_with_i18next.md +8 -4
- package/blog/vi/intlayer_with_next-i18next.md +8 -4
- package/blog/vi/intlayer_with_next-intl.md +8 -4
- package/blog/vi/intlayer_with_react-i18next.md +8 -4
- package/blog/vi/intlayer_with_react-intl.md +8 -4
- package/blog/vi/intlayer_with_vue-i18n.md +8 -4
- package/blog/zh/intlayer_with_i18next.md +8 -4
- package/blog/zh/intlayer_with_next-i18next.md +8 -4
- package/blog/zh/intlayer_with_next-intl.md +8 -4
- package/blog/zh/intlayer_with_react-i18next.md +8 -4
- package/blog/zh/intlayer_with_react-intl.md +8 -4
- package/blog/zh/intlayer_with_vue-i18n.md +8 -4
- package/docs/ar/cli/index.md +4 -0
- package/docs/ar/cli/sdk.md +4 -0
- package/docs/ar/intlayer_visual_editor.md +4 -0
- package/docs/ar/intlayer_with_angular.md +8 -0
- package/docs/ar/intlayer_with_create_react_app.md +8 -0
- package/docs/ar/intlayer_with_express.md +8 -0
- package/docs/ar/intlayer_with_lynx+react.md +8 -0
- package/docs/ar/intlayer_with_nestjs.md +8 -0
- package/docs/ar/intlayer_with_next-i18next.md +15 -3
- package/docs/ar/intlayer_with_next-intl.md +12 -3
- package/docs/ar/intlayer_with_nextjs_14.md +16 -0
- package/docs/ar/intlayer_with_nextjs_15.md +16 -0
- package/docs/ar/intlayer_with_nextjs_16.md +16 -0
- package/docs/ar/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/ar/intlayer_with_nuxt.md +9 -0
- package/docs/ar/intlayer_with_react_native+expo.md +9 -0
- package/docs/ar/intlayer_with_react_router_v7.md +86 -16
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/ar/intlayer_with_svelte_kit.md +8 -0
- package/docs/ar/intlayer_with_tanstack.md +14 -0
- package/docs/ar/intlayer_with_vite+preact.md +12 -2
- package/docs/ar/intlayer_with_vite+react.md +9 -0
- package/docs/ar/intlayer_with_vite+solid.md +9 -0
- package/docs/ar/intlayer_with_vite+svelte.md +7 -0
- package/docs/ar/intlayer_with_vite+vue.md +11 -0
- package/docs/de/cli/index.md +4 -0
- package/docs/de/cli/sdk.md +4 -0
- package/docs/de/intlayer_visual_editor.md +4 -0
- package/docs/de/intlayer_with_angular.md +8 -0
- package/docs/de/intlayer_with_create_react_app.md +8 -0
- package/docs/de/intlayer_with_express.md +8 -0
- package/docs/de/intlayer_with_lynx+react.md +8 -0
- package/docs/de/intlayer_with_nestjs.md +8 -0
- package/docs/de/intlayer_with_next-i18next.md +15 -3
- package/docs/de/intlayer_with_next-intl.md +12 -3
- package/docs/de/intlayer_with_nextjs_14.md +16 -0
- package/docs/de/intlayer_with_nextjs_15.md +16 -0
- package/docs/de/intlayer_with_nextjs_16.md +16 -0
- package/docs/de/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/de/intlayer_with_nuxt.md +9 -0
- package/docs/de/intlayer_with_react_native+expo.md +1 -0
- package/docs/de/intlayer_with_react_router_v7.md +86 -15
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/de/intlayer_with_svelte_kit.md +8 -0
- package/docs/de/intlayer_with_tanstack.md +14 -0
- package/docs/de/intlayer_with_vite+preact.md +12 -2
- package/docs/de/intlayer_with_vite+react.md +9 -0
- package/docs/de/intlayer_with_vite+solid.md +9 -0
- package/docs/de/intlayer_with_vite+svelte.md +6 -0
- package/docs/de/intlayer_with_vite+vue.md +11 -0
- package/docs/en/cli/index.md +4 -0
- package/docs/en/cli/sdk.md +4 -0
- package/docs/en/configuration.md +1 -0
- package/docs/en/intlayer_visual_editor.md +4 -0
- package/docs/en/intlayer_with_angular.md +8 -0
- package/docs/en/intlayer_with_create_react_app.md +8 -0
- package/docs/en/intlayer_with_express.md +8 -0
- package/docs/en/intlayer_with_lynx+react.md +8 -0
- package/docs/en/intlayer_with_nestjs.md +8 -0
- package/docs/en/intlayer_with_next-i18next.md +15 -3
- package/docs/en/intlayer_with_next-intl.md +12 -3
- package/docs/en/intlayer_with_nextjs_14.md +16 -0
- package/docs/en/intlayer_with_nextjs_15.md +16 -0
- package/docs/en/intlayer_with_nextjs_16.md +16 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/en/intlayer_with_nuxt.md +9 -0
- package/docs/en/intlayer_with_react_native+expo.md +9 -0
- package/docs/en/intlayer_with_react_router_v7.md +88 -15
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +106 -19
- package/docs/en/intlayer_with_svelte_kit.md +4 -0
- package/docs/en/intlayer_with_tanstack.md +14 -0
- package/docs/en/intlayer_with_vite+preact.md +11 -0
- package/docs/en/intlayer_with_vite+react.md +9 -0
- package/docs/en/intlayer_with_vite+solid.md +9 -0
- package/docs/en/intlayer_with_vite+svelte.md +7 -0
- package/docs/en/intlayer_with_vite+vue.md +11 -0
- package/docs/en-GB/cli/index.md +4 -0
- package/docs/en-GB/cli/sdk.md +4 -0
- package/docs/en-GB/configuration.md +1 -0
- package/docs/en-GB/intlayer_visual_editor.md +4 -0
- package/docs/en-GB/intlayer_with_angular.md +8 -0
- package/docs/en-GB/intlayer_with_create_react_app.md +16 -0
- package/docs/en-GB/intlayer_with_express.md +8 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +16 -0
- package/docs/en-GB/intlayer_with_nestjs.md +8 -0
- package/docs/en-GB/intlayer_with_next-i18next.md +15 -3
- package/docs/en-GB/intlayer_with_next-intl.md +12 -3
- package/docs/en-GB/intlayer_with_nextjs_14.md +16 -0
- package/docs/en-GB/intlayer_with_nextjs_15.md +16 -0
- package/docs/en-GB/intlayer_with_nextjs_16.md +16 -0
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/en-GB/intlayer_with_nuxt.md +9 -0
- package/docs/en-GB/intlayer_with_react_native+expo.md +9 -0
- package/docs/en-GB/intlayer_with_react_router_v7.md +87 -16
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/en-GB/intlayer_with_svelte_kit.md +8 -0
- package/docs/en-GB/intlayer_with_tanstack.md +14 -0
- package/docs/en-GB/intlayer_with_vite+preact.md +12 -2
- package/docs/en-GB/intlayer_with_vite+react.md +9 -0
- package/docs/en-GB/intlayer_with_vite+solid.md +9 -0
- package/docs/en-GB/intlayer_with_vite+svelte.md +7 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +11 -0
- package/docs/es/cli/index.md +4 -0
- package/docs/es/cli/sdk.md +4 -0
- package/docs/es/intlayer_visual_editor.md +4 -0
- package/docs/es/intlayer_with_angular.md +8 -0
- package/docs/es/intlayer_with_create_react_app.md +8 -0
- package/docs/es/intlayer_with_express.md +8 -0
- package/docs/es/intlayer_with_lynx+react.md +8 -0
- package/docs/es/intlayer_with_nestjs.md +8 -0
- package/docs/es/intlayer_with_next-i18next.md +15 -3
- package/docs/es/intlayer_with_next-intl.md +12 -3
- package/docs/es/intlayer_with_nextjs_14.md +16 -0
- package/docs/es/intlayer_with_nextjs_15.md +16 -0
- package/docs/es/intlayer_with_nextjs_16.md +16 -0
- package/docs/es/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/es/intlayer_with_nuxt.md +9 -0
- package/docs/es/intlayer_with_react_native+expo.md +9 -0
- package/docs/es/intlayer_with_react_router_v7.md +86 -15
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/es/intlayer_with_svelte_kit.md +8 -0
- package/docs/es/intlayer_with_tanstack.md +14 -0
- package/docs/es/intlayer_with_vite+preact.md +12 -2
- package/docs/es/intlayer_with_vite+react.md +9 -0
- package/docs/es/intlayer_with_vite+solid.md +9 -0
- package/docs/es/intlayer_with_vite+svelte.md +7 -0
- package/docs/es/intlayer_with_vite+vue.md +11 -0
- package/docs/es/packages/next-intlayer/index.md +5 -0
- package/docs/es/packages/react-intlayer/index.md +5 -0
- package/docs/fr/cli/index.md +4 -0
- package/docs/fr/cli/sdk.md +4 -0
- package/docs/fr/intlayer_visual_editor.md +4 -0
- package/docs/fr/intlayer_with_angular.md +8 -0
- package/docs/fr/intlayer_with_create_react_app.md +8 -0
- package/docs/fr/intlayer_with_express.md +8 -0
- package/docs/fr/intlayer_with_lynx+react.md +8 -0
- package/docs/fr/intlayer_with_nestjs.md +8 -0
- package/docs/fr/intlayer_with_next-i18next.md +15 -3
- package/docs/fr/intlayer_with_next-intl.md +12 -3
- package/docs/fr/intlayer_with_nextjs_14.md +16 -0
- package/docs/fr/intlayer_with_nextjs_15.md +16 -0
- package/docs/fr/intlayer_with_nextjs_16.md +16 -0
- package/docs/fr/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/fr/intlayer_with_nuxt.md +9 -0
- package/docs/fr/intlayer_with_react_native+expo.md +1 -0
- package/docs/fr/intlayer_with_react_router_v7.md +86 -15
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/fr/intlayer_with_svelte_kit.md +8 -0
- package/docs/fr/intlayer_with_tanstack.md +14 -0
- package/docs/fr/intlayer_with_vite+preact.md +12 -2
- package/docs/fr/intlayer_with_vite+react.md +9 -0
- package/docs/fr/intlayer_with_vite+solid.md +9 -0
- package/docs/fr/intlayer_with_vite+svelte.md +7 -0
- package/docs/fr/intlayer_with_vite+vue.md +11 -0
- package/docs/fr/packages/react-intlayer/index.md +5 -0
- package/docs/hi/cli/index.md +4 -0
- package/docs/hi/cli/sdk.md +4 -0
- package/docs/hi/intlayer_visual_editor.md +4 -0
- package/docs/hi/intlayer_with_angular.md +8 -0
- package/docs/hi/intlayer_with_create_react_app.md +8 -0
- package/docs/hi/intlayer_with_express.md +8 -0
- package/docs/hi/intlayer_with_lynx+react.md +8 -0
- package/docs/hi/intlayer_with_nestjs.md +8 -0
- package/docs/hi/intlayer_with_next-i18next.md +15 -3
- package/docs/hi/intlayer_with_next-intl.md +12 -3
- package/docs/hi/intlayer_with_nextjs_14.md +16 -0
- package/docs/hi/intlayer_with_nextjs_15.md +16 -0
- package/docs/hi/intlayer_with_nextjs_16.md +16 -0
- package/docs/hi/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/hi/intlayer_with_nuxt.md +9 -0
- package/docs/hi/intlayer_with_react_native+expo.md +1 -0
- package/docs/hi/intlayer_with_react_router_v7.md +86 -16
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/hi/intlayer_with_svelte_kit.md +8 -0
- package/docs/hi/intlayer_with_tanstack.md +14 -0
- package/docs/hi/intlayer_with_vite+preact.md +12 -2
- package/docs/hi/intlayer_with_vite+react.md +9 -0
- package/docs/hi/intlayer_with_vite+solid.md +9 -0
- package/docs/hi/intlayer_with_vite+svelte.md +7 -0
- package/docs/hi/intlayer_with_vite+vue.md +11 -0
- package/docs/hi/packages/intlayer/index.md +8 -0
- package/docs/id/cli/index.md +4 -0
- package/docs/id/cli/sdk.md +4 -0
- package/docs/id/intlayer_visual_editor.md +4 -0
- package/docs/id/intlayer_with_angular.md +8 -0
- package/docs/id/intlayer_with_create_react_app.md +8 -0
- package/docs/id/intlayer_with_express.md +8 -0
- package/docs/id/intlayer_with_lynx+react.md +8 -0
- package/docs/id/intlayer_with_nestjs.md +8 -0
- package/docs/id/intlayer_with_next-i18next.md +15 -3
- package/docs/id/intlayer_with_next-intl.md +12 -3
- package/docs/id/intlayer_with_nextjs_14.md +16 -0
- package/docs/id/intlayer_with_nextjs_15.md +16 -0
- package/docs/id/intlayer_with_nextjs_16.md +16 -0
- package/docs/id/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/id/intlayer_with_nuxt.md +9 -0
- package/docs/id/intlayer_with_react_native+expo.md +9 -0
- package/docs/id/intlayer_with_react_router_v7.md +86 -15
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/id/intlayer_with_svelte_kit.md +8 -0
- package/docs/id/intlayer_with_tanstack.md +14 -0
- package/docs/id/intlayer_with_vite+preact.md +11 -0
- package/docs/id/intlayer_with_vite+react.md +9 -0
- package/docs/id/intlayer_with_vite+solid.md +9 -0
- package/docs/id/intlayer_with_vite+svelte.md +7 -0
- package/docs/id/intlayer_with_vite+vue.md +11 -0
- package/docs/it/cli/index.md +4 -0
- package/docs/it/cli/sdk.md +4 -0
- package/docs/it/intlayer_visual_editor.md +4 -0
- package/docs/it/intlayer_with_angular.md +8 -0
- package/docs/it/intlayer_with_create_react_app.md +8 -0
- package/docs/it/intlayer_with_express.md +8 -0
- package/docs/it/intlayer_with_lynx+react.md +8 -0
- package/docs/it/intlayer_with_nestjs.md +8 -0
- package/docs/it/intlayer_with_next-i18next.md +15 -3
- package/docs/it/intlayer_with_next-intl.md +12 -3
- package/docs/it/intlayer_with_nextjs_14.md +16 -0
- package/docs/it/intlayer_with_nextjs_15.md +16 -0
- package/docs/it/intlayer_with_nextjs_16.md +16 -0
- package/docs/it/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/it/intlayer_with_nuxt.md +9 -0
- package/docs/it/intlayer_with_react_native+expo.md +9 -0
- package/docs/it/intlayer_with_react_router_v7.md +86 -15
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/it/intlayer_with_svelte_kit.md +8 -0
- package/docs/it/intlayer_with_tanstack.md +14 -0
- package/docs/it/intlayer_with_vite+preact.md +12 -2
- package/docs/it/intlayer_with_vite+react.md +9 -0
- package/docs/it/intlayer_with_vite+solid.md +9 -0
- package/docs/it/intlayer_with_vite+svelte.md +7 -0
- package/docs/it/intlayer_with_vite+vue.md +11 -0
- package/docs/ja/cli/index.md +4 -0
- package/docs/ja/cli/sdk.md +4 -0
- package/docs/ja/intlayer_visual_editor.md +4 -0
- package/docs/ja/intlayer_with_angular.md +8 -0
- package/docs/ja/intlayer_with_create_react_app.md +8 -0
- package/docs/ja/intlayer_with_express.md +8 -0
- package/docs/ja/intlayer_with_lynx+react.md +8 -0
- package/docs/ja/intlayer_with_nestjs.md +8 -0
- package/docs/ja/intlayer_with_next-i18next.md +15 -3
- package/docs/ja/intlayer_with_next-intl.md +12 -3
- package/docs/ja/intlayer_with_nextjs_14.md +16 -0
- package/docs/ja/intlayer_with_nextjs_15.md +16 -0
- package/docs/ja/intlayer_with_nextjs_16.md +16 -0
- package/docs/ja/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/ja/intlayer_with_nuxt.md +9 -0
- package/docs/ja/intlayer_with_react_native+expo.md +1 -0
- package/docs/ja/intlayer_with_react_router_v7.md +86 -15
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/ja/intlayer_with_svelte_kit.md +8 -0
- package/docs/ja/intlayer_with_tanstack.md +14 -0
- package/docs/ja/intlayer_with_vite+preact.md +12 -2
- package/docs/ja/intlayer_with_vite+react.md +9 -0
- package/docs/ja/intlayer_with_vite+solid.md +9 -0
- package/docs/ja/intlayer_with_vite+svelte.md +7 -0
- package/docs/ja/intlayer_with_vite+vue.md +11 -0
- package/docs/ko/cli/index.md +4 -0
- package/docs/ko/cli/sdk.md +4 -0
- package/docs/ko/intlayer_visual_editor.md +4 -0
- package/docs/ko/intlayer_with_angular.md +8 -0
- package/docs/ko/intlayer_with_create_react_app.md +8 -0
- package/docs/ko/intlayer_with_express.md +8 -0
- package/docs/ko/intlayer_with_lynx+react.md +8 -0
- package/docs/ko/intlayer_with_nestjs.md +8 -0
- package/docs/ko/intlayer_with_next-i18next.md +15 -3
- package/docs/ko/intlayer_with_next-intl.md +12 -3
- package/docs/ko/intlayer_with_nextjs_14.md +13 -0
- package/docs/ko/intlayer_with_nextjs_15.md +16 -0
- package/docs/ko/intlayer_with_nextjs_16.md +16 -0
- package/docs/ko/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/ko/intlayer_with_nuxt.md +9 -0
- package/docs/ko/intlayer_with_react_native+expo.md +9 -0
- package/docs/ko/intlayer_with_react_router_v7.md +86 -15
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/ko/intlayer_with_svelte_kit.md +8 -0
- package/docs/ko/intlayer_with_tanstack.md +14 -0
- package/docs/ko/intlayer_with_vite+preact.md +12 -2
- package/docs/ko/intlayer_with_vite+react.md +9 -0
- package/docs/ko/intlayer_with_vite+solid.md +9 -0
- package/docs/ko/intlayer_with_vite+svelte.md +7 -0
- package/docs/ko/intlayer_with_vite+vue.md +11 -0
- package/docs/pl/cli/index.md +4 -0
- package/docs/pl/cli/sdk.md +4 -0
- package/docs/pl/intlayer_visual_editor.md +4 -0
- package/docs/pl/intlayer_with_angular.md +8 -0
- package/docs/pl/intlayer_with_create_react_app.md +8 -0
- package/docs/pl/intlayer_with_express.md +8 -0
- package/docs/pl/intlayer_with_lynx+react.md +8 -0
- package/docs/pl/intlayer_with_nestjs.md +8 -0
- package/docs/pl/intlayer_with_next-i18next.md +15 -3
- package/docs/pl/intlayer_with_next-intl.md +12 -3
- package/docs/pl/intlayer_with_nextjs_14.md +16 -0
- package/docs/pl/intlayer_with_nextjs_15.md +16 -0
- package/docs/pl/intlayer_with_nextjs_16.md +16 -0
- package/docs/pl/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/pl/intlayer_with_nuxt.md +9 -0
- package/docs/pl/intlayer_with_react_native+expo.md +9 -0
- package/docs/pl/intlayer_with_react_router_v7.md +59 -13
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +102 -18
- package/docs/pl/intlayer_with_svelte_kit.md +8 -0
- package/docs/pl/intlayer_with_tanstack.md +14 -0
- package/docs/pl/intlayer_with_vite+preact.md +11 -0
- package/docs/pl/intlayer_with_vite+react.md +9 -0
- package/docs/pl/intlayer_with_vite+solid.md +9 -0
- package/docs/pl/intlayer_with_vite+svelte.md +7 -0
- package/docs/pl/intlayer_with_vite+vue.md +11 -0
- package/docs/pt/cli/index.md +4 -0
- package/docs/pt/cli/sdk.md +4 -0
- package/docs/pt/intlayer_visual_editor.md +4 -0
- package/docs/pt/intlayer_with_angular.md +8 -0
- package/docs/pt/intlayer_with_create_react_app.md +8 -0
- package/docs/pt/intlayer_with_express.md +8 -0
- package/docs/pt/intlayer_with_lynx+react.md +8 -0
- package/docs/pt/intlayer_with_nestjs.md +8 -0
- package/docs/pt/intlayer_with_next-i18next.md +15 -3
- package/docs/pt/intlayer_with_next-intl.md +12 -3
- package/docs/pt/intlayer_with_nextjs_14.md +16 -0
- package/docs/pt/intlayer_with_nextjs_15.md +16 -0
- package/docs/pt/intlayer_with_nextjs_16.md +16 -0
- package/docs/pt/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/pt/intlayer_with_nuxt.md +9 -0
- package/docs/pt/intlayer_with_react_native+expo.md +9 -0
- package/docs/pt/intlayer_with_react_router_v7.md +93 -46
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/pt/intlayer_with_svelte_kit.md +8 -0
- package/docs/pt/intlayer_with_tanstack.md +14 -0
- package/docs/pt/intlayer_with_vite+preact.md +12 -2
- package/docs/pt/intlayer_with_vite+react.md +9 -0
- package/docs/pt/intlayer_with_vite+solid.md +9 -0
- package/docs/pt/intlayer_with_vite+svelte.md +7 -0
- package/docs/pt/intlayer_with_vite+vue.md +11 -0
- package/docs/ru/cli/index.md +4 -0
- package/docs/ru/cli/sdk.md +4 -0
- package/docs/ru/intlayer_visual_editor.md +4 -0
- package/docs/ru/intlayer_with_angular.md +8 -0
- package/docs/ru/intlayer_with_create_react_app.md +8 -0
- package/docs/ru/intlayer_with_express.md +8 -0
- package/docs/ru/intlayer_with_lynx+react.md +8 -0
- package/docs/ru/intlayer_with_nestjs.md +8 -0
- package/docs/ru/intlayer_with_next-i18next.md +15 -3
- package/docs/ru/intlayer_with_next-intl.md +12 -3
- package/docs/ru/intlayer_with_nextjs_14.md +16 -0
- package/docs/ru/intlayer_with_nextjs_15.md +16 -0
- package/docs/ru/intlayer_with_nextjs_16.md +16 -0
- package/docs/ru/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/ru/intlayer_with_nuxt.md +9 -0
- package/docs/ru/intlayer_with_react_native+expo.md +9 -0
- package/docs/ru/intlayer_with_react_router_v7.md +86 -15
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/ru/intlayer_with_svelte_kit.md +8 -0
- package/docs/ru/intlayer_with_tanstack.md +14 -0
- package/docs/ru/intlayer_with_vite+preact.md +12 -2
- package/docs/ru/intlayer_with_vite+react.md +9 -0
- package/docs/ru/intlayer_with_vite+solid.md +9 -0
- package/docs/ru/intlayer_with_vite+svelte.md +7 -0
- package/docs/ru/intlayer_with_vite+vue.md +11 -0
- package/docs/tr/cli/index.md +4 -0
- package/docs/tr/cli/sdk.md +4 -0
- package/docs/tr/intlayer_visual_editor.md +4 -0
- package/docs/tr/intlayer_with_angular.md +8 -0
- package/docs/tr/intlayer_with_create_react_app.md +8 -0
- package/docs/tr/intlayer_with_express.md +8 -0
- package/docs/tr/intlayer_with_lynx+react.md +8 -0
- package/docs/tr/intlayer_with_nestjs.md +8 -0
- package/docs/tr/intlayer_with_next-i18next.md +15 -3
- package/docs/tr/intlayer_with_next-intl.md +12 -3
- package/docs/tr/intlayer_with_nextjs_14.md +16 -0
- package/docs/tr/intlayer_with_nextjs_15.md +16 -0
- package/docs/tr/intlayer_with_nextjs_16.md +16 -0
- package/docs/tr/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/tr/intlayer_with_nuxt.md +9 -0
- package/docs/tr/intlayer_with_react_native+expo.md +9 -0
- package/docs/tr/intlayer_with_react_router_v7.md +86 -15
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +103 -19
- package/docs/tr/intlayer_with_svelte_kit.md +8 -0
- package/docs/tr/intlayer_with_tanstack.md +14 -0
- package/docs/tr/intlayer_with_vite+preact.md +12 -2
- package/docs/tr/intlayer_with_vite+react.md +9 -0
- package/docs/tr/intlayer_with_vite+solid.md +9 -0
- package/docs/tr/intlayer_with_vite+svelte.md +7 -0
- package/docs/tr/intlayer_with_vite+vue.md +11 -0
- package/docs/vi/cli/index.md +5 -0
- package/docs/vi/cli/sdk.md +4 -0
- package/docs/vi/intlayer_visual_editor.md +4 -0
- package/docs/vi/intlayer_with_angular.md +8 -0
- package/docs/vi/intlayer_with_create_react_app.md +8 -0
- package/docs/vi/intlayer_with_express.md +8 -0
- package/docs/vi/intlayer_with_lynx+react.md +8 -0
- package/docs/vi/intlayer_with_nestjs.md +8 -0
- package/docs/vi/intlayer_with_next-i18next.md +15 -3
- package/docs/vi/intlayer_with_next-intl.md +12 -3
- package/docs/vi/intlayer_with_nextjs_14.md +16 -0
- package/docs/vi/intlayer_with_nextjs_15.md +16 -0
- package/docs/vi/intlayer_with_nextjs_16.md +16 -0
- package/docs/vi/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/vi/intlayer_with_nuxt.md +9 -0
- package/docs/vi/intlayer_with_react_native+expo.md +9 -0
- package/docs/vi/intlayer_with_react_router_v7.md +86 -15
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/vi/intlayer_with_svelte_kit.md +8 -0
- package/docs/vi/intlayer_with_tanstack.md +14 -0
- package/docs/vi/intlayer_with_vite+preact.md +11 -0
- package/docs/vi/intlayer_with_vite+react.md +9 -0
- package/docs/vi/intlayer_with_vite+solid.md +9 -0
- package/docs/vi/intlayer_with_vite+svelte.md +7 -0
- package/docs/vi/intlayer_with_vite+vue.md +11 -0
- package/docs/zh/cli/index.md +4 -0
- package/docs/zh/cli/sdk.md +4 -0
- package/docs/zh/intlayer_visual_editor.md +4 -0
- package/docs/zh/intlayer_with_angular.md +8 -0
- package/docs/zh/intlayer_with_create_react_app.md +8 -0
- package/docs/zh/intlayer_with_express.md +8 -0
- package/docs/zh/intlayer_with_lynx+react.md +8 -0
- package/docs/zh/intlayer_with_nestjs.md +8 -0
- package/docs/zh/intlayer_with_next-i18next.md +15 -3
- package/docs/zh/intlayer_with_next-intl.md +12 -3
- package/docs/zh/intlayer_with_nextjs_14.md +16 -0
- package/docs/zh/intlayer_with_nextjs_15.md +16 -0
- package/docs/zh/intlayer_with_nextjs_16.md +16 -0
- package/docs/zh/intlayer_with_nextjs_page_router.md +16 -0
- package/docs/zh/intlayer_with_nuxt.md +9 -0
- package/docs/zh/intlayer_with_react_native+expo.md +9 -0
- package/docs/zh/intlayer_with_react_router_v7.md +86 -15
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +16 -0
- package/docs/zh/intlayer_with_svelte_kit.md +8 -0
- package/docs/zh/intlayer_with_tanstack.md +14 -0
- package/docs/zh/intlayer_with_vite+preact.md +12 -2
- package/docs/zh/intlayer_with_vite+react.md +9 -0
- package/docs/zh/intlayer_with_vite+solid.md +9 -0
- package/docs/zh/intlayer_with_vite+svelte.md +7 -0
- package/docs/zh/intlayer_with_vite+vue.md +11 -0
- package/package.json +6 -6
|
@@ -77,16 +77,25 @@ Install the necessary packages using npm:
|
|
|
77
77
|
```bash packageManager="npm"
|
|
78
78
|
npm install intlayer vue-intlayer
|
|
79
79
|
npm install --save-dev nuxt-intlayer
|
|
80
|
+
npx intlayer init
|
|
80
81
|
```
|
|
81
82
|
|
|
82
83
|
```bash packageManager="pnpm"
|
|
83
84
|
pnpm add intlayer vue-intlayer
|
|
84
85
|
pnpm add --save-dev nuxt-intlayer
|
|
86
|
+
pnpm intlayer init
|
|
85
87
|
```
|
|
86
88
|
|
|
87
89
|
```bash packageManager="yarn"
|
|
88
90
|
yarn add intlayer vue-intlayer
|
|
89
91
|
yarn add --save-dev nuxt-intlayer
|
|
92
|
+
yarn intlayer init
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```bash packageManager="bun"
|
|
96
|
+
bun add intlayer vue-intlayer
|
|
97
|
+
bun add --dev nuxt-intlayer
|
|
98
|
+
bunx intlayer init
|
|
90
99
|
```
|
|
91
100
|
|
|
92
101
|
- **intlayer**
|
|
@@ -60,16 +60,25 @@ From your React Native project, install the following packages:
|
|
|
60
60
|
```bash packageManager="npm"
|
|
61
61
|
npm install intlayer react-intlayer
|
|
62
62
|
npm install --save-dev react-native-intlayer
|
|
63
|
+
npx intlayer init
|
|
63
64
|
```
|
|
64
65
|
|
|
65
66
|
```bash packageManager="pnpm"
|
|
66
67
|
pnpm add intlayer react-intlayer
|
|
67
68
|
pnpm add --save-dev react-native-intlayer
|
|
69
|
+
pnpm intlayer init
|
|
68
70
|
```
|
|
69
71
|
|
|
70
72
|
```bash packageManager="yarn"
|
|
71
73
|
yarn add intlayer react-intlayer
|
|
72
74
|
yarn add --save-dev react-native-intlayer
|
|
75
|
+
yarn intlayer init
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```bash packageManager="bun"
|
|
79
|
+
bun add intlayer react-intlayer
|
|
80
|
+
bun add --dev react-native-intlayer
|
|
81
|
+
bunx intlayer init
|
|
73
82
|
```
|
|
74
83
|
|
|
75
84
|
### Packages
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-12-27
|
|
4
4
|
title: How to translate your React Router v7 app – i18n guide 2025
|
|
5
5
|
description: Learn how to add internationalization (i18n) to your React Router v7 application using Intlayer. Follow this comprehensive guide to make your app multilingual with locale-aware routing.
|
|
6
6
|
keywords:
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
22
|
history:
|
|
23
|
+
- version: 7.5.6
|
|
24
|
+
date: 2025-12-27
|
|
25
|
+
changes: Update Layout and handle 404
|
|
23
26
|
- version: 6.1.5
|
|
24
27
|
date: 2025-10-03
|
|
25
28
|
changes: Updated doc
|
|
@@ -32,6 +35,8 @@ history:
|
|
|
32
35
|
|
|
33
36
|
This guide demonstrates how to integrate **Intlayer** for seamless internationalization in React Router v7 projects with locale-aware routing, TypeScript support, and modern development practices.
|
|
34
37
|
|
|
38
|
+
This guide focuses on frontend routing. For fs-routes routing, refer to the [Intlayer with React Router v7 File-System Routes](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_react_router_v7_fs_routes.md) guide.
|
|
39
|
+
|
|
35
40
|
## Table of Contents
|
|
36
41
|
|
|
37
42
|
<TOC/>
|
|
@@ -67,11 +72,25 @@ Install the necessary packages using your preferred package manager:
|
|
|
67
72
|
```bash packageManager="npm"
|
|
68
73
|
npm install intlayer react-intlayer
|
|
69
74
|
npm install vite-intlayer --save-dev
|
|
75
|
+
npx intlayer init
|
|
70
76
|
```
|
|
71
77
|
|
|
72
78
|
```bash packageManager="pnpm"
|
|
73
79
|
pnpm add intlayer react-intlayer
|
|
74
80
|
pnpm add vite-intlayer --save-dev
|
|
81
|
+
pnpm intlayer init
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```bash packageManager="yarn"
|
|
85
|
+
yarn add intlayer react-intlayer
|
|
86
|
+
yarn add vite-intlayer --save-dev
|
|
87
|
+
yarn intlayer init
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```bash packageManager="bun"
|
|
91
|
+
bun add intlayer react-intlayer
|
|
92
|
+
bun add vite-intlayer --dev
|
|
93
|
+
bunx intlayer init
|
|
75
94
|
```
|
|
76
95
|
|
|
77
96
|
- **intlayer**
|
|
@@ -179,10 +198,8 @@ Set up your routing configuration with locale-aware routes:
|
|
|
179
198
|
import { layout, route, type RouteConfig } from "@react-router/dev/routes";
|
|
180
199
|
|
|
181
200
|
export default [
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
route("/:lang?/about", "routes/about/page.tsx"), // Localized about page
|
|
185
|
-
]),
|
|
201
|
+
route("/:lang?", "routes/page.tsx"), // Localized home page
|
|
202
|
+
route("/:lang?/about", "routes/about/page.tsx"), // Localized about page
|
|
186
203
|
] satisfies RouteConfig;
|
|
187
204
|
```
|
|
188
205
|
|
|
@@ -192,19 +209,50 @@ Set up your root layout and locale-specific layouts:
|
|
|
192
209
|
|
|
193
210
|
#### Root Layout
|
|
194
211
|
|
|
195
|
-
```tsx fileName="app/
|
|
212
|
+
```tsx fileName="app/root.tsx"
|
|
213
|
+
import { getLocaleFromPath } from "intlayer";
|
|
196
214
|
import { IntlayerProvider } from "react-intlayer";
|
|
197
|
-
import {
|
|
215
|
+
import {
|
|
216
|
+
data,
|
|
217
|
+
Meta,
|
|
218
|
+
Scripts,
|
|
219
|
+
ScrollRestoration,
|
|
220
|
+
useLoaderData,
|
|
221
|
+
} from "react-router";
|
|
222
|
+
import type { Route } from "./+types/root";
|
|
198
223
|
|
|
199
|
-
|
|
224
|
+
// ... Unchanged App, links and ErrorBoundary code
|
|
200
225
|
|
|
201
|
-
export
|
|
202
|
-
const
|
|
226
|
+
export async function loader({ request }: Route.LoaderArgs) {
|
|
227
|
+
const locale = getLocaleFromPath(request.url);
|
|
228
|
+
|
|
229
|
+
if (!locale) {
|
|
230
|
+
throw data("Language not supported", { status: 404 });
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return { locale };
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export function Layout({
|
|
237
|
+
children,
|
|
238
|
+
}: { children: React.ReactNode } & Route.ComponentProps) {
|
|
239
|
+
const data = useLoaderData<typeof loader>();
|
|
240
|
+
const { locale } = data ?? {};
|
|
203
241
|
|
|
204
242
|
return (
|
|
205
|
-
<
|
|
206
|
-
<
|
|
207
|
-
|
|
243
|
+
<html lang={locale}>
|
|
244
|
+
<head>
|
|
245
|
+
<meta charSet="utf-8" />
|
|
246
|
+
<meta content="width=device-width, initial-scale=1" name="viewport" />
|
|
247
|
+
<Meta />
|
|
248
|
+
<Links />
|
|
249
|
+
</head>
|
|
250
|
+
<body>
|
|
251
|
+
<IntlayerProvider locale={locale}>{children}</IntlayerProvider>
|
|
252
|
+
<ScrollRestoration />
|
|
253
|
+
<Scripts />
|
|
254
|
+
</body>
|
|
255
|
+
</html>
|
|
208
256
|
);
|
|
209
257
|
}
|
|
210
258
|
```
|
|
@@ -316,9 +364,34 @@ Access your content dictionaries throughout your application:
|
|
|
316
364
|
|
|
317
365
|
#### Localized Home Page
|
|
318
366
|
|
|
319
|
-
```tsx fileName="app/routes/
|
|
367
|
+
```tsx fileName="app/routes/page.tsx"
|
|
368
|
+
import { getIntlayer, validatePrefix } from "intlayer";
|
|
320
369
|
import { useIntlayer } from "react-intlayer";
|
|
321
|
-
import {
|
|
370
|
+
import { data } from "react-router";
|
|
371
|
+
|
|
372
|
+
import { LocaleSwitcher } from "~/components/locale-switcher";
|
|
373
|
+
|
|
374
|
+
import { Navbar } from "~/components/navbar";
|
|
375
|
+
import type { Route } from "./+types/page";
|
|
376
|
+
|
|
377
|
+
export const loader = ({ params }: Route.LoaderArgs) => {
|
|
378
|
+
const { locale } = params;
|
|
379
|
+
|
|
380
|
+
const { isValid } = validatePrefix(locale);
|
|
381
|
+
|
|
382
|
+
if (!isValid) {
|
|
383
|
+
throw data("Locale not supported", { status: 404 });
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
export const meta: Route.MetaFunction = ({ params }) => {
|
|
388
|
+
const content = getIntlayer("page", params.locale);
|
|
389
|
+
|
|
390
|
+
return [
|
|
391
|
+
{ title: content.title },
|
|
392
|
+
{ content: content.description, name: "description" },
|
|
393
|
+
];
|
|
394
|
+
};
|
|
322
395
|
|
|
323
396
|
export default function Page() {
|
|
324
397
|
const { title, description, aboutLink } = useIntlayer("page");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-12-07
|
|
3
|
-
updatedAt: 2025-12-
|
|
3
|
+
updatedAt: 2025-12-27
|
|
4
4
|
title: How to translate your React Router v7 (File-System Routes) app – i18n guide 2025
|
|
5
5
|
description: Learn how to add internationalization (i18n) to your React Router v7 application using Intlayer with file-system based routing. Follow this comprehensive guide to make your app multilingual with locale-aware routing.
|
|
6
6
|
keywords:
|
|
@@ -22,6 +22,9 @@ slugs:
|
|
|
22
22
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-fs-routes-template
|
|
23
23
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
24
24
|
history:
|
|
25
|
+
- version: 7.5.6
|
|
26
|
+
date: 2025-12-27
|
|
27
|
+
changes: Update Layout and handle 404
|
|
25
28
|
- version: 7.3.4
|
|
26
29
|
date: 2025-12-08
|
|
27
30
|
changes: Init history
|
|
@@ -31,6 +34,8 @@ history:
|
|
|
31
34
|
|
|
32
35
|
This guide demonstrates how to integrate **Intlayer** for seamless internationalization in React Router v7 projects using **file-system based routing** (`@react-router/fs-routes`) with locale-aware routing, TypeScript support, and modern development practices.
|
|
33
36
|
|
|
37
|
+
For client-side routing, refer to the [Intlayer with React Router v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_react_router_v7.md) guide.
|
|
38
|
+
|
|
34
39
|
## Table of Contents
|
|
35
40
|
|
|
36
41
|
<TOC/>
|
|
@@ -80,6 +85,7 @@ Install the necessary packages using your preferred package manager:
|
|
|
80
85
|
npm install intlayer react-intlayer
|
|
81
86
|
npm install vite-intlayer --save-dev
|
|
82
87
|
npm install @react-router/fs-routes --save-dev
|
|
88
|
+
npx intlayer init
|
|
83
89
|
```
|
|
84
90
|
|
|
85
91
|
```bash packageManager="pnpm"
|
|
@@ -88,6 +94,13 @@ pnpm add vite-intlayer --save-dev
|
|
|
88
94
|
pnpm add @react-router/fs-routes --save-dev
|
|
89
95
|
```
|
|
90
96
|
|
|
97
|
+
```bash packageManager="bun"
|
|
98
|
+
bun add intlayer react-intlayer
|
|
99
|
+
bun add vite-intlayer --dev
|
|
100
|
+
bun add @react-router/fs-routes --dev
|
|
101
|
+
bunx intlayer init
|
|
102
|
+
```
|
|
103
|
+
|
|
91
104
|
- **intlayer**
|
|
92
105
|
|
|
93
106
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
@@ -195,12 +208,13 @@ Create the following files in your `app/routes/` directory:
|
|
|
195
208
|
#### File Structure
|
|
196
209
|
|
|
197
210
|
```bash
|
|
198
|
-
app/
|
|
199
|
-
├──
|
|
200
|
-
|
|
201
|
-
├── ($locale)._index.
|
|
202
|
-
├── ($locale).
|
|
203
|
-
|
|
211
|
+
app/
|
|
212
|
+
├── root.tsx # Layout wrapper for locale routes
|
|
213
|
+
└──routes/
|
|
214
|
+
├── ($locale)._index.tsx # Home page (/, /es, etc.)
|
|
215
|
+
├── ($locale)._index.content.ts # Home page content
|
|
216
|
+
├── ($locale).about.tsx # About page (/about, /es/about, etc.)
|
|
217
|
+
└── ($locale).about.content.ts # About page content
|
|
204
218
|
```
|
|
205
219
|
|
|
206
220
|
The naming conventions:
|
|
@@ -212,23 +226,50 @@ The naming conventions:
|
|
|
212
226
|
|
|
213
227
|
#### Layout Component
|
|
214
228
|
|
|
215
|
-
```tsx fileName="app/
|
|
229
|
+
```tsx fileName="app/root.tsx"
|
|
230
|
+
import { getLocaleFromPath } from "intlayer";
|
|
216
231
|
import { IntlayerProvider } from "react-intlayer";
|
|
217
|
-
import {
|
|
232
|
+
import {
|
|
233
|
+
isRouteErrorResponse,
|
|
234
|
+
Meta,
|
|
235
|
+
Outlet,
|
|
236
|
+
Scripts,
|
|
237
|
+
ScrollRestoration,
|
|
238
|
+
useLoaderData,
|
|
239
|
+
} from "react-router";
|
|
218
240
|
|
|
219
|
-
import {
|
|
241
|
+
import type { Route } from "./+types/root";
|
|
220
242
|
|
|
221
|
-
import
|
|
243
|
+
import "./app.css";
|
|
222
244
|
|
|
223
|
-
|
|
224
|
-
useI18nHTMLAttributes();
|
|
245
|
+
// ... Unchanged App, links and ErrorBoundary code
|
|
225
246
|
|
|
226
|
-
|
|
247
|
+
export async function loader({ request }: Route.LoaderArgs) {
|
|
248
|
+
const locale = getLocaleFromPath(request.url);
|
|
249
|
+
|
|
250
|
+
return { locale };
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export function Layout({
|
|
254
|
+
children,
|
|
255
|
+
}: { children: React.ReactNode } & Route.ComponentProps) {
|
|
256
|
+
const data = useLoaderData<typeof loader>();
|
|
257
|
+
const { locale } = data ?? {};
|
|
227
258
|
|
|
228
259
|
return (
|
|
229
|
-
<
|
|
230
|
-
<
|
|
231
|
-
|
|
260
|
+
<html lang={locale}>
|
|
261
|
+
<head>
|
|
262
|
+
<meta charSet="utf-8" />
|
|
263
|
+
<meta content="width=device-width, initial-scale=1" name="viewport" />
|
|
264
|
+
<Meta />
|
|
265
|
+
<Links />
|
|
266
|
+
</head>
|
|
267
|
+
<body>
|
|
268
|
+
<IntlayerProvider locale={locale}>{children}</IntlayerProvider>
|
|
269
|
+
<ScrollRestoration />
|
|
270
|
+
<Scripts />
|
|
271
|
+
</body>
|
|
272
|
+
</html>
|
|
232
273
|
);
|
|
233
274
|
}
|
|
234
275
|
```
|
|
@@ -236,11 +277,34 @@ export default function RootLayout({ params }: Route.ComponentProps) {
|
|
|
236
277
|
#### Index Page
|
|
237
278
|
|
|
238
279
|
```tsx fileName="app/routes/($locale)._index.tsx"
|
|
280
|
+
import { getIntlayer, validatePrefix } from "intlayer";
|
|
239
281
|
import { useIntlayer } from "react-intlayer";
|
|
240
|
-
import {
|
|
282
|
+
import { data } from "react-router";
|
|
283
|
+
|
|
284
|
+
import { LocaleSwitcher } from "~/components/locale-switcher";
|
|
285
|
+
import { Navbar } from "~/components/navbar";
|
|
241
286
|
|
|
242
287
|
import type { Route } from "./+types/($locale)._index";
|
|
243
288
|
|
|
289
|
+
export const loader = ({ params }: Route.LoaderArgs) => {
|
|
290
|
+
const { locale } = params;
|
|
291
|
+
|
|
292
|
+
const { isValid } = validatePrefix(locale);
|
|
293
|
+
|
|
294
|
+
if (!isValid) {
|
|
295
|
+
throw data("Locale not supported", { status: 404 });
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
export const meta: Route.MetaFunction = ({ params }) => {
|
|
300
|
+
const content = getIntlayer("page", params.locale);
|
|
301
|
+
|
|
302
|
+
return [
|
|
303
|
+
{ title: content.title },
|
|
304
|
+
{ content: content.description, name: "description" },
|
|
305
|
+
];
|
|
306
|
+
};
|
|
307
|
+
|
|
244
308
|
export default function Page() {
|
|
245
309
|
const { title, description, aboutLink } = useIntlayer("page");
|
|
246
310
|
|
|
@@ -259,11 +323,34 @@ export default function Page() {
|
|
|
259
323
|
#### About Page
|
|
260
324
|
|
|
261
325
|
```tsx fileName="app/routes/($locale).about.tsx"
|
|
326
|
+
import { getIntlayer, validatePrefix } from "intlayer";
|
|
262
327
|
import { useIntlayer } from "react-intlayer";
|
|
263
|
-
import {
|
|
328
|
+
import { data } from "react-router";
|
|
329
|
+
|
|
330
|
+
import { LocaleSwitcher } from "~/components/locale-switcher";
|
|
331
|
+
import { Navbar } from "~/components/navbar";
|
|
264
332
|
|
|
265
333
|
import type { Route } from "./+types/($locale).about";
|
|
266
334
|
|
|
335
|
+
export const loader = ({ params }: Route.LoaderArgs) => {
|
|
336
|
+
const { locale } = params;
|
|
337
|
+
|
|
338
|
+
const { isValid } = validatePrefix(locale);
|
|
339
|
+
|
|
340
|
+
if (!isValid) {
|
|
341
|
+
throw data("Locale not supported", { status: 404 });
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
export const meta: Route.MetaFunction = ({ params }) => {
|
|
346
|
+
const content = getIntlayer("about", params.locale);
|
|
347
|
+
|
|
348
|
+
return [
|
|
349
|
+
{ title: content.title },
|
|
350
|
+
{ content: content.description, name: "description" },
|
|
351
|
+
];
|
|
352
|
+
};
|
|
353
|
+
|
|
267
354
|
export default function AboutPage() {
|
|
268
355
|
const { title, content, homeLink } = useIntlayer("about");
|
|
269
356
|
|
|
@@ -101,21 +101,25 @@ Install the necessary packages using npm:
|
|
|
101
101
|
```bash packageManager="npm"
|
|
102
102
|
npm install intlayer svelte-intlayer
|
|
103
103
|
npm install vite-intlayer --save-dev
|
|
104
|
+
npx intlayer init
|
|
104
105
|
```
|
|
105
106
|
|
|
106
107
|
```bash packageManager="pnpm"
|
|
107
108
|
pnpm add intlayer svelte-intlayer
|
|
108
109
|
pnpm add vite-intlayer --save-dev
|
|
110
|
+
pnpm intlayer init
|
|
109
111
|
```
|
|
110
112
|
|
|
111
113
|
```bash packageManager="yarn"
|
|
112
114
|
yarn add intlayer svelte-intlayer
|
|
113
115
|
yarn add vite-intlayer --save-dev
|
|
116
|
+
yarn intlayer init
|
|
114
117
|
```
|
|
115
118
|
|
|
116
119
|
```bash packageManager="bun"
|
|
117
120
|
bun add intlayer svelte-intlayer
|
|
118
121
|
bun add vite-intlayer --save-dev
|
|
122
|
+
bunx intlayer init
|
|
119
123
|
```
|
|
120
124
|
|
|
121
125
|
- **intlayer**: The core i18n package.
|
|
@@ -95,11 +95,25 @@ Install the necessary packages using your preferred package manager:
|
|
|
95
95
|
```bash packageManager="npm"
|
|
96
96
|
npm install intlayer react-intlayer
|
|
97
97
|
npm install vite-intlayer --save-dev
|
|
98
|
+
npx intlayer init
|
|
98
99
|
```
|
|
99
100
|
|
|
100
101
|
```bash packageManager="pnpm"
|
|
101
102
|
pnpm add intlayer react-intlayer
|
|
102
103
|
pnpm add vite-intlayer --save-dev
|
|
104
|
+
pnpm intlayer init
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```bash packageManager="yarn"
|
|
108
|
+
yarn add intlayer react-intlayer
|
|
109
|
+
yarn add vite-intlayer --save-dev
|
|
110
|
+
yarn intlayer init
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```bash packageManager="bun"
|
|
114
|
+
bun add intlayer react-intlayer
|
|
115
|
+
bun add vite-intlayer --dev
|
|
116
|
+
bunx intlayer init
|
|
103
117
|
```
|
|
104
118
|
|
|
105
119
|
- **intlayer**
|
|
@@ -64,16 +64,25 @@ Install the necessary packages using npm:
|
|
|
64
64
|
```bash packageManager="npm"
|
|
65
65
|
npm install intlayer preact-intlayer
|
|
66
66
|
npm install vite-intlayer --save-dev
|
|
67
|
+
npx intlayer init
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
```bash packageManager="pnpm"
|
|
70
71
|
pnpm add intlayer preact-intlayer
|
|
71
72
|
pnpm add vite-intlayer --save-dev
|
|
73
|
+
pnpm intlayer init
|
|
72
74
|
```
|
|
73
75
|
|
|
74
76
|
```bash packageManager="yarn"
|
|
75
77
|
yarn add intlayer preact-intlayer
|
|
76
78
|
yarn add vite-intlayer --save-dev
|
|
79
|
+
yarn intlayer init
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```bash packageManager="bun"
|
|
83
|
+
bun add intlayer preact-intlayer
|
|
84
|
+
bun add vite-intlayer --dev
|
|
85
|
+
bunx intlayer init
|
|
77
86
|
```
|
|
78
87
|
|
|
79
88
|
- **intlayer**
|
|
@@ -642,10 +651,12 @@ First, install `preact-iso`:
|
|
|
642
651
|
|
|
643
652
|
```bash packageManager="npm"
|
|
644
653
|
npm install preact-iso
|
|
654
|
+
npx intlayer init
|
|
645
655
|
```
|
|
646
656
|
|
|
647
657
|
```bash packageManager="pnpm"
|
|
648
658
|
pnpm add preact-iso
|
|
659
|
+
pnpm intlayer init
|
|
649
660
|
```
|
|
650
661
|
|
|
651
662
|
```bash packageManager="yarn"
|
|
@@ -72,16 +72,25 @@ Install the necessary packages using npm:
|
|
|
72
72
|
```bash packageManager="npm"
|
|
73
73
|
npm install intlayer react-intlayer
|
|
74
74
|
npm install vite-intlayer --save-dev
|
|
75
|
+
npx intlayer init
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
```bash packageManager="pnpm"
|
|
78
79
|
pnpm add intlayer react-intlayer
|
|
79
80
|
pnpm add vite-intlayer --save-dev
|
|
81
|
+
pnpm intlayer init
|
|
80
82
|
```
|
|
81
83
|
|
|
82
84
|
```bash packageManager="yarn"
|
|
83
85
|
yarn add intlayer react-intlayer
|
|
84
86
|
yarn add vite-intlayer --save-dev
|
|
87
|
+
yarn intlayer init
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```bash packageManager="bun"
|
|
91
|
+
bun add intlayer react-intlayer
|
|
92
|
+
bun add vite-intlayer --dev
|
|
93
|
+
bunx intlayer init
|
|
85
94
|
```
|
|
86
95
|
|
|
87
96
|
- **intlayer**
|
|
@@ -53,16 +53,25 @@ Install the necessary packages using npm:
|
|
|
53
53
|
```bash packageManager="npm"
|
|
54
54
|
npm install intlayer solid-intlayer
|
|
55
55
|
npm install vite-intlayer --save-dev
|
|
56
|
+
npx intlayer init
|
|
56
57
|
```
|
|
57
58
|
|
|
58
59
|
```bash packageManager="pnpm"
|
|
59
60
|
pnpm add intlayer solid-intlayer
|
|
60
61
|
pnpm add vite-intlayer --save-dev
|
|
62
|
+
pnpm intlayer init
|
|
61
63
|
```
|
|
62
64
|
|
|
63
65
|
```bash packageManager="yarn"
|
|
64
66
|
yarn add intlayer solid-intlayer
|
|
65
67
|
yarn add vite-intlayer --save-dev
|
|
68
|
+
yarn intlayer init
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```bash packageManager="bun"
|
|
72
|
+
bun add intlayer solid-intlayer
|
|
73
|
+
bun add vite-intlayer --dev
|
|
74
|
+
bunx intlayer init
|
|
66
75
|
```
|
|
67
76
|
|
|
68
77
|
- **intlayer**
|
|
@@ -62,21 +62,25 @@ Install the necessary packages using npm:
|
|
|
62
62
|
```bash packageManager="npm"
|
|
63
63
|
npm install intlayer svelte-intlayer
|
|
64
64
|
npm install vite-intlayer --save-dev
|
|
65
|
+
npx intlayer init
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
```bash packageManager="pnpm"
|
|
68
69
|
pnpm add intlayer svelte-intlayer
|
|
69
70
|
pnpm add vite-intlayer --save-dev
|
|
71
|
+
pnpm intlayer init
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
```bash packageManager="yarn"
|
|
73
75
|
yarn add intlayer svelte-intlayer
|
|
74
76
|
yarn add vite-intlayer --save-dev
|
|
77
|
+
yarn intlayer init
|
|
75
78
|
```
|
|
76
79
|
|
|
77
80
|
```bash packageManager="bun"
|
|
78
81
|
bun add intlayer svelte-intlayer
|
|
79
82
|
bun add vite-intlayer --save-dev
|
|
83
|
+
bunx intlayer init
|
|
80
84
|
```
|
|
81
85
|
|
|
82
86
|
- **intlayer**
|
|
@@ -300,14 +304,17 @@ First, install `svelte-spa-router`:
|
|
|
300
304
|
|
|
301
305
|
```bash packageManager="npm"
|
|
302
306
|
npm install svelte-spa-router
|
|
307
|
+
npx intlayer init
|
|
303
308
|
```
|
|
304
309
|
|
|
305
310
|
```bash packageManager="pnpm"
|
|
306
311
|
pnpm add svelte-spa-router
|
|
312
|
+
pnpm intlayer init
|
|
307
313
|
```
|
|
308
314
|
|
|
309
315
|
```bash packageManager="yarn"
|
|
310
316
|
yarn add svelte-spa-router
|
|
317
|
+
yarn intlayer init
|
|
311
318
|
```
|
|
312
319
|
|
|
313
320
|
```bash packageManager="bun"
|
|
@@ -71,16 +71,25 @@ Install the necessary packages using npm:
|
|
|
71
71
|
```bash packageManager="npm"
|
|
72
72
|
npm install intlayer vue-intlayer
|
|
73
73
|
npm install vite-intlayer --save-dev
|
|
74
|
+
npx intlayer init
|
|
74
75
|
```
|
|
75
76
|
|
|
76
77
|
```bash packageManager="pnpm"
|
|
77
78
|
pnpm add intlayer vue-intlayer
|
|
78
79
|
pnpm add vite-intlayer --save-dev
|
|
80
|
+
pnpm intlayer init
|
|
79
81
|
```
|
|
80
82
|
|
|
81
83
|
```bash packageManager="yarn"
|
|
82
84
|
yarn add intlayer vue-intlayer
|
|
83
85
|
yarn add vite-intlayer --save-dev
|
|
86
|
+
yarn intlayer init
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```bash packageManager="bun"
|
|
90
|
+
bun add intlayer vue-intlayer
|
|
91
|
+
bun add vite-intlayer --dev
|
|
92
|
+
bunx intlayer init
|
|
84
93
|
```
|
|
85
94
|
|
|
86
95
|
- **intlayer**
|
|
@@ -559,10 +568,12 @@ First, install Vue Router:
|
|
|
559
568
|
|
|
560
569
|
```bash packageManager="npm"
|
|
561
570
|
npm install vue-router
|
|
571
|
+
npx intlayer init
|
|
562
572
|
```
|
|
563
573
|
|
|
564
574
|
```bash packageManager="pnpm"
|
|
565
575
|
pnpm add vue-router
|
|
576
|
+
pnpm intlayer init
|
|
566
577
|
```
|
|
567
578
|
|
|
568
579
|
```bash packageManager="yarn"
|
package/docs/en-GB/cli/index.md
CHANGED
|
@@ -78,6 +78,10 @@ yarn add intlayer-cli -g
|
|
|
78
78
|
pnpm add intlayer-cli -g
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
+
```bash packageManager="bun"
|
|
82
|
+
bun add intlayer-cli -g
|
|
83
|
+
```
|
|
84
|
+
|
|
81
85
|
> If the `intlayer` package is already installed, the CLI is automatically installed. You can skip this step.
|
|
82
86
|
|
|
83
87
|
## intlayer-cli package
|
package/docs/en-GB/cli/sdk.md
CHANGED
|
@@ -80,6 +80,10 @@ yarn add intlayer-editor --save-dev
|
|
|
80
80
|
pnpm add intlayer-editor --save-dev
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
```bash packageManager="bun"
|
|
84
|
+
bun add intlayer-editor --dev
|
|
85
|
+
```
|
|
86
|
+
|
|
83
87
|
## Configuration
|
|
84
88
|
|
|
85
89
|
In your Intlayer configuration file, you can customise the editor settings:
|