@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
|
@@ -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/ru/i18n_using_next-i18next.md) или использовать напрямую [Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_next-intl.md).
|
|
34
34
|
|
|
@@ -234,7 +234,7 @@ export default function LocaleLayout({
|
|
|
234
234
|
children: ReactNode;
|
|
235
235
|
params: Promise<{ locale: string }>;
|
|
236
236
|
}) {
|
|
237
|
-
// В Next.js App Router params
|
|
237
|
+
// В Next.js App Router params, это Promise (можно использовать await)
|
|
238
238
|
// Это позволяет динамическим сегментам маршрута разрешаться асинхронно
|
|
239
239
|
const { locale } = await params;
|
|
240
240
|
|
|
@@ -345,7 +345,7 @@ export default async function AboutPage({
|
|
|
345
345
|
|
|
346
346
|
Создайте компонент страницы, который загружает переводы на сервере и передает их как серверным, так и клиентским компонентам. Это гарантирует, что переводы загружены до рендеринга и предотвращает мерцание контента.
|
|
347
347
|
|
|
348
|
-
Загрузка переводов на стороне сервера улучшает SEO и предотвращает FOUC (Flash of Untranslated Content
|
|
348
|
+
Загрузка переводов на стороне сервера улучшает SEO и предотвращает FOUC (Flash of Untranslated Content, мерцание непереведенного контента). Используя `pick` для передачи только необходимых пространств имен клиентскому провайдеру, мы минимизируем размер JavaScript-бандла, отправляемого в браузер.
|
|
349
349
|
|
|
350
350
|
```tsx fileName="src/app/[locale]/about/page.tsx"
|
|
351
351
|
import { getTranslations, getMessages, getFormatter } from "next-intl/server";
|
|
@@ -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
|
Правильно интернационализированные метаданные помогают поисковым системам понять, какие языки доступны на ваших страницах. Это включает установку метатегов hreflang, перевод заголовков и описаний, а также обеспечение корректной установки канонических URL для каждой локали.
|
|
575
575
|
|
|
@@ -741,7 +741,7 @@ declare module "next-intl" {
|
|
|
741
741
|
|
|
742
742
|
### (Опционально) Шаг 15: Автоматизация переводов с помощью Intlayer
|
|
743
743
|
|
|
744
|
-
Intlayer
|
|
744
|
+
Intlayer, это **бесплатная** и **открытая** библиотека, предназначенная для помощи в процессе локализации вашего приложения. В то время как next-intl отвечает за загрузку и управление переводами, Intlayer помогает автоматизировать рабочий процесс перевода.
|
|
745
745
|
|
|
746
746
|
Управление переводами вручную может занимать много времени и быть подвержено ошибкам. Intlayer автоматизирует тестирование, генерацию и управление переводами, экономя ваше время и обеспечивая согласованность по всему приложению.
|
|
747
747
|
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Что такое Intlayer?
|
|
37
37
|
|
|
38
|
-
**Intlayer
|
|
38
|
+
**Intlayer**, это инновационная, открытая библиотека интернационализации, созданная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в JavaScript-приложениях.
|
|
39
39
|
|
|
40
40
|
Смотрите конкретное сравнение с i18next в нашем блоге [next-i18next vs. next-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md).
|
|
41
41
|
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Что такое next-i18next?
|
|
37
37
|
|
|
38
|
-
**next-i18next
|
|
38
|
+
**next-i18next**, это один из самых популярных фреймворков для интернационализации (i18n) в приложениях Next.js. Построенный на мощной экосистеме **i18next**, он предоставляет комплексное решение для управления переводами, локализацией и переключением языков в проектах Next.js.
|
|
39
39
|
|
|
40
40
|
Однако next-i18next имеет некоторые сложности:
|
|
41
41
|
|
|
@@ -46,7 +46,7 @@ history:
|
|
|
46
46
|
|
|
47
47
|
## Что такое Intlayer?
|
|
48
48
|
|
|
49
|
-
**Intlayer
|
|
49
|
+
**Intlayer**, это инновационная, открытая библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в приложениях Next.js.
|
|
50
50
|
|
|
51
51
|
Смотрите конкретное сравнение с next-intl в нашем блоге [next-i18next vs. next-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md).
|
|
52
52
|
|
|
@@ -30,7 +30,7 @@ history:
|
|
|
30
30
|
|
|
31
31
|
## Что такое Intlayer?
|
|
32
32
|
|
|
33
|
-
**Intlayer
|
|
33
|
+
**Intlayer**, это инновационная, открытая библиотека интернационализации, созданная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в приложениях Next.js.
|
|
34
34
|
|
|
35
35
|
Смотрите конкретное сравнение с next-intl в нашем блоге [next-i18next vs. next-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md).
|
|
36
36
|
|
|
@@ -33,7 +33,7 @@ history:
|
|
|
33
33
|
|
|
34
34
|
## Что такое Intlayer?
|
|
35
35
|
|
|
36
|
-
**Intlayer
|
|
36
|
+
**Intlayer**, это инновационная, с открытым исходным кодом библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в React-приложениях.
|
|
37
37
|
|
|
38
38
|
Смотрите конкретное сравнение с react-i18next в нашем блоге [react-i18next vs. react-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md).
|
|
39
39
|
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Что такое Intlayer?
|
|
37
37
|
|
|
38
|
-
**Intlayer
|
|
38
|
+
**Intlayer**, это инновационная, открытая библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в React-приложениях.
|
|
39
39
|
|
|
40
40
|
Смотрите конкретное сравнение с react-intl в нашем блоге [react-i18next vs. react-intl vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md).
|
|
41
41
|
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Что такое Intlayer?
|
|
37
37
|
|
|
38
|
-
**Intlayer
|
|
38
|
+
**Intlayer**, это инновационная, с открытым исходным кодом библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в приложениях Vue.js и Nuxt.
|
|
39
39
|
|
|
40
40
|
Смотрите конкретное сравнение с vue-i18n в нашем блоге [vue-i18n vs. Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/vue-i18n_vs_intlayer.md).
|
|
41
41
|
|
|
@@ -25,39 +25,39 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Система управления переводами (Translation Management System)
|
|
27
27
|
|
|
28
|
-
Система управления переводами (TMS)
|
|
28
|
+
Система управления переводами (TMS), это программная платформа, предназначенная для автоматизации и оптимизации процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружается, упорядочивается и назначается контент человеческим переводчикам. Она управляет рабочими процессами, хранит память переводов (чтобы не переводить одно и то же предложение дважды) и занимается доставкой переведённых файлов обратно разработчикам или контент-менеджерам.
|
|
29
29
|
|
|
30
30
|
По сути, TMS исторически была мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культуру).
|
|
31
31
|
|
|
32
32
|
# Lokalise
|
|
33
33
|
|
|
34
|
-
Lokalise
|
|
34
|
+
Lokalise, значимый игрок в современной экосистеме TMS. Основанная в 2017 году, компания появилась, чтобы нарушить рынок, уделяя большое внимание developer experience (DX) и интеграции дизайна. В отличие от старых конкурентов, Lokalise сделал ставку на аккуратный UI, мощные API и интеграции с такими инструментами, как Figma и GitHub, чтобы уменьшить трение при перемещении файлов туда и обратно.
|
|
35
35
|
|
|
36
36
|
Её успех строился на роли "дружелюбной к разработчикам" TMS: автоматизации извлечения и вставки строк, освобождая время инженеров. Она эффективно решила проблему _непрерывной локализации_ для быстро движущихся технических команд, которые хотели избавиться от ручной рассылки таблиц по электронной почте.
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Lokalise, который в основном выступает как внешний инструмент синхронизации ваших строк, Intlayer располагается ближе к вашему коду. Он контролирует весь
|
|
40
|
+
Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Lokalise, который в основном выступает как внешний инструмент синхронизации ваших строк, Intlayer располагается ближе к вашему коду. Он контролирует весь стек, от слоя сборки (bundling layer) до удалённой доставки контента, что приводит к более плавному и эффективному потоку контента.
|
|
41
41
|
|
|
42
42
|
## Почему парадигмы изменились с появлением AI?
|
|
43
43
|
|
|
44
|
-
Lokalise довёл до совершенства «DevOps»-сторону
|
|
44
|
+
Lokalise довёл до совершенства «DevOps»-сторону локализации, автоматическое перемещение строк. Однако появление Large Language Models (LLMs) фундаментально сместило парадигмы локализации. Узким местом больше не является _перемещение_ строк; им стало _создание_ этих строк.
|
|
45
45
|
|
|
46
46
|
С появлением LLMs стоимость перевода резко упала, а скорость выполнения выросла экспоненциально. Роль команды локализации смещается с «управления переводчиками» к «управлению контекстом и проверкой».
|
|
47
47
|
|
|
48
48
|
Хотя Lokalise добавил AI‑функции, по сути это остаётся платформой, предназначенной для управления человеческими рабочими процессами и взимания платы за «seat» или по количеству ключей. В мире, ориентированном на AI, ценность заключается в том, насколько хорошо вы умеете оркестровать ваши AI‑модели для генерации контента, учитывающего контекст, а не только в том, насколько просто поручить задачу человеческому агентству.
|
|
49
49
|
|
|
50
|
-
Сегодня наиболее эффективный рабочий
|
|
50
|
+
Сегодня наиболее эффективный рабочий процесс, сначала переводить и позиционировать ваши страницы глобально с помощью AI. Затем, на втором этапе, вы привлекаете человеческих копирайтеров для оптимизации конкретного контента с высоким трафиком, чтобы повысить конверсию, когда продукт уже начинает приносить доход.
|
|
51
51
|
|
|
52
|
-
## Почему Intlayer
|
|
52
|
+
## Почему Intlayer, хорошая альтернатива Lokalise?
|
|
53
53
|
|
|
54
|
-
Intlayer
|
|
54
|
+
Intlayer, решение, рождённое в эпоху AI. Оно было спроектировано с принципом, что сырый перевод, это товар, но _контекст_, король.
|
|
55
55
|
|
|
56
56
|
Lokalise часто критикуют за крутые уровни ценообразования, которые могут стать непомерно дорогими по мере роста стартапа. Intlayer придерживается иного подхода:
|
|
57
57
|
|
|
58
58
|
1. **Cost Efficiency:** Вы не привязаны к модели ценообразования «per key» или «per seat», которая наказывает рост. С Intlayer вы платите за свой собственный inference (BYO Key), то есть ваши расходы масштабируются прямо пропорционально фактическому использованию, а не марже платформы.
|
|
59
59
|
2. **Интеграция в рабочий процесс:** В то время как Lokalise требует синхронизации файлов (даже если она автоматизирована), Intlayer позволяет задавать Declarative Content непосредственно в ваших файлах компонентов (React, Next.js и т.д.). Это сохраняет контекст рядом с UI, снижая количество ошибок.
|
|
60
|
-
3. **Визуальное управление:** Intlayer предоставляет визуальный редактор, который взаимодействует напрямую с запущенным приложением, обеспечивая внесение правок в полном визуальном
|
|
60
|
+
3. **Визуальное управление:** Intlayer предоставляет визуальный редактор, который взаимодействует напрямую с запущенным приложением, обеспечивая внесение правок в полном визуальном контексте, то, что часто теряется в традиционных списках файлов TMS.
|
|
61
61
|
|
|
62
62
|
# Сравнение бок о бок
|
|
63
63
|
|
|
@@ -75,6 +75,6 @@ Intlayer предлагает полноценное, универсальное
|
|
|
75
75
|
|
|
76
76
|
Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B-тестирования, позволяющий динамически тестировать разные варианты контента. Если Lokalise фокусируется на корректности формулировок, то Intlayer ориентирован на правильный _пользовательский опыт_ через динамическую выдачу данных.
|
|
77
77
|
|
|
78
|
-
Lokalise отлично подходит для мобильных приложений (iOS/Android) и рабочих процессов, ориентированных на дизайн. Однако для современных веб-приложений, использующих фреймворки вроде Next.js или React, нативная обработка Intlayer файлов `.js`, `.ts` и JSON-словарей обеспечивает превосходный developer experience (DX) с полной поддержкой TypeScript для
|
|
78
|
+
Lokalise отлично подходит для мобильных приложений (iOS/Android) и рабочих процессов, ориентированных на дизайн. Однако для современных веб-приложений, использующих фреймворки вроде Next.js или React, нативная обработка Intlayer файлов `.js`, `.ts` и JSON-словарей обеспечивает превосходный developer experience (DX) с полной поддержкой TypeScript для контента, это гарантирует, что вы больше никогда не выпустите приложение с отсутствующим ключом перевода.
|
|
79
79
|
|
|
80
|
-
Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer является open-source и может быть развернут самостоятельно. Docker-файлы доступны прямо в репозитории, что даёт вам полный контроль над вашей инфраструктурой
|
|
80
|
+
Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer является open-source и может быть развернут самостоятельно. Docker-файлы доступны прямо в репозитории, что даёт вам полный контроль над вашей инфраструктурой локализации, резкий контраст с закрытой SaaS-моделью Lokalise.
|
|
@@ -25,19 +25,19 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Система управления переводами (TMS)
|
|
27
27
|
|
|
28
|
-
Система управления переводом (Translation Management System, TMS)
|
|
28
|
+
Система управления переводом (Translation Management System, TMS), это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в качестве централизованного хаба, куда загружается, организуется и назначается контент живым переводчикам. Она управляет рабочими процессами, хранит translation memories (чтобы не переводить одну и ту же фразу дважды) и обеспечивает доставку переведённых файлов обратно разработчикам или менеджерам контента.
|
|
29
29
|
|
|
30
30
|
По сути, TMS исторически являлась мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культуру).
|
|
31
31
|
|
|
32
32
|
# Crowdin
|
|
33
33
|
|
|
34
|
-
Crowdin
|
|
34
|
+
Crowdin, ветеран в этой сфере. Основан в 2009 году, он появился в эпоху, когда основной проблемой локализации было обеспечение связности. Его миссия была ясна: эффективно связывать копирайтеров, переводчиков и владельцев проектов.
|
|
35
35
|
|
|
36
36
|
В течение более десяти лет Crowdin был отраслевым стандартом для управления локализацией. Он решил проблему фрагментации, позволив командам загружать файлы `.po`, `.xml` или `.yaml` и переводчикам работать с ними через облачный интерфейс. Репутацию он заработал благодаря надежной автоматизации рабочих процессов, что позволяло компаниям масштабироваться с одного языка до десяти, не утопая в таблицах.
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer известен прежде всего как решение для i18n, но также интегрирует CMS. В отличие от Crowdin, который ограничен ролью оболочки поверх вашей существующей i18n-настройки, Intlayer контролирует весь
|
|
40
|
+
Intlayer известен прежде всего как решение для i18n, но также интегрирует CMS. В отличие от Crowdin, который ограничен ролью оболочки поверх вашей существующей i18n-настройки, Intlayer контролирует весь стек, от слоя бандлинга до удалённой доставки контента, что обеспечивает более плавный и эффективный поток контента.
|
|
41
41
|
|
|
42
42
|
## Почему парадигмы изменились с появлением AI?
|
|
43
43
|
|
|
@@ -45,15 +45,15 @@ Intlayer известен прежде всего как решение для i
|
|
|
45
45
|
|
|
46
46
|
Почему? Потому что AI в 1 000 раз дешевле и бесконечно быстрее.
|
|
47
47
|
|
|
48
|
-
Однако есть ограничение.
|
|
48
|
+
Однако есть ограничение. Копирайтинг, это не просто перевод; это адаптация сообщения для разных культур и контекстов. Мы не продаём iPhone вашей бабушке так же, как продаём его китайскому бизнес-руководителю. Тон, идиоматические обороты и культурные маркеры должны отличаться.
|
|
49
49
|
|
|
50
|
-
Сегодня наиболее эффективный рабочий
|
|
50
|
+
Сегодня наиболее эффективный рабочий процесс, сначала глобально переводить и позиционировать ваши страницы с помощью AI. Затем, на втором этапе, привлекаются человеческие копирайтеры для оптимизации конкретного высокотрафикового контента с целью повышения конверсии, когда продукт уже генерирует доход.
|
|
51
51
|
|
|
52
|
-
Хотя доходы Crowdin
|
|
52
|
+
Хотя доходы Crowdin, в основном обеспечиваемые его проверенными legacy-решениями, по-прежнему остаются высокими, я считаю, что традиционный сектор локализации будет серьёзно затронут в горизонте 5–10 лет. Модель оплаты за слово или за место (seat) для инструмента управления становится устаревшей.
|
|
53
53
|
|
|
54
|
-
## Почему Intlayer
|
|
54
|
+
## Почему Intlayer, хорошая альтернатива Crowdin?
|
|
55
55
|
|
|
56
|
-
Intlayer
|
|
56
|
+
Intlayer, решение, рождённое в эпоху AI. Оно было спроектировано с принципом, что в 2026 году сырой перевод перестаёт иметь внутреннюю ценность. Он становится товаром.
|
|
57
57
|
|
|
58
58
|
Поэтому Intlayer не позиционирует себя просто как TMS, а как решение для **управления контентом**, которое глубоко интегрирует визуальный редактор и логику интернационализации.
|
|
59
59
|
|
|
@@ -61,26 +61,20 @@ Intlayer — решение, рождённое в эпоху AI. Оно был
|
|
|
61
61
|
|
|
62
62
|
# Сравнение бок о бок
|
|
63
63
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
| **Pricing Model** | Per seat / hosted tier. | Pay for your own inference (BYO Key). |
|
|
74
|
-
| **Integration** | File-based exchange (Upload/Download). | Deep code integration (Declarative). |
|
|
75
|
-
| **Updates** | Often requires CI/CD rebuilds to deploy text. | Instant sync with codebase or live app. |
|
|
76
|
-
| **File Formats** | Diverse (.po, .xml, .yaml, etc.). | Modern Web (JSON, JS, TS). |
|
|
77
|
-
| **Testing** | Limited. | CI / CLI. |
|
|
78
|
-
| **Hosting** | SaaS (mostly). | Open Source & Self-Hostable (Docker). |
|
|
64
|
+
| Характеристика | Crowdin (Legacy TMS) | Intlayer (AI-Native) |
|
|
65
|
+
| :------------------------- | :-------------------------------------------------- | :-------------------------------------------------------------- |
|
|
66
|
+
| **Основная философия** | Соединяет людей со строками. | Управляет логикой контента и генерацией AI. |
|
|
67
|
+
| **Модель ценообразования** | За место (seat) / хостинговый тариф. | Платите за собственные инференсы (BYO Key). |
|
|
68
|
+
| **Интеграция** | Обмен файлами (Upload/Download). | Глубокая интеграция с кодовой базой (декларативно). |
|
|
69
|
+
| **Обновления** | Часто требует пересборки в CI/CD для деплоя текста. | Мгновенная синхронизация с кодовой базой или живым приложением. |
|
|
70
|
+
| **Форматы файлов** | Разнообразные (.po, .xml, .yaml и т.д.). | Современные веб-форматы (JSON, JS, TS). |
|
|
71
|
+
| **Тестирование** | Ограниченное. | CI / CLI. |
|
|
72
|
+
| **Хостинг** | В основном SaaS. | Open Source и возможность самохостинга (Docker). |
|
|
79
73
|
|
|
80
74
|
Intlayer предлагает полноценное, «all-in-one» решение для i18n, которое позволяет глубоко интегрировать ваш контент. Ваш удалённый контент может синхронизироваться напрямую с кодовой базой или с работающим приложением. В сравнении, Crowdin часто требует пересборки приложения в вашем CI/CD pipeline для обновления контента, что создаёт трения между командой переводчиков и процессом деплоя.
|
|
81
75
|
|
|
82
|
-
Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B-тестирования, позволяющий динамически тестировать различные варианты
|
|
76
|
+
Кроме того, Intlayer можно использовать как Feature Flag или инструмент A/B-тестирования, позволяющий динамически тестировать различные варианты контента, то, что стандартные TMS-инструменты, такие как Crowdin, не поддерживают нативно.
|
|
83
77
|
|
|
84
|
-
Crowdin поддерживает широкий спектр форматов
|
|
78
|
+
Crowdin поддерживает широкий спектр форматов файлов, включая устаревшие типы, такие как `.po`, `.xml` и `.yaml`, что может быть полезно для проектов с устоявшимися рабочими процессами или для старых систем. Intlayer, напротив, в основном работает с современными веб‑ориентированными форматами, такими как `.json`, `.js` и `.ts`. Это означает, что Intlayer может быть несовместим с некоторыми устаревшими форматами файлов, что следует учитывать командам, мигрирующим с более старых платформ.
|
|
85
79
|
|
|
86
|
-
Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer
|
|
80
|
+
Наконец, для тех, кто отдаёт приоритет суверенитету данных и контролю, Intlayer, проект с открытым исходным кодом и может быть развернут самостоятельно. Файлы Docker доступны прямо в репозитории, что даёт вам полный контроль над вашей инфраструктурой локализации.
|
|
@@ -25,23 +25,19 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Система управления переводами (Translation Management System)
|
|
27
27
|
|
|
28
|
-
Система управления переводами (TMS)
|
|
28
|
+
Система управления переводами (TMS), это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружается, организуется и назначается контент для человеческих переводчиков. Она управляет рабочими процессами, хранит память переводов (чтобы избежать повторного перевода одной и той же фразы) и обрабатывает доставку переведённых файлов обратно разработчикам или менеджерам по контенту.
|
|
29
29
|
|
|
30
30
|
По сути, TMS исторически была мостом между техническим кодом (где хранятся строки) и человеческими лингвистами (которые понимают культурный контекст).
|
|
31
31
|
|
|
32
|
-
Translation Management System (TMS) — это программная платформа, предназначенная для автоматизации и упрощения процесса перевода и локализации (L10n). Традиционно TMS выступает в роли централизованного хаба, куда загружают, организуют и назначают контент живым переводчикам. Она управляет рабочими процессами, хранит translation memories (чтобы не переводить одно и то же предложение дважды) и обеспечивает доставку переведённых файлов обратно разработчикам или менеджерам контента.
|
|
33
|
-
|
|
34
|
-
По сути, TMS исторически являлась мостом между техническим кодом (где живут строки) и переводчиками‑лингвистами (которые понимают культуру).
|
|
35
|
-
|
|
36
32
|
# Phrase (ранее PhraseApp)
|
|
37
33
|
|
|
38
|
-
Phrase
|
|
34
|
+
Phrase, это тяжеловес в области корпоративной локализации. Ранее известный как PhraseApp, он значительно вырос, особенно после слияния с Memsource. Он позиционируется как комплексное решение для локализации (Localization Suite), предназначенное для локализации программного обеспечения, предлагая надежные возможности API и широкую поддержку форматов.
|
|
39
35
|
|
|
40
36
|
Phrase создан для масштабирования. Это основной выбор для крупных предприятий, которым необходимо управлять сложными рабочими процессами, обширными базами памяти переводов и строгими процессами контроля качества в различных командах. Его сила заключается в способности справляться с «тяжёлыми» задачами локализации, предлагая универсальную экосистему как для строк в ПО, так и для перевода документов.
|
|
41
37
|
|
|
42
38
|
# Intlayer
|
|
43
39
|
|
|
44
|
-
Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Phrase, которое функционирует как массивный внешний корпоративный пакет, Intlayer выступает как гибкий слой, интегрированный с кодом. Он контролирует весь
|
|
40
|
+
Intlayer известен прежде всего как решение для i18n, но он также интегрирует headless CMS. В отличие от Phrase, которое функционирует как массивный внешний корпоративный пакет, Intlayer выступает как гибкий слой, интегрированный с кодом. Он контролирует весь стек, от слоя бандлинга до удалённой доставки контента, что обеспечивает более плавный и эффективный поток контента для современных веб‑приложений.
|
|
45
41
|
|
|
46
42
|
## Почему парадигмы изменились с появлением ИИ?
|
|
47
43
|
|
|
@@ -51,11 +47,11 @@ Phrase был создан для решения задач предыдущег
|
|
|
51
47
|
|
|
52
48
|
Хотя Phrase интегрировал AI‑функции, они часто навешены поверх унаследованной архитектуры, рассчитанной на человеческие рабочие процессы и лицензирование по местам (seat‑based). В современной эпохе трение, связанное с «pushing to TMS» и «pulling from TMS», становится устаревшим. Разработчики ожидают, что контент будет таким же текучим, как и код.
|
|
53
49
|
|
|
54
|
-
Сегодня наиболее эффективный рабочий
|
|
50
|
+
Сегодня наиболее эффективный рабочий процесс, сначала переводить и позиционировать ваши страницы глобально с помощью AI. Затем, на втором этапе, привлекают человеческих копирайтеров для оптимизации конкретного высокопосещаемого контента с целью повышения конверсии, когда продукт уже начинает приносить доход.
|
|
55
51
|
|
|
56
|
-
## Почему Intlayer
|
|
52
|
+
## Почему Intlayer, хорошая альтернатива Phrase?
|
|
57
53
|
|
|
58
|
-
Intlayer
|
|
54
|
+
Intlayer, решение, рождённое в эпоху ИИ, разработанное специально для современной экосистемы JavaScript/TypeScript. Оно бросает вызов тяжеловесной enterprise-модели Phrase, предлагая гибкость и прозрачность.
|
|
59
55
|
|
|
60
56
|
1. **Прозрачность ценообразования:** Phrase известна своей корпоративной моделью ценообразования (Enterprise), которая может быть непрозрачной и дорогой для растущих компаний. Intlayer позволяет использовать собственные API-ключи (OpenAI, Anthropic и т. д.), обеспечивая оплату рыночных тарифов за интеллект, а не наценку на подписку платформы.
|
|
61
57
|
2. **Developer Experience (DX):** Phrase сильно полагается на CLI‑утилиты и API‑вызовы для синхронизации файлов. Intlayer интегрируется напрямую в bundler и runtime. Это означает, что ваши определения строго типизированы (TypeScript), и отсутствующие ключи обнаруживаются на этапе компиляции, а не в продакшене.
|
|
@@ -63,15 +59,15 @@ Intlayer — решение, рождённое в эпоху ИИ, разраб
|
|
|
63
59
|
|
|
64
60
|
# Сравнение бок о бок
|
|
65
61
|
|
|
66
|
-
| Особенность | Phrase (корпоративный TMS) | Intlayer (AI‑native)
|
|
67
|
-
| :------------------------- | :--------------------------------------------------------------- |
|
|
68
|
-
| **Основная философия** | Корпоративное управление и рабочие процессы (Enterprise). | Управляет логикой контента и генерацией с помощью ИИ.
|
|
69
|
-
| **Модель ценообразования** | Индивидуальная корпоративная модель / оплата за место (высокая). | Платите за собственный inference (используйте свой
|
|
70
|
-
| **Интеграция** | Активное использование API и CLI. | Глубокая интеграция в код (декларативная).
|
|
71
|
-
| **Обновления** | Требуется синхронизация / зависит от pipeline. | Мгновенная синхронизация с кодовой базой или живым приложением.
|
|
72
|
-
| **Форматы файлов** | Очень широкий набор (Legacy и документы). | Современные веб-форматы (JSON, JS, TS).
|
|
73
|
-
| **Тестирование** | QA-проверки / этапы LQA. | CI / CLI / A/B тестирование.
|
|
74
|
-
| **Хостинг** | SaaS (строго Enterprise). | Open Source и возможность самостоятельного хостинга (Docker).
|
|
62
|
+
| Особенность | Phrase (корпоративный TMS) | Intlayer (AI‑native) |
|
|
63
|
+
| :------------------------- | :--------------------------------------------------------------- | :----------------------------------------------------------------- |
|
|
64
|
+
| **Основная философия** | Корпоративное управление и рабочие процессы (Enterprise). | Управляет логикой контента и генерацией с помощью ИИ. |
|
|
65
|
+
| **Модель ценообразования** | Индивидуальная корпоративная модель / оплата за место (высокая). | Платите за собственный inference (используйте свой ключ. BYO Key). |
|
|
66
|
+
| **Интеграция** | Активное использование API и CLI. | Глубокая интеграция в код (декларативная). |
|
|
67
|
+
| **Обновления** | Требуется синхронизация / зависит от pipeline. | Мгновенная синхронизация с кодовой базой или живым приложением. |
|
|
68
|
+
| **Форматы файлов** | Очень широкий набор (Legacy и документы). | Современные веб-форматы (JSON, JS, TS). |
|
|
69
|
+
| **Тестирование** | QA-проверки / этапы LQA. | CI / CLI / A/B тестирование. |
|
|
70
|
+
| **Хостинг** | SaaS (строго Enterprise). | Open Source и возможность самостоятельного хостинга (Docker). |
|
|
75
71
|
|
|
76
72
|
Intlayer предлагает полное, «все-в-одном» решение для i18n, позволяющее глубоко интегрировать ваш контент. Удалённый контент может синхронизироваться напрямую с вашей кодовой базой или с работающим приложением. В сравнении, Phrase является мощной, но сложной внешней зависимостью, которая часто требует выделенных менеджеров по локализации для эффективной работы.
|
|
77
73
|
|
|
@@ -79,4 +75,4 @@ Intlayer предлагает полное, «все-в-одном» решен
|
|
|
79
75
|
|
|
80
76
|
Хотя Phrase незаменим для сложных корпоративных сценариев с множеством форматов (например, одновременный перевод PDF, субтитров и программного обеспечения), Intlayer является предпочтительным выбором для продуктовых команд, создающих веб‑приложения и стремящихся к полной собственности над продуктом, type safety и современному AI-driven workflow без корпоративной нагрузки (enterprise overhead).
|
|
81
77
|
|
|
82
|
-
Наконец, для тех, кто ставит приоритетом суверенитет данных и контроль, Intlayer
|
|
78
|
+
Наконец, для тех, кто ставит приоритетом суверенитет данных и контроль, Intlayer, open-source и может быть self-hosted. Docker files доступны прямо в репозитории, что даёт вам полное владение инфраструктурой локализации, то, чего невозможно добиться в закрытой SaaS-экосистеме Phrase.
|
|
@@ -28,7 +28,7 @@ slugs:
|
|
|
28
28
|
|
|
29
29
|
## Что такое интернационализация (i18n)?
|
|
30
30
|
|
|
31
|
-
Интернационализация, часто называемая i18n,
|
|
31
|
+
Интернационализация, часто называемая i18n, это процесс проектирования и подготовки вашего приложения для поддержки нескольких языков и культурных контекстов. В Angular это включает в себя настройку вашего приложения так, чтобы текст, даты, числа и даже макеты пользовательского интерфейса могли без труда адаптироваться к различным локалям. Правильная установка этой основы обеспечивает упорядоченность и эффективность интеграции будущих переводов.
|
|
32
32
|
|
|
33
33
|
Узнайте больше о основах i18n, прочитав нашу статью: [Что такое интернационализация (i18n)? Определение и проблемы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -50,7 +50,29 @@ slugs:
|
|
|
50
50
|
|
|
51
51
|
Angular предлагает встроенную систему i18n, а также несколько сторонних библиотек, предназначенных для упрощения настройки многоязычности. Ниже приведены некоторые из самых популярных решений.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Веб-сайт: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Обзор**
|
|
58
|
+
**Intlayer**, это инновационная библиотека интернационализации (i18n) с открытым исходным кодом, разработанная для упрощения многоязычной поддержки в современных веб-приложениях Angular (и других). Она предлагает декларативный подход, позволяя определять словари переводов непосредственно внутри ваших компонентов.
|
|
59
|
+
|
|
60
|
+
**Ключевые особенности**
|
|
61
|
+
|
|
62
|
+
- **Декларативное объявление переводов**: Позволяет объявлять все переводы в одном файле на уровне компонентов, что упрощает масштабирование и обслуживание.
|
|
63
|
+
- **TypeScript и автодополнение**: Предоставляет автоматически генерируемые определения типов для ключей перевода, обеспечивая надежное автодополнение и обнаружение ошибок.
|
|
64
|
+
- **Серверные компоненты и SSR**: Создана с учетом серверного рендеринга (SSR) и серверных компонентов, обеспечивая эффективную отрисовку локализованного контента как на стороне клиента, так и на стороне сервера.
|
|
65
|
+
- **Локализованные метаданные и URL-адреса для SEO**: Легко управляйте динамическими маршрутами на основе локали, картами сайта и записями robots.txt для улучшения видимости и SEO.
|
|
66
|
+
- **Бесшовная интеграция**: Совместима с Angular CLI и другими инструментами, что упрощает настройку.
|
|
67
|
+
- **Асинхронная загрузка**: Динамически загружайте словари переводов, уменьшая начальный размер бандла и повышая производительность.
|
|
68
|
+
|
|
69
|
+
**Что следует учитывать**
|
|
70
|
+
|
|
71
|
+
- **Сообщество и экосистема**: Хотя экосистема постоянно растет, она всё еще относительно новая, поэтому количество плагинов и инструментов от сообщества может быть более ограниченным по сравнению с более устоявшимися решениями.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. Встроенное i18n Angular
|
|
54
76
|
|
|
55
77
|
**Обзор**
|
|
56
78
|
Angular поставляется с **встроенной системой i18n**, которая включает инструменты для извлечения строк перевода, обработки плюрализации и интерполяции, а также интеграции переводов на этапе компиляции. Это официальное решение мощно для небольших проектов или тех, которые могут близко соответствовать рекомендуемой структуре Angular.
|
|
@@ -70,7 +92,7 @@ Angular поставляется с **встроенной системой i18n
|
|
|
70
92
|
|
|
71
93
|
---
|
|
72
94
|
|
|
73
|
-
###
|
|
95
|
+
### 3. ngx-translate
|
|
74
96
|
|
|
75
97
|
Сайт: [https://github.com/ngx-translate/core](https://github.com/ngx-translate/core)
|
|
76
98
|
|
|
@@ -92,7 +114,7 @@ Angular поставляется с **встроенной системой i18n
|
|
|
92
114
|
|
|
93
115
|
---
|
|
94
116
|
|
|
95
|
-
###
|
|
117
|
+
### 4. Transloco
|
|
96
118
|
|
|
97
119
|
Сайт: [https://ngneat.github.io/transloco/](https://ngneat.github.io/transloco/)
|
|
98
120
|
|
|
@@ -28,7 +28,7 @@ slugs:
|
|
|
28
28
|
|
|
29
29
|
## Что такое международная локализация (i18n)?
|
|
30
30
|
|
|
31
|
-
Международная локализация, сокращенно i18n,
|
|
31
|
+
Международная локализация, сокращенно i18n, это процесс проектирования и подготовки вашего веб-сайта для поддержки нескольких языков и культурных контекстов. В React это означает настройку вашего приложения так, чтобы строки, форматы дат, числовые форматы и даже макет можно было легко адаптировать для пользователей из разных регионов. Подготовка вашего React-приложения для i18n закладывает основу для чистой интеграции переводов и других функций локализации.
|
|
32
32
|
|
|
33
33
|
Узнайте больше о i18n, прочитав нашу статью: [Что такое международная локализация (i18n)? Определение и проблемы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -28,7 +28,7 @@ slugs:
|
|
|
28
28
|
|
|
29
29
|
## Что такое интернационализация (i18n)?
|
|
30
30
|
|
|
31
|
-
Интернационализация, обычно сокращаемая как i18n,
|
|
31
|
+
Интернационализация, обычно сокращаемая как i18n, это процесс проектирования и создания вашего приложения так, чтобы оно могло легко адаптироваться к различным языкам, регионам и культурным конвенциям. В Svelte это обычно означает настройку строк перевода, локализацию дат, времени и чисел, а также обеспечение того, чтобы пользовательский интерфейс мог динамически переключаться между различными локалями без значительных переработок кода.
|
|
32
32
|
|
|
33
33
|
Чтобы узнать больше о основах i18n, прочтите нашу статью: [Что такое интернационализация (i18n)? Определение и вызовы](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -50,7 +50,29 @@ slugs:
|
|
|
50
50
|
|
|
51
51
|
Svelte не предоставляет встроенного решения i18n (как это делает Angular), но сообщество создало разнообразные надежные библиотеки и паттерны. Ниже приведены несколько популярных подходов.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Веб-сайт: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Обзор**
|
|
58
|
+
**Intlayer**, это инновационная библиотека интернационализации (i18n) с открытым исходным кодом, разработанная для упрощения многоязычной поддержки в современных веб-приложениях Svelte (и других). Она предлагает декларативный подход, позволяя определять словари переводов непосредственно внутри ваших компонентов.
|
|
59
|
+
|
|
60
|
+
**Ключевые особенности**
|
|
61
|
+
|
|
62
|
+
- **Декларативное объявление переводов**: Позволяет объявлять все переводы в одном файле на уровне компонентов, что упрощает масштабирование и обслуживание.
|
|
63
|
+
- **TypeScript и автодополнение**: Предоставляет автоматически генерируемые определения типов для ключей перевода, обеспечивая надежное автодополнение и обнаружение ошибок.
|
|
64
|
+
- **Серверные компоненты и SSR**: Создана с учетом серверного рендеринга (SSR) и серверных компонентов, обеспечивая эффективную отрисовку локализованного контента как на стороне клиента, так и на стороне сервера.
|
|
65
|
+
- **Локализованные метаданные и URL-адреса для SEO**: Легко управляйте динамическими маршрутами на основе локали, картами сайта и записями robots.txt для улучшения видимости и SEO.
|
|
66
|
+
- **Бесшовная интеграция**: Совместима с SvelteKit и другими инструментами, что упрощает настройку.
|
|
67
|
+
- **Асинхронная загрузка**: Динамически загружайте словари переводов, уменьшая начальный размер бандла и повышая производительность.
|
|
68
|
+
|
|
69
|
+
**Что следует учитывать**
|
|
70
|
+
|
|
71
|
+
- **Сообщество и экосистема**: Хотя экосистема постоянно растет, она всё еще относительно новая, поэтому количество плагинов и инструментов от сообщества может быть более ограниченным по сравнению с более устоявшимися решениями.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. svelte-i18n
|
|
54
76
|
|
|
55
77
|
Репозиторий: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
78
|
|
|
@@ -72,7 +94,7 @@ Svelte не предоставляет встроенного решения i18
|
|
|
72
94
|
|
|
73
95
|
---
|
|
74
96
|
|
|
75
|
-
###
|
|
97
|
+
### 3. svelte-intl-precompile
|
|
76
98
|
|
|
77
99
|
Репозиторий: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
100
|
|
|
@@ -94,7 +116,7 @@ Svelte не предоставляет встроенного решения i18
|
|
|
94
116
|
|
|
95
117
|
---
|
|
96
118
|
|
|
97
|
-
###
|
|
119
|
+
### 4. i18next с Svelte / SvelteKit
|
|
98
120
|
|
|
99
121
|
Веб-сайт: [https://www.i18next.com/](https://www.i18next.com/)
|
|
100
122
|
|
|
@@ -52,7 +52,21 @@ slugs:
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> Вебсайт: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**Обзор**
|
|
60
|
+
**Intlayer**, это i18n-решение с открытым исходным кодом, предназначенное для упрощения многоязычной поддержки в различных фреймворках, включая **Vue**. Оно делает упор на декларативный подход, строгую типизацию и поддержку SSR в других экосистемах, хотя SSR не является типичным для стандартного Vue.
|
|
61
|
+
|
|
62
|
+
**Основные возможности**
|
|
63
|
+
|
|
64
|
+
- **Декларативный перевод**: Определяйте словари перевода либо на уровне виджета, либо в централизованном файле для более чистой архитектуры.
|
|
65
|
+
- **TypeScript и автодополнение (Web)**: Хотя эта функция в первую очередь полезна для веб-фреймворков, подход с типизированным переводом все равно может помочь в написании структурированного кода в Vue.
|
|
66
|
+
- **Асинхронная загрузка**: Загружайте ресурсы перевода динамически, что потенциально уменьшает начальный размер бандла для многоязычных приложений.
|
|
67
|
+
- **Интеграция с Vue**: Можно настроить базовую интеграцию для использования подхода Intlayer для структурированных переводов.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> Вебсайт: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ slugs:
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (Интеграция с Vue)
|
|
87
101
|
|
|
88
102
|
> Вебсайт: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|