@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
|
@@ -23,58 +23,58 @@ history:
|
|
|
23
23
|
|
|
24
24
|
<TOC/>
|
|
25
25
|
|
|
26
|
-
# 翻译管理系统 (
|
|
26
|
+
# 翻译管理系统 (TMS)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
翻译管理系统 (TMS) 是一种软件平台,旨在自动化并简化翻译与本地化 (L10n) 流程。传统上,TMS 作为一个中心枢纽,用于上传和组织内容,并将其分配给人工译者。它负责管理工作流,存储翻译记忆(以避免重复翻译相同的句子),并处理将翻译后的文件交付回开发人员或内容管理员的过程。
|
|
29
29
|
|
|
30
|
-
本质上,TMS
|
|
30
|
+
本质上,TMS 历来是技术代码(字符串所在处)与理解文化的人工译者之间的桥梁。
|
|
31
31
|
|
|
32
32
|
# Lokalise
|
|
33
33
|
|
|
34
|
-
Lokalise 是现代 TMS
|
|
34
|
+
Lokalise 是现代 TMS 领域的重要参与者。其成立于 2017 年,通过高度关注开发者体验 (DX) 和设计集成颠覆了市场。与老牌竞争对手不同,Lokalise 优先打造流畅的 UI、强大的 API,以及与 Figma 和 GitHub 等工具的集成,以减少文件往返移动的摩擦。
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
它的成功建立在作为“开发者友好型” TMS 之上,能够自动化字符串的提取与插入,从而节省工程师的时间。它有效地解决了快速发展的技术团队希望摆脱手动处理电子表格邮件的需求,实现了**持续本地化**。
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer 主要作为 i18n
|
|
40
|
+
Intlayer 主要作为 i18n 解决方案而闻名,但它也集成了一个无头 CMS。与主要作为外部字符串同步工具的 Lokalise 不同,Intlayer 更贴近您的代码。它控制整个技术栈, 从打包层到远程内容交付, 从而带来更顺畅、更高效的内容流。
|
|
41
41
|
|
|
42
|
-
##
|
|
42
|
+
## 为什么 AI 的出现改变了范式?
|
|
43
43
|
|
|
44
|
-
Lokalise 将本地化的 “DevOps”
|
|
44
|
+
Lokalise 将本地化的 “DevOps” 方面做到了极致, 即自动化的字符串移动。然而,大型语言模型 (LLM) 的出现从根本上改变了本地化的范式。现在的瓶颈不再是**移动**字符串,而是**生成**内容。
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
随着 LLM 的出现,翻译成本急剧下降,速度呈指数级提升。本地化团队的角色正从“管理译者”转向“管理上下文和审核”。
|
|
47
47
|
|
|
48
|
-
尽管 Lokalise 已经增加了 AI
|
|
48
|
+
尽管 Lokalise 已经增加了 AI 功能,但它本质上仍是一个为管理人工工作流而设计,并按席位或翻译键数量计费的平台。在 AI 优先的世界里,价值在于您如何编排 AI 模型以生成具有上下文感知的内容,而不仅仅是多容易地将任务分派给代理机构。
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
目前,最有效的工作流是先利用 AI 进行页面翻译和全球布局。然后,在第二阶段,当产品已经开始产生收入时,再聘请专业文案人员对特定的高流量内容进行优化,以提升转化率。
|
|
51
51
|
|
|
52
|
-
## 为什么 Intlayer 是 Lokalise
|
|
52
|
+
## 为什么 Intlayer 是 Lokalise 的理想替代方案?
|
|
53
53
|
|
|
54
|
-
Intlayer
|
|
54
|
+
Intlayer 是诞生于 AI 时代的解决方案。其架构基于这样一个原则:纯粹的翻译已成为一种商品,而**上下文**才是核心。
|
|
55
55
|
|
|
56
|
-
Lokalise
|
|
56
|
+
Lokalise 常因其陡峭的定价阶梯而受到诟病,这对于正在扩张的初创公司来说可能极其昂贵。Intlayer 则采用了不同的策略:
|
|
57
57
|
|
|
58
|
-
1. **成本效率:**
|
|
59
|
-
2.
|
|
60
|
-
3.
|
|
58
|
+
1. **成本效率:** 您不会被锁定在按“翻译键数量”或“席位”计费的模型中,这种模型往往会惩罚公司的增长。使用 Intlayer,您可以根据自己的推理需求付费(自带 API 密钥,BYO Key),这意味着您的成本直接随实际使用量增长,而不是支付给平台的利润率。
|
|
59
|
+
2. **工作流集成:** 虽然 Lokalise 需要同步文件(即使是自动化的),但 Intlayer 允许您在组件文件(React、Next.js 等)中直接通过**声明式内容**进行定义。这能将上下文保留在 UI 旁,减少错误。
|
|
60
|
+
3. **可视化管理:** Intlayer 提供了一个可视化编辑器,可以直接与运行中的应用交互,确保在完整的视觉上下文中进行编辑, 而这在传统的 TMS 文件列表中往往是缺失的。
|
|
61
61
|
|
|
62
62
|
# 并排比较
|
|
63
63
|
|
|
64
64
|
| 功能 | Lokalise(现代 TMS) | Intlayer(AI 原生) |
|
|
65
65
|
| :----------- | :--------------------------------------------- | :------------------------------------ |
|
|
66
66
|
| **核心理念** | 自动化与设计阶段的本地化(L10n)。 | 管理内容逻辑与 AI 生成。 |
|
|
67
|
-
| **定价模式** | 按席位 / 月活(MAU)/
|
|
67
|
+
| **定价模式** | 按席位 / 月活(MAU)/ 键位数量计费(成本高)。 | 按自有推理付费(自带密钥,BYO Key)。 |
|
|
68
68
|
| **集成方式** | 基于 API 的同步 / Figma 插件。 | 深度代码集成(声明式)。 |
|
|
69
69
|
| **更新** | 同步延迟 / 需要创建 PR。 | 与代码库或运行中应用即时同步。 |
|
|
70
70
|
| **文件格式** | 格式无关(移动、Web、文档)。 | 现代 Web(JSON, JS, TS)。 |
|
|
71
|
-
| **测试** |
|
|
71
|
+
| **测试** | 审核工作流。 | CI / CLI / A/B 测试。 |
|
|
72
72
|
| **托管** | SaaS(闭源)。 | 开源 & 可自托管(Docker)。 |
|
|
73
73
|
|
|
74
|
-
Intlayer 提供了一个完整的一体化 i18n
|
|
74
|
+
Intlayer 提供了一个完整的一体化 i18n 解决方案,允许对内容进行深度集成。您的远程内容可以直接与代码库或在线应用同步。相比之下,Lokalise 通常依赖于创建拉取请求 (PR) 来更新代码仓库中的内容,这导致了“内容状态”和“应用状态”之间的分离。
|
|
75
75
|
|
|
76
|
-
此外,Intlayer
|
|
76
|
+
此外,Intlayer 还可以作为功能开关 (Feature Flag) 或 A/B 测试工具使用,使您能够动态地测试不同的内容变体。Lokalise 专注于文本的准确性,而 Intlayer 则通过动态数据服务专注于优化**用户体验**。
|
|
77
77
|
|
|
78
|
-
Lokalise 非常适合移动应用(iOS/Android
|
|
78
|
+
Lokalise 非常适合移动应用(iOS/Android)和以设计为导向的工作流。然而,对于使用 Next.js 或 React 等框架的现代 Web 应用,Intlayer 对 `.js`、`.ts` 和 JSON 字典的原生处理提供了更优的开发者体验 (DX),并为内容提供完整的 TypeScript 支持, 确保您再也不会部署缺失翻译键的代码。
|
|
79
79
|
|
|
80
|
-
最后,对于那些优先考虑数据主权与控制权的用户,Intlayer
|
|
80
|
+
最后,对于那些优先考虑数据主权与控制权的用户,Intlayer 是开源的且支持自托管。Docker 文件已直接包含在代码库中,赋予您对本地化基础设施的完全所有权, 这与 Lokalise 的封闭式 SaaS 模型形成了鲜明对比。
|
|
@@ -23,62 +23,58 @@ history:
|
|
|
23
23
|
|
|
24
24
|
<TOC/>
|
|
25
25
|
|
|
26
|
-
# 翻译管理系统
|
|
26
|
+
# 翻译管理系统 (TMS)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
翻译管理系统 (TMS) 是一种软件平台,旨在自动化并简化翻译和本地化 (L10n) 流程。传统上,TMS 作为一个中心枢纽,负责上传、组织内容并将其分配给人工译者。它负责管理工作流,存储翻译记忆(以避免重复翻译相同的句子),并负责将翻译后的文件交付回开发人员或内容负责人。
|
|
29
29
|
|
|
30
|
-
本质上,TMS
|
|
31
|
-
|
|
32
|
-
翻译管理系统(TMS)是一种软件平台,旨在自动化并简化翻译与本地化(L10n)流程。传统上,TMS 充当一个集中枢纽,内容在此被上传、组织并分配给人工译者。它管理工作流、存储翻译记忆(以避免对相同句子重复翻译),并负责将已翻译的文件交付回开发者或内容负责人。
|
|
33
|
-
|
|
34
|
-
本质上,TMS 长期以来一直是技术代码(字符串所在)与理解目标文化的人类语言学家之间的桥梁。
|
|
30
|
+
本质上,TMS 在技术代码(字符串所在处)与理解目标文化的人工译者之间长期扮演着桥梁角色。
|
|
35
31
|
|
|
36
32
|
# Crowdin
|
|
37
33
|
|
|
38
|
-
Crowdin
|
|
34
|
+
Crowdin 是该领域的资深玩家。其成立于 2009 年,它出现在本地化主要挑战还是连接性问题的时期。它的使命很明确:将文案作者、译者和项目负责人有效地连接起来。
|
|
39
35
|
|
|
40
|
-
十多年来,Crowdin
|
|
36
|
+
十多年来,Crowdin 一直是管理本地化的行业标准。通过允许团队上传 `.po`、`.xml` 或 `.yaml` 文件,并让译者在云端界面上处理这些内容,它解决了文件碎片化问题。Crowdin 凭借稳健的工作流自动化建立了声誉,使公司能够从一种语言平滑扩展到十种语言,而无需陷入繁琐的电子表格中。
|
|
41
37
|
|
|
42
38
|
# Intlayer
|
|
43
39
|
|
|
44
|
-
Intlayer 主要以 i18n
|
|
40
|
+
Intlayer 主要以 i18n 解决方案著称,但它也集成了一个内容管理系统 (CMS)。与仅能作为现有 i18n 设置外壳的 Crowdin 不同,Intlayer 控制着整个技术栈, 从打包层到远程内容交付, 从而带来更顺畅、更高效的内容流。
|
|
45
41
|
|
|
46
42
|
## 自从 AI 出现后,范式为何改变?
|
|
47
43
|
|
|
48
|
-
尽管 Crowdin
|
|
44
|
+
尽管 Crowdin 优化了人工工作流程,但大型语言模型 (LLM) 的出现从根本上改变了本地化的范式。文案撰稿人的角色不再是从零开始翻译,而是审校和完善 AI 生成的内容。
|
|
49
45
|
|
|
50
|
-
为什么?因为 AI 的成本低了
|
|
46
|
+
为什么?因为 AI 的成本低了 1000 倍,且速度呈指数级提升。
|
|
51
47
|
|
|
52
|
-
|
|
48
|
+
不过,这也存在局限性。文案撰写不仅仅是翻译,更核心的是根据不同文化和语境调整信息。向您的祖母推销 iPhone 的方式,显然不能和向中国商务高管推销的方式相同。语调、措辞和文化标识都必须有所不同。
|
|
53
49
|
|
|
54
|
-
|
|
50
|
+
如今,最有效的工作流程是首先利用 AI 进行页面翻译和全球定位。随后在第二阶段,再由人工文案人员对特定的高流量内容进行优化,从而在产品产生收入后进一步提升转化率。
|
|
55
51
|
|
|
56
|
-
尽管 Crowdin
|
|
52
|
+
尽管 Crowdin 凭借其经过验证的传统解决方案依然表现良好,但我认为传统的本地化行业将在未来 5 到 10 年内受到严重冲击。按字数或席位付费的传统管理工具模式正在逐渐过时。
|
|
57
53
|
|
|
58
|
-
## 为什么 Intlayer 是 Crowdin
|
|
54
|
+
## 为什么 Intlayer 是 Crowdin 的理想替代方案?
|
|
59
55
|
|
|
60
|
-
Intlayer
|
|
56
|
+
Intlayer 是诞生于 AI 时代的解决方案。其架构理念基于这样一个前提:到 2026 年,纯粹的翻译已不再具有内在价值,而成为了一种商品化的服务。
|
|
61
57
|
|
|
62
|
-
因此,Intlayer
|
|
58
|
+
因此,Intlayer 不只是将自己定位为 TMS,而是一个深度整合了可视化编辑器和国际化逻辑的**内容管理**方案。
|
|
63
59
|
|
|
64
|
-
使用 Intlayer
|
|
60
|
+
使用 Intlayer,您可以以极低的推理成本生成翻译。您不会被绑定到特定平台的定价模型,您可以自由选择提供商(OpenAI、Anthropic、Mistral 等)和模型,并通过持续集成 (CI)、命令行界面 (CLI) 或集成的 CMS 直接进行翻译。它将价值核心从“获取译者资源”转向了“上下文管理”。
|
|
65
61
|
|
|
66
62
|
# 并排比较
|
|
67
63
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
| **更新**
|
|
74
|
-
| **文件格式**
|
|
75
|
-
| **测试**
|
|
76
|
-
| **托管**
|
|
64
|
+
| 功能 | Crowdin(传统 TMS) | Intlayer(AI 原生) |
|
|
65
|
+
| :----------- | :---------------------------------- | :---------------------------------------- |
|
|
66
|
+
| **核心理念** | 连接人工与字符串。 | 管理内容逻辑与 AI 生成。 |
|
|
67
|
+
| **定价模式** | 按席位 / 托管层级计费。 | 为您自己的推理付费(自带密钥,BYO Key)。 |
|
|
68
|
+
| **集成方式** | 基于文件的交换(上传/下载)。 | 深度代码集成(声明式)。 |
|
|
69
|
+
| **更新** | 通常需要在 CI/CD 中重建以部署文本。 | 与代码库或实时应用即时同步。 |
|
|
70
|
+
| **文件格式** | 多样化 (.po, .xml, .yaml 等)。 | 现代 Web(JSON, JS, TS)。 |
|
|
71
|
+
| **测试** | 功能有限。 | CI / CLI。 |
|
|
72
|
+
| **托管** | 主要为 SaaS。 | 开源且支持自托管(Docker)。 |
|
|
77
73
|
|
|
78
|
-
Intlayer
|
|
74
|
+
Intlayer 提供了一套完整的一体化 i18n 解决方案,可实现对内容的深度集成。您的动态内容可以直接与代码库或运行中的应用同步。相比之下,Crowdin 往往需要在 CI/CD 流水线中重建应用来更新内容,这在翻译团队与部署流程之间造成了摩擦。
|
|
79
75
|
|
|
80
|
-
此外,Intlayer
|
|
76
|
+
此外,Intlayer 还能被用作功能开关 (Feature Flag) 或 A/B 测试工具,使您能够动态测试不同的内容变体, 而这是像 Crowdin 这样的标准 TMS 工具所不具备的原生能力。
|
|
81
77
|
|
|
82
|
-
Crowdin
|
|
78
|
+
Crowdin 支持广泛的文件格式, 包括 `.po`、`.xml` 和 `.yaml` 等传统类型,这对已有成熟工作流或老旧系统的项目很有帮助。相比之下,Intlayer 主要面向现代 Web 格式,如 `.json`、`.js` 和 `.ts`。这意味着 Intlayer 可能无法直接兼容所有传统文件格式,迁移自旧平台的团队需要考虑这一点。
|
|
83
79
|
|
|
84
|
-
最后,对于优先考虑数据主权和控制权的团队,Intlayer
|
|
80
|
+
最后,对于优先考虑数据主权和控制权的团队,Intlayer 是开源的并支持自托管。代码仓库中直接提供了 Docker 文件,使您能够完全掌控本地化基础设施。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-12-18
|
|
3
3
|
updatedAt: 2025-11-06
|
|
4
|
-
title: L10n
|
|
4
|
+
title: L10n 平台替代方案, 适用于 Phrase
|
|
5
5
|
description: 为您的需求找到替代 Phrase 的最佳 L10n 平台
|
|
6
6
|
keywords:
|
|
7
7
|
- L10n
|
|
@@ -23,62 +23,56 @@ history:
|
|
|
23
23
|
|
|
24
24
|
<TOC/>
|
|
25
25
|
|
|
26
|
-
# 翻译管理系统
|
|
26
|
+
# 翻译管理系统 (TMS)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
翻译管理系统 (TMS) 是一种软件平台,旨在自动化并简化翻译与本地化 (L10n) 流程。传统上,TMS 作为一个中心枢纽,用于上传和组织内容,并将其分配给人工译者。它负责管理工作流,存储翻译记忆(以避免重复翻译相同的句子),并处理将翻译后的文件交付回开发人员或内容管理员。
|
|
29
29
|
|
|
30
|
-
本质上,TMS
|
|
30
|
+
本质上,TMS 历来是技术代码(字符串所在处)与理解文化的人工译者之间的桥梁。
|
|
31
31
|
|
|
32
|
-
# Phrase
|
|
32
|
+
# Phrase (前身为 PhraseApp)
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Phrase 是企业本地化领域的佼佼者。其最初名为 PhraseApp,在与 Memsource 合并后规模大幅扩张。它定位为面向软件本地化的综合本地化套件,提供强大的 API 能力和广泛的文件格式支持。
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Phrase(前身为 PhraseApp)
|
|
39
|
-
|
|
40
|
-
Phrase 在企业本地化领域是个重量级选手。最初名为 PhraseApp,尤其在与 Memsource 合并后大幅扩展。它定位为面向软件本地化的综合本地化套件(Localization Suite),提供强大的 API 能力和广泛的格式支持。
|
|
41
|
-
|
|
42
|
-
Phrase 为规模化而建。对于需要跨多个团队管理复杂工作流、庞大翻译记忆库以及严格质量保证流程的大型企业,它是首选。其优势在于能够处理“重型”本地化任务,提供一个将软件字符串和文档翻译纳入一体的生态系统。
|
|
36
|
+
Phrase 专为规模化运作而生。对于需要跨多个团队管理复杂工作流、庞大翻译记忆库以及严格质量保证流程的大型企业而言,它是首选方案。它的核心优势在于能够处理“重写型”本地化任务,提供一个将软件字符串和文档翻译纳入一体的生态系统。
|
|
43
37
|
|
|
44
38
|
# Intlayer
|
|
45
39
|
|
|
46
|
-
Intlayer 主要以 i18n
|
|
40
|
+
Intlayer 主要以 i18n 解决方案闻名,但它也集成了一个无头 CMS。与作为庞大外部企业套件的 Phrase 不同,Intlayer 作为一个灵活、与代码集成的层运行。它控制整个技术栈, 从打包层到远程内容交付, 从而为现代 Web 应用提供更顺畅、更高效的内容流。
|
|
47
41
|
|
|
48
|
-
##
|
|
42
|
+
## 为什么 AI 的出现改变了范式?
|
|
49
43
|
|
|
50
|
-
Phrase
|
|
44
|
+
Phrase 的构建初衷是为了解决过去十年的核心问题:管理大规模的人工译者团队,以及在分散的企业部门间标准化工作流程。它在工作流治理方面表现极其出色。
|
|
51
45
|
|
|
52
|
-
|
|
46
|
+
然而,大型语言模型 (LLM) 的到来已经从根本上改变了本地化的范式。现在的挑战不再是“我们如何管理 50 名翻译”,而是“我们如何高效地验证 AI 生成的内容”。
|
|
53
47
|
|
|
54
|
-
尽管 Phrase 已经集成了 AI
|
|
48
|
+
尽管 Phrase 已经集成了 AI 功能,但这些功能通常是叠加在为以人为中心的工作流和按席位授权设计的传统架构之上的。在现代,手动“推送到 TMS”和“从 TMS 拉取”的摩擦正变得过时。开发者期望内容能像代码一样流畅流动。
|
|
55
49
|
|
|
56
|
-
|
|
50
|
+
如今,最有效的工作流程是首先利用 AI 对页面进行全球化翻译和定位。随后在第二阶段,当产品已经开始产生收益时,再由人工文案人员对特定的高流量内容进行优化,以提升转化率。
|
|
57
51
|
|
|
58
|
-
## 为什么 Intlayer 是 Phrase
|
|
52
|
+
## 为什么 Intlayer 是 Phrase 的理想替代方案?
|
|
59
53
|
|
|
60
|
-
Intlayer
|
|
54
|
+
Intlayer 是诞生于 AI 时代的解决方案,专为现代 JavaScript/TypeScript 生态系统量身定制。它凭借敏捷性和透明度,向 Phrase 那种沉重的企业化模型发起挑战。
|
|
61
55
|
|
|
62
|
-
1.
|
|
63
|
-
2.
|
|
64
|
-
3.
|
|
56
|
+
1. **定价透明化:** Phrase 以企业级定价著称,这种定价对成长中的公司来说往往不透明且昂贵。Intlayer 允许您自带 API 密钥(OpenAI、Anthropic 等),确保您只需为智能服务支付市场价格,而无需支付额外的平台订阅溢价。
|
|
57
|
+
2. **开发者体验 (DX):** Phrase 高度依赖 CLI 工具和 API 调用来同步文件。而 Intlayer 直接集成到打包器和运行时中。这意味着您的定义是严格类型化的 (TypeScript),缺失的翻译键会在编译时被捕获,而不是在生产环境中暴露。
|
|
58
|
+
3. **市场响应速度:** Intlayer 移除了 TMS 的“黑盒”环节。您无需将文件发出去并等待返回。您可以在 CI 流水线或本地环境中通过 AI 即时生成翻译,使开发循环保持高效紧凑。
|
|
65
59
|
|
|
66
|
-
#
|
|
60
|
+
# 并排比较
|
|
67
61
|
|
|
68
|
-
| 功能
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
62
|
+
| 功能 | Phrase(企业级 TMS) | Intlayer(AI 原生) |
|
|
63
|
+
| :----------- | :---------------------------- | :-------------------------------------- |
|
|
64
|
+
| **核心理念** | 企业治理与工作流。 | 管理内容逻辑与 AI 生成。 |
|
|
65
|
+
| **定价模式** | 定制企业 / 按席位计费(高)。 | 自行承担推理费用(自带密钥,BYO Key)。 |
|
|
66
|
+
| **集成方式** | 大量使用 API / CLI。 | 深度代码集成(声明式)。 |
|
|
67
|
+
| **更新** | 需要同步 / 依赖流水线。 | 与代码库或实时应用即时同步。 |
|
|
68
|
+
| **文件格式** | 极其广泛(传统格式与文档)。 | 现代 Web(JSON, JS, TS)。 |
|
|
69
|
+
| **测试** | QA 检查 / LQA 步骤。 | CI / CLI / A/B 测试。 |
|
|
70
|
+
| **托管** | SaaS(严格面向企业)。 | 开源且支持自托管(Docker)。 |
|
|
77
71
|
|
|
78
|
-
Intlayer
|
|
72
|
+
Intlayer 提供了一套完整的一体化 i18n 解决方案,支持对内容的深度集成。您的远程内容可以直接与代码库或在线应用同步。相比之下,Phrase 是一个功能强大但极其复杂的外部依赖,通常需要专职的本地化负责人来管理才能有效运行。
|
|
79
73
|
|
|
80
|
-
此外,Intlayer
|
|
74
|
+
此外,Intlayer 还能用作功能开关 (Feature Flag) 或 A/B 测试工具,使您能够动态测试不同的内容变体。Phrase 的设计侧重于语言一致性,而 Intlayer 则通过动态数据帮助您优化转化率和用户体验。
|
|
81
75
|
|
|
82
|
-
虽然 Phrase
|
|
76
|
+
虽然 Phrase 在处理复杂的多格式企业需求(如同时翻译 PDF、字幕和软件)方面具有无可比拟的优势,但对于追求完整所有权、类型安全且希望在无企业级负担的情况下采用现代 AI 驱动工作流的 Web 应用团队而言,Intlayer 是更好的选择。
|
|
83
77
|
|
|
84
|
-
最后,对于优先考虑数据主权和控制的团队,Intlayer
|
|
78
|
+
最后,对于优先考虑数据主权和控制的团队,Intlayer 是开源的且支持自托管。代码仓库中直接提供了 Docker 文件,让您能完全掌控本地化基础设施, 这在 Phrase 的封闭 SaaS 生态中是无法实现的。
|
|
@@ -8,7 +8,7 @@ keywords:
|
|
|
8
8
|
- i18n
|
|
9
9
|
- 多语言
|
|
10
10
|
- SEO
|
|
11
|
-
-
|
|
11
|
+
- 国际化
|
|
12
12
|
- 博客
|
|
13
13
|
- JavaScript
|
|
14
14
|
slugs:
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# 探索 i18n 解决方案以翻译您的 Angular 网站
|
|
22
22
|
|
|
23
|
-
在当今互联的世界中,提供多种语言的网站可以显著扩大您的覆盖面并改善用户体验。对于使用 Angular 的开发人员来说,实现国际化 (i18n) 对于有效管理翻译,同时保持应用程序结构、SEO 和性能至关重要。在本文中,我们将探讨各种 i18n 方法,
|
|
23
|
+
在当今互联的世界中,提供多种语言的网站可以显著扩大您的覆盖面并改善用户体验。对于使用 Angular 的开发人员来说,实现国际化 (i18n) 对于有效管理翻译,同时保持应用程序结构、SEO 和性能至关重要。在本文中,我们将探讨各种 i18n 方法, 从 Angular 的内置解决方案到流行的第三方库, 帮助您确定最适合您项目的方案。
|
|
24
24
|
|
|
25
25
|

|
|
26
26
|
|
|
@@ -48,7 +48,29 @@ slugs:
|
|
|
48
48
|
|
|
49
49
|
Angular 提供了一个内置的 i18n 框架,并且还有几个第三方库旨在简化您的多语言设置。以下是一些最流行的解决方案。
|
|
50
50
|
|
|
51
|
-
### 1.
|
|
51
|
+
### 1. Intlayer
|
|
52
|
+
|
|
53
|
+
网站: [https://intlayer.org/](https://intlayer.org/)
|
|
54
|
+
|
|
55
|
+
**概述**
|
|
56
|
+
**Intlayer** 是一个创新的开源国际化 (i18n) 库,旨在简化现代 Angular(及其他)Web 应用程序的多语言支持。它采用声明式方法,允许您直接在组件内定义翻译字典。
|
|
57
|
+
|
|
58
|
+
**主要特点**
|
|
59
|
+
|
|
60
|
+
- **翻译声明**:允许在单个文件中声明所有翻译,并放置在组件级别,使其更易于维护和扩展。
|
|
61
|
+
- **TypeScript 与自动补全**:为翻译键提供自动生成的类型定义,提供强大的自动补全和检测。
|
|
62
|
+
- **服务器组件与 SSR**:在设计时充分考虑了服务器端渲染 (SSR) 和 Angular Universal,确保本地化内容在客户端和服务器端都能高效渲染。
|
|
63
|
+
- **用于 SEO 的本地化元数据和 URL**:轻松处理基于区域设置的动态路由、站点地图和 robots.txt 条目,以提高可发现性和 SEO。
|
|
64
|
+
- **无缝集成**:与 Angular CLI 和 Angular Universal 兼容,使设置变得简单直接。
|
|
65
|
+
- **异步加载**:动态加载翻译字典,减小初始包大小并提高性能。
|
|
66
|
+
|
|
67
|
+
**注意事项**
|
|
68
|
+
|
|
69
|
+
- **社区与生态系统**:虽然正在成长,但生态系统相对较新,因此与更成熟的解决方案相比,社区驱动的插件和工具可能有限。
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 2. Angular 的内置 i18n
|
|
52
74
|
|
|
53
75
|
**概述**
|
|
54
76
|
Angular 配备了一个 **内置的 i18n** 系统,包括提取翻译字符串、处理复数和插值的工具,并在编译时集成翻译。这个官方解决方案对于小型项目或可以紧密对齐 Angular 推荐结构的项目非常强大。
|
|
@@ -68,7 +90,7 @@ Angular 配备了一个 **内置的 i18n** 系统,包括提取翻译字符串
|
|
|
68
90
|
|
|
69
91
|
---
|
|
70
92
|
|
|
71
|
-
###
|
|
93
|
+
### 3. ngx-translate
|
|
72
94
|
|
|
73
95
|
网站:[https://github.com/ngx-translate/core](https://github.com/ngx-translate/core)
|
|
74
96
|
|
|
@@ -90,7 +112,7 @@ Angular 配备了一个 **内置的 i18n** 系统,包括提取翻译字符串
|
|
|
90
112
|
|
|
91
113
|
---
|
|
92
114
|
|
|
93
|
-
###
|
|
115
|
+
### 4. Transloco
|
|
94
116
|
|
|
95
117
|
网站:[https://ngneat.github.io/transloco/](https://ngneat.github.io/transloco/)
|
|
96
118
|
|
|
@@ -120,4 +142,4 @@ Angular 配备了一个 **内置的 i18n** 系统,包括提取翻译字符串
|
|
|
120
142
|
- **可维护性与扩展性**:对于大型应用,确保您的库支持良好的文件结构、类型化键(如果需要)和简单的更新过程。
|
|
121
143
|
- **开发者体验**:TypeScript 自动完成功能、插件生态系统和 CLI 工具可以大大减少更新或添加新翻译时的摩擦。
|
|
122
144
|
|
|
123
|
-
讨论的所有库都可以为强大的多语言 Angular 应用程序提供动力,
|
|
145
|
+
讨论的所有库都可以为强大的多语言 Angular 应用程序提供动力, 每个库都有其自身的优势。最佳选择归结于您对 **性能**、**工作流**、**开发者体验** 和 **商业目标** 的独特需求。
|
|
@@ -8,7 +8,7 @@ keywords:
|
|
|
8
8
|
- i18n
|
|
9
9
|
- 多语言
|
|
10
10
|
- SEO
|
|
11
|
-
-
|
|
11
|
+
- 国际化
|
|
12
12
|
- 博客
|
|
13
13
|
- JavaScript
|
|
14
14
|
slugs:
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# 探索 i18n 解决方案以翻译您的 React Native 应用
|
|
22
22
|
|
|
23
|
-
在日益全球化的市场中,以多种语言提供您的 React Native 应用可以大大提高可访问性和用户满意度。国际化(i18n
|
|
23
|
+
在日益全球化的市场中,以多种语言提供您的 React Native 应用可以大大提高可访问性和用户满意度。国际化(i18n)对于有效管理翻译至关重要,它允许您显示特定于语言的文本、日期和时间格式、货币等,而不会使您的代码库变得复杂。在本文中,我们将深入探讨各种 i18n 方法,从专用库到更通用的解决方案,帮助您找到最适合您的 React Native 项目的方案。
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -51,7 +51,7 @@ slugs:
|
|
|
51
51
|
- **状态与导航管理**
|
|
52
52
|
在屏幕、深链接或基于标签的导航之间维护用户选择的语言意味着将 i18n 结合到您的 Redux、Context API 或其他状态管理解决方案中。
|
|
53
53
|
|
|
54
|
-
-
|
|
54
|
+
- **应用更新和越行更新(OTA)**
|
|
55
55
|
如果您使用 CodePush 或其他 OTA 更新机制,则需要计划如何在不需要完全应用商店发布的情况下交付翻译更新或新语言。
|
|
56
56
|
|
|
57
57
|
---
|
|
@@ -104,7 +104,7 @@ slugs:
|
|
|
104
104
|
提供钩子(`useTranslation`)、高阶组件(HOCs)等,将 i18n 无缝集成到您的组件中。
|
|
105
105
|
|
|
106
106
|
- **异步加载**
|
|
107
|
-
|
|
107
|
+
按需加载翻译,对大型应用或随着时间推移添加新语言包非常有利。
|
|
108
108
|
|
|
109
109
|
- **丰富的翻译能力**
|
|
110
110
|
处理嵌套翻译、插值、复数形式和变量替换,开箱即用。
|
|
@@ -138,9 +138,9 @@ slugs:
|
|
|
138
138
|
`<FormattedMessage>`、`<FormattedDate>`、`<FormattedTime>` 等组件简化了在 iOS 和 Android 之间的格式化任务。
|
|
139
139
|
|
|
140
140
|
- **轻量且可扩展**
|
|
141
|
-
您可以仅导入您所需的 FormatJS
|
|
141
|
+
您可以仅导入您所需的 FormatJS 部分,使您的整体包保持精简,这对于移动设备至关重要。
|
|
142
142
|
|
|
143
|
-
-
|
|
143
|
+
- **针对不支持区域的 Polyfill**
|
|
144
144
|
确保在较旧的 Android 或 iOS 版本上的日期/数字格式一致。
|
|
145
145
|
|
|
146
146
|
- **TypeScript 兼容性**
|
|
@@ -152,7 +152,7 @@ slugs:
|
|
|
152
152
|
需要提取工作流,这可能会为您的构建过程增加复杂性。然而,对于管理许多翻译的大团队来说,这是很有价值的。
|
|
153
153
|
|
|
154
154
|
- **应用大小与部署**
|
|
155
|
-
|
|
155
|
+
如果您依赖多个 Polyfill 或大型翻译文件,请关注您应用的整体大小,在移动环境中特别重要。
|
|
156
156
|
|
|
157
157
|
- **社区示例**
|
|
158
158
|
虽然广泛使用,但 React Native 特定的使用示例可能少于 React 网页。您可能需要将现有文档和模式调整为原生环境。
|
|
@@ -198,24 +198,20 @@ slugs:
|
|
|
198
198
|
在为您的 React Native 应用程序选择 i18n 解决方案时:
|
|
199
199
|
|
|
200
200
|
1. **评估您的需求**
|
|
201
|
-
|
|
202
201
|
- 现在及未来需要多少种语言?
|
|
203
202
|
- 您是否需要大型应用按需加载?
|
|
204
203
|
|
|
205
204
|
2. **考虑平台差异**
|
|
206
|
-
|
|
207
205
|
- 确保任何库支持 iOS 和 Android 区域变化,特别是日期/数字/货币的差异。
|
|
208
|
-
-
|
|
206
|
+
- 考虑离线使用,一些翻译可能需要与应用捆绑,而另一些则可以远程获取。
|
|
209
207
|
|
|
210
208
|
3. **选择可扩展的结构**
|
|
211
|
-
|
|
212
209
|
- 如果您计划开发大型或长期存在的应用,强大的提取工作流或类型化的键可以帮助保持翻译的良好组织。
|
|
213
210
|
|
|
214
211
|
4. **性能与包大小**
|
|
215
|
-
|
|
216
212
|
- 移动数据的限制意味着您应该密切关注翻译文件的大小和任何填充物。
|
|
217
213
|
|
|
218
214
|
5. **开发者体验(DX)**
|
|
219
|
-
- 寻找与您团队的技能集相符的库,
|
|
215
|
+
- 寻找与您团队的技能集相符的库, 某些解决方案可能更冗长但直接,而另一些则提供更多的自动化,但代价是设置的复杂性。
|
|
220
216
|
|
|
221
|
-
|
|
217
|
+
每种解决方案,Intlayer、React-i18next、React Intl 和 LinguiJS,在 React Native 环境中都被证明是有效的,但侧重点略有不同。评估您项目的路线图、开发者偏好和本地化需求将引导您找到理想的解决方案,以提供一个真正全球化的 React Native 应用。
|
|
@@ -8,7 +8,7 @@ keywords:
|
|
|
8
8
|
- i18n
|
|
9
9
|
- 多语言
|
|
10
10
|
- SEO
|
|
11
|
-
-
|
|
11
|
+
- 国际化
|
|
12
12
|
- 博客
|
|
13
13
|
- JavaScript
|
|
14
14
|
slugs:
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# 探索翻译您的 React 网站的 i18n 解决方案
|
|
22
22
|
|
|
23
|
-
在当今的数字环境中,扩展您网站的覆盖面以满足全球受众的需求是至关重要的。对于使用 React 构建的开发者来说,实施国际化(i18n)是高效管理翻译的关键,同时保持应用程序结构、SEO 价值和用户体验。在本文中,我们将探讨各种 i18n
|
|
23
|
+
在当今的数字环境中,扩展您网站的覆盖面以满足全球受众的需求是至关重要的。对于使用 React 构建的开发者来说,实施国际化(i18n)是高效管理翻译的关键,同时保持应用程序结构、SEO 价值和用户体验。在本文中,我们将探讨各种 i18n 方法,从专用库到自定义编码解决方案,帮助您决定哪种方法最适合您的项目需求。
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -109,12 +109,12 @@ slugs:
|
|
|
109
109
|
- **服务器组件和 SSR**:支持 SSR 设置,以便提供本地化内容,从而提高性能和 SEO。
|
|
110
110
|
- **本地化元数据和 URL**:可以与 Next.js 等框架集成,以生成本地化站点地图、处理动态路由和定制 robots.txt。
|
|
111
111
|
- **TypeScript 和自动补全**:可以与 TypeScript 结合使用,但可能需要额外的工具进行消息 ID 的自动补全。
|
|
112
|
-
-
|
|
112
|
+
- **针对不支持浏览器的 Polyfill**:确保在旧环境中具有一致的行为。
|
|
113
113
|
|
|
114
114
|
**考虑事项**
|
|
115
115
|
|
|
116
116
|
- **冗长与模板代码**:对专用组件的依赖可能导致更冗长的代码,尤其是在大型应用中。
|
|
117
|
-
-
|
|
117
|
+
- **翻译分离**:核心库不提供内置支持将翻译拆分为多个文件,需要额外设置或插件。
|
|
118
118
|
- **可维护性**:格式化的直接方法可能是有益的,但消息提取和组织开销可能迅速增长。
|
|
119
119
|
|
|
120
120
|
### 4. LinguiJS
|
|
@@ -150,4 +150,4 @@ slugs:
|
|
|
150
150
|
- **可维护性和可扩展性**:较大的项目通常需要清晰、可维护的翻译结构,因此要考虑您的长期路线图。
|
|
151
151
|
- **SEO 和元数据**:如果 SEO 至关重要,请确认您选择的解决方案支持每种语言的本地化元数据、路由和站点地图/robots。
|
|
152
152
|
|
|
153
|
-
所有这些库都可以为多语言 React
|
|
153
|
+
所有这些库都可以为多语言 React 应用提供动力,每个库都有略微不同的优先事项和优势。选择最符合您项目的 **性能**、**开发者体验** 和 **商业目标** 的库。
|
|
@@ -8,7 +8,7 @@ keywords:
|
|
|
8
8
|
- i18n
|
|
9
9
|
- 多语言
|
|
10
10
|
- SEO
|
|
11
|
-
-
|
|
11
|
+
- 国际化
|
|
12
12
|
- 博客
|
|
13
13
|
- JavaScript
|
|
14
14
|
slugs:
|
|
@@ -50,7 +50,23 @@ slugs:
|
|
|
50
50
|
|
|
51
51
|
Svelte 并没有提供原生的内置 i18n 解决方案(如 Angular),但社区创造了多种强大的库和模式。以下是几种流行的方法。
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> 网站: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**概述**
|
|
58
|
+
**Intlayer** 是一个开源的 i18n 解决方案,旨在简化包括 **Svelte** 在内的多个框架的多语言支持。它强调声明式方法、强类型以及在其他生态系统中的 SSR 支持,尽管在标准 Svelte 中 SSR 并不常见。
|
|
59
|
+
|
|
60
|
+
**主要特点**
|
|
61
|
+
|
|
62
|
+
- **声明式翻译**:在组件级别或集中式文件中定义翻译字典,以实现更清晰的架构。
|
|
63
|
+
- **TypeScript 与自动补全(Web)**:虽然此功能主要使 Web 框架受益,但类型化翻译方法仍然可以指导 Svelte 中的结构化代码。
|
|
64
|
+
- **异步加载**:动态加载翻译资源,有可能减小多语言应用的初始包大小。
|
|
65
|
+
- **与 Svelte 集成**:可以设置基本集成,以利用 Intlayer 方法进行结构化翻译。
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### 2. svelte-i18n
|
|
54
70
|
|
|
55
71
|
Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
72
|
|
|
@@ -68,11 +84,11 @@ Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaise
|
|
|
68
84
|
|
|
69
85
|
- **项目组织**: 随着项目的增长,您需要从逻辑上构建翻译文件。
|
|
70
86
|
- **SSR 设置**: 配置 SSR 以实现 SEO 可能需要额外的步骤,以确保在服务器端正确检测到语言环境。
|
|
71
|
-
- **性能**:
|
|
87
|
+
- **性能**: 虽然运行时灵活,但一次加载大量翻译会影响初始加载时间,考虑使用惰性加载或缓存策略。
|
|
72
88
|
|
|
73
89
|
---
|
|
74
90
|
|
|
75
|
-
###
|
|
91
|
+
### 3. svelte-intl-precompile
|
|
76
92
|
|
|
77
93
|
Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
94
|
|
|
@@ -94,7 +110,7 @@ Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.
|
|
|
94
110
|
|
|
95
111
|
---
|
|
96
112
|
|
|
97
|
-
###
|
|
113
|
+
### 4. i18next 与 Svelte / SvelteKit
|
|
98
114
|
|
|
99
115
|
Website: [https://www.i18next.com/](https://www.i18next.com/)
|
|
100
116
|
|
|
@@ -121,9 +137,9 @@ Website: [https://www.i18next.com/](https://www.i18next.com/)
|
|
|
121
137
|
在为您的 Svelte 应用程序选择 i18n 策略时:
|
|
122
138
|
|
|
123
139
|
1. **评估项目规模**: 对于较小的项目或快速原型,像 **svelte-i18n** 或简单的 i18n 方法可能就足够了。较大、更复杂的应用程序可能会受益于类型化、预编译或更强大的生态系统解决方案。
|
|
124
|
-
2. **
|
|
140
|
+
2. **SEO 和 SSR 考虑**: 如果 SEO 很关键,或者您需要 SvelteKit 的服务器端渲染,请选择一个有效支持 SSR 的库,并能处理本地化路由、元数据和站点地图。
|
|
125
141
|
3. **运行时与构建时**: 决定您是否需要在运行时动态切换语言,或者更喜欢预编译翻译以获得更好的性能。每种方法都有不同的权衡。
|
|
126
142
|
4. **TypeScript 集成**: 如果您在很大程度上依赖 TypeScript,像 **Intlayer** 或具有类型化键的库可以显著减少运行时错误,并改善开发者体验。
|
|
127
143
|
5. **可维护性与可扩展性**: 计划如何组织、更新和版本控制您的翻译文件。自动提取、命名约定和一致的文件夹结构将从长远来看节省时间。
|
|
128
144
|
|
|
129
|
-
最终,每个库都有独特的优势。您的选择取决于 **性能**、**开发者体验**、**SEO 需求** 和 **长期可维护性**。通过选择与您项目目标一致的解决方案,您可以在 Svelte
|
|
145
|
+
最终,每个库都有独特的优势。您的选择取决于 **性能**、**开发者体验**、**SEO 需求** 和 **长期可维护性**。通过选择与您项目目标一致的解决方案,您可以在 Svelte 中创建一个真正全球化的应用程序,一个能让世界各地用户愉悦的应用。
|