@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
package/README.md
CHANGED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "معنى i18n: ما هي التدويل ولماذا هي مهمة؟"
|
|
5
|
+
description: "اكتشف المعنى الحقيقي لـ i18n في تطوير البرمجيات. تعرف على ماهية التدويل، ولماذا يتم اختصاره بـ i18n، وكيف يؤثر على الانتشار العالمي."
|
|
6
|
+
keywords:
|
|
7
|
+
- معنى i18n
|
|
8
|
+
- ماذا يرمز i18n
|
|
9
|
+
- i18n
|
|
10
|
+
- التدويل
|
|
11
|
+
- التوطين
|
|
12
|
+
- مدونة
|
|
13
|
+
- تطوير الويب
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# معنى i18n: ما هي التدويل ولماذا هي مهمة؟
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## فهم معنى "i18n"
|
|
24
|
+
|
|
25
|
+
إذا كنت تعمل في مجال تطوير البرمجيات، أو تصميم الويب، أو التسويق الرقمي، فمن المحتمل أنك واجهت مصطلح **i18n**. المعنى الحقيقي لـ **i18n** هو ببساطة اختصار رقمي لكلمة **internationalization** (التدويل).
|
|
26
|
+
|
|
27
|
+
ولكن لماذا "i18n"؟ يتم إنشاء الاختصار عن طريق أخذ الحرف الأول من كلمة "internationalization" (**i**)، والحرف الأخير (**n**)، وعد الكلمات الموجودة بينهما (**18**). يُستخدم هذا الاصطلاح بشكل متكرر في صناعة التكنولوجيا لاختصار المصطلحات الطويلة والمرهقة (مثال شائع آخر هو **l10n** للتوطين - localization).
|
|
28
|
+
|
|
29
|
+
من الناحية الفنية، يشير **معنى i18n** إلى عملية تصميم وإعداد تطبيق برمجي أو موقع ويب أو منتج بحيث يمكنه دعم لغات متعددة ومعايير إقليمية واتفاقيات ثقافية بسهولة - كل ذلك دون الحاجة إلى تغييرات هندسية كبيرة في كود المصدر الأساسي.
|
|
30
|
+
|
|
31
|
+
## المعنى الجوهري لـ i18n في الممارسة العملية
|
|
32
|
+
|
|
33
|
+
يتجاوز فهم معنى i18n مجرد معرفة ما يرمز إليه الاختصار. يتعلق الأمر بالاعتراف بالمبادئ المعمارية الكامنة وراءه. عندما يتم "تدويل" مشروع بشكل صحيح، فهذا يعني أن المطورين قد فصلوا المحتوى عن الكود.
|
|
34
|
+
|
|
35
|
+
بدلاً من كتابة النص مباشرة في التطبيق بهذا الشكل:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>إرسال</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
يستخدم التطبيق الجاهز لـ i18n مفاتيح ترجمة أو متغيرات:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
يضمن ذلك أن التطبيق يمكنه تحميل قاموس اللغة الصحيح ديناميكيًا (مثل الإنجليزية، الإسبانية، اليابانية) بناءً على تفضيلات المستخدم، دون إعادة كتابة المكون.
|
|
48
|
+
|
|
49
|
+
## لماذا يعد معنى i18n حاسمًا لعملك
|
|
50
|
+
|
|
51
|
+
إن استيعاب **معنى i18n** هو مجرد الخطوة الأولى. إن فهم _لماذا_ هو أمر بالغ الأهمية للمنتجات الرقمية الحديثة هو ما يميز التطبيقات العالمية الناجحة عن التطبيقات المحلية.
|
|
52
|
+
|
|
53
|
+
### كسر حواجز اللغة
|
|
54
|
+
|
|
55
|
+
أوضح تطبيق لمعنى i18n هو الترجمة. من خلال تدويل تطبيقك من اليوم الأول، فإنك تبني أساسًا يسمح لك بترجمة واجهتك إلى عشرات اللغات بسلاسة. هذا أمر ضروري لفتح أسواق عالمية جديدة.
|
|
56
|
+
|
|
57
|
+
### التكيف الثقافي والإقليمي
|
|
58
|
+
|
|
59
|
+
يمتد معنى i18n إلى ما هو أبعد من اللغة. يدعم التدويل الحقيقي ما يلي:
|
|
60
|
+
|
|
61
|
+
- **تنسيقات التاريخ والوقت:** عرض `MM/DD/YYYY` لمستخدمي الولايات المتحدة مقابل `DD/MM/YYYY` للمستخدمين الأوروبيين.
|
|
62
|
+
- **تنسيق الأرقام:** الاعتراف بأن `1,000.50` في الولايات المتحدة غالبًا ما يُكتب `1.000,50` في أجزاء من أوروبا.
|
|
63
|
+
- **العملات:** تكييف `$99.00` مقابل `99,00 €`.
|
|
64
|
+
- **اتجاة النص:** دعم اللغات التي تُكتب من اليمين إلى اليسار (RTL) مثل العربية والعبرية.
|
|
65
|
+
|
|
66
|
+
### تحسين أداء SEO
|
|
67
|
+
|
|
68
|
+
تعطي محركات البحث الأولوية للمحتوى ذي الصلة بلغة المستخدم ومنطقته. يتيح لك تطبيق المبادئ الكامنة وراء معنى i18n هيكلة موقع الويب الخاص بك (على سبيل المثال، باستخدام علامات `hreflang` وعناوين URL المحلية) للترتيب في مرتبة أعلى في بلدان متعددة، مما يؤدي إلى جلب حركة مرور عالمية طبيعية.
|
|
69
|
+
|
|
70
|
+
## التدويل (i18n) مقابل التوطين (l10n)
|
|
71
|
+
|
|
72
|
+
لفهم **معنى i18n** تمامًا، يجب أن تميزه عن **l10n** (التوطين).
|
|
73
|
+
|
|
74
|
+
- **i18n (التدويل):** التحضير الفني وإطار عمل التصميم الهيكلي الذي يجعل التكيف ممكنًا. أمثلة: دعم ترميز UTF-8، وتجريد السلاسل النصية، وجعل تخطيطات واجهة المستخدم مرنة للكلمات الأطول.
|
|
75
|
+
- **l10n (التوطين):** التكيف الفعلي للمنتج لمنطقة معينة. أمثلة: ترجمة النص الإنجليزي إلى العربية، وتعديل الصور لتناسب المعايير الثقافية، وتحديد العملة المحلية.
|
|
76
|
+
|
|
77
|
+
فكر في **i18n** كبناء سيارة حيث يمكن نقل عجلة القيادة إلى الجانب الأيسر أو الأيمن. **l10n** هو الفعل الفعلي لنقل العجلة إلى الجانب الأيمن لبيع السيارة في المملكة المتحدة.
|
|
78
|
+
|
|
79
|
+
## المفاهيم الخاطئة الشائعة حول معنى i18n
|
|
80
|
+
|
|
81
|
+
1. **"i18n تعني الترجمة فقط."**
|
|
82
|
+
بينما تعد الترجمة جزءًا كبيرًا من النتيجة النهائية، فإن المعنى الحقيقي لـ i18n يشمل التنسيق، وقواعد الجمع، واتجاه النص، والجاهزية المعمارية.
|
|
83
|
+
2. **"يمكننا إضافة i18n لاحقًا."**
|
|
84
|
+
إن تعديل تطبيق للتدويل لاحقًا أمر صعب للغاية. السلاسل النصية المكتوبة مباشرة، ومكونات واجهة المستخدم الجامدة، وتنسيقات التاريخ غير المتوافقة يمكن أن تؤدي إلى ديون فنية هائلة. التخطيط لـ i18n من البداية هو ممارسة أساسية جوهرية.
|
|
85
|
+
|
|
86
|
+
## كيفية تنفيذ i18n بفعالية
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
الآن بعد أن أثبتنا **المعنى الحقيقي لـ i18n**، كيف تطبقه؟
|
|
91
|
+
|
|
92
|
+
- **استخدم إطار عمل i18n معروف:** لا تعيد اختراع العجلة. سواء كنت تستخدم React أو Vue أو Next.js أو JavaScript العادي، فهناك مكتبات i18n محددة مصممة للتعامل مع المهام الثقيلة (مثل الجمع والتبديل).
|
|
93
|
+
- **جرد جميع النصوص المواجهة للمستخدم:** تأكد من عدم وجود نصوص مكتوبة مباشرة في مكونات واجهة المستخدم الخاصة بك.
|
|
94
|
+
- **استخدم نظام إدارة ترجمة قوي:** أدوات مثل **Intlayer** تسد الفجوة بين المطورين والمترجمين. يعمل Intlayer كـ CMS بدون رأس مدمج تمامًا مع قاعدة الكود الخاصة بك، مما يسمح لمديري المحتوى بتحديث الترجمات مرئيًا دون مطالبة المطور بتشغيل بناء جديد.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### عرض قائمة مكتبات وأدوات i18n لكل تكنولوجيا
|
|
99
|
+
|
|
100
|
+
إذا كنت تبحث عن قائمة بمكتبات وأدوات i18n لكل تكنولوجيا، فراجع الموارد التالية:
|
|
101
|
+
|
|
102
|
+
### لأنظمة إدارة المحتوى (CMS)
|
|
103
|
+
|
|
104
|
+
- ووردبريس: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- ويكس: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- دروبال: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### لتطبيقات جافا سكريبت (فرونت إند)
|
|
109
|
+
|
|
110
|
+
- ريأكت: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- أنجولار: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- فيو: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- سفيلت: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- ريأكت نيتيف: [عرض قائمة مكتبات وأدوات i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ar/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## الخاتمة
|
|
119
|
+
|
|
120
|
+
**معنى i18n** هو مفهوم أساسي لأي عمل رقمي حديث يهدف إلى التأثير العالمي. بعيدًا عن كونه مجرد اختصار تقني غريب لـ "التدويل"، يمثل i18n الهندسة المعمارية التقنية المطلوبة لتكييف برامجك بسلاسة مع لغات وثقافات ومعايير إقليمية متنوعة.
|
|
121
|
+
|
|
122
|
+
من خلال فهم معنى i18n واعتماد مبادئه مبكرًا في دورة التطوير الخاصة بك، فإنك توفر وقتًا هندسيًا كبيرًا، وتمنع الديون الفنية المستقبلية، وتضمن أن يقدم تطبيقك تجربة أصلية ومرحبة للمستخدمين في جميع أنحاء العالم.
|
|
123
|
+
|
|
124
|
+
سواء كنت تبني تطبيق هاتف، أو منصة SaaS، أو أداة مؤسسية، فإن تبني المعنى الحقيقي لـ i18n يضمن أن منتجك يمكنه التكيف وجذب المستخدمين من جميع أنحاء العالم، دون الحاجة إلى إعادة كابة كود المصدر باستمرار. من خلال الاستفادة من أفضل الممارسات، وأطر العمل القوية، وإعلان المحتوى المحلي باستخدام منصات مثل Intlayer، يمكن لفرق المنتجات تقديم تجارب برمجية عالمية حقًا.
|
|
@@ -37,11 +37,11 @@ Lokalise لاعب بارز في مشهد TMS الحديث. تأسست عام 201
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
يشتهر Intlayer بشكل أساسي كحل i18n، لكنه يدمج أيضًا headless CMS. على عكس Lokalise، الذي يعمل إلى حد كبير كأداة مزامنة خارجية للـ strings الخاصة بك، يعيش Intlayer أقرب إلى كودك. يتحكم في كامل الـ stack
|
|
40
|
+
يشتهر Intlayer بشكل أساسي كحل i18n، لكنه يدمج أيضًا headless CMS. على عكس Lokalise، الذي يعمل إلى حد كبير كأداة مزامنة خارجية للـ strings الخاصة بك، يعيش Intlayer أقرب إلى كودك. يتحكم في كامل الـ stack, من طبقة التجميع (bundling layer) إلى تسليم المحتوى عن بُعد, مما يؤدي إلى تدفق محتوى أكثر سلاسة وكفاءة.
|
|
41
41
|
|
|
42
42
|
## لماذا تغيّرت المقاربات منذ ظهور الذكاء الاصطناعي؟
|
|
43
43
|
|
|
44
|
-
أتقنت Lokalise جانب "DevOps" من
|
|
44
|
+
أتقنت Lokalise جانب "DevOps" من التوطين, نقل الـ strings تلقائيًا. ومع ذلك، فإن وصول نماذج اللغة الكبيرة (LLMs) غيّر جذريًا مقاربات التوطين. الاختناق لم يعد في _نقل_ الـ strings؛ بل في *توليد*ها.
|
|
45
45
|
|
|
46
46
|
مع نماذج اللغة الكبيرة (LLMs)، انخفضت تكلفة الترجمة بشكل كبير، وزادت السرعة بشكل أُسّي. يتغير دور فريق التوطين من "إدارة المترجمين" إلى "إدارة السياق والمراجعة".
|
|
47
47
|
|
|
@@ -57,7 +57,7 @@ Intlayer هو حل وُلد في عصر الذكاء الاصطناعي. تم ت
|
|
|
57
57
|
|
|
58
58
|
1. **فعالية التكلفة:** أنت لست مقيدًا بنموذج تسعير "لكل مفتاح" أو "لكل مقعد" الذي يعاقب النمو. مع Intlayer، تدفع مقابل الاستدلال الخاص بك (BYO Key)، مما يعني أن تكاليفك تتزايد مباشرةً مع استخدامك الفعلي، وليس بهوامش المنصة.
|
|
59
59
|
2. **تكامل سير العمل:** بينما يتطلب Lokalise مزامنة الملفات (حتى لو كانت مؤتمتة)، يسمح Intlayer بتعريف المحتوى التصريحي (Declarative Content) مباشرةً في ملفات مكوناتك (React, Next.js, إلخ). هذا يبقي السياق بجانب واجهة المستخدم، مما يقلل الأخطاء.
|
|
60
|
-
3. **الإدارة المرئية:** يوفر Intlayer محررًا بصريًا يتفاعل مباشرة مع تطبيقك قيد التشغيل، مما يضمن إجراء التعديلات في السياق البصري
|
|
60
|
+
3. **الإدارة المرئية:** يوفر Intlayer محررًا بصريًا يتفاعل مباشرة مع تطبيقك قيد التشغيل، مما يضمن إجراء التعديلات في السياق البصري الكامل, وهو أمر غالبًا ما يكون منفصلًا في قوائم ملفات أنظمة إدارة الترجمة التقليدية.
|
|
61
61
|
|
|
62
62
|
# المقارنة جنبًا إلى جنب
|
|
63
63
|
|
|
@@ -75,6 +75,6 @@ Intlayer هو حل وُلد في عصر الذكاء الاصطناعي. تم ت
|
|
|
75
75
|
|
|
76
76
|
علاوةً على ذلك، يمكن استخدام Intlayer كأداة Feature Flag أو لاختبار A/B، مما يتيح لك اختبار متغيرات محتوى مختلفة بشكلٍ ديناميكي. بينما تركز Lokalise على ضبط النصوص بدقة، تركز Intlayer على تحسين تجربة المستخدم (user experience) عبر تقديم البيانات بشكلٍ ديناميكي.
|
|
77
77
|
|
|
78
|
-
Lokalise ممتازة لتطبيقات الهواتف المحمولة (iOS/Android) ولعمليات العمل المدفوعة بالتصميم. ومع ذلك، بالنسبة لتطبيقات الويب الحديثة التي تستخدم أُطرًا مثل Next.js أو React، فإن المعالجة الأصلية في Intlayer لملفات `.js` و`.ts` وقواميس JSON توفر تجربة المطور (developer experience, DX) المتفوقة مع دعم كامل لـ TypeScript
|
|
78
|
+
Lokalise ممتازة لتطبيقات الهواتف المحمولة (iOS/Android) ولعمليات العمل المدفوعة بالتصميم. ومع ذلك، بالنسبة لتطبيقات الويب الحديثة التي تستخدم أُطرًا مثل Next.js أو React، فإن المعالجة الأصلية في Intlayer لملفات `.js` و`.ts` وقواميس JSON توفر تجربة المطور (developer experience, DX) المتفوقة مع دعم كامل لـ TypeScript للمحتوى, مما يضمن ألا تقوم بشحن مفتاح ترجمة مفقود مرةً أخرى.
|
|
79
79
|
|
|
80
|
-
وأخيرًا، لأولئك الذين يضعون أولوية لسيادة البيانات والتحكم، فإن Intlayer مفتوح المصدر ويمكن استضافته ذاتيًا. ملفات Docker متاحة مباشرة في المستودع، مما يمنحك ملكية كاملة لبنية التوطين (localization) الخاصة
|
|
80
|
+
وأخيرًا، لأولئك الذين يضعون أولوية لسيادة البيانات والتحكم، فإن Intlayer مفتوح المصدر ويمكن استضافته ذاتيًا. ملفات Docker متاحة مباشرة في المستودع، مما يمنحك ملكية كاملة لبنية التوطين (localization) الخاصة بك, في تناقض صارخ مع نموذج SaaS المغلق لدى Lokalise.
|
|
@@ -31,19 +31,13 @@ history:
|
|
|
31
31
|
|
|
32
32
|
# Crowdin
|
|
33
33
|
|
|
34
|
-
نظام إدارة الترجمة (TMS) هو منصة برمجية مصممة لأتمتة وتبسيط عملية الترجمة والتوطين (L10n). تقليديًا، يعمل الـ TMS كمركز مركزي تُرفع إليه المحتويات، تُنظّم، وتُعيّن إلى مترجمين بشريين. يقوم بإدارة سير العمل، وتخزين ذاكرات الترجمة (لتجنب ترجمة نفس الجملة مرتين)، ويتولى تسليم الملفات المترجمة مرة أخرى إلى المطورين أو مديري المحتوى.
|
|
35
|
-
|
|
36
|
-
باختصار، كان الـ TMS تاريخيًا الجسر بين الشيفرة التقنية (حيث توجد السلاسل النصية — strings) واللغويين البشريين (الذين يفهمون الثقافة).
|
|
37
|
-
|
|
38
|
-
# Crowdin
|
|
39
|
-
|
|
40
34
|
تُعد Crowdin من الروّاد في هذا المجال. تأسست في عام 2009، وظهرت في وقت كان التحدي الأساسي في التعريب يتمثل في الاتصال. كانت مهمتها واضحة: ربط كتّاب النصوص والمترجمين ومالكي المشاريع ببعضهم البعض بفعالية.
|
|
41
35
|
|
|
42
36
|
على مدار أكثر من عقد، كانت Crowdin المعيار الصناعي لإدارة التعريب. حلّت مشكلة التجزؤ من خلال تمكين الفرق من رفع ملفات `.po` أو `.xml` أو `.yaml` والعمل عليها بواسطة المترجمين عبر واجهة سحابية. بنت سمعتها على أتمتة سير العمل المتينة، مما أتاح للشركات التوسع من لغة واحدة إلى عشر لغات دون الغرق في جداول البيانات.
|
|
43
37
|
|
|
44
38
|
# Intlayer
|
|
45
39
|
|
|
46
|
-
يشتهر Intlayer بشكل أساسي كحلّ i18n، ولكنه يدمج أيضًا نظام إدارة محتوى (CMS). على عكس Crowdin، الذي يقتصر دوره على العمل كغلاف لإعداد i18n الموجود لديك، يتحكم Intlayer في كامل
|
|
40
|
+
يشتهر Intlayer بشكل أساسي كحلّ i18n، ولكنه يدمج أيضًا نظام إدارة محتوى (CMS). على عكس Crowdin، الذي يقتصر دوره على العمل كغلاف لإعداد i18n الموجود لديك، يتحكم Intlayer في كامل الستاك, من طبقة التجميع إلى تسليم المحتوى عن بُعد, مما يؤدي إلى تدفّق محتوى أكثر سلاسة وكفاءة.
|
|
47
41
|
|
|
48
42
|
## لماذا تغيّرت البارادايمات منذ ظهور الذكاء الاصطناعي؟
|
|
49
43
|
|
|
@@ -55,7 +49,7 @@ history:
|
|
|
55
49
|
|
|
56
50
|
اليوم، أكثر سير عمل كفاءة هو أن تترجم وتضع صفحاتك على الصعيد العالمي باستخدام الذكاء الاصطناعي (AI) أولاً. ثم، في مرحلة ثانية، تستخدم المحررون البشريون (copywriters) لتحسين المحتوى المحدد عالي الزيارات لرفع معدلات التحويل بمجرد أن يبدأ المنتج في تحقيق إيرادات.
|
|
57
51
|
|
|
58
|
-
على الرغم من أن إيرادات Crowdin
|
|
52
|
+
على الرغم من أن إيرادات Crowdin, المدفوعة أساسًا بحلولها التقليدية المثبتة, لا تزال تحقق أداءً جيدًا، أعتقد أن قطاع التوطين التقليدي سيتعرض لتأثير كبير خلال أفق زمني يمتد من 5 إلى 10 سنوات. نموذج الدفع مقابل كل كلمة أو لكل مقعد لأداة إدارة يقترب من أن يصبح قديمًا.
|
|
59
53
|
|
|
60
54
|
## لماذا يشكل Intlayer بديلاً جيدًا لـ Crowdin؟
|
|
61
55
|
|
|
@@ -79,8 +73,8 @@ Intlayer حل وُلد في عصر الذكاء الاصطناعي. تم تصم
|
|
|
79
73
|
|
|
80
74
|
توفر Intlayer حلاً متكاملاً وشاملاً للـ i18n يتيح تكاملاً عميقًا لمحتواك. يمكن مزامنة المحتوى البعيد مباشرةً مع قاعدة الشيفرة (codebase) أو مع تطبيقك الحي (live application). بالمقارنة، غالبًا ما تتطلب Crowdin إعادة بناء تطبيقك ضمن خط CI/CD لتحديث المحتوى، مما يخلق احتكاكًا بين فريق الترجمة وعملية النشر.
|
|
81
75
|
|
|
82
|
-
علاوةً على ذلك، يمكن استخدام Intlayer كأداة Feature Flag أو لأغراض الاختبار A/B، مما يمكّنك من اختبار متغيرات محتوى مختلفة بشكل
|
|
76
|
+
علاوةً على ذلك، يمكن استخدام Intlayer كأداة Feature Flag أو لأغراض الاختبار A/B، مما يمكّنك من اختبار متغيرات محتوى مختلفة بشكل ديناميكي, وهو أمر لا تدعمه أدوات TMS القياسية مثل Crowdin بشكل أصلي.
|
|
83
77
|
|
|
84
|
-
يدعم Crowdin مجموعة واسعة من صيغ
|
|
78
|
+
يدعم Crowdin مجموعة واسعة من صيغ الملفات, بما في ذلك الأنواع القديمة مثل `.po` و`.xml` و`.yaml`، وهو ما يمكن أن يكون مفيدًا للمشاريع ذات سير عمل راسخ أو الأنظمة الأقدم. بالمقابل، يعمل Intlayer بشكل أساسي مع صيغ حديثة موجهة للويب مثل `.json` و`.js` و`.ts`. هذا يعني أن Intlayer قد لا يكون متوافقًا مع جميع صيغ الملفات القديمة، وهو عامل يجب أخذه في الاعتبار للفرق التي تنتقل من منصات أقدم.
|
|
85
79
|
|
|
86
80
|
وأخيرًا، لأولئك الذين يعطون أولوية لسيادة البيانات والتحكم، فإن Intlayer مفتوح المصدر ويمكن استضافته ذاتيًا. تتوفر ملفات Docker مباشرة في المستودع، مما يمنحك ملكية كاملة لبنية التحتية للتوطين الخاصة بك.
|
|
@@ -29,10 +29,6 @@ history:
|
|
|
29
29
|
|
|
30
30
|
في الجوهر، كان الـ TMS تاريخيًا الجسر بين الشفرة التقنية (حيث تتواجد السلاسل النصية) واللغويين البشريين (الذين يفهمون الثقافة).
|
|
31
31
|
|
|
32
|
-
نظام إدارة الترجمة (TMS) هو منصة برمجية مصممة لأتمتة وتبسيط عملية الترجمة والتوطين (L10n). تقليديًا، يعمل الـ TMS كقطب مركزي تُحمّل إليه المحتويات، وتُنظّم، وتُكلّف إلى المترجمين البشر. يدير سير العمل، يخزن ذاكرات الترجمة (لتفادي ترجمة نفس الجملة مرتين)، ويتولى تسليم الملفات المترجمة مرة أخرى إلى المطورين أو مديري المحتوى.
|
|
33
|
-
|
|
34
|
-
بالمختصر، كان الـ TMS تاريخيًا الجسر بين الشيفرة التقنية (حيث توجد السلاسل النصية) واللغويين البشريين (الذين يفهمون الثقافة).
|
|
35
|
-
|
|
36
32
|
# Phrase (المعروفة سابقًا باسم PhraseApp)
|
|
37
33
|
|
|
38
34
|
تُعَدّ Phrase لاعبًا بارزًا في مجال توطين المؤسسات. كانت تُعرف في الأصل باسم PhraseApp، ونمت بشكل ملحوظ، خاصة بعد اندماجها مع Memsource. وتقدّم نفسها كـ Localization Suite شاملة مصممة لتوطين البرمجيات، وتوفّر قدرات API قوية ودعمًا واسعًا لأنماط/صيغ الملفات.
|
|
@@ -41,7 +37,7 @@ history:
|
|
|
41
37
|
|
|
42
38
|
# إنتلاير
|
|
43
39
|
|
|
44
|
-
يُعرف Intlayer أساسًا كحل i18n، لكنه يدمج أيضًا نظام إدارة محتوى بدون واجهة (headless CMS). على عكس Phrase، التي تعمل كحزمة مؤسسية ضخمة وخارجية، يتصرف Intlayer كطبقة مرنة ومتكاملة مع الشيفرة. يسيطر على كامل
|
|
40
|
+
يُعرف Intlayer أساسًا كحل i18n، لكنه يدمج أيضًا نظام إدارة محتوى بدون واجهة (headless CMS). على عكس Phrase، التي تعمل كحزمة مؤسسية ضخمة وخارجية، يتصرف Intlayer كطبقة مرنة ومتكاملة مع الشيفرة. يسيطر على كامل الستاك, من طبقة التجميع إلى تسليم المحتوى عن بُعد, ما ينتج تدفق محتوى أكثر سلاسة وكفاءة لتطبيقات الويب الحديثة.
|
|
45
41
|
|
|
46
42
|
## لماذا تغيرت النماذج منذ ظهور الذكاء الاصطناعي؟
|
|
47
43
|
|
|
@@ -79,4 +75,4 @@ Intlayer هي حل وُلد في عصر الذكاء الاصطناعي، صُم
|
|
|
79
75
|
|
|
80
76
|
بينما لا يمكن إنكار جدارة Phrase لاحتياجات المؤسسات المعقَّدة ومتعددة الصيغ (على سبيل المثال، ترجمة ملفات PDF والترجمات الفرعية والبرمجيات في وقتٍ واحد)، فإن Intlayer هو الخيار الأفضل لفرق المنتج التي تبني تطبيقات ويب وتريد الملكية الكاملة، وtype safety، وتدفق عمل حديث مدفوع بالذكاء الاصطناعي دون العبء المؤسسي.
|
|
81
77
|
|
|
82
|
-
أخيرًا، بالنسبة لأولئك الذين يُعطون أولوية لسيادة البيانات والتحكم، فإن Intlayer مفتوح المصدر ويمكن استضافته ذاتيًا. ملفات Docker متاحة مباشرة في المستودع، مما يمنحك الملكية الكاملة لبنية التحتية التوطين الخاصة
|
|
78
|
+
أخيرًا، بالنسبة لأولئك الذين يُعطون أولوية لسيادة البيانات والتحكم، فإن Intlayer مفتوح المصدر ويمكن استضافته ذاتيًا. ملفات Docker متاحة مباشرة في المستودع، مما يمنحك الملكية الكاملة لبنية التحتية التوطين الخاصة بك, وهذا أمر مستحيل في نظام Phrase المغلق كخدمة SaaS.
|
|
@@ -50,7 +50,29 @@ slugs:
|
|
|
50
50
|
|
|
51
51
|
لا يوفر Svelte حلاً محليًا مدمجًا لـ i18n (كما هو الحال في Angular)، لكن المجتمع أنشأ مجموعة متنوعة من المكتبات والنماذج القوية. فيما يلي عدة طرق شائعة.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> موقع الويب: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**نظرة عامة**
|
|
58
|
+
**Intlayer** هو مكتبة دولية مفتوحة المصدر (i18n) مبتكرة مصممة لتبسيط الدعم متعدد اللغات في تطبيقات الويب الحديثة لـ Svelte (وأخرى). تقدم نهجًا تصريحيًا، مما يتيح لك تعريف قواميس الترجمة مباشرة داخل مكوناتك.
|
|
59
|
+
|
|
60
|
+
**الميزات الرئيسية**
|
|
61
|
+
|
|
62
|
+
- **إعلان الترجمة**: يسمح بإعلان جميع الترجمات في ملف واحد، يتم وضعه على مستوى المكونات، مما يجعل من السهل الحفاظ عليه وتوسيعه.
|
|
63
|
+
- **TypeScript وإكمال تلقائي**: يقدم تعريفات نوعية autogenerated لمفاتيح الترجمة، مما يوفر إكمالًا تلقائيًا قويًا وكشف الأخطاء.
|
|
64
|
+
- **مكونات خادم و SSR**: مصمم مع وضع كل من الخادم الجانبي (SSR) والمكونات الخادمة في الاعتبار، مما يضمن أن المحتوى المحلي يتم تقديمه بكفاءة على كل من العميل والخادم.
|
|
65
|
+
- **بيانات وصفية محلية وURLs من أجل SEO**: التع handle بسهولة بسلاسل بناءً على مواقع محلية الديناميكية، وخرائط الموقع، ومدخلات robots.txt لتحسين الاكتشاف وSEO.
|
|
66
|
+
- **تكامل سلس**: متوافق مع SvelteKit والأدوات الأخرى، مما يجعل الإعداد سهلاً.
|
|
67
|
+
- **تحميل غير متزامن**: تحميل قواميس الترجمة ديناميكيًا، مما يقلل من حجم الحزمة الأولية ويحسن الأداء.
|
|
68
|
+
|
|
69
|
+
**الاعتبارات**
|
|
70
|
+
|
|
71
|
+
- **المجتمع والنظام البيئي**: على الرغم من التوسع، إلا أن النظام البيئي أحدث، لذا قد تكون الإضافات والأدوات المدفوعة من المجتمع محدودة مقارنة بالحلول الأكثر رسوخًا.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. svelte-i18n
|
|
54
76
|
|
|
55
77
|
المستودع: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
78
|
|
|
@@ -72,7 +94,7 @@ slugs:
|
|
|
72
94
|
|
|
73
95
|
---
|
|
74
96
|
|
|
75
|
-
###
|
|
97
|
+
### 3. svelte-intl-precompile
|
|
76
98
|
|
|
77
99
|
المستودع: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
100
|
|
|
@@ -94,7 +116,7 @@ slugs:
|
|
|
94
116
|
|
|
95
117
|
---
|
|
96
118
|
|
|
97
|
-
###
|
|
119
|
+
### 4. i18next مع Svelte / SvelteKit
|
|
98
120
|
|
|
99
121
|
الموقع: [https://www.i18next.com/](https://www.i18next.com/)
|
|
100
122
|
|
|
@@ -52,7 +52,21 @@ slugs:
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> الموقع الإلكتروني: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**نظرة عامة**
|
|
60
|
+
**Intlayer** هو حل i18n مفتوح المصدر يهدف إلى تبسيط دعم اللغات المتعددة عبر أطر عمل متعددة، بما في ذلك **Vue**. وهو يركز على النهج التعريفي، والكتابة القوية، ودعم SSR في الأنظمة البيئية الأخرى، على الرغم من أن SSR ليس نموذجياً في Vue القياسي.
|
|
61
|
+
|
|
62
|
+
**الميزات الرئيسية**
|
|
63
|
+
|
|
64
|
+
- **الترجمة التعريفية**: حدد قواميس الترجمة إما على مستوى الأداة (widget) أو في ملف مركزي لهندسة أكثر نظافة.
|
|
65
|
+
- **TypeScript والإكمال التلقائي (الويب)**: بينما تفيد هذه الميزة أطر عمل الويب بشكل أساسي، فإن نهج الترجمة المكتوب لا يزال بإمكانه توجيه الكود المنظم في Vue.
|
|
66
|
+
- **التحميل غير المتزامن**: تحميل أصول الترجمة ديناميكياً، مما قد يقلل من حجم الحزمة الأولي للتطبيقات متعددة اللغات.
|
|
67
|
+
- **التكامل مع Vue**: يمكن إعداد تكامل أساسي للاستفادة من نهج Intlayer للترجمات المنظمة.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> الموقع: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ slugs:
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (تكامل Vue)
|
|
87
101
|
|
|
88
102
|
> الموقع: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|
|
@@ -37,7 +37,7 @@ slugs:
|
|
|
37
37
|
|
|
38
38
|
> **ملخص**: يمكن لجميع الثلاثة تعريب تطبيق Next.js. إذا كنت تريد **محتوى مخصص للمكونات**، **أنواع TypeScript صارمة**، **فحوصات المفاتيح المفقودة أثناء البناء**، **قواميس مُحسّنة بالتخلص من الشجر غير المستخدم**، و**موجه تطبيقات من الدرجة الأولى + مساعدات SEO**، فإن **Intlayer** هو الخيار الأكثر اكتمالًا وحداثة.
|
|
39
39
|
|
|
40
|
-
> من الالتباسات الشائعة بين المطورين هو الاعتقاد بأن `next-intl` هو نسخة Next.js من `react-intl`. هذا غير
|
|
40
|
+
> من الالتباسات الشائعة بين المطورين هو الاعتقاد بأن `next-intl` هو نسخة Next.js من `react-intl`. هذا غير صحيح, فـ `next-intl` تتم صيانته بواسطة [Amann](https://github.com/amannn)، بينما `react-intl` تتم صيانته بواسطة [FormatJS](https://github.com/formatjs/formatjs).
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
@@ -93,7 +93,7 @@ slugs:
|
|
|
93
93
|
|
|
94
94
|
## الخطوة 3: توليد التضمينات
|
|
95
95
|
|
|
96
|
-
بمجرد تقسيم الوثائق إلى أجزاء، نقوم بتوليد
|
|
96
|
+
بمجرد تقسيم الوثائق إلى أجزاء، نقوم بتوليد **التضمينات**, وهي متجهات عالية الأبعاد تمثل كل جزء.
|
|
97
97
|
|
|
98
98
|
استخدمت نموذج OpenAI المسمى text-embedding-3-large، لكن يمكنك استخدام أي نموذج تضمين حديث.
|
|
99
99
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "i18n Bedeutung: Was ist Internationalisierung und warum ist sie wichtig?"
|
|
5
|
+
description: "Entdecken Sie die wahre i18n Bedeutung in der Softwareentwicklung. Erfahren Sie, was Internationalisierung ist, warum sie als i18n abgekürzt wird und wie sie die globale Reichweite beeinflusst."
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n bedeutung
|
|
8
|
+
- Wofür steht i18n
|
|
9
|
+
- i18n
|
|
10
|
+
- Internationalisierung
|
|
11
|
+
- Lokalisierung
|
|
12
|
+
- Blog
|
|
13
|
+
- Webentwicklung
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# i18n Bedeutung: Was ist Internationalisierung und warum ist sie wichtig?
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## Die "i18n" Bedeutung verstehen
|
|
24
|
+
|
|
25
|
+
Wenn Sie in der Softwareentwicklung, im Webdesign oder im digitalen Marketing tätig sind, sind Sie wahrscheinlich schon auf den Begriff **i18n** gestoßen. Die wahre **i18n Bedeutung** ist einfach ein Numeronym für **Internationalisierung**.
|
|
26
|
+
|
|
27
|
+
Aber warum "i18n"? Die Abkürzung entsteht, indem man den ersten Buchstaben des Wortes "Internationalization" (**i**), den letzten Buchstaben (**n**) nimmt und die Anzahl der Buchstaben dazwischen zählt (**18**). Diese Konvention wird in der Technologiebranche häufig verwendet, um lange, sperrige Begriffe abzukürzen (ein weiteres verbreitetes Beispiel ist **l10n** für Lokalisierung).
|
|
28
|
+
|
|
29
|
+
Aus technischer Sicht bezieht sich die **i18n Bedeutung** auf den Prozess der Gestaltung und Vorbereitung einer Softwareanwendung, Website oder eines Produkts, so dass sie problemlos mehrere Sprachen, regionale Normen und kulturelle Konventionen unterstützen kann – und das alles ohne wesentliche technische Änderungen am zugrunde liegenden Quellcode.
|
|
30
|
+
|
|
31
|
+
## Die Kernbedeutung von i18n in der Praxis
|
|
32
|
+
|
|
33
|
+
Das Verständnis der i18n Bedeutung geht über das bloße Wissen hinaus, wofür das Akronym steht. Es geht darum, die architektonischen Prinzipien dahinter zu erkennen. Wenn ein Projekt ordnungsgemäß "internationalisiert" ist, bedeutet dies, dass die Entwickler den Inhalt vom Code entkoppelt haben.
|
|
34
|
+
|
|
35
|
+
Anstatt Text wie diesen fest in die Anwendung zu kodieren:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>Absenden</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Verwendet eine i18n-fähige App Übersetzungsschlüssel oder Variablen:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Dies stellt sicher, dass die Anwendung dynamisch das richtige Sprachverzeichnis (z. B. Englisch, Spanisch, Japanisch) basierend auf den Präferenzen des Benutzers laden kann, ohne die Komponente neu zu schreiben.
|
|
48
|
+
|
|
49
|
+
## Warum die i18n Bedeutung für Ihr Unternehmen entscheidend ist
|
|
50
|
+
|
|
51
|
+
Die Erfassung der **i18n Bedeutung** ist nur der erste Schritt. Zu verstehen, _warum_ sie für moderne digitale Produkte so wichtig ist, unterscheidet erfolgreiche globale Anwendungen von lokalen.
|
|
52
|
+
|
|
53
|
+
### Sprachbarrieren abbauen
|
|
54
|
+
|
|
55
|
+
Die offensichtlichste Anwendung der i18n Bedeutung ist die Übersetzung. Indem Sie Ihre Anwendung vom ersten Tag an internationalisieren, schaffen Sie eine Grundlage, die es Ihnen ermöglicht, Ihre Benutzeroberfläche nahtlos in Dutzende von Sprachen zu übersetzen. Dies ist unerlässlich, um neue globale Märkte zu erschließen.
|
|
56
|
+
|
|
57
|
+
### Kulturelle und regionale Anpassung
|
|
58
|
+
|
|
59
|
+
Die i18n Bedeutung erstreckt sich über die Sprache hinaus. Wahre Internationalisierung unterstützt:
|
|
60
|
+
|
|
61
|
+
- **Datums- und Zeitformate:** Anzeige von `MM/DD/YYYY` für US-Benutzer im Vergleich zu `DD.MM.YYYY` für europäische Benutzer.
|
|
62
|
+
- **Zahlenformatierung:** Erkennung, dass `1,000.50` in den USA oft als `1.000,50` in Teilen Europas geschrieben wird.
|
|
63
|
+
- **Währungen:** Anpassung von `$99.00` im Vergleich zu `99,00 €`.
|
|
64
|
+
- **Textrichtung:** Unterstützung von Rechts-nach-Links (RTL) Sprachen wie Arabisch und Hebräisch.
|
|
65
|
+
|
|
66
|
+
### Verbesserte SEO-Leistung
|
|
67
|
+
|
|
68
|
+
Suchmaschinen priorisieren Inhalte, die für die Sprache und Region des Benutzers relevant sind. Die Anwendung der Prinzipien hinter der i18n Bedeutung ermöglicht es Ihnen, Ihre Website so zu strukturieren (z. B. mit `hreflang`-Tags, lokalisierten URLs), dass sie in mehreren Ländern ein höheres Ranking erzielt und organischen globalen Traffic generiert.
|
|
69
|
+
|
|
70
|
+
## Internationalisierung (i18n) vs. Lokalisierung (l10n)
|
|
71
|
+
|
|
72
|
+
Um die **i18n Bedeutung** vollständig zu erfassen, müssen Sie sie von **l10n** (Lokalisierung) unterscheiden.
|
|
73
|
+
|
|
74
|
+
- **i18n (Internationalisierung):** Die _technische Vorbereitung_ und das strukturelle Design-Framework, das eine Anpassung ermöglicht. Beispiele: Unterstützung der UTF-8-Kodierung, Abstraktion von Textzeichenfolgen und Flexibilität von UI-Layouts für längere Wörter.
|
|
75
|
+
- **l10n (Lokalisierung):** Die _tatsächliche Anpassung_ des Produkts für ein bestimmtes Gebietsschema (Locale). Beispiele: Übersetzung des englischen Textes ins Deutsche, Anpassung von Bildern an kulturelle Normen und Einstellung der lokalen Währung.
|
|
76
|
+
|
|
77
|
+
Stellen Sie sich **i18n** als den Bau eines Autos vor, bei dem das Lenkrad entweder auf die linke oder auf die rechte Seite bewegt werden kann. **l10n** ist der eigentliche Akt des Bewegens des Lenkrads auf die rechte Seite, um das Auto in Großbritannien zu verkaufen.
|
|
78
|
+
|
|
79
|
+
## Häufige Missverständnisse über die i18n Bedeutung
|
|
80
|
+
|
|
81
|
+
1. **"i18n bedeutet nur Übersetzung."**
|
|
82
|
+
Obwohl die Übersetzung ein großer Teil des Endergebnisses ist, umfasst die wahre i18n Bedeutung Formatierung, Pluralisierungsregeln, Textrichtung und architektonische Bereitschaft.
|
|
83
|
+
2. **"Wir können i18n später hinzufügen."**
|
|
84
|
+
Die Nachrüstung einer Anwendung für die Internationalisierung ist bekanntermaßen schwierig. Fest kodierte Zeichenfolgen, starre UI-Komponenten und inkompatible Datumsformate können zu massiven technischen Schulden führen. Die Planung von i18n von Anfang an ist eine grundlegende Best Practice.
|
|
85
|
+
|
|
86
|
+
## Wie man i18n effektiv implementiert
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
Nun, da wir die wahre **i18n Bedeutung** etabliert haben, wie wenden Sie sie an?
|
|
91
|
+
|
|
92
|
+
- **Verwenden Sie ein etabliertes i18n-Framework:** Erfinden Sie das Rad nicht neu. Egal, ob Sie React, Vue, Next.js oder einfaches JavaScript verwenden, es gibt spezifische i18n-Bibliotheken, die für die schwere Arbeit (wie Pluralisierung und Interpolation) ausgelegt sind.
|
|
93
|
+
- **Abstrahieren Sie alle benutzerseitigen Texte:** Stellen Sie sicher, dass in Ihren UI-Komponenten kein fest kodierter Text vorhanden ist.
|
|
94
|
+
- **Nutzen Sie ein robustes Übersetzungsmanagementsystem:** Tools wie **Intlayer** schließen die Lücke zwischen Entwicklern und Übersetzern. Intlayer fungiert als Headless CMS, das eng in Ihre Codebasis integriert ist und es Content-Managern ermöglicht, Übersetzungen visuell zu aktualisieren, ohne dass ein Entwickler einen neuen Build auslösen muss.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Liste der i18n-Bibliotheken und Tools pro Technologie anzeigen
|
|
99
|
+
|
|
100
|
+
Wenn Sie nach einer Liste von i18n-Bibliotheken und Tools pro Technologie suchen, sehen Sie sich die folgenden Ressourcen an:
|
|
101
|
+
|
|
102
|
+
### Für Content-Management-Systeme (CMS)
|
|
103
|
+
|
|
104
|
+
- WordPress: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- Wix: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- Drupal: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### Für JavaScript-Anwendungen (Frontend)
|
|
109
|
+
|
|
110
|
+
- React: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- Angular: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- Vue: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- Svelte: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- React Native: [Liste der i18n-Bibliotheken und Tools anzeigen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Fazit
|
|
119
|
+
|
|
120
|
+
Die **i18n Bedeutung** ist ein grundlegendes Konzept für jedes moderne digitale Unternehmen, das auf globale Wirkung abzielt. Weit davon entfernt, nur eine eigenwillige Tech-Abkürzung für "Internationalisierung" zu sein, repräsentiert i18n die technische Architektur, die erforderlich ist, um Ihre Software nahtlos an verschiedene Sprachen, Kulturen und regionale Standards anzupassen.
|
|
121
|
+
|
|
122
|
+
Indem Sie die i18n Bedeutung verstehen und ihre Prinzipien frühzeitig in Ihrem Entwicklungszyklus übernehmen, sparen Sie erhebliche technische Zeit, verhindern zukünftige technische Schulden und stellen sicher, dass Ihre Anwendung Benutzern auf der ganzen Welt ein natives, einladendes Erlebnis bietet.
|
|
123
|
+
|
|
124
|
+
Egal, ob Sie eine mobile App, eine SaaS-Plattform oder ein Unternehmenstool erstellen, die Annahme der wahren i18n Bedeutung stellt sicher, dass sich Ihr Produkt an Benutzer aus aller Welt anpassen und sie ansprechen kann, ohne dass ständige Code-Umschreibungen erforderlich sind. Durch die Nutzung von Best Practices, robusten Frameworks und lokalisierter Inhaltsdeklaration mit Plattformen wie Intlayer können Produktteams truly globale Software-Erlebnisse liefern.
|
|
@@ -29,10 +29,6 @@ Ein Translation Management System (TMS) ist eine Softwareplattform, die entwicke
|
|
|
29
29
|
|
|
30
30
|
Im Wesentlichen war ein TMS historisch die Brücke zwischen dem technischen Code (wo Strings liegen) und den menschlichen Linguisten (die die Kultur verstehen).
|
|
31
31
|
|
|
32
|
-
Ein Translation Management System (TMS) ist eine Softwareplattform, die entwickelt wurde, um den Übersetzungs- und Lokalisierungsprozess (L10n) zu automatisieren und zu straffen. Traditionell dient ein TMS als zentraler Hub, in den Inhalte hochgeladen, organisiert und an menschliche Übersetzer zugewiesen werden. Es verwaltet Workflows, speichert Translation Memories (um zu vermeiden, denselben Satz zweimal zu übersetzen) und übernimmt die Auslieferung der übersetzten Dateien an Entwickler oder Content-Manager.
|
|
33
|
-
|
|
34
|
-
Im Kern war ein TMS historisch gesehen die Brücke zwischen dem technischen Code (wo Strings liegen) und den menschlichen Linguisten (die die Kultur verstehen).
|
|
35
|
-
|
|
36
32
|
# Lokalise
|
|
37
33
|
|
|
38
34
|
Lokalise ist ein bedeutender Akteur im modernen TMS-Umfeld. Gegründet im Jahr 2017, trat es an, den Markt zu verändern, indem es sich stark auf die Developer Experience (DX) und die Design-Integration konzentrierte. Im Gegensatz zu älteren Wettbewerbern legte Lokalise Wert auf eine elegante UI, leistungsstarke APIs und Integrationen mit Tools wie Figma und GitHub, um die Reibung beim Hin- und Herschieben von Dateien zu verringern.
|
|
@@ -41,11 +37,11 @@ Seinen Erfolg baute es darauf auf, das "developer-friendly" TMS zu sein und die
|
|
|
41
37
|
|
|
42
38
|
# Intlayer
|
|
43
39
|
|
|
44
|
-
Intlayer ist in erster Linie als i18n-Lösung bekannt, integriert jedoch auch ein headless CMS. Im Gegensatz zu Lokalise, das weitgehend als externes Synchronisierungstool für deine Strings fungiert, lebt Intlayer näher an deinem Code. Es kontrolliert den gesamten Stack
|
|
40
|
+
Intlayer ist in erster Linie als i18n-Lösung bekannt, integriert jedoch auch ein headless CMS. Im Gegensatz zu Lokalise, das weitgehend als externes Synchronisierungstool für deine Strings fungiert, lebt Intlayer näher an deinem Code. Es kontrolliert den gesamten Stack, von der bundling layer bis zur entfernten Inhaltsauslieferung, und führt so zu einem flüssigeren und effizienteren Content-Flow.
|
|
45
41
|
|
|
46
42
|
## Warum haben sich die Paradigmen seit dem Aufkommen von KI verändert?
|
|
47
43
|
|
|
48
|
-
Lokalise perfektionierte die "DevOps"-Seite der Lokalisierung
|
|
44
|
+
Lokalise perfektionierte die "DevOps"-Seite der Lokalisierung, das automatische Verschieben von Strings. Allerdings hat das Aufkommen von Large Language Models (LLMs) die Paradigmen der Lokalisierung grundlegend verschoben. Das Nadelöhr ist nicht mehr das _Verschieben_ der Strings; es ist das _Generieren_ derselben.
|
|
49
45
|
|
|
50
46
|
Mit LLMs sind die Kosten für Übersetzungen dramatisch gesunken und die Geschwindigkeit ist exponentiell gestiegen. Die Rolle des Lokalisierungsteams verschiebt sich vom "Verwalten von Übersetzern" hin zum "Verwalten von Kontext und Review".
|
|
51
47
|
|
|
@@ -61,7 +57,7 @@ Lokalise wird oft für seine steilen Preismodelle kritisiert, die mit dem Wachst
|
|
|
61
57
|
|
|
62
58
|
1. **Kosteneffizienz:** Sie sind nicht an ein "per key" oder "per seat" Preismodell gebunden, das Wachstum bestraft. Bei Intlayer bezahlen Sie Ihre eigene Inferenz (BYO Key), das heißt, Ihre Kosten skalieren direkt mit Ihrem tatsächlichen Verbrauch und nicht mit den Margen der Plattform.
|
|
63
59
|
2. **Workflow-Integration:** Während Lokalise das Synchronisieren von Dateien erfordert (auch wenn automatisiert), ermöglicht Intlayer die deklarative Content‑Definition direkt in Ihren Komponenten-Dateien (React, Next.js usw.). Dadurch bleibt der Kontext direkt neben der UI und Fehler werden reduziert.
|
|
64
|
-
3. **Visuelle Verwaltung:** Intlayer stellt einen visuellen Editor bereit, der direkt mit Ihrer laufenden Anwendung interagiert und sicherstellt, dass Änderungen im vollständigen visuellen Kontext vorgenommen werden
|
|
60
|
+
3. **Visuelle Verwaltung:** Intlayer stellt einen visuellen Editor bereit, der direkt mit Ihrer laufenden Anwendung interagiert und sicherstellt, dass Änderungen im vollständigen visuellen Kontext vorgenommen werden, etwas, das in traditionellen TMS‑Dateilisten oft getrennt ist.
|
|
65
61
|
|
|
66
62
|
# Vergleich nebeneinander
|
|
67
63
|
|
|
@@ -79,6 +75,6 @@ Intlayer bietet eine vollständige All-in-One-i18n-Lösung, die eine tiefgehende
|
|
|
79
75
|
|
|
80
76
|
Darüber hinaus kann Intlayer als Feature-Flag- oder A/B-Testing-Tool genutzt werden, sodass Sie verschiedene Inhaltsvarianten dynamisch testen können. Während Lokalise darauf abzielt, die Formulierungen korrekt zu treffen, konzentriert sich Intlayer darauf, die _User Experience_ durch dynamische Datenbereitstellung richtig zu gestalten.
|
|
81
77
|
|
|
82
|
-
Lokalise ist hervorragend für Mobile-Apps (iOS/Android) und designgetriebene Workflows geeignet. Für moderne Webanwendungen mit Frameworks wie Next.js oder React bietet Intlayer jedoch durch die native Handhabung von `.js`, `.ts` und JSON-Dictionaries ein überlegenes Developer Experience (DX) mit voller TypeScript-Unterstützung für Inhalte
|
|
78
|
+
Lokalise ist hervorragend für Mobile-Apps (iOS/Android) und designgetriebene Workflows geeignet. Für moderne Webanwendungen mit Frameworks wie Next.js oder React bietet Intlayer jedoch durch die native Handhabung von `.js`, `.ts` und JSON-Dictionaries ein überlegenes Developer Experience (DX) mit voller TypeScript-Unterstützung für Inhalte, so stellst du sicher, dass du niemals wieder einen fehlenden Übersetzungsschlüssel auslieferst.
|
|
83
79
|
|
|
84
|
-
Schließlich: Für diejenigen, die Datenhoheit und Kontrolle priorisieren, ist Intlayer Open Source und kann selbst gehostet werden. Docker-Dateien sind direkt im Repository verfügbar und geben dir die volle Kontrolle über deine Lokalisierungsinfrastruktur
|
|
80
|
+
Schließlich: Für diejenigen, die Datenhoheit und Kontrolle priorisieren, ist Intlayer Open Source und kann selbst gehostet werden. Docker-Dateien sind direkt im Repository verfügbar und geben dir die volle Kontrolle über deine Lokalisierungsinfrastruktur, ein starker Kontrast zum geschlossenen SaaS-Modell von Lokalise.
|
|
@@ -37,7 +37,7 @@ Crowdin ist ein Veteran in diesem Bereich. Gegründet 2009, entstand es in einer
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer ist hauptsächlich als i18n-Lösung bekannt, integriert aber auch ein CMS. Im Gegensatz zu Crowdin, das darauf beschränkt ist, als Wrapper für deine bestehende i18n-Konfiguration zu fungieren, kontrolliert Intlayer den gesamten Stack
|
|
40
|
+
Intlayer ist hauptsächlich als i18n-Lösung bekannt, integriert aber auch ein CMS. Im Gegensatz zu Crowdin, das darauf beschränkt ist, als Wrapper für deine bestehende i18n-Konfiguration zu fungieren, kontrolliert Intlayer den gesamten Stack, von der Bundling-Schicht bis zur Remote-Content-Delivery, und führt so zu einem reibungsloseren und effizienteren Content-Flow.
|
|
41
41
|
|
|
42
42
|
## Warum haben sich die Paradigmen seit der Einführung von AI geändert?
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ Es gibt jedoch eine Einschränkung. Copywriting ist nicht nur Übersetzung; es g
|
|
|
49
49
|
|
|
50
50
|
Heute ist der effizienteste Workflow, zuerst deine Seiten global mit AI zu übersetzen und zu positionieren. In einer zweiten Phase setzt du dann menschliche Copywriter ein, um spezifische, trafficstarke Inhalte zu optimieren und die Conversion zu steigern, sobald das Produkt bereits Umsätze generiert.
|
|
51
51
|
|
|
52
|
-
Obwohl Crowdins Umsatz
|
|
52
|
+
Obwohl Crowdins Umsatz, hauptsächlich getrieben durch seine bewährten Legacy-Lösungen, weiterhin gut läuft, glaube ich, dass der traditionelle Lokalisierungssektor innerhalb eines Zeitrahmens von 5 bis 10 Jahren stark beeinträchtigt sein wird. Das Modell, pro Wort oder pro Seat für ein Management-Tool zu bezahlen, wird obsolet.
|
|
53
53
|
|
|
54
54
|
## Warum ist Intlayer eine gute Alternative zu Crowdin?
|
|
55
55
|
|
|
@@ -73,8 +73,8 @@ Mit Intlayer erzeugen Sie Ihre Übersetzungen zu den Kosten Ihrer Inferenz. Sie
|
|
|
73
73
|
|
|
74
74
|
Intlayer bietet eine vollständige, All‑in‑One‑i18n‑Lösung, die eine tiefgehende Integration Ihrer Inhalte ermöglicht. Ihre entfernten Inhalte können direkt mit Ihrer Codebasis oder Ihrer Live‑Anwendung synchronisiert werden. Im Vergleich dazu erfordert Crowdin häufig einen Rebuild Ihrer Anwendung in der CI/CD‑Pipeline, um Inhalte zu aktualisieren, was Reibung zwischen dem Übersetzungsteam und dem Deployment‑Prozess erzeugt.
|
|
75
75
|
|
|
76
|
-
Darüber hinaus kann Intlayer als Feature‑Flag- oder A/B‑Testing‑Tool verwendet werden, sodass Sie verschiedene Inhaltsvarianten dynamisch testen können
|
|
76
|
+
Darüber hinaus kann Intlayer als Feature‑Flag- oder A/B‑Testing‑Tool verwendet werden, sodass Sie verschiedene Inhaltsvarianten dynamisch testen können, etwas, das Standard‑TMS‑Tools wie Crowdin nicht nativ unterstützen.
|
|
77
77
|
|
|
78
|
-
Crowdin unterstützt eine breite Palette von Dateiformaten
|
|
78
|
+
Crowdin unterstützt eine breite Palette von Dateiformaten, einschließlich älterer Typen wie `.po`, `.xml` und `.yaml`, was für Projekte mit etablierten Workflows oder älteren Systemen von Vorteil sein kann. Intlayer hingegen arbeitet hauptsächlich mit modernen, weborientierten Formaten wie `.json`, `.js` und `.ts`. Das bedeutet, dass Intlayer möglicherweise nicht mit allen Legacy-Dateiformaten kompatibel ist, was für Teams, die von älteren Plattformen migrieren, zu berücksichtigen ist.
|
|
79
79
|
|
|
80
80
|
Schließlich: Für diejenigen, die Datenhoheit und Kontrolle priorisieren, ist Intlayer Open Source und kann selbst gehostet werden. Docker-Dateien sind direkt im Repository verfügbar, wodurch Sie die vollständige Kontrolle über Ihre Lokalisierungsinfrastruktur erhalten.
|
|
@@ -29,10 +29,6 @@ Ein Translation Management System (TMS) ist eine Softwareplattform, die entwicke
|
|
|
29
29
|
|
|
30
30
|
Im Wesentlichen war ein TMS historisch die Brücke zwischen dem technischen Code (wo die Strings liegen) und den menschlichen Linguisten (die die Kultur verstehen).
|
|
31
31
|
|
|
32
|
-
Ein Translation Management System (TMS) ist eine Softwareplattform, die entwickelt wurde, um den Übersetzungs- und Lokalisierungsprozess (L10n) zu automatisieren und zu optimieren. Traditionell fungiert ein TMS als zentrales Hub, in das Inhalte hochgeladen, organisiert und an menschliche Übersetzer zugewiesen werden. Es verwaltet Workflows, speichert Translation Memories (um denselben Satz nicht mehrfach zu übersetzen) und übernimmt die Auslieferung der übersetzten Dateien an Entwickler oder Content-Manager.
|
|
33
|
-
|
|
34
|
-
Im Kern war ein TMS historisch die Brücke zwischen dem technischen Code (wo die Strings liegen) und den menschlichen Linguisten (die die Kultur verstehen).
|
|
35
|
-
|
|
36
32
|
# Phrase (ehemals PhraseApp)
|
|
37
33
|
|
|
38
34
|
Phrase ist ein Schwergewicht im Bereich Enterprise-Localization. Ursprünglich als PhraseApp bekannt, ist es insbesondere nach der Fusion mit Memsource stark gewachsen. Es positioniert sich als umfassende Localization Suite, die für Software-Lokalisierung entwickelt wurde und leistungsstarke API-Funktionen sowie umfangreiche Formatunterstützung bietet.
|
|
@@ -41,7 +37,7 @@ Phrase ist auf Skalierbarkeit ausgelegt. Es ist die erste Wahl für große Unter
|
|
|
41
37
|
|
|
42
38
|
# Intlayer
|
|
43
39
|
|
|
44
|
-
Intlayer ist hauptsächlich als i18n-Lösung bekannt, integriert aber auch ein Headless-CMS. Im Gegensatz zu Phrase, das als umfangreiche, externe Enterprise-Suite fungiert, agiert Intlayer als eine schlanke, in den Code integrierte Schicht. Es kontrolliert den gesamten Stack
|
|
40
|
+
Intlayer ist hauptsächlich als i18n-Lösung bekannt, integriert aber auch ein Headless-CMS. Im Gegensatz zu Phrase, das als umfangreiche, externe Enterprise-Suite fungiert, agiert Intlayer als eine schlanke, in den Code integrierte Schicht. Es kontrolliert den gesamten Stack, von der Bundling-Schicht bis zur Bereitstellung entfernter Inhalte, und führt so zu einem reibungsloseren und effizienteren Content-Flow für moderne Webanwendungen.
|
|
45
41
|
|
|
46
42
|
## Warum haben sich die Paradigmen seit AI verändert?
|
|
47
43
|
|
|
@@ -79,4 +75,4 @@ Darüber hinaus kann Intlayer als Feature-Flag- oder A/B-Testing-Tool eingesetzt
|
|
|
79
75
|
|
|
80
76
|
Auch wenn Phrase bei komplexen, multi-formatigen Unternehmensanforderungen (z. B. der gleichzeitigen Übersetzung von PDFs, Untertiteln und Software) unbestritten stark ist, ist Intlayer die überlegene Wahl für Produktteams, die Webanwendungen entwickeln und full ownership, type safety sowie einen modernen, AI-driven Workflow ohne den Enterprise-Overhead anstreben.
|
|
81
77
|
|
|
82
|
-
Schließlich: Für diejenigen, die Datenhoheit und Kontrolle priorisieren, ist Intlayer open-source und kann self-hosted betrieben werden. Docker files sind direkt im Repository verfügbar und geben Ihnen die volle Kontrolle über Ihre Lokalisierungsinfrastruktur
|
|
78
|
+
Schließlich: Für diejenigen, die Datenhoheit und Kontrolle priorisieren, ist Intlayer open-source und kann self-hosted betrieben werden. Docker files sind direkt im Repository verfügbar und geben Ihnen die volle Kontrolle über Ihre Lokalisierungsinfrastruktur, etwas, das mit Phrases geschlossenem SaaS-Ökosystem nicht möglich ist.
|