@intlayer/docs 8.1.7 → 8.1.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/README.md +2 -3
- package/blog/ar/i18n_meaning.md +124 -0
- package/blog/ar/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/ar/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/ar/l10n_platform_alternative/phrase.md +2 -6
- package/blog/ar/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/ar/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ar/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/de/i18n_meaning.md +124 -0
- package/blog/de/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/de/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/de/l10n_platform_alternative/phrase.md +2 -6
- package/blog/de/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/de/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/de/per-component_vs_centralized_i18n.md +2 -2
- package/blog/de/rag_powered_documentation_assistant.md +1 -1
- package/blog/en/i18n_meaning.md +124 -0
- package/blog/en/intlayer_with_i18next.md +3 -3
- package/blog/en/intlayer_with_next-i18next.md +3 -3
- package/blog/en/intlayer_with_next-intl.md +3 -3
- package/blog/en/intlayer_with_react-i18next.md +3 -3
- package/blog/en/intlayer_with_react-intl.md +3 -3
- package/blog/en/intlayer_with_vue-i18n.md +3 -3
- package/blog/en/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en/rag_powered_documentation_assistant.md +1 -2
- package/blog/en-GB/compiler_vs_declarative_i18n.md +2 -2
- package/blog/en-GB/i18n_meaning.md +124 -0
- package/blog/en-GB/intlayer_with_i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-intl.md +1 -1
- package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_react-intl.md +1 -1
- package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
- package/blog/en-GB/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en-GB/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en-GB/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en-GB/rag_powered_documentation_assistant.md +1 -1
- package/blog/es/i18n_meaning.md +124 -0
- package/blog/es/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/es/l10n_platform_alternative/crowdin.md +14 -19
- package/blog/es/l10n_platform_alternative/phrase.md +2 -8
- package/blog/es/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/es/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/es/rag_powered_documentation_assistant.md +1 -1
- package/blog/fr/compiler_vs_declarative_i18n.md +1 -1
- package/blog/fr/i18n_meaning.md +23 -0
- package/blog/fr/l10n_platform_alternative/Lokalise.md +6 -10
- package/blog/fr/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/fr/l10n_platform_alternative/phrase.md +11 -24
- package/blog/fr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/fr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/fr/rag_powered_documentation_assistant.md +1 -1
- package/blog/hi/compiler_vs_declarative_i18n.md +2 -2
- package/blog/hi/i18n_meaning.md +124 -0
- package/blog/hi/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/hi/l10n_platform_alternative/crowdin.md +13 -17
- package/blog/hi/l10n_platform_alternative/phrase.md +2 -2
- package/blog/hi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/hi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/hi/per-component_vs_centralized_i18n.md +3 -3
- package/blog/hi/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/compiler_vs_declarative_i18n.md +2 -2
- package/blog/id/i18n_meaning.md +124 -0
- package/blog/id/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/id/l10n_platform_alternative/crowdin.md +4 -8
- package/blog/id/l10n_platform_alternative/phrase.md +11 -22
- package/blog/id/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/id/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/id/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer.md +1 -1
- package/blog/it/compiler_vs_declarative_i18n.md +1 -1
- package/blog/it/i18n_meaning.md +124 -0
- package/blog/it/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/it/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/it/l10n_platform_alternative/phrase.md +2 -6
- package/blog/it/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/it/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/it/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/it/rag_powered_documentation_assistant.md +1 -1
- package/blog/ja/i18n_meaning.md +124 -0
- package/blog/ja/l10n_platform_alternative/phrase.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/react-native.md +6 -9
- package/blog/ja/list_i18n_technologies/frameworks/react.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/svelte.md +27 -6
- package/blog/ja/list_i18n_technologies/frameworks/vue.md +29 -15
- package/blog/ja/per-component_vs_centralized_i18n.md +1 -1
- package/blog/ko/i18n_meaning.md +124 -0
- package/blog/ko/l10n_platform_alternative/Lokalise.md +2 -2
- package/blog/ko/l10n_platform_alternative/crowdin.md +11 -17
- package/blog/ko/l10n_platform_alternative/phrase.md +5 -5
- package/blog/ko/list_i18n_technologies/frameworks/angular.md +26 -3
- package/blog/ko/list_i18n_technologies/frameworks/react-native.md +35 -39
- package/blog/ko/list_i18n_technologies/frameworks/react.md +24 -24
- package/blog/ko/list_i18n_technologies/frameworks/svelte.md +28 -7
- package/blog/ko/list_i18n_technologies/frameworks/vue.md +22 -2
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pl/compiler_vs_declarative_i18n.md +2 -2
- package/blog/pl/i18n_meaning.md +124 -0
- package/blog/pl/l10n_platform_alternative/Lokalise.md +6 -16
- package/blog/pl/l10n_platform_alternative/crowdin.md +5 -5
- package/blog/pl/l10n_platform_alternative/phrase.md +4 -8
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +2 -2
- package/blog/pl/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +18 -4
- package/blog/pl/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pl/per-component_vs_centralized_i18n.md +4 -4
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
- package/blog/pt/compiler_vs_declarative_i18n.md +1 -1
- package/blog/pt/i18n_meaning.md +124 -0
- package/blog/pt/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/pt/l10n_platform_alternative/crowdin.md +13 -13
- package/blog/pt/l10n_platform_alternative/phrase.md +2 -2
- package/blog/pt/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pt/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pt/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pt/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pt/rag_powered_documentation_assistant.md +1 -1
- package/blog/ru/compiler_vs_declarative_i18n.md +9 -9
- package/blog/ru/i18n_meaning.md +124 -0
- package/blog/ru/i18n_using_next-i18next.md +3 -3
- package/blog/ru/i18n_using_next-intl.md +6 -6
- package/blog/ru/intlayer_with_i18next.md +1 -1
- package/blog/ru/intlayer_with_next-i18next.md +2 -2
- package/blog/ru/intlayer_with_next-intl.md +1 -1
- package/blog/ru/intlayer_with_react-i18next.md +1 -1
- package/blog/ru/intlayer_with_react-intl.md +1 -1
- package/blog/ru/intlayer_with_vue-i18n.md +1 -1
- package/blog/ru/l10n_platform_alternative/Lokalise.md +10 -10
- package/blog/ru/l10n_platform_alternative/crowdin.md +20 -26
- package/blog/ru/l10n_platform_alternative/phrase.md +16 -20
- package/blog/ru/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/svelte.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +9 -9
- package/blog/ru/nextjs-multilingual-seo-comparison.md +7 -7
- package/blog/ru/per-component_vs_centralized_i18n.md +3 -3
- package/blog/ru/rag_powered_documentation_assistant.md +9 -9
- package/blog/ru/what_is_internationalization.md +1 -1
- package/blog/tr/compiler_vs_declarative_i18n.md +2 -2
- package/blog/tr/i18n_meaning.md +124 -0
- package/blog/tr/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/tr/l10n_platform_alternative/crowdin.md +3 -3
- package/blog/tr/l10n_platform_alternative/phrase.md +10 -21
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/tr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/tr/rag_powered_documentation_assistant.md +1 -1
- package/blog/uk/compiler_vs_declarative_i18n.md +12 -12
- package/blog/uk/i18n_meaning.md +124 -0
- package/blog/uk/i18n_using_next-i18next.md +10 -10
- package/blog/uk/i18n_using_next-intl.md +7 -7
- package/blog/uk/internationalization_and_SEO.md +11 -11
- package/blog/uk/intlayer_with_i18next.md +2 -2
- package/blog/uk/intlayer_with_next-i18next.md +3 -3
- package/blog/uk/intlayer_with_next-intl.md +2 -2
- package/blog/uk/intlayer_with_react-i18next.md +2 -2
- package/blog/uk/intlayer_with_react-intl.md +2 -2
- package/blog/uk/intlayer_with_vue-i18n.md +2 -2
- package/blog/uk/l10n_platform_alternative/Lokalise.md +9 -9
- package/blog/uk/l10n_platform_alternative/crowdin.md +10 -10
- package/blog/uk/l10n_platform_alternative/phrase.md +9 -9
- package/blog/uk/list_i18n_technologies/frameworks/angular.md +31 -9
- package/blog/uk/list_i18n_technologies/frameworks/react-native.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/react.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/svelte.md +4 -4
- package/blog/uk/list_i18n_technologies/frameworks/vue.md +6 -6
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +13 -13
- package/blog/uk/nextjs-multilingual-seo-comparison.md +8 -8
- package/blog/uk/per-component_vs_centralized_i18n.md +3 -3
- package/blog/uk/rag_powered_documentation_assistant.md +11 -11
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +5 -5
- package/blog/uk/vue-i18n_vs_intlayer.md +5 -5
- package/blog/uk/what_is_internationalization.md +4 -4
- package/blog/vi/compiler_vs_declarative_i18n.md +1 -1
- package/blog/vi/i18n_meaning.md +124 -0
- package/blog/vi/l10n_platform_alternative/Lokalise.md +14 -21
- package/blog/vi/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/vi/l10n_platform_alternative/phrase.md +2 -6
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/vi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/vi/per-component_vs_centralized_i18n.md +1 -1
- package/blog/vi/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/compiler_vs_declarative_i18n.md +2 -2
- package/blog/zh/i18n_meaning.md +124 -0
- package/blog/zh/internationalization_and_SEO.md +5 -5
- package/blog/zh/l10n_platform_alternative/Lokalise.md +23 -23
- package/blog/zh/l10n_platform_alternative/crowdin.md +28 -32
- package/blog/zh/l10n_platform_alternative/phrase.md +32 -38
- package/blog/zh/list_i18n_technologies/frameworks/angular.md +28 -6
- package/blog/zh/list_i18n_technologies/frameworks/react-native.md +10 -14
- package/blog/zh/list_i18n_technologies/frameworks/react.md +5 -5
- package/blog/zh/list_i18n_technologies/frameworks/svelte.md +23 -7
- package/blog/zh/list_i18n_technologies/frameworks/vue.md +20 -6
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/zh/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/zh/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/what_is_internationalization.md +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/agent_skills.md +2 -0
- package/docs/ar/compiler.md +55 -3
- package/docs/ar/component_i18n.md +2 -2
- package/docs/ar/configuration.md +68 -1
- package/docs/ar/dictionary/content_file.md +1 -1
- package/docs/ar/index.md +2 -2
- package/docs/ar/intlayer_CMS.md +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +1 -1
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_create_react_app.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_fastify.md +1 -1
- package/docs/ar/intlayer_with_hono.md +1 -1
- package/docs/ar/intlayer_with_lynx+react.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- 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 +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +3 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- package/docs/ar/intlayer_with_react_native+expo.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vite+preact.md +3 -1
- package/docs/ar/intlayer_with_vite+react.md +3 -1
- package/docs/ar/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/ar/intlayer_with_vite+solid.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +3 -1
- package/docs/ar/intlayer_with_vite+vue.md +3 -1
- package/docs/ar/introduction.md +2 -2
- package/docs/ar/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/de/agent_skills.md +2 -0
- package/docs/de/cli/init.md +1 -1
- package/docs/de/compiler.md +53 -1
- package/docs/de/component_i18n.md +2 -2
- package/docs/de/configuration.md +68 -1
- package/docs/de/dictionary/content_file.md +1 -1
- package/docs/de/index.md +2 -2
- package/docs/de/intlayer_with_adonisjs.md +1 -1
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_fastify.md +1 -1
- package/docs/de/intlayer_with_hono.md +1 -1
- package/docs/de/intlayer_with_lynx+react.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_next-i18next.md +2 -2
- package/docs/de/intlayer_with_next-intl.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +3 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +22 -5
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +4 -2
- package/docs/de/intlayer_with_react_router_v7.md +4 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vite+preact.md +3 -1
- package/docs/de/intlayer_with_vite+react.md +3 -1
- package/docs/de/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +3 -1
- package/docs/de/intlayer_with_vite+vue.md +3 -1
- package/docs/de/introduction.md +2 -2
- package/docs/de/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en/agent_skills.md +2 -0
- package/docs/en/compiler.md +53 -1
- package/docs/en/component_i18n.md +2 -2
- package/docs/en/configuration.md +16 -1
- package/docs/en/index.md +2 -2
- package/docs/en/intlayer_CMS.md +1 -1
- package/docs/en/intlayer_with_adonisjs.md +1 -1
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_create_react_app.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_fastify.md +1 -1
- package/docs/en/intlayer_with_hono.md +1 -1
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +1 -1
- package/docs/en/intlayer_with_next-i18next.md +2 -2
- package/docs/en/intlayer_with_next-intl.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +2 -2
- package/docs/en/intlayer_with_nextjs_15.md +2 -2
- package/docs/en/intlayer_with_nextjs_16.md +4 -2
- package/docs/en/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/en/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en/intlayer_with_nuxt.md +2 -2
- package/docs/en/intlayer_with_react_native+expo.md +5 -3
- package/docs/en/intlayer_with_react_router_v7.md +4 -2
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vite+preact.md +3 -1
- package/docs/en/intlayer_with_vite+react.md +3 -1
- package/docs/en/intlayer_with_vite+react_compiler.md +22 -5
- package/docs/en/intlayer_with_vite+solid.md +1 -1
- package/docs/en/intlayer_with_vite+svelte.md +3 -1
- package/docs/en/intlayer_with_vite+vue.md +3 -1
- package/docs/en/introduction.md +2 -2
- package/docs/en/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en-GB/agent_skills.md +2 -0
- package/docs/en-GB/cli/init.md +1 -1
- package/docs/en-GB/compiler.md +55 -3
- package/docs/en-GB/component_i18n.md +2 -2
- package/docs/en-GB/configuration.md +68 -1
- package/docs/en-GB/dictionary/content_file.md +1 -1
- package/docs/en-GB/index.md +2 -2
- package/docs/en-GB/intlayer_CMS.md +1 -1
- package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_fastify.md +1 -1
- package/docs/en-GB/intlayer_with_hono.md +1 -1
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- 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 +2 -2
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +16 -16
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +2 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/en-GB/intlayer_with_svelte_kit.md +2 -2
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +2 -3
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/introduction.md +2 -2
- package/docs/en-GB/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en-GB/readme.md +1 -1
- package/docs/es/agent_skills.md +2 -0
- package/docs/es/compiler.md +53 -1
- package/docs/es/component_i18n.md +2 -2
- package/docs/es/configuration.md +68 -1
- package/docs/es/dictionary/content_file.md +1 -1
- package/docs/es/index.md +2 -2
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_create_react_app.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_lynx+react.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_next-i18next.md +2 -2
- package/docs/es/intlayer_with_next-intl.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +3 -1
- package/docs/es/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +5 -3
- package/docs/es/intlayer_with_react_router_v7.md +4 -2
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vite+preact.md +3 -1
- package/docs/es/intlayer_with_vite+react.md +3 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +3 -1
- package/docs/es/intlayer_with_vite+vue.md +3 -1
- package/docs/es/introduction.md +2 -2
- package/docs/es/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/fr/agent_skills.md +2 -0
- package/docs/fr/compiler.md +56 -4
- package/docs/fr/component_i18n.md +2 -2
- package/docs/fr/configuration.md +68 -1
- package/docs/fr/dictionary/content_file.md +1 -1
- package/docs/fr/index.md +2 -2
- package/docs/fr/intlayer_CMS.md +1 -1
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_create_react_app.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_lynx+react.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_next-i18next.md +2 -2
- package/docs/fr/intlayer_with_next-intl.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +3 -1
- package/docs/fr/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- package/docs/fr/intlayer_with_react_native+expo.md +5 -3
- package/docs/fr/intlayer_with_react_router_v7.md +4 -2
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/fr/intlayer_with_svelte_kit.md +2 -2
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vite+preact.md +3 -1
- package/docs/fr/intlayer_with_vite+react.md +3 -1
- package/docs/fr/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +3 -1
- package/docs/fr/intlayer_with_vite+vue.md +4 -2
- package/docs/fr/introduction.md +2 -2
- package/docs/fr/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/hi/agent_skills.md +2 -0
- package/docs/hi/cli/init.md +1 -1
- package/docs/hi/compiler.md +55 -3
- package/docs/hi/component_i18n.md +2 -2
- package/docs/hi/configuration.md +68 -1
- package/docs/hi/dictionary/content_file.md +1 -1
- package/docs/hi/index.md +2 -2
- package/docs/hi/intlayer_CMS.md +1 -1
- package/docs/hi/intlayer_with_adonisjs.md +1 -1
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_fastify.md +2 -2
- package/docs/hi/intlayer_with_hono.md +1 -1
- package/docs/hi/intlayer_with_lynx+react.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_next-i18next.md +2 -2
- package/docs/hi/intlayer_with_next-intl.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +3 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- package/docs/hi/intlayer_with_react_native+expo.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vite+preact.md +3 -1
- package/docs/hi/intlayer_with_vite+react.md +3 -1
- package/docs/hi/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +3 -1
- package/docs/hi/intlayer_with_vite+vue.md +4 -2
- package/docs/hi/introduction.md +2 -2
- package/docs/hi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/id/agent_skills.md +2 -0
- package/docs/id/compiler.md +53 -1
- package/docs/id/component_i18n.md +2 -2
- package/docs/id/configuration.md +61 -1
- package/docs/id/dictionary/content_file.md +1 -1
- package/docs/id/index.md +2 -2
- package/docs/id/intlayer_CMS.md +1 -1
- package/docs/id/intlayer_with_adonisjs.md +1 -1
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_create_react_app.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_fastify.md +1 -1
- package/docs/id/intlayer_with_hono.md +1 -1
- package/docs/id/intlayer_with_lynx+react.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +1 -1
- package/docs/id/intlayer_with_next-i18next.md +2 -2
- package/docs/id/intlayer_with_next-intl.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +3 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +5 -3
- package/docs/id/intlayer_with_react_router_v7.md +4 -2
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vite+preact.md +3 -1
- package/docs/id/intlayer_with_vite+react.md +3 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/id/intlayer_with_vite+solid.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +3 -1
- package/docs/id/intlayer_with_vite+vue.md +3 -1
- package/docs/id/introduction.md +2 -2
- package/docs/id/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/it/agent_skills.md +2 -0
- package/docs/it/compiler.md +55 -3
- package/docs/it/component_i18n.md +2 -2
- package/docs/it/configuration.md +68 -1
- package/docs/it/dictionary/content_file.md +1 -1
- package/docs/it/index.md +2 -2
- package/docs/it/intlayer_CMS.md +1 -1
- package/docs/it/intlayer_with_adonisjs.md +1 -1
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_create_react_app.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_fastify.md +1 -1
- package/docs/it/intlayer_with_hono.md +1 -1
- package/docs/it/intlayer_with_lynx+react.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_next-i18next.md +2 -2
- package/docs/it/intlayer_with_next-intl.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +3 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +4 -2
- package/docs/it/intlayer_with_react_router_v7.md +4 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vite+preact.md +3 -1
- package/docs/it/intlayer_with_vite+react.md +3 -1
- package/docs/it/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +3 -1
- package/docs/it/intlayer_with_vite+vue.md +4 -2
- package/docs/it/introduction.md +2 -2
- package/docs/it/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ja/agent_skills.md +2 -0
- package/docs/ja/cli/init.md +1 -1
- package/docs/ja/compiler.md +53 -1
- package/docs/ja/component_i18n.md +2 -2
- package/docs/ja/configuration.md +68 -1
- package/docs/ja/dictionary/content_file.md +1 -1
- package/docs/ja/index.md +2 -2
- package/docs/ja/intlayer_with_adonisjs.md +1 -1
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_create_react_app.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_fastify.md +1 -1
- package/docs/ja/intlayer_with_hono.md +1 -1
- package/docs/ja/intlayer_with_lynx+react.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_next-i18next.md +2 -2
- package/docs/ja/intlayer_with_next-intl.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +3 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +22 -5
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/ja/intlayer_with_nextjs_page_router.md +76 -77
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_native+expo.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ja/intlayer_with_svelte_kit.md +1 -1
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/intlayer_with_vite+preact.md +3 -1
- package/docs/ja/intlayer_with_vite+react.md +3 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/ja/intlayer_with_vite+solid.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +3 -1
- package/docs/ja/intlayer_with_vite+vue.md +3 -1
- package/docs/ja/introduction.md +2 -2
- package/docs/ja/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ko/agent_skills.md +2 -0
- package/docs/ko/cli/init.md +1 -1
- package/docs/ko/compiler.md +53 -1
- package/docs/ko/component_i18n.md +2 -2
- package/docs/ko/configuration.md +68 -1
- package/docs/ko/dictionary/content_file.md +1 -1
- package/docs/ko/index.md +2 -2
- package/docs/ko/intlayer_with_adonisjs.md +1 -1
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_create_react_app.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_fastify.md +1 -1
- package/docs/ko/intlayer_with_hono.md +1 -1
- package/docs/ko/intlayer_with_lynx+react.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_next-i18next.md +2 -2
- package/docs/ko/intlayer_with_next-intl.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- package/docs/ko/intlayer_with_nextjs_15.md +1 -1
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +3 -3
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vite+preact.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+react_compiler.md +1 -2
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/introduction.md +2 -2
- package/docs/ko/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/pl/agent_skills.md +2 -0
- package/docs/pl/cli/init.md +1 -1
- package/docs/pl/compiler.md +53 -1
- package/docs/pl/component_i18n.md +2 -2
- package/docs/pl/configuration.md +61 -1
- package/docs/pl/dictionary/content_file.md +1 -1
- package/docs/pl/index.md +2 -2
- package/docs/pl/intlayer_CMS.md +1 -1
- package/docs/pl/intlayer_with_adonisjs.md +1 -1
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_create_react_app.md +1 -1
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_fastify.md +1 -1
- package/docs/pl/intlayer_with_hono.md +1 -1
- package/docs/pl/intlayer_with_lynx+react.md +1 -1
- package/docs/pl/intlayer_with_nestjs.md +1 -1
- package/docs/pl/intlayer_with_next-i18next.md +2 -2
- package/docs/pl/intlayer_with_next-intl.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +3 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pl/intlayer_with_nuxt.md +1 -1
- package/docs/pl/intlayer_with_react_native+expo.md +5 -3
- package/docs/pl/intlayer_with_react_router_v7.md +4 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +5 -3
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vite+preact.md +3 -1
- package/docs/pl/intlayer_with_vite+react.md +3 -1
- package/docs/pl/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +3 -1
- package/docs/pl/intlayer_with_vite+vue.md +4 -2
- package/docs/pl/introduction.md +2 -2
- package/docs/pl/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/pl/packages/preact-intlayer/exports.md +1 -1
- package/docs/pl/releases/v8.md +3 -3
- package/docs/pt/agent_skills.md +2 -0
- package/docs/pt/cli/init.md +1 -1
- package/docs/pt/compiler.md +53 -1
- package/docs/pt/component_i18n.md +2 -2
- package/docs/pt/configuration.md +68 -1
- package/docs/pt/dictionary/content_file.md +1 -1
- package/docs/pt/index.md +2 -2
- package/docs/pt/intlayer_CMS.md +1 -1
- package/docs/pt/intlayer_with_adonisjs.md +1 -1
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular.md +1 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_create_react_app.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_fastify.md +1 -1
- package/docs/pt/intlayer_with_hono.md +1 -1
- package/docs/pt/intlayer_with_lynx+react.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_next-i18next.md +2 -2
- package/docs/pt/intlayer_with_next-intl.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +3 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +9 -9
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +3 -5
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/intlayer_with_vite+preact.md +3 -1
- package/docs/pt/intlayer_with_vite+react.md +3 -1
- package/docs/pt/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +3 -1
- package/docs/pt/intlayer_with_vite+vue.md +3 -1
- package/docs/pt/introduction.md +2 -2
- package/docs/pt/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/ru/agent_skills.md +5 -3
- package/docs/ru/autoFill.md +3 -3
- package/docs/ru/bundle_optimization.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -1
- package/docs/ru/cli/fill.md +1 -1
- package/docs/ru/cli/init.md +6 -6
- package/docs/ru/cli/sdk.md +1 -1
- package/docs/ru/compiler.md +56 -4
- package/docs/ru/component_i18n.md +2 -2
- package/docs/ru/configuration.md +69 -2
- package/docs/ru/dictionary/content_file.md +3 -3
- package/docs/ru/dictionary/html.md +1 -1
- package/docs/ru/formatters.md +1 -1
- package/docs/ru/index.md +2 -2
- package/docs/ru/intlayer_CMS.md +6 -6
- package/docs/ru/intlayer_with_adonisjs.md +2 -2
- package/docs/ru/intlayer_with_analog.md +2 -2
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_create_react_app.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_fastify.md +2 -2
- package/docs/ru/intlayer_with_hono.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +2 -2
- package/docs/ru/intlayer_with_next-i18next.md +3 -3
- package/docs/ru/intlayer_with_next-intl.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +5 -3
- package/docs/ru/intlayer_with_nextjs_compiler.md +25 -8
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +12 -12
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_nuxt.md +3 -3
- package/docs/ru/intlayer_with_react_native+expo.md +4 -2
- package/docs/ru/intlayer_with_react_router_v7.md +5 -3
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +5 -7
- package/docs/ru/intlayer_with_svelte_kit.md +3 -3
- package/docs/ru/intlayer_with_tanstack.md +3 -3
- package/docs/ru/intlayer_with_vite+preact.md +10 -8
- package/docs/ru/intlayer_with_vite+react.md +5 -3
- package/docs/ru/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +4 -2
- package/docs/ru/intlayer_with_vite+vue.md +3 -1
- package/docs/ru/introduction.md +2 -2
- package/docs/ru/packages/adonis-intlayer/t.md +1 -1
- package/docs/ru/packages/hono-intlayer/t.md +2 -2
- package/docs/ru/packages/intlayer/exports.md +1 -1
- package/docs/ru/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ru/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/ru/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/ru/packages/react-intlayer/exports.md +16 -16
- package/docs/ru/readme.md +1 -1
- package/docs/ru/releases/v7.md +3 -3
- package/docs/ru/releases/v8.md +5 -5
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/tr/agent_skills.md +2 -0
- package/docs/tr/cli/init.md +2 -2
- package/docs/tr/compiler.md +55 -3
- package/docs/tr/component_i18n.md +2 -2
- package/docs/tr/configuration.md +68 -1
- package/docs/tr/dictionary/content_file.md +1 -1
- package/docs/tr/index.md +2 -2
- package/docs/tr/intlayer_CMS.md +1 -1
- package/docs/tr/intlayer_with_adonisjs.md +1 -1
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_create_react_app.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_fastify.md +1 -1
- package/docs/tr/intlayer_with_hono.md +1 -1
- package/docs/tr/intlayer_with_lynx+react.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +1 -1
- package/docs/tr/intlayer_with_next-i18next.md +2 -2
- package/docs/tr/intlayer_with_next-intl.md +1 -1
- package/docs/tr/intlayer_with_nextjs_14.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +3 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vite+preact.md +3 -1
- package/docs/tr/intlayer_with_vite+react.md +3 -1
- package/docs/tr/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +3 -1
- package/docs/tr/intlayer_with_vite+vue.md +3 -1
- package/docs/tr/introduction.md +2 -2
- package/docs/tr/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/uk/agent_skills.md +5 -3
- package/docs/uk/autoFill.md +4 -4
- package/docs/uk/bundle_optimization.md +2 -2
- package/docs/uk/cli/fill.md +1 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/list_projects.md +1 -1
- package/docs/uk/cli/login.md +2 -2
- package/docs/uk/cli/sdk.md +1 -1
- package/docs/uk/compiler.md +56 -4
- package/docs/uk/component_i18n.md +3 -3
- package/docs/uk/configuration.md +65 -5
- package/docs/uk/dictionary/content_file.md +5 -5
- package/docs/uk/dictionary/enumeration.md +1 -1
- package/docs/uk/dictionary/html.md +1 -1
- package/docs/uk/formatters.md +9 -9
- package/docs/uk/how_works_intlayer.md +6 -6
- package/docs/uk/index.md +4 -4
- package/docs/uk/interest_of_intlayer.md +24 -24
- package/docs/uk/intlayer_CMS.md +7 -7
- package/docs/uk/intlayer_visual_editor.md +8 -8
- package/docs/uk/intlayer_with_adonisjs.md +2 -2
- package/docs/uk/intlayer_with_analog.md +2 -2
- package/docs/uk/intlayer_with_angular.md +2 -2
- package/docs/uk/intlayer_with_astro.md +3 -3
- package/docs/uk/intlayer_with_create_react_app.md +13 -13
- package/docs/uk/intlayer_with_express.md +2 -2
- package/docs/uk/intlayer_with_fastify.md +3 -3
- package/docs/uk/intlayer_with_hono.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +3 -3
- package/docs/uk/intlayer_with_nestjs.md +4 -4
- package/docs/uk/intlayer_with_next-i18next.md +5 -5
- package/docs/uk/intlayer_with_next-intl.md +1 -1
- package/docs/uk/intlayer_with_nextjs_14.md +10 -10
- package/docs/uk/intlayer_with_nextjs_15.md +21 -21
- package/docs/uk/intlayer_with_nextjs_16.md +5 -3
- package/docs/uk/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +13 -13
- package/docs/uk/intlayer_with_nextjs_page_router.md +9 -9
- package/docs/uk/intlayer_with_nuxt.md +6 -6
- package/docs/uk/intlayer_with_react_native+expo.md +11 -9
- package/docs/uk/intlayer_with_react_router_v7.md +10 -8
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +10 -8
- package/docs/uk/intlayer_with_svelte_kit.md +2 -2
- package/docs/uk/intlayer_with_tanstack.md +9 -9
- package/docs/uk/intlayer_with_vite+preact.md +13 -11
- package/docs/uk/intlayer_with_vite+react.md +14 -12
- package/docs/uk/intlayer_with_vite+react_compiler.md +26 -10
- package/docs/uk/intlayer_with_vite+solid.md +2 -2
- package/docs/uk/intlayer_with_vite+svelte.md +4 -2
- package/docs/uk/intlayer_with_vite+vue.md +9 -7
- package/docs/uk/introduction.md +3 -3
- package/docs/uk/locale_mapper.md +1 -1
- package/docs/uk/packages/adonis-intlayer/t.md +1 -1
- package/docs/uk/packages/angular-intlayer/exports.md +1 -1
- package/docs/uk/packages/express-intlayer/t.md +3 -3
- package/docs/uk/packages/hono-intlayer/t.md +2 -2
- package/docs/uk/packages/intlayer/exports.md +1 -1
- package/docs/uk/packages/intlayer/getEnumeration.md +1 -1
- package/docs/uk/packages/intlayer/getMultilingualUrls.md +2 -2
- package/docs/uk/packages/intlayer/getTranslation.md +2 -2
- package/docs/uk/packages/intlayer/getTranslationContent.md +3 -3
- package/docs/uk/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/uk/packages/next-intlayer/t.md +2 -2
- package/docs/uk/packages/next-intlayer/useLocale.md +3 -3
- package/docs/uk/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/uk/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/uk/packages/react-intlayer/t.md +3 -3
- package/docs/uk/packages/react-intlayer/useDictionary.md +1 -1
- package/docs/uk/packages/react-intlayer/useLocale.md +2 -2
- package/docs/uk/packages/react-native-intlayer/exports.md +1 -1
- package/docs/uk/per_locale_file.md +2 -2
- package/docs/uk/plugins/sync-json.md +10 -10
- package/docs/uk/readme.md +3 -3
- package/docs/uk/releases/v6.md +2 -2
- package/docs/uk/releases/v7.md +2 -2
- package/docs/uk/releases/v8.md +1 -1
- package/docs/uk/roadmap.md +4 -4
- package/docs/uk/testing.md +1 -1
- package/docs/uk/vs_code_extension.md +2 -2
- package/docs/vi/agent_skills.md +2 -0
- package/docs/vi/compiler.md +53 -1
- package/docs/vi/component_i18n.md +2 -2
- package/docs/vi/configuration.md +61 -1
- package/docs/vi/dictionary/content_file.md +1 -1
- package/docs/vi/index.md +2 -2
- package/docs/vi/intlayer_CMS.md +1 -1
- package/docs/vi/intlayer_with_adonisjs.md +1 -1
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_create_react_app.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_fastify.md +1 -1
- package/docs/vi/intlayer_with_hono.md +1 -1
- package/docs/vi/intlayer_with_lynx+react.md +1 -1
- package/docs/vi/intlayer_with_nestjs.md +1 -1
- package/docs/vi/intlayer_with_next-i18next.md +2 -2
- package/docs/vi/intlayer_with_next-intl.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +3 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/vi/intlayer_with_nuxt.md +1 -1
- package/docs/vi/intlayer_with_react_native+expo.md +5 -3
- package/docs/vi/intlayer_with_react_router_v7.md +4 -2
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vite+preact.md +3 -1
- package/docs/vi/intlayer_with_vite+react.md +3 -1
- package/docs/vi/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/vi/intlayer_with_vite+solid.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +3 -1
- package/docs/vi/intlayer_with_vite+vue.md +3 -1
- package/docs/vi/introduction.md +2 -2
- package/docs/vi/packages/intlayer/getCanonicalPath.md +1 -1
- package/docs/vi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/vi/readme.md +1 -1
- package/docs/vi/releases/v8.md +2 -2
- package/docs/zh/agent_skills.md +2 -0
- package/docs/zh/compiler.md +53 -1
- package/docs/zh/component_i18n.md +2 -2
- package/docs/zh/configuration.md +68 -1
- package/docs/zh/dictionary/content_file.md +1 -1
- package/docs/zh/index.md +3 -3
- package/docs/zh/intlayer_CMS.md +1 -1
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_create_react_app.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_lynx+react.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_next-i18next.md +2 -2
- package/docs/zh/intlayer_with_next-intl.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +3 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- package/docs/zh/intlayer_with_react_native+expo.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vite+preact.md +3 -1
- package/docs/zh/intlayer_with_vite+react.md +3 -1
- package/docs/zh/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/zh/intlayer_with_vite+solid.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +3 -1
- package/docs/zh/intlayer_with_vite+vue.md +3 -1
- package/docs/zh/introduction.md +2 -2
- package/docs/zh/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/frequent_questions/ar/error-vite-env-only.md +2 -2
- package/frequent_questions/de/error-vite-env-only.md +2 -2
- package/frequent_questions/en/error-vite-env-only.md +2 -2
- package/frequent_questions/en-GB/error-vite-env-only.md +2 -2
- package/frequent_questions/es/error-vite-env-only.md +2 -2
- package/frequent_questions/fr/error-vite-env-only.md +2 -2
- package/frequent_questions/hi/error-vite-env-only.md +2 -2
- package/frequent_questions/id/domain_routing.md +1 -1
- package/frequent_questions/id/error-vite-env-only.md +2 -2
- package/frequent_questions/it/error-vite-env-only.md +2 -2
- package/frequent_questions/ja/error-vite-env-only.md +2 -2
- package/frequent_questions/ko/error-vite-env-only.md +2 -2
- package/frequent_questions/pl/domain_routing.md +1 -1
- package/frequent_questions/pl/error-vite-env-only.md +2 -2
- package/frequent_questions/pt/error-vite-env-only.md +2 -2
- package/frequent_questions/ru/error-vite-env-only.md +2 -2
- package/frequent_questions/tr/error-vite-env-only.md +2 -2
- package/frequent_questions/uk/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/uk/array_as_content_declaration.md +1 -1
- package/frequent_questions/uk/customized_locale_list.md +1 -1
- package/frequent_questions/uk/domain_routing.md +1 -1
- package/frequent_questions/uk/error-vite-env-only.md +3 -3
- package/frequent_questions/uk/get_locale_cookie.md +4 -4
- package/frequent_questions/uk/static_rendering.md +1 -1
- package/frequent_questions/vi/domain_routing.md +1 -1
- package/frequent_questions/vi/error-vite-env-only.md +2 -2
- package/frequent_questions/zh/error-vite-env-only.md +3 -3
- package/legal/de/terms_of_service.md +1 -1
- package/legal/fr/terms_of_service.md +2 -2
- package/legal/ja/terms_of_service.md +1 -1
- package/legal/pl/terms_of_service.md +2 -2
- package/legal/ru/terms_of_service.md +1 -1
- package/legal/uk/privacy_notice.md +1 -1
- package/legal/uk/terms_of_service.md +1 -1
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +20 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
3
|
updatedAt: 2025-12-30
|
|
4
|
-
title: NestJS i18n - Як перекласти
|
|
4
|
+
title: NestJS i18n - Як перекласти додаток NestJS у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш бекенд на NestJS багатомовним. Слідуйте документації для інтернаціоналізації (i18n) та перекладу.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -26,7 +26,7 @@ history:
|
|
|
26
26
|
|
|
27
27
|
# Перекладіть ваш бекенд на Nest за допомогою Intlayer | Інтернаціоналізація (i18n)
|
|
28
28
|
|
|
29
|
-
`express-intlayer
|
|
29
|
+
`express-intlayer`, це потужний middleware для інтернаціоналізації (i18n) для додатків на Express, призначений зробити ваші бекенд-сервіси доступними у всьому світі, надаючи локалізовані відповіді відповідно до уподобань клієнта. Оскільки NestJS побудований поверх Express, ви можете безшовно інтегрувати `express-intlayer` у свої додатки NestJS для ефективної роботи з багатомовним вмістом.
|
|
30
30
|
|
|
31
31
|
Типові випадки використання
|
|
32
32
|
|
|
@@ -34,7 +34,7 @@ history:
|
|
|
34
34
|
|
|
35
35
|
- **Отримання багатомовного контенту**: Для застосунків, які дістають контент із бази даних, інтернаціоналізація гарантує можливість надавати цей контент кількома мовами. Це критично важливо для платформ, таких як e-commerce-сайти або системи керування контентом (CMS), яким потрібно відображати описи продуктів, статті та інший контент мовою, яку віддає перевагу користувач.
|
|
36
36
|
|
|
37
|
-
- **Надсилання багатомовних електронних листів**: Чи то транзакційні листи, маркетингові кампанії або
|
|
37
|
+
- **Надсилання багатомовних електронних листів**: Чи то транзакційні листи, маркетингові кампанії або сповіщення, надсилання листів мовою отримувача може значно підвищити залученість та ефективність.
|
|
38
38
|
|
|
39
39
|
- **Багатомовні push-повідомлення**: Для мобільних застосунків відправлення push-повідомлень мовою, яку віддає перевагу користувач, може підвищити взаємодію та утримання. Такий персональний підхід робить повідомлення більш релевантними та такими, що спонукають до дії.
|
|
40
40
|
|
|
@@ -47,7 +47,7 @@ history:
|
|
|
47
47
|
<iframe
|
|
48
48
|
src="https://stackblitz.com/github/aymericzip/intlayer-nestjs-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
49
49
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
50
|
-
title="Демо CodeSandbox
|
|
50
|
+
title="Демо CodeSandbox. Як інтернаціоналізувати ваш застосунок за допомогою Intlayer"
|
|
51
51
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
52
52
|
loading="lazy"
|
|
53
53
|
/>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title:
|
|
4
|
+
title: next-i18next - Як перекласти додаток Next.js (i18n) у 2026 році
|
|
5
5
|
description: Практичне керівництво, готове до продакшену, з інтернаціоналізації застосунку Next.js 15 (App Router) за допомогою i18next/next-i18next та покращення його за допомогою Intlayer.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -37,7 +37,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-next-i18next-templat
|
|
|
37
37
|
- Інтеграція Intlayer для автоматизації робочих процесів перекладу (тести, автозаповнення за допомогою AI, синхронізація JSON)
|
|
38
38
|
|
|
39
39
|
> Примітка: next-i18next побудований поверх i18next. Цей посібник використовує примітиви i18next, сумісні з next-i18next в App Router, одночасно зберігаючи архітектуру простою та готовою до продакшену.
|
|
40
|
-
> Для ширшого порівняння див. [next-i18next vs next-
|
|
40
|
+
> Для ширшого порівняння див. [next-i18next vs next-intl vs Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md).
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
@@ -391,7 +391,7 @@ export default ServerComponent;
|
|
|
391
391
|
|
|
392
392
|
## 8) SEO: Метадані, Hreflang, Sitemap, Robots
|
|
393
393
|
|
|
394
|
-
Переклад
|
|
394
|
+
Переклад контенту, це спосіб розширити охоплення. Ретельно налаштуйте багатомовне SEO.
|
|
395
395
|
|
|
396
396
|
Найкращі практики:
|
|
397
397
|
|
|
@@ -614,8 +614,8 @@ export default config;
|
|
|
614
614
|
|
|
615
615
|
Типові сценарії:
|
|
616
616
|
|
|
617
|
-
- `pnpm i18n:test` у CI
|
|
618
|
-
- `pnpm i18n:fill`
|
|
617
|
+
- `pnpm i18n:test` у CI, щоб CI завершувався з помилкою при відсутніх ключах
|
|
618
|
+
- `pnpm i18n:fill` локально, пропонує AI-переклади для щойно доданих ключів
|
|
619
619
|
|
|
620
620
|
> Ви можете передавати аргументи CLI; див. [документацію Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md).
|
|
621
621
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title:
|
|
4
|
+
title: next-intl - Як перекласти додаток Next.js (i18n) у 2026 році
|
|
5
5
|
description: "Дізнайтеся, як зробити ваш вебсайт на Next.js 15 (App Router) багатомовним. Дотримуйтеся документації, щоб інтернаціоналізувати (i18n) та перекласти його."
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
3
|
updatedAt: 2025-12-30
|
|
4
|
-
title: Next.js i18n - Як перекласти
|
|
4
|
+
title: Next.js i18n - Як перекласти додаток Next.js 14 у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш сайт на Next.js 14 з App Router багатомовним. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) та перекласти його.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -45,7 +45,7 @@ history:
|
|
|
45
45
|
|
|
46
46
|
## Що таке Intlayer?
|
|
47
47
|
|
|
48
|
-
**Intlayer
|
|
48
|
+
**Intlayer**, інноваційна відкрита бібліотека інтернаціоналізації (i18n), створена для спрощення підтримки кількох мов у сучасних вебзастосунках. Intlayer безшовно інтегрується з останнім фреймворком **Next.js 14**, включаючи його потужний **App Router**. Вона оптимізована для роботи з **Server Components** для ефективного рендерингу і повністю сумісна з [**Turbopack**](https://nextjs.org/docs/architecture/turbopack) (з Next.js >= 15).
|
|
49
49
|
|
|
50
50
|
With Intlayer, you can:
|
|
51
51
|
|
|
@@ -64,7 +64,7 @@ With Intlayer, you can:
|
|
|
64
64
|
<iframe
|
|
65
65
|
src="https://stackblitz.com/github/aymericzip/intlayer-next-14-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
66
66
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
67
|
-
title="Демонстрація CodeSandbox
|
|
67
|
+
title="Демонстрація CodeSandbox. Як інтернаціоналізувати ваш додаток за допомогою Intlayer"
|
|
68
68
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
69
69
|
loading="lazy"
|
|
70
70
|
/>
|
|
@@ -363,7 +363,7 @@ const LocaleLayout = ({ children, params: { locale } }) => (
|
|
|
363
363
|
module.exports = LocaleLayout;
|
|
364
364
|
```
|
|
365
365
|
|
|
366
|
-
> Сегмент шляху `[locale]` використовується для визначення локалі. Наприклад: `/en-US/about` відповідатиме `en-US`, а `/fr/about
|
|
366
|
+
> Сегмент шляху `[locale]` використовується для визначення локалі. Наприклад: `/en-US/about` відповідатиме `en-US`, а `/fr/about`, `fr`.
|
|
367
367
|
|
|
368
368
|
> На цьому етапі ви зіткнетеся з помилкою: `Error: Missing <html> and <body> tags in the root layout.`. Це очікувано, оскільки файл `/app/page.tsx` більше не використовується і його можна видалити. Натомість сегмент шляху `[locale]` активує сторінку `/app/[locale]/page.tsx`. Внаслідок цього сторінки будуть доступні за шляхами типу `/en`, `/fr`, `/es` у вашому браузері. Щоб встановити локаль за замовчуванням як кореневу сторінку, зверніться до налаштування `middleware` у кроці 4.
|
|
369
369
|
|
|
@@ -1199,7 +1199,7 @@ module.exports = robots;
|
|
|
1199
1199
|
|
|
1200
1200
|
### (Необов'язково) Крок 10: Зміна мови вашого контенту
|
|
1201
1201
|
|
|
1202
|
-
Щоб змінити мову вашого контенту в Next.js, рекомендований
|
|
1202
|
+
Щоб змінити мову вашого контенту в Next.js, рекомендований спосіб, використовувати компонент `Link` для перенаправлення користувачів на відповідну локалізовану сторінку. Компонент `Link` дозволяє попередньо завантажувати сторінку (prefetch), що допомагає уникнути повного перезавантаження сторінки.
|
|
1203
1203
|
|
|
1204
1204
|
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
1205
1205
|
"use client";
|
|
@@ -1285,19 +1285,19 @@ const LocaleSwitcher = () => {
|
|
|
1285
1285
|
replace // Гарантує, що кнопка браузера «назад» перенаправлятиме на попередню сторінку
|
|
1286
1286
|
>
|
|
1287
1287
|
<span>
|
|
1288
|
-
{/*
|
|
1288
|
+
{/* Локаль, наприклад FR */}
|
|
1289
1289
|
{localeItem}
|
|
1290
1290
|
</span>
|
|
1291
1291
|
<span>
|
|
1292
|
-
{/* Мова у власній
|
|
1292
|
+
{/* Мова у власній локалі, наприклад Français */}
|
|
1293
1293
|
{getLocaleName(localeItem, locale)}
|
|
1294
1294
|
</span>
|
|
1295
1295
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1296
|
-
{/* Мова в поточному
|
|
1296
|
+
{/* Мова в поточному локалі, наприклад Francés при встановленому Locales.SPANISH */}
|
|
1297
1297
|
{getLocaleName(localeItem)}
|
|
1298
1298
|
</span>
|
|
1299
1299
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1300
|
-
{/* Мова
|
|
1300
|
+
{/* Мова англійською, наприклад French */}
|
|
1301
1301
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1302
1302
|
</span>
|
|
1303
1303
|
</Link>
|
|
@@ -1361,7 +1361,7 @@ const LocaleSwitcher = () => {
|
|
|
1361
1361
|
};
|
|
1362
1362
|
```
|
|
1363
1363
|
|
|
1364
|
-
> Альтернативний
|
|
1364
|
+
> Альтернативний спосіб, використати функцію `setLocale`, надану хуком `useLocale`. Ця функція не дозволяє prefetching сторінки. Див. документацію хуку [`useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/next-intlayer/useLocale.md) для детальнішої інформації.
|
|
1365
1365
|
|
|
1366
1366
|
> Ви також можете вказати функцію в опції `onLocaleChange`, щоб викликати власну функцію при зміні локалі.
|
|
1367
1367
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-25
|
|
3
3
|
updatedAt: 2025-12-30
|
|
4
|
-
title: Next.js i18n - Як перекласти
|
|
4
|
+
title: Next.js i18n - Як перекласти додаток Next.js 15 у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш вебсайт на Next.js 15 багатомовним. Дотримуйтесь документації для інтернаціоналізації (i18n) та перекладу.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -74,7 +74,7 @@ history:
|
|
|
74
74
|
|
|
75
75
|
## Що таке Intlayer?
|
|
76
76
|
|
|
77
|
-
**Intlayer
|
|
77
|
+
**Intlayer**, інноваційна бібліотека для інтернаціоналізації (i18n) з відкритим кодом, створена для спрощення багатомовної підтримки в сучасних веб‑додатках. Intlayer плавно інтегрується з останньою версією **Next.js 15**, включаючи його потужний **App Router**. Вона оптимізована для роботи з **Server Components** для ефективного рендерингу і повністю сумісна з [**Turbopack**](https://nextjs.org/docs/architecture/turbopack).
|
|
78
78
|
|
|
79
79
|
З Intlayer ви можете:
|
|
80
80
|
|
|
@@ -101,7 +101,7 @@ history:
|
|
|
101
101
|
<iframe
|
|
102
102
|
src="https://stackblitz.com/github/aymericzip/intlayer-next-15-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
103
103
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
104
|
-
title="Демо CodeSandbox
|
|
104
|
+
title="Демо CodeSandbox. Як інтернаціоналізувати ваш застосунок за допомогою Intlayer"
|
|
105
105
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
106
106
|
loading="lazy"
|
|
107
107
|
/>
|
|
@@ -395,7 +395,7 @@ const LocaleLayout = async ({ children, params: { locale } }) => {
|
|
|
395
395
|
module.exports = LocaleLayout;
|
|
396
396
|
```
|
|
397
397
|
|
|
398
|
-
> Сегмент шляху `[locale]` використовується для визначення локалі. Приклад: `/en-US/about` відповідатиме `en-US`, а `/fr/about
|
|
398
|
+
> Сегмент шляху `[locale]` використовується для визначення локалі. Приклад: `/en-US/about` відповідатиме `en-US`, а `/fr/about`, `fr`.
|
|
399
399
|
|
|
400
400
|
> На цьому етапі ви зіткнетесь з помилкою: `Error: Missing <html> and <body> tags in the root layout.`. Це очікувано, оскільки файл `/app/page.tsx` більше не використовується і його можна видалити. Натомість сегмент шляху `[locale]` активуватиме сторінку `/app/[locale]/page.tsx`. Отже, сторінки будуть доступні за шляхами на кшталт `/en`, `/fr`, `/es` у вашому браузері. Щоб встановити локаль за замовчуванням для кореневої сторінки, зверніться до налаштування `middleware` у кроці 7.
|
|
401
401
|
|
|
@@ -525,7 +525,7 @@ module.exports = pageContent;
|
|
|
525
525
|
}
|
|
526
526
|
```
|
|
527
527
|
|
|
528
|
-
> Декларації контенту можна визначати будь-де у вашому застосунку, якщо вони включені в директорію `contentDir` (за
|
|
528
|
+
> Декларації контенту можна визначати будь-де у вашому застосунку, якщо вони включені в директорію `contentDir` (за замовчуванням, `./src`). І вони повинні відповідати розширенню файлу декларації контенту (за замовчуванням, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
|
|
529
529
|
|
|
530
530
|
> Для детальнішої інформації зверніться до [документації щодо декларації контенту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
|
|
531
531
|
|
|
@@ -1390,19 +1390,19 @@ export const LocaleSwitcher: FC = () => {
|
|
|
1390
1390
|
replace // Гарантує, що кнопка «назад» в браузері перенаправлятиме на попередню сторінку
|
|
1391
1391
|
>
|
|
1392
1392
|
<span>
|
|
1393
|
-
{/*
|
|
1393
|
+
{/* Локаль, наприклад, FR */}
|
|
1394
1394
|
{localeItem}
|
|
1395
1395
|
</span>
|
|
1396
1396
|
<span>
|
|
1397
|
-
{/* Мова у власній
|
|
1397
|
+
{/* Мова у власній локалі, наприклад, Français */}
|
|
1398
1398
|
{getLocaleName(localeItem, locale)}
|
|
1399
1399
|
</span>
|
|
1400
1400
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1401
|
-
{/* Мова у поточній
|
|
1401
|
+
{/* Мова у поточній локалі, наприклад, Francés коли поточна локаль встановлена на Locales.SPANISH */}
|
|
1402
1402
|
{getLocaleName(localeItem)}
|
|
1403
1403
|
</span>
|
|
1404
1404
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1405
|
-
{/* Мова
|
|
1405
|
+
{/* Мова англійською, наприклад, French */}
|
|
1406
1406
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1407
1407
|
</span>
|
|
1408
1408
|
</Link>
|
|
@@ -1412,19 +1412,19 @@ export const LocaleSwitcher: FC = () => {
|
|
|
1412
1412
|
);
|
|
1413
1413
|
};
|
|
1414
1414
|
<span>
|
|
1415
|
-
{/*
|
|
1415
|
+
{/* Локаль, наприклад: FR */}
|
|
1416
1416
|
{localeItem}
|
|
1417
1417
|
</span>
|
|
1418
1418
|
<span>
|
|
1419
|
-
{/* Назва мови в її власній
|
|
1419
|
+
{/* Назва мови в її власній локалі, наприклад: Français */}
|
|
1420
1420
|
{getLocaleName(localeItem, locale)}
|
|
1421
1421
|
</span>
|
|
1422
1422
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1423
|
-
{/* Назва мови в поточній
|
|
1423
|
+
{/* Назва мови в поточній локалі, наприклад: Francés при поточній локалі Locales.SPANISH */}
|
|
1424
1424
|
{getLocaleName(localeItem)}
|
|
1425
1425
|
</span>
|
|
1426
1426
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1427
|
-
{/* Назва мови
|
|
1427
|
+
{/* Назва мови англійською, наприклад: French */}
|
|
1428
1428
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1429
1429
|
</span>
|
|
1430
1430
|
</Link>
|
|
@@ -1492,19 +1492,19 @@ export const LocaleSwitcher = () => {
|
|
|
1492
1492
|
replace // Це гарантує, що кнопка "назад" в браузері перенаправить на попередню сторінку
|
|
1493
1493
|
>
|
|
1494
1494
|
<span>
|
|
1495
|
-
{/*
|
|
1495
|
+
{/* Локаль, напр., FR */}
|
|
1496
1496
|
{localeItem}
|
|
1497
1497
|
</span>
|
|
1498
1498
|
<span>
|
|
1499
|
-
{/* Мова у власній
|
|
1499
|
+
{/* Мова у власній локалі, напр., Français */}
|
|
1500
1500
|
{getLocaleName(localeItem, locale)}
|
|
1501
1501
|
</span>
|
|
1502
1502
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1503
|
-
{/* Мова у поточній
|
|
1503
|
+
{/* Мова у поточній локалі, напр., Francés коли поточна локаль встановлена в Locales.SPANISH */}
|
|
1504
1504
|
{getLocaleName(localeItem)}
|
|
1505
1505
|
</span>
|
|
1506
1506
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1507
|
-
{/* Назва мови
|
|
1507
|
+
{/* Назва мови англійською, напр., French */}
|
|
1508
1508
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1509
1509
|
key={localeItem}
|
|
1510
1510
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
@@ -1590,19 +1590,19 @@ export const LocaleSwitcher = () => {
|
|
|
1590
1590
|
replace // Це гарантує, що кнопка браузера "назад" перенаправлятиме на попередню сторінку
|
|
1591
1591
|
>
|
|
1592
1592
|
<span>
|
|
1593
|
-
{/*
|
|
1593
|
+
{/* Локаль, наприклад FR */}
|
|
1594
1594
|
{localeItem}
|
|
1595
1595
|
</span>
|
|
1596
1596
|
<span>
|
|
1597
|
-
{/* Назва мови у власній
|
|
1597
|
+
{/* Назва мови у власній локалі, наприклад Français */}
|
|
1598
1598
|
{getLocaleName(localeItem, locale)}
|
|
1599
1599
|
</span>
|
|
1600
1600
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1601
|
-
{/* Назва мови у поточній
|
|
1601
|
+
{/* Назва мови у поточній локалі, наприклад Francés, коли поточна локаль встановлена на Locales.SPANISH */}
|
|
1602
1602
|
{getLocaleName(localeItem)}
|
|
1603
1603
|
</span>
|
|
1604
1604
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1605
|
-
{/* Мова
|
|
1605
|
+
{/* Мова англійською, наприклад French */}
|
|
1606
1606
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1607
1607
|
</span>
|
|
1608
1608
|
</Link>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
3
|
updatedAt: 2025-12-30
|
|
4
|
-
title: Next.js i18n - Як перекласти
|
|
4
|
+
title: Next.js i18n - Як перекласти додаток Next.js 16 у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш вебсайт на Next.js 16 багатомовним. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) та перекласти його.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -57,7 +57,7 @@ history:
|
|
|
57
57
|
|
|
58
58
|
## Що таке Intlayer?
|
|
59
59
|
|
|
60
|
-
**Intlayer
|
|
60
|
+
**Intlayer**, це інноваційна бібліотека інтернаціоналізації (i18n) з відкритим вихідним кодом, розроблена для спрощення багатомовної підтримки в сучасних вебдодатках. Intlayer безшовно інтегрується з останнім фреймворком **Next.js 16**, включаючи його потужний **App Router**. Він оптимізований для роботи з **Server Components** для ефективного рендерингу та повністю сумісний з [**Turbopack**](https://nextjs.org/docs/architecture/turbopack).
|
|
61
61
|
|
|
62
62
|
За допомогою Intlayer ви можете:
|
|
63
63
|
|
|
@@ -361,7 +361,7 @@ const LocaleLayout = async ({ children, params: { locale } }) => {
|
|
|
361
361
|
module.exports = LocaleLayout;
|
|
362
362
|
```
|
|
363
363
|
|
|
364
|
-
> Сегмент шляху `[locale]` використовується для визначення локалі. Приклад: `/en-US/about` посилатиметься на `en-US`, а `/fr/about
|
|
364
|
+
> Сегмент шляху `[locale]` використовується для визначення локалі. Приклад: `/en-US/about` посилатиметься на `en-US`, а `/fr/about`, на `fr`.
|
|
365
365
|
|
|
366
366
|
> На цьому етапі ви зіткнетеся з помилкою: `Error: Missing <html> and <body> tags in the root layout.`. Це очікувано, оскільки файл `/app/page.tsx` більше не використовується і його можна видалити. Замість цього сегмент шляху `[locale]` активує сторінку `/app/[locale]/page.tsx`. Отже, сторінки будуть доступні за такими шляхами, як `/en`, `/fr`, `/es` у вашому браузері. Щоб встановити локаль за замовчуванням як кореневу сторінку, зверніться до налаштування `proxy` на кроці 7.
|
|
367
367
|
|
|
@@ -708,6 +708,8 @@ const ServerComponentExample = () => {
|
|
|
708
708
|
|
|
709
709
|
> Щоб дізнатися більше про хук `useIntlayer`, зверніться до [документації](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/next-intlayer/useIntlayer.md).
|
|
710
710
|
|
|
711
|
+
> Якщо ваш застосунок уже існує, ви можете скористатися [Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md) у поєднанні з [командой extract](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/extract.md), щоб перетворити тисячі компонентів за одну секунду.
|
|
712
|
+
|
|
711
713
|
### (Опціонально) Крок 7: Налаштуйте проксі для виявлення локалі
|
|
712
714
|
|
|
713
715
|
Налаштуйте проксі для виявлення бажаної локалі користувача:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-10
|
|
3
3
|
updatedAt: 2026-01-10
|
|
4
|
-
title: Next.js i18n - Перетворення існуючого додатка Next.js на багатомовний додаток
|
|
4
|
+
title: Next.js i18n - Перетворення існуючого додатка Next.js на багатомовний додаток у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш існуючий додаток Next.js багатомовним за допомогою Intlayer Compiler. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) та перекласти ваш додаток за допомогою ШІ.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -14,9 +14,9 @@ keywords:
|
|
|
14
14
|
- ШІ
|
|
15
15
|
slugs:
|
|
16
16
|
- doc
|
|
17
|
-
-
|
|
17
|
+
- environment
|
|
18
18
|
- nextjs
|
|
19
|
-
-
|
|
19
|
+
- compiler
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-no-lolale-path-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
22
22
|
history:
|
|
@@ -127,9 +127,26 @@ const config: IntlayerConfig = {
|
|
|
127
127
|
mode: "search-params",
|
|
128
128
|
},
|
|
129
129
|
compiler: {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
132
|
+
*/
|
|
133
|
+
enabled: true,
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Вихідний каталог для оптимізованих словників.
|
|
137
|
+
*/
|
|
138
|
+
outputDir: "compiler",
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Префікс ключа словника
|
|
142
|
+
*/
|
|
143
|
+
dictionaryKeyPrefix: "", // Видалити базовий префікс
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Вказує, чи повинні компоненти зберігатися після трансформації.
|
|
147
|
+
* Таким чином, компілятор можна запустити один раз для трансформації додатка, після чого його можна видалити.
|
|
148
|
+
*/
|
|
149
|
+
saveComponents: false,
|
|
133
150
|
},
|
|
134
151
|
ai: {
|
|
135
152
|
provider: "openai",
|
|
@@ -352,7 +369,7 @@ export const config = {
|
|
|
352
369
|
|
|
353
370
|
### (Необов'язково) Крок 9: Зміна мови контенту
|
|
354
371
|
|
|
355
|
-
Найбільш рекомендований спосіб зміни мови контенту в Next.js
|
|
372
|
+
Найбільш рекомендований спосіб зміни мови контенту в Next.js, використання компонента `Link` для направлення користувача на маршрут з відповідною мовою. Це використовує функцію prefetch фреймворку Next.js і дозволяє уникнути жорсткого перезавантаження сторінки.
|
|
356
373
|
|
|
357
374
|
```tsx fileName="src/components/localeSwitcher/LocaleSwitcher.tsx"
|
|
358
375
|
"use client";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-10
|
|
3
3
|
updatedAt: 2026-01-10
|
|
4
|
-
title: Next.js i18n - Як перекласти
|
|
4
|
+
title: Next.js i18n - Як перекласти додаток Next.js 16 (без [locale] у шляху сторінки) у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш сайт Next.js 16 багатомовним без [locale] у шляху сторінки. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) його та перекласти.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalization
|
|
@@ -52,7 +52,7 @@ history:
|
|
|
52
52
|
|
|
53
53
|
## Що таке Intlayer?
|
|
54
54
|
|
|
55
|
-
**Intlayer
|
|
55
|
+
**Intlayer**, інноваційна відкрита бібліотека інтернаціоналізації (i18n), створена для спрощення підтримки багатомовності в сучасних вебзастосунках. Intlayer безшовно інтегрується з останньою версією фреймворку **Next.js 16**, включно з його потужним **App Router**. Вона оптимізована для роботи з **Server Components** для ефективного рендерингу і повністю сумісна з [**Turbopack**](https://nextjs.org/docs/architecture/turbopack).
|
|
56
56
|
|
|
57
57
|
З Intlayer ви можете:
|
|
58
58
|
|
|
@@ -415,7 +415,7 @@ const metadataContent = {
|
|
|
415
415
|
export default metadataContent;
|
|
416
416
|
```
|
|
417
417
|
|
|
418
|
-
```tsx fileName="src/app/metadata.content.mjs" contentDeclarationFormat="
|
|
418
|
+
```tsx fileName="src/app/metadata.content.mjs" contentDeclarationFormat="esm"
|
|
419
419
|
import { t, type Dictionary } from "intlayer";
|
|
420
420
|
|
|
421
421
|
/** @type {import('intlayer').Dictionary<import('next').Metadata>} */
|
|
@@ -879,7 +879,7 @@ export const proxy = multipleProxies([intlayerProxy, customProxy]);
|
|
|
879
879
|
|
|
880
880
|
### (Необов'язково) Крок 8: Змініть мову вашого контенту
|
|
881
881
|
|
|
882
|
-
Щоб змінити мову вашого контенту в Next.js, рекомендований
|
|
882
|
+
Щоб змінити мову вашого контенту в Next.js, рекомендований спосіб, використовувати компонент Link для перенаправлення користувачів на відповідну локалізовану сторінку. Компонент Link забезпечує prefetch сторінки, що допомагає уникнути повного перезавантаження сторінки.
|
|
883
883
|
|
|
884
884
|
```tsx fileName="src/components/localeSwitcher/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
885
885
|
"use client";
|
|
@@ -904,19 +904,19 @@ export const LocaleSwitcher: FC = () => {
|
|
|
904
904
|
onClick={() => setLocale(localeItem)}
|
|
905
905
|
>
|
|
906
906
|
<span>
|
|
907
|
-
{/*
|
|
907
|
+
{/* Локаль, напр., FR */}
|
|
908
908
|
{localeItem}
|
|
909
909
|
</span>
|
|
910
910
|
<span>
|
|
911
|
-
{/* Мова у власній
|
|
911
|
+
{/* Мова у власній локалі, напр., Français */}
|
|
912
912
|
{getLocaleName(localeItem, locale)}
|
|
913
913
|
</span>
|
|
914
914
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
915
|
-
{/* Мова в поточній
|
|
915
|
+
{/* Мова в поточній локалі, напр., Francés коли поточна локаль встановлена на Locales.SPANISH */}
|
|
916
916
|
{getLocaleName(localeItem)}
|
|
917
917
|
</span>
|
|
918
918
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
919
|
-
{/* Мова
|
|
919
|
+
{/* Мова англійською, наприклад, French */}
|
|
920
920
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
921
921
|
</span>
|
|
922
922
|
</button>
|
|
@@ -995,19 +995,19 @@ export const LocaleSwitcher = () => {
|
|
|
995
995
|
onClick={() => setLocale(localeItem)}
|
|
996
996
|
>
|
|
997
997
|
<span>
|
|
998
|
-
{/*
|
|
998
|
+
{/* Локаль, наприклад FR */}
|
|
999
999
|
{localeItem}
|
|
1000
1000
|
</span>
|
|
1001
1001
|
<span>
|
|
1002
|
-
{/* Назва мови у власній
|
|
1002
|
+
{/* Назва мови у власній локалі, наприклад Français */}
|
|
1003
1003
|
{getLocaleName(localeItem, locale)}
|
|
1004
1004
|
</span>
|
|
1005
1005
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1006
|
-
{/* Назва мови в поточній
|
|
1006
|
+
{/* Назва мови в поточній локалі, наприклад Francés, коли поточна локаль встановлена на Locales.SPANISH */}
|
|
1007
1007
|
{getLocaleName(localeItem)}
|
|
1008
1008
|
</span>
|
|
1009
1009
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1010
|
-
{/* Назва мови
|
|
1010
|
+
{/* Назва мови англійською, наприклад French */}
|
|
1011
1011
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1012
1012
|
</span>
|
|
1013
1013
|
</button>
|
|
@@ -1018,7 +1018,7 @@ export const LocaleSwitcher = () => {
|
|
|
1018
1018
|
};
|
|
1019
1019
|
```
|
|
1020
1020
|
|
|
1021
|
-
> Альтернативний
|
|
1021
|
+
> Альтернативний спосіб, використати функцію `setLocale`, яку надає хук `useLocale`. Ця функція не дозволяє виконувати prefetch сторінки. Детальніше див. документацію хуку [`useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/next-intlayer/useLocale.md).
|
|
1022
1022
|
|
|
1023
1023
|
> Посилання на документацію:
|
|
1024
1024
|
>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-07
|
|
3
3
|
updatedAt: 2025-12-30
|
|
4
|
-
title: Next.js Page Router i18n - Як перекласти
|
|
4
|
+
title: Next.js Page Router i18n - Як перекласти додаток Next.js у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш вебсайт на Next.js з Page Router багатомовним. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) і перекласти його.
|
|
6
6
|
keywords:
|
|
7
7
|
- Інтернаціоналізація
|
|
@@ -36,7 +36,7 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Що таке Intlayer?
|
|
38
38
|
|
|
39
|
-
**Intlayer
|
|
39
|
+
**Intlayer**, інноваційна open-source бібліотека інтернаціоналізації (i18n), створена для спрощення підтримки багатомовності в сучасних вебдодатках. Intlayer безшовно інтегрується з останніми версіями **Next.js**, включно з традиційним **Page Router**.
|
|
40
40
|
|
|
41
41
|
За допомогою Intlayer ви можете:
|
|
42
42
|
|
|
@@ -1155,19 +1155,19 @@ const LocaleSwitcher: FC = () => {
|
|
|
1155
1155
|
onClick={() => setLocale(localeItem)}
|
|
1156
1156
|
>
|
|
1157
1157
|
<span>
|
|
1158
|
-
{/*
|
|
1158
|
+
{/* Локаль, наприклад FR */}
|
|
1159
1159
|
{localeItem}
|
|
1160
1160
|
</span>
|
|
1161
1161
|
<span>
|
|
1162
|
-
{/* Мова у власній
|
|
1162
|
+
{/* Мова у власній локалі, наприклад Français */}
|
|
1163
1163
|
{getLocaleName(localeItem, locale)}
|
|
1164
1164
|
</span>
|
|
1165
1165
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1166
|
-
{/* Мова в поточній
|
|
1166
|
+
{/* Мова в поточній локалі, наприклад Francés, коли поточна локаль встановлена на Locales.SPANISH */}
|
|
1167
1167
|
{getLocaleName(localeItem)}
|
|
1168
1168
|
</span>
|
|
1169
1169
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1170
|
-
{/* Мова
|
|
1170
|
+
{/* Мова англійською, наприклад French */}
|
|
1171
1171
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1172
1172
|
</span>
|
|
1173
1173
|
</Link>
|
|
@@ -1212,11 +1212,11 @@ const LocaleSwitcher = () => {
|
|
|
1212
1212
|
{getLocaleName(localeItem, locale)}
|
|
1213
1213
|
</span>
|
|
1214
1214
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1215
|
-
{/* Мова в поточній
|
|
1215
|
+
{/* Мова в поточній локалі, наприклад, Francés при поточній локалі Locales.SPANISH */}
|
|
1216
1216
|
{getLocaleName(localeItem)}
|
|
1217
1217
|
</span>
|
|
1218
1218
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1219
|
-
{/* Мова
|
|
1219
|
+
{/* Мова англійською, наприклад, French */}
|
|
1220
1220
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1221
1221
|
</span>
|
|
1222
1222
|
</Link>
|
|
@@ -1274,7 +1274,7 @@ const LocaleSwitcher = () => {
|
|
|
1274
1274
|
};
|
|
1275
1275
|
```
|
|
1276
1276
|
|
|
1277
|
-
> Альтернативний
|
|
1277
|
+
> Альтернативний спосіб, використати функцію `setLocale`, яку надає хук `useLocale`. Ця функція не дозволяє попереднє завантаження (prefetch) сторінки і призведе до перезавантаження сторінки.
|
|
1278
1278
|
|
|
1279
1279
|
> У такому випадку, без перенаправлення через `router.push`, змінить локаль вмісту лише ваш серверний код.
|
|
1280
1280
|
|