@intlayer/docs 8.1.6 → 8.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -12
- package/blog/ar/i18n_meaning.md +124 -0
- package/blog/ar/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/ar/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/ar/l10n_platform_alternative/phrase.md +2 -6
- package/blog/ar/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/ar/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ar/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/de/i18n_meaning.md +124 -0
- package/blog/de/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/de/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/de/l10n_platform_alternative/phrase.md +2 -6
- package/blog/de/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/de/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/de/per-component_vs_centralized_i18n.md +2 -2
- package/blog/de/rag_powered_documentation_assistant.md +1 -1
- package/blog/en/i18n_meaning.md +124 -0
- package/blog/en/intlayer_with_i18next.md +3 -3
- package/blog/en/intlayer_with_next-i18next.md +3 -3
- package/blog/en/intlayer_with_next-intl.md +3 -3
- package/blog/en/intlayer_with_react-i18next.md +3 -3
- package/blog/en/intlayer_with_react-intl.md +3 -3
- package/blog/en/intlayer_with_vue-i18n.md +3 -3
- package/blog/en/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en/rag_powered_documentation_assistant.md +1 -2
- package/blog/en-GB/compiler_vs_declarative_i18n.md +2 -2
- package/blog/en-GB/i18n_meaning.md +124 -0
- package/blog/en-GB/intlayer_with_i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_next-intl.md +1 -1
- package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_react-intl.md +1 -1
- package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
- package/blog/en-GB/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/en-GB/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/en-GB/l10n_platform_alternative/phrase.md +2 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/en-GB/rag_powered_documentation_assistant.md +1 -1
- package/blog/es/i18n_meaning.md +124 -0
- package/blog/es/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/es/l10n_platform_alternative/crowdin.md +14 -19
- package/blog/es/l10n_platform_alternative/phrase.md +2 -8
- package/blog/es/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/es/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/es/rag_powered_documentation_assistant.md +1 -1
- package/blog/fr/compiler_vs_declarative_i18n.md +1 -1
- package/blog/fr/i18n_meaning.md +23 -0
- package/blog/fr/l10n_platform_alternative/Lokalise.md +6 -10
- package/blog/fr/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/fr/l10n_platform_alternative/phrase.md +11 -24
- package/blog/fr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/fr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/fr/rag_powered_documentation_assistant.md +1 -1
- package/blog/hi/compiler_vs_declarative_i18n.md +2 -2
- package/blog/hi/i18n_meaning.md +124 -0
- package/blog/hi/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/hi/l10n_platform_alternative/crowdin.md +13 -17
- package/blog/hi/l10n_platform_alternative/phrase.md +2 -2
- package/blog/hi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/hi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/hi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/hi/per-component_vs_centralized_i18n.md +3 -3
- package/blog/hi/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/compiler_vs_declarative_i18n.md +2 -2
- package/blog/id/i18n_meaning.md +124 -0
- package/blog/id/l10n_platform_alternative/Lokalise.md +5 -11
- package/blog/id/l10n_platform_alternative/crowdin.md +4 -8
- package/blog/id/l10n_platform_alternative/phrase.md +11 -22
- package/blog/id/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/id/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/id/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/id/rag_powered_documentation_assistant.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer.md +1 -1
- package/blog/it/compiler_vs_declarative_i18n.md +1 -1
- package/blog/it/i18n_meaning.md +124 -0
- package/blog/it/l10n_platform_alternative/Lokalise.md +5 -9
- package/blog/it/l10n_platform_alternative/crowdin.md +4 -10
- package/blog/it/l10n_platform_alternative/phrase.md +2 -6
- package/blog/it/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/it/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/it/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/it/rag_powered_documentation_assistant.md +1 -1
- package/blog/ja/i18n_meaning.md +124 -0
- package/blog/ja/l10n_platform_alternative/phrase.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/react-native.md +6 -9
- package/blog/ja/list_i18n_technologies/frameworks/react.md +3 -2
- package/blog/ja/list_i18n_technologies/frameworks/svelte.md +27 -6
- package/blog/ja/list_i18n_technologies/frameworks/vue.md +29 -15
- package/blog/ja/per-component_vs_centralized_i18n.md +1 -1
- package/blog/ko/i18n_meaning.md +124 -0
- package/blog/ko/l10n_platform_alternative/Lokalise.md +2 -2
- package/blog/ko/l10n_platform_alternative/crowdin.md +11 -17
- package/blog/ko/l10n_platform_alternative/phrase.md +5 -5
- package/blog/ko/list_i18n_technologies/frameworks/angular.md +26 -3
- package/blog/ko/list_i18n_technologies/frameworks/react-native.md +35 -39
- package/blog/ko/list_i18n_technologies/frameworks/react.md +24 -24
- package/blog/ko/list_i18n_technologies/frameworks/svelte.md +28 -7
- package/blog/ko/list_i18n_technologies/frameworks/vue.md +22 -2
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pl/compiler_vs_declarative_i18n.md +2 -2
- package/blog/pl/i18n_meaning.md +124 -0
- package/blog/pl/l10n_platform_alternative/Lokalise.md +6 -16
- package/blog/pl/l10n_platform_alternative/crowdin.md +5 -5
- package/blog/pl/l10n_platform_alternative/phrase.md +4 -8
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +2 -2
- package/blog/pl/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +18 -4
- package/blog/pl/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pl/per-component_vs_centralized_i18n.md +4 -4
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
- package/blog/pt/compiler_vs_declarative_i18n.md +1 -1
- package/blog/pt/i18n_meaning.md +124 -0
- package/blog/pt/l10n_platform_alternative/Lokalise.md +5 -5
- package/blog/pt/l10n_platform_alternative/crowdin.md +13 -13
- package/blog/pt/l10n_platform_alternative/phrase.md +2 -2
- package/blog/pt/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/pt/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pt/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/pt/per-component_vs_centralized_i18n.md +1 -1
- package/blog/pt/rag_powered_documentation_assistant.md +1 -1
- package/blog/ru/compiler_vs_declarative_i18n.md +9 -9
- package/blog/ru/i18n_meaning.md +124 -0
- package/blog/ru/i18n_using_next-i18next.md +3 -3
- package/blog/ru/i18n_using_next-intl.md +6 -6
- package/blog/ru/intlayer_with_i18next.md +1 -1
- package/blog/ru/intlayer_with_next-i18next.md +2 -2
- package/blog/ru/intlayer_with_next-intl.md +1 -1
- package/blog/ru/intlayer_with_react-i18next.md +1 -1
- package/blog/ru/intlayer_with_react-intl.md +1 -1
- package/blog/ru/intlayer_with_vue-i18n.md +1 -1
- package/blog/ru/l10n_platform_alternative/Lokalise.md +10 -10
- package/blog/ru/l10n_platform_alternative/crowdin.md +20 -26
- package/blog/ru/l10n_platform_alternative/phrase.md +16 -20
- package/blog/ru/list_i18n_technologies/frameworks/angular.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/svelte.md +26 -4
- package/blog/ru/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +9 -9
- package/blog/ru/nextjs-multilingual-seo-comparison.md +7 -7
- package/blog/ru/per-component_vs_centralized_i18n.md +3 -3
- package/blog/ru/rag_powered_documentation_assistant.md +9 -9
- package/blog/ru/what_is_internationalization.md +1 -1
- package/blog/tr/compiler_vs_declarative_i18n.md +2 -2
- package/blog/tr/i18n_meaning.md +124 -0
- package/blog/tr/l10n_platform_alternative/Lokalise.md +4 -4
- package/blog/tr/l10n_platform_alternative/crowdin.md +3 -3
- package/blog/tr/l10n_platform_alternative/phrase.md +10 -21
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/tr/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/tr/rag_powered_documentation_assistant.md +1 -1
- package/blog/uk/compiler_vs_declarative_i18n.md +12 -12
- package/blog/uk/i18n_meaning.md +124 -0
- package/blog/uk/i18n_using_next-i18next.md +10 -10
- package/blog/uk/i18n_using_next-intl.md +7 -7
- package/blog/uk/internationalization_and_SEO.md +11 -11
- package/blog/uk/intlayer_with_i18next.md +2 -2
- package/blog/uk/intlayer_with_next-i18next.md +3 -3
- package/blog/uk/intlayer_with_next-intl.md +2 -2
- package/blog/uk/intlayer_with_react-i18next.md +2 -2
- package/blog/uk/intlayer_with_react-intl.md +2 -2
- package/blog/uk/intlayer_with_vue-i18n.md +2 -2
- package/blog/uk/l10n_platform_alternative/Lokalise.md +9 -9
- package/blog/uk/l10n_platform_alternative/crowdin.md +10 -10
- package/blog/uk/l10n_platform_alternative/phrase.md +9 -9
- package/blog/uk/list_i18n_technologies/frameworks/angular.md +31 -9
- package/blog/uk/list_i18n_technologies/frameworks/react-native.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/react.md +6 -6
- package/blog/uk/list_i18n_technologies/frameworks/svelte.md +4 -4
- package/blog/uk/list_i18n_technologies/frameworks/vue.md +6 -6
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +13 -13
- package/blog/uk/nextjs-multilingual-seo-comparison.md +8 -8
- package/blog/uk/per-component_vs_centralized_i18n.md +3 -3
- package/blog/uk/rag_powered_documentation_assistant.md +11 -11
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +5 -5
- package/blog/uk/vue-i18n_vs_intlayer.md +5 -5
- package/blog/uk/what_is_internationalization.md +4 -4
- package/blog/vi/compiler_vs_declarative_i18n.md +1 -1
- package/blog/vi/i18n_meaning.md +124 -0
- package/blog/vi/l10n_platform_alternative/Lokalise.md +14 -21
- package/blog/vi/l10n_platform_alternative/crowdin.md +4 -4
- package/blog/vi/l10n_platform_alternative/phrase.md +2 -6
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +25 -3
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +16 -2
- package/blog/vi/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/vi/per-component_vs_centralized_i18n.md +1 -1
- package/blog/vi/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/compiler_vs_declarative_i18n.md +2 -2
- package/blog/zh/i18n_meaning.md +124 -0
- package/blog/zh/internationalization_and_SEO.md +5 -5
- package/blog/zh/l10n_platform_alternative/Lokalise.md +23 -23
- package/blog/zh/l10n_platform_alternative/crowdin.md +28 -32
- package/blog/zh/l10n_platform_alternative/phrase.md +32 -38
- package/blog/zh/list_i18n_technologies/frameworks/angular.md +28 -6
- package/blog/zh/list_i18n_technologies/frameworks/react-native.md +10 -14
- package/blog/zh/list_i18n_technologies/frameworks/react.md +5 -5
- package/blog/zh/list_i18n_technologies/frameworks/svelte.md +23 -7
- package/blog/zh/list_i18n_technologies/frameworks/vue.md +20 -6
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/zh/nextjs-multilingual-seo-comparison.md +1 -1
- package/blog/zh/rag_powered_documentation_assistant.md +1 -1
- package/blog/zh/what_is_internationalization.md +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/agent_skills.md +2 -0
- package/docs/ar/compiler.md +81 -3
- package/docs/ar/component_i18n.md +2 -2
- package/docs/ar/configuration.md +68 -1
- package/docs/ar/dictionary/content_file.md +1 -1
- package/docs/ar/index.md +2 -2
- package/docs/ar/intlayer_CMS.md +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +1 -1
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_create_react_app.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_fastify.md +1 -1
- package/docs/ar/intlayer_with_hono.md +1 -1
- package/docs/ar/intlayer_with_lynx+react.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- package/docs/ar/intlayer_with_next-i18next.md +2 -2
- package/docs/ar/intlayer_with_next-intl.md +2 -2
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +3 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- package/docs/ar/intlayer_with_react_native+expo.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7.md +4 -2
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/intlayer_with_vite+preact.md +3 -1
- package/docs/ar/intlayer_with_vite+react.md +3 -1
- package/docs/ar/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/ar/intlayer_with_vite+solid.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +3 -1
- package/docs/ar/intlayer_with_vite+vue.md +3 -1
- package/docs/ar/introduction.md +2 -2
- package/docs/ar/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ar/readme.md +138 -110
- package/docs/de/agent_skills.md +2 -0
- package/docs/de/cli/init.md +1 -1
- package/docs/de/compiler.md +79 -1
- package/docs/de/component_i18n.md +2 -2
- package/docs/de/configuration.md +68 -1
- package/docs/de/dictionary/content_file.md +1 -1
- package/docs/de/index.md +2 -2
- package/docs/de/intlayer_with_adonisjs.md +1 -1
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_fastify.md +1 -1
- package/docs/de/intlayer_with_hono.md +1 -1
- package/docs/de/intlayer_with_lynx+react.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_next-i18next.md +2 -2
- package/docs/de/intlayer_with_next-intl.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +3 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +4 -2
- package/docs/de/intlayer_with_react_router_v7.md +4 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack.md +1 -1
- package/docs/de/intlayer_with_vite+preact.md +3 -1
- package/docs/de/intlayer_with_vite+react.md +3 -1
- package/docs/de/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +3 -1
- package/docs/de/intlayer_with_vite+vue.md +3 -1
- package/docs/de/introduction.md +2 -2
- package/docs/de/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/de/readme.md +152 -124
- package/docs/en/agent_skills.md +2 -0
- package/docs/en/compiler.md +80 -1
- package/docs/en/component_i18n.md +2 -2
- package/docs/en/configuration.md +16 -1
- package/docs/en/index.md +2 -2
- package/docs/en/intlayer_CMS.md +1 -1
- package/docs/en/intlayer_with_adonisjs.md +1 -1
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_create_react_app.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_fastify.md +1 -1
- package/docs/en/intlayer_with_hono.md +1 -1
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +1 -1
- package/docs/en/intlayer_with_next-i18next.md +2 -2
- package/docs/en/intlayer_with_next-intl.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +2 -2
- package/docs/en/intlayer_with_nextjs_15.md +2 -2
- package/docs/en/intlayer_with_nextjs_16.md +4 -2
- package/docs/en/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/en/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en/intlayer_with_nuxt.md +2 -2
- package/docs/en/intlayer_with_react_native+expo.md +5 -3
- package/docs/en/intlayer_with_react_router_v7.md +4 -2
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/intlayer_with_vite+preact.md +3 -1
- package/docs/en/intlayer_with_vite+react.md +3 -1
- package/docs/en/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/en/intlayer_with_vite+solid.md +1 -1
- package/docs/en/intlayer_with_vite+svelte.md +3 -1
- package/docs/en/intlayer_with_vite+vue.md +3 -1
- package/docs/en/introduction.md +2 -2
- package/docs/en/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/agent_skills.md +2 -0
- package/docs/en-GB/cli/init.md +1 -1
- package/docs/en-GB/compiler.md +81 -3
- package/docs/en-GB/component_i18n.md +2 -2
- package/docs/en-GB/configuration.md +68 -1
- package/docs/en-GB/dictionary/content_file.md +1 -1
- package/docs/en-GB/index.md +2 -2
- package/docs/en-GB/intlayer_CMS.md +1 -1
- package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_fastify.md +1 -1
- package/docs/en-GB/intlayer_with_hono.md +1 -1
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- package/docs/en-GB/intlayer_with_next-i18next.md +2 -2
- package/docs/en-GB/intlayer_with_next-intl.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +16 -16
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +2 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +2 -2
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/en-GB/intlayer_with_svelte_kit.md +2 -2
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/introduction.md +2 -2
- package/docs/en-GB/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/agent_skills.md +2 -0
- package/docs/es/compiler.md +79 -1
- package/docs/es/component_i18n.md +2 -2
- package/docs/es/configuration.md +68 -1
- package/docs/es/dictionary/content_file.md +1 -1
- package/docs/es/index.md +2 -2
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_create_react_app.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_lynx+react.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_next-i18next.md +2 -2
- package/docs/es/intlayer_with_next-intl.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +3 -1
- package/docs/es/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +5 -3
- package/docs/es/intlayer_with_react_router_v7.md +4 -2
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/intlayer_with_vite+preact.md +3 -1
- package/docs/es/intlayer_with_vite+react.md +3 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +3 -1
- package/docs/es/intlayer_with_vite+vue.md +3 -1
- package/docs/es/introduction.md +2 -2
- package/docs/es/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/es/readme.md +149 -121
- package/docs/fr/agent_skills.md +2 -0
- package/docs/fr/compiler.md +82 -4
- package/docs/fr/component_i18n.md +2 -2
- package/docs/fr/configuration.md +68 -1
- package/docs/fr/dictionary/content_file.md +1 -1
- package/docs/fr/index.md +2 -2
- package/docs/fr/intlayer_CMS.md +1 -1
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_create_react_app.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_lynx+react.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_next-i18next.md +2 -2
- package/docs/fr/intlayer_with_next-intl.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +3 -1
- package/docs/fr/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- package/docs/fr/intlayer_with_react_native+expo.md +5 -3
- package/docs/fr/intlayer_with_react_router_v7.md +4 -2
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/fr/intlayer_with_svelte_kit.md +2 -2
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/intlayer_with_vite+preact.md +3 -1
- package/docs/fr/intlayer_with_vite+react.md +3 -1
- package/docs/fr/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +3 -1
- package/docs/fr/intlayer_with_vite+vue.md +4 -2
- package/docs/fr/introduction.md +2 -2
- package/docs/fr/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/fr/readme.md +150 -122
- package/docs/hi/agent_skills.md +2 -0
- package/docs/hi/cli/init.md +1 -1
- package/docs/hi/compiler.md +81 -3
- package/docs/hi/component_i18n.md +2 -2
- package/docs/hi/configuration.md +68 -1
- package/docs/hi/dictionary/content_file.md +1 -1
- package/docs/hi/index.md +2 -2
- package/docs/hi/intlayer_CMS.md +1 -1
- package/docs/hi/intlayer_with_adonisjs.md +1 -1
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_fastify.md +2 -2
- package/docs/hi/intlayer_with_hono.md +1 -1
- package/docs/hi/intlayer_with_lynx+react.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_next-i18next.md +2 -2
- package/docs/hi/intlayer_with_next-intl.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +3 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- package/docs/hi/intlayer_with_react_native+expo.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7.md +4 -2
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/intlayer_with_vite+preact.md +3 -1
- package/docs/hi/intlayer_with_vite+react.md +3 -1
- package/docs/hi/intlayer_with_vite+react_compiler.md +386 -0
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +3 -1
- package/docs/hi/intlayer_with_vite+vue.md +4 -2
- package/docs/hi/introduction.md +2 -2
- package/docs/hi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/hi/readme.md +153 -125
- package/docs/id/agent_skills.md +2 -0
- package/docs/id/compiler.md +79 -1
- package/docs/id/component_i18n.md +2 -2
- package/docs/id/configuration.md +61 -1
- package/docs/id/dictionary/content_file.md +1 -1
- package/docs/id/index.md +2 -2
- package/docs/id/intlayer_CMS.md +1 -1
- package/docs/id/intlayer_with_adonisjs.md +1 -1
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_create_react_app.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_fastify.md +1 -1
- package/docs/id/intlayer_with_hono.md +1 -1
- package/docs/id/intlayer_with_lynx+react.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +1 -1
- package/docs/id/intlayer_with_next-i18next.md +2 -2
- package/docs/id/intlayer_with_next-intl.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +3 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +5 -3
- package/docs/id/intlayer_with_react_router_v7.md +4 -2
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack.md +1 -1
- package/docs/id/intlayer_with_vite+preact.md +3 -1
- package/docs/id/intlayer_with_vite+react.md +3 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/id/intlayer_with_vite+solid.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +3 -1
- package/docs/id/intlayer_with_vite+vue.md +3 -1
- package/docs/id/introduction.md +2 -2
- package/docs/id/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/id/readme.md +133 -105
- package/docs/it/agent_skills.md +2 -0
- package/docs/it/compiler.md +81 -3
- package/docs/it/component_i18n.md +2 -2
- package/docs/it/configuration.md +68 -1
- package/docs/it/dictionary/content_file.md +1 -1
- package/docs/it/index.md +2 -2
- package/docs/it/intlayer_CMS.md +1 -1
- package/docs/it/intlayer_with_adonisjs.md +1 -1
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_create_react_app.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_fastify.md +1 -1
- package/docs/it/intlayer_with_hono.md +1 -1
- package/docs/it/intlayer_with_lynx+react.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_next-i18next.md +2 -2
- package/docs/it/intlayer_with_next-intl.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +3 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +4 -2
- package/docs/it/intlayer_with_react_router_v7.md +4 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/intlayer_with_vite+preact.md +3 -1
- package/docs/it/intlayer_with_vite+react.md +3 -1
- package/docs/it/intlayer_with_vite+react_compiler.md +390 -0
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +3 -1
- package/docs/it/intlayer_with_vite+vue.md +4 -2
- package/docs/it/introduction.md +2 -2
- package/docs/it/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/it/readme.md +155 -127
- package/docs/ja/agent_skills.md +2 -0
- package/docs/ja/cli/init.md +1 -1
- package/docs/ja/compiler.md +79 -1
- package/docs/ja/component_i18n.md +2 -2
- package/docs/ja/configuration.md +68 -1
- package/docs/ja/dictionary/content_file.md +1 -1
- package/docs/ja/index.md +2 -2
- package/docs/ja/intlayer_with_adonisjs.md +1 -1
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_create_react_app.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_fastify.md +1 -1
- package/docs/ja/intlayer_with_hono.md +1 -1
- package/docs/ja/intlayer_with_lynx+react.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_next-i18next.md +2 -2
- package/docs/ja/intlayer_with_next-intl.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +3 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/ja/intlayer_with_nextjs_page_router.md +76 -77
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_native+expo.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7.md +4 -2
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/ja/intlayer_with_svelte_kit.md +1 -1
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/intlayer_with_vite+preact.md +3 -1
- package/docs/ja/intlayer_with_vite+react.md +3 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/ja/intlayer_with_vite+solid.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +3 -1
- package/docs/ja/intlayer_with_vite+vue.md +3 -1
- package/docs/ja/introduction.md +2 -2
- package/docs/ja/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ja/readme.md +152 -126
- package/docs/ko/agent_skills.md +2 -0
- package/docs/ko/cli/init.md +1 -1
- package/docs/ko/compiler.md +79 -1
- package/docs/ko/component_i18n.md +2 -2
- package/docs/ko/configuration.md +68 -1
- package/docs/ko/dictionary/content_file.md +1 -1
- package/docs/ko/index.md +2 -2
- package/docs/ko/intlayer_with_adonisjs.md +1 -1
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_create_react_app.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_fastify.md +1 -1
- package/docs/ko/intlayer_with_hono.md +1 -1
- package/docs/ko/intlayer_with_lynx+react.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_next-i18next.md +2 -2
- package/docs/ko/intlayer_with_next-intl.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- package/docs/ko/intlayer_with_nextjs_15.md +1 -1
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +2 -2
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/intlayer_with_vite+preact.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/introduction.md +2 -2
- package/docs/ko/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ko/readme.md +154 -126
- package/docs/pl/agent_skills.md +2 -0
- package/docs/pl/cli/init.md +1 -1
- package/docs/pl/compiler.md +79 -1
- package/docs/pl/component_i18n.md +2 -2
- package/docs/pl/configuration.md +61 -1
- package/docs/pl/dictionary/content_file.md +1 -1
- package/docs/pl/index.md +2 -2
- package/docs/pl/intlayer_CMS.md +1 -1
- package/docs/pl/intlayer_with_adonisjs.md +1 -1
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_create_react_app.md +1 -1
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_fastify.md +1 -1
- package/docs/pl/intlayer_with_hono.md +1 -1
- package/docs/pl/intlayer_with_lynx+react.md +1 -1
- package/docs/pl/intlayer_with_nestjs.md +1 -1
- package/docs/pl/intlayer_with_next-i18next.md +2 -2
- package/docs/pl/intlayer_with_next-intl.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +3 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +6 -6
- package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pl/intlayer_with_nuxt.md +1 -1
- package/docs/pl/intlayer_with_react_native+expo.md +5 -3
- package/docs/pl/intlayer_with_react_router_v7.md +4 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +5 -3
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack.md +1 -1
- package/docs/pl/intlayer_with_vite+preact.md +3 -1
- package/docs/pl/intlayer_with_vite+react.md +3 -1
- package/docs/pl/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +3 -1
- package/docs/pl/intlayer_with_vite+vue.md +4 -2
- package/docs/pl/introduction.md +2 -2
- package/docs/pl/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/pl/packages/preact-intlayer/exports.md +1 -1
- package/docs/pl/readme.md +134 -106
- package/docs/pl/releases/v8.md +3 -3
- package/docs/pt/agent_skills.md +2 -0
- package/docs/pt/cli/init.md +1 -1
- package/docs/pt/compiler.md +80 -2
- package/docs/pt/component_i18n.md +2 -2
- package/docs/pt/configuration.md +68 -1
- package/docs/pt/dictionary/content_file.md +1 -1
- package/docs/pt/index.md +2 -2
- package/docs/pt/intlayer_CMS.md +1 -1
- package/docs/pt/intlayer_with_adonisjs.md +1 -1
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular.md +1 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_create_react_app.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_fastify.md +1 -1
- package/docs/pt/intlayer_with_hono.md +1 -1
- package/docs/pt/intlayer_with_lynx+react.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_next-i18next.md +2 -2
- package/docs/pt/intlayer_with_next-intl.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +3 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +9 -9
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7.md +4 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +3 -5
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/intlayer_with_vite+preact.md +3 -1
- package/docs/pt/intlayer_with_vite+react.md +3 -1
- package/docs/pt/intlayer_with_vite+react_compiler.md +390 -0
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +3 -1
- package/docs/pt/intlayer_with_vite+vue.md +3 -1
- package/docs/pt/introduction.md +2 -2
- package/docs/pt/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/pt/readme.md +154 -126
- package/docs/ru/agent_skills.md +5 -3
- package/docs/ru/autoFill.md +3 -3
- package/docs/ru/bundle_optimization.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -1
- package/docs/ru/cli/fill.md +1 -1
- package/docs/ru/cli/init.md +6 -6
- package/docs/ru/cli/sdk.md +1 -1
- package/docs/ru/compiler.md +82 -4
- package/docs/ru/component_i18n.md +2 -2
- package/docs/ru/configuration.md +69 -2
- package/docs/ru/dictionary/content_file.md +3 -3
- package/docs/ru/dictionary/html.md +1 -1
- package/docs/ru/formatters.md +1 -1
- package/docs/ru/index.md +2 -2
- package/docs/ru/intlayer_CMS.md +6 -6
- package/docs/ru/intlayer_with_adonisjs.md +2 -2
- package/docs/ru/intlayer_with_analog.md +2 -2
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_create_react_app.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_fastify.md +2 -2
- package/docs/ru/intlayer_with_hono.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +2 -2
- package/docs/ru/intlayer_with_next-i18next.md +3 -3
- package/docs/ru/intlayer_with_next-intl.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +5 -3
- package/docs/ru/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +12 -12
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_nuxt.md +3 -3
- package/docs/ru/intlayer_with_react_native+expo.md +4 -2
- package/docs/ru/intlayer_with_react_router_v7.md +5 -3
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +5 -7
- package/docs/ru/intlayer_with_svelte_kit.md +3 -3
- package/docs/ru/intlayer_with_tanstack.md +3 -3
- package/docs/ru/intlayer_with_vite+preact.md +10 -8
- package/docs/ru/intlayer_with_vite+react.md +5 -3
- package/docs/ru/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +4 -2
- package/docs/ru/intlayer_with_vite+vue.md +3 -1
- package/docs/ru/introduction.md +2 -2
- package/docs/ru/packages/adonis-intlayer/t.md +1 -1
- package/docs/ru/packages/hono-intlayer/t.md +2 -2
- package/docs/ru/packages/intlayer/exports.md +1 -1
- package/docs/ru/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/ru/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/ru/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/ru/packages/react-intlayer/exports.md +16 -16
- package/docs/ru/readme.md +138 -110
- package/docs/ru/releases/v7.md +3 -3
- package/docs/ru/releases/v8.md +5 -5
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/tr/agent_skills.md +2 -0
- package/docs/tr/cli/init.md +2 -2
- package/docs/tr/compiler.md +81 -3
- package/docs/tr/component_i18n.md +2 -2
- package/docs/tr/configuration.md +68 -1
- package/docs/tr/dictionary/content_file.md +1 -1
- package/docs/tr/index.md +2 -2
- package/docs/tr/intlayer_CMS.md +1 -1
- package/docs/tr/intlayer_with_adonisjs.md +1 -1
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_create_react_app.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_fastify.md +1 -1
- package/docs/tr/intlayer_with_hono.md +1 -1
- package/docs/tr/intlayer_with_lynx+react.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +1 -1
- package/docs/tr/intlayer_with_next-i18next.md +2 -2
- package/docs/tr/intlayer_with_next-intl.md +1 -1
- package/docs/tr/intlayer_with_nextjs_14.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +3 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +4 -4
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7.md +4 -2
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +1 -1
- package/docs/tr/intlayer_with_vite+preact.md +3 -1
- package/docs/tr/intlayer_with_vite+react.md +3 -1
- package/docs/tr/intlayer_with_vite+react_compiler.md +391 -0
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +3 -1
- package/docs/tr/intlayer_with_vite+vue.md +3 -1
- package/docs/tr/introduction.md +2 -2
- package/docs/tr/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/tr/readme.md +139 -111
- package/docs/uk/agent_skills.md +5 -3
- package/docs/uk/autoFill.md +4 -4
- package/docs/uk/bundle_optimization.md +2 -2
- package/docs/uk/cli/fill.md +1 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/list_projects.md +1 -1
- package/docs/uk/cli/login.md +2 -2
- package/docs/uk/cli/sdk.md +1 -1
- package/docs/uk/compiler.md +82 -4
- package/docs/uk/component_i18n.md +3 -3
- package/docs/uk/configuration.md +65 -5
- package/docs/uk/dictionary/content_file.md +5 -5
- package/docs/uk/dictionary/enumeration.md +1 -1
- package/docs/uk/dictionary/html.md +1 -1
- package/docs/uk/formatters.md +9 -9
- package/docs/uk/how_works_intlayer.md +6 -6
- package/docs/uk/index.md +4 -4
- package/docs/uk/interest_of_intlayer.md +24 -24
- package/docs/uk/intlayer_CMS.md +7 -7
- package/docs/uk/intlayer_visual_editor.md +8 -8
- package/docs/uk/intlayer_with_adonisjs.md +2 -2
- package/docs/uk/intlayer_with_analog.md +2 -2
- package/docs/uk/intlayer_with_angular.md +2 -2
- package/docs/uk/intlayer_with_astro.md +3 -3
- package/docs/uk/intlayer_with_create_react_app.md +13 -13
- package/docs/uk/intlayer_with_express.md +2 -2
- package/docs/uk/intlayer_with_fastify.md +3 -3
- package/docs/uk/intlayer_with_hono.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +3 -3
- package/docs/uk/intlayer_with_nestjs.md +4 -4
- package/docs/uk/intlayer_with_next-i18next.md +5 -5
- package/docs/uk/intlayer_with_next-intl.md +1 -1
- package/docs/uk/intlayer_with_nextjs_14.md +10 -10
- package/docs/uk/intlayer_with_nextjs_15.md +21 -21
- package/docs/uk/intlayer_with_nextjs_16.md +5 -3
- package/docs/uk/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +13 -13
- package/docs/uk/intlayer_with_nextjs_page_router.md +9 -9
- package/docs/uk/intlayer_with_nuxt.md +6 -6
- package/docs/uk/intlayer_with_react_native+expo.md +11 -9
- package/docs/uk/intlayer_with_react_router_v7.md +10 -8
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +10 -8
- package/docs/uk/intlayer_with_svelte_kit.md +2 -2
- package/docs/uk/intlayer_with_tanstack.md +9 -9
- package/docs/uk/intlayer_with_vite+preact.md +13 -11
- package/docs/uk/intlayer_with_vite+react.md +14 -12
- package/docs/uk/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/uk/intlayer_with_vite+solid.md +2 -2
- package/docs/uk/intlayer_with_vite+svelte.md +4 -2
- package/docs/uk/intlayer_with_vite+vue.md +9 -7
- package/docs/uk/introduction.md +3 -3
- package/docs/uk/locale_mapper.md +1 -1
- package/docs/uk/packages/adonis-intlayer/t.md +1 -1
- package/docs/uk/packages/angular-intlayer/exports.md +1 -1
- package/docs/uk/packages/express-intlayer/t.md +3 -3
- package/docs/uk/packages/hono-intlayer/t.md +2 -2
- package/docs/uk/packages/intlayer/exports.md +1 -1
- package/docs/uk/packages/intlayer/getEnumeration.md +1 -1
- package/docs/uk/packages/intlayer/getMultilingualUrls.md +2 -2
- package/docs/uk/packages/intlayer/getTranslation.md +2 -2
- package/docs/uk/packages/intlayer/getTranslationContent.md +3 -3
- package/docs/uk/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/uk/packages/next-intlayer/t.md +2 -2
- package/docs/uk/packages/next-intlayer/useLocale.md +3 -3
- package/docs/uk/packages/next-intlayer/useRewriteURL.md +1 -1
- package/docs/uk/packages/nuxt-intlayer/exports.md +3 -3
- package/docs/uk/packages/react-intlayer/t.md +3 -3
- package/docs/uk/packages/react-intlayer/useDictionary.md +1 -1
- package/docs/uk/packages/react-intlayer/useLocale.md +2 -2
- package/docs/uk/packages/react-native-intlayer/exports.md +1 -1
- package/docs/uk/per_locale_file.md +2 -2
- package/docs/uk/plugins/sync-json.md +10 -10
- package/docs/uk/readme.md +135 -111
- package/docs/uk/releases/v6.md +2 -2
- package/docs/uk/releases/v7.md +2 -2
- package/docs/uk/releases/v8.md +1 -1
- package/docs/uk/roadmap.md +4 -4
- package/docs/uk/testing.md +1 -1
- package/docs/uk/vs_code_extension.md +2 -2
- package/docs/vi/agent_skills.md +2 -0
- package/docs/vi/compiler.md +80 -2
- package/docs/vi/component_i18n.md +2 -2
- package/docs/vi/configuration.md +61 -1
- package/docs/vi/dictionary/content_file.md +1 -1
- package/docs/vi/index.md +2 -2
- package/docs/vi/intlayer_CMS.md +1 -1
- package/docs/vi/intlayer_with_adonisjs.md +1 -1
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_create_react_app.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_fastify.md +1 -1
- package/docs/vi/intlayer_with_hono.md +1 -1
- package/docs/vi/intlayer_with_lynx+react.md +1 -1
- package/docs/vi/intlayer_with_nestjs.md +1 -1
- package/docs/vi/intlayer_with_next-i18next.md +2 -2
- package/docs/vi/intlayer_with_next-intl.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +3 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +2 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/vi/intlayer_with_nuxt.md +1 -1
- package/docs/vi/intlayer_with_react_native+expo.md +5 -3
- package/docs/vi/intlayer_with_react_router_v7.md +4 -2
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack.md +1 -1
- package/docs/vi/intlayer_with_vite+preact.md +3 -1
- package/docs/vi/intlayer_with_vite+react.md +3 -1
- package/docs/vi/intlayer_with_vite+react_compiler.md +385 -0
- package/docs/vi/intlayer_with_vite+solid.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +3 -1
- package/docs/vi/intlayer_with_vite+vue.md +3 -1
- package/docs/vi/introduction.md +2 -2
- package/docs/vi/packages/intlayer/getCanonicalPath.md +1 -1
- package/docs/vi/packages/next-intlayer/intlayerMiddleware.md +29 -6
- package/docs/vi/readme.md +138 -110
- package/docs/vi/releases/v8.md +2 -2
- package/docs/zh/agent_skills.md +2 -0
- package/docs/zh/compiler.md +79 -1
- package/docs/zh/component_i18n.md +2 -2
- package/docs/zh/configuration.md +68 -1
- package/docs/zh/dictionary/content_file.md +1 -1
- package/docs/zh/index.md +3 -3
- package/docs/zh/intlayer_CMS.md +1 -1
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_create_react_app.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_lynx+react.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_next-i18next.md +2 -2
- package/docs/zh/intlayer_with_next-intl.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +3 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +498 -0
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +3 -3
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_nuxt.md +1 -1
- package/docs/zh/intlayer_with_react_native+expo.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7.md +4 -2
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +4 -2
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/intlayer_with_vite+preact.md +3 -1
- package/docs/zh/intlayer_with_vite+react.md +3 -1
- package/docs/zh/intlayer_with_vite+react_compiler.md +388 -0
- package/docs/zh/intlayer_with_vite+solid.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +3 -1
- package/docs/zh/intlayer_with_vite+vue.md +3 -1
- package/docs/zh/introduction.md +2 -2
- package/docs/zh/packages/next-intlayer/intlayerMiddleware.md +30 -7
- package/docs/zh/readme.md +148 -120
- package/frequent_questions/ar/error-vite-env-only.md +2 -2
- package/frequent_questions/de/error-vite-env-only.md +2 -2
- package/frequent_questions/en/error-vite-env-only.md +2 -2
- package/frequent_questions/en-GB/error-vite-env-only.md +2 -2
- package/frequent_questions/es/error-vite-env-only.md +2 -2
- package/frequent_questions/fr/error-vite-env-only.md +2 -2
- package/frequent_questions/hi/error-vite-env-only.md +2 -2
- package/frequent_questions/id/domain_routing.md +1 -1
- package/frequent_questions/id/error-vite-env-only.md +2 -2
- package/frequent_questions/it/error-vite-env-only.md +2 -2
- package/frequent_questions/ja/error-vite-env-only.md +2 -2
- package/frequent_questions/ko/error-vite-env-only.md +2 -2
- package/frequent_questions/pl/domain_routing.md +1 -1
- package/frequent_questions/pl/error-vite-env-only.md +2 -2
- package/frequent_questions/pt/error-vite-env-only.md +2 -2
- package/frequent_questions/ru/error-vite-env-only.md +2 -2
- package/frequent_questions/tr/error-vite-env-only.md +2 -2
- package/frequent_questions/uk/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/uk/array_as_content_declaration.md +1 -1
- package/frequent_questions/uk/customized_locale_list.md +1 -1
- package/frequent_questions/uk/domain_routing.md +1 -1
- package/frequent_questions/uk/error-vite-env-only.md +3 -3
- package/frequent_questions/uk/get_locale_cookie.md +4 -4
- package/frequent_questions/uk/static_rendering.md +1 -1
- package/frequent_questions/vi/domain_routing.md +1 -1
- package/frequent_questions/vi/error-vite-env-only.md +2 -2
- package/frequent_questions/zh/error-vite-env-only.md +3 -3
- package/legal/de/terms_of_service.md +1 -1
- package/legal/fr/terms_of_service.md +2 -2
- package/legal/ja/terms_of_service.md +1 -1
- package/legal/pl/terms_of_service.md +2 -2
- package/legal/ru/terms_of_service.md +1 -1
- package/legal/uk/privacy_notice.md +1 -1
- package/legal/uk/terms_of_service.md +1 -1
- package/package.json +7 -8
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +40 -0
|
@@ -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.
|
|
@@ -48,7 +48,29 @@ Die Übersetzung einer Svelte-Anwendung kann mehrere Hürden mit sich bringen:
|
|
|
48
48
|
|
|
49
49
|
Svelte bietet keine native, integrierte i18n-Lösung (wie Angular), aber die Community hat eine Vielzahl robuster Bibliotheken und Muster erstellt. Im Folgenden sind mehrere beliebte Ansätze aufgeführt.
|
|
50
50
|
|
|
51
|
-
### 1.
|
|
51
|
+
### 1. Intlayer
|
|
52
|
+
|
|
53
|
+
> Website: [https://intlayer.org/](https://intlayer.org/)
|
|
54
|
+
|
|
55
|
+
**Überblick**
|
|
56
|
+
**Intlayer** ist eine innovative, open-source Internationalisierungsbibliothek (i18n), die darauf abzielt, die mehrsprachige Unterstützung in modernen Svelte (und anderen) Webanwendungen zu vereinfachen. Es bietet einen deklarativen Ansatz, mit dem Sie Übersetzungswörterbücher direkt innerhalb Ihrer Komponenten definieren können.
|
|
57
|
+
|
|
58
|
+
**Hauptmerkmale**
|
|
59
|
+
|
|
60
|
+
- **Übersetzungsdeklaration:** Ermöglicht die Deklaration aller Übersetzungen in einer einzelnen Datei, die auf Komponentenebene platziert ist, was die Wartung und Skalierung erleichtert.
|
|
61
|
+
- **TypeScript & Autovervollständigung:** Bietet automatisch generierte Typdefinitionen für Übersetzungsschlüssel, was robuste Autovervollständigung und Fehlermeldungen bietet.
|
|
62
|
+
- **Serverkomponenten & SSR:** Entwickelt mit Blick auf serverseitiges Rendering (SSR) und Serverkomponenten, um sicherzustellen, dass lokalisierte Inhalte effizient sowohl auf dem Client als auch auf dem Server gerendert werden.
|
|
63
|
+
- **Lokalisierte Metadaten & URLs für SEO:** Einfaches Handling dynamischer lokalbasierter Routen, Sitemaps und robots.txt-Einträge zur Verbesserung der Auffindbarkeit und SEO.
|
|
64
|
+
- **Nahtlose Integration:** Kompatibel mit SvelteKit und anderen Tools, was die Einrichtung unkompliziert macht.
|
|
65
|
+
- **Asynchrone Ladung:** Dynamisches Laden von Übersetzungswörterbüchern, um die ursprüngliche Bundle-Größe zu reduzieren und die Leistung zu verbessern.
|
|
66
|
+
|
|
67
|
+
**Überlegungen**
|
|
68
|
+
|
|
69
|
+
- **Gemeinschaft & Ökosystem:** Obwohl es wächst, ist das Ökosystem neuer, sodass von der Gemeinschaft betriebene Plugins und Tools möglicherweise im Vergleich zu etablierten Lösungen begrenzter sind.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 2. svelte-i18n
|
|
52
74
|
|
|
53
75
|
Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
54
76
|
|
|
@@ -70,7 +92,7 @@ Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaise
|
|
|
70
92
|
|
|
71
93
|
---
|
|
72
94
|
|
|
73
|
-
###
|
|
95
|
+
### 3. svelte-intl-precompile
|
|
74
96
|
|
|
75
97
|
Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
76
98
|
|
|
@@ -92,7 +114,7 @@ Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.
|
|
|
92
114
|
|
|
93
115
|
---
|
|
94
116
|
|
|
95
|
-
###
|
|
117
|
+
### 4. i18next mit Svelte / SvelteKit
|
|
96
118
|
|
|
97
119
|
Website: [https://www.i18next.com/](https://www.i18next.com/)
|
|
98
120
|
|
|
@@ -52,7 +52,21 @@ Im Folgenden sind mehrere beliebte Bibliotheken und Ansätze aufgeführt, die Si
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> Webseite: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**Überblick**
|
|
60
|
+
**Intlayer** ist eine Open-Source-i18n-Lösung, die darauf abzielt, die Unterstützung mehrerer Sprachen über verschiedene Frameworks hinweg zu vereinfachen, einschließlich **Vue**. Sie legt Wert auf einen deklarativen Ansatz, starke Typisierung und SSR-Unterstützung in anderen Ökosystemen, obwohl SSR in Standard-Vue nicht üblich ist.
|
|
61
|
+
|
|
62
|
+
**Hauptmerkmale**
|
|
63
|
+
|
|
64
|
+
- **Deklarative Übersetzung**: Definieren Sie Übersetzungs-Wörterbücher entweder auf Widget-Ebene oder in einer zentralen Datei für eine sauberere Architektur.
|
|
65
|
+
- **TypeScript & Autovervollständigung (Web)**: Während diese Funktion hauptsächlich Web-Frameworks zugutekommt, kann der typisierte Übersetzungsansatz dennoch strukturierten Code in Vue leiten.
|
|
66
|
+
- **Asynchrones Laden**: Laden Sie Übersetzungs-Ressourcen dynamisch, was potenziell die ursprüngliche Bundle-Größe für mehrsprachige Apps reduziert.
|
|
67
|
+
- **Integration mit Vue**: Eine grundlegende Integration kann eingerichtet werden, um den Intlayer-Ansatz für strukturierte Übersetzungen zu nutzen.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> Website: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ Im Folgenden sind mehrere beliebte Bibliotheken und Ansätze aufgeführt, die Si
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (Vue-Integration)
|
|
87
101
|
|
|
88
102
|
> Website: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|
|
@@ -96,7 +96,7 @@ Trotz dieser Ansätze ist klar, dass der zentralisierte Ansatz der populärste i
|
|
|
96
96
|
Lass mich erklären, warum das problematisch für deine App sein kann:
|
|
97
97
|
|
|
98
98
|
- **Unbenutzte Daten:**
|
|
99
|
-
Wenn eine Seite geladen wird, lädst du häufig den Inhalt aller anderen Seiten mit. (In einer 10-seitigen App sind das 90 % unbenutzter Inhalte, die geladen werden). Lädst du ein Modal per Lazy Loading? Der i18n‑Bibliothek ist das egal
|
|
99
|
+
Wenn eine Seite geladen wird, lädst du häufig den Inhalt aller anderen Seiten mit. (In einer 10-seitigen App sind das 90 % unbenutzter Inhalte, die geladen werden). Lädst du ein Modal per Lazy Loading? Der i18n‑Bibliothek ist das egal, sie lädt die Strings trotzdem zuerst.
|
|
100
100
|
- **Performance:**
|
|
101
101
|
Bei jedem Re-Render wird jede einzelne deiner Komponenten mit einer riesigen JSON-Payload hydriert, was die Reaktivität deiner App mit wachsender Größe beeinträchtigt.
|
|
102
102
|
- **Wartung:**
|
|
@@ -245,4 +245,4 @@ Natürlich bringt dieser Ansatz Kompromisse mit sich:
|
|
|
245
245
|
- Es ist schwieriger, sich mit anderen l10n-Systemen und zusätzlichem Tooling zu verbinden.
|
|
246
246
|
- Es entsteht ein Lock-in (was bei jeder i18n-Lösung aufgrund ihrer spezifischen Syntax im Grunde bereits der Fall ist).
|
|
247
247
|
|
|
248
|
-
Aus diesem Grund versucht Intlayer, ein vollständiges Toolset für i18n bereitzustellen (100% kostenlos und OSS), einschließlich AI-Übersetzung unter Verwendung Ihres eigenen AI-Providers und API-Keys. Intlayer stellt außerdem Tooling bereit, um Ihr JSON zu synchronisieren
|
|
248
|
+
Aus diesem Grund versucht Intlayer, ein vollständiges Toolset für i18n bereitzustellen (100% kostenlos und OSS), einschließlich AI-Übersetzung unter Verwendung Ihres eigenen AI-Providers und API-Keys. Intlayer stellt außerdem Tooling bereit, um Ihr JSON zu synchronisieren, dieses funktioniert wie die Message-Formatter von ICU / vue-i18n / i18next, um Inhalte in deren spezifische Formate zu überführen.
|
|
@@ -93,7 +93,7 @@ Dieser Kompromiss (Chunk-Größe vs. Überlappung) ist entscheidend für die Eff
|
|
|
93
93
|
|
|
94
94
|
## Schritt 3: Erzeugen von Embeddings
|
|
95
95
|
|
|
96
|
-
Sobald die Dokumente in Chunks aufgeteilt sind, erzeugen wir **Embeddings
|
|
96
|
+
Sobald die Dokumente in Chunks aufgeteilt sind, erzeugen wir **Embeddings**, hochdimensionale Vektoren, die jeden Chunk repräsentieren.
|
|
97
97
|
|
|
98
98
|
Ich habe das OpenAI-Modell text-embedding-3-large verwendet, aber Sie können jedes moderne Embedding-Modell nutzen.
|
|
99
99
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "i18n Meaning: What is Internationalization and Why Does it Matter?"
|
|
5
|
+
description: "Discover the true i18n meaning in software development. Learn what internationalization is, why it's abbreviated as i18n, and how it impacts global reach."
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n meaning
|
|
8
|
+
- What does i18n stand for
|
|
9
|
+
- i18n
|
|
10
|
+
- Internationalization
|
|
11
|
+
- Localization
|
|
12
|
+
- Blog
|
|
13
|
+
- Web Development
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# i18n Meaning: What is Internationalization and Why Does it Matter?
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## Understanding the "i18n" Meaning
|
|
24
|
+
|
|
25
|
+
If you are involved in software development, web design, or digital marketing, you have likely encountered the term **i18n**. The true **i18n meaning** is simply a numeronym for **internationalization**.
|
|
26
|
+
|
|
27
|
+
But why "i18n"? The abbreviation is created by taking the first letter of the word "internationalization" (**i**), the last letter (**n**), and counting the number of letters between them (**18**). This convention is frequently used in the tech industry to shorten long, cumbersome terms (another common example is **l10n** for localization).
|
|
28
|
+
|
|
29
|
+
In technical terms, the **i18n meaning** refers to the process of designing and preparing a software application, website, or product so that it can easily support multiple languages, regional norms, and cultural conventions, all without requiring significant engineering changes to the underlying source code.
|
|
30
|
+
|
|
31
|
+
## The Core Meaning of i18n in Practice
|
|
32
|
+
|
|
33
|
+
Understanding the i18n meaning goes beyond simply knowing what the acronym stands for. It's about recognizing the architectural principles behind it. When a project is properly "internationalized," it means that developers have decoupled the content from the code.
|
|
34
|
+
|
|
35
|
+
Instead of hardcoding text into the application like this:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>Submit</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
An i18n-ready app uses translation keys or variables:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This ensures that the application can dynamically load the correct language dictionary (e.g., English, Spanish, Japanese) based on the user's preferences, without rewriting the component.
|
|
48
|
+
|
|
49
|
+
## Why the i18n Meaning is Crucial for Your Business
|
|
50
|
+
|
|
51
|
+
Grasping the **i18n meaning** is just the first step. Understanding _why_ it is so critical for modern digital products is what separates successful global applications from local ones.
|
|
52
|
+
|
|
53
|
+
### Breaking Down Language Barriers
|
|
54
|
+
|
|
55
|
+
The most obvious application of the i18n meaning is translation. By internationalizing your application from day one, you build a foundation that allows you to translate your interface into dozens of languages seamlessly. This is essential for unlocking new global markets.
|
|
56
|
+
|
|
57
|
+
### Cultural and Regional Adaptation
|
|
58
|
+
|
|
59
|
+
The i18n meaning extends beyond language. True internationalization supports:
|
|
60
|
+
|
|
61
|
+
- **Date and Time Formats:** Displaying `MM/DD/YYYY` for US users vs. `DD/MM/YYYY` for European users.
|
|
62
|
+
- **Number formatting:** Recognizing that `1,000.50` in the US is often written as `1.000,50` in parts of Europe.
|
|
63
|
+
- **Currencies:** Adapting `$99.00` vs `99,00 €`.
|
|
64
|
+
- **Text Directionality:** Supporting Right-To-Left (RTL) languages like Arabic and Hebrew.
|
|
65
|
+
|
|
66
|
+
### Improved SEO Performance
|
|
67
|
+
|
|
68
|
+
Search engines prioritize content that is relevant to the user's language and region. Applying the principles behind the i18n meaning allows you to structure your website (e.g., using `hreflang` tags, localized URLs) to rank higher in multiple countries, driving organic global traffic.
|
|
69
|
+
|
|
70
|
+
## Internationalization (i18n) vs. Localization (l10n)
|
|
71
|
+
|
|
72
|
+
To fully grasp the **i18n meaning**, you must differentiate it from **l10n** (localization).
|
|
73
|
+
|
|
74
|
+
- **i18n (Internationalization):** The _technical preparation_ and structural design framework that makes adaptation possible. Examples: supporting UTF-8 encoding, abstracting text strings, and making UI layouts flexible for longer words.
|
|
75
|
+
- **l10n (Localization):** The _actual adaptation_ of the product for a specific locale. Examples: translating the English text into French, adjusting images to fit cultural norms, and setting the local currency.
|
|
76
|
+
|
|
77
|
+
Think of **i18n** as building a car where the steering wheel can be moved to either the left or right side. **l10n** is the act of actually moving the wheel to the right side to sell the car in the UK.
|
|
78
|
+
|
|
79
|
+
## Common Misconceptions About the i18n Meaning
|
|
80
|
+
|
|
81
|
+
1. **"i18n just means translation."**
|
|
82
|
+
While translation is a big part of the end result, the true i18n meaning encompasses formatting, pluralization rules, text direction, and architectural readiness.
|
|
83
|
+
2. **"We can add i18n later."**
|
|
84
|
+
Retrofitting an application for internationalization is notoriously difficult. Hardcoded strings, rigid UI components, and incompatible date formats can lead to massive technical debt. Planning for i18n from the start is a fundamental best practice.
|
|
85
|
+
|
|
86
|
+
## How to Implement i18n Effectively
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
Now that we have established the true **i18n meaning**, how do you apply it?
|
|
91
|
+
|
|
92
|
+
- **Use an established i18n framework:** Don't reinvent the wheel. Whether you are using React, Vue, Next.js, or plain JavaScript, there are specific i18n libraries designed to handle the heavy lifting (like pluralization and interpolation).
|
|
93
|
+
- **Abstract all user-facing text:** Ensure zero hardcoded text exists in your UI components.
|
|
94
|
+
- **Employ a robust translation management system:** Tools like **Intlayer** bridge the gap between developers and translators. Intlayer acts as a headless CMS that is tightly integrated with your codebase, allowing content managers to update translations visually without requiring a developer to trigger a new build.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### See list of i18n Libraries and tool per technology
|
|
99
|
+
|
|
100
|
+
If you’re looking for a list of i18n libraries and tools per technology, check out the following resources:
|
|
101
|
+
|
|
102
|
+
### For Content Management Systems (CMS)
|
|
103
|
+
|
|
104
|
+
- WordPress: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- Wix: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- Drupal: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### For JavaScript Applications (Frontend)
|
|
109
|
+
|
|
110
|
+
- React: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- Angular: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- Vue: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- Svelte: [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- React Native : [See list of i18n Libraries and tool](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Conclusion
|
|
119
|
+
|
|
120
|
+
The **i18n meaning** is a foundational concept for any modern digital business aiming for global impact. Far beyond being just a quirky tech abbreviation for "internationalization," i18n represents the technical architecture required to seamlessly adapt your software to diverse languages, cultures, and regional standards.
|
|
121
|
+
|
|
122
|
+
By understanding the i18n meaning and adopting its principles early in your development cycle, you save significant engineering time, prevent future technical debt, and ensure that your application provides a native, welcoming experience to users across the globe.
|
|
123
|
+
|
|
124
|
+
Whether you’re building a mobile app, a SaaS platform, or an enterprise tool, embracing the true i18n meaning ensures that your product can adapt and appeal to users from all around the world, without the need for constant code rewrites. By leveraging best practices, robust frameworks, and localized content declaration with platforms like Intlayer, product teams can deliver truly global software experiences.
|
|
@@ -62,7 +62,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
62
62
|
|
|
63
63
|
However, **i18next** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
64
64
|
|
|
65
|
-
By combining **Intlayer** with **i18next**, you get the best of both worlds
|
|
65
|
+
By combining **Intlayer** with **i18next**, you get the best of both worlds, i18next’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
66
66
|
|
|
67
67
|
This guide explains how to leverage Intlayer as an **adapter for i18next**, allowing you to:
|
|
68
68
|
|
|
@@ -135,8 +135,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
135
135
|
|
|
136
136
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
139
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
140
140
|
|
|
141
141
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
142
142
|
|
|
@@ -55,7 +55,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
55
55
|
|
|
56
56
|
However, **i18next** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
57
57
|
|
|
58
|
-
By combining **Intlayer** with **i18next**, you get the best of both worlds
|
|
58
|
+
By combining **Intlayer** with **i18next**, you get the best of both worlds, i18next’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
59
59
|
|
|
60
60
|
This guide explains how to leverage Intlayer as an **adapter for i18next**, allowing you to:
|
|
61
61
|
|
|
@@ -126,8 +126,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
126
126
|
|
|
127
127
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
130
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
131
131
|
|
|
132
132
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
133
133
|
|
|
@@ -52,7 +52,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
52
52
|
|
|
53
53
|
However, **next-intl** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
54
54
|
|
|
55
|
-
By combining **Intlayer** with **next-intl**, you get the best of both worlds
|
|
55
|
+
By combining **Intlayer** with **next-intl**, you get the best of both worlds, next-intl’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
56
56
|
|
|
57
57
|
This guide explains how to leverage Intlayer as an **adapter for next-intl**, allowing you to:
|
|
58
58
|
|
|
@@ -126,8 +126,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
126
126
|
|
|
127
127
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
130
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
131
131
|
|
|
132
132
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
133
133
|
|
|
@@ -53,7 +53,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
53
53
|
|
|
54
54
|
However, **i18next** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
55
55
|
|
|
56
|
-
By combining **Intlayer** with **i18next**, you get the best of both worlds
|
|
56
|
+
By combining **Intlayer** with **i18next**, you get the best of both worlds, i18next’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
57
57
|
|
|
58
58
|
This guide explains how to leverage Intlayer as an **adapter for i18next**, allowing you to:
|
|
59
59
|
|
|
@@ -126,8 +126,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
126
126
|
|
|
127
127
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
130
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
131
131
|
|
|
132
132
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
133
133
|
|
|
@@ -55,7 +55,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
55
55
|
|
|
56
56
|
However, **react-intl** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
57
57
|
|
|
58
|
-
By combining **Intlayer** with **react-intl**, you get the best of both worlds
|
|
58
|
+
By combining **Intlayer** with **react-intl**, you get the best of both worlds, react-intl’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
59
59
|
|
|
60
60
|
This guide explains how to leverage Intlayer as an **adapter for react-intl**, allowing you to:
|
|
61
61
|
|
|
@@ -125,8 +125,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
125
125
|
|
|
126
126
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
129
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
130
130
|
|
|
131
131
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
132
132
|
|
|
@@ -55,7 +55,7 @@ Intlayer offers a rich set of **advanced features** that go beyond traditional i
|
|
|
55
55
|
|
|
56
56
|
However, **vue-i18n** remains an excellent and widely adopted i18n solution thanks to its **mature ecosystem**, **broad community support**, and **extensive plugin compatibility**.
|
|
57
57
|
|
|
58
|
-
By combining **Intlayer** with **vue-i18n**, you get the best of both worlds
|
|
58
|
+
By combining **Intlayer** with **vue-i18n**, you get the best of both worlds, vue-i18n’s stability and ecosystem maturity, with Intlayer’s modern content management, automation, and developer experience improvements.
|
|
59
59
|
|
|
60
60
|
This guide explains how to leverage Intlayer as an **adapter for vue-i18n**, allowing you to:
|
|
61
61
|
|
|
@@ -127,8 +127,8 @@ The `syncJSON` plugin will automatically wrap the JSON. It will read and write t
|
|
|
127
127
|
|
|
128
128
|
If you want to make coexist that JSON with intlayer content declaration files (`.content` files), Intlayer will proceed this way:
|
|
129
129
|
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
1. load both JSON and content declaration files and transform them into a intlayer dictionary.
|
|
131
|
+
2. if there is conflicts between the JSON and the content declaration files, Intlayer will process to the merge of that all dictionaries. Depending of the priority of the plugins, and the one of the content declaration file (all are configurable).
|
|
132
132
|
|
|
133
133
|
If changes are made using the CLI to translate the JSON, or using the CMS, Intlayer will update the JSON file with the new translations.
|
|
134
134
|
|
|
@@ -37,11 +37,11 @@ It built its success on being the "developer-friendly" TMS, automating the extra
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Lokalise, which acts largely as an external synchronization tool for your strings, Intlayer lives closer to your code. It controls the entire stack
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Lokalise, which acts largely as an external synchronization tool for your strings, Intlayer lives closer to your code. It controls the entire stack, from the bundling layer to remote content delivery, resulting in a smoother and more efficient content flow.
|
|
41
41
|
|
|
42
42
|
## Why have the paradigms changed since AI?
|
|
43
43
|
|
|
44
|
-
Lokalise perfected the "DevOps" side of localization
|
|
44
|
+
Lokalise perfected the "DevOps" side of localization, moving strings automatically. However, the arrival of Large Language Models (LLMs) has fundamentally shifted the paradigms of localization. The bottleneck is no longer _moving_ the strings; it is _generating_ them.
|
|
45
45
|
|
|
46
46
|
With LLMs, the cost of translation has plummeted, and the speed has increased exponentially. The role of the localization team is shifting from "managing translators" to "managing context and review."
|
|
47
47
|
|
|
@@ -57,7 +57,7 @@ Lokalise is often criticized for its steep pricing tiers, which can become prohi
|
|
|
57
57
|
|
|
58
58
|
1. **Cost Efficiency:** You are not locked into a "per key" or "per seat" pricing model that penalizes growth. With Intlayer, you pay for your own inference (BYO Key), meaning your costs scale directly with your actual usage, not the platform's margins.
|
|
59
59
|
2. **Workflow Integration:** While Lokalise requires syncing files (even if automated), Intlayer allows for Declarative Content definition directly in your component files (React, Next.js, etc.). This keeps the context right next to the UI, reducing errors.
|
|
60
|
-
3. **Visual Management:** Intlayer provides a visual editor that interacts directly with your running application, ensuring that edits are made in full visual context
|
|
60
|
+
3. **Visual Management:** Intlayer provides a visual editor that interacts directly with your running application, ensuring that edits are made in full visual context, something often disconnected in traditional TMS file lists.
|
|
61
61
|
|
|
62
62
|
# Comparison side by side
|
|
63
63
|
|
|
@@ -75,6 +75,6 @@ Intlayer offers a complete, all-in-one i18n solution that allows for a deep inte
|
|
|
75
75
|
|
|
76
76
|
Furthermore, Intlayer can be utilized as a Feature Flag or A/B testing tool, enabling you to test different content variations dynamically. While Lokalise focuses on getting the words right, Intlayer focuses on getting the _user experience_ right through dynamic data serving.
|
|
77
77
|
|
|
78
|
-
Lokalise is excellent for mobile apps (iOS/Android) and design-led workflows. However, for modern web applications using frameworks like Next.js or React, Intlayer's native handling of `.js`, `.ts`, and JSON dictionaries offers a superior developer experience (DX) with full TypeScript support for content
|
|
78
|
+
Lokalise is excellent for mobile apps (iOS/Android) and design-led workflows. However, for modern web applications using frameworks like Next.js or React, Intlayer's native handling of `.js`, `.ts`, and JSON dictionaries offers a superior developer experience (DX) with full TypeScript support for content, ensuring you never ship a missing translation key again.
|
|
79
79
|
|
|
80
|
-
Finally, for those prioritizing data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localization infrastructure
|
|
80
|
+
Finally, for those prioritizing data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localization infrastructure, a stark contrast to Lokalise's closed SaaS model.
|
|
@@ -37,7 +37,7 @@ For over a decade, Crowdin has been the industry standard for managing localizat
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer is known primarily as an i18n solution, but it also integrates a CMS. Unlike Crowdin, which is limited to acting as a wrapper around your existing i18n setup, Intlayer controls the entire stack
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a CMS. Unlike Crowdin, which is limited to acting as a wrapper around your existing i18n setup, Intlayer controls the entire stack, from the bundling layer to remote content delivery, resulting in a smoother and more efficient content flow.
|
|
41
41
|
|
|
42
42
|
## Why have the paradigms changed since AI?
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ However, there is a limitation. Copywriting is not just about translation; it is
|
|
|
49
49
|
|
|
50
50
|
Today, the most efficient workflow is to translate and position your pages globally using AI first. Then, in a second phase, you use human copywriters to optimize specific high-traffic content to boost conversion once the product is already generating revenue.
|
|
51
51
|
|
|
52
|
-
Although Crowdin's revenue
|
|
52
|
+
Although Crowdin's revenue, driven mainly by its well-proven legacy solutions, continues to perform well, I believe the traditional localization sector will be severely impacted within a 5 to 10-year horizon. The model of paying per word or per seat for a management tool is becoming obsolete.
|
|
53
53
|
|
|
54
54
|
## Why is Intlayer a good alternative to Crowdin?
|
|
55
55
|
|
|
@@ -73,8 +73,8 @@ With Intlayer, you generate your translations at the cost of your inferences. Yo
|
|
|
73
73
|
|
|
74
74
|
Intlayer offers a complete, all-in-one i18n solution that allows for a deep integration of your content. Your remote content can be synchronized directly with your codebase or your live application. In comparison, Crowdin often necessitates a rebuild of your application in your CI/CD pipeline to update content, creating friction between the translation team and the deployment process.
|
|
75
75
|
|
|
76
|
-
Furthermore, Intlayer can be utilized as a Feature Flag or A/B testing tool, enabling you to test different content variations dynamically
|
|
76
|
+
Furthermore, Intlayer can be utilized as a Feature Flag or A/B testing tool, enabling you to test different content variations dynamically, something standard TMS tools like Crowdin do not support natively.
|
|
77
77
|
|
|
78
|
-
Crowdin supports a wide range of file formats
|
|
78
|
+
Crowdin supports a wide range of file formats, including legacy types like `.po`, `.xml`, and `.yaml`, which can be beneficial for projects with established workflows or older systems. Intlayer, by contrast, works primarily with modern web-oriented formats such as `.json`, `.js`, and `.ts`. This means Intlayer may not be compatible with all legacy file formats, which is a consideration for teams migrating from older platforms.
|
|
79
79
|
|
|
80
80
|
Finally, for those prioritizing data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localization infrastructure.
|
|
@@ -37,7 +37,7 @@ Phrase is built for scale. It is the go-to choice for large enterprises that nee
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Phrase, which functions as a massive, external enterprise suite, Intlayer acts as a nimble, code-integrated layer. It controls the entire stack
|
|
40
|
+
Intlayer is known primarily as an i18n solution, but it also integrates a headless CMS. Unlike Phrase, which functions as a massive, external enterprise suite, Intlayer acts as a nimble, code-integrated layer. It controls the entire stack, from the bundling layer to remote content delivery, resulting in a smoother and more efficient content flow for modern web applications.
|
|
41
41
|
|
|
42
42
|
## Why have the paradigms changed since AI?
|
|
43
43
|
|
|
@@ -75,4 +75,4 @@ Furthermore, Intlayer can be utilized as a Feature Flag or A/B testing tool, ena
|
|
|
75
75
|
|
|
76
76
|
While Phrase is undeniable for complex, multi-format enterprise needs (e.g., translating PDFs, subtitles, and software simultaneously), Intlayer is the superior choice for product teams building web applications who want full ownership, type safety, and a modern, AI-driven workflow without the enterprise overhead.
|
|
77
77
|
|
|
78
|
-
Finally, for those prioritizing data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localization infrastructure
|
|
78
|
+
Finally, for those prioritizing data sovereignty and control, Intlayer is open-source and can be self-hosted. Docker files are available directly in the repository, giving you full ownership of your localization infrastructure, something impossible with Phrase's closed SaaS ecosystem.
|
|
@@ -54,7 +54,7 @@ Here’s a checklist every multilingual app should implement:
|
|
|
54
54
|
- **Use localized links**
|
|
55
55
|
Example: `<a href="/fr/about">À propos</a>` instead of linking to the default `/about`.
|
|
56
56
|
|
|
57
|
-
These are simple steps
|
|
57
|
+
These are simple steps, but skipping them can cost you visibility.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -85,7 +85,6 @@ So the idea is to break text into manageable chunks (e.g. 500 tokens each) with
|
|
|
85
85
|
<img width="480" alt="Reliable data source" src="https://github.com/user-attachments/assets/ee548851-7206-4cc6-821e-de8a4366c6a3" />
|
|
86
86
|
</p>
|
|
87
87
|
|
|
88
|
-
|
|
89
88
|
**Example:**
|
|
90
89
|
|
|
91
90
|
- Chunk 1 → “…the old library that many had forgotten. Its towering shelves were filled with books…”
|
|
@@ -100,7 +99,7 @@ This trade-off (chunk size vs overlap) is key for RAG efficiency:
|
|
|
100
99
|
|
|
101
100
|
## Step 3: Generating Embeddings
|
|
102
101
|
|
|
103
|
-
Once the docs are chunked, we generate **embeddings
|
|
102
|
+
Once the docs are chunked, we generate **embeddings**, high-dimensional vectors representing each chunk.
|
|
104
103
|
|
|
105
104
|
I used OpenAI’s text-embedding-3-large model, but you could use any modern embedding model.
|
|
106
105
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# The Case for and Against Compiler-Based i18n
|
|
22
22
|
|
|
23
|
-
If you have been building web applications for more than a decade, you know that Internationalisation (i18n) has always been a friction point. It is often the task no one wants to do
|
|
23
|
+
If you have been building web applications for more than a decade, you know that Internationalisation (i18n) has always been a friction point. It is often the task no one wants to do, extracting strings, managing JSON files, and worrying about pluralisation rules.
|
|
24
24
|
|
|
25
25
|
Recently, a new wave of **"Compiler-based" i18n tools** has emerged, promising to make this pain disappear. The pitch is seductive: **Just write text in your components, and let the build tool handle the rest.** No keys, no imports, just magic.
|
|
26
26
|
|
|
@@ -205,7 +205,7 @@ So, which should you choose?
|
|
|
205
205
|
The compiler-based approach is a valid choice. It allows you to move incredibly fast. You don't need to worry about file structures or keys. You just build. The technical debt is a problem for "Future You."
|
|
206
206
|
|
|
207
207
|
**If you are a Junior Developer, or don’t care about optimisation:**
|
|
208
|
-
If you want the least manual management, a compiler-based approach is likely best. You won’t need to handle keys or translation files yourself
|
|
208
|
+
If you want the least manual management, a compiler-based approach is likely best. You won’t need to handle keys or translation files yourself, just write text, and the compiler automates the rest. This reduces setup effort and common i18n mistakes tied to manual steps.
|
|
209
209
|
|
|
210
210
|
**If you are internationalising an existing project that already includes thousands of components to refactor:**
|
|
211
211
|
A compiler-based approach can be a pragmatic choice here. The initial extraction phase can save weeks or months of manual work. However, consider using a tool like Intlayer's `transform` command, which can extract strings and convert them into explicit declarative content declarations. This gives you the speed of automation while maintaining the safety and portability of a declarative approach. You get the best of both worlds: rapid initial migration without long-term architectural debt.
|