@intlayer/docs 8.1.7 → 8.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/blog/ar/i18n_meaning.md +124 -0
- package/blog/ar/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/ar/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/ar/l10n_platform_alternative/phrase.md +2 -6
- package/blog/ar/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/ar/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ar/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/de/i18n_meaning.md +124 -0
- package/blog/de/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/de/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/de/l10n_platform_alternative/phrase.md +2 -6
- package/blog/de/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/de/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/de/per-component_vs_centralized_i18n.md +2 -2
- package/blog/de/rag_powered_documentation_assistant.md +1 -1
- package/blog/en/i18n_meaning.md +124 -0
- package/blog/en/intlayer_with_i18next.md +3 -3
- package/blog/en/intlayer_with_next-i18next.md +3 -3
- package/blog/en/intlayer_with_next-intl.md +3 -3
- package/blog/en/intlayer_with_react-i18next.md +3 -3
- package/blog/en/intlayer_with_react-intl.md +3 -3
- package/blog/en/intlayer_with_vue-i18n.md +3 -3
- package/blog/en/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en/rag_powered_documentation_assistant.md +1 -2
- package/blog/en-GB/compiler_vs_declarative_i18n.md +2 -2
- package/blog/en-GB/i18n_meaning.md +124 -0
- package/blog/en-GB/intlayer_with_i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-intl.md +1 -1
- package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_react-intl.md +1 -1
- package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
- package/blog/en-GB/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en-GB/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en-GB/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en-GB/rag_powered_documentation_assistant.md +1 -1
- package/blog/es/i18n_meaning.md +124 -0
- package/blog/es/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/es/l10n_platform_alternative/crowdin.md +14 -19
- package/blog/es/l10n_platform_alternative/phrase.md +2 -8
- package/blog/es/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/es/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/es/rag_powered_documentation_assistant.md +1 -1
- package/blog/fr/compiler_vs_declarative_i18n.md +1 -1
- package/blog/fr/i18n_meaning.md +23 -0
- package/blog/fr/l10n_platform_alternative/Lokalise.md +6 -10
- package/blog/fr/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/fr/l10n_platform_alternative/phrase.md +11 -24
- package/blog/fr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/fr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/fr/rag_powered_documentation_assistant.md +1 -1
- package/blog/hi/compiler_vs_declarative_i18n.md +2 -2
- package/blog/hi/i18n_meaning.md +124 -0
- package/blog/hi/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/hi/l10n_platform_alternative/crowdin.md +13 -17
- package/blog/hi/l10n_platform_alternative/phrase.md +2 -2
- package/blog/hi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/hi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/hi/per-component_vs_centralized_i18n.md +3 -3
- package/blog/hi/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/compiler_vs_declarative_i18n.md +2 -2
- package/blog/id/i18n_meaning.md +124 -0
- package/blog/id/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/id/l10n_platform_alternative/crowdin.md +4 -8
- package/blog/id/l10n_platform_alternative/phrase.md +11 -22
- package/blog/id/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/id/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/id/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer.md +1 -1
- package/blog/it/compiler_vs_declarative_i18n.md +1 -1
- package/blog/it/i18n_meaning.md +124 -0
- package/blog/it/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/it/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/it/l10n_platform_alternative/phrase.md +2 -6
- package/blog/it/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/it/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/it/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/it/rag_powered_documentation_assistant.md +1 -1
- package/blog/ja/i18n_meaning.md +124 -0
- package/blog/ja/l10n_platform_alternative/phrase.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/react-native.md +6 -9
- package/blog/ja/list_i18n_technologies/frameworks/react.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/svelte.md +27 -6
- package/blog/ja/list_i18n_technologies/frameworks/vue.md +29 -15
- package/blog/ja/per-component_vs_centralized_i18n.md +1 -1
- package/blog/ko/i18n_meaning.md +124 -0
- package/blog/ko/l10n_platform_alternative/Lokalise.md +2 -2
- package/blog/ko/l10n_platform_alternative/crowdin.md +11 -17
- package/blog/ko/l10n_platform_alternative/phrase.md +5 -5
- package/blog/ko/list_i18n_technologies/frameworks/angular.md +26 -3
- package/blog/ko/list_i18n_technologies/frameworks/react-native.md +35 -39
- package/blog/ko/list_i18n_technologies/frameworks/react.md +24 -24
- package/blog/ko/list_i18n_technologies/frameworks/svelte.md +28 -7
- package/blog/ko/list_i18n_technologies/frameworks/vue.md +22 -2
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pl/compiler_vs_declarative_i18n.md +2 -2
- package/blog/pl/i18n_meaning.md +124 -0
- package/blog/pl/l10n_platform_alternative/Lokalise.md +6 -16
- package/blog/pl/l10n_platform_alternative/crowdin.md +5 -5
- package/blog/pl/l10n_platform_alternative/phrase.md +4 -8
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +2 -2
- package/blog/pl/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +18 -4
- package/blog/pl/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pl/per-component_vs_centralized_i18n.md +4 -4
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
- package/blog/pt/compiler_vs_declarative_i18n.md +1 -1
- package/blog/pt/i18n_meaning.md +124 -0
- package/blog/pt/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/pt/l10n_platform_alternative/crowdin.md +13 -13
- package/blog/pt/l10n_platform_alternative/phrase.md +2 -2
- package/blog/pt/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pt/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pt/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pt/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pt/rag_powered_documentation_assistant.md +1 -1
- package/blog/ru/compiler_vs_declarative_i18n.md +9 -9
- package/blog/ru/i18n_meaning.md +124 -0
- package/blog/ru/i18n_using_next-i18next.md +3 -3
- package/blog/ru/i18n_using_next-intl.md +6 -6
- package/blog/ru/intlayer_with_i18next.md +1 -1
- package/blog/ru/intlayer_with_next-i18next.md +2 -2
- package/blog/ru/intlayer_with_next-intl.md +1 -1
- package/blog/ru/intlayer_with_react-i18next.md +1 -1
- package/blog/ru/intlayer_with_react-intl.md +1 -1
- package/blog/ru/intlayer_with_vue-i18n.md +1 -1
- package/blog/ru/l10n_platform_alternative/Lokalise.md +10 -10
- package/blog/ru/l10n_platform_alternative/crowdin.md +20 -26
- package/blog/ru/l10n_platform_alternative/phrase.md +16 -20
- package/blog/ru/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/svelte.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +9 -9
- package/blog/ru/nextjs-multilingual-seo-comparison.md +7 -7
- package/blog/ru/per-component_vs_centralized_i18n.md +3 -3
- package/blog/ru/rag_powered_documentation_assistant.md +9 -9
- package/blog/ru/what_is_internationalization.md +1 -1
- package/blog/tr/compiler_vs_declarative_i18n.md +2 -2
- package/blog/tr/i18n_meaning.md +124 -0
- package/blog/tr/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/tr/l10n_platform_alternative/crowdin.md +3 -3
- package/blog/tr/l10n_platform_alternative/phrase.md +10 -21
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/tr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/tr/rag_powered_documentation_assistant.md +1 -1
- package/blog/uk/compiler_vs_declarative_i18n.md +12 -12
- package/blog/uk/i18n_meaning.md +124 -0
- package/blog/uk/i18n_using_next-i18next.md +10 -10
- package/blog/uk/i18n_using_next-intl.md +7 -7
- package/blog/uk/internationalization_and_SEO.md +11 -11
- package/blog/uk/intlayer_with_i18next.md +2 -2
- package/blog/uk/intlayer_with_next-i18next.md +3 -3
- package/blog/uk/intlayer_with_next-intl.md +2 -2
- package/blog/uk/intlayer_with_react-i18next.md +2 -2
- package/blog/uk/intlayer_with_react-intl.md +2 -2
- package/blog/uk/intlayer_with_vue-i18n.md +2 -2
- package/blog/uk/l10n_platform_alternative/Lokalise.md +9 -9
- package/blog/uk/l10n_platform_alternative/crowdin.md +10 -10
- package/blog/uk/l10n_platform_alternative/phrase.md +9 -9
- package/blog/uk/list_i18n_technologies/frameworks/angular.md +31 -9
- package/blog/uk/list_i18n_technologies/frameworks/react-native.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/react.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/svelte.md +4 -4
- package/blog/uk/list_i18n_technologies/frameworks/vue.md +6 -6
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +13 -13
- package/blog/uk/nextjs-multilingual-seo-comparison.md +8 -8
- package/blog/uk/per-component_vs_centralized_i18n.md +3 -3
- package/blog/uk/rag_powered_documentation_assistant.md +11 -11
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +5 -5
- package/blog/uk/vue-i18n_vs_intlayer.md +5 -5
- package/blog/uk/what_is_internationalization.md +4 -4
- package/blog/vi/compiler_vs_declarative_i18n.md +1 -1
- package/blog/vi/i18n_meaning.md +124 -0
- package/blog/vi/l10n_platform_alternative/Lokalise.md +14 -21
- package/blog/vi/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/vi/l10n_platform_alternative/phrase.md +2 -6
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/vi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/vi/per-component_vs_centralized_i18n.md +1 -1
- package/blog/vi/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/compiler_vs_declarative_i18n.md +2 -2
- package/blog/zh/i18n_meaning.md +124 -0
- package/blog/zh/internationalization_and_SEO.md +5 -5
- package/blog/zh/l10n_platform_alternative/Lokalise.md +23 -23
- package/blog/zh/l10n_platform_alternative/crowdin.md +28 -32
- package/blog/zh/l10n_platform_alternative/phrase.md +32 -38
- package/blog/zh/list_i18n_technologies/frameworks/angular.md +28 -6
- package/blog/zh/list_i18n_technologies/frameworks/react-native.md +10 -14
- package/blog/zh/list_i18n_technologies/frameworks/react.md +5 -5
- package/blog/zh/list_i18n_technologies/frameworks/svelte.md +23 -7
- package/blog/zh/list_i18n_technologies/frameworks/vue.md +20 -6
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/zh/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/zh/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/what_is_internationalization.md +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/agent_skills.md +2 -0
- package/docs/ar/compiler.md +55 -3
- package/docs/ar/component_i18n.md +2 -2
- package/docs/ar/configuration.md +68 -1
- package/docs/ar/dictionary/content_file.md +1 -1
- package/docs/ar/index.md +2 -2
- package/docs/ar/intlayer_CMS.md +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +1 -1
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_create_react_app.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_fastify.md +1 -1
- package/docs/ar/intlayer_with_hono.md +1 -1
- package/docs/ar/intlayer_with_lynx+react.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- package/docs/ar/intlayer_with_next-i18next.md +2 -2
- package/docs/ar/intlayer_with_next-intl.md +2 -2
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +3 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- package/docs/ar/intlayer_with_react_native+expo.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vite+preact.md +3 -1
- package/docs/ar/intlayer_with_vite+react.md +3 -1
- package/docs/ar/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/ar/intlayer_with_vite+solid.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +3 -1
- package/docs/ar/intlayer_with_vite+vue.md +3 -1
- package/docs/ar/introduction.md +2 -2
- package/docs/ar/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/de/agent_skills.md +2 -0
- package/docs/de/cli/init.md +1 -1
- package/docs/de/compiler.md +53 -1
- package/docs/de/component_i18n.md +2 -2
- package/docs/de/configuration.md +68 -1
- package/docs/de/dictionary/content_file.md +1 -1
- package/docs/de/index.md +2 -2
- package/docs/de/intlayer_with_adonisjs.md +1 -1
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_fastify.md +1 -1
- package/docs/de/intlayer_with_hono.md +1 -1
- package/docs/de/intlayer_with_lynx+react.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_next-i18next.md +2 -2
- package/docs/de/intlayer_with_next-intl.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +3 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +22 -5
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +4 -2
- package/docs/de/intlayer_with_react_router_v7.md +4 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vite+preact.md +3 -1
- package/docs/de/intlayer_with_vite+react.md +3 -1
- package/docs/de/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +3 -1
- package/docs/de/intlayer_with_vite+vue.md +3 -1
- package/docs/de/introduction.md +2 -2
- package/docs/de/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en/agent_skills.md +2 -0
- package/docs/en/compiler.md +53 -1
- package/docs/en/component_i18n.md +2 -2
- package/docs/en/configuration.md +16 -1
- package/docs/en/index.md +2 -2
- package/docs/en/intlayer_CMS.md +1 -1
- package/docs/en/intlayer_with_adonisjs.md +1 -1
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_create_react_app.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_fastify.md +1 -1
- package/docs/en/intlayer_with_hono.md +1 -1
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +1 -1
- package/docs/en/intlayer_with_next-i18next.md +2 -2
- package/docs/en/intlayer_with_next-intl.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +2 -2
- package/docs/en/intlayer_with_nextjs_15.md +2 -2
- package/docs/en/intlayer_with_nextjs_16.md +4 -2
- package/docs/en/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/en/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en/intlayer_with_nuxt.md +2 -2
- package/docs/en/intlayer_with_react_native+expo.md +5 -3
- package/docs/en/intlayer_with_react_router_v7.md +4 -2
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vite+preact.md +3 -1
- package/docs/en/intlayer_with_vite+react.md +3 -1
- package/docs/en/intlayer_with_vite+react_compiler.md +22 -5
- package/docs/en/intlayer_with_vite+solid.md +1 -1
- package/docs/en/intlayer_with_vite+svelte.md +3 -1
- package/docs/en/intlayer_with_vite+vue.md +3 -1
- package/docs/en/introduction.md +2 -2
- package/docs/en/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en-GB/agent_skills.md +2 -0
- package/docs/en-GB/cli/init.md +1 -1
- package/docs/en-GB/compiler.md +55 -3
- package/docs/en-GB/component_i18n.md +2 -2
- package/docs/en-GB/configuration.md +68 -1
- package/docs/en-GB/dictionary/content_file.md +1 -1
- package/docs/en-GB/index.md +2 -2
- package/docs/en-GB/intlayer_CMS.md +1 -1
- package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_fastify.md +1 -1
- package/docs/en-GB/intlayer_with_hono.md +1 -1
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- package/docs/en-GB/intlayer_with_next-i18next.md +2 -2
- package/docs/en-GB/intlayer_with_next-intl.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +16 -16
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +2 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/en-GB/intlayer_with_svelte_kit.md +2 -2
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +2 -3
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/introduction.md +2 -2
- package/docs/en-GB/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en-GB/readme.md +1 -1
- package/docs/es/agent_skills.md +2 -0
- package/docs/es/compiler.md +53 -1
- package/docs/es/component_i18n.md +2 -2
- package/docs/es/configuration.md +68 -1
- package/docs/es/dictionary/content_file.md +1 -1
- package/docs/es/index.md +2 -2
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_create_react_app.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_lynx+react.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_next-i18next.md +2 -2
- package/docs/es/intlayer_with_next-intl.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +3 -1
- package/docs/es/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +5 -3
- package/docs/es/intlayer_with_react_router_v7.md +4 -2
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vite+preact.md +3 -1
- package/docs/es/intlayer_with_vite+react.md +3 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +3 -1
- package/docs/es/intlayer_with_vite+vue.md +3 -1
- package/docs/es/introduction.md +2 -2
- package/docs/es/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/fr/agent_skills.md +2 -0
- package/docs/fr/compiler.md +56 -4
- package/docs/fr/component_i18n.md +2 -2
- package/docs/fr/configuration.md +68 -1
- package/docs/fr/dictionary/content_file.md +1 -1
- package/docs/fr/index.md +2 -2
- package/docs/fr/intlayer_CMS.md +1 -1
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_create_react_app.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_lynx+react.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_next-i18next.md +2 -2
- package/docs/fr/intlayer_with_next-intl.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +3 -1
- package/docs/fr/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- package/docs/fr/intlayer_with_react_native+expo.md +5 -3
- package/docs/fr/intlayer_with_react_router_v7.md +4 -2
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/fr/intlayer_with_svelte_kit.md +2 -2
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vite+preact.md +3 -1
- package/docs/fr/intlayer_with_vite+react.md +3 -1
- package/docs/fr/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +3 -1
- package/docs/fr/intlayer_with_vite+vue.md +4 -2
- package/docs/fr/introduction.md +2 -2
- package/docs/fr/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/hi/agent_skills.md +2 -0
- package/docs/hi/cli/init.md +1 -1
- package/docs/hi/compiler.md +55 -3
- package/docs/hi/component_i18n.md +2 -2
- package/docs/hi/configuration.md +68 -1
- package/docs/hi/dictionary/content_file.md +1 -1
- package/docs/hi/index.md +2 -2
- package/docs/hi/intlayer_CMS.md +1 -1
- package/docs/hi/intlayer_with_adonisjs.md +1 -1
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_fastify.md +2 -2
- package/docs/hi/intlayer_with_hono.md +1 -1
- package/docs/hi/intlayer_with_lynx+react.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_next-i18next.md +2 -2
- package/docs/hi/intlayer_with_next-intl.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +3 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- package/docs/hi/intlayer_with_react_native+expo.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vite+preact.md +3 -1
- package/docs/hi/intlayer_with_vite+react.md +3 -1
- package/docs/hi/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +3 -1
- package/docs/hi/intlayer_with_vite+vue.md +4 -2
- package/docs/hi/introduction.md +2 -2
- package/docs/hi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/id/agent_skills.md +2 -0
- package/docs/id/compiler.md +53 -1
- package/docs/id/component_i18n.md +2 -2
- package/docs/id/configuration.md +61 -1
- package/docs/id/dictionary/content_file.md +1 -1
- package/docs/id/index.md +2 -2
- package/docs/id/intlayer_CMS.md +1 -1
- package/docs/id/intlayer_with_adonisjs.md +1 -1
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_create_react_app.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_fastify.md +1 -1
- package/docs/id/intlayer_with_hono.md +1 -1
- package/docs/id/intlayer_with_lynx+react.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +1 -1
- package/docs/id/intlayer_with_next-i18next.md +2 -2
- package/docs/id/intlayer_with_next-intl.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +3 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +5 -3
- package/docs/id/intlayer_with_react_router_v7.md +4 -2
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vite+preact.md +3 -1
- package/docs/id/intlayer_with_vite+react.md +3 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/id/intlayer_with_vite+solid.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +3 -1
- package/docs/id/intlayer_with_vite+vue.md +3 -1
- package/docs/id/introduction.md +2 -2
- package/docs/id/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/it/agent_skills.md +2 -0
- package/docs/it/compiler.md +55 -3
- package/docs/it/component_i18n.md +2 -2
- package/docs/it/configuration.md +68 -1
- package/docs/it/dictionary/content_file.md +1 -1
- package/docs/it/index.md +2 -2
- package/docs/it/intlayer_CMS.md +1 -1
- package/docs/it/intlayer_with_adonisjs.md +1 -1
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_create_react_app.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_fastify.md +1 -1
- package/docs/it/intlayer_with_hono.md +1 -1
- package/docs/it/intlayer_with_lynx+react.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_next-i18next.md +2 -2
- package/docs/it/intlayer_with_next-intl.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +3 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +4 -2
- package/docs/it/intlayer_with_react_router_v7.md +4 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vite+preact.md +3 -1
- package/docs/it/intlayer_with_vite+react.md +3 -1
- package/docs/it/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +3 -1
- package/docs/it/intlayer_with_vite+vue.md +4 -2
- package/docs/it/introduction.md +2 -2
- package/docs/it/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ja/agent_skills.md +2 -0
- package/docs/ja/cli/init.md +1 -1
- package/docs/ja/compiler.md +53 -1
- package/docs/ja/component_i18n.md +2 -2
- package/docs/ja/configuration.md +68 -1
- package/docs/ja/dictionary/content_file.md +1 -1
- package/docs/ja/index.md +2 -2
- package/docs/ja/intlayer_with_adonisjs.md +1 -1
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_create_react_app.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_fastify.md +1 -1
- package/docs/ja/intlayer_with_hono.md +1 -1
- package/docs/ja/intlayer_with_lynx+react.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_next-i18next.md +2 -2
- package/docs/ja/intlayer_with_next-intl.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +3 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +22 -5
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/ja/intlayer_with_nextjs_page_router.md +76 -77
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_native+expo.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ja/intlayer_with_svelte_kit.md +1 -1
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/intlayer_with_vite+preact.md +3 -1
- package/docs/ja/intlayer_with_vite+react.md +3 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/ja/intlayer_with_vite+solid.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +3 -1
- package/docs/ja/intlayer_with_vite+vue.md +3 -1
- package/docs/ja/introduction.md +2 -2
- package/docs/ja/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ko/agent_skills.md +2 -0
- package/docs/ko/cli/init.md +1 -1
- package/docs/ko/compiler.md +53 -1
- package/docs/ko/component_i18n.md +2 -2
- package/docs/ko/configuration.md +68 -1
- package/docs/ko/dictionary/content_file.md +1 -1
- package/docs/ko/index.md +2 -2
- package/docs/ko/intlayer_with_adonisjs.md +1 -1
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_create_react_app.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_fastify.md +1 -1
- package/docs/ko/intlayer_with_hono.md +1 -1
- package/docs/ko/intlayer_with_lynx+react.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_next-i18next.md +2 -2
- package/docs/ko/intlayer_with_next-intl.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- package/docs/ko/intlayer_with_nextjs_15.md +1 -1
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +3 -3
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vite+preact.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+react_compiler.md +1 -2
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/introduction.md +2 -2
- package/docs/ko/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/pl/agent_skills.md +2 -0
- package/docs/pl/cli/init.md +1 -1
- package/docs/pl/compiler.md +53 -1
- package/docs/pl/component_i18n.md +2 -2
- package/docs/pl/configuration.md +61 -1
- package/docs/pl/dictionary/content_file.md +1 -1
- package/docs/pl/index.md +2 -2
- package/docs/pl/intlayer_CMS.md +1 -1
- package/docs/pl/intlayer_with_adonisjs.md +1 -1
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_create_react_app.md +1 -1
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_fastify.md +1 -1
- package/docs/pl/intlayer_with_hono.md +1 -1
- package/docs/pl/intlayer_with_lynx+react.md +1 -1
- package/docs/pl/intlayer_with_nestjs.md +1 -1
- package/docs/pl/intlayer_with_next-i18next.md +2 -2
- package/docs/pl/intlayer_with_next-intl.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +3 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pl/intlayer_with_nuxt.md +1 -1
- package/docs/pl/intlayer_with_react_native+expo.md +5 -3
- package/docs/pl/intlayer_with_react_router_v7.md +4 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +5 -3
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vite+preact.md +3 -1
- package/docs/pl/intlayer_with_vite+react.md +3 -1
- package/docs/pl/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +3 -1
- package/docs/pl/intlayer_with_vite+vue.md +4 -2
- package/docs/pl/introduction.md +2 -2
- package/docs/pl/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/pl/packages/preact-intlayer/exports.md +1 -1
- package/docs/pl/releases/v8.md +3 -3
- package/docs/pt/agent_skills.md +2 -0
- package/docs/pt/cli/init.md +1 -1
- package/docs/pt/compiler.md +53 -1
- package/docs/pt/component_i18n.md +2 -2
- package/docs/pt/configuration.md +68 -1
- package/docs/pt/dictionary/content_file.md +1 -1
- package/docs/pt/index.md +2 -2
- package/docs/pt/intlayer_CMS.md +1 -1
- package/docs/pt/intlayer_with_adonisjs.md +1 -1
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular.md +1 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_create_react_app.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_fastify.md +1 -1
- package/docs/pt/intlayer_with_hono.md +1 -1
- package/docs/pt/intlayer_with_lynx+react.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_next-i18next.md +2 -2
- package/docs/pt/intlayer_with_next-intl.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +3 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +9 -9
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +3 -5
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/intlayer_with_vite+preact.md +3 -1
- package/docs/pt/intlayer_with_vite+react.md +3 -1
- package/docs/pt/intlayer_with_vite+react_compiler.md +25 -9
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +3 -1
- package/docs/pt/intlayer_with_vite+vue.md +3 -1
- package/docs/pt/introduction.md +2 -2
- package/docs/pt/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/ru/agent_skills.md +5 -3
- package/docs/ru/autoFill.md +3 -3
- package/docs/ru/bundle_optimization.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -1
- package/docs/ru/cli/fill.md +1 -1
- package/docs/ru/cli/init.md +6 -6
- package/docs/ru/cli/sdk.md +1 -1
- package/docs/ru/compiler.md +56 -4
- package/docs/ru/component_i18n.md +2 -2
- package/docs/ru/configuration.md +69 -2
- package/docs/ru/dictionary/content_file.md +3 -3
- package/docs/ru/dictionary/html.md +1 -1
- package/docs/ru/formatters.md +1 -1
- package/docs/ru/index.md +2 -2
- package/docs/ru/intlayer_CMS.md +6 -6
- package/docs/ru/intlayer_with_adonisjs.md +2 -2
- package/docs/ru/intlayer_with_analog.md +2 -2
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_create_react_app.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_fastify.md +2 -2
- package/docs/ru/intlayer_with_hono.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +2 -2
- package/docs/ru/intlayer_with_next-i18next.md +3 -3
- package/docs/ru/intlayer_with_next-intl.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +5 -3
- package/docs/ru/intlayer_with_nextjs_compiler.md +25 -8
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +12 -12
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_nuxt.md +3 -3
- package/docs/ru/intlayer_with_react_native+expo.md +4 -2
- package/docs/ru/intlayer_with_react_router_v7.md +5 -3
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +5 -7
- package/docs/ru/intlayer_with_svelte_kit.md +3 -3
- package/docs/ru/intlayer_with_tanstack.md +3 -3
- package/docs/ru/intlayer_with_vite+preact.md +10 -8
- package/docs/ru/intlayer_with_vite+react.md +5 -3
- package/docs/ru/intlayer_with_vite+react_compiler.md +22 -6
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +4 -2
- package/docs/ru/intlayer_with_vite+vue.md +3 -1
- package/docs/ru/introduction.md +2 -2
- package/docs/ru/packages/adonis-intlayer/t.md +1 -1
- package/docs/ru/packages/hono-intlayer/t.md +2 -2
- package/docs/ru/packages/intlayer/exports.md +1 -1
- package/docs/ru/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ru/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/ru/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/ru/packages/react-intlayer/exports.md +16 -16
- package/docs/ru/readme.md +1 -1
- package/docs/ru/releases/v7.md +3 -3
- package/docs/ru/releases/v8.md +5 -5
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/tr/agent_skills.md +2 -0
- package/docs/tr/cli/init.md +2 -2
- package/docs/tr/compiler.md +55 -3
- package/docs/tr/component_i18n.md +2 -2
- package/docs/tr/configuration.md +68 -1
- package/docs/tr/dictionary/content_file.md +1 -1
- package/docs/tr/index.md +2 -2
- package/docs/tr/intlayer_CMS.md +1 -1
- package/docs/tr/intlayer_with_adonisjs.md +1 -1
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_create_react_app.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_fastify.md +1 -1
- package/docs/tr/intlayer_with_hono.md +1 -1
- package/docs/tr/intlayer_with_lynx+react.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +1 -1
- package/docs/tr/intlayer_with_next-i18next.md +2 -2
- package/docs/tr/intlayer_with_next-intl.md +1 -1
- package/docs/tr/intlayer_with_nextjs_14.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +3 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vite+preact.md +3 -1
- package/docs/tr/intlayer_with_vite+react.md +3 -1
- package/docs/tr/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +3 -1
- package/docs/tr/intlayer_with_vite+vue.md +3 -1
- package/docs/tr/introduction.md +2 -2
- package/docs/tr/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/uk/agent_skills.md +5 -3
- package/docs/uk/autoFill.md +4 -4
- package/docs/uk/bundle_optimization.md +2 -2
- package/docs/uk/cli/fill.md +1 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/list_projects.md +1 -1
- package/docs/uk/cli/login.md +2 -2
- package/docs/uk/cli/sdk.md +1 -1
- package/docs/uk/compiler.md +56 -4
- package/docs/uk/component_i18n.md +3 -3
- package/docs/uk/configuration.md +65 -5
- package/docs/uk/dictionary/content_file.md +5 -5
- package/docs/uk/dictionary/enumeration.md +1 -1
- package/docs/uk/dictionary/html.md +1 -1
- package/docs/uk/formatters.md +9 -9
- package/docs/uk/how_works_intlayer.md +6 -6
- package/docs/uk/index.md +4 -4
- package/docs/uk/interest_of_intlayer.md +24 -24
- package/docs/uk/intlayer_CMS.md +7 -7
- package/docs/uk/intlayer_visual_editor.md +8 -8
- package/docs/uk/intlayer_with_adonisjs.md +2 -2
- package/docs/uk/intlayer_with_analog.md +2 -2
- package/docs/uk/intlayer_with_angular.md +2 -2
- package/docs/uk/intlayer_with_astro.md +3 -3
- package/docs/uk/intlayer_with_create_react_app.md +13 -13
- package/docs/uk/intlayer_with_express.md +2 -2
- package/docs/uk/intlayer_with_fastify.md +3 -3
- package/docs/uk/intlayer_with_hono.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +3 -3
- package/docs/uk/intlayer_with_nestjs.md +4 -4
- package/docs/uk/intlayer_with_next-i18next.md +5 -5
- package/docs/uk/intlayer_with_next-intl.md +1 -1
- package/docs/uk/intlayer_with_nextjs_14.md +10 -10
- package/docs/uk/intlayer_with_nextjs_15.md +21 -21
- package/docs/uk/intlayer_with_nextjs_16.md +5 -3
- package/docs/uk/intlayer_with_nextjs_compiler.md +24 -7
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +13 -13
- package/docs/uk/intlayer_with_nextjs_page_router.md +9 -9
- package/docs/uk/intlayer_with_nuxt.md +6 -6
- package/docs/uk/intlayer_with_react_native+expo.md +11 -9
- package/docs/uk/intlayer_with_react_router_v7.md +10 -8
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +10 -8
- package/docs/uk/intlayer_with_svelte_kit.md +2 -2
- package/docs/uk/intlayer_with_tanstack.md +9 -9
- package/docs/uk/intlayer_with_vite+preact.md +13 -11
- package/docs/uk/intlayer_with_vite+react.md +14 -12
- package/docs/uk/intlayer_with_vite+react_compiler.md +26 -10
- package/docs/uk/intlayer_with_vite+solid.md +2 -2
- package/docs/uk/intlayer_with_vite+svelte.md +4 -2
- package/docs/uk/intlayer_with_vite+vue.md +9 -7
- package/docs/uk/introduction.md +3 -3
- package/docs/uk/locale_mapper.md +1 -1
- package/docs/uk/packages/adonis-intlayer/t.md +1 -1
- package/docs/uk/packages/angular-intlayer/exports.md +1 -1
- package/docs/uk/packages/express-intlayer/t.md +3 -3
- package/docs/uk/packages/hono-intlayer/t.md +2 -2
- package/docs/uk/packages/intlayer/exports.md +1 -1
- package/docs/uk/packages/intlayer/getEnumeration.md +1 -1
- package/docs/uk/packages/intlayer/getMultilingualUrls.md +2 -2
- package/docs/uk/packages/intlayer/getTranslation.md +2 -2
- package/docs/uk/packages/intlayer/getTranslationContent.md +3 -3
- package/docs/uk/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/uk/packages/next-intlayer/t.md +2 -2
- package/docs/uk/packages/next-intlayer/useLocale.md +3 -3
- package/docs/uk/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/uk/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/uk/packages/react-intlayer/t.md +3 -3
- package/docs/uk/packages/react-intlayer/useDictionary.md +1 -1
- package/docs/uk/packages/react-intlayer/useLocale.md +2 -2
- package/docs/uk/packages/react-native-intlayer/exports.md +1 -1
- package/docs/uk/per_locale_file.md +2 -2
- package/docs/uk/plugins/sync-json.md +10 -10
- package/docs/uk/readme.md +3 -3
- package/docs/uk/releases/v6.md +2 -2
- package/docs/uk/releases/v7.md +2 -2
- package/docs/uk/releases/v8.md +1 -1
- package/docs/uk/roadmap.md +4 -4
- package/docs/uk/testing.md +1 -1
- package/docs/uk/vs_code_extension.md +2 -2
- package/docs/vi/agent_skills.md +2 -0
- package/docs/vi/compiler.md +53 -1
- package/docs/vi/component_i18n.md +2 -2
- package/docs/vi/configuration.md +61 -1
- package/docs/vi/dictionary/content_file.md +1 -1
- package/docs/vi/index.md +2 -2
- package/docs/vi/intlayer_CMS.md +1 -1
- package/docs/vi/intlayer_with_adonisjs.md +1 -1
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_create_react_app.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_fastify.md +1 -1
- package/docs/vi/intlayer_with_hono.md +1 -1
- package/docs/vi/intlayer_with_lynx+react.md +1 -1
- package/docs/vi/intlayer_with_nestjs.md +1 -1
- package/docs/vi/intlayer_with_next-i18next.md +2 -2
- package/docs/vi/intlayer_with_next-intl.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +3 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/vi/intlayer_with_nuxt.md +1 -1
- package/docs/vi/intlayer_with_react_native+expo.md +5 -3
- package/docs/vi/intlayer_with_react_router_v7.md +4 -2
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vite+preact.md +3 -1
- package/docs/vi/intlayer_with_vite+react.md +3 -1
- package/docs/vi/intlayer_with_vite+react_compiler.md +24 -8
- package/docs/vi/intlayer_with_vite+solid.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +3 -1
- package/docs/vi/intlayer_with_vite+vue.md +3 -1
- package/docs/vi/introduction.md +2 -2
- package/docs/vi/packages/intlayer/getCanonicalPath.md +1 -1
- package/docs/vi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/vi/readme.md +1 -1
- package/docs/vi/releases/v8.md +2 -2
- package/docs/zh/agent_skills.md +2 -0
- package/docs/zh/compiler.md +53 -1
- package/docs/zh/component_i18n.md +2 -2
- package/docs/zh/configuration.md +68 -1
- package/docs/zh/dictionary/content_file.md +1 -1
- package/docs/zh/index.md +3 -3
- package/docs/zh/intlayer_CMS.md +1 -1
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_create_react_app.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_lynx+react.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_next-i18next.md +2 -2
- package/docs/zh/intlayer_with_next-intl.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +3 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +23 -6
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- package/docs/zh/intlayer_with_react_native+expo.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vite+preact.md +3 -1
- package/docs/zh/intlayer_with_vite+react.md +3 -1
- package/docs/zh/intlayer_with_vite+react_compiler.md +21 -5
- package/docs/zh/intlayer_with_vite+solid.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +3 -1
- package/docs/zh/intlayer_with_vite+vue.md +3 -1
- package/docs/zh/introduction.md +2 -2
- package/docs/zh/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/frequent_questions/ar/error-vite-env-only.md +2 -2
- package/frequent_questions/de/error-vite-env-only.md +2 -2
- package/frequent_questions/en/error-vite-env-only.md +2 -2
- package/frequent_questions/en-GB/error-vite-env-only.md +2 -2
- package/frequent_questions/es/error-vite-env-only.md +2 -2
- package/frequent_questions/fr/error-vite-env-only.md +2 -2
- package/frequent_questions/hi/error-vite-env-only.md +2 -2
- package/frequent_questions/id/domain_routing.md +1 -1
- package/frequent_questions/id/error-vite-env-only.md +2 -2
- package/frequent_questions/it/error-vite-env-only.md +2 -2
- package/frequent_questions/ja/error-vite-env-only.md +2 -2
- package/frequent_questions/ko/error-vite-env-only.md +2 -2
- package/frequent_questions/pl/domain_routing.md +1 -1
- package/frequent_questions/pl/error-vite-env-only.md +2 -2
- package/frequent_questions/pt/error-vite-env-only.md +2 -2
- package/frequent_questions/ru/error-vite-env-only.md +2 -2
- package/frequent_questions/tr/error-vite-env-only.md +2 -2
- package/frequent_questions/uk/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/uk/array_as_content_declaration.md +1 -1
- package/frequent_questions/uk/customized_locale_list.md +1 -1
- package/frequent_questions/uk/domain_routing.md +1 -1
- package/frequent_questions/uk/error-vite-env-only.md +3 -3
- package/frequent_questions/uk/get_locale_cookie.md +4 -4
- package/frequent_questions/uk/static_rendering.md +1 -1
- package/frequent_questions/vi/domain_routing.md +1 -1
- package/frequent_questions/vi/error-vite-env-only.md +2 -2
- package/frequent_questions/zh/error-vite-env-only.md +3 -3
- package/legal/de/terms_of_service.md +1 -1
- package/legal/fr/terms_of_service.md +2 -2
- package/legal/ja/terms_of_service.md +1 -1
- package/legal/pl/terms_of_service.md +2 -2
- package/legal/ru/terms_of_service.md +1 -1
- package/legal/uk/privacy_notice.md +1 -1
- package/legal/uk/terms_of_service.md +1 -1
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +20 -0
|
@@ -25,19 +25,19 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Система управління перекладами
|
|
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 році, вона з’явилася в період, коли основною проблемою локалізації була підключеність (connectivity). Її місія була проста: ефективно поєднувати копірайтерів, перекладачів і власників проєктів.
|
|
35
35
|
|
|
36
36
|
Понад десять років Crowdin був галузевим стандартом для керування локалізацією. Він вирішив проблему фрагментації, дозволивши командам завантажувати файли `.po`, `.xml` або `.yaml` та працювати з ними перекладачам у хмарному інтерфейсі. Репутацію він здобув завдяки надійній автоматизації робочих процесів, що дозволяло компаніям масштабуватися з однієї мови до десяти, не потопаючи в електронних таблицях.
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer відомий насамперед як i18n-рішення, але також інтегрує CMS. На відміну від Crowdin, який обмежується роллю wrapper навколо вашої існуючої i18n-налаштування, Intlayer контролює весь
|
|
40
|
+
Intlayer відомий насамперед як i18n-рішення, але також інтегрує CMS. На відміну від Crowdin, який обмежується роллю wrapper навколо вашої існуючої i18n-налаштування, Intlayer контролює весь стек, від bundling layer до віддаленої доставки контенту, що призводить до плавнішого та ефективнішого потоку контенту.
|
|
41
41
|
|
|
42
42
|
## Чому парадигми змінилися з появою AI?
|
|
43
43
|
|
|
@@ -45,15 +45,15 @@ Intlayer відомий насамперед як i18n-рішення, але т
|
|
|
45
45
|
|
|
46
46
|
Чому? Тому що AI в 1,000x дешевший і безмежно швидший.
|
|
47
47
|
|
|
48
|
-
Однак існує обмеження.
|
|
48
|
+
Однак існує обмеження. Копірайтинг, це не просто переклад; це адаптація повідомлення до різних культур і контекстів. Ми не продаємо iPhone вашій бабусі так само, як продаємо його китайському бізнес-керівникові. Тон, ідіома й культурні маркери мають відрізнятися.
|
|
49
49
|
|
|
50
|
-
Сьогодні найефективніший робочий
|
|
50
|
+
Сьогодні найефективніший робочий процес, спочатку перекладати й позиціонувати ваші сторінки глобально за допомогою AI. Потім, на другому етапі, залучати людських копірайтерів для оптимізації певного контенту з високою відвідуваністю, щоб підвищити конверсію, коли продукт уже приносить дохід.
|
|
51
51
|
|
|
52
|
-
Хоча дохід Crowdin
|
|
52
|
+
Хоча дохід Crowdin, сформований переважно його добре перевіреними успадкованими рішеннями, і надалі показує хороші результати, я вважаю, що традиційний сектор локалізації зазнає серйозного впливу в горизонті 5–10 років. Модель оплати за слово або за місце для інструмента управління стає застарілою.
|
|
53
53
|
|
|
54
|
-
## Чому Intlayer
|
|
54
|
+
## Чому Intlayer, гарна альтернатива Crowdin?
|
|
55
55
|
|
|
56
|
-
Intlayer
|
|
56
|
+
Intlayer, це рішення, народжене в епоху AI. Воно спроектоване з принципом, що в 2026 році «сирий» переклад більше не має внутрішньої цінності. Це товар.
|
|
57
57
|
|
|
58
58
|
Тому Intlayer не позиціонує себе просто як TMS, а як рішення **Content Management**, яке глибоко інтегрує візуальний редактор та логіку інтернаціоналізації.
|
|
59
59
|
|
|
@@ -73,8 +73,8 @@ Intlayer — це рішення, народжене в епоху AI. Воно
|
|
|
73
73
|
|
|
74
74
|
Intlayer пропонує комплексне все‑в‑одному рішення для i18n, яке дозволяє глибоку інтеграцію вашого контенту. Ваш віддалений контент можна синхронізувати безпосередньо з вашою codebase або з live‑аплікацією. Для порівняння, Crowdin часто вимагає перебудови вашої аплікації в CI/CD пайплайні для оновлення контенту, що створює тертя між командою перекладу та процесом розгортання.
|
|
75
75
|
|
|
76
|
-
Крім того, Intlayer можна використовувати як Feature Flag або інструмент A/B тестування, що дозволяє динамічно тестувати різні варіації
|
|
76
|
+
Крім того, Intlayer можна використовувати як Feature Flag або інструмент A/B тестування, що дозволяє динамічно тестувати різні варіації контенту, функціонал, який стандартні TMS, такі як Crowdin, не підтримують нативно.
|
|
77
77
|
|
|
78
|
-
Crowdin підтримує широкий спектр форматів
|
|
78
|
+
Crowdin підтримує широкий спектр форматів файлів, включно із застарілими типами, такими як `.po`, `.xml` та `.yaml`, що може бути корисним для проєктів з усталеними робочими процесами або старих систем. Натомість Intlayer працює переважно з сучасними веб-орієнтованими форматами, такими як `.json`, `.js` та `.ts`. Це означає, що Intlayer може не бути сумісним з усіма застарілими форматами файлів, що слід враховувати командам, які мігрують зі старих платформ.
|
|
79
79
|
|
|
80
80
|
Нарешті, для тих, хто надає пріоритет суверенітету даних та контролю, Intlayer є open-source і може бути self-hosted. Файли Docker доступні безпосередньо в репозиторії, що дає вам повну власність над вашою інфраструктурою локалізації.
|
|
@@ -25,19 +25,19 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# Система управління перекладами
|
|
27
27
|
|
|
28
|
-
Система управління перекладом (TMS)
|
|
28
|
+
Система управління перекладом (TMS), це програмна платформа, розроблена для автоматизації та оптимізації процесу перекладу та локалізації (L10n). Традиційно TMS виступає як централізований хаб, куди завантажується, організовується та призначається вміст для людських перекладачів. Вона керує робочими процесами, зберігає translation memories (щоб уникнути повторного перекладу тих самих речень) і відповідає за доставку перекладених файлів назад розробникам або менеджерам контенту.
|
|
29
29
|
|
|
30
|
-
По суті, TMS історично була мостом між технічним кодом (де зберігаються
|
|
30
|
+
По суті, TMS історично була мостом між технічним кодом (де зберігаються рядки, strings) і людськими лінгвістами (які розуміють культуру).
|
|
31
31
|
|
|
32
32
|
# Phrase (раніше відома як PhraseApp)
|
|
33
33
|
|
|
34
|
-
Phrase
|
|
34
|
+
Phrase, важковаговик у сфері корпоративної локалізації. Спочатку відома як PhraseApp, вона значно зросла, особливо після злиття з Memsource. Вона позиціює себе як комплексний Localization Suite, призначений для локалізації програмного забезпечення, пропонуючи потужні можливості API та широку підтримку форматів.
|
|
35
35
|
|
|
36
36
|
Phrase створена для масштабування. Це стандартний вибір для великих підприємств, яким потрібно керувати складними робочими процесами, обширними translation memories і суворими процесами забезпечення якості між багатьма командами. Її сила полягає в здатності обробляти «heavy duty» задачі локалізації, пропонуючи все-в-одному екосистему як для рядків у софті, так і для перекладу документів.
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer відомий насамперед як рішення для i18n, але також інтегрує headless CMS. На відміну від Phrase, який функціонує як масивний зовнішній корпоративний набір інструментів, Intlayer виступає як гнучкий шар, інтегрований у код. Він контролює весь
|
|
40
|
+
Intlayer відомий насамперед як рішення для i18n, але також інтегрує headless CMS. На відміну від Phrase, який функціонує як масивний зовнішній корпоративний набір інструментів, Intlayer виступає як гнучкий шар, інтегрований у код. Він контролює весь стек, від шару бандлінгу до доставки віддаленого контенту, що забезпечує більш плавний і ефективний потік контенту для сучасних вебзастосунків.
|
|
41
41
|
|
|
42
42
|
## Чому парадигми змінилися після появи AI?
|
|
43
43
|
|
|
@@ -47,11 +47,11 @@ Phrase було створено для вирішення проблем поп
|
|
|
47
47
|
|
|
48
48
|
Хоча Phrase інтегрував AI-функції, вони часто нашаровуються на застарілу архітектуру, спроєктовану для людсько-центричних робочих процесів і ліцензування на основі місць (seat-based licensing). У сучасну еру тертя, пов’язане з «пушингом у TMS» та «пулінгом із TMS», стає застарілим. Розробники очікують, що контент буде таким же текучим, як і код.
|
|
49
49
|
|
|
50
|
-
Найефективніший робочий процес
|
|
50
|
+
Найефективніший робочий процес сьогодні, спочатку перекладати та глобально розміщувати ваші сторінки за допомогою ШІ. Потім, на другому етапі, залучати людських копірайтерів для оптимізації конкретного контенту з високим трафіком, щоб підвищити конверсію, коли продукт уже приносить дохід.
|
|
51
51
|
|
|
52
|
-
## Чому Intlayer
|
|
52
|
+
## Чому Intlayer, хороша альтернатива Phrase?
|
|
53
53
|
|
|
54
|
-
Intlayer
|
|
54
|
+
Intlayer, рішення, створене в епоху AI, спеціально розроблене для сучасної екосистеми JavaScript/TypeScript. Воно кидає виклик громіздкій корпоративній моделі Phrase, пропонуючи гнучкість і прозорість.
|
|
55
55
|
|
|
56
56
|
1. **Прозорість ціноутворення:** Phrase відомий своїми корпоративними тарифами, які можуть бути непрозорими та дорогими для компаній, що зростають. Intlayer дозволяє використовувати власні API-ключі (OpenAI, Anthropic тощо), гарантуючи, що ви платите ринкові ставки за інтелект, а не надбавку за підписку на платформу.
|
|
57
57
|
2. **Developer Experience (DX):** Phrase значно покладається на CLI-інструменти та API-виклики для синхронізації файлів. Intlayer інтегрується безпосередньо в bundler і runtime. Це означає, що ваші визначення строго типізовані (TypeScript), а відсутні ключі виявляються під час компіляції, а не в продакшні.
|
|
@@ -69,10 +69,10 @@ Intlayer — рішення, створене в епоху AI, спеціаль
|
|
|
69
69
|
| **Тестування** | QA-перевірки / LQA-етапи. | CI / CLI / A/B тестування. |
|
|
70
70
|
| **Хостинг** | SaaS (тільки для підприємств). | Відкритий код та можливість самостійного хостингу (Docker). |
|
|
71
71
|
|
|
72
|
-
Intlayer пропонує повне, «усе-в-одному» i18n-рішення, яке дозволяє глибоко інтегрувати ваш контент. Ваш віддалений контент можна синхронізувати безпосередньо з вашою codebase або з живим додатком. Для порівняння, Phrase
|
|
72
|
+
Intlayer пропонує повне, «усе-в-одному» i18n-рішення, яке дозволяє глибоко інтегрувати ваш контент. Ваш віддалений контент можна синхронізувати безпосередньо з вашою codebase або з живим додатком. Для порівняння, Phrase, потужна, але складна зовнішня залежність, яка часто вимагає виділених менеджерів з локалізації для ефективної роботи.
|
|
73
73
|
|
|
74
74
|
Крім того, Intlayer може використовуватися як Feature Flag або інструмент A/B testing, що дозволяє динамічно тестувати різні варіанти контенту. Phrase призначений для забезпечення лінгвістичної узгодженості, тоді як Intlayer допомагає оптимізувати конверсію та користувацький досвід завдяки динамічним даним.
|
|
75
75
|
|
|
76
76
|
Хоча Phrase незаперечна для складних корпоративних потреб у кількох форматах (наприклад, одночасний переклад PDF, субтитрів і програмного забезпечення), Intlayer є кращим вибором для продуктових команд, що будують вебзастосунки й прагнуть повної власності, type safety та сучасного AI-driven workflow без корпоративного оверхеду.
|
|
77
77
|
|
|
78
|
-
Нарешті, для тих, хто надає пріоритет суверенітету даних і контролю, Intlayer
|
|
78
|
+
Нарешті, для тих, хто надає пріоритет суверенітету даних і контролю, Intlayer, open-source і може бути self-hosted. Docker файли доступні безпосередньо в репозиторії, що дає вам повну власність над вашою інфраструктурою локалізації, те, що неможливо з закритою SaaS-екосистемою Phrase.
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Дослідження i18n-рішень для перекладу вашого сайту на Angular
|
|
22
22
|
|
|
23
|
-
У сучасному взаємопов'язаному світі пропонування вашого вебсайту кількома мовами може значно розширити охоплення та покращити користувацький досвід. Для розробників, які працюють з Angular, впровадження інтернаціоналізації (i18n) має вирішальне значення для ефективного керування перекладами, збереження структури додатка, SEO та продуктивності. У цій статті ми розглянемо різні підходи до i18n
|
|
23
|
+
У сучасному взаємопов'язаному світі пропонування вашого вебсайту кількома мовами може значно розширити охоплення та покращити користувацький досвід. Для розробників, які працюють з Angular, впровадження інтернаціоналізації (i18n) має вирішальне значення для ефективного керування перекладами, збереження структури додатка, SEO та продуктивності. У цій статті ми розглянемо різні підходи до i18n, від вбудованих рішень Angular до популярних сторонніх бібліотек, щоб допомогти вам визначити найкращий варіант для вашого проєкту.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -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/uk/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -48,9 +48,31 @@ slugs:
|
|
|
48
48
|
|
|
49
49
|
## Провідні i18n-рішення для Angular
|
|
50
50
|
|
|
51
|
-
Angular надає вбудований фреймворк i18n, а також існує кілька сторонніх бібліотек, що спрощують налаштування багатомовності.
|
|
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,12 +92,12 @@ 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
|
|
|
77
99
|
**Огляд**
|
|
78
|
-
**ngx-translate
|
|
100
|
+
**ngx-translate**, одна з найвідоміших сторонніх бібліотек i18n в екосистемі Angular. Вона дозволяє переклад під час виконання, даючи змогу завантажувати мовні файли за потреби та динамічно змінювати локаль без повторної збірки усього застосунку.
|
|
79
101
|
|
|
80
102
|
**Ключові особливості**
|
|
81
103
|
|
|
@@ -92,18 +114,18 @@ 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
|
|
|
99
121
|
**Огляд**
|
|
100
|
-
**Transloco
|
|
122
|
+
**Transloco**, сучасна, створена спільнотою бібліотека i18n для Angular, що робить акцент на масштабованій архітектурі та зручності для розробника. Вона пропонує плагінну архітектуру для безшовної інтеграції з існуючою Angular-кодовою базою.
|
|
101
123
|
|
|
102
124
|
**Ключові можливості**
|
|
103
125
|
|
|
104
126
|
- **Інтеграція з управлінням станом**: З коробки сумісна з бібліотеками управління станом, такими як NgRx та Akita.
|
|
105
127
|
- **Відкладене завантаження (Lazy Loading)**: Розбивайте переклади на окремі чанки та завантажуйте їх лише за потреби.
|
|
106
|
-
- **Розвинена екосистема плагінів**: Обробляє
|
|
128
|
+
- **Розвинена екосистема плагінів**: Обробляє все, від інтеграції SSR до автоматичного витягання повідомлень.
|
|
107
129
|
- **Runtime або build-time**: Надає гнучкість для різних робочих процесів перекладу, чи ви віддаєте перевагу runtime-перемиканню або попередньо збудованій локалізації.
|
|
108
130
|
|
|
109
131
|
**Питання для розгляду**
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Дослідження рішень i18n для перекладу вашого додатку React Native
|
|
22
22
|
|
|
23
|
-
У світі, що стає дедалі глобальнішим, надання вашого додатку на React Native кількома мовами може суттєво підвищити доступність і задоволеність користувачів. Інтернаціоналізація (i18n) є центральною для ефективного керування
|
|
23
|
+
У світі, що стає дедалі глобальнішим, надання вашого додатку на React Native кількома мовами може суттєво підвищити доступність і задоволеність користувачів. Інтернаціоналізація (i18n) є центральною для ефективного керування перекладами, вона дозволяє відображати текст, специфічний для мови, формати дати й часу, валюту та інше без ускладнення вашої codebase. У цій статті ми розглянемо різні підходи до i18n, від спеціалізованих бібліотек до більш загальних рішень, і допоможемо знайти той, що найкраще підходить для вашого проєкту на React Native.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -65,7 +65,7 @@ slugs:
|
|
|
65
65
|
> Website: [https://intlayer.org/](https://intlayer.org/)
|
|
66
66
|
|
|
67
67
|
**Огляд**
|
|
68
|
-
**Intlayer
|
|
68
|
+
**Intlayer**, інноваційна бібліотека з відкритим кодом для інтернаціоналізації, створена для спрощення підтримки кількох мов у сучасних JavaScript-додатках, включаючи React Native. Вона пропонує декларативний підхід до перекладу, що дозволяє визначати словники безпосередньо поруч із компонентами.
|
|
69
69
|
|
|
70
70
|
**Ключові можливості**
|
|
71
71
|
|
|
@@ -104,7 +104,7 @@ slugs:
|
|
|
104
104
|
Надає хуки (`useTranslation`), компоненти вищого порядку (HOCs) та інші засоби для безшовної інтеграції i18n у ваші компоненти.
|
|
105
105
|
|
|
106
106
|
- **Асинхронне завантаження**
|
|
107
|
-
Завантажує переклади за
|
|
107
|
+
Завантажує переклади за потреби, корисно для великих додатків або при поступовому додаванні мовних пакетів.
|
|
108
108
|
|
|
109
109
|
- **Розширені можливості перекладу**
|
|
110
110
|
Підтримує вкладені переклади, інтерполяцію, множинні форми (pluralization) та заміну змінних з коробки.
|
|
@@ -138,7 +138,7 @@ slugs:
|
|
|
138
138
|
`<FormattedMessage>`, `<FormattedDate>`, `<FormattedTime>` та інші спрощують завдання форматування на iOS та Android.
|
|
139
139
|
|
|
140
140
|
- **Легковаговий та розширюваний**
|
|
141
|
-
Ви можете імпортувати лише ті частини FormatJS, які потрібні, зберігаючи загальний бандл
|
|
141
|
+
Ви можете імпортувати лише ті частини FormatJS, які потрібні, зберігаючи загальний бандл компактним, це критично для мобільних платформ.
|
|
142
142
|
|
|
143
143
|
- **Поліфіли для непідтримуваних локалей**
|
|
144
144
|
Забезпечує послідовне форматування дат/чисел на старіших версіях Android або iOS.
|
|
@@ -152,7 +152,7 @@ slugs:
|
|
|
152
152
|
Вимагає workflow для екстракції повідомлень, що може ускладнити ваш build-процес. Однак це потужне рішення для великих команд, які керують великою кількістю перекладів.
|
|
153
153
|
|
|
154
154
|
- **Розмір додатка та розгортання**
|
|
155
|
-
Якщо ви покладаєтеся на кілька polyfills або великі файли перекладів, слідкуйте за загальним розміром
|
|
155
|
+
Якщо ви покладаєтеся на кілька polyfills або великі файли перекладів, слідкуйте за загальним розміром додатка, особливо важливо для мобільних середовищ.
|
|
156
156
|
|
|
157
157
|
- **Приклади від спільноти**
|
|
158
158
|
Хоча бібліотека широко використовується, специфічних прикладів для React Native може бути менше, ніж для React у вебі. Ймовірно, вам доведеться адаптувати існуючу документацію та патерни для нативного середовища.
|
|
@@ -214,4 +214,4 @@ slugs:
|
|
|
214
214
|
5. **Developer Experience (DX)**
|
|
215
215
|
- Шукайте бібліотеки, які відповідають навичкам вашої команди: деякі рішення більш багатослівні, але простіші в освоєнні, тоді як інші пропонують більше автоматизації за рахунок складнішого налаштування.
|
|
216
216
|
|
|
217
|
-
Кожне
|
|
217
|
+
Кожне рішення. Intlayer, React-i18next, React Intl і LinguiJS, довело свою ефективність у середовищі React Native, хоча й з дещо різними пріоритетами. Оцінка roadmap вашого проєкту, переваг розробників і потреб локалізації допоможе знайти оптимальне рішення для створення по-справжньому глобального додатку на React Native.
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Огляд рішень i18n для перекладу вашого React‑сайту
|
|
22
22
|
|
|
23
|
-
У сучасному цифровому середовищі розширення охоплення вашого вебсайту для глобальної аудиторії є необхідністю. Для розробників, які створюють застосунки на React, впровадження інтернаціоналізації (i18n)
|
|
23
|
+
У сучасному цифровому середовищі розширення охоплення вашого вебсайту для глобальної аудиторії є необхідністю. Для розробників, які створюють застосунки на React, впровадження інтернаціоналізації (i18n), це ключ до ефективного управління перекладами, одночасно зберігаючи структуру застосунку, показники SEO та зручність для користувачів. У цій статті ми розглянемо різні підходи до i18n, від спеціалізованих бібліотек до власноруч написаних рішень, щоб допомогти вам визначити, який із них найкраще підходить для потреб вашого проєкту.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -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/uk/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -42,7 +42,7 @@ slugs:
|
|
|
42
42
|
- **Динамічний контент:** управління перекладами для контенту, який оновлюється в реальному часі або отримується через API, може додавати додатковий рівень складності.
|
|
43
43
|
- **Питання SEO:** для серверно-рендерених React-додатків (наприклад, з Next.js) забезпечення позитивного впливу перекладів на SEO включає управління локалізованими URL-адресами, метаданими та картами сайту.
|
|
44
44
|
- **Управління станом і контекстом:** забезпечення того, щоб правильна мова зберігалася на всіх маршрутах і в усіх компонентах, вимагає продуманого управління станом.
|
|
45
|
-
- **Додаткове навантаження на розробку:** Підтримка файлів перекладів, забезпечення точності контексту та збереження масштабованості вашого
|
|
45
|
+
- **Додаткове навантаження на розробку:** Підтримка файлів перекладів, забезпечення точності контексту та збереження масштабованості вашого застосунку, це постійні завдання.
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -55,7 +55,7 @@ slugs:
|
|
|
55
55
|
> Website: [https://intlayer.org/](https://intlayer.org/)
|
|
56
56
|
|
|
57
57
|
**Огляд**
|
|
58
|
-
**Intlayer
|
|
58
|
+
**Intlayer**, інноваційна open-source бібліотека інтернаціоналізації (i18n), створена для спрощення підтримки багатомовності в сучасних веб-додатках на React (та інших). Вона пропонує декларативний підхід, що дозволяє визначати словники перекладів безпосередньо у компонентах.
|
|
59
59
|
|
|
60
60
|
**Ключові можливості**
|
|
61
61
|
|
|
@@ -77,7 +77,7 @@ slugs:
|
|
|
77
77
|
Вебсайт: [https://react.i18next.com/](https://react.i18next.com/)
|
|
78
78
|
|
|
79
79
|
**Огляд**
|
|
80
|
-
**React-i18next
|
|
80
|
+
**React-i18next**, одна з найбільш широко використовуваних бібліотек для інтернаціоналізації в React, побудована на основі популярного фреймворку **i18next**. Вона забезпечує гнучку архітектуру на основі плагінів для обробки складних сценаріїв перекладу.
|
|
81
81
|
|
|
82
82
|
**Ключові можливості**
|
|
83
83
|
|
|
@@ -114,7 +114,7 @@ slugs:
|
|
|
114
114
|
**Зауваження**
|
|
115
115
|
|
|
116
116
|
- **Вербозність та шаблонний код**: Залежність від спеціалізованих компонентів може призводити до більш вербозного коду, особливо в великих застосунках.
|
|
117
|
-
- **Розподіл перекладів**: Базова бібліотека не надає вбудованої підтримки для розбиття перекладів на кілька
|
|
117
|
+
- **Розподіл перекладів**: Базова бібліотека не надає вбудованої підтримки для розбиття перекладів на кілька файлів, це вимагає додаткового налаштування або плагінів.
|
|
118
118
|
- **Підтримуваність**: Прямолінійний підхід до форматування може бути корисним, але процес вилучення повідомлень і організаційні накладні витрати можуть швидко зростати.
|
|
119
119
|
|
|
120
120
|
### 4. LinguiJS
|
|
@@ -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/uk/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -55,7 +55,7 @@ Svelte не надає рідного, вбудованого рішення д
|
|
|
55
55
|
> Вебсайт: [https://intlayer.org/](https://intlayer.org/)
|
|
56
56
|
|
|
57
57
|
**Огляд**
|
|
58
|
-
**Intlayer
|
|
58
|
+
**Intlayer**, це open-source рішення для i18n, яке прагне спростити підтримку багатомовності в різних фреймворках, включно з **Svelte**. Воно робить акцент на декларативному підході, сильній типізації та підтримці SSR в інших екосистемах, хоча SSR не є типовим для стандартного Svelte.
|
|
59
59
|
|
|
60
60
|
**Ключові особливості**
|
|
61
61
|
|
|
@@ -71,7 +71,7 @@ Svelte не надає рідного, вбудованого рішення д
|
|
|
71
71
|
Репозиторій: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
72
72
|
|
|
73
73
|
**Огляд**
|
|
74
|
-
**svelte-i18n
|
|
74
|
+
**svelte-i18n**, одна з найпоширеніших бібліотек для додавання інтернаціоналізації до Svelte-додатків. Вона дозволяє динамічно підвантажувати й перемикати локалі під час виконання (runtime) та включає допоміжні засоби для обробки форм множини, інтерполяції та інших можливостей.
|
|
75
75
|
|
|
76
76
|
**Ключові можливості**
|
|
77
77
|
|
|
@@ -84,7 +84,7 @@ Svelte не надає рідного, вбудованого рішення д
|
|
|
84
84
|
|
|
85
85
|
- **Project Organization**: Вам потрібно логічно структурувати файли перекладів у міру зростання проєкту.
|
|
86
86
|
- **SSR Setup**: Налаштування SSR для SEO може вимагати додаткових кроків, щоб забезпечити коректне визначення локалі на стороні сервера.
|
|
87
|
-
- **Performance**: Хоча гнучкість у runtime є перевагою, велика кількість одночасно завантажених перекладів може вплинути на початковий час
|
|
87
|
+
- **Performance**: Хоча гнучкість у runtime є перевагою, велика кількість одночасно завантажених перекладів може вплинути на початковий час завантаження, розгляньте використання lazy loading або стратегій кешування.
|
|
88
88
|
|
|
89
89
|
---
|
|
90
90
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Огляд рішень i18n для локалізації вашого вебсайту на Vue.js
|
|
22
22
|
|
|
23
|
-
У все більш глобалізованому цифровому середовищі розширення охоплення вашого сайту на Vue.js для користувачів кількома мовами вже не є
|
|
23
|
+
У все більш глобалізованому цифровому середовищі розширення охоплення вашого сайту на Vue.js для користувачів кількома мовами вже не є «приємністю», це конкурентна необхідність. Інтернаціоналізація (i18n) дозволяє розробникам керувати перекладами та адаптувати свої застосунки під різні локалі, водночас зберігаючи SEO-цінність, досвід користувача (UX) та зручну для підтримки структуру коду. У цій статті ми розглянемо різні підходи, від спеціалізованих бібліотек до кастомних рішень, які допоможуть вам плавно інтегрувати i18n у ваш Vue.js проект.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ slugs:
|
|
|
28
28
|
|
|
29
29
|
## Що таке інтернаціоналізація (i18n)?
|
|
30
30
|
|
|
31
|
-
Internationalization (i18n)
|
|
31
|
+
Internationalization (i18n), це практика підготовки програмного забезпечення (або вебсайту) для підтримки кількох мов і культурних конвенцій. В екосистемі Vue.js це включає визначення того, як текст, дати, числа, валюта та інші локалізовані елементи можуть бути адаптовані до різних локалей. Налаштувавши i18n з самого початку, ви забезпечуєте організовану, масштабовану структуру для додавання нових мов та задоволення майбутніх потреб у локалізації.
|
|
32
32
|
|
|
33
33
|
Щоб дізнатися більше про основи i18n, перегляньте наше посилання: [What is Internationalization (i18n)? Definition and Challenges](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/what_is_internationalization.md).
|
|
34
34
|
|
|
@@ -57,7 +57,7 @@ Internationalization (i18n) — це практика підготовки пр
|
|
|
57
57
|
> Website: [https://intlayer.org/](https://intlayer.org/)
|
|
58
58
|
|
|
59
59
|
**Огляд**
|
|
60
|
-
**Intlayer
|
|
60
|
+
**Intlayer**, це open-source i18n-рішення, яке прагне спростити підтримку мультимовності у різних фреймворках, включаючи **Vue**. Воно робить акцент на декларативному підході, сильній типізації та підтримці SSR в інших екосистемах, хоча SSR не є типовим для стандартного Vue.
|
|
61
61
|
|
|
62
62
|
**Ключові особливості**
|
|
63
63
|
|
|
@@ -71,7 +71,7 @@ Internationalization (i18n) — це практика підготовки пр
|
|
|
71
71
|
> Website: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
72
72
|
|
|
73
73
|
**Огляд**
|
|
74
|
-
**Vue I18n
|
|
74
|
+
**Vue I18n**, найпоширеніша бібліотека локалізації в екосистемі Vue, що забезпечує простий та багатофункціональний підхід до обробки перекладів у проектах на Vue 2, Vue 3 та Nuxt.
|
|
75
75
|
|
|
76
76
|
**Ключові можливості**
|
|
77
77
|
|
|
@@ -131,7 +131,7 @@ Internationalization (i18n) — це практика підготовки пр
|
|
|
131
131
|
При виборі рішення для i18n для вашого Vue.js додатку:
|
|
132
132
|
|
|
133
133
|
1. **Оцініть свої вимоги**
|
|
134
|
-
Розмір проєкту, навички розробників та складність
|
|
134
|
+
Розмір проєкту, навички розробників та складність локалізації, усе це впливає на вибір.
|
|
135
135
|
2. **Оцініть сумісність зі SSR**
|
|
136
136
|
Якщо ви будуєте додаток на Nuxt або інакше залежите від SSR, переконайтеся, що обраний підхід підтримує серверний рендеринг без проблем.
|
|
137
137
|
3. **TypeScript & Autocompletion**
|
|
@@ -141,4 +141,4 @@ Internationalization (i18n) — це практика підготовки пр
|
|
|
141
141
|
5. **SEO & Metadata**
|
|
142
142
|
Щоб багатомовні сайти добре ранжувалися, ваше рішення має спрощувати локалізовані мета-теги, URL-адреси, карти сайту (sitemaps) та `robots.txt` для кожної локалі.
|
|
143
143
|
|
|
144
|
-
Незалежно від того, який шлях ви
|
|
144
|
+
Незалежно від того, який шлях ви оберете. Intlayer, Vue I18n, LinguiJS або власноручне рішення, ви будете на вірному шляху до створення глобально орієнтованого додатка на Vue.js. Кожне рішення має свої компроміси щодо продуктивності, досвіду розробника та масштабованості. Ретельно оцінивши потреби вашого проєкту, ви зможете впевнено обрати i18n-налаштування, яке забезпечить успіх вам і вашій багатомовній аудиторії.
|
|
@@ -29,9 +29,9 @@ slugs:
|
|
|
29
29
|
|
|
30
30
|
<TOC/>
|
|
31
31
|
|
|
32
|
-
> **tl;dr**: Усі три можуть локалізувати Next.js додаток. Якщо вам потрібні **контент, прив'язаний до компонентів**, **строгі TypeScript-типи**, **перевірка відсутніх ключів на етапі збірки**, **tree-shaken словники** та **першокласна підтримка App Router + SEO-хелперів**, **Intlayer
|
|
32
|
+
> **tl;dr**: Усі три можуть локалізувати Next.js додаток. Якщо вам потрібні **контент, прив'язаний до компонентів**, **строгі TypeScript-типи**, **перевірка відсутніх ключів на етапі збірки**, **tree-shaken словники** та **першокласна підтримка App Router + SEO-хелперів**, **Intlayer**, найповніший, сучасний вибір.
|
|
33
33
|
>
|
|
34
|
-
> Частою помилкою розробників є думка, що `next-intl
|
|
34
|
+
> Частою помилкою розробників є думка, що `next-intl`, це версія `react-intl` для Next.js. Це не так: `next-intl` підтримується [Amann](https://github.com/amannn), тоді як `react-intl` підтримується [FormatJS](https://github.com/formatjs/formatjs).
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
@@ -100,7 +100,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
100
100
|
///
|
|
101
101
|
/// ## Розміри бандлів та залежності
|
|
102
102
|
|
|
103
|
-
Після збірки застосунку, bundle
|
|
103
|
+
Після збірки застосунку, bundle, це JavaScript, який браузер завантажує для відображення сторінки. Тому розмір bundle важливий для продуктивності застосунку.
|
|
104
104
|
|
|
105
105
|
У контексті багатомовного застосунку важливі два складники bundle:
|
|
106
106
|
|
|
@@ -111,7 +111,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
111
111
|
|
|
112
112
|
Важливість коду застосунку в цьому випадку мінімальна. Усі три рішення є tree-shakable, тобто невикористані частини коду не включаються до bundle.
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
Нижче, порівняння розміру JavaScript-бандла, який завантажує браузер для багатомовного застосунку з трьома рішеннями.
|
|
115
115
|
|
|
116
116
|
Якщо в застосунку нам не потрібен жоден formatter, список експортованих функцій після tree-shaking буде:
|
|
117
117
|
|
|
@@ -119,7 +119,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
119
119
|
- **next-intl**: `useTranslations`, `useLocale`, `NextIntlClientProvider`, (Розмір бандла 101.3 kB -> 31.4 kB (gzip))
|
|
120
120
|
- **next-i18next**: `useTranslation`, `useI18n`, `I18nextProvider`, (Розмір бандла 80.7 kB -> 25.5 kB (gzip))
|
|
121
121
|
|
|
122
|
-
Ці
|
|
122
|
+
Ці функції, лише обгортки над React context/state, тому загальний вплив бібліотеки i18n на розмір бандла мінімальний.
|
|
123
123
|
|
|
124
124
|
> Intlayer трохи більший, ніж `next-intl` та `next-i18next`, оскільки він містить більше логіки в функції `useIntlayer`. Це пов'язано з інтеграцією markdown та `intlayer-editor`.
|
|
125
125
|
|
|
@@ -127,7 +127,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
127
127
|
|
|
128
128
|
Цей аспект часто ігнорують розробники, але розгляньмо випадок застосунку, що складається з 10 сторінок у 10 мовах. Припустимо для спрощення розрахунків, що кожна сторінка містить 100% унікального контенту (на практиці багато контенту дублюється між сторінками, наприклад заголовок сторінки, header, footer тощо).
|
|
129
129
|
|
|
130
|
-
Користувач, який хоче відвідати сторінку `/fr/about`, завантажить контент однієї сторінки певною мовою. Ігнорування оптимізації контенту призведе до зайвого завантаження 8,200% `((1 + (((10 pages - 1) × (10 languages - 1)))) × 100)` контенту застосунку. Чи бачите проблему? Навіть якщо цей
|
|
130
|
+
Користувач, який хоче відвідати сторінку `/fr/about`, завантажить контент однієї сторінки певною мовою. Ігнорування оптимізації контенту призведе до зайвого завантаження 8,200% `((1 + (((10 pages - 1) × (10 languages - 1)))) × 100)` контенту застосунку. Чи бачите проблему? Навіть якщо цей контент, лише текст, і хоча ви, ймовірно, більше зосереджені на оптимізації зображень сайту, ви передаєте непотрібний контент по всьому світу й змушуєте пристрої користувачів обробляти його даремно.
|
|
131
131
|
|
|
132
132
|
Дві важливі проблеми:
|
|
133
133
|
|
|
@@ -139,7 +139,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
139
139
|
|
|
140
140
|
> Якщо я на сторінці `/fr/about`, я не хочу завантажувати вміст сторінки `/en/about`
|
|
141
141
|
|
|
142
|
-
Знову ж таки, усі три рішення усвідомлюють ці проблеми та дозволяють керувати цими оптимізаціями. Різниця між
|
|
142
|
+
Знову ж таки, усі три рішення усвідомлюють ці проблеми та дозволяють керувати цими оптимізаціями. Різниця між ними, це DX (Developer Experience).
|
|
143
143
|
|
|
144
144
|
`next-intl` та `next-i18next` використовують централізований підхід для керування перекладами, дозволяючи розбивати JSON за локаллю й на підфайли. У `next-i18next` ми називаємо JSON-файли 'namespaces'; `next-intl` дозволяє оголошувати messages. В `intlayer` ми називаємо JSON-файли 'dictionaries'.
|
|
145
145
|
|
|
@@ -290,7 +290,7 @@ Next.js надає вбудовану підтримку інтернаціон
|
|
|
290
290
|
</Column>
|
|
291
291
|
</Columns>
|
|
292
292
|
|
|
293
|
-
**Чому це важливо:** Підтримка серверних
|
|
293
|
+
**Чому це важливо:** Підтримка серверних компонент, ключова особливість Next.js 13+, що покращує продуктивність. Передача через props `locale` або функції `t` від батьківської до дочірньої серверної компоненти робить ваші компоненти менш повторно використовуваними.
|
|
294
294
|
|
|
295
295
|
---
|
|
296
296
|
|
|
@@ -950,7 +950,7 @@ const ClientComponentExample = () => {
|
|
|
950
950
|
|
|
951
951
|
### Використання в server component
|
|
952
952
|
|
|
953
|
-
Розглянемо випадок UI-компонента. Цей
|
|
953
|
+
Розглянемо випадок UI-компонента. Цей компонент, server component, і він повинен мати можливість бути вставленим як дочірній елемент client component. (page (server component) -> client component -> server component). Оскільки цей компонент може бути вставлений як дочірній елемент client component, він не може бути async.
|
|
954
954
|
|
|
955
955
|
<Tabs defaultTab="next-intl" group='techno'>
|
|
956
956
|
<Tab label="next-i18next" value="next-i18next">
|
|
@@ -1044,7 +1044,7 @@ const ServerComponent = ({ count }: ServerComponentProps) => {
|
|
|
1044
1044
|
|
|
1045
1045
|
### Метадані / Sitemap / Robots
|
|
1046
1046
|
|
|
1047
|
-
Перекладати
|
|
1047
|
+
Перекладати контент, це чудово. Але люди зазвичай забувають, що головна мета інтернаціоналізації, зробити ваш вебсайт більш помітним для світу. I18n, надзвичайно ефективний важіль для покращення видимості вашого сайту.
|
|
1048
1048
|
|
|
1049
1049
|
Ось перелік кращих практик щодо багатомовного SEO.
|
|
1050
1050
|
|
|
@@ -1470,12 +1470,12 @@ export const config = {
|
|
|
1470
1470
|
|
|
1471
1471
|
**Intlayer**
|
|
1472
1472
|
|
|
1473
|
-
- створений для сучасного Next.js, з модульним контентом, type safety, інструментами та меншим boilerplate. Якщо ви цінуєте **component-scoped content**, **strict TypeScript**, **build-time guarantees**, **tree-shaking**, і **batteries-included** інструменти для маршрутизації/SEO
|
|
1473
|
+
- створений для сучасного Next.js, з модульним контентом, type safety, інструментами та меншим boilerplate. Якщо ви цінуєте **component-scoped content**, **strict TypeScript**, **build-time guarantees**, **tree-shaking**, і **batteries-included** інструменти для маршрутизації/SEO/редакторів, особливо для **Next.js App Router**, design-systems та **великих, модульних codebases**.
|
|
1474
1474
|
|
|
1475
1475
|
</Column>
|
|
1476
1476
|
</Columns>
|
|
1477
1477
|
|
|
1478
|
-
Якщо ви віддаєте перевагу мінімальній конфігурації і готові до деякої ручної інтеграції, next-intl
|
|
1478
|
+
Якщо ви віддаєте перевагу мінімальній конфігурації і готові до деякої ручної інтеграції, next-intl, хороший вибір. Якщо вам потрібні всі функції і вас не лякає складність, next-i18next теж підходить. Але якщо ви хочете сучасне, масштабоване, модульне рішення з готовими інструментами, Intlayer прагне надати це "з коробки".
|
|
1479
1479
|
|
|
1480
1480
|
> **Альтернатива для корпоративних команд**: Якщо вам потрібне перевірене рішення, яке відмінно працює з усталеними платформами локалізації, такими як **Crowdin**, **Phrase** або іншими професійними системами управління перекладами, розгляньте **next-intl** або **next-i18next** через їхню зрілу екосистему та перевірені інтеграції.
|
|
1481
1481
|
|
|
@@ -1493,7 +1493,7 @@ export const config = {
|
|
|
1493
1493
|
|
|
1494
1494
|
Усі три бібліотеки успішно справляються з базовою локалізацією. Різниця полягає в тому, **скільки роботи вам доведеться виконати**, щоб досягти надійної, масштабованої конфігурації в **сучасному Next.js**:
|
|
1495
1495
|
|
|
1496
|
-
- З **Intlayer**, **модульний контент**, **строгий TS**, **безпека на етапі збірки**, **tree-shaken bundles**, і **first-class App Router + SEO tooling
|
|
1496
|
+
- З **Intlayer**, **модульний контент**, **строгий TS**, **безпека на етапі збірки**, **tree-shaken bundles**, і **first-class App Router + SEO tooling**, це **за замовчуванням**, а не обов'язок.
|
|
1497
1497
|
- Якщо ваша команда цінує **підтримуваність і швидкість** у багатомовному, орієнтованому на компоненти додатку, Intlayer сьогодні пропонує **найповніший** досвід.
|
|
1498
1498
|
|
|
1499
1499
|
Зверніться до документа ['Чому Intlayer?'](https://intlayer.org/doc/why) для детальнішої інформації.
|