@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
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-26
|
|
3
|
+
updatedAt: 2026-02-26
|
|
4
|
+
title: "i18n Znaczenie: Co to jest internacjonalizacja i dlaczego jest ważna?"
|
|
5
|
+
description: "Odkryj prawdziwe znaczenie i18n w tworzeniu oprogramowania. Dowiedz się, co to jest internacjonalizacja, dlaczego jest skracana jako i18n i jak wpływa na globalny zasięg."
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n znaczenie
|
|
8
|
+
- co oznacza i18n
|
|
9
|
+
- i18n
|
|
10
|
+
- internacjonalizacja
|
|
11
|
+
- lokalizacja
|
|
12
|
+
- blog
|
|
13
|
+
- tworzenie stron internetowych
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-meaning
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# i18n Znaczenie: Co to jest internacjonalizacja i dlaczego jest ważna?
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
## Zrozumienie "Znaczenia i18n"
|
|
24
|
+
|
|
25
|
+
Jeśli zajmujesz się tworzeniem oprogramowania, projektowaniem stron internetowych lub marketingiem cyfrowym, prawdopodobnie spotkałeś się z terminem **i18n**. Prawdziwe **znaczenie i18n** to po prostu numeronim słowa **internationalization** (internacjonalizacja).
|
|
26
|
+
|
|
27
|
+
Ale dlaczego "i18n"? Skrót powstaje poprzez wzięcie pierwszej litery słowa "internationalization" (**i**), ostatniej litery (**n**) i policzenie liczby liter pomiędzy nimi (**18**). Konwencja ta jest często stosowana w branży technologicznej do skracania długich, uciążliwych terminów (innym powszechnym przykładem jest **l10n** dla lokalizacji - localization).
|
|
28
|
+
|
|
29
|
+
Z technicznego punktu widzenia **znaczenie i18n** odnosi się do procesu projektowania i przygotowania aplikacji oprogramowania, strony internetowej lub produktu w taki sposób, aby mógł on łatwo obsługiwać wiele języków, norm regionalnych i konwencji kulturowych – a wszystko to bez konieczności wprowadzania istotnych zmian inżynieryjnych w podstawowym kodzie źródłowym.
|
|
30
|
+
|
|
31
|
+
## Kluczowe znaczenie i18n w praktyce
|
|
32
|
+
|
|
33
|
+
Zrozumienie znaczenia i18n wykracza poza samą wiedzę o tym, co oznacza ten akronim. Chodzi o rozpoznanie zasad architektonicznych, które za nim stoją. Gdy projekt jest odpowiednio „zinternacjonalizowany”, oznacza to, że programiści oddzielili treść od kodu.
|
|
34
|
+
|
|
35
|
+
Zamiast wpisywać tekst bezpośrednio w aplikacji w ten sposób:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<button>Wyślij</button>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Aplikacja gotowa na i18n używa kluczy tłumaczeniowych lub zmiennych:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
<button>{t("submit_button")}</button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Zapewnia to, że aplikacja może dynamicznie ładować odpowiedni słownik językowy (np. angielski, hiszpański, japoński) w oparciu o preferencje użytkownika, bez konieczności ponownego pisania komponentu.
|
|
48
|
+
|
|
49
|
+
## Dlaczego znaczenie i18n jest kluczowe dla Twojej firmy
|
|
50
|
+
|
|
51
|
+
Zrozumienie **znaczenia i18n** to dopiero pierwszy krok. Zrozumienie, _dlaczego_ jest ono tak krytyczne dla nowoczesnych produktów cyfrowych, odróżnia udane aplikacje globalne od lokalnych.
|
|
52
|
+
|
|
53
|
+
### Przełamywanie barier językowych
|
|
54
|
+
|
|
55
|
+
Najbardziej oczywistym zastosowaniem znaczenia i18n jest tłumaczenie. Internacjonalizując swoją aplikację od pierwszego dnia, budujesz fundament, który pozwala na płynne tłumaczenie interfejsu na dziesiątki języków. Jest to niezbędne do otwarcia się na nowe rynki globalne.
|
|
56
|
+
|
|
57
|
+
### Adaptacja kulturowa i regionalna
|
|
58
|
+
|
|
59
|
+
Znaczenie i18n wykracza poza język. Prawdziwa internacjonalizacja obsługuje:
|
|
60
|
+
|
|
61
|
+
- **Formaty daty i godziny:** Wyświetlanie `MM/DD/RRRR` dla użytkowników z USA w porównaniu do `DD.MM.RRRR` dla użytkowników z Europy.
|
|
62
|
+
- **Formatowanie liczb:** Rozpoznawanie, że `1,000.50` w USA jest często zapisywane jako `1 000,50` w częściach Europy.
|
|
63
|
+
- **Waluty:** Adaptacja `$99.00` w porównaniu do `99,00 €`.
|
|
64
|
+
- **Kierunek tekstu:** Obsługa języków zapisywanych od prawej do lewej (RTL), takich jak arabski i hebrajski.
|
|
65
|
+
|
|
66
|
+
### Poprawa wydajności SEO
|
|
67
|
+
|
|
68
|
+
Wyszukiwarki priorytetowo traktują treści, które są istotne dla języka i regionu użytkownika. Zastosowanie zasad leżących u podstaw znaczenia i18n pozwala na ustrukturyzowanie witryny (np. za pomocą tagów `hreflang`, zlokalizowanych adresów URL) w celu uzyskania wyższej pozycji w rankingu w wielu krajach, co generuje organiczny ruch globalny.
|
|
69
|
+
|
|
70
|
+
## Internacjonalizacja (i18n) a lokalizacja (l10n)
|
|
71
|
+
|
|
72
|
+
Aby w pełni zrozumieć **znaczenie i18n**, należy odróżnić je od **l10n** (lokalizacji).
|
|
73
|
+
|
|
74
|
+
- **i18n (Internacjonalizacja):** To _przygotowanie techniczne_ i strukturalne ramy projektowe, które umożliwiają adaptację. Przykłady: obsługa kodowania UTF-8, abstrakcja ciągów tekstowych i uelastycznienie układów interfejsu użytkownika dla dłuższych słów.
|
|
75
|
+
- **l10n (Lokalizacja):** To _rzeczywista adaptacja_ produktu dla konkretnego regionu (locale). Przykłady: tłumaczenie tekstu z angielskiego na polski, dostosowanie obrazów do norm kulturowych i ustawienie lokalnej waluty.
|
|
76
|
+
|
|
77
|
+
Pomyśl o **i18n** jak o budowie samochodu, w którym kierownicę można przenieść na lewą lub prawą stronę. **l10n** to sama czynność przeniesienia kierownicy na prawą stronę w celu sprzedaży samochodu w Wielkiej Brytanii.
|
|
78
|
+
|
|
79
|
+
## Typowe błędne przekonania na temat znaczenia i18n
|
|
80
|
+
|
|
81
|
+
1. **"i18n oznacza tylko tłumaczenie."**
|
|
82
|
+
Chociaż tłumaczenie jest dużą częścią końcowego rezultatu, prawdziwe znaczenie i18n obejmuje formatowanie, reguły liczby mnogiej, kierunek tekstu i gotowość architektoniczną.
|
|
83
|
+
2. **"Możemy dodać i18n później."**
|
|
84
|
+
Dostosowanie aplikacji do internacjonalizacji po fakcie jest niezwykle trudne. Zakodowane na sztywno ciągi znaków, sztywne komponenty interfejsu użytkownika i niekompatybilne formaty dat mogą prowadzić do ogromnego długu technicznego. Planowanie i18n od samego początku jest fundamentalną najlepszą praktyką.
|
|
85
|
+
|
|
86
|
+
## Jak skutecznie wdrożyć i18n
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
Skoro ustaliliśmy już prawdziwe **znaczenie i18n**, jak je zastosować?
|
|
91
|
+
|
|
92
|
+
- **Skorzystaj z uznanego frameworka i18n:** Nie wymyślaj koła na nowo. Niezależnie od tego, czy używasz React, Vue, Next.js czy czystego JavaScriptu, istnieją specjalne biblioteki i18n zaprojektowane do obsługi ciężkich zadań (takich jak liczba mnoga i interpolacja).
|
|
93
|
+
- **Wyodrębnij cały tekst skierowany do użytkownika:** Upewnij się, że w komponentach interfejsu użytkownika nie ma zakodowanego na sztywno tekstu.
|
|
94
|
+
- **Zastosuj solidny system zarządzania tłumaczeniami:** Narzędzia takie jak **Intlayer** wypełniają lukę między programistami a tłumaczami. Intlayer działa jako headless CMS, który jest ściśle zintegrowany z bazą kodu, umożliwiając menedżerom treści wizualną aktualizację tłumaczeń bez konieczności uruchamiania nowej kompilacji przez programistę.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Zobacz listę bibliotek i narzędzi i18n według technologii
|
|
99
|
+
|
|
100
|
+
Jeśli szukasz listy bibliotek i narzędzi i18n według technologii, zapoznaj się z poniższymi zasobami:
|
|
101
|
+
|
|
102
|
+
### Dla systemów zarządzania treścią (CMS)
|
|
103
|
+
|
|
104
|
+
- WordPress: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/CMS/wordpress.md)
|
|
105
|
+
- Wix: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/CMS/wix.md)
|
|
106
|
+
- Drupal: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/CMS/drupal.md)
|
|
107
|
+
|
|
108
|
+
### Dla aplikacji JavaScript (Frontend)
|
|
109
|
+
|
|
110
|
+
- React: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/frameworks/react.md)
|
|
111
|
+
- Angular: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/frameworks/angular.md)
|
|
112
|
+
- Vue: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/frameworks/vue.md)
|
|
113
|
+
- Svelte: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/frameworks/svelte.md)
|
|
114
|
+
- React Native: [Zobacz listę bibliotek i narzędzi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/list_i18n_technologies/frameworks/react-native.md)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Podsumowanie
|
|
119
|
+
|
|
120
|
+
**Znaczenie i18n** to fundamentalna koncepcja dla każdego nowoczesnego biznesu cyfrowego dążącego do globalnego wpływu. To coś więcej niż tylko osobliwy skrót techniczny od „internacjonalizacji” – i18n reprezentuje architekturę techniczną wymaganą do płynnego dostosowania oprogramowania do różnych języków, kultur i standardów regionalnych.
|
|
121
|
+
|
|
122
|
+
Rozumiejąc znaczenie i18n i przyjmując jego zasady na wczesnym etapie cyklu rozwoju, oszczędzasz znaczny czas inżynieryjny, zapobiegasz przyszłemu długowi technicznemu i zapewniasz, że Twoja aplikacja zapewnia natywne, przyjazne doświadczenie użytkownikom na całym świecie.
|
|
123
|
+
|
|
124
|
+
Niezależnie od tego, czy budujesz aplikację mobilną, platformę SaaS czy narzędzie korporacyjne, przyjęcie prawdziwego znaczenia i18n gwarantuje, że Twój produkt może się dostosować i przyciągnąć użytkowników z całego świata, bez konieczności ciągłego przepisywania kodu. Wykorzystując najlepsze praktyki, solidne frameworki i lokalizowane deklaracje treści za pomocą platform takich jak Intlayer, zespoły produktowe mogą dostarczać prawdziwie globalne doświadczenia z oprogramowaniem.
|
|
@@ -23,16 +23,6 @@ history:
|
|
|
23
23
|
|
|
24
24
|
<TOC/>
|
|
25
25
|
|
|
26
|
-
# System zarządzania tłumaczeniami
|
|
27
|
-
|
|
28
|
-
System Zarządzania Tłumaczeniami (TMS) to platforma programowa zaprojektowana do automatyzacji i usprawnienia procesu tłumaczeń i lokalizacji (L10n). Tradycyjnie TMS działa jako scentralizowany hub, w którym treści są przesyłane, organizowane i przypisywane do ludzkich tłumaczy. Zarządza przepływami pracy, przechowuje pamięci tłumaczeń (aby uniknąć ponownego tłumaczenia tego samego zdania) oraz obsługuje zwrot przetłumaczonych plików do deweloperów lub menedżerów treści.
|
|
29
|
-
|
|
30
|
-
W istocie, TMS historycznie stanowił pomost między technicznym kodem (gdzie znajdują się stringi) a ludzkimi lingwistami (którzy rozumieją kontekst kulturowy).
|
|
31
|
-
|
|
32
|
-
System zarządzania tłumaczeniami (TMS) to platforma programowa zaprojektowana w celu automatyzacji i usprawnienia procesu tłumaczenia i lokalizacji (L10n). Tradycyjnie TMS pełni rolę scentralizowanego centrum, do którego przesyłane są treści, gdzie są one organizowane i przypisywane tłumaczom. Zarządza workflows, przechowuje translation memories (aby uniknąć ponownego tłumaczenia tych samych zdań) i obsługuje dostarczanie przetłumaczonych plików z powrotem do deweloperów lub menedżerów treści.
|
|
33
|
-
|
|
34
|
-
W istocie TMS historycznie był pomostem między technicznym kodem (gdzie znajdują się strings) a lingwistami (którzy rozumieją kontekst kulturowy).
|
|
35
|
-
|
|
36
26
|
# Lokalise
|
|
37
27
|
|
|
38
28
|
Lokalise jest znaczącym graczem we współczesnym krajobrazie TMS. Założony w 2017 roku, pojawił się, aby zrewolucjonizować rynek, koncentrując się mocno na developer experience (DX) i integracji z designem. W przeciwieństwie do starszych konkurentów, Lokalise priorytetowo traktował elegancki interfejs użytkownika, potężne API oraz integracje z narzędziami takimi jak Figma i GitHub, aby zmniejszyć tarcia związane z przesyłaniem plików tam i z powrotem.
|
|
@@ -41,11 +31,11 @@ Swoje sukcesy zbudował na byciu "developer-friendly" TMS, automatyzując ekstra
|
|
|
41
31
|
|
|
42
32
|
# Intlayer
|
|
43
33
|
|
|
44
|
-
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje także headless CMS. W przeciwieństwie do Lokalise, które działa w dużej mierze jako zewnętrzne narzędzie do synchronizacji Twoich strings, Intlayer funkcjonuje bliżej Twojego kodu. Kontroluje cały stos
|
|
34
|
+
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje także headless CMS. W przeciwieństwie do Lokalise, które działa w dużej mierze jako zewnętrzne narzędzie do synchronizacji Twoich strings, Intlayer funkcjonuje bliżej Twojego kodu. Kontroluje cały stos, od warstwy bundlingu po zdalne dostarczanie treści, co skutkuje płynniejszym i bardziej efektywnym przepływem zawartości.
|
|
45
35
|
|
|
46
36
|
## Dlaczego paradygmaty zmieniły się od pojawienia się AI?
|
|
47
37
|
|
|
48
|
-
Lokalise udoskonaliło stronę „DevOps” lokalizacji
|
|
38
|
+
Lokalise udoskonaliło stronę „DevOps” lokalizacji, automatyczne przenoszenie strings. Jednak pojawienie się Large Language Models (LLMs) zasadniczo przesunęło paradygmaty lokalizacji. Wąskim gardłem nie jest już _przenoszenie_ strings; jest nim _generowanie_ ich.
|
|
49
39
|
|
|
50
40
|
Dzięki LLMs koszt tłumaczeń drastycznie spadł, a szybkość wzrosła wykładniczo. Rola zespołu lokalizacyjnego przesuwa się z "zarządzania tłumaczami" na "zarządzanie kontekstem i przeglądem".
|
|
51
41
|
|
|
@@ -61,14 +51,14 @@ Lokalise bywa często krytykowane za strome progi cenowe, które mogą stać si
|
|
|
61
51
|
|
|
62
52
|
1. **Efektywność kosztowa:** Nie jesteś związany modelem cenowym "per key" lub "per seat", który penalizuje wzrost. W Intlayer płacisz za własne inferencje (BYO Key), co oznacza, że twoje koszty skalują się bezpośrednio z rzeczywistym użyciem, a nie z marżami platformy.
|
|
63
53
|
2. **Integracja workflow:** Podczas gdy Lokalise wymaga synchronizacji plików (nawet jeśli zautomatyzowanej), Intlayer pozwala na definiowanie Declarative Content bezpośrednio w plikach komponentów (React, Next.js, itd.). Dzięki temu kontekst znajduje się tuż obok UI, co zmniejsza liczbę błędów.
|
|
64
|
-
3. **Zarządzanie wizualne:** Intlayer udostępnia edytor wizualny, który wchodzi w bezpośrednią interakcję z uruchomioną aplikacją, zapewniając, że zmiany są dokonywane w pełnym kontekście wizualnym
|
|
54
|
+
3. **Zarządzanie wizualne:** Intlayer udostępnia edytor wizualny, który wchodzi w bezpośrednią interakcję z uruchomioną aplikacją, zapewniając, że zmiany są dokonywane w pełnym kontekście wizualnym, coś, co w tradycyjnych listach plików TMS jest często rozłączone.
|
|
65
55
|
|
|
66
56
|
# Porównanie obok siebie
|
|
67
57
|
|
|
68
58
|
| Funkcja | Lokalise (Nowoczesny TMS) | Intlayer (AI-Native) |
|
|
69
59
|
| :------------------- | :------------------------------------------------- | :------------------------------------------------------------------------ |
|
|
70
60
|
| **Główna filozofia** | Automatyzacja i L10n na etapie projektowania. | Zarządza logiką treści i generowaniem przez AI. |
|
|
71
|
-
| **Model cenowy** | Per seat / MAU / liczba kluczy (wysoki koszt). | Płacisz za własne inferencje (BYO Key
|
|
61
|
+
| **Model cenowy** | Per seat / MAU / liczba kluczy (wysoki koszt). | Płacisz za własne inferencje (BYO Key, użyj własnego klucza). |
|
|
72
62
|
| **Integracja** | Synchronizacja przez API / wtyczki do Figma. | Głęboka integracja z kodem (deklaratywna). |
|
|
73
63
|
| **Aktualizacje** | Opóźnienia synchronizacji / wymóg tworzenia PR-ów. | Błyskawiczna synchronizacja z repozytorium kodu lub działającą aplikacją. |
|
|
74
64
|
| **Formaty plików** | Agnostyczne (Mobile, Web, Documents). | Nowoczesne webowe (JSON, JS, TS). |
|
|
@@ -79,6 +69,6 @@ Intlayer oferuje kompletne, all-in-one rozwiązanie i18n, które umożliwia gł
|
|
|
79
69
|
|
|
80
70
|
Ponadto Intlayer może być wykorzystywany jako narzędzie Feature Flag lub A/B testing, umożliwiając dynamiczne testowanie różnych wariantów treści. Podczas gdy Lokalise skupia się na poprawności słów, Intlayer skupia się na zapewnieniu właściwego _doświadczenia użytkownika_ poprzez dynamiczne serwowanie danych.
|
|
81
71
|
|
|
82
|
-
Lokalise sprawdza się świetnie w aplikacjach mobilnych (iOS/Android) oraz w workflowach zorientowanych na design. Jednak dla nowoczesnych aplikacji webowych korzystających z frameworków takich jak Next.js czy React, natywne obsługiwanie przez Intlayer plików `.js`, `.ts` oraz słowników JSON oferuje lepsze doświadczenie deweloperskie (DX) z pełnym wsparciem TypeScript dla treści
|
|
72
|
+
Lokalise sprawdza się świetnie w aplikacjach mobilnych (iOS/Android) oraz w workflowach zorientowanych na design. Jednak dla nowoczesnych aplikacji webowych korzystających z frameworków takich jak Next.js czy React, natywne obsługiwanie przez Intlayer plików `.js`, `.ts` oraz słowników JSON oferuje lepsze doświadczenie deweloperskie (DX) z pełnym wsparciem TypeScript dla treści, dzięki czemu nigdy więcej nie wypuścisz aplikacji z brakującym kluczem tłumaczenia.
|
|
83
73
|
|
|
84
|
-
Na koniec, dla tych, którzy priorytetowo traktują suwerenność danych i kontrolę, Intlayer jest open-source i może być hostowany lokalnie. Pliki Docker są dostępne bezpośrednio w repozytorium, dając Ci pełną kontrolę nad infrastrukturą
|
|
74
|
+
Na koniec, dla tych, którzy priorytetowo traktują suwerenność danych i kontrolę, Intlayer jest open-source i może być hostowany lokalnie. Pliki Docker są dostępne bezpośrednio w repozytorium, dając Ci pełną kontrolę nad infrastrukturą lokalizacyjną, co stanowi wyraźny kontrast w stosunku do zamkniętego modelu SaaS Lokalise.
|
|
@@ -25,7 +25,7 @@ history:
|
|
|
25
25
|
|
|
26
26
|
# System zarządzania tłumaczeniami
|
|
27
27
|
|
|
28
|
-
System zarządzania tłumaczeniami (Translation Management System, TMS) to platforma programowa zaprojektowana w celu automatyzacji i usprawnienia procesu tłumaczenia i lokalizacji (L10n). Tradycyjnie TMS pełni rolę scentralizowanego centrum, do którego przesyła się treści, które są organizowane i przydzielane tłumaczom. Zarządza workflows, przechowuje pamięci tłumaczeń (translation memories
|
|
28
|
+
System zarządzania tłumaczeniami (Translation Management System, TMS) to platforma programowa zaprojektowana w celu automatyzacji i usprawnienia procesu tłumaczenia i lokalizacji (L10n). Tradycyjnie TMS pełni rolę scentralizowanego centrum, do którego przesyła się treści, które są organizowane i przydzielane tłumaczom. Zarządza workflows, przechowuje pamięci tłumaczeń (translation memories, aby uniknąć ponownego tłumaczenia tych samych zdań) i obsługuje dostarczanie przetłumaczonych plików z powrotem do deweloperów lub menedżerów treści.
|
|
29
29
|
|
|
30
30
|
W istocie TMS historycznie pełnił funkcję mostu między technicznym kodem (gdzie znajdują się strings) a ludzkimi lingwistami (którzy rozumieją kontekst kulturowy).
|
|
31
31
|
|
|
@@ -37,7 +37,7 @@ Przez ponad dekadę Crowdin był branżowym standardem w zarządzaniu lokalizacj
|
|
|
37
37
|
|
|
38
38
|
# Intlayer
|
|
39
39
|
|
|
40
|
-
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje też CMS. W przeciwieństwie do Crowdin, które ogranicza się do bycia nakładką na istniejącą konfigurację i18n, Intlayer kontroluje cały stos
|
|
40
|
+
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje też CMS. W przeciwieństwie do Crowdin, które ogranicza się do bycia nakładką na istniejącą konfigurację i18n, Intlayer kontroluje cały stos, od warstwy bundlingu po zdalne dostarczanie treści, co skutkuje płynniejszym i bardziej efektywnym przepływem treści.
|
|
41
41
|
|
|
42
42
|
## Dlaczego paradygmaty zmieniły się od pojawienia się AI?
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ Jednak istnieje ograniczenie. Copywriting to nie tylko tłumaczenie; chodzi o do
|
|
|
49
49
|
|
|
50
50
|
Dziś najefektywniejszy workflow polega na tym, by najpierw użyć AI do przetłumaczenia i globalnego umiejscowienia stron. Następnie, w drugiej fazie, korzysta się z ludzkich copywriterów, by zoptymalizować konkretne treści o dużym ruchu i zwiększyć konwersję, gdy produkt zaczyna już generować przychody.
|
|
51
51
|
|
|
52
|
-
Chociaż przychody Crowdina
|
|
52
|
+
Chociaż przychody Crowdina, napędzane głównie przez jego dobrze sprawdzone legacy rozwiązania, nadal są solidne, uważam, że tradycyjny sektor lokalizacji zostanie poważnie dotknięty w horyzoncie 5–10 lat. Model płacenia za słowo lub za miejsce (per seat) za narzędzie do zarządzania staje się przestarzały.
|
|
53
53
|
|
|
54
54
|
## Dlaczego Intlayer jest dobrą alternatywą dla Crowdina?
|
|
55
55
|
|
|
@@ -73,8 +73,8 @@ Dzięki Intlayer generujesz tłumaczenia ponosząc koszt swoich inferencji. Nie
|
|
|
73
73
|
|
|
74
74
|
Intlayer oferuje kompletne, wszystko-w-jednym rozwiązanie i18n, które pozwala na głęboką integrację Twoich treści. Zdalne zasoby mogą być synchronizowane bezpośrednio z codebase'em lub z aplikacją działającą na żywo. Dla porównania, Crowdin często wymaga przebudowy aplikacji w pipeline CI/CD, aby zaktualizować treści, co powoduje tarcia między zespołem tłumaczeniowym a procesem wdrażania.
|
|
75
75
|
|
|
76
|
-
Ponadto Intlayer może być używany jako Feature Flag lub narzędzie do testów A/B, umożliwiając dynamiczne testowanie różnych wariantów treści
|
|
76
|
+
Ponadto Intlayer może być używany jako Feature Flag lub narzędzie do testów A/B, umożliwiając dynamiczne testowanie różnych wariantów treści, czego standardowe narzędzia TMS, takie jak Crowdin, natywnie nie obsługują.
|
|
77
77
|
|
|
78
|
-
Crowdin obsługuje szeroki zakres formatów plików
|
|
78
|
+
Crowdin obsługuje szeroki zakres formatów plików, w tym starsze typy takie jak `.po`, `.xml` i `.yaml`, co może być korzystne dla projektów z ustalonymi workflowami lub starszymi systemami. Intlayer, w przeciwieństwie do tego, działa przede wszystkim z nowoczesnymi, webowymi formatami takimi jak `.json`, `.js` i `.ts`. Oznacza to, że Intlayer może nie być kompatybilny ze wszystkimi starszymi formatami plików, co jest istotne dla zespołów migrujących ze starszych platform.
|
|
79
79
|
|
|
80
80
|
Na koniec, dla tych, którzy priorytetowo traktują suwerenność danych i kontrolę, Intlayer jest open-source i może być samodzielnie hostowany (self-hosted). Pliki Docker są dostępne bezpośrednio w repozytorium, co daje pełną kontrolę i własność nad Twoją infrastrukturą lokalizacyjną.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-12-18
|
|
3
3
|
updatedAt: 2025-11-06
|
|
4
|
-
title: Otwarte (open-source) rozwiązanie L10n
|
|
4
|
+
title: Otwarte (open-source) rozwiązanie L10n, alternatywa dla Phrase
|
|
5
5
|
description: Znajdź najlepszą platformę L10n jako alternatywę dla Phrase dopasowaną do Twoich potrzeb
|
|
6
6
|
keywords:
|
|
7
7
|
- L10n
|
|
@@ -17,7 +17,7 @@ history:
|
|
|
17
17
|
changes: Initial version
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
# Otwarte (open-source) rozwiązanie L10n
|
|
20
|
+
# Otwarte (open-source) rozwiązanie L10n, alternatywa dla Phrase (TMS)
|
|
21
21
|
|
|
22
22
|
## Spis treści
|
|
23
23
|
|
|
@@ -29,10 +29,6 @@ System zarządzania tłumaczeniami (TMS) to platforma programowa zaprojektowana
|
|
|
29
29
|
|
|
30
30
|
W istocie TMS od dawna jest pomostem między warstwą techniczną (gdzie znajdują się stringi) a ludzkimi lingwistami (którzy rozumieją kontekst kulturowy).
|
|
31
31
|
|
|
32
|
-
System zarządzania tłumaczeniami (Translation Management System, TMS) to platforma programowa zaprojektowana do automatyzacji i usprawnienia procesu tłumaczenia i lokalizacji (L10n). Tradycyjnie TMS pełni rolę scentralizowanego centrum, gdzie treści są przesyłane, organizowane i przypisywane tłumaczom. Zarządza workflowami, przechowuje pamięci tłumaczeń (translation memories — aby uniknąć ponownego tłumaczenia tych samych zdań) i obsługuje dostarczanie przetłumaczonych plików z powrotem do deweloperów lub menedżerów treści.
|
|
33
|
-
|
|
34
|
-
W istocie TMS historycznie stanowił pomost między technicznym kodem (gdzie znajdują się strings) a ludzkimi lingwistami (którzy rozumieją kontekst kulturowy).
|
|
35
|
-
|
|
36
32
|
# Phrase (dawniej PhraseApp)
|
|
37
33
|
|
|
38
34
|
Phrase to potęga w obszarze lokalizacji korporacyjnej. Początkowo znane jako PhraseApp, znacznie się rozrosło, zwłaszcza po połączeniu z Memsource. Pozycjonuje się jako kompleksowy Localization Suite zaprojektowany do lokalizacji oprogramowania, oferując rozbudowane możliwości API i szerokie wsparcie formatów.
|
|
@@ -41,7 +37,7 @@ Phrase zostało zaprojektowane z myślą o skali. To wybór preferowany przez du
|
|
|
41
37
|
|
|
42
38
|
# Intlayer
|
|
43
39
|
|
|
44
|
-
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje także headless CMS. W przeciwieństwie do Phrase, które funkcjonuje jako rozbudowany, zewnętrzny pakiet klasy enterprise, Intlayer działa jako zwinna, z kodem zintegrowana warstwa. Kontroluje cały stack
|
|
40
|
+
Intlayer jest znany przede wszystkim jako rozwiązanie i18n, ale integruje także headless CMS. W przeciwieństwie do Phrase, które funkcjonuje jako rozbudowany, zewnętrzny pakiet klasy enterprise, Intlayer działa jako zwinna, z kodem zintegrowana warstwa. Kontroluje cały stack, od warstwy bundlingu po zdalne dostarczanie treści, co skutkuje płynniejszym i bardziej efektywnym przepływem treści w nowoczesnych aplikacjach webowych.
|
|
45
41
|
|
|
46
42
|
## Dlaczego paradygmaty zmieniły się od czasu pojawienia się AI?
|
|
47
43
|
|
|
@@ -79,4 +75,4 @@ Ponadto Intlayer może być wykorzystywany jako Feature Flag lub narzędzie do t
|
|
|
79
75
|
|
|
80
76
|
Choć Phrase jest niezaprzeczalnie skuteczny w przypadku złożonych, wielomateriałowych potrzeb korporacyjnych (np. jednoczesne tłumaczenie plików PDF, napisów i oprogramowania), Intlayer jest lepszym wyborem dla zespołów produktowych budujących aplikacje webowe, które chcą full ownership, type safety i nowoczesnego, AI-driven workflow bez enterprise overhead.
|
|
81
77
|
|
|
82
|
-
Na koniec, dla tych, którzy priorytetowo traktują suwerenność danych i kontrolę, Intlayer jest open-source i może być self-hosted. Pliki Docker są dostępne bezpośrednio w repozytorium, dając pełne ownership nad infrastrukturą
|
|
78
|
+
Na koniec, dla tych, którzy priorytetowo traktują suwerenność danych i kontrolę, Intlayer jest open-source i może być self-hosted. Pliki Docker są dostępne bezpośrednio w repozytorium, dając pełne ownership nad infrastrukturą lokalizacyjną, coś niemożliwego w zamkniętym ekosystemie SaaS Phrase.
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Eksploracja rozwiązań i18n do tłumaczenia Twojej strony Angular
|
|
22
22
|
|
|
23
|
-
W dzisiejszym, wzajemnie połączonym świecie, oferowanie swojej strony internetowej w wielu językach może znacznie zwiększyć zasięg i poprawić doświadczenie użytkownika. Dla deweloperów pracujących z Angularem, wdrożenie internacjonalizacji (i18n) jest kluczowe dla efektywnego zarządzania tłumaczeniami przy jednoczesnym zachowaniu struktury aplikacji, SEO oraz wydajności. W tym artykule przyjrzymy się różnym podejściom do i18n
|
|
23
|
+
W dzisiejszym, wzajemnie połączonym świecie, oferowanie swojej strony internetowej w wielu językach może znacznie zwiększyć zasięg i poprawić doświadczenie użytkownika. Dla deweloperów pracujących z Angularem, wdrożenie internacjonalizacji (i18n) jest kluczowe dla efektywnego zarządzania tłumaczeniami przy jednoczesnym zachowaniu struktury aplikacji, SEO oraz wydajności. W tym artykule przyjrzymy się różnym podejściom do i18n, od wbudowanych rozwiązań Angulara po popularne biblioteki firm trzecich, aby pomóc Ci wybrać najlepsze rozwiązanie dla Twojego projektu.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -50,7 +50,29 @@ Tłumaczenie aplikacji Angular wiąże się z kilkoma wyzwaniami:
|
|
|
50
50
|
|
|
51
51
|
Angular oferuje wbudowany framework i18n, a także istnieje kilka bibliotek firm trzecich, które mają na celu uproszczenie konfiguracji wielojęzyczności. Poniżej znajdują się niektóre z najpopularniejszych rozwiązań.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Strona internetowa: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Przegląd**
|
|
58
|
+
**Intlayer** to innowacyjna biblioteka internacjonalizacji (i18n) typu open-source, zaprojektowana w celu uproszczenia obsługi wielojęzyczności w nowoczesnych aplikacjach internetowych Angular (i innych). Oferuje podejście deklaratywne, pozwalając na definiowanie słowników tłumaczeń bezpośrednio wewnątrz komponentów.
|
|
59
|
+
|
|
60
|
+
**Kluczowe cechy**
|
|
61
|
+
|
|
62
|
+
- **Deklaracja tłumaczeń**: Pozwala na deklarowanie wszystkich tłumaczeń w jednym pliku, przechowywanym na poziomie komponentu, co ułatwia konserwację i skalowanie.
|
|
63
|
+
- **TypeScript i autouzupełnianie**: Zapewnia automatycznie generowane definicje typów dla kluczy tłumaczeń, oferując solidne autouzupełnianie i wykrywanie błędów.
|
|
64
|
+
- **Komponenty serwerowe i SSR**: Zbudowany z myślą o renderowaniu po stronie serwera (SSR) i komponentach serwerowych, zapewniając wydajne renderowanie zlokalizowanej treści zarówno po stronie klienta, jak i serwera.
|
|
65
|
+
- **Zlokalizowane metadane i adresy URL dla SEO**: Łatwe zarządzanie dynamicznymi trasami opartymi na lokalizacji, mapami witryn i wpisami robots.txt w celu poprawy odkrywalności i SEO.
|
|
66
|
+
- **Bezproblemowa integracja**: Kompatybilny z Angular CLI i innymi narzędziami, co upraszcza konfigurację.
|
|
67
|
+
- **Asynchroniczne ładowanie**: Dynamiczne ładowanie słowników tłumaczeń, co zmniejsza początkowy rozmiar pakietu i poprawia wydajność.
|
|
68
|
+
|
|
69
|
+
**Uwagi**
|
|
70
|
+
|
|
71
|
+
- **Społeczność i ekosystem**: Choć stale rośnie, ekosystem jest nowszy, więc wtyczki i narzędzia tworzone przez społeczność mogą być bardziej ograniczone w porównaniu do bardziej ugruntowanych rozwiązań.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. Wbudowany i18n Angulara
|
|
54
76
|
|
|
55
77
|
**Przegląd**
|
|
56
78
|
Angular dostarcza **wbudowany system i18n**, który zawiera narzędzia do ekstrakcji ciągów tłumaczeń, obsługi liczby mnogiej i interpolacji oraz integracji tłumaczeń na etapie kompilacji. To oficjalne rozwiązanie jest potężne dla mniejszych projektów lub tych, które mogą ściśle dostosować się do zalecanej struktury Angulara.
|
|
@@ -70,7 +92,7 @@ Angular dostarcza **wbudowany system i18n**, który zawiera narzędzia do ekstra
|
|
|
70
92
|
|
|
71
93
|
---
|
|
72
94
|
|
|
73
|
-
###
|
|
95
|
+
### 3. ngx-translate
|
|
74
96
|
|
|
75
97
|
Strona: [https://github.com/ngx-translate/core](https://github.com/ngx-translate/core)
|
|
76
98
|
|
|
@@ -92,7 +114,7 @@ Strona: [https://github.com/ngx-translate/core](https://github.com/ngx-translate
|
|
|
92
114
|
|
|
93
115
|
---
|
|
94
116
|
|
|
95
|
-
###
|
|
117
|
+
### 4. Transloco
|
|
96
118
|
|
|
97
119
|
Strona internetowa: [https://ngneat.github.io/transloco/](https://ngneat.github.io/transloco/)
|
|
98
120
|
|
|
@@ -203,7 +203,7 @@ Wybierając rozwiązanie i18n dla swojej aplikacji React Native:
|
|
|
203
203
|
|
|
204
204
|
2. **Zwróć uwagę na różnice między platformami**
|
|
205
205
|
- Upewnij się, że każda biblioteka obsługuje warianty lokalizacji iOS i Android, zwłaszcza niuanse dotyczące dat, liczb i walut.
|
|
206
|
-
- Weź pod uwagę tryb offline
|
|
206
|
+
- Weź pod uwagę tryb offline, niektóre tłumaczenia mogą wymagać dołączenia do aplikacji, podczas gdy inne mogą być pobierane zdalnie.
|
|
207
207
|
|
|
208
208
|
3. **Wybierz strukturę dla skalowalności**
|
|
209
209
|
- Jeśli planujesz dużą lub długotrwałą aplikację, silny workflow ekstrakcji lub typowane klucze mogą pomóc utrzymać tłumaczenia w dobrej organizacji.
|
|
@@ -212,6 +212,6 @@ Wybierając rozwiązanie i18n dla swojej aplikacji React Native:
|
|
|
212
212
|
- Ograniczenia danych mobilnych oznaczają, że powinieneś uważnie kontrolować rozmiar plików tłumaczeń i wszelkich polyfilli.
|
|
213
213
|
|
|
214
214
|
5. **Doświadczenie dewelopera (DX)**
|
|
215
|
-
- Szukaj bibliotek, które odpowiadają umiejętnościom Twojego zespołu
|
|
215
|
+
- Szukaj bibliotek, które odpowiadają umiejętnościom Twojego zespołu, niektóre rozwiązania są bardziej rozbudowane, ale proste w użyciu, podczas gdy inne oferują więcej automatyzacji kosztem złożoności konfiguracji.
|
|
216
216
|
|
|
217
217
|
Każde z rozwiązań: Intlayer, React-i18next, React Intl oraz LinguiJS, okazało się skuteczne w środowiskach React Native, choć z nieco różnymi priorytetami. Ocena harmonogramu projektu, preferencji deweloperów oraz potrzeb lokalizacyjnych pomoże wybrać idealne rozwiązanie do stworzenia naprawdę globalnej aplikacji React Native.
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Eksploracja rozwiązań i18n do tłumaczenia Twojej strony React
|
|
22
22
|
|
|
23
|
-
W dzisiejszym cyfrowym świecie rozszerzenie zasięgu swojej strony internetowej, aby dotrzeć do globalnej publiczności, jest niezbędne. Dla deweloperów tworzących w React, wdrożenie internacjonalizacji (i18n) jest kluczem do efektywnego zarządzania tłumaczeniami przy jednoczesnym zachowaniu struktury aplikacji, wartości SEO oraz doświadczenia użytkownika. W tym artykule przyglądamy się różnym podejściom do i18n
|
|
23
|
+
W dzisiejszym cyfrowym świecie rozszerzenie zasięgu swojej strony internetowej, aby dotrzeć do globalnej publiczności, jest niezbędne. Dla deweloperów tworzących w React, wdrożenie internacjonalizacji (i18n) jest kluczem do efektywnego zarządzania tłumaczeniami przy jednoczesnym zachowaniu struktury aplikacji, wartości SEO oraz doświadczenia użytkownika. W tym artykule przyglądamy się różnym podejściom do i18n, od dedykowanych bibliotek po rozwiązania kodowane na zamówienie, które pomogą Ci zdecydować, które najlepiej odpowiada potrzebom Twojego projektu.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -50,7 +50,29 @@ Tłumaczenie aplikacji Svelte może napotkać na kilka przeszkód:
|
|
|
50
50
|
|
|
51
51
|
Svelte nie oferuje natywnego, wbudowanego rozwiązania i18n (jak Angular), ale społeczność stworzyła wiele solidnych bibliotek i wzorców. Poniżej przedstawiono kilka popularnych podejść.
|
|
52
52
|
|
|
53
|
-
### 1.
|
|
53
|
+
### 1. Intlayer
|
|
54
|
+
|
|
55
|
+
> Strona internetowa: [https://intlayer.org/](https://intlayer.org/)
|
|
56
|
+
|
|
57
|
+
**Przegląd**
|
|
58
|
+
**Intlayer** to innowacyjna biblioteka internacjonalizacji (i18n) typu open-source, zaprojektowana w celu uproszczenia obsługi wielojęzyczności w nowoczesnych aplikacjach internetowych Svelte (i innych). Oferuje podejście deklaratywne, pozwalając na definiowanie słowników tłumaczeń bezpośrednio wewnątrz komponentów.
|
|
59
|
+
|
|
60
|
+
**Kluczowe cechy**
|
|
61
|
+
|
|
62
|
+
- **Deklaracja tłumaczeń**: Pozwala na deklarowanie wszystkich tłumaczeń w jednym pliku, przechowywanym na poziomie komponentu, co ułatwia konserwację i skalowanie.
|
|
63
|
+
- **TypeScript i autouzupełnianie**: Zapewnia automatycznie generowane definicje typów dla kluczy tłumaczeń, oferując solidne autouzupełnianie i wykrywanie błędów.
|
|
64
|
+
- **Komponenty serwerowe i SSR**: Zbudowany z myślą o renderowaniu po stronie serwera (SSR) i komponentach serwerowych, zapewniając wydajne renderowanie zlokalizowanej treści zarówno po stronie klienta, jak i serwera.
|
|
65
|
+
- **Zlokalizowane metadane i adresy URL dla SEO**: Łatwe zarządzanie dynamicznymi trasami opartymi na lokalizacji, mapami witryn i wpisami robots.txt w celu poprawy odkrywalności i SEO.
|
|
66
|
+
- **Bezproblemowa integracja**: Kompatybilny z SvelteKit i innymi narzędziami, co upraszcza konfigurację.
|
|
67
|
+
- **Asynchroniczne ładowanie**: Dynamiczne ładowanie słowników tłumaczeń, co zmniejsza początkowy rozmiar pakietu i poprawia wydajność.
|
|
68
|
+
|
|
69
|
+
**Uwagi**
|
|
70
|
+
|
|
71
|
+
- **Społeczność i ekosystem**: Choć stale rośnie, ekosystem jest nowszy, więc wtyczki i narzędzia tworzone przez społeczność mogą być bardziej ograniczone w porównaniu do bardziej ugruntowanych rozwiązań.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. svelte-i18n
|
|
54
76
|
|
|
55
77
|
Repozytorium: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
78
|
|
|
@@ -72,7 +94,7 @@ Repozytorium: [https://github.com/kaisermann/svelte-i18n](https://github.com/kai
|
|
|
72
94
|
|
|
73
95
|
---
|
|
74
96
|
|
|
75
|
-
###
|
|
97
|
+
### 3. svelte-intl-precompile
|
|
76
98
|
|
|
77
99
|
Repozytorium: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
100
|
|
|
@@ -96,7 +118,7 @@ Repozytorium: [https://github.com/cibernox/svelte-intl-precompile](https://githu
|
|
|
96
118
|
|
|
97
119
|
---
|
|
98
120
|
|
|
99
|
-
###
|
|
121
|
+
### 4. i18next z Svelte / SvelteKit
|
|
100
122
|
|
|
101
123
|
Strona internetowa: [https://www.i18next.com/](https://www.i18next.com/)
|
|
102
124
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# Eksploracja rozwiązań i18n do tłumaczenia Twojej strony Vue.js
|
|
22
22
|
|
|
23
|
-
W coraz bardziej zglobalizowanym cyfrowym świecie, rozszerzenie zasięgu Twojej strony Vue.js na użytkowników mówiących różnymi językami nie jest już „miłym dodatkiem”, lecz koniecznością konkurencyjną. Internacjonalizacja (i18n) umożliwia programistom zarządzanie tłumaczeniami oraz dostosowywanie aplikacji do różnych lokalizacji, jednocześnie zachowując wartość SEO, doświadczenie użytkownika oraz utrzymywalną strukturę kodu. W tym artykule przeanalizujemy różne podejścia
|
|
23
|
+
W coraz bardziej zglobalizowanym cyfrowym świecie, rozszerzenie zasięgu Twojej strony Vue.js na użytkowników mówiących różnymi językami nie jest już „miłym dodatkiem”, lecz koniecznością konkurencyjną. Internacjonalizacja (i18n) umożliwia programistom zarządzanie tłumaczeniami oraz dostosowywanie aplikacji do różnych lokalizacji, jednocześnie zachowując wartość SEO, doświadczenie użytkownika oraz utrzymywalną strukturę kodu. W tym artykule przeanalizujemy różne podejścia, od dedykowanych bibliotek po rozwiązania kodowane na zamówienie, które pomogą Ci płynnie zintegrować i18n w Twoim projekcie Vue.js.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -52,7 +52,21 @@ Poniżej przedstawiono kilka popularnych bibliotek i podejść, które można wy
|
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
### 1.
|
|
55
|
+
### 1. Intlayer
|
|
56
|
+
|
|
57
|
+
> Strona internetowa: [https://intlayer.org/](https://intlayer.org/)
|
|
58
|
+
|
|
59
|
+
**Przegląd**
|
|
60
|
+
**Intlayer** to rozwiązanie i18n typu open-source, które ma na celu uproszczenie obsługi wielu języków w wielu frameworkach, w tym **Vue**. Kładzie nacisk na podejście deklaratywne, silne typowanie i wsparcie SSR w innych ekosystemach, chociaż SSR nie jest typowe w standardowym Vue.
|
|
61
|
+
|
|
62
|
+
**Kluczowe funkcje**
|
|
63
|
+
|
|
64
|
+
- **Deklaratywne tłumaczenie**: Definiuj słowniki tłumaczeń na poziomie widżetu lub w scentralizowanym pliku dla czystszej architektury.
|
|
65
|
+
- **TypeScript i autouzupełnianie (Web)**: Chociaż ta funkcja przynosi korzyści głównie frameworkom webowym, podejście do tłumaczenia typowanego może nadal prowadzić strukturalny kod we Vue.
|
|
66
|
+
- **Ładowanie asynchroniczne**: Ładuj zasoby tłumaczeń dynamicznie, co potencjalnie zmniejsza początkowy rozmiar pakietu dla aplikacji wielojęzycznych.
|
|
67
|
+
- **Integracja z Vue**: Można skonfigurować podstawową integrację, aby wykorzystać podejście Intlayer do tłumaczeń strukturalnych.
|
|
68
|
+
|
|
69
|
+
### 2. Vue I18n
|
|
56
70
|
|
|
57
71
|
> Strona internetowa: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
72
|
|
|
@@ -83,7 +97,7 @@ Poniżej przedstawiono kilka popularnych bibliotek i podejść, które można wy
|
|
|
83
97
|
|
|
84
98
|
---
|
|
85
99
|
|
|
86
|
-
###
|
|
100
|
+
### 3. LinguiJS (Integracja z Vue)
|
|
87
101
|
|
|
88
102
|
> Strona internetowa: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
103
|
|
|
@@ -127,4 +141,4 @@ Przy wyborze rozwiązania i18n dla aplikacji Vue.js:
|
|
|
127
141
|
5. **SEO i metadane**
|
|
128
142
|
Aby wielojęzyczne strony dobrze się pozycjonowały, Twoje rozwiązanie powinno upraszczać lokalizowane meta tagi, adresy URL, mapy witryn oraz pliki `robots.txt` dla każdej lokalizacji.
|
|
129
143
|
|
|
130
|
-
Niezależnie od tego, którą ścieżkę wybierzesz
|
|
144
|
+
Niezależnie od tego, którą ścieżkę wybierzesz. Intlayer, Vue I18n, LinguiJS czy podejście własnoręcznie zakodowane, będziesz na dobrej drodze do dostarczenia aplikacji Vue.js przyjaznej dla użytkowników na całym świecie. Każde rozwiązanie oferuje różne kompromisy dotyczące wydajności, doświadczenia deweloperskiego oraz skalowalności. Dokładnie oceniając potrzeby swojego projektu, możesz z pewnością wybrać konfigurację i18n, która zapewni sukces Tobie i Twojej wielojęzycznej publiczności.
|
|
@@ -54,7 +54,7 @@ Oto lista kontrolna, którą powinna wdrożyć każda wielojęzyczna aplikacja:
|
|
|
54
54
|
- **Używaj zlokalizowanych linków**
|
|
55
55
|
Przykład: `<a href="/fr/about">À propos</a>` zamiast linkować do domyślnego `/about`.
|
|
56
56
|
|
|
57
|
-
To proste kroki
|
|
57
|
+
To proste kroki, ale ich pominięcie może kosztować Cię widoczność.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -59,7 +59,7 @@ Jednak w świecie React głównie widzimy różne podejścia, które pogrupuję
|
|
|
59
59
|
|
|
60
60
|
Drobnoziarniste podejście (intlayer, inlang)
|
|
61
61
|
|
|
62
|
-
- pobieranie treści w sposób drobnoziarnisty
|
|
62
|
+
- pobieranie treści w sposób drobnoziarnisty, na poziomie klucza lub komponentu.
|
|
63
63
|
|
|
64
64
|
</Column>
|
|
65
65
|
</Columns>
|
|
@@ -80,7 +80,7 @@ Oczywiście autorzy bibliotek zdają sobie sprawę z tych ograniczeń i proponuj
|
|
|
80
80
|
|
|
81
81
|
Jednocześnie powinieneś wiedzieć, że gdy dynamicznie ładujesz swoją zawartość, wprowadzasz dodatkowe żądania do serwera. Każde dodatkowe `useState` lub hook oznacza dodatkowe żądanie do serwera.
|
|
82
82
|
|
|
83
|
-
> Aby rozwiązać ten problem, Intlayer proponuje grupowanie wielu definicji treści pod tym samym kluczem
|
|
83
|
+
> Aby rozwiązać ten problem, Intlayer proponuje grupowanie wielu definicji treści pod tym samym kluczem. Intlayer następnie scali tę zawartość.
|
|
84
84
|
|
|
85
85
|
Ale z tych wszystkich rozwiązań jasno wynika, że najbardziej popularnym podejściem jest podejście scentralizowane.
|
|
86
86
|
|
|
@@ -96,7 +96,7 @@ Ale z tych wszystkich rozwiązań jasno wynika, że najbardziej popularnym podej
|
|
|
96
96
|
Pozwól, że wyjaśnię, dlaczego może to być problematyczne dla Twojej aplikacji:
|
|
97
97
|
|
|
98
98
|
- **Nieużywane dane:**
|
|
99
|
-
Gdy ładuje się strona, często pobierane są treści ze wszystkich pozostałych stron. (W aplikacji z 10 stronami to 90% załadowanej zawartości jest nieużywane). Lazy-loadujesz modal? Biblioteka i18n i tak na to nie zważa
|
|
99
|
+
Gdy ładuje się strona, często pobierane są treści ze wszystkich pozostałych stron. (W aplikacji z 10 stronami to 90% załadowanej zawartości jest nieużywane). Lazy-loadujesz modal? Biblioteka i18n i tak na to nie zważa, i tak najpierw ładuje stringi.
|
|
100
100
|
- **Wydajność:**
|
|
101
101
|
Przy każdym re-renderze każdy komponent zostaje obciążony olbrzymim ładunkiem JSON, co negatywnie wpływa na reaktywność aplikacji w miarę jej rozrostu.
|
|
102
102
|
- **Utrzymanie:**
|
|
@@ -106,7 +106,7 @@ Pozwól, że wyjaśnię, dlaczego może to być problematyczne dla Twojej aplika
|
|
|
106
106
|
|
|
107
107
|
**"Ale wymyśliliśmy Namespaces!"**
|
|
108
108
|
|
|
109
|
-
Oczywiście
|
|
109
|
+
Oczywiście, to ogromny krok naprzód. Przyjrzyjmy się porównaniu rozmiaru głównego bundle'a dla konfiguracji Vite + React + React Router v7 + Intlayer. Zasymulowaliśmy aplikację z 20 stronami.
|
|
110
110
|
|
|
111
111
|
Pierwszy przykład nie uwzględnia leniwego ładowania tłumaczeń dla każdego locale i nie stosuje podziału na namespaces. Drugi obejmuje content purging + dynamiczne ładowanie tłumaczeń.
|
|
112
112
|
|
|
@@ -99,7 +99,7 @@ Ten kompromis (rozmiar fragmentu vs nakładanie) jest kluczowy dla efektywności
|
|
|
99
99
|
|
|
100
100
|
## Krok 3: Generowanie embeddingów
|
|
101
101
|
|
|
102
|
-
Gdy dokumenty są podzielone na fragmenty, generujemy **embeddingi
|
|
102
|
+
Gdy dokumenty są podzielone na fragmenty, generujemy **embeddingi**, wektory o wysokim wymiarze reprezentujące każdy fragment.
|
|
103
103
|
|
|
104
104
|
Użyłem modelu OpenAI text-embedding-3-large, ale można użyć dowolnego nowoczesnego modelu embeddingowego.
|
|
105
105
|
|
|
@@ -246,7 +246,7 @@ To podejście:
|
|
|
246
246
|
## Kiedy wybrać które?
|
|
247
247
|
|
|
248
248
|
- **Wybierz vue-i18n**, jeśli chcesz **standardowe podejście Vue**, czujesz się komfortowo zarządzając katalogami/przestrzeniami nazw samodzielnie, a Twoja aplikacja jest **mała lub średnia** (lub już korzystasz z Nuxt i18n).
|
|
249
|
-
- **Wybierz Intlayer**, jeśli cenisz **zawartość ograniczoną do komponentu**, **ścisły TypeScript**, **gwarancje na etapie budowania**, **tree-shaking** oraz **wbudowane narzędzia do routingu/SEO/edytora
|
|
249
|
+
- **Wybierz Intlayer**, jeśli cenisz **zawartość ograniczoną do komponentu**, **ścisły TypeScript**, **gwarancje na etapie budowania**, **tree-shaking** oraz **wbudowane narzędzia do routingu/SEO/edytora**, szczególnie dla **dużych, modułowych baz kodu Vue/Nuxt**, systemów projektowych itp.
|
|
250
250
|
|
|
251
251
|
---
|
|
252
252
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# O Caso a Favor e Contra a i18n Baseada em Compilador
|
|
22
22
|
|
|
23
|
-
Se você tem construído aplicações web por mais de uma década, sabe que a Internacionalização (i18n) sempre foi um ponto de atrito. Frequentemente, é a tarefa que ninguém quer fazer
|
|
23
|
+
Se você tem construído aplicações web por mais de uma década, sabe que a Internacionalização (i18n) sempre foi um ponto de atrito. Frequentemente, é a tarefa que ninguém quer fazer, extrair strings, gerenciar arquivos JSON e se preocupar com regras de pluralização.
|
|
24
24
|
|
|
25
25
|
Recentemente, uma nova onda de ferramentas de i18n **"baseadas em compilador"** surgiu, prometendo fazer essa dor desaparecer. A proposta é sedutora: **Basta escrever o texto nos seus componentes e deixar a ferramenta de build cuidar do resto.** Sem chaves, sem imports, apenas mágica.
|
|
26
26
|
|