@intlayer/docs 8.1.6 → 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 +20 -12
- 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/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.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/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.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/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/agent_skills.md +2 -0
- package/docs/ar/compiler.md +81 -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 +498 -0
- 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 +385 -0
- 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/ar/readme.md +138 -110
- package/docs/de/agent_skills.md +2 -0
- package/docs/de/cli/init.md +1 -1
- package/docs/de/compiler.md +79 -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 +498 -0
- 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 +385 -0
- 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/de/readme.md +152 -124
- package/docs/en/agent_skills.md +2 -0
- package/docs/en/compiler.md +80 -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 +498 -0
- 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 +385 -0
- 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/readme.md +129 -105
- package/docs/en-GB/agent_skills.md +2 -0
- package/docs/en-GB/cli/init.md +1 -1
- package/docs/en-GB/compiler.md +81 -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 +481 -0
- 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 +368 -0
- 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 +134 -108
- package/docs/es/agent_skills.md +2 -0
- package/docs/es/compiler.md +79 -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 +498 -0
- 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 +385 -0
- 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/es/readme.md +149 -121
- package/docs/fr/agent_skills.md +2 -0
- package/docs/fr/compiler.md +82 -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 +498 -0
- 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 +385 -0
- 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/fr/readme.md +150 -122
- package/docs/hi/agent_skills.md +2 -0
- package/docs/hi/cli/init.md +1 -1
- package/docs/hi/compiler.md +81 -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 +498 -0
- 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 +386 -0
- 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/hi/readme.md +153 -125
- package/docs/id/agent_skills.md +2 -0
- package/docs/id/compiler.md +79 -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 +498 -0
- 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 +385 -0
- 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/id/readme.md +133 -105
- package/docs/it/agent_skills.md +2 -0
- package/docs/it/compiler.md +81 -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 +498 -0
- 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 +390 -0
- 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/it/readme.md +155 -127
- package/docs/ja/agent_skills.md +2 -0
- package/docs/ja/cli/init.md +1 -1
- package/docs/ja/compiler.md +79 -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 +498 -0
- 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 +385 -0
- 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/ja/readme.md +152 -126
- package/docs/ko/agent_skills.md +2 -0
- package/docs/ko/cli/init.md +1 -1
- package/docs/ko/compiler.md +79 -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 +481 -0
- 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 +368 -0
- 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/ko/readme.md +154 -126
- package/docs/pl/agent_skills.md +2 -0
- package/docs/pl/cli/init.md +1 -1
- package/docs/pl/compiler.md +79 -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 +498 -0
- 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 +385 -0
- 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/readme.md +134 -106
- 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 +80 -2
- 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 +498 -0
- 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 +390 -0
- 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/pt/readme.md +154 -126
- 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 +82 -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 +498 -0
- 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 +385 -0
- 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 +138 -110
- 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 +81 -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 +498 -0
- 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 +391 -0
- 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/tr/readme.md +139 -111
- 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 +82 -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 +498 -0
- 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 +385 -0
- 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 +135 -111
- 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 +80 -2
- 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 +498 -0
- 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 +385 -0
- 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 +138 -110
- package/docs/vi/releases/v8.md +2 -2
- package/docs/zh/agent_skills.md +2 -0
- package/docs/zh/compiler.md +79 -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 +498 -0
- 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 +388 -0
- 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/docs/zh/readme.md +148 -120
- 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 +7 -8
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +40 -0
|
@@ -52,7 +52,21 @@ Aşağıda, Vue uygulamalarınıza uluslararasılaştırmayı dahil etmek için
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> Web sitesi: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**Genel Bakış**
|
|
60
|
+
**Intlayer**, **Vue** dahil olmak üzere birden fazla framework genelinde çoklu dil desteğini basitleştirmeyi amaçlayan açık kaynaklı bir i18n çözümüdür. Bildirimsel bir yaklaşımı, güçlü tiplemeyi ve standart Vue'da yaygın olmasa da diğer ekosistemlerdeki SSR desteğini vurgular.
|
|
61
|
+
|
|
62
|
+
**Temel Özellikler**
|
|
63
|
+
|
|
64
|
+
- **Bildirimsel Çeviri**: Daha temiz bir mimari için çeviri sözlüklerini bileşen düzeyinde veya merkezi bir dosyada tanımlayın.
|
|
65
|
+
- **TypeScript ve Otomatik Tamamlama (Web)**: Bu özellik temel olarak web frameworklerine fayda sağlasa da, tiplendirilmiş çeviri yaklaşımı Vue'da yapılandırılmış kod yazımına hala rehberlik edebilir.
|
|
66
|
+
- **Asenkron Yükleme**: Çeviri varlıklarını dinamik olarak yükleyerek çok dilli uygulamalar için başlangıç paket boyutunu potansiyel olarak azaltın.
|
|
67
|
+
- **Vue ile Entegrasyon**: Yapılandırılmış çeviriler için Intlayer yaklaşımından yararlanmak üzere temel bir entegrasyon kurulabilir.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> Website: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ Aşağıda, Vue uygulamalarınıza uluslararasılaştırmayı dahil etmek için
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (Vue Entegrasyonu)
|
|
87
101
|
|
|
88
102
|
> Website: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|
|
@@ -54,7 +54,7 @@ Her çok dilli uygulamanın uygulaması gereken kontrol listesi:
|
|
|
54
54
|
- **Yerelleştirilmiş bağlantılar kullanın**
|
|
55
55
|
Örnek: Varsayılan `/about` yerine `<a href="/fr/about">À propos</a>` kullanın.
|
|
56
56
|
|
|
57
|
-
Bunlar basit adımlar
|
|
57
|
+
Bunlar basit adımlar, ancak atlanmaları görünürlüğünüzü kaybetmenize neden olabilir.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -95,7 +95,7 @@ Bu trade-off (parça boyutu vs örtüşme) RAG verimliliği için anahtardır:
|
|
|
95
95
|
|
|
96
96
|
## Adım 3: Embeddings Oluşturma
|
|
97
97
|
|
|
98
|
-
Dokümanlar parçalandıktan sonra, **embeddings** oluştururuz
|
|
98
|
+
Dokümanlar parçalandıktan sonra, **embeddings** oluştururuz, her parçayı temsil eden yüksek boyutlu vektörler.
|
|
99
99
|
|
|
100
100
|
OpenAI'nin text-embedding-3-large modelini kullandım, ama herhangi bir modern embedding modelini kullanabilirsiniz.
|
|
101
101
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Аргументи за та проти компіляторного i18n
|
|
22
22
|
|
|
23
|
-
Якщо ви будуєте вебдодатки більше ніж десятиліття, ви знаєте, що інтернаціоналізація (i18n) завжди була точкою тертя. Зазвичай це завдання, яке ніхто не хоче
|
|
23
|
+
Якщо ви будуєте вебдодатки більше ніж десятиліття, ви знаєте, що інтернаціоналізація (i18n) завжди була точкою тертя. Зазвичай це завдання, яке ніхто не хоче виконувати, витягування рядків, керування JSON-файлами та турботи про правила множини.
|
|
24
24
|
|
|
25
|
-
Нещодавно з'явилася нова хвиля **"Compiler-based" i18n tools**, які обіцяють зробити цей біль минулим. Пропозиція приваблива: **Просто вписуйте текст у ваші компоненти, а build tool зробить усе інше.** Жодних ключів, жодних
|
|
25
|
+
Нещодавно з'явилася нова хвиля **"Compiler-based" i18n tools**, які обіцяють зробити цей біль минулим. Пропозиція приваблива: **Просто вписуйте текст у ваші компоненти, а build tool зробить усе інше.** Жодних ключів, жодних імпортів, лише магія.
|
|
26
26
|
|
|
27
27
|
Але, як і з усіма абстракціями в software engineering, магія має свою ціну.
|
|
28
28
|
|
|
@@ -68,7 +68,7 @@ slugs:
|
|
|
68
68
|
|
|
69
69
|
Хоча **Intlayer** є рішенням, яке в основі заохочує **декларативний підхід** до вашого контенту, воно включає компілятор, щоб пришвидшити розробку або полегшити швидке прототипування.
|
|
70
70
|
|
|
71
|
-
Компілятор Intlayer обходить AST (Abstract Syntax Tree) ваших компонентів React, Vue або Svelte, а також інші файли JavaScript/TypeScript. Його
|
|
71
|
+
Компілятор Intlayer обходить AST (Abstract Syntax Tree) ваших компонентів React, Vue або Svelte, а також інші файли JavaScript/TypeScript. Його роль, виявляти жорстко закодовані рядки та витягувати їх у спеціальні декларації `.content`.
|
|
72
72
|
|
|
73
73
|
> Для детальнішої інформації перегляньте документацію: [Документація компілятора Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md)
|
|
74
74
|
|
|
@@ -82,14 +82,14 @@ slugs:
|
|
|
82
82
|
|
|
83
83
|
### 2. Місія порятунку для legacy-коду
|
|
84
84
|
|
|
85
|
-
Уявіть, що ви успадкували величезну codebase з 5 000 компонентів і жодного перекладу. Оснащення цього вручну на основі
|
|
85
|
+
Уявіть, що ви успадкували величезну codebase з 5 000 компонентів і жодного перекладу. Оснащення цього вручну на основі ключів, це кошмар на кілька місяців роботи. Інструмент на базі компілятора виступає як стратегія порятунку, миттєво витягуючи тисячі рядків, не вимагаючи від вас жодного ручного редагування файлів.
|
|
86
86
|
|
|
87
87
|
### 3. Ера AI
|
|
88
88
|
|
|
89
89
|
Це сучасна перевага, яку не варто ігнорувати. AI coding assistants (наприклад, Copilot або ChatGPT) природно генерують стандартний JSX/HTML. Вони не знають вашої конкретної схеми ключів для перекладів.
|
|
90
90
|
|
|
91
91
|
- **Declarative:** Вам доведеться переписувати вихідний код, згенерований AI, замінюючи текст на ключі.
|
|
92
|
-
- **Compiler:** Ви копіюєте та вставляєте код від AI
|
|
92
|
+
- **Compiler:** Ви копіюєте та вставляєте код від AI, і все працює одразу.
|
|
93
93
|
|
|
94
94
|
## Перевірка реальності: чому «магія» небезпечна
|
|
95
95
|
|
|
@@ -97,11 +97,11 @@ slugs:
|
|
|
97
97
|
|
|
98
98
|
### Евристична крихкість (гра вгадування)
|
|
99
99
|
|
|
100
|
-
Компілятор має вгадувати, що є контентом, а
|
|
100
|
+
Компілятор має вгадувати, що є контентом, а що, кодом. Це призводить до крайніх випадків, де ви в кінцевому підсумку "боретеся" з інструментом.
|
|
101
101
|
|
|
102
102
|
Розгляньте ці сценарії:
|
|
103
103
|
|
|
104
|
-
- Чи буде витягнуто `<span className="active"></span>`? (Це рядок, але скоріше за
|
|
104
|
+
- Чи буде витягнуто `<span className="active"></span>`? (Це рядок, але скоріше за все, клас).
|
|
105
105
|
- Чи буде витягнуто `<span status="pending"></span>`? (Це значення пропса).
|
|
106
106
|
- Чи буде витягнуто `<span>{"Hello World"}</span>`? (Це JS-вираз).
|
|
107
107
|
- Чи буде витягнуто `<span>Hello {name}. How are you?</span>`? (Інтерполяція складна).
|
|
@@ -183,7 +183,7 @@ Intlayer використовує комбінований підхід для
|
|
|
183
183
|
|
|
184
184
|
Чесно кажучи, традиційний декларативний підхід теж не ідеальний. У нього є свої «підводні камені».
|
|
185
185
|
|
|
186
|
-
1. **Пекло неймспейсів:** Часто доводиться вручну керувати тим, які JSON-файли завантажувати (`common.json`, `dashboard.json`, `footer.json`). Якщо забути
|
|
186
|
+
1. **Пекло неймспейсів:** Часто доводиться вручну керувати тим, які JSON-файли завантажувати (`common.json`, `dashboard.json`, `footer.json`). Якщо забути один, користувач побачить сирі ключі.
|
|
187
187
|
2. **Надмірне завантаження:** Без ретельної конфігурації дуже легко випадково завантажити _усі_ ваші ключі перекладу для _всіх_ сторінок при початковому завантаженні, що роздутує розмір вашого бандла.
|
|
188
188
|
3. **Дрейф синхронізації:** Часто ключі залишаються в JSON-файлі задовго після того, як компонент, який їх використовував, був видалений. Ваші файли перекладів ростуть нескінченно, заповнені "zombie keys."
|
|
189
189
|
|
|
@@ -199,23 +199,23 @@ Intlayer пропонує змішаний підхід, який дозволя
|
|
|
199
199
|
|
|
200
200
|
1. **Гранулярність:** Ви зберігаєте переклади поруч із компонентами (підвищуючи модульність і ефективність tree-shaking).
|
|
201
201
|
2. **Безпека:** Переклад стає явним кодом, а не прихованою магією на етапі збірки.
|
|
202
|
-
3. **Відсутність lock-in:** Оскільки код перетворюється в декларативну структуру у вашому репозиторії, ви можете легко натиснути Tab або скористатися Copilot вашого IDE, щоб згенерувати декларації
|
|
202
|
+
3. **Відсутність lock-in:** Оскільки код перетворюється в декларативну структуру у вашому репозиторії, ви можете легко натиснути Tab або скористатися Copilot вашого IDE, щоб згенерувати декларації контенту, ви не ховаєте логіку в плагіні webpack.
|
|
203
203
|
|
|
204
204
|
## Висновок
|
|
205
205
|
|
|
206
206
|
Отже, що обрати?
|
|
207
207
|
|
|
208
208
|
**Якщо ви створюєте MVP або хочете рухатися швидко:**
|
|
209
|
-
Підхід на основі
|
|
209
|
+
Підхід на основі компілятора, цілком прийнятний вибір. Він дозволяє працювати надзвичайно швидко. Вам не потрібно хвилюватися про структури файлів чи ключі. Ви просто розробляєте. Технічний борг, це проблема «майбутнього вас».
|
|
210
210
|
|
|
211
211
|
**Якщо ви Junior Developer або вам не важлива оптимізація:**
|
|
212
|
-
Якщо ви прагнете мінімального ручного управління, підхід на основі компілятора, ймовірно, найкращий. Вам не доведеться самостійно працювати з ключами чи файлами
|
|
212
|
+
Якщо ви прагнете мінімального ручного управління, підхід на основі компілятора, ймовірно, найкращий. Вам не доведеться самостійно працювати з ключами чи файлами перекладів, просто пишіть текст, а компілятор автоматизує решту. Це зменшує зусилля налаштування й типові помилки i18n, пов'язані з ручними кроками.
|
|
213
213
|
|
|
214
214
|
**Якщо ви інтернаціоналізуєте існуючий проєкт, який уже містить тисячі компонентів для рефакторингу:**
|
|
215
215
|
Підхід, заснований на компіляторі, може бути прагматичним вибором у цій ситуації. Початкова фаза витягування може заощадити тижні або місяці ручної роботи. Однак розгляньте використання інструмента, такого як команда Intlayer `transform`, яка може витягувати рядки й перетворювати їх на явні декларативні оголошення контенту. Це дає вам швидкість автоматизації, одночасно зберігаючи безпеку та портативність декларативного підходу. Ви отримуєте найкраще з обох світів: швидку початкову міграцію без довгострокового архітектурного боргу.
|
|
216
216
|
|
|
217
217
|
**Якщо ви розробляєте професійний додаток корпоративного рівня:**
|
|
218
|
-
«Магія»
|
|
218
|
+
«Магія» зазвичай, погана ідея. Вам потрібен контроль.
|
|
219
219
|
|
|
220
220
|
- Потрібно обробляти динамічні дані з бекендів.
|
|
221
221
|
- Потрібно забезпечити продуктивність на слабких пристроях (уникати hook explosions).
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "Значення i18n: Що таке інтернаціоналізація та чому вона важлива?"
|
|
5
|
+
description: "Дізнайтеся справжнє значення i18n у розробці програмного забезпечення. Дізнайтеся, що таке інтернаціоналізація, чому вона скорочується як i18n та як вона впливає на глобальне охоплення."
|
|
6
|
+
keywords:
|
|
7
|
+
- значення i18n
|
|
8
|
+
- що означає i18n
|
|
9
|
+
- i18n
|
|
10
|
+
- інтернаціоналізація
|
|
11
|
+
- локалізація
|
|
12
|
+
- блог
|
|
13
|
+
- веб-розробка
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Значення i18n: Що таке інтернаціоналізація та чому вона важлива?
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## Розуміння "значення i18n"
|
|
24
|
+
|
|
25
|
+
Якщо ви займаєтеся розробкою програмного забезпечення, веб-дизайном або цифровим маркетингом, ви напевно стикалися з терміном **i18n**. Справжнє **значення i18n**, це просто нумеронім для слова **internationalization** (інтернаціоналізація).
|
|
26
|
+
|
|
27
|
+
Але чому "i18n"? Абревіатура створюється шляхом взяття першої літери слова "internationalization" (**i**), останньої літери (**n**) і підрахунку кількості літер між ними (**18**). Ця конвенція часто використовується в технологічній індустрії для скорочення довгих, громіздких термінів (інший поширений приклад, **l10n** для локалізації - localization).
|
|
28
|
+
|
|
29
|
+
З технічної точки зору **значення i18n** відноситься до процесу проектування та підготовки програмного додатка, веб-сайту або продукту таким чином, щоб вони могли легко підтримувати кілька мов, регіональних норм і культурних традицій, і все це без необхідності внесення істотних інженерних змін у базовий вихідний код.
|
|
30
|
+
|
|
31
|
+
## Основне значення i18n на практиці
|
|
32
|
+
|
|
33
|
+
Розуміння значення i18n виходить за межі простого знання того, що означає ця абревіатура. Йдеться про визнання архітектурних принципів, що лежать в її основі. Коли проект належним чином "інтернаціоналізований", це означає, що розробники відокремили контент від коду.
|
|
34
|
+
|
|
35
|
+
Замість того, щоб жорстко прописувати текст у додатку таким чином:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>Надіслати</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Додаток, готовий до i18n, використовує ключі перекладу або змінні:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Це гарантує, що додаток може динамічно завантажувати правильний словник мови (наприклад, англійську, іспанську, японську) залежно від уподобань користувача, без перезапису компонента.
|
|
48
|
+
|
|
49
|
+
## Чому значення i18n має вирішальне значення для вашого бізнесу
|
|
50
|
+
|
|
51
|
+
Усвідомлення **значення i18n**, це лише перший крок. Розуміння того, _чому_ це так важливо для сучасних цифрових продуктів,, ось що відрізняє успішні глобальні додатки від локальних.
|
|
52
|
+
|
|
53
|
+
### Подолання мовних бар'єрів
|
|
54
|
+
|
|
55
|
+
Найбільш очевидним застосуванням значення i18n є переклад. Інтернаціоналізуючи свій додаток з першого дня, ви створюєте основу, яка дозволяє вам безперешкодно перекладати свій інтерфейс на десятки мов. Це необхідно для освоєння нових глобальних ринків.
|
|
56
|
+
|
|
57
|
+
### Культурна та регіональна адаптація
|
|
58
|
+
|
|
59
|
+
Значення i18n виходить за межі мови. Справжня інтернаціоналізація підтримує:
|
|
60
|
+
|
|
61
|
+
- **Формати дати і часу:** Відображення `MM/DD/YYYY` для користувачів із США проти `DD.MM.YYYY` для європейських користувачів.
|
|
62
|
+
- **Форматування чисел:** Визнання того, що `1,000.50` в США часто пишеться як `1.000,50` в частині Європи.
|
|
63
|
+
- **Валюти:** Адаптація `$99.00` проти `99,00 €`.
|
|
64
|
+
- **Напрямок тексту:** Підтримка мов із написанням справа наліво (RTL), таких як арабська та іврит.
|
|
65
|
+
|
|
66
|
+
### Поліпшення показників SEO
|
|
67
|
+
|
|
68
|
+
Пошукові системи віддають пріоритет контенту, який відповідає мові та регіону користувача. Застосування принципів, що лежать в основі значення i18n, дозволяє вам структурувати свій веб-сайт (наприклад, використовуючи теги `hreflang`, локалізовані URL-адреси) таким чином, щоб він займав вищі позиції в результатах пошуку в кількох країнах, залучаючи органічний глобальний трафік.
|
|
69
|
+
|
|
70
|
+
## Інтернаціоналізація (i18n) проти локалізації (l10n)
|
|
71
|
+
|
|
72
|
+
Щоб повністю зрозуміти **значення i18n**, необхідно відрізняти його від **l10n** (локалізації).
|
|
73
|
+
|
|
74
|
+
- **i18n (Інтернаціоналізація):** Це _технічна підготовка_ та структура проектування, які роблять адаптацію можливою. Приклади: підтримка кодування UTF-8, абстрагування текстових рядків та забезпечення гнучкості макетів інтерфейсу користувача для довгих слів.
|
|
75
|
+
- **l10n (Локалізація):** Це _безпосередня адаптація_ продукту для конкретного регіону (locale). Приклади: переклад тексту з англійської на українську, коригування зображень відповідно до культурних норм і встановлення місцевої валюти.
|
|
76
|
+
|
|
77
|
+
Уявіть **i18n** як створення автомобіля, в якому кермо можна переставити як на ліву, так і на праву сторону. **l10n**, це сама дія з перестановки керма на праву сторону для продажу автомобіля у Великобританії.
|
|
78
|
+
|
|
79
|
+
## Поширені помилки щодо значення i18n
|
|
80
|
+
|
|
81
|
+
1. **"i18n, це просто переклад".**
|
|
82
|
+
Хоча переклад є великою частиною кінцевого результату, справжнє значення i18n охоплює форматування, правила множини, напрямок тексту та архітектурну готовність.
|
|
83
|
+
2. **"Ми можемо додати i18n пізніше".**
|
|
84
|
+
Доопрацювання додатка для інтернаціоналізації постфактум, завдання надзвичайно складне. Жорстко закодовані рядки, жорсткі компоненти інтерфейсу користувача та несумісні формати дат можуть призвести до величезного технічного боргу. Планування i18n з самого початку, це фундаментальна краща практика.
|
|
85
|
+
|
|
86
|
+
## Як ефективно впровадити i18n
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
Тепер, коли ми встановили справжнє **значення i18n**, як його застосувати?
|
|
91
|
+
|
|
92
|
+
- **Використовуйте перевірений фреймворк i18n:** Не винайдіть велосипед. Незалежно від того, чи використовуєте ви React, Vue, Next.js або чистий JavaScript, існують спеціальні бібліотеки i18n, призначені для виконання важкої роботи (такої як плюралізація та інтерполяція).
|
|
93
|
+
- **Абстрагуйте весь текст, звернений до користувача:** Переконайтеся, що у ваших компонентах інтерфейсу користувача немає жорстко закодованого тексту.
|
|
94
|
+
- **Використовуйте надійну систему управління перекладами:** Такі інструменти, як **Intlayer**, скорочують розрив між розробниками та перекладачами. Intlayer діє як headless CMS, яка тісно інтегрована з вашою кодовою базою, дозволяючи контент-менеджерам візуально оновлювати переклади без необхідності запуску нового білду розробником.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Список бібліотек та інструментів i18n за технологіями
|
|
99
|
+
|
|
100
|
+
Якщо ви шукаєте список бібліотек та інструментів i18n для конкретної технології, ознайомтеся з наступними ресурсами:
|
|
101
|
+
|
|
102
|
+
### Для систем управління контентом (CMS)
|
|
103
|
+
|
|
104
|
+
- WordPress: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- Wix: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- Drupal: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### Для JavaScript-додатків (Frontend)
|
|
109
|
+
|
|
110
|
+
- React: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- Angular: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- Vue: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- Svelte: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- React Native: [Список бібліотек та інструментів i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Висновок
|
|
119
|
+
|
|
120
|
+
**Значення i18n** є основоположною концепцією для будь-якого сучасного цифрового бізнесу, що прагне глобального впливу. Це далеко не просто химерна технічна абревіатура для слова "інтернаціоналізація", i18n представляє технічну архітектуру, необхідну для безшовного адаптування вашого програмного забезпечення до різних мов, культур і регіональних стандартів.
|
|
121
|
+
|
|
122
|
+
Розуміючи значення i18n та впроваджуючи його принципи на ранніх етапах циклу розробки, ви економите значний час інженерів, запобігаєте майбутньому технічному боргу та гарантуєте, що ваш додаток забезпечить нативний та гостинний досвід користувачам по всьому світу.
|
|
123
|
+
|
|
124
|
+
Незалежно від того, чи створюєте ви мобільний додаток, SaaS-платформу або корпоративний інструмент, прийняття справжнього значення i18n гарантує, що ваш продукт зможе адаптуватися та залучати користувачів з усього світу без необхідності постійної переробки коду. Використовуючи передові методи, надійні фреймворки та локалізоване декларування контенту за допомогою таких платформ, як Intlayer, продуктові команди можуть створювати по-справжньому глобальні програмні продукти.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-11-01
|
|
3
3
|
updatedAt: 2025-11-01
|
|
4
4
|
title: Як інтернаціоналізувати ваш додаток Next.js за допомогою next-i18next
|
|
5
|
-
description: Налаштуйте i18n з next-i18next
|
|
5
|
+
description: Налаштуйте i18n з next-i18next, найкращі практики та поради з SEO для багатомовних застосунків Next.js, що охоплюють інтернаціоналізацію, організацію контенту та технічне налаштування.
|
|
6
6
|
keywords:
|
|
7
7
|
- next-i18next
|
|
8
8
|
- i18next
|
|
@@ -29,12 +29,12 @@ history:
|
|
|
29
29
|
|
|
30
30
|
## Що таке next-i18next?
|
|
31
31
|
|
|
32
|
-
**next-i18next
|
|
32
|
+
**next-i18next**, популярне рішення для інтернаціоналізації (i18n) застосунків Next.js. Хоча оригінальний пакет `next-i18next` був розроблений для Pages Router, цей посібник показує, як реалізувати i18next з сучасним **App Router**, використовуючи безпосередньо `i18next` і `react-i18next`.
|
|
33
33
|
|
|
34
34
|
За допомогою цього підходу ви можете:
|
|
35
35
|
|
|
36
36
|
- **Організовувати переклади** за допомогою просторів імен (namespaces) (наприклад, `common.json`, `about.json`) для кращого керування контентом.
|
|
37
|
-
- **Завантажувати переклади
|
|
37
|
+
- **Завантажувати переклади ефективно**, завантажуючи лише ті простори імен, які потрібні для кожної сторінки, що зменшує розмір бандла.
|
|
38
38
|
- **Підтримувати як серверні, так і клієнтські компоненти** з правильною обробкою SSR та гідратації.
|
|
39
39
|
- **Забезпечити підтримку TypeScript** з типобезпечною конфігурацією локалі та ключів перекладу.
|
|
40
40
|
- **Оптимізуйте для SEO** з правильними метаданими, sitemap та інтернаціоналізацією robots.txt.
|
|
@@ -78,7 +78,7 @@ history:
|
|
|
78
78
|
<iframe
|
|
79
79
|
src="https://stackblitz.com/github/aymericzip/next-i18next-template?embed=1&ctl=1&file=src/app/i18n.ts"
|
|
80
80
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
81
|
-
title="Демонстрація CodeSandbox
|
|
81
|
+
title="Демонстрація CodeSandbox, як інтернаціоналізувати ваш застосунок за допомогою Intlayer"
|
|
82
82
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
83
83
|
loading="lazy"
|
|
84
84
|
|
|
@@ -320,7 +320,7 @@ const backend = resourcesToBackend(
|
|
|
320
320
|
type Props = {
|
|
321
321
|
locale: string;
|
|
322
322
|
namespaces?: readonly Namespace[];
|
|
323
|
-
// Попередньо завантажені ресурси з сервера (запобігає FOUC
|
|
323
|
+
// Попередньо завантажені ресурси з сервера (запобігає FOUC, мерехтінню неперекладеного вмісту)
|
|
324
324
|
// Формат: { namespace: translationBundle }
|
|
325
325
|
resources?: Record<Namespace, ResourceLanguage>;
|
|
326
326
|
children: React.ReactNode;
|
|
@@ -386,7 +386,7 @@ export default function I18nProvider({
|
|
|
386
386
|
import type { ReactNode } from "react";
|
|
387
387
|
import { locales, defaultLocale, isRtl, type Locale } from "@/i18n.config";
|
|
388
388
|
|
|
389
|
-
// Вимкнути динамічні
|
|
389
|
+
// Вимкнути динамічні параметри, усі локалі повинні бути відомі на етапі збірки
|
|
390
390
|
// Це забезпечує статичну генерацію для всіх маршрутів локалей
|
|
391
391
|
export const dynamicParams = false;
|
|
392
392
|
|
|
@@ -532,7 +532,7 @@ export default async function AboutPage({
|
|
|
532
532
|
|
|
533
533
|
// Витягнути бандли перекладів з екземпляра i18n
|
|
534
534
|
// Ці дані передаються в I18nProvider для гідратації i18n на клієнті
|
|
535
|
-
// Запобігає FOUC (Flash of Untranslated Content
|
|
535
|
+
// Запобігає FOUC (Flash of Untranslated Content, миготінню неперекладеного вмісту) та уникає дубльованих запитів
|
|
536
536
|
const resources = Object.fromEntries(
|
|
537
537
|
pageNamespaces.map((ns) => [ns, i18n.getResourceBundle(locale, ns)])
|
|
538
538
|
) satisfies Record<Namespace, ResourceLanguage>;
|
|
@@ -820,7 +820,7 @@ export async function stuffFromServer(formData: FormData) {
|
|
|
820
820
|
|
|
821
821
|
### (Необов'язково) Крок 15: Інтернаціоналізуйте метадані
|
|
822
822
|
|
|
823
|
-
Переклад контенту важливий, але основна мета
|
|
823
|
+
Переклад контенту важливий, але основна мета інтернаціоналізації, зробити ваш вебсайт більш помітним для світу. I18n, потужний інструмент для підвищення видимості сайту завдяки належному SEO.
|
|
824
824
|
|
|
825
825
|
Правильно інтернаціоналізовані метадані допомагають пошуковим системам зрозуміти, які мови доступні на ваших сторінках. Це включає встановлення meta-тегів hreflang, переклад заголовків і описів, а також забезпечення правильного налаштування canonical URLs для кожної локалі.
|
|
826
826
|
|
|
@@ -1023,7 +1023,7 @@ export function proxy(request: NextRequest) {
|
|
|
1023
1023
|
(locale) => pathname === `/${locale}` || pathname.startsWith(`/${locale}/`)
|
|
1024
1024
|
);
|
|
1025
1025
|
|
|
1026
|
-
// Якщо префікс локалі
|
|
1026
|
+
// Якщо префікс локалі відсутній, визначаємо локаль і робимо перенаправлення
|
|
1027
1027
|
if (!hasLocale) {
|
|
1028
1028
|
// Спочатку намагаємося отримати локаль з cookie (налаштування користувача)
|
|
1029
1029
|
const cookieLocale = request.cookies.get("NEXT_LOCALE")?.value;
|
|
@@ -1061,7 +1061,7 @@ export const config = {
|
|
|
1061
1061
|
|
|
1062
1062
|
### (Необов'язково) Крок 19: Автоматизуйте ваші переклади за допомогою Intlayer
|
|
1063
1063
|
|
|
1064
|
-
Intlayer
|
|
1064
|
+
Intlayer, це **безкоштовна** та **з відкритим вихідним кодом** бібліотека, створена для допомоги у процесі локалізації вашого застосунку. Поки i18next відповідає за завантаження та управління перекладами, Intlayer допомагає автоматизувати робочий процес перекладів.
|
|
1065
1065
|
|
|
1066
1066
|
Керування перекладами вручну може займати багато часу й бути схильним до помилок. Intlayer автоматизує тестування, генерацію та керування перекладами, заощаджуючи ваш час і забезпечуючи послідовність у всьому додатку.
|
|
1067
1067
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-11-01
|
|
3
3
|
updatedAt: 2025-11-01
|
|
4
4
|
title: Як інтернаціоналізувати ваш додаток Next.js за допомогою next-intl у 2025 році
|
|
5
|
-
description: Налаштування i18n за допомогою next-intl
|
|
5
|
+
description: Налаштування i18n за допомогою next-intl, найкращі практики та поради з SEO для багатомовних додатків Next.js, що охоплюють інтернаціоналізацію, організацію контенту та технічну конфігурацію.
|
|
6
6
|
keywords:
|
|
7
7
|
- next-intl
|
|
8
8
|
- Інтернаціоналізація
|
|
@@ -28,7 +28,7 @@ history:
|
|
|
28
28
|
|
|
29
29
|
## Що таке next-intl?
|
|
30
30
|
|
|
31
|
-
**next-intl
|
|
31
|
+
**next-intl**, популярна бібліотека для інтернаціоналізації (i18n), спеціально створена для Next.js App Router. Вона забезпечує зручний спосіб створення багатомовних додатків на Next.js з відмінною підтримкою TypeScript і вбудованими оптимізаціями.
|
|
32
32
|
|
|
33
33
|
> Якщо бажаєте, також можете звернутися до [посібника next-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/i18n_using_next-i18next.md), або безпосередньо використати [Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_with_next-intl.md).
|
|
34
34
|
|
|
@@ -70,7 +70,7 @@ history:
|
|
|
70
70
|
<iframe
|
|
71
71
|
src="https://stackblitz.com/github/aymericzip/next-intl-template?embed=1&ctl=1&file=src/i18n.ts"
|
|
72
72
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
73
|
-
title="Демо CodeSandbox
|
|
73
|
+
title="Демо CodeSandbox. Як інтернаціоналізувати ваш застосунок за допомогою Intlayer"
|
|
74
74
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
75
75
|
loading="lazy"
|
|
76
76
|
/>
|
|
@@ -235,7 +235,7 @@ export default function LocaleLayout({
|
|
|
235
235
|
children: ReactNode;
|
|
236
236
|
params: Promise<{ locale: string }>;
|
|
237
237
|
}) {
|
|
238
|
-
// У Next.js App Router, params
|
|
238
|
+
// У Next.js App Router, params, це Promise (можна використовувати await)
|
|
239
239
|
// Це дозволяє асинхронно вирішувати динамічні сегменти маршруту
|
|
240
240
|
const { locale } = await params;
|
|
241
241
|
|
|
@@ -408,7 +408,7 @@ import { useTranslations, useFormatter } from "next-intl";
|
|
|
408
408
|
|
|
409
409
|
const ClientComponent = () => {
|
|
410
410
|
// Застосувати область безпосередньо до вкладеного об'єкта
|
|
411
|
-
// useTranslations/useFormatter
|
|
411
|
+
// useTranslations/useFormatter, це хуки, які читають контекст NextIntlClientProvider
|
|
412
412
|
// Вони працюють лише якщо компонент обгорнутий у NextIntlClientProvider
|
|
413
413
|
const t = useTranslations("about.counter");
|
|
414
414
|
const format = useFormatter();
|
|
@@ -569,7 +569,7 @@ export async function handleContactForm(formData: FormData) {
|
|
|
569
569
|
|
|
570
570
|
### (Необов'язково) Крок 11: Інтернаціоналізуйте свої метадані
|
|
571
571
|
|
|
572
|
-
Переклад контенту важливий, але головна мета
|
|
572
|
+
Переклад контенту важливий, але головна мета інтернаціоналізації, зробити ваш вебсайт більш помітним у світі. I18n, неймовірний важіль для підвищення видимості вашого вебсайту за допомогою правильної SEO.
|
|
573
573
|
|
|
574
574
|
Коректно інтернаціоналізовані метадані допомагають пошуковим системам зрозуміти, якими мовами доступні ваші сторінки. Це включає встановлення meta-тегів hreflang, переклад заголовків і описів, а також забезпечення правильності canonical URL для кожної локалі.
|
|
575
575
|
|
|
@@ -735,7 +735,7 @@ declare module "next-intl" {
|
|
|
735
735
|
|
|
736
736
|
### (Необов'язково) Крок 15: Автоматизуйте переклади за допомогою Intlayer
|
|
737
737
|
|
|
738
|
-
Intlayer
|
|
738
|
+
Intlayer, це **безкоштовна** та **відкрита** бібліотека, створена для полегшення процесу локалізації у вашому застосунку. У той час як next-intl відповідає за завантаження та управління перекладами, Intlayer допомагає автоматизувати робочий процес перекладів.
|
|
739
739
|
|
|
740
740
|
Ручне керування перекладами може займати багато часу та бути схильним до помилок. Intlayer автоматизує тестування, генерацію та управління перекладами, заощаджуючи ваш час і забезпечуючи узгодженість у всьому застосунку.
|
|
741
741
|
|
|
@@ -18,7 +18,7 @@ slugs:
|
|
|
18
18
|
|
|
19
19
|
# SEO та I18n: остаточний посібник зі створення багатомовного вебсайту
|
|
20
20
|
|
|
21
|
-
Хочете охопити більше користувачів у світі? Зробити ваш вебсайт
|
|
21
|
+
Хочете охопити більше користувачів у світі? Зробити ваш вебсайт багатомовним, один із найкращих способів розширити аудиторію та покращити SEO (Search Engine Optimization). У цьому дописі блогу ми розкладемо по поличках основи міжнародного SEO, часто званого **i18n** (скорочення від "internationalization"), простими та зрозумілими словами. Ви дізнаєтеся про ключові рішення, які потрібно прийняти, як використовувати технічні елементи, такі як `hreflang`, і чому інструменти на кшталт **Intlayer** можуть спростити ваші багатомовні проєкти на Next.js.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -57,13 +57,13 @@ slugs:
|
|
|
57
57
|
|
|
58
58
|
### 3.1. Що таке Hreflang?
|
|
59
59
|
|
|
60
|
-
Коли у вас є ідентичний або дуже схожий вміст кількома мовами, пошукові системи, такі як Google, можуть заплутатися щодо того, яку версію показувати користувачеві. **Hreflang
|
|
60
|
+
Коли у вас є ідентичний або дуже схожий вміст кількома мовами, пошукові системи, такі як Google, можуть заплутатися щодо того, яку версію показувати користувачеві. **Hreflang**, це атрибут HTML, який вказує пошуковим системам, для якої мови (та регіону) призначена конкретна сторінка, а також які альтернативні мовні/регіональні сторінки існують.
|
|
61
61
|
|
|
62
62
|
### 3.2. Чому це важливо?
|
|
63
63
|
|
|
64
64
|
1. Це запобігає проблемам з **дублюванням контенту** (коли пошукові системи вважають, що ви публікуєте один і той же вміст кілька разів).
|
|
65
65
|
2. Це гарантує, що **франкомовні користувачі бачать французьку версію**, **іспаномовні користувачі бачать іспанську версію** та інші відповідні варіанти.
|
|
66
|
-
3. Це покращує загальний досвід
|
|
66
|
+
3. Це покращує загальний досвід користувача, підвищує залученість і покращує позиції в пошуковій видачі.
|
|
67
67
|
|
|
68
68
|
### 3.3. Як використовувати Hreflang у тегу `<head>`
|
|
69
69
|
|
|
@@ -79,7 +79,7 @@ slugs:
|
|
|
79
79
|
- **`hreflang="en"`**: Вказує на англомовну версію сторінки.
|
|
80
80
|
- **`hreflang="fr"`**: Вказує на французьку версію сторінки.
|
|
81
81
|
- **`hreflang="es"`**: Вказує на іспаномовну версію сторінки.
|
|
82
|
-
- **`hreflang="x-default"`**: «fallback
|
|
82
|
+
- **`hreflang="x-default"`**: «fallback», запасна мова або URL за замовчуванням, коли жодна з інших мов не відповідає вподобанням користувача.
|
|
83
83
|
|
|
84
84
|
> **Коротке зауваження:** Переконайтеся, що URL-адреси в цих тегах ведуть безпосередньо на фінальну сторінку, без будь-яких додаткових редиректів.
|
|
85
85
|
|
|
@@ -151,7 +151,7 @@ slugs:
|
|
|
151
151
|
### 7.1. Auto-Redirect or a Language Selector?
|
|
152
152
|
|
|
153
153
|
- **Автоматичне перенаправлення** (на основі IP або налаштувань браузера) може бути зручним, але воно може направляти мандрівників або користувачів із VPN на неправильну версію.
|
|
154
|
-
- **Селектор мови** часто є більш
|
|
154
|
+
- **Селектор мови** часто є більш прозорим, користувачі можуть самі вибрати свою мову, якщо автоматично визначена мова неправильна.
|
|
155
155
|
|
|
156
156
|
Ось спрощений приклад Next.js + Intlayer:
|
|
157
157
|
|
|
@@ -195,19 +195,19 @@ const LocaleSwitcher: FC = () => {
|
|
|
195
195
|
}}
|
|
196
196
|
>
|
|
197
197
|
<span>
|
|
198
|
-
{/*
|
|
198
|
+
{/* Локаль, наприклад FR */}
|
|
199
199
|
{localeItem}
|
|
200
200
|
</span>
|
|
201
201
|
<span>
|
|
202
|
-
{/* Назва мови у власній
|
|
202
|
+
{/* Назва мови у власній локалі, наприклад Français */}
|
|
203
203
|
{getLocaleName(localeItem, locale)}
|
|
204
204
|
</span>
|
|
205
205
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
206
|
-
{/* Мова у поточній
|
|
206
|
+
{/* Мова у поточній локалі, наприклад «Francés», коли поточна локаль встановлена на Locales.SPANISH */}
|
|
207
207
|
{getLocaleName(localeItem)}
|
|
208
208
|
</span>
|
|
209
209
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
210
|
-
{/* Мова
|
|
210
|
+
{/* Мова англійською, наприклад «French» */}
|
|
211
211
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
212
212
|
</span>
|
|
213
213
|
</a>
|
|
@@ -266,8 +266,8 @@ const LocaleSwitcher: FC = () => {
|
|
|
266
266
|
|
|
267
267
|
## Підсумок
|
|
268
268
|
|
|
269
|
-
Створення багатомовного
|
|
269
|
+
Створення багатомовного вебсайту, це не лише переклад тексту. Йдеться про ефективну структуру URL-адрес, використання тегів `hreflang`, щоб допомогти пошуковим системам показувати правильну версію, і забезпечення відмінного користувацького досвіду з локалізованими візуалами, селекторами мови та послідовною навігацією. Дотримання цих найкращих практик підготує вас до успіху на світових ринках, підвищить задоволеність користувачів і, зрештою, покращить SEO-показники в різних регіонах.
|
|
270
270
|
|
|
271
|
-
Якщо ви використовуєте Next.js (особливо App Router у Next.js 13+), інструмент на кшталт **Intlayer** може оптимізувати увесь цей процес. Він допомагає з
|
|
271
|
+
Якщо ви використовуєте Next.js (особливо App Router у Next.js 13+), інструмент на кшталт **Intlayer** може оптимізувати увесь цей процес. Він допомагає з усього, від генерації локалізованих sitemaps до автоматичного керування `hreflang` лінками, визначення мови та іншого, щоб ви могли зосередитися на створенні якісного багатомовного контенту.
|
|
272
272
|
|
|
273
273
|
**Готові вийти на глобальний рівень?** Почніть впроваджувати ці стратегії SEO та i18n вже зараз і спостерігайте, як нові відвідувачі з усього світу знаходять і взаємодіють з вашим сайтом!
|
|
@@ -45,7 +45,7 @@ history:
|
|
|
45
45
|
|
|
46
46
|
## Що таке Intlayer?
|
|
47
47
|
|
|
48
|
-
**Intlayer
|
|
48
|
+
**Intlayer**, інноваційна open-source бібліотека для інтернаціоналізації, створена для вирішення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до керування контентом у JavaScript-додатках.
|
|
49
49
|
|
|
50
50
|
Дивіться конкретне порівняння з i18next у нашому дописі в блозі «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
|
|
51
51
|
|
|
@@ -62,7 +62,7 @@ Intlayer пропонує широкий набір розширених фун
|
|
|
62
62
|
|
|
63
63
|
Однак, **i18next** залишається відмінним і широко застосовуваним рішенням для i18n завдяки своїй **дозрілій екосистемі**, **широкій підтримці спільноти** та **широкій сумісності з плагінами**.
|
|
64
64
|
|
|
65
|
-
Поєднавши **Intlayer** з **i18next**, ви отримуєте найкраще з обох
|
|
65
|
+
Поєднавши **Intlayer** з **i18next**, ви отримуєте найкраще з обох світів, стабільність і зрілість екосистеми i18next разом із сучасним керуванням контентом, автоматизацією та покращенням developer experience від Intlayer.
|
|
66
66
|
|
|
67
67
|
Цей посібник пояснює, як використовувати Intlayer як **адаптер для i18next**, що дозволяє вам:
|
|
68
68
|
|
|
@@ -38,7 +38,7 @@ history:
|
|
|
38
38
|
|
|
39
39
|
## Що таке Intlayer?
|
|
40
40
|
|
|
41
|
-
**Intlayer
|
|
41
|
+
**Intlayer**, інноваційна open-source бібліотека для інтернаціоналізації, створена для усунення недоліків традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у додатках Next.js.
|
|
42
42
|
|
|
43
43
|
Перегляньте конкретне порівняння з next-intl у нашому дописі в блозі [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).
|
|
44
44
|
|
|
@@ -55,7 +55,7 @@ Intlayer пропонує широкий набір **розширених мо
|
|
|
55
55
|
|
|
56
56
|
Однак **i18next** залишається відмінним та широко застосовуваним рішенням для i18n завдяки своїй **зрілій екосистемі**, **широкій підтримці спільноти** та **великій сумісності з плагінами**.
|
|
57
57
|
|
|
58
|
-
Поєднавши **Intlayer** з **i18next**, ви отримуєте найкраще з обох
|
|
58
|
+
Поєднавши **Intlayer** з **i18next**, ви отримуєте найкраще з обох світів, стабільність та зрілість екосистеми i18next разом із сучасним керуванням контентом, автоматизацією та покращеним досвідом розробника від Intlayer.
|
|
59
59
|
|
|
60
60
|
Цей посібник пояснює, як використовувати Intlayer як **адаптер для i18next**, що дозволяє вам:
|
|
61
61
|
|
|
@@ -127,7 +127,7 @@ export default config;
|
|
|
127
127
|
Якщо ви хочете, щоб ці JSON-файли співіснували з файлами декларації контенту Intlayer (`.content` файли), Intlayer працюватиме таким чином:
|
|
128
128
|
|
|
129
129
|
1. завантажити як JSON-файли, так і файли декларації контенту й перетворити їх на словник Intlayer.
|
|
130
|
-
2. якщо виникають конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Результат залежить від пріоритету плагінів та пріоритету файлу декларації
|
|
130
|
+
2. якщо виникають конфлікти між JSON та файлами декларації контенту, Intlayer виконає злиття всіх словників. Результат залежить від пріоритету плагінів та пріоритету файлу декларації контенту, обидва параметри конфігуровані.
|
|
131
131
|
|
|
132
132
|
Якщо зміни вносяться за допомогою CLI для перекладу JSON або через CMS, Intlayer оновить JSON-файл новими перекладами.
|
|
133
133
|
|
|
@@ -37,7 +37,7 @@ history:
|
|
|
37
37
|
|
|
38
38
|
## Що таке Intlayer?
|
|
39
39
|
|
|
40
|
-
**Intlayer
|
|
40
|
+
**Intlayer**, інноваційна open-source бібліотека для інтернаціоналізації, створена щоб вирішити обмеження традиційних i18n-рішень. Вона пропонує сучасний підхід до управління контентом у додатках Next.js.
|
|
41
41
|
|
|
42
42
|
Перегляньте конкретне порівняння з next-intl у нашому дописі в блозі [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).
|
|
43
43
|
|
|
@@ -52,7 +52,7 @@ Intlayer пропонує широкий набір **розширених мо
|
|
|
52
52
|
|
|
53
53
|
Однак **next-intl** залишається відмінним і широко поширеним рішенням для i18n завдяки своїй **зрілій екосистемі**, **широкій підтримці спільноти** та **великий сумісності з плагінами**.
|
|
54
54
|
|
|
55
|
-
Поєднавши **Intlayer** з **next-intl**, ви отримуєте найкраще з обох
|
|
55
|
+
Поєднавши **Intlayer** з **next-intl**, ви отримуєте найкраще з обох світів, стабільність і зрілість екосистеми next-intl разом із сучасним управлінням контентом, автоматизацією та покращенням developer experience від Intlayer.
|
|
56
56
|
|
|
57
57
|
Цей посібник пояснює, як використовувати Intlayer як **адаптер для next-intl**, що дозволяє вам:
|
|
58
58
|
|