@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
|
@@ -54,7 +54,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
54
54
|
- Вы видите появляющиеся запросы на новые функции.
|
|
55
55
|
- Вы замечаете закономерности, которые могут даже направлять стратегию продукта.
|
|
56
56
|
|
|
57
|
-
Таким образом, RAG
|
|
57
|
+
Таким образом, RAG, это не просто инструмент поддержки. Это также **движок для обнаружения продукта**.
|
|
58
58
|
|
|
59
59
|
## Как работает конвейер RAG
|
|
60
60
|
|
|
@@ -95,7 +95,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
95
95
|
|
|
96
96
|
## Шаг 3: Генерация эмбеддингов
|
|
97
97
|
|
|
98
|
-
После разбиения документов на чанки мы генерируем
|
|
98
|
+
После разбиения документов на чанки мы генерируем **эмбеддинги**, векторы высокой размерности, представляющие каждый чанк.
|
|
99
99
|
|
|
100
100
|
Я использовал модель OpenAI text-embedding-3-large, но вы можете использовать любую современную модель эмбеддингов.
|
|
101
101
|
|
|
@@ -109,7 +109,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
109
109
|
];
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
Каждый
|
|
112
|
+
Каждый вектор, это математический отпечаток текста, позволяющий выполнять поиск по сходству.
|
|
113
113
|
|
|
114
114
|
## Шаг 4: Индексация и хранение эмбеддингов
|
|
115
115
|
|
|
@@ -159,7 +159,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
159
159
|
|
|
160
160
|
## Сколько это стоит?
|
|
161
161
|
|
|
162
|
-
Одно из распространённых возражений против RAG
|
|
162
|
+
Одно из распространённых возражений против RAG, стоимость. На практике это удивительно дешево:
|
|
163
163
|
|
|
164
164
|
- Генерация эмбеддингов для ~200 документов занимает около **5 минут** и стоит **1–2 евро**.
|
|
165
165
|
- Функция поиска по документации абсолютно бесплатна.
|
|
@@ -176,7 +176,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
176
176
|
- Фронтенд: Next.js / React / Tailwind CSS
|
|
177
177
|
- Бэкенд: Node.js API route / OpenAI API
|
|
178
178
|
|
|
179
|
-
Пакет `@smart-doc/docs
|
|
179
|
+
Пакет `@smart-doc/docs`, это пакет на TypeScript, который обрабатывает документацию. Когда добавляется или изменяется markdown-файл, пакет включает скрипт `build`, который перестраивает список документации на каждом языке, генерирует embeddings и сохраняет их в файл `embeddings.json`.
|
|
180
180
|
|
|
181
181
|
Для фронтенда мы используем приложение Next.js, которое предоставляет:
|
|
182
182
|
|
|
@@ -193,7 +193,7 @@ RAG стал популярным подходом не случайно: это
|
|
|
193
193
|
Системная подсказка:
|
|
194
194
|
|
|
195
195
|
```txt
|
|
196
|
-
|
|
196
|
+
Вы, полезный помощник, который может отвечать на вопросы по документации Intlayer.
|
|
197
197
|
|
|
198
198
|
Связанные фрагменты:
|
|
199
199
|
|
|
@@ -251,7 +251,7 @@ docUrl: "https://example.com/docs/ru/another-doc"
|
|
|
251
251
|
|
|
252
252
|
## Почему это важно не только для документации
|
|
253
253
|
|
|
254
|
-
Интересная
|
|
254
|
+
Интересная часть, это не просто чат-бот. Это **обратная связь**.
|
|
255
255
|
|
|
256
256
|
С RAG вы не просто отвечаете:
|
|
257
257
|
|
|
@@ -271,9 +271,9 @@ docUrl: "https://example.com/docs/ru/another-doc"
|
|
|
271
271
|
|
|
272
272
|
## Заключение
|
|
273
273
|
|
|
274
|
-
RAG
|
|
274
|
+
RAG, один из самых простых и мощных способов сделать LLM практичными. Объединив **извлечение + генерацию**, вы можете превратить статичную документацию в **умного помощника** и одновременно получить непрерывный поток инсайтов о продукте.
|
|
275
275
|
|
|
276
|
-
Для меня этот проект показал, что RAG
|
|
276
|
+
Для меня этот проект показал, что RAG, это не просто технический трюк. Это способ преобразовать документацию в:
|
|
277
277
|
|
|
278
278
|
- интерактивную систему поддержки
|
|
279
279
|
- канал обратной связи
|
|
@@ -23,7 +23,7 @@ slugs:
|
|
|
23
23
|
|
|
24
24
|
## Понимание Интернационализации (i18n)
|
|
25
25
|
|
|
26
|
-
**Интернационализация**, часто сокращаемая как **i18n**,
|
|
26
|
+
**Интернационализация**, часто сокращаемая как **i18n**, это процесс проектирования и подготовки приложения для поддержки нескольких языков, культур и региональных норм **без** значительных изменений в кодовой базе. Название i18n происходит от того, что между **i** и **n** в слове "интернационализация" находится 18 букв.
|
|
27
27
|
|
|
28
28
|
## Почему i18n имеет значение
|
|
29
29
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Derleyici Tabanlı i18n İçin ve Karşı Argümanlar
|
|
22
22
|
|
|
23
|
-
On yıldan fazla süredir web uygulamaları geliştiriyorsanız, Uluslararasılaştırmanın (i18n) her zaman bir sürtüşme noktası olduğunu bilirsiniz. Genellikle kimsenin yapmak istemediği bir görevdir
|
|
23
|
+
On yıldan fazla süredir web uygulamaları geliştiriyorsanız, Uluslararasılaştırmanın (i18n) her zaman bir sürtüşme noktası olduğunu bilirsiniz. Genellikle kimsenin yapmak istemediği bir görevdir, metinleri çıkarmak, JSON dosyalarını yönetmek ve çoğul kurallarıyla uğraşmak.
|
|
24
24
|
|
|
25
25
|
Son zamanlarda, bu acıyı ortadan kaldırmayı vaat eden yeni bir **"Derleyici tabanlı" i18n araçları** dalgası ortaya çıktı. Sunum çok cazip: **Sadece bileşenlerinizde metni yazın ve geri kalanını derleme aracı halletsin.** Anahtar yok, import yok, sadece sihir.
|
|
26
26
|
|
|
@@ -205,7 +205,7 @@ Peki, hangisini seçmelisiniz?
|
|
|
205
205
|
Derleyici tabanlı yaklaşım geçerli bir seçimdir. Çok hızlı ilerlemenizi sağlar. Dosya yapıları veya anahtarlar hakkında endişelenmenize gerek yoktur. Sadece inşa edersiniz. Teknik borç, "Gelecekteki Siz" için bir sorundur.
|
|
206
206
|
|
|
207
207
|
**Eğer Junior Geliştiriciyseniz veya optimizasyona önem vermiyorsanız:**
|
|
208
|
-
En az manuel yönetim istiyorsanız, derleyici tabanlı yaklaşım muhtemelen en iyisidir. Anahtarları veya çeviri dosyalarını kendiniz yönetmenize gerek kalmaz
|
|
208
|
+
En az manuel yönetim istiyorsanız, derleyici tabanlı yaklaşım muhtemelen en iyisidir. Anahtarları veya çeviri dosyalarını kendiniz yönetmenize gerek kalmaz, sadece metni yazarsınız ve derleyici geri kalanını otomatikleştirir. Bu, kurulum çabasını ve manuel adımlara bağlı yaygın i18n hatalarını azaltır.
|
|
209
209
|
|
|
210
210
|
**Eğer zaten binlerce bileşeni yeniden düzenlemeyi gerektiren mevcut bir projeyi uluslararasılaştırıyorsanız:**
|
|
211
211
|
Derleyici tabanlı bir yaklaşım burada pragmatik bir seçim olabilir. İlk çıkarım aşaması haftalar veya aylar süren manuel çalışmayı kurtarabilir. Ancak, Intlayer'ın `transform` komutu gibi bir aracı kullanmayı düşünün; bu araç dizeleri çıkarabilir ve bunları açık beyan edici içerik deklarasyonlarına dönüştürebilir. Bu, otomasyon hızını sağlarken, beyan edici yaklaşımın güvenliği ve taşınabilirliğini korur. İki dünyanın en iyisini elde edersiniz: uzun vadeli mimari borç olmadan hızlı ilk geçiş.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "i18n Anlamı: Uluslararasılaştırma Nedir ve Neden Önemlidir?"
|
|
5
|
+
description: "Yazılım geliştirmede gerçek i18n anlamını keşfedin. Uluslararasılaştırmanın ne olduğunu, neden i18n olarak kısaltıldığını ve küresel erişimi nasıl etkilediğini öğrenin."
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n anlamı
|
|
8
|
+
- i18n ne demek
|
|
9
|
+
- i18n
|
|
10
|
+
- uluslararasılaştırma
|
|
11
|
+
- yerelleştirme
|
|
12
|
+
- blog
|
|
13
|
+
- web geliştirme
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# i18n Anlamı: Uluslararasılaştırma Nedir ve Neden Önemlidir?
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## "i18n Anlamı"nı Anlamak
|
|
24
|
+
|
|
25
|
+
Yazılım geliştirme, web tasarımı veya dijital pazarlama ile ilgileniyorsanız, muhtemelen **i18n** terimiyle karşılaşmışsınızdır. Gerçek **i18n anlamı**, basitçe **internationalization** (uluslararasılaştırma) kelimesi için bir numeronimdir (sayı-ad).
|
|
26
|
+
|
|
27
|
+
Peki neden "i18n"? Kısaltma, "internationalization" kelimesinin ilk harfini (**i**), son harfini (**n**) alarak ve aradaki harf sayısını (**18**) sayarak oluşturulur. Bu kural, teknoloji endüstrisinde uzun ve hantal terimleri kısaltmak için sıkça kullanılır (yerelleştirme için kullanılan **l10n** bir başka yaygın örnektir).
|
|
28
|
+
|
|
29
|
+
Teknik terimlerle, **i18n anlamı**, temel kaynak kodunda önemli mühendislik değişiklikleri gerektirmeden birden fazla dili, bölgesel normu ve kültürel kuralı kolayca destekleyebilmesi için bir yazılım uygulamasının, web sitesinin veya ürünün tasarlanması ve hazırlanması sürecini ifade eder.
|
|
30
|
+
|
|
31
|
+
## Uygulamada i18n'in Temel Anlamı
|
|
32
|
+
|
|
33
|
+
i18n anlamını anlamak, sadece kısaltmanın ne anlama geldiğini bilmenin ötesine geçer. Arkasındaki mimari ilkeleri tanımakla ilgilidir. Bir proje düzgün bir şekilde "uluslararasılaştırıldığında", bu, geliştiricilerin içeriği koddan ayırdığı anlamına gelir.
|
|
34
|
+
|
|
35
|
+
Metni uygulamaya şu şekilde doğrudan kodlamak yerine:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>Gönder</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
i18n uyumlu bir uygulama çeviri anahtarları veya değişkenleri kullanır:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Bu, uygulamanın bileşeni yeniden yazmadan, kullanıcının tercihlerine bağlı olarak doğru dil sözlüğünü (örneğin İngilizce, İspanyolca, Japonca) dinamik olarak yükleyebilmesini sağlar.
|
|
48
|
+
|
|
49
|
+
## i18n Anlamı İşletmeniz İçin Neden Önemlidir?
|
|
50
|
+
|
|
51
|
+
**i18n anlamı**nı kavramak sadece ilk adımdır. Bunun modern dijital ürünler için neden bu kadar kritik olduğunu anlamak, başarılı küresel uygulamaları yerel olanlardan ayıran şeydir.
|
|
52
|
+
|
|
53
|
+
### Dil Engellerini Aşmak
|
|
54
|
+
|
|
55
|
+
i18n anlamının en belirgin uygulaması çeviridir. Uygulamanızı ilk günden itibaren uluslararasılaştırarak, arayüzünüzü düzinelerce dile sorunsuz bir şekilde çevirmenize olanak tanıyan bir temel oluşturursunuz. Bu, yeni küresel pazarlara açılmak için gereklidir.
|
|
56
|
+
|
|
57
|
+
### Kültürel ve Bölgesel Adaptasyon
|
|
58
|
+
|
|
59
|
+
i18n anlamı dilin ötesine geçer. Gerçek uluslararasılaştırma şunları destekler:
|
|
60
|
+
|
|
61
|
+
- **Tarih ve Saat Formatları:** ABD kullanıcıları için `AA/GG/YYYY` ile Avrupalı kullanıcılar için `GG.AA.YYYY` gösterimi.
|
|
62
|
+
- **Sayı Formatlama:** ABD'deki `1,000.50`nin Avrupa'nın bazı bölgelerinde genellikle `1.000,50` olarak yazıldığını tanımak.
|
|
63
|
+
- **Para Birimleri:** `$99.00` ile `99,00 ₺` adaptasyonu.
|
|
64
|
+
- **Metin Yönü:** Arapça ve İbranice gibi Sağdan Sola (RTL) dilleri desteklemek.
|
|
65
|
+
|
|
66
|
+
### Gelişmiş SEO Performansı
|
|
67
|
+
|
|
68
|
+
Arama motorları, kullanıcının diline ve bölgesine uygun içeriğe öncelik verir. i18n anlamının arkasındaki ilkeleri uygulamak, web sitenizi birden fazla ülkede daha üst sıralarda yer alacak şekilde yapılandırmanıza (örneğin `hreflang` etiketlerini, yerelleştirilmiş URL'leri kullanarak) olanak tanır ve organik küresel trafik sağlar.
|
|
69
|
+
|
|
70
|
+
## Uluslararasılaştırma (i18n) vs. Yerelleştirme (l10n)
|
|
71
|
+
|
|
72
|
+
**i18n anlamı**nı tam olarak kavramak için, onu **l10n** (yerelleştirme) kavramından ayırmanız gerekir.
|
|
73
|
+
|
|
74
|
+
- **i18n (Uluslararasılaştırma):** Uyarlamayı mümkün kılan _teknik hazırlık_ ve yapısal tasarım çerçevesidir. Örnekler: UTF-8 kodlama desteği, metin dizelerinin soyutlanması ve uzun kelimeler için kullanıcı arayüzü düzenlerinin esnek hale getirilmesi.
|
|
75
|
+
- **l10n (Yerelleştirme):** Ürünün belirli bir bölge (locale) için _fiili uyarlamasıdır_. Örnekler: İngilizce metnin Türkçeye çevrilmesi, görsellerin kültürel normlara uyacak şekilde ayarlanması ve yerel para biriminin ayarlanması.
|
|
76
|
+
|
|
77
|
+
**i18n**'i, direksiyonun hem sol hem de sağ tarafa taşınabildiği bir araba inşa etmek gibi düşünün. **l10n**, arabayı İngiltere'de satmak için direksiyonu gerçekten sağ tarafa taşıma eylemidir.
|
|
78
|
+
|
|
79
|
+
## i18n Anlamı Hakkında Sık Yapılan Yanlışlar
|
|
80
|
+
|
|
81
|
+
1. **"i18n sadece çeviri demektir."**
|
|
82
|
+
Çeviri, nihai sonucun büyük bir parçası olsa da, gerçek i18n anlamı formatlamayı, çoğullaştırma kurallarını, metin yönünü ve mimari hazırlığı kapsar.
|
|
83
|
+
2. **"i18n'i daha sonra ekleyebiliriz."**
|
|
84
|
+
Bir uygulamayı sonradan uluslararasılaştırmaya çalışmak oldukça zordur. Doğrudan kodlanmış dizeler, katı kullanıcı arayüzü bileşenleri ve uyumsuz tarih formatları büyük bir teknik borca yol açabilir. En baştan i18n planlaması yapmak temel bir en iyi uygulamadır.
|
|
85
|
+
|
|
86
|
+
## i18n Nasıl Etkili Bir Şekilde Uygulanır?
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
Artık gerçek **i18n anlamı**nı belirlediğimize göre, bunu nasıl uygularsınız?
|
|
91
|
+
|
|
92
|
+
- **Yerleşik bir i18n framework'ü kullanın:** Tekerleği yeniden icat etmeyin. İster React, ister Vue, Next.js veya saf JavaScript kullanıyor olun; ağır işleri (çoğullaştırma ve enterpolasyon gibi) halletmek için tasarlanmış özel i18n kütüphaneleri mevcuttur.
|
|
93
|
+
- **Kullanıcıya yönelik tüm metinleri soyutlayın:** Kullanıcı arayüzü bileşenlerinizde doğrudan kodlanmış metin bulunmadığından emin olun.
|
|
94
|
+
- **Güçlü bir çeviri yönetim sistemi kullanın:** **Intlayer** gibi araçlar geliştiriciler ve çevirmenler arasındaki boşluğu doldurur. Intlayer, kod tabanınızla sıkı bir şekilde entegre olan bir headless CMS gibi çalışarak, içerik yöneticilerinin bir geliştiriciden yeni bir build almasına gerek kalmadan çevirileri görsel olarak güncellemesine olanak tanır.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Teknoloji Başına i18n Kütüphane ve Araç Listesini Görüntüleyin
|
|
99
|
+
|
|
100
|
+
Teknoloji başına i18n kütüphane ve araç listesi arıyorsanız, aşağıdaki kaynaklara göz atın:
|
|
101
|
+
|
|
102
|
+
### İçerik Yönetim Sistemleri (CMS) İçin
|
|
103
|
+
|
|
104
|
+
- WordPress: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- Wix: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- Drupal: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### JavaScript Uygulamaları (Frontend) İçin
|
|
109
|
+
|
|
110
|
+
- React: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- Angular: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- Vue: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- Svelte: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- React Native: [i18n kütüphane ve araç listesini görüntüleyin](https://github.com/aymericzip/intlayer/blob/main/docs/blog/tr/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Sonuç
|
|
119
|
+
|
|
120
|
+
**i18n anlamı**, küresel bir etki hedefleyen her modern dijital işletme için temel bir kavramdır. Sadece "uluslararasılaştırma" için kullanılan ilginç bir teknik kısaltma olmanın çok ötesinde olan i18n, yazılımınızı çeşitli dillere, kültürlere ve bölgesel standartlara sorunsuz bir şekilde uyarlamak için gereken teknik mimariyi temsil eder.
|
|
121
|
+
|
|
122
|
+
i18n anlamını anlayarak ve ilkelerini geliştirme döngünüzün başında benimseyerek, önemli mühendislik zamanından tasarruf eder, gelecekteki teknik borçları önler ve uygulamanızın dünyanın her yerindeki kullanıcılara yerel ve sıcak bir deneyim sunmasını sağlarsınız.
|
|
123
|
+
|
|
124
|
+
İster bir mobil uygulama, ister bir SaaS platformu veya bir kurumsal araç geliştiriyor olun, gerçek i18n anlamını benimsemek, sürekli kod revizyonuna gerek kalmadan ürününüzün dünyanın her yerindeki kullanıcılara uyum sağlamasını ve onları çekmesini sağlar. En iyi uygulamalardan, güçlü framework'lerden ve Intlayer gibi platformlarla yerelleştirilmiş içerik beyanından yararlanarak ürün ekipleri gerçekten küresel yazılım deneyimleri sunabilir.
|
|
@@ -37,11 +37,11 @@ Başarısını "developer-friendly" bir TMS olmasına borçludur; string'lerin
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir headless CMS ile entegre olur. String'leriniz için büyük ölçüde harici bir senkronizasyon aracı olarak hareket eden Lokalise'in aksine, Intlayer kodunuza daha yakın konumlanır. Tüm
|
|
40
|
+
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir headless CMS ile entegre olur. String'leriniz için büyük ölçüde harici bir senkronizasyon aracı olarak hareket eden Lokalise'in aksine, Intlayer kodunuza daha yakın konumlanır. Tüm yığını, bundling layer'dan uzaktan içerik teslimine kadar, kontrol ederek daha pürüzsüz ve daha verimli bir içerik akışı sağlar.
|
|
41
41
|
|
|
42
42
|
## AI'den sonra paradigmalar neden değişti?
|
|
43
43
|
|
|
44
|
-
Lokalise, yerelleştirmenin "DevOps"
|
|
44
|
+
Lokalise, yerelleştirmenin "DevOps" tarafını, string'leri otomatik olarak taşımayı, mükemmelleştirdi. Ancak Büyük Dil Modelleri (LLM'lerin) gelişi yerelleştirmenin paradigmalarını kökten değiştirdi. Dar boğaz artık _taşımak_ değil; _üretmek_.
|
|
45
45
|
|
|
46
46
|
LLM'lerle çeviri maliyeti sert şekilde düştü ve hız katlanarak arttı. Yerelleştirme ekibinin rolü "çevirmenleri yönetmek"ten "bağlamı ve incelemeyi yönetmek"e doğru kayıyor.
|
|
47
47
|
|
|
@@ -57,7 +57,7 @@ Lokalise sık sık keskin fiyatlandırma kademeleri nedeniyle eleştirilir; bir
|
|
|
57
57
|
|
|
58
58
|
1. **Maliyet Verimliliği:** Büyümeyi cezalandıran "anahtar başına" veya "koltuk başına" fiyatlandırma modeline bağlı kalmazsınız. Intlayer ile kendi çıkarımınızı (BYO Key) ödersiniz; bu, maliyetlerinizin platformun marjlarıyla değil, gerçek kullanımınızla doğrudan ölçeklendiği anlamına gelir.
|
|
59
59
|
2. **İş Akışı Entegrasyonu:** Lokalise dosyaların senkronize edilmesini gerektirir (otomatik olsa bile); Intlayer ise bileşen dosyalarınızda (React, Next.js, vb.) doğrudan Declarative Content tanımına izin verir. Bu, bağlamı kullanıcı arayüzünün hemen yanına yerleştirir ve hataları azaltır.
|
|
60
|
-
3. **Görsel Yönetim:** Intlayer, çalışan uygulamanızla doğrudan etkileşime giren bir görsel düzenleyici sağlar; böylece düzenlemeler tam görsel bağlam içinde yapılır
|
|
60
|
+
3. **Görsel Yönetim:** Intlayer, çalışan uygulamanızla doğrudan etkileşime giren bir görsel düzenleyici sağlar; böylece düzenlemeler tam görsel bağlam içinde yapılır, bu, geleneksel TMS dosya listelerinde sıklıkla kopuktur.
|
|
61
61
|
|
|
62
62
|
# Yan Yana Karşılaştırma
|
|
63
63
|
|
|
@@ -75,6 +75,6 @@ Intlayer, içeriğinizin derin entegrasyonuna olanak veren eksiksiz, hepsi bir a
|
|
|
75
75
|
|
|
76
76
|
Ayrıca Intlayer, Feature Flag veya A/B testing aracı olarak kullanılabilir ve farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar. Lokalise kelimeleri doğru hale getirmeye odaklanırken, Intlayer dinamik veri sunumu yoluyla _kullanıcı deneyimi_ ni doğru hale getirmeye odaklanır.
|
|
77
77
|
|
|
78
|
-
Lokalise, mobil uygulamalar (iOS/Android) ve tasarım odaklı iş akışları için mükemmeldir. Ancak Next.js veya React gibi framework'leri kullanan modern web uygulamaları için Intlayer'ın `.js`, `.ts` ve JSON sözlüklerini yerel olarak işlemesi, içerik için tam TypeScript desteği ile üstün bir geliştirici deneyimi (DX) sunar
|
|
78
|
+
Lokalise, mobil uygulamalar (iOS/Android) ve tasarım odaklı iş akışları için mükemmeldir. Ancak Next.js veya React gibi framework'leri kullanan modern web uygulamaları için Intlayer'ın `.js`, `.ts` ve JSON sözlüklerini yerel olarak işlemesi, içerik için tam TypeScript desteği ile üstün bir geliştirici deneyimi (DX) sunar, böylece eksik bir çeviri anahtarını bir daha asla yayınlamazsınız.
|
|
79
79
|
|
|
80
80
|
Son olarak, veri egemenliği ve kontrolünü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları depoda doğrudan mevcuttur; bu, yerelleştirme altyapınız üzerinde tam sahiplik sağlar ve Lokalise'in kapalı SaaS modeline keskin bir tezat oluşturur.
|
|
@@ -37,7 +37,7 @@ On yılı aşkın bir süredir Crowdin, yerelleştirme yönetiminde sektör stan
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir CMS ile entegre olur. Mevcut i18n kurulumunuzun etrafında bir wrapper olarak görev yapmakla sınırlı olan Crowdin'in aksine, Intlayer tüm yığını kontrol eder
|
|
40
|
+
Intlayer öncelikle bir i18n çözümü olarak bilinir, ancak aynı zamanda bir CMS ile entegre olur. Mevcut i18n kurulumunuzun etrafında bir wrapper olarak görev yapmakla sınırlı olan Crowdin'in aksine, Intlayer tüm yığını kontrol eder, paketleme katmanından uzak içerik teslimine kadar, bu da daha pürüzsüz ve daha verimli bir içerik akışı sağlar.
|
|
41
41
|
|
|
42
42
|
## AI'dan beri paradigmalar neden değişti?
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ Ancak bir sınırlama var. Metin yazarlığı yalnızca çeviri yapmak değildir
|
|
|
49
49
|
|
|
50
50
|
Günümüzde en verimli iş akışı, önce AI kullanarak sayfalarınızı küresel olarak çevirmek ve konumlandırmaktır. Ardından, ikinci aşamada, ürün zaten gelir elde etmeye başladıktan sonra dönüşümü artırmak için yüksek trafikli belirli içerikleri optimize etmek üzere insan metin yazarlarını kullanırsınız.
|
|
51
51
|
|
|
52
|
-
Her ne kadar Crowdin'in geliri
|
|
52
|
+
Her ne kadar Crowdin'in geliri, ağırlıklı olarak iyi kanıtlanmış legacy çözümleri tarafından yönlendirilen, iyi performans göstermeye devam etse de, geleneksel yerelleştirme sektörünün 5 ila 10 yıllık bir zaman diliminde ciddi şekilde etkileneceğine inanıyorum. Bir yönetim aracı için kelime başına veya kullanıcı başına ödeme modeli modası geçmiş hale geliyor.
|
|
53
53
|
|
|
54
54
|
## Neden Intlayer Crowdin'e iyi bir alternatif?
|
|
55
55
|
|
|
@@ -73,7 +73,7 @@ Intlayer ile çevirilerinizi inference maliyeti karşılığında üretirsiniz.
|
|
|
73
73
|
|
|
74
74
|
Intlayer, içeriğinizle derin entegrasyon sağlayan eksiksiz, hepsi bir arada bir i18n çözümü sunar. Uzaktaki içerikleriniz doğrudan kod tabanınızla veya canlı uygulamanızla senkronize edilebilir. Karşılaştırma olarak, Crowdin genellikle içeriği güncellemek için CI/CD hattınızda uygulamanızın yeniden derlenmesini gerektirir; bu da çeviri ekibi ile dağıtım süreci arasında sürtüşme yaratır.
|
|
75
75
|
|
|
76
|
-
Ayrıca, Intlayer bir Feature Flag veya A/B testi aracı olarak kullanılabilir; farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar
|
|
76
|
+
Ayrıca, Intlayer bir Feature Flag veya A/B testi aracı olarak kullanılabilir; farklı içerik varyasyonlarını dinamik olarak test etmenizi sağlar, bu, Crowdin gibi standart TMS araçlarının yerel olarak desteklemediği bir özelliktir.
|
|
77
77
|
|
|
78
78
|
Crowdin, `.po`, `.xml` ve `.yaml` gibi eski tipler de dahil olmak üzere çok çeşitli dosya formatlarını destekler; bu, yerleşik iş akışlarına veya daha eski sistemlere sahip projeler için faydalı olabilir. Buna karşılık Intlayer ağırlıklı olarak `.json`, `.js` ve `.ts` gibi modern web odaklı formatlarla çalışır. Bu, Intlayer'ın tüm eski dosya formatlarıyla uyumlu olmayabileceği anlamına gelir; bu, eski platformlardan geçiş yapan ekipler için dikkate alınması gereken bir husustur.
|
|
79
79
|
|
|
@@ -29,10 +29,6 @@ history:
|
|
|
29
29
|
|
|
30
30
|
Özünde, TMS tarihsel olarak teknik kod (string'lerin bulunduğu yer) ile kültürü anlayan insan dil uzmanları arasında bir köprü olmuştur.
|
|
31
31
|
|
|
32
|
-
Çeviri Yönetim Sistemi (TMS), çeviri ve yerelleştirme (L10n) süreçlerini otomatikleştirmek ve düzene sokmak için tasarlanmış bir yazılım platformudur. Geleneksel olarak bir TMS, içeriğin yüklendiği, düzenlendiği ve insan çevirmenlere atandığı merkezi bir merkez olarak hizmet eder. Çalışma akışlarını yönetir, çeviri belleklerini (aynı cümlenin iki kez çevrilmesini önlemek için) saklar ve çevrilmiş dosyaların geliştiricilere veya içerik yöneticilerine teslim edilmesini sağlar.
|
|
33
|
-
|
|
34
|
-
Özünde, bir TMS tarihsel olarak teknik kod (metinlerin bulunduğu yer) ile kültürü anlayan insan dil uzmanları arasında bir köprü olmuştur.
|
|
35
|
-
|
|
36
32
|
# Phrase (eski adıyla PhraseApp)
|
|
37
33
|
|
|
38
34
|
Phrase, kurumsal lokalizasyon alanında önemli bir oyuncudur. Eskiden PhraseApp olarak bilinen Phrase, özellikle Memsource ile birleşmesinin ardından önemli ölçüde büyümüştür. Kendini, güçlü API yetenekleri ve geniş format desteği sunan, yazılım lokalizasyonu için tasarlanmış kapsamlı bir Localization Suite olarak konumlandırır.
|
|
@@ -63,22 +59,15 @@ Intlayer, Yapay Zeka çağında doğmuş, özellikle modern JavaScript/TypeScrip
|
|
|
63
59
|
|
|
64
60
|
# Yan yana karşılaştırma
|
|
65
61
|
|
|
66
|
-
| Özellik | Phrase (Kurumsal TMS)
|
|
67
|
-
| :----------------------- |
|
|
68
|
-
| **Temel Felsefe** | Kurumsal Yönetişim & İş Akışı.
|
|
69
|
-
| **Fiyatlandırma Modeli** | Özel Kurumsal / Seat bazlı (Yüksek).
|
|
70
|
-
| **Entegrasyon** | Ağır API / CLI kullanımı.
|
|
71
|
-
| **Güncellemeler** | Senkronizasyon gerekli / Pipeline'a bağlı.
|
|
72
|
-
| **Dosya Formatları** | Son derece geniş (Legacy & Dökümanlar).
|
|
73
|
-
| **Testler** | QA Kontrolleri / LQA adımları.
|
|
74
|
-
| **Hosting** | SaaS (Tamamen Kurumsal).
|
|
75
|
-
| **Core Philosophy** | Kurumsal Yönetişim ve İş Akışı. | İçerik mantığını ve AI üretimini yönetir. |
|
|
76
|
-
| **Pricing Model** | Özel Kurumsal / Kullanıcı Başına (Yüksek). | Kendi çıkarım maliyetinizi ödersiniz (Kendi Anahtarınızı Getirin). |
|
|
77
|
-
| **Integration** | Yoğun API / CLI kullanımı. | Derin kod entegrasyonu (Deklaratif). |
|
|
78
|
-
| **Updates** | Senkronizasyon gerekli / Pipeline'a bağımlı. | Kod tabanıyla veya canlı uygulamayla anlık senkronizasyon. |
|
|
79
|
-
| **File Formats** | Oldukça geniş (Eski Sistemler & Belgeler). | Modern Web (JSON, JS, TS). |
|
|
80
|
-
| **Testing** | QA Kontrolleri / LQA adımları. | CI / CLI / A/B Testleri. |
|
|
81
|
-
| **Hosting** | SaaS (Sadece Kurumsal). | Açık Kaynak & Kendi Sunucunuzda Barındırılabilir (Docker). |
|
|
62
|
+
| Özellik | Phrase (Kurumsal TMS) | Intlayer (AI-Native) |
|
|
63
|
+
| :----------------------- | :----------------------------------------- | :-------------------------------------------------------- |
|
|
64
|
+
| **Temel Felsefe** | Kurumsal Yönetişim & İş Akışı. | İçerik mantığını & AI üretimini yönetir. |
|
|
65
|
+
| **Fiyatlandırma Modeli** | Özel Kurumsal / Seat bazlı (Yüksek). | Kendi inference'ınız için ödeme (BYO Key). |
|
|
66
|
+
| **Entegrasyon** | Ağır API / CLI kullanımı. | Derin kod entegrasyonu (Deklaratif). |
|
|
67
|
+
| **Güncellemeler** | Senkronizasyon gerekli / Pipeline'a bağlı. | Kod tabanı veya canlı uygulama ile anında senkronizasyon. |
|
|
68
|
+
| **Dosya Formatları** | Son derece geniş (Legacy & Dökümanlar). | Modern Web (JSON, JS, TS). |
|
|
69
|
+
| **Testler** | QA Kontrolleri / LQA adımları. | CI / CLI / A/B Testleri. |
|
|
70
|
+
| **Hosting** | SaaS (Tamamen Kurumsal). | Açık Kaynak & Self-Host edilebilir (Docker). |
|
|
82
71
|
|
|
83
72
|
Intlayer, içeriğinizle derin entegrasyona izin veren eksiksiz, hepsi bir arada bir i18n çözümü sunar. Uzaktaki içerikleriniz doğrudan codebase'inizle veya canlı uygulamanızla senkronize edilebilir. Karşılaştırıldığında, Phrase güçlü fakat karmaşık bir dış bağımlılıktır ve genellikle etkili çalışabilmesi için adanmış yerelleştirme yöneticileri gerektirir.
|
|
84
73
|
|
|
@@ -86,4 +75,4 @@ Ayrıca Intlayer, Feature Flag veya A/B testing aracı olarak kullanılabilir; b
|
|
|
86
75
|
|
|
87
76
|
Phrase, PDF'leri, altyazıları ve yazılımları eşzamanlı olarak çevirmek gibi karmaşık, çok formatlı kurumsal ihtiyaçlar için tartışılmaz bir seçenek olsa da, web uygulamaları geliştiren ve tam sahiplik, type safety ve kurumsal gereksinimlerin getirdiği ek yük olmadan modern, AI destekli bir iş akışı isteyen ürün ekipleri için Intlayer daha üstün bir tercihtir.
|
|
88
77
|
|
|
89
|
-
Son olarak, veri egemenliğini ve kontrolü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları doğrudan depo içinde mevcuttur; bu, yerelleştirme altyapınızın tam sahipliğini sağlar
|
|
78
|
+
Son olarak, veri egemenliğini ve kontrolü önceliklendirenler için Intlayer açık kaynaklıdır ve kendi sunucunuzda barındırılabilir. Docker dosyaları doğrudan depo içinde mevcuttur; bu, yerelleştirme altyapınızın tam sahipliğini sağlar. Phrase'in kapalı SaaS ekosistemiyle mümkün olmayan bir şeydir.
|
|
@@ -50,7 +50,29 @@ Bir Angular uygulamasını çevirmek, birkaç zorluk getirir:
|
|
|
50
50
|
|
|
51
51
|
Angular yerleşik bir i18n çerçevesi sunar ve çok dilli kurulumunuzu basitleştirmek için tasarlanmış birkaç üçüncü taraf kütüphanesi vardır. Aşağıda en popüler çözümlerden bazıları bulunmaktadır.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Web sitesi: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Genel Bakış**
|
|
58
|
+
**Intlayer**, modern Angular (ve diğer) web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir. Bildirimsel bir yaklaşım sunarak çeviri sözlüklerini doğrudan bileşenleriniz içinde tanımlamanızı sağlar.
|
|
59
|
+
|
|
60
|
+
**Ana Özellikler**
|
|
61
|
+
|
|
62
|
+
- **Çeviri Bildirimi**: Tüm çevirilerin tek bir dosyada, bileşen düzeyinde bildirilmesine izin verir, bakım ve ölçeklendirmeyi kolaylaştırır.
|
|
63
|
+
- **TypeScript ve Otomatik Tamamlama**: Çeviri anahtarları için otomatik oluşturulan tür tanımlarını sunar, sağlam otomatik tamamlama ve hata algılama sağlar.
|
|
64
|
+
- **Sunucu Bileşenleri ve SSR**: Hem sunucu tarafında işleme (SSR) hem de sunucu bileşenleri göz önünde bulundurularak oluşturulmuştur, yerelleştirilmiş içeriğin hem istemci hem de sunucuda verimli bir şekilde işlenmesini sağlar.
|
|
65
|
+
- **SEO İçerikli Yerelleştirilmiş Meta Veriler ve URL'ler**: Keşfedilebilirliği ve SEO'yu iyileştirmek için dinamik yerel ayar tabanlı rotaları, site haritalarını ve robots.txt girişlerini kolayca yönetin.
|
|
66
|
+
- **Sorunsuz Entegrasyon**: Angular CLI ve diğer araçlarla uyumlu, kurulumu basit hale getirir.
|
|
67
|
+
- **Eşzamansız Yükleme**: Çeviri sözlüklerini dinamik olarak yükleyin, başlangıç paket boyutunu azaltın ve performansı iyileştirin.
|
|
68
|
+
|
|
69
|
+
**Dikkat Edilmesi Gerekenler**
|
|
70
|
+
|
|
71
|
+
- **Topluluk ve Ekosistem**: Büyümekte olsa da, ekosistem daha yeni, bu yüzden topluluk odaklı eklentiler ve araçlar daha yerleşik çözümlere kıyasla daha sınırlı olabilir.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. Angular'ın Yerleşik i18n'ı
|
|
54
76
|
|
|
55
77
|
**Genel Bakış**
|
|
56
78
|
Angular, çeviri dizelerini çıkarma, çoğullaştırma ve enterpolasyonu işleme ve çevirileri derleme zamanında entegre etme araçları içeren **yerleşik bir i18n** sistemiyle gelir. Bu resmi çözüm, daha küçük projeler veya Angular'ın önerilen yapısına yakından uyabilenler için güçlüdür.
|
|
@@ -70,7 +92,7 @@ Angular, çeviri dizelerini çıkarma, çoğullaştırma ve enterpolasyonu işle
|
|
|
70
92
|
|
|
71
93
|
---
|
|
72
94
|
|
|
73
|
-
###
|
|
95
|
+
### 3. ngx-translate
|
|
74
96
|
|
|
75
97
|
Web sitesi: [https://github.com/ngx-translate/core](https://github.com/ngx-translate/core)
|
|
76
98
|
|
|
@@ -92,7 +114,7 @@ Web sitesi: [https://github.com/ngx-translate/core](https://github.com/ngx-trans
|
|
|
92
114
|
|
|
93
115
|
---
|
|
94
116
|
|
|
95
|
-
###
|
|
117
|
+
### 4. Transloco
|
|
96
118
|
|
|
97
119
|
Web sitesi: [https://ngneat.github.io/transloco/](https://ngneat.github.io/transloco/)
|
|
98
120
|
|
|
@@ -50,7 +50,29 @@ Translating a Svelte application can present several hurdles:
|
|
|
50
50
|
|
|
51
51
|
Svelte doesn’t provide a native, built-in i18n solution (as Angular does), but the community has created a variety of robust libraries and patterns. Below are several popular approaches.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Web sitesi: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Genel Bakış**
|
|
58
|
+
**Intlayer**, modern Svelte (ve diğer) web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir. Bildirimsel bir yaklaşım sunarak çeviri sözlüklerini doğrudan bileşenleriniz içinde tanımlamanızı sağlar.
|
|
59
|
+
|
|
60
|
+
**Ana Özellikler**
|
|
61
|
+
|
|
62
|
+
- **Çeviri Bildirimi**: Tüm çevirilerin tek bir dosyada, bileşen düzeyinde bildirilmesine izin verir, bakım ve ölçeklendirmeyi kolaylaştırır.
|
|
63
|
+
- **TypeScript ve Otomatik Tamamlama**: Çeviri anahtarları için otomatik oluşturulan tür tanımlarını sunar, sağlam otomatik tamamlama ve hata algılama sağlar.
|
|
64
|
+
- **Sunucu Bileşenleri ve SSR**: Hem sunucu tarafında işleme (SSR) hem de sunucu bileşenleri göz önünde bulundurularak oluşturulmuştur, yerelleştirilmiş içeriğin hem istemci hem de sunucuda verimli bir şekilde işlenmesini sağlar.
|
|
65
|
+
- **SEO İçerikli Yerelleştirilmiş Meta Veriler ve URL'ler**: Keşfedilebilirliği ve SEO'yu iyileştirmek için dinamik yerel ayar tabanlı rotaları, site haritalarını ve robots.txt girişlerini kolayca yönetin.
|
|
66
|
+
- **Sorunsuz Entegrasyon**: SvelteKit ve diğer araçlarla uyumlu, kurulumu basit hale getirir.
|
|
67
|
+
- **Eşzamansız Yükleme**: Çeviri sözlüklerini dinamik olarak yükleyin, başlangıç paket boyutunu azaltın ve performansı iyileştirin.
|
|
68
|
+
|
|
69
|
+
**Dikkat Edilmesi Gerekenler**
|
|
70
|
+
|
|
71
|
+
- **Topluluk ve Ekosistem**: Büyümekte olsa da, ekosistem daha yeni, bu yüzden topluluk odaklı eklentiler ve araçlar daha yerleşik çözümlere kıyasla daha sınırlı olabilir.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. svelte-i18n
|
|
54
76
|
|
|
55
77
|
Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
78
|
|
|
@@ -72,7 +94,7 @@ Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaise
|
|
|
72
94
|
|
|
73
95
|
---
|
|
74
96
|
|
|
75
|
-
###
|
|
97
|
+
### 3. svelte-intl-precompile
|
|
76
98
|
|
|
77
99
|
Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
100
|
|
|
@@ -94,7 +116,7 @@ Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.
|
|
|
94
116
|
|
|
95
117
|
---
|
|
96
118
|
|
|
97
|
-
###
|
|
119
|
+
### 4. i18next with Svelte / SvelteKit
|
|
98
120
|
|
|
99
121
|
Website: [https://www.i18next.com/](https://www.i18next.com/)
|
|
100
122
|
|
|
@@ -52,7 +52,21 @@ Aşağıda, Vue uygulamalarınıza uluslararasılaştırmayı dahil etmek için
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> Web sitesi: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**Genel Bakış**
|
|
60
|
+
**Intlayer**, **Vue** dahil olmak üzere birden fazla framework genelinde çoklu dil desteğini basitleştirmeyi amaçlayan açık kaynaklı bir i18n çözümüdür. Bildirimsel bir yaklaşımı, güçlü tiplemeyi ve standart Vue'da yaygın olmasa da diğer ekosistemlerdeki SSR desteğini vurgular.
|
|
61
|
+
|
|
62
|
+
**Temel Özellikler**
|
|
63
|
+
|
|
64
|
+
- **Bildirimsel Çeviri**: Daha temiz bir mimari için çeviri sözlüklerini bileşen düzeyinde veya merkezi bir dosyada tanımlayın.
|
|
65
|
+
- **TypeScript ve Otomatik Tamamlama (Web)**: Bu özellik temel olarak web frameworklerine fayda sağlasa da, tiplendirilmiş çeviri yaklaşımı Vue'da yapılandırılmış kod yazımına hala rehberlik edebilir.
|
|
66
|
+
- **Asenkron Yükleme**: Çeviri varlıklarını dinamik olarak yükleyerek çok dilli uygulamalar için başlangıç paket boyutunu potansiyel olarak azaltın.
|
|
67
|
+
- **Vue ile Entegrasyon**: Yapılandırılmış çeviriler için Intlayer yaklaşımından yararlanmak üzere temel bir entegrasyon kurulabilir.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> Website: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ Aşağıda, Vue uygulamalarınıza uluslararasılaştırmayı dahil etmek için
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (Vue Entegrasyonu)
|
|
87
101
|
|
|
88
102
|
> Website: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|
|
@@ -54,7 +54,7 @@ Her çok dilli uygulamanın uygulaması gereken kontrol listesi:
|
|
|
54
54
|
- **Yerelleştirilmiş bağlantılar kullanın**
|
|
55
55
|
Örnek: Varsayılan `/about` yerine `<a href="/fr/about">À propos</a>` kullanın.
|
|
56
56
|
|
|
57
|
-
Bunlar basit adımlar
|
|
57
|
+
Bunlar basit adımlar, ancak atlanmaları görünürlüğünüzü kaybetmenize neden olabilir.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -95,7 +95,7 @@ Bu trade-off (parça boyutu vs örtüşme) RAG verimliliği için anahtardır:
|
|
|
95
95
|
|
|
96
96
|
## Adım 3: Embeddings Oluşturma
|
|
97
97
|
|
|
98
|
-
Dokümanlar parçalandıktan sonra, **embeddings** oluştururuz
|
|
98
|
+
Dokümanlar parçalandıktan sonra, **embeddings** oluştururuz, her parçayı temsil eden yüksek boyutlu vektörler.
|
|
99
99
|
|
|
100
100
|
OpenAI'nin text-embedding-3-large modelini kullandım, ama herhangi bir modern embedding modelini kullanabilirsiniz.
|
|
101
101
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Аргументи за та проти компіляторного i18n
|
|
22
22
|
|
|
23
|
-
Якщо ви будуєте вебдодатки більше ніж десятиліття, ви знаєте, що інтернаціоналізація (i18n) завжди була точкою тертя. Зазвичай це завдання, яке ніхто не хоче
|
|
23
|
+
Якщо ви будуєте вебдодатки більше ніж десятиліття, ви знаєте, що інтернаціоналізація (i18n) завжди була точкою тертя. Зазвичай це завдання, яке ніхто не хоче виконувати, витягування рядків, керування JSON-файлами та турботи про правила множини.
|
|
24
24
|
|
|
25
|
-
Нещодавно з'явилася нова хвиля **"Compiler-based" i18n tools**, які обіцяють зробити цей біль минулим. Пропозиція приваблива: **Просто вписуйте текст у ваші компоненти, а build tool зробить усе інше.** Жодних ключів, жодних
|
|
25
|
+
Нещодавно з'явилася нова хвиля **"Compiler-based" i18n tools**, які обіцяють зробити цей біль минулим. Пропозиція приваблива: **Просто вписуйте текст у ваші компоненти, а build tool зробить усе інше.** Жодних ключів, жодних імпортів, лише магія.
|
|
26
26
|
|
|
27
27
|
Але, як і з усіма абстракціями в software engineering, магія має свою ціну.
|
|
28
28
|
|
|
@@ -68,7 +68,7 @@ slugs:
|
|
|
68
68
|
|
|
69
69
|
Хоча **Intlayer** є рішенням, яке в основі заохочує **декларативний підхід** до вашого контенту, воно включає компілятор, щоб пришвидшити розробку або полегшити швидке прототипування.
|
|
70
70
|
|
|
71
|
-
Компілятор Intlayer обходить AST (Abstract Syntax Tree) ваших компонентів React, Vue або Svelte, а також інші файли JavaScript/TypeScript. Його
|
|
71
|
+
Компілятор Intlayer обходить AST (Abstract Syntax Tree) ваших компонентів React, Vue або Svelte, а також інші файли JavaScript/TypeScript. Його роль, виявляти жорстко закодовані рядки та витягувати їх у спеціальні декларації `.content`.
|
|
72
72
|
|
|
73
73
|
> Для детальнішої інформації перегляньте документацію: [Документація компілятора Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md)
|
|
74
74
|
|
|
@@ -82,14 +82,14 @@ slugs:
|
|
|
82
82
|
|
|
83
83
|
### 2. Місія порятунку для legacy-коду
|
|
84
84
|
|
|
85
|
-
Уявіть, що ви успадкували величезну codebase з 5 000 компонентів і жодного перекладу. Оснащення цього вручну на основі
|
|
85
|
+
Уявіть, що ви успадкували величезну codebase з 5 000 компонентів і жодного перекладу. Оснащення цього вручну на основі ключів, це кошмар на кілька місяців роботи. Інструмент на базі компілятора виступає як стратегія порятунку, миттєво витягуючи тисячі рядків, не вимагаючи від вас жодного ручного редагування файлів.
|
|
86
86
|
|
|
87
87
|
### 3. Ера AI
|
|
88
88
|
|
|
89
89
|
Це сучасна перевага, яку не варто ігнорувати. AI coding assistants (наприклад, Copilot або ChatGPT) природно генерують стандартний JSX/HTML. Вони не знають вашої конкретної схеми ключів для перекладів.
|
|
90
90
|
|
|
91
91
|
- **Declarative:** Вам доведеться переписувати вихідний код, згенерований AI, замінюючи текст на ключі.
|
|
92
|
-
- **Compiler:** Ви копіюєте та вставляєте код від AI
|
|
92
|
+
- **Compiler:** Ви копіюєте та вставляєте код від AI, і все працює одразу.
|
|
93
93
|
|
|
94
94
|
## Перевірка реальності: чому «магія» небезпечна
|
|
95
95
|
|
|
@@ -97,11 +97,11 @@ slugs:
|
|
|
97
97
|
|
|
98
98
|
### Евристична крихкість (гра вгадування)
|
|
99
99
|
|
|
100
|
-
Компілятор має вгадувати, що є контентом, а
|
|
100
|
+
Компілятор має вгадувати, що є контентом, а що, кодом. Це призводить до крайніх випадків, де ви в кінцевому підсумку "боретеся" з інструментом.
|
|
101
101
|
|
|
102
102
|
Розгляньте ці сценарії:
|
|
103
103
|
|
|
104
|
-
- Чи буде витягнуто `<span className="active"></span>`? (Це рядок, але скоріше за
|
|
104
|
+
- Чи буде витягнуто `<span className="active"></span>`? (Це рядок, але скоріше за все, клас).
|
|
105
105
|
- Чи буде витягнуто `<span status="pending"></span>`? (Це значення пропса).
|
|
106
106
|
- Чи буде витягнуто `<span>{"Hello World"}</span>`? (Це JS-вираз).
|
|
107
107
|
- Чи буде витягнуто `<span>Hello {name}. How are you?</span>`? (Інтерполяція складна).
|
|
@@ -183,7 +183,7 @@ Intlayer використовує комбінований підхід для
|
|
|
183
183
|
|
|
184
184
|
Чесно кажучи, традиційний декларативний підхід теж не ідеальний. У нього є свої «підводні камені».
|
|
185
185
|
|
|
186
|
-
1. **Пекло неймспейсів:** Часто доводиться вручну керувати тим, які JSON-файли завантажувати (`common.json`, `dashboard.json`, `footer.json`). Якщо забути
|
|
186
|
+
1. **Пекло неймспейсів:** Часто доводиться вручну керувати тим, які JSON-файли завантажувати (`common.json`, `dashboard.json`, `footer.json`). Якщо забути один, користувач побачить сирі ключі.
|
|
187
187
|
2. **Надмірне завантаження:** Без ретельної конфігурації дуже легко випадково завантажити _усі_ ваші ключі перекладу для _всіх_ сторінок при початковому завантаженні, що роздутує розмір вашого бандла.
|
|
188
188
|
3. **Дрейф синхронізації:** Часто ключі залишаються в JSON-файлі задовго після того, як компонент, який їх використовував, був видалений. Ваші файли перекладів ростуть нескінченно, заповнені "zombie keys."
|
|
189
189
|
|
|
@@ -199,23 +199,23 @@ Intlayer пропонує змішаний підхід, який дозволя
|
|
|
199
199
|
|
|
200
200
|
1. **Гранулярність:** Ви зберігаєте переклади поруч із компонентами (підвищуючи модульність і ефективність tree-shaking).
|
|
201
201
|
2. **Безпека:** Переклад стає явним кодом, а не прихованою магією на етапі збірки.
|
|
202
|
-
3. **Відсутність lock-in:** Оскільки код перетворюється в декларативну структуру у вашому репозиторії, ви можете легко натиснути Tab або скористатися Copilot вашого IDE, щоб згенерувати декларації
|
|
202
|
+
3. **Відсутність lock-in:** Оскільки код перетворюється в декларативну структуру у вашому репозиторії, ви можете легко натиснути Tab або скористатися Copilot вашого IDE, щоб згенерувати декларації контенту, ви не ховаєте логіку в плагіні webpack.
|
|
203
203
|
|
|
204
204
|
## Висновок
|
|
205
205
|
|
|
206
206
|
Отже, що обрати?
|
|
207
207
|
|
|
208
208
|
**Якщо ви створюєте MVP або хочете рухатися швидко:**
|
|
209
|
-
Підхід на основі
|
|
209
|
+
Підхід на основі компілятора, цілком прийнятний вибір. Він дозволяє працювати надзвичайно швидко. Вам не потрібно хвилюватися про структури файлів чи ключі. Ви просто розробляєте. Технічний борг, це проблема «майбутнього вас».
|
|
210
210
|
|
|
211
211
|
**Якщо ви Junior Developer або вам не важлива оптимізація:**
|
|
212
|
-
Якщо ви прагнете мінімального ручного управління, підхід на основі компілятора, ймовірно, найкращий. Вам не доведеться самостійно працювати з ключами чи файлами
|
|
212
|
+
Якщо ви прагнете мінімального ручного управління, підхід на основі компілятора, ймовірно, найкращий. Вам не доведеться самостійно працювати з ключами чи файлами перекладів, просто пишіть текст, а компілятор автоматизує решту. Це зменшує зусилля налаштування й типові помилки i18n, пов'язані з ручними кроками.
|
|
213
213
|
|
|
214
214
|
**Якщо ви інтернаціоналізуєте існуючий проєкт, який уже містить тисячі компонентів для рефакторингу:**
|
|
215
215
|
Підхід, заснований на компіляторі, може бути прагматичним вибором у цій ситуації. Початкова фаза витягування може заощадити тижні або місяці ручної роботи. Однак розгляньте використання інструмента, такого як команда Intlayer `transform`, яка може витягувати рядки й перетворювати їх на явні декларативні оголошення контенту. Це дає вам швидкість автоматизації, одночасно зберігаючи безпеку та портативність декларативного підходу. Ви отримуєте найкраще з обох світів: швидку початкову міграцію без довгострокового архітектурного боргу.
|
|
216
216
|
|
|
217
217
|
**Якщо ви розробляєте професійний додаток корпоративного рівня:**
|
|
218
|
-
«Магія»
|
|
218
|
+
«Магія» зазвичай, погана ідея. Вам потрібен контроль.
|
|
219
219
|
|
|
220
220
|
- Потрібно обробляти динамічні дані з бекендів.
|
|
221
221
|
- Потрібно забезпечити продуктивність на слабких пристроях (уникати hook explosions).
|