@intlayer/docs 7.0.6 → 7.0.8-canary.0
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/blog/ar/i18n_using_next-i18next.md +1068 -0
- package/blog/ar/i18n_using_next-intl.md +768 -0
- package/blog/ar/intlayer_with_react-intl.md +0 -4
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +5 -4
- package/blog/de/i18n_using_next-i18next.md +1107 -0
- package/blog/de/i18n_using_next-intl.md +760 -0
- package/blog/de/intlayer_with_react-intl.md +0 -4
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/en/i18n_using_next-i18next.md +1073 -0
- package/blog/en/i18n_using_next-intl.md +757 -0
- package/blog/en/intlayer_with_i18next.md +71 -8
- package/blog/en/intlayer_with_next-i18next.md +71 -8
- package/blog/en/intlayer_with_next-intl.md +71 -8
- package/blog/en/intlayer_with_react-i18next.md +69 -8
- package/blog/en/intlayer_with_react-intl.md +68 -9
- package/blog/en/intlayer_with_vue-i18n.md +68 -7
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/en/vue-i18n_vs_intlayer.md +2 -0
- package/blog/en-GB/i18n_using_next-i18next.md +1074 -0
- package/blog/en-GB/i18n_using_next-intl.md +757 -0
- package/blog/en-GB/intlayer_with_i18next.md +15 -6
- package/blog/en-GB/intlayer_with_next-i18next.md +16 -6
- package/blog/en-GB/intlayer_with_next-intl.md +16 -6
- package/blog/en-GB/intlayer_with_react-i18next.md +16 -7
- package/blog/en-GB/intlayer_with_react-intl.md +14 -9
- package/blog/en-GB/intlayer_with_vue-i18n.md +16 -7
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/en-GB/vue-i18n_vs_intlayer.md +2 -0
- package/blog/es/i18n_using_next-i18next.md +1066 -0
- package/blog/es/i18n_using_next-intl.md +757 -0
- package/blog/es/intlayer_with_react-intl.md +0 -4
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/fr/i18n_using_next-i18next.md +1078 -0
- package/blog/fr/i18n_using_next-intl.md +759 -0
- package/blog/fr/intlayer_with_react-intl.md +0 -4
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/hi/i18n_using_next-i18next.md +1068 -0
- package/blog/hi/i18n_using_next-intl.md +758 -0
- package/blog/hi/intlayer_with_react-intl.md +0 -4
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/id/i18n_using_next-i18next.md +1078 -0
- package/blog/id/i18n_using_next-intl.md +757 -0
- package/blog/id/index.md +69 -0
- package/blog/id/internationalization_and_SEO.md +364 -0
- package/blog/id/intlayer_with_react-intl.md +0 -4
- package/blog/id/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/id/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/id/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/id/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/id/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/id/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/id/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/id/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1500 -0
- package/blog/id/nextjs-multilingual-seo-comparison.md +361 -0
- package/blog/id/rag_powered_documentation_assistant.md +288 -0
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/id/vue-i18n_vs_intlayer.md +278 -0
- package/blog/id/what_is_internationalization.md +166 -0
- package/blog/it/i18n_using_next-i18next.md +1078 -0
- package/blog/it/i18n_using_next-intl.md +758 -0
- package/blog/it/intlayer_with_react-intl.md +0 -4
- package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +4 -0
- package/blog/it/vue-i18n_vs_intlayer.md +2 -0
- package/blog/ja/i18n_using_next-i18next.md +1078 -0
- package/blog/ja/i18n_using_next-intl.md +758 -0
- package/blog/ja/intlayer_with_react-intl.md +0 -4
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/ko/i18n_using_next-i18next.md +1075 -0
- package/blog/ko/i18n_using_next-intl.md +759 -0
- package/blog/ko/intlayer_with_react-intl.md +0 -4
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/pl/i18n_using_next-i18next.md +1078 -0
- package/blog/pl/i18n_using_next-intl.md +758 -0
- package/blog/pl/index.md +69 -0
- package/blog/pl/internationalization_and_SEO.md +363 -0
- package/blog/pl/intlayer_with_react-intl.md +0 -4
- package/blog/pl/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/pl/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/pl/list_i18n_technologies/CMS/wordpress.md +196 -0
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/pl/list_i18n_technologies/frameworks/flutter.md +151 -0
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/pl/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1501 -0
- package/blog/pl/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/pl/rag_powered_documentation_assistant.md +288 -0
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/pl/vue-i18n_vs_intlayer.md +278 -0
- package/blog/pl/what_is_internationalization.md +167 -0
- package/blog/pt/i18n_using_next-i18next.md +1067 -0
- package/blog/pt/i18n_using_next-intl.md +760 -0
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/ru/i18n_using_next-i18next.md +1106 -0
- package/blog/ru/i18n_using_next-intl.md +759 -0
- package/blog/ru/intlayer_with_react-intl.md +0 -4
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/tr/i18n_using_next-i18next.md +1078 -0
- package/blog/tr/i18n_using_next-intl.md +760 -0
- package/blog/tr/intlayer_with_react-intl.md +0 -4
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +2 -0
- package/blog/vi/i18n_using_next-i18next.md +1080 -0
- package/blog/vi/i18n_using_next-intl.md +758 -0
- package/blog/vi/index.md +69 -0
- package/blog/vi/internationalization_and_SEO.md +363 -0
- package/blog/vi/intlayer_with_react-intl.md +0 -4
- package/blog/vi/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/vi/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/vi/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/vi/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/vi/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/vi/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +131 -0
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1520 -0
- package/blog/vi/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/vi/rag_powered_documentation_assistant.md +288 -0
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/vi/vue-i18n_vs_intlayer.md +278 -0
- package/blog/vi/what_is_internationalization.md +168 -0
- package/blog/zh/i18n_using_next-i18next.md +1105 -0
- package/blog/zh/i18n_using_next-intl.md +758 -0
- package/blog/zh/intlayer_with_react-intl.md +0 -4
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
- package/dist/cjs/common.cjs +0 -4
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +38 -6
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +0 -6
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -6
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +0 -6
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +38 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +2 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/component_i18n.md +1 -1
- package/docs/ar/configuration.md +6 -0
- package/docs/ar/intlayer_cli.md +8 -3
- package/docs/ar/intlayer_with_next-i18next.md +619 -0
- package/docs/ar/intlayer_with_next-intl.md +446 -0
- package/docs/ar/intlayer_with_nextjs_16.md +21 -0
- package/docs/ar/intlayer_with_tanstack.md +4 -0
- package/docs/ar/intlayer_with_vite+react.md +4 -0
- package/docs/de/component_i18n.md +1 -1
- package/docs/de/configuration.md +6 -0
- package/docs/de/intlayer_cli.md +8 -3
- package/docs/de/intlayer_with_next-i18next.md +627 -0
- package/docs/de/intlayer_with_next-intl.md +451 -0
- package/docs/de/intlayer_with_nextjs_16.md +21 -0
- package/docs/de/intlayer_with_tanstack.md +4 -0
- package/docs/de/intlayer_with_vite+react.md +4 -0
- package/docs/en/component_i18n.md +1 -1
- package/docs/en/intlayer_cli.md +8 -1
- package/docs/en/intlayer_with_astro.md +10 -2
- package/docs/en/intlayer_with_create_react_app.md +8 -0
- package/docs/en/intlayer_with_lynx+react.md +8 -0
- package/docs/en/intlayer_with_nestjs.md +10 -0
- package/docs/en/intlayer_with_nextjs_14.md +10 -2
- package/docs/en/intlayer_with_nextjs_15.md +21 -4
- package/docs/en/intlayer_with_nextjs_16.md +17 -0
- package/docs/en/intlayer_with_nuxt.md +8 -0
- package/docs/en/intlayer_with_react_native+expo.md +10 -2
- package/docs/en/intlayer_with_react_router_v7.md +8 -0
- package/docs/en/intlayer_with_tanstack.md +10 -0
- package/docs/en/intlayer_with_vite+preact.md +10 -2
- package/docs/en/intlayer_with_vite+react.md +21 -4
- package/docs/en/intlayer_with_vite+vue.md +10 -2
- package/docs/en-GB/component_i18n.md +1 -1
- package/docs/en-GB/configuration.md +6 -0
- package/docs/en-GB/intlayer_cli.md +8 -3
- package/docs/en-GB/intlayer_with_angular.md +4 -4
- package/docs/en-GB/intlayer_with_express.md +4 -4
- package/docs/en-GB/intlayer_with_lynx+react.md +12 -12
- package/{blog/en/_intlayer_with_next-i18next.md → docs/en-GB/intlayer_with_next-i18next.md} +241 -42
- package/{blog/en/_intlayer_with_next-intl.md → docs/en-GB/intlayer_with_next-intl.md} +144 -29
- package/docs/en-GB/intlayer_with_nextjs_16.md +21 -0
- package/docs/en-GB/intlayer_with_tanstack.md +5 -1
- package/docs/en-GB/intlayer_with_vite+react.md +4 -0
- package/docs/en-GB/packages/next-intlayer/t.md +2 -2
- package/docs/es/component_i18n.md +1 -1
- package/docs/es/configuration.md +6 -0
- package/docs/es/intlayer_cli.md +8 -3
- package/docs/es/intlayer_with_next-i18next.md +628 -0
- package/docs/es/intlayer_with_next-intl.md +446 -0
- package/docs/es/intlayer_with_nextjs_16.md +21 -0
- package/docs/es/intlayer_with_tanstack.md +4 -0
- package/docs/es/intlayer_with_vite+react.md +4 -0
- package/docs/fr/configuration.md +6 -0
- package/docs/fr/intlayer_cli.md +8 -3
- package/docs/fr/intlayer_with_next-i18next.md +628 -0
- package/docs/fr/intlayer_with_next-intl.md +446 -0
- package/docs/fr/intlayer_with_nextjs_16.md +23 -2
- package/docs/fr/intlayer_with_tanstack.md +4 -0
- package/docs/fr/intlayer_with_vite+react.md +4 -0
- package/docs/hi/component_i18n.md +1 -1
- package/docs/hi/configuration.md +6 -0
- package/docs/hi/intlayer_cli.md +8 -0
- package/docs/hi/intlayer_with_next-i18next.md +628 -0
- package/docs/hi/intlayer_with_next-intl.md +446 -0
- package/docs/hi/intlayer_with_nextjs_16.md +21 -0
- package/docs/hi/intlayer_with_tanstack.md +4 -0
- package/docs/hi/intlayer_with_vite+react.md +4 -0
- package/docs/id/CI_CD.md +198 -0
- package/docs/id/autoFill.md +284 -0
- package/docs/id/component_i18n.md +186 -0
- package/docs/id/configuration.md +710 -0
- package/docs/id/dictionary/condition.md +231 -0
- package/docs/id/dictionary/content_file.md +1092 -0
- package/docs/id/dictionary/enumeration.md +245 -0
- package/docs/id/dictionary/file.md +237 -0
- package/docs/id/dictionary/function_fetching.md +214 -0
- package/docs/id/dictionary/gender.md +273 -0
- package/docs/id/dictionary/insertion.md +192 -0
- package/docs/id/dictionary/markdown.md +381 -0
- package/docs/id/dictionary/nesting.md +273 -0
- package/docs/id/dictionary/translation.md +310 -0
- package/docs/id/formatters.md +596 -0
- package/docs/id/how_works_intlayer.md +256 -0
- package/docs/id/index.md +176 -0
- package/docs/id/interest_of_intlayer.md +293 -0
- package/docs/id/intlayer_CMS.md +549 -0
- package/docs/id/intlayer_cli.md +850 -0
- package/docs/id/intlayer_visual_editor.md +288 -0
- package/docs/id/intlayer_with_angular.md +694 -0
- package/docs/id/intlayer_with_astro.md +252 -0
- package/docs/id/intlayer_with_create_react_app.md +1233 -0
- package/docs/id/intlayer_with_express.md +411 -0
- package/docs/id/intlayer_with_lynx+react.md +518 -0
- package/docs/id/intlayer_with_nestjs.md +272 -0
- package/docs/id/intlayer_with_next-i18next.md +628 -0
- package/docs/id/intlayer_with_next-intl.md +446 -0
- package/docs/id/intlayer_with_nextjs_14.md +1617 -0
- package/docs/id/intlayer_with_nextjs_15.md +1698 -0
- package/docs/id/intlayer_with_nextjs_16.md +21 -0
- package/docs/id/intlayer_with_nextjs_page_router.md +1478 -0
- package/docs/id/intlayer_with_nuxt.md +808 -0
- package/docs/id/intlayer_with_react_native+expo.md +699 -0
- package/docs/id/intlayer_with_react_router_v7.md +496 -0
- package/docs/id/intlayer_with_tanstack.md +564 -0
- package/docs/id/intlayer_with_vite+preact.md +1737 -0
- package/docs/id/intlayer_with_vite+react.md +1413 -0
- package/docs/id/intlayer_with_vite+solid.md +289 -0
- package/docs/id/intlayer_with_vite+svelte.md +289 -0
- package/docs/id/intlayer_with_vite+vue.md +1088 -0
- package/docs/id/introduction.md +218 -0
- package/docs/id/locale_mapper.md +242 -0
- package/docs/id/mcp_server.md +211 -0
- package/docs/id/packages/express-intlayer/t.md +458 -0
- package/docs/id/packages/intlayer/getConfiguration.md +145 -0
- package/docs/id/packages/intlayer/getEnumeration.md +159 -0
- package/docs/id/packages/intlayer/getHTMLTextDir.md +122 -0
- package/docs/id/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/id/packages/intlayer/getLocaleName.md +119 -0
- package/docs/id/packages/intlayer/getLocalizedUrl.md +309 -0
- package/docs/id/packages/intlayer/getMultilingualUrls.md +223 -0
- package/docs/id/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/id/packages/intlayer/getTranslation.md +190 -0
- package/docs/id/packages/intlayer/getTranslationContent.md +188 -0
- package/docs/id/packages/next-intlayer/t.md +352 -0
- package/docs/id/packages/next-intlayer/useDictionary.md +271 -0
- package/docs/id/packages/next-intlayer/useIntlayer.md +264 -0
- package/docs/id/packages/next-intlayer/useLocale.md +166 -0
- package/docs/id/packages/react-intlayer/t.md +303 -0
- package/docs/id/packages/react-intlayer/useDictionary.md +287 -0
- package/docs/id/packages/react-intlayer/useI18n.md +267 -0
- package/docs/id/packages/react-intlayer/useIntlayer.md +254 -0
- package/docs/id/packages/react-intlayer/useLocale.md +210 -0
- package/docs/id/per_locale_file.md +323 -0
- package/docs/id/readme.md +261 -0
- package/docs/id/releases/v6.md +305 -0
- package/docs/id/roadmap.md +362 -0
- package/docs/id/testing.md +202 -0
- package/docs/id/vs_code_extension.md +126 -0
- package/docs/it/component_i18n.md +1 -1
- package/docs/it/configuration.md +6 -0
- package/docs/it/intlayer_cli.md +8 -3
- package/docs/it/intlayer_with_next-i18next.md +628 -0
- package/docs/it/intlayer_with_next-intl.md +446 -0
- package/docs/it/intlayer_with_nextjs_16.md +21 -0
- package/docs/it/intlayer_with_tanstack.md +4 -0
- package/docs/it/intlayer_with_vite+react.md +4 -0
- package/docs/ja/component_i18n.md +1 -1
- package/docs/ja/configuration.md +6 -0
- package/docs/ja/intlayer_cli.md +8 -3
- package/docs/ja/intlayer_with_next-i18next.md +627 -0
- package/docs/ja/intlayer_with_next-intl.md +446 -0
- package/docs/ja/intlayer_with_nextjs_16.md +21 -0
- package/docs/ja/intlayer_with_tanstack.md +4 -0
- package/docs/ja/intlayer_with_vite+react.md +4 -0
- package/docs/ko/configuration.md +6 -0
- package/docs/ko/intlayer_cli.md +8 -3
- package/docs/ko/intlayer_with_next-i18next.md +627 -0
- package/docs/ko/intlayer_with_next-intl.md +446 -0
- package/docs/ko/intlayer_with_nextjs_16.md +21 -0
- package/docs/ko/intlayer_with_tanstack.md +4 -0
- package/docs/ko/intlayer_with_vite+react.md +4 -0
- package/docs/pl/CI_CD.md +198 -0
- package/docs/pl/autoFill.md +284 -0
- package/docs/pl/component_i18n.md +186 -0
- package/docs/pl/configuration.md +710 -0
- package/docs/pl/dictionary/condition.md +232 -0
- package/docs/pl/dictionary/content_file.md +1130 -0
- package/docs/pl/dictionary/enumeration.md +245 -0
- package/docs/pl/dictionary/file.md +234 -0
- package/docs/pl/dictionary/function_fetching.md +214 -0
- package/docs/pl/dictionary/gender.md +276 -0
- package/docs/pl/dictionary/insertion.md +188 -0
- package/docs/pl/dictionary/markdown.md +408 -0
- package/docs/pl/dictionary/nesting.md +273 -0
- package/docs/pl/dictionary/translation.md +310 -0
- package/docs/pl/formatters.md +596 -0
- package/docs/pl/how_works_intlayer.md +256 -0
- package/docs/pl/index.md +176 -0
- package/docs/pl/interest_of_intlayer.md +291 -0
- package/docs/pl/intlayer_CMS.md +549 -0
- package/docs/pl/intlayer_cli.md +857 -0
- package/docs/pl/intlayer_visual_editor.md +288 -0
- package/docs/pl/intlayer_with_angular.md +690 -0
- package/docs/pl/intlayer_with_astro.md +280 -0
- package/docs/pl/intlayer_with_create_react_app.md +1235 -0
- package/docs/pl/intlayer_with_express.md +411 -0
- package/docs/pl/intlayer_with_lynx+react.md +518 -0
- package/docs/pl/intlayer_with_nestjs.md +272 -0
- package/docs/pl/intlayer_with_next-i18next.md +628 -0
- package/docs/pl/intlayer_with_next-intl.md +446 -0
- package/docs/pl/intlayer_with_nextjs_14.md +1594 -0
- package/docs/pl/intlayer_with_nextjs_15.md +1701 -0
- package/docs/pl/intlayer_with_nextjs_16.md +21 -0
- package/docs/pl/intlayer_with_nextjs_page_router.md +1513 -0
- package/docs/pl/intlayer_with_nuxt.md +885 -0
- package/docs/pl/intlayer_with_react_native+expo.md +698 -0
- package/docs/pl/intlayer_with_react_router_v7.md +503 -0
- package/docs/pl/intlayer_with_tanstack.md +562 -0
- package/docs/pl/intlayer_with_vite+preact.md +1736 -0
- package/docs/pl/intlayer_with_vite+react.md +1438 -0
- package/docs/pl/intlayer_with_vite+solid.md +290 -0
- package/docs/pl/intlayer_with_vite+svelte.md +289 -0
- package/docs/pl/intlayer_with_vite+vue.md +1116 -0
- package/docs/pl/introduction.md +209 -0
- package/docs/pl/locale_mapper.md +242 -0
- package/docs/pl/mcp_server.md +211 -0
- package/docs/pl/packages/express-intlayer/t.md +458 -0
- package/docs/pl/packages/intlayer/getConfiguration.md +146 -0
- package/docs/pl/packages/intlayer/getEnumeration.md +160 -0
- package/docs/pl/packages/intlayer/getHTMLTextDir.md +121 -0
- package/docs/pl/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/pl/packages/intlayer/getLocaleName.md +118 -0
- package/docs/pl/packages/intlayer/getLocalizedUrl.md +300 -0
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +221 -0
- package/docs/pl/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/pl/packages/intlayer/getTranslation.md +190 -0
- package/docs/pl/packages/intlayer/getTranslationContent.md +189 -0
- package/docs/pl/packages/next-intlayer/t.md +353 -0
- package/docs/pl/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/pl/packages/next-intlayer/useIntlayer.md +263 -0
- package/docs/pl/packages/next-intlayer/useLocale.md +166 -0
- package/docs/pl/packages/react-intlayer/t.md +303 -0
- package/docs/pl/packages/react-intlayer/useDictionary.md +289 -0
- package/docs/pl/packages/react-intlayer/useI18n.md +249 -0
- package/docs/pl/packages/react-intlayer/useIntlayer.md +256 -0
- package/docs/pl/packages/react-intlayer/useLocale.md +210 -0
- package/docs/pl/per_locale_file.md +321 -0
- package/docs/pl/readme.md +261 -0
- package/docs/pl/releases/v6.md +305 -0
- package/docs/pl/roadmap.md +362 -0
- package/docs/pl/testing.md +202 -0
- package/docs/pl/vs_code_extension.md +126 -0
- package/docs/pt/component_i18n.md +1 -1
- package/docs/pt/configuration.md +6 -0
- package/docs/pt/intlayer_cli.md +8 -3
- package/docs/pt/intlayer_with_next-i18next.md +627 -0
- package/docs/pt/intlayer_with_next-intl.md +446 -0
- package/docs/pt/intlayer_with_nextjs_16.md +21 -0
- package/docs/pt/intlayer_with_tanstack.md +4 -0
- package/docs/pt/intlayer_with_vite+react.md +4 -0
- package/docs/ru/component_i18n.md +1 -1
- package/docs/ru/configuration.md +6 -0
- package/docs/ru/intlayer_cli.md +301 -22
- package/docs/ru/intlayer_with_next-i18next.md +629 -0
- package/docs/ru/intlayer_with_next-intl.md +448 -0
- package/docs/ru/intlayer_with_nextjs_16.md +21 -0
- package/docs/ru/intlayer_with_tanstack.md +4 -0
- package/docs/ru/intlayer_with_vite+react.md +4 -0
- package/docs/tr/component_i18n.md +1 -1
- package/docs/tr/configuration.md +6 -0
- package/docs/tr/intlayer_cli.md +8 -0
- package/docs/tr/intlayer_with_next-i18next.md +627 -0
- package/docs/tr/intlayer_with_next-intl.md +446 -0
- package/docs/tr/intlayer_with_nextjs_16.md +21 -0
- package/docs/tr/intlayer_with_tanstack.md +4 -0
- package/docs/tr/intlayer_with_vite+react.md +4 -0
- package/docs/vi/CI_CD.md +198 -0
- package/docs/vi/autoFill.md +284 -0
- package/docs/vi/component_i18n.md +186 -0
- package/docs/vi/configuration.md +710 -0
- package/docs/vi/dictionary/condition.md +237 -0
- package/docs/vi/dictionary/content_file.md +1115 -0
- package/docs/vi/dictionary/enumeration.md +255 -0
- package/docs/vi/dictionary/file.md +234 -0
- package/docs/vi/dictionary/function_fetching.md +212 -0
- package/docs/vi/dictionary/gender.md +275 -0
- package/docs/vi/dictionary/insertion.md +191 -0
- package/docs/vi/dictionary/markdown.md +381 -0
- package/docs/vi/dictionary/nesting.md +273 -0
- package/docs/vi/dictionary/translation.md +309 -0
- package/docs/vi/formatters.md +595 -0
- package/docs/vi/how_works_intlayer.md +256 -0
- package/docs/vi/index.md +174 -0
- package/docs/vi/interest_of_intlayer.md +292 -0
- package/docs/vi/intlayer_CMS.md +549 -0
- package/docs/vi/intlayer_cli.md +850 -0
- package/docs/vi/intlayer_visual_editor.md +288 -0
- package/docs/vi/intlayer_with_angular.md +692 -0
- package/docs/vi/intlayer_with_astro.md +252 -0
- package/docs/vi/intlayer_with_create_react_app.md +1230 -0
- package/docs/vi/intlayer_with_express.md +409 -0
- package/docs/vi/intlayer_with_lynx+react.md +520 -0
- package/docs/vi/intlayer_with_nestjs.md +272 -0
- package/docs/vi/intlayer_with_next-i18next.md +628 -0
- package/docs/vi/intlayer_with_next-intl.md +446 -0
- package/docs/vi/intlayer_with_nextjs_14.md +1584 -0
- package/docs/vi/intlayer_with_nextjs_15.md +1738 -0
- package/docs/vi/intlayer_with_nextjs_16.md +21 -0
- package/docs/vi/intlayer_with_nextjs_page_router.md +1504 -0
- package/docs/vi/intlayer_with_nuxt.md +821 -0
- package/docs/vi/intlayer_with_react_native+expo.md +700 -0
- package/docs/vi/intlayer_with_react_router_v7.md +498 -0
- package/docs/vi/intlayer_with_tanstack.md +562 -0
- package/docs/vi/intlayer_with_vite+preact.md +1722 -0
- package/docs/vi/intlayer_with_vite+react.md +1407 -0
- package/docs/vi/intlayer_with_vite+solid.md +287 -0
- package/docs/vi/intlayer_with_vite+svelte.md +289 -0
- package/docs/vi/intlayer_with_vite+vue.md +1071 -0
- package/docs/vi/introduction.md +215 -0
- package/docs/vi/locale_mapper.md +242 -0
- package/docs/vi/mcp_server.md +211 -0
- package/docs/vi/packages/express-intlayer/t.md +457 -0
- package/docs/vi/packages/intlayer/getConfiguration.md +145 -0
- package/docs/vi/packages/intlayer/getEnumeration.md +162 -0
- package/docs/vi/packages/intlayer/getHTMLTextDir.md +121 -0
- package/docs/vi/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/vi/packages/intlayer/getLocaleName.md +129 -0
- package/docs/vi/packages/intlayer/getLocalizedUrl.md +309 -0
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +221 -0
- package/docs/vi/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/vi/packages/intlayer/getTranslation.md +201 -0
- package/docs/vi/packages/intlayer/getTranslationContent.md +188 -0
- package/docs/vi/packages/next-intlayer/t.md +352 -0
- package/docs/vi/packages/next-intlayer/useDictionary.md +273 -0
- package/docs/vi/packages/next-intlayer/useIntlayer.md +264 -0
- package/docs/vi/packages/next-intlayer/useLocale.md +166 -0
- package/docs/vi/packages/react-intlayer/t.md +304 -0
- package/docs/vi/packages/react-intlayer/useDictionary.md +288 -0
- package/docs/vi/packages/react-intlayer/useI18n.md +295 -0
- package/docs/vi/packages/react-intlayer/useIntlayer.md +256 -0
- package/docs/vi/packages/react-intlayer/useLocale.md +210 -0
- package/docs/vi/per_locale_file.md +326 -0
- package/docs/vi/readme.md +261 -0
- package/docs/vi/releases/v6.md +305 -0
- package/docs/vi/roadmap.md +346 -0
- package/docs/vi/testing.md +202 -0
- package/docs/vi/vs_code_extension.md +126 -0
- package/docs/zh/configuration.md +6 -0
- package/docs/zh/intlayer_cli.md +8 -3
- package/docs/zh/intlayer_with_next-i18next.md +628 -0
- package/docs/zh/intlayer_with_next-intl.md +448 -0
- package/docs/zh/intlayer_with_nextjs_16.md +21 -0
- package/docs/zh/intlayer_with_tanstack.md +4 -0
- package/docs/zh/intlayer_with_vite+react.md +4 -0
- package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ar/array_as_content_declaration.md +1 -2
- package/frequent_questions/ar/build_dictionaries.md +1 -2
- package/frequent_questions/ar/build_error_CI_CD.md +1 -2
- package/frequent_questions/ar/bun_set_up.md +1 -2
- package/frequent_questions/ar/customized_locale_list.md +1 -2
- package/frequent_questions/ar/domain_routing.md +1 -2
- package/frequent_questions/ar/esbuild_error.md +1 -2
- package/frequent_questions/ar/get_locale_cookie.md +1 -2
- package/frequent_questions/ar/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ar/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ar/static_rendering.md +1 -3
- package/frequent_questions/ar/translated_path_url.md +1 -2
- package/frequent_questions/ar/unknown_command.md +1 -2
- package/frequent_questions/de/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/de/array_as_content_declaration.md +1 -2
- package/frequent_questions/de/build_dictionaries.md +1 -2
- package/frequent_questions/de/build_error_CI_CD.md +1 -2
- package/frequent_questions/de/bun_set_up.md +1 -2
- package/frequent_questions/de/customized_locale_list.md +1 -2
- package/frequent_questions/de/domain_routing.md +1 -2
- package/frequent_questions/de/esbuild_error.md +1 -2
- package/frequent_questions/de/get_locale_cookie.md +1 -2
- package/frequent_questions/de/intlayer_command_undefined.md +1 -2
- package/frequent_questions/de/locale_incorect_in_url.md +1 -2
- package/frequent_questions/de/static_rendering.md +1 -3
- package/frequent_questions/de/translated_path_url.md +1 -2
- package/frequent_questions/de/unknown_command.md +1 -2
- package/frequent_questions/en/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/en/array_as_content_declaration.md +1 -2
- package/frequent_questions/en/build_dictionaries.md +1 -2
- package/frequent_questions/en/build_error_CI_CD.md +1 -2
- package/frequent_questions/en/bun_set_up.md +1 -2
- package/frequent_questions/en/customized_locale_list.md +1 -2
- package/frequent_questions/en/domain_routing.md +1 -2
- package/frequent_questions/en/esbuild_error.md +1 -2
- package/frequent_questions/en/get_locale_cookie.md +1 -2
- package/frequent_questions/en/intlayer_command_undefined.md +1 -2
- package/frequent_questions/en/locale_incorect_in_url.md +1 -2
- package/frequent_questions/en/static_rendering.md +1 -3
- package/frequent_questions/en/translated_path_url.md +1 -2
- package/frequent_questions/en/unknown_command.md +1 -2
- package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/en-GB/array_as_content_declaration.md +1 -2
- package/frequent_questions/en-GB/build_dictionaries.md +1 -2
- package/frequent_questions/en-GB/build_error_CI_CD.md +1 -2
- package/frequent_questions/en-GB/bun_set_up.md +1 -2
- package/frequent_questions/en-GB/customized_locale_list.md +1 -2
- package/frequent_questions/en-GB/domain_routing.md +1 -2
- package/frequent_questions/en-GB/esbuild_error.md +1 -2
- package/frequent_questions/en-GB/get_locale_cookie.md +1 -2
- package/frequent_questions/en-GB/intlayer_command_undefined.md +1 -2
- package/frequent_questions/en-GB/locale_incorect_in_url.md +1 -2
- package/frequent_questions/en-GB/static_rendering.md +1 -3
- package/frequent_questions/en-GB/translated_path_url.md +1 -2
- package/frequent_questions/en-GB/unknown_command.md +1 -2
- package/frequent_questions/es/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/es/array_as_content_declaration.md +1 -2
- package/frequent_questions/es/build_dictionaries.md +1 -2
- package/frequent_questions/es/build_error_CI_CD.md +1 -2
- package/frequent_questions/es/bun_set_up.md +1 -2
- package/frequent_questions/es/customized_locale_list.md +1 -2
- package/frequent_questions/es/domain_routing.md +1 -2
- package/frequent_questions/es/esbuild_error.md +1 -2
- package/frequent_questions/es/get_locale_cookie.md +1 -2
- package/frequent_questions/es/intlayer_command_undefined.md +1 -2
- package/frequent_questions/es/locale_incorect_in_url.md +1 -2
- package/frequent_questions/es/static_rendering.md +1 -3
- package/frequent_questions/es/translated_path_url.md +1 -2
- package/frequent_questions/es/unknown_command.md +1 -2
- package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/fr/array_as_content_declaration.md +1 -2
- package/frequent_questions/fr/build_dictionaries.md +1 -2
- package/frequent_questions/fr/build_error_CI_CD.md +1 -2
- package/frequent_questions/fr/bun_set_up.md +1 -2
- package/frequent_questions/fr/customized_locale_list.md +1 -2
- package/frequent_questions/fr/domain_routing.md +1 -2
- package/frequent_questions/fr/esbuild_error.md +1 -2
- package/frequent_questions/fr/get_locale_cookie.md +1 -2
- package/frequent_questions/fr/intlayer_command_undefined.md +1 -2
- package/frequent_questions/fr/locale_incorect_in_url.md +1 -2
- package/frequent_questions/fr/static_rendering.md +1 -3
- package/frequent_questions/fr/translated_path_url.md +1 -2
- package/frequent_questions/fr/unknown_command.md +1 -2
- package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/hi/array_as_content_declaration.md +1 -2
- package/frequent_questions/hi/build_dictionaries.md +1 -2
- package/frequent_questions/hi/build_error_CI_CD.md +1 -2
- package/frequent_questions/hi/bun_set_up.md +1 -2
- package/frequent_questions/hi/customized_locale_list.md +1 -2
- package/frequent_questions/hi/domain_routing.md +1 -2
- package/frequent_questions/hi/esbuild_error.md +1 -2
- package/frequent_questions/hi/get_locale_cookie.md +1 -2
- package/frequent_questions/hi/intlayer_command_undefined.md +1 -2
- package/frequent_questions/hi/locale_incorect_in_url.md +1 -2
- package/frequent_questions/hi/static_rendering.md +1 -3
- package/frequent_questions/hi/translated_path_url.md +1 -2
- package/frequent_questions/hi/unknown_command.md +1 -2
- package/frequent_questions/id/SSR_Next_no_[locale].md +104 -0
- package/frequent_questions/id/array_as_content_declaration.md +71 -0
- package/frequent_questions/id/build_dictionaries.md +58 -0
- package/frequent_questions/id/build_error_CI_CD.md +74 -0
- package/frequent_questions/id/bun_set_up.md +53 -0
- package/frequent_questions/id/customized_locale_list.md +64 -0
- package/frequent_questions/id/domain_routing.md +113 -0
- package/frequent_questions/id/esbuild_error.md +29 -0
- package/frequent_questions/id/get_locale_cookie.md +142 -0
- package/frequent_questions/id/intlayer_command_undefined.md +155 -0
- package/frequent_questions/id/locale_incorect_in_url.md +73 -0
- package/frequent_questions/id/static_rendering.md +44 -0
- package/frequent_questions/id/translated_path_url.md +55 -0
- package/frequent_questions/id/unknown_command.md +97 -0
- package/frequent_questions/it/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/it/array_as_content_declaration.md +1 -2
- package/frequent_questions/it/build_dictionaries.md +1 -2
- package/frequent_questions/it/build_error_CI_CD.md +1 -2
- package/frequent_questions/it/bun_set_up.md +1 -2
- package/frequent_questions/it/customized_locale_list.md +1 -2
- package/frequent_questions/it/domain_routing.md +1 -2
- package/frequent_questions/it/esbuild_error.md +1 -2
- package/frequent_questions/it/get_locale_cookie.md +1 -2
- package/frequent_questions/it/intlayer_command_undefined.md +1 -2
- package/frequent_questions/it/locale_incorect_in_url.md +1 -2
- package/frequent_questions/it/static_rendering.md +1 -3
- package/frequent_questions/it/translated_path_url.md +1 -2
- package/frequent_questions/it/unknown_command.md +1 -2
- package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ja/array_as_content_declaration.md +1 -2
- package/frequent_questions/ja/build_dictionaries.md +1 -2
- package/frequent_questions/ja/build_error_CI_CD.md +1 -2
- package/frequent_questions/ja/bun_set_up.md +1 -2
- package/frequent_questions/ja/customized_locale_list.md +1 -2
- package/frequent_questions/ja/domain_routing.md +1 -2
- package/frequent_questions/ja/esbuild_error.md +1 -2
- package/frequent_questions/ja/get_locale_cookie.md +1 -2
- package/frequent_questions/ja/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ja/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ja/static_rendering.md +1 -3
- package/frequent_questions/ja/translated_path_url.md +1 -2
- package/frequent_questions/ja/unknown_command.md +1 -2
- package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ko/array_as_content_declaration.md +1 -2
- package/frequent_questions/ko/build_dictionaries.md +1 -2
- package/frequent_questions/ko/build_error_CI_CD.md +1 -2
- package/frequent_questions/ko/bun_set_up.md +1 -2
- package/frequent_questions/ko/customized_locale_list.md +1 -2
- package/frequent_questions/ko/domain_routing.md +1 -2
- package/frequent_questions/ko/esbuild_error.md +1 -2
- package/frequent_questions/ko/get_locale_cookie.md +1 -2
- package/frequent_questions/ko/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ko/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ko/static_rendering.md +1 -3
- package/frequent_questions/ko/translated_path_url.md +1 -2
- package/frequent_questions/ko/unknown_command.md +1 -2
- package/frequent_questions/pl/SSR_Next_no_[locale].md +104 -0
- package/frequent_questions/pl/array_as_content_declaration.md +71 -0
- package/frequent_questions/pl/build_dictionaries.md +58 -0
- package/frequent_questions/pl/build_error_CI_CD.md +74 -0
- package/frequent_questions/pl/bun_set_up.md +54 -0
- package/frequent_questions/pl/customized_locale_list.md +64 -0
- package/frequent_questions/pl/domain_routing.md +113 -0
- package/frequent_questions/pl/esbuild_error.md +29 -0
- package/frequent_questions/pl/get_locale_cookie.md +142 -0
- package/frequent_questions/pl/intlayer_command_undefined.md +155 -0
- package/frequent_questions/pl/locale_incorect_in_url.md +73 -0
- package/frequent_questions/pl/static_rendering.md +44 -0
- package/frequent_questions/pl/translated_path_url.md +55 -0
- package/frequent_questions/pl/unknown_command.md +97 -0
- package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/pt/array_as_content_declaration.md +1 -2
- package/frequent_questions/pt/build_dictionaries.md +1 -2
- package/frequent_questions/pt/build_error_CI_CD.md +1 -2
- package/frequent_questions/pt/bun_set_up.md +1 -2
- package/frequent_questions/pt/customized_locale_list.md +1 -2
- package/frequent_questions/pt/domain_routing.md +1 -2
- package/frequent_questions/pt/esbuild_error.md +1 -2
- package/frequent_questions/pt/get_locale_cookie.md +1 -2
- package/frequent_questions/pt/intlayer_command_undefined.md +1 -2
- package/frequent_questions/pt/locale_incorect_in_url.md +1 -2
- package/frequent_questions/pt/static_rendering.md +1 -3
- package/frequent_questions/pt/translated_path_url.md +1 -2
- package/frequent_questions/pt/unknown_command.md +1 -2
- package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/ru/array_as_content_declaration.md +1 -2
- package/frequent_questions/ru/build_dictionaries.md +1 -2
- package/frequent_questions/ru/build_error_CI_CD.md +1 -2
- package/frequent_questions/ru/bun_set_up.md +1 -2
- package/frequent_questions/ru/customized_locale_list.md +1 -2
- package/frequent_questions/ru/domain_routing.md +1 -2
- package/frequent_questions/ru/esbuild_error.md +1 -2
- package/frequent_questions/ru/get_locale_cookie.md +1 -2
- package/frequent_questions/ru/intlayer_command_undefined.md +1 -2
- package/frequent_questions/ru/locale_incorect_in_url.md +1 -2
- package/frequent_questions/ru/static_rendering.md +1 -2
- package/frequent_questions/ru/translated_path_url.md +1 -2
- package/frequent_questions/ru/unknown_command.md +1 -2
- package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/tr/array_as_content_declaration.md +1 -2
- package/frequent_questions/tr/build_dictionaries.md +1 -2
- package/frequent_questions/tr/build_error_CI_CD.md +1 -2
- package/frequent_questions/tr/bun_set_up.md +1 -2
- package/frequent_questions/tr/customized_locale_list.md +1 -2
- package/frequent_questions/tr/domain_routing.md +1 -2
- package/frequent_questions/tr/esbuild_error.md +1 -2
- package/frequent_questions/tr/get_locale_cookie.md +1 -2
- package/frequent_questions/tr/intlayer_command_undefined.md +1 -2
- package/frequent_questions/tr/locale_incorect_in_url.md +1 -2
- package/frequent_questions/tr/static_rendering.md +1 -2
- package/frequent_questions/tr/translated_path_url.md +1 -2
- package/frequent_questions/tr/unknown_command.md +1 -2
- package/frequent_questions/vi/SSR_Next_no_[locale].md +106 -0
- package/frequent_questions/vi/array_as_content_declaration.md +71 -0
- package/frequent_questions/vi/build_dictionaries.md +58 -0
- package/frequent_questions/vi/build_error_CI_CD.md +74 -0
- package/frequent_questions/vi/bun_set_up.md +53 -0
- package/frequent_questions/vi/customized_locale_list.md +64 -0
- package/frequent_questions/vi/domain_routing.md +113 -0
- package/frequent_questions/vi/esbuild_error.md +29 -0
- package/frequent_questions/vi/get_locale_cookie.md +142 -0
- package/frequent_questions/vi/intlayer_command_undefined.md +155 -0
- package/frequent_questions/vi/locale_incorect_in_url.md +73 -0
- package/frequent_questions/vi/static_rendering.md +44 -0
- package/frequent_questions/vi/translated_path_url.md +55 -0
- package/frequent_questions/vi/unknown_command.md +97 -0
- package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -2
- package/frequent_questions/zh/array_as_content_declaration.md +1 -2
- package/frequent_questions/zh/build_dictionaries.md +1 -2
- package/frequent_questions/zh/build_error_CI_CD.md +1 -2
- package/frequent_questions/zh/bun_set_up.md +1 -2
- package/frequent_questions/zh/customized_locale_list.md +1 -2
- package/frequent_questions/zh/domain_routing.md +1 -2
- package/frequent_questions/zh/esbuild_error.md +1 -2
- package/frequent_questions/zh/get_locale_cookie.md +1 -2
- package/frequent_questions/zh/intlayer_command_undefined.md +1 -2
- package/frequent_questions/zh/locale_incorect_in_url.md +1 -2
- package/frequent_questions/zh/static_rendering.md +1 -3
- package/frequent_questions/zh/translated_path_url.md +1 -2
- package/frequent_questions/zh/unknown_command.md +1 -2
- package/legal/id/privacy_notice.md +83 -0
- package/legal/id/terms_of_service.md +55 -0
- package/legal/pl/privacy_notice.md +83 -0
- package/legal/pl/terms_of_service.md +55 -0
- package/legal/vi/privacy_notice.md +83 -0
- package/legal/vi/terms_of_service.md +55 -0
- package/package.json +19 -18
- package/src/generated/blog.entry.ts +38 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Plan rozwoju
|
|
5
|
+
description: Odkryj plan rozwoju Intlayer. Zobacz wszystkie funkcje, które Intlayer zaimplementował i planuje zaimplementować.
|
|
6
|
+
keywords:
|
|
7
|
+
- Plan rozwoju
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internacjonalizacja
|
|
10
|
+
- CMS
|
|
11
|
+
- System zarządzania treścią
|
|
12
|
+
- Edytor wizualny
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- roadmap
|
|
16
|
+
history:
|
|
17
|
+
- version: 5.5.10
|
|
18
|
+
date: 2025-06-30
|
|
19
|
+
changes: Dodano wsparcie dla Preact i Nuxt, serwer MCP, aktualizacja CLI
|
|
20
|
+
- version: 5.5.11
|
|
21
|
+
date: 2025-06-29
|
|
22
|
+
changes: Dodano polecenia `docs`
|
|
23
|
+
- version: 5.5.10
|
|
24
|
+
date: 2025-06-29
|
|
25
|
+
changes: Inicjalizacja historii
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Intlayer: Przegląd funkcji i plan rozwoju
|
|
29
|
+
|
|
30
|
+
Intlayer to rozwiązanie do zarządzania treścią i internacjonalizacji, zaprojektowane tak, aby usprawnić sposób deklarowania, zarządzania i aktualizacji treści w Twoich aplikacjach. Oferuje potężne funkcje, takie jak scentralizowana lub rozproszona deklaracja treści, rozbudowane opcje internacjonalizacji, wsparcie dla Markdown, renderowanie warunkowe, integrację z TypeScript/JavaScript/JSON i wiele więcej. Poniżej znajduje się kompleksowy przegląd tego, co Intlayer obecnie oferuje, a także nadchodzące funkcje w planie rozwoju.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Spis treści
|
|
35
|
+
|
|
36
|
+
<TOC/>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Obecne funkcje
|
|
41
|
+
|
|
42
|
+
### 1. Deklaracja treści
|
|
43
|
+
|
|
44
|
+
#### Scentralizowana lub rozproszona
|
|
45
|
+
|
|
46
|
+
- **Scentralizowana**: Deklaruj całą swoją treść w jednym, dużym pliku u podstawy aplikacji, podobnie jak w i18next, aby zarządzać wszystkim w jednym miejscu.
|
|
47
|
+
- **Rozproszona**: Alternatywnie podziel swoją treść na osobne pliki na poziomie komponentów lub funkcji, aby ułatwić utrzymanie. Dzięki temu Twoja treść pozostaje blisko odpowiedniego kodu (komponenty, testy, Storybook itp.). Usunięcie komponentu powoduje również usunięcie powiązanej z nim treści, zapobiegając pozostawianiu niepotrzebnych danych zaśmiecających bazę kodu.
|
|
48
|
+
|
|
49
|
+
> Zasoby:
|
|
50
|
+
>
|
|
51
|
+
> - [Deklaracja treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md)
|
|
52
|
+
|
|
53
|
+
### 2. Internacjonalizacja
|
|
54
|
+
|
|
55
|
+
- Wsparcie dla **230 języków i lokalizacji** (w tym warianty regionalne, takie jak francuski (Francja), angielski (Kanada), angielski (Wielka Brytania), portugalski (Portugalia) itd.).
|
|
56
|
+
- Łatwe zarządzanie tłumaczeniami dla wszystkich tych lokalizacji z jednego miejsca.
|
|
57
|
+
|
|
58
|
+
> Zasoby:
|
|
59
|
+
>
|
|
60
|
+
> - [Internacjonalizacja](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/translation.md)
|
|
61
|
+
|
|
62
|
+
### 3. Wsparcie Markdown
|
|
63
|
+
|
|
64
|
+
- Deklaruj treść za pomocą **Markdown**, co pozwala automatycznie formatować tekst za pomocą akapitów, nagłówków, linków i innych elementów.
|
|
65
|
+
- Idealne do wpisów na blogu, artykułów, stron dokumentacji lub każdego scenariusza, w którym potrzebne jest formatowanie tekstu bogatego.
|
|
66
|
+
|
|
67
|
+
> Zasoby:
|
|
68
|
+
>
|
|
69
|
+
> - [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/markdown.md)
|
|
70
|
+
|
|
71
|
+
### 4. Wsparcie plików zewnętrznych
|
|
72
|
+
|
|
73
|
+
- Importuj treści z plików zewnętrznych w formacie tekstowym, takich jak TXT, HTML, JSON, YAML lub CSV.
|
|
74
|
+
- Użyj funkcji `file` w Intlayer, aby osadzić zawartość pliku zewnętrznego w słowniku, zapewniając płynną integrację z Intlayer Visual Editor i CMS.
|
|
75
|
+
- Obsługuje dynamiczne aktualizacje treści, co oznacza, że gdy plik źródłowy zostanie zmodyfikowany, treść jest automatycznie aktualizowana w Intlayer.
|
|
76
|
+
- Umożliwia zarządzanie treściami wielojęzycznymi poprzez dynamiczne łączenie plików Markdown specyficznych dla języka.
|
|
77
|
+
|
|
78
|
+
> Zasoby:
|
|
79
|
+
>
|
|
80
|
+
> - [Osadzanie treści z plików](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/file.md)
|
|
81
|
+
|
|
82
|
+
### 5. Dynamiczna treść i pobieranie funkcji
|
|
83
|
+
|
|
84
|
+
Intlayer oferuje różne metody wstawiania i zarządzania dynamiczną treścią, zapewniając elastyczność i adaptacyjność w dostarczaniu treści. Obejmuje to funkcje do dynamicznego wstawiania treści, renderowania warunkowego, enumeracji, zagnieżdżania oraz pobierania funkcji.
|
|
85
|
+
|
|
86
|
+
1. Dynamiczne wstawianie treści
|
|
87
|
+
|
|
88
|
+
Użyj funkcji insert, aby zdefiniować treść z miejscami na dane ({{name}}, {{age}} itd.).
|
|
89
|
+
|
|
90
|
+
Umożliwia tworzenie treści podobnych do szablonów, które dostosowują się na podstawie danych wprowadzonych przez użytkownika, odpowiedzi API lub innych dynamicznych źródeł danych.
|
|
91
|
+
|
|
92
|
+
Działa bezproblemowo z konfiguracjami TypeScript, ESM, CommonJS oraz JSON.
|
|
93
|
+
|
|
94
|
+
Łatwo integruje się z React Intlayer i Next Intlayer za pomocą useIntlayer.
|
|
95
|
+
|
|
96
|
+
2. Renderowanie warunkowe
|
|
97
|
+
|
|
98
|
+
Definiuj treści, które dostosowują się na podstawie warunków specyficznych dla użytkownika, takich jak język czy status uwierzytelnienia.
|
|
99
|
+
|
|
100
|
+
Twórz spersonalizowane doświadczenia bez konieczności duplikowania treści w wielu plikach.
|
|
101
|
+
|
|
102
|
+
3. Enumeracja i pluralizacja
|
|
103
|
+
|
|
104
|
+
Użyj funkcji enu, aby definiować warianty treści w oparciu o wartości liczbowe, zakresy lub niestandardowe klucze.
|
|
105
|
+
|
|
106
|
+
Zapewnia automatyczny wybór poprawnej frazy na podstawie podanej wartości.
|
|
107
|
+
|
|
108
|
+
Obsługuje reguły porządkowania, gwarantując przewidywalne zachowanie.
|
|
109
|
+
|
|
110
|
+
4. Zagnieżdżanie i odwoływanie się do podtreści
|
|
111
|
+
|
|
112
|
+
Używaj funkcji nest, aby odwoływać się do i ponownie wykorzystywać treści z innego słownika, zmniejszając duplikację.
|
|
113
|
+
|
|
114
|
+
Wspiera zarządzanie treściami w sposób strukturalny i hierarchiczny dla lepszej utrzymalności.
|
|
115
|
+
|
|
116
|
+
5. Pobieranie funkcji
|
|
117
|
+
|
|
118
|
+
Intlayer pozwala deklarować treści jako funkcje, umożliwiając zarówno synchroniczne, jak i asynchroniczne pobieranie treści.
|
|
119
|
+
|
|
120
|
+
Funkcje synchroniczne: Treść jest generowana dynamicznie w czasie budowania.
|
|
121
|
+
|
|
122
|
+
Funkcje asynchroniczne: Pobierają dane dynamicznie z zewnętrznych źródeł (np. API, bazy danych).
|
|
123
|
+
|
|
124
|
+
Integracja: Działa z TypeScript, ESM i CommonJS, ale nie jest wspierana w plikach JSON ani zdalnych plikach treści.
|
|
125
|
+
|
|
126
|
+
### 6. Format deklaracji treści
|
|
127
|
+
|
|
128
|
+
Intlayer obsługuje **TypeScript** (również JavaScript) oraz **JSON** do deklarowania treści.
|
|
129
|
+
|
|
130
|
+
- **TypeScript**:
|
|
131
|
+
- Zapewnia poprawną strukturę treści oraz brak brakujących tłumaczeń.
|
|
132
|
+
- Oferuje rygorystyczne lub bardziej elastyczne tryby walidacji.
|
|
133
|
+
- Umożliwia dynamiczne pobieranie danych z zmiennych, funkcji lub zewnętrznych API.
|
|
134
|
+
|
|
135
|
+
- **JSON**:
|
|
136
|
+
- Ułatwia integrację z zewnętrznymi narzędziami (np. edytorami wizualnymi) dzięki swojemu ustandaryzowanemu formatowi.
|
|
137
|
+
|
|
138
|
+
> Zasoby:
|
|
139
|
+
>
|
|
140
|
+
> - [Formaty deklaracji treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md)
|
|
141
|
+
|
|
142
|
+
### 7. Czyszczenie, optymalizacja pakietu i dynamiczne importy
|
|
143
|
+
|
|
144
|
+
- Intlayer integruje wtyczki `Babel` i `SWC`, aby zoptymalizować twój pakiet i poprawić wydajność. Zastępuje importy, pozwalając na importowanie tylko tych słowników, które są używane w pakiecie.
|
|
145
|
+
- Aktywując tę opcję, Intlayer pozwala również na dynamiczne importowanie zawartości słownika tylko dla bieżącej lokalizacji.
|
|
146
|
+
|
|
147
|
+
> Zasoby:
|
|
148
|
+
>
|
|
149
|
+
> - [Konfiguracja budowania](https://intlayer.org/doc/concept/configuration#build-configuration)
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Integracja z Frameworkami i Środowiskami
|
|
154
|
+
|
|
155
|
+
### 1. Next.js
|
|
156
|
+
|
|
157
|
+
#### a. Komponenty serwera i klienta
|
|
158
|
+
|
|
159
|
+
- Zapewnia **jednolite podejście do zarządzania treścią** zarówno dla komponentów serwera, jak i klienta.
|
|
160
|
+
- Oferuje wbudowany kontekst dla komponentów serwera, upraszczając implementację w porównaniu z innymi rozwiązaniami.
|
|
161
|
+
|
|
162
|
+
#### b. Metadane, mapy witryn i robots.txt
|
|
163
|
+
|
|
164
|
+
- Dynamicznie pobiera i wstrzykuje treści, aby generować metadane, mapy witryn lub pliki `robots.txt`.
|
|
165
|
+
|
|
166
|
+
#### c. Middleware
|
|
167
|
+
|
|
168
|
+
- Dodaj middleware, aby **przekierowywać użytkowników** do treści na podstawie ich preferowanego języka.
|
|
169
|
+
|
|
170
|
+
#### d. Kompatybilność z Turbopack i Webpack
|
|
171
|
+
|
|
172
|
+
- W pełni kompatybilny z nowym Turbopack Next.js oraz tradycyjnym Webpackiem.
|
|
173
|
+
|
|
174
|
+
> Zasoby:
|
|
175
|
+
>
|
|
176
|
+
> - [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nextjs_15.md)
|
|
177
|
+
|
|
178
|
+
### 2. Vite
|
|
179
|
+
|
|
180
|
+
- Podobnie jak w Next.js, możesz zintegrować Intlayer z Vite i użyć **middleware** do przekierowywania użytkowników do treści na podstawie ich preferowanego języka.
|
|
181
|
+
|
|
182
|
+
> Zasoby:
|
|
183
|
+
>
|
|
184
|
+
> - [Vite](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_vite+react.md)
|
|
185
|
+
|
|
186
|
+
### 3. Express
|
|
187
|
+
|
|
188
|
+
- Zarządzaj treścią i internacjonalizuj usługi backendowe oparte na Express.
|
|
189
|
+
- Personalizuj e-maile, komunikaty o błędach, powiadomienia push i inne za pomocą zlokalizowanego tekstu.
|
|
190
|
+
|
|
191
|
+
> Zasoby:
|
|
192
|
+
>
|
|
193
|
+
> - [Express](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_express.md)
|
|
194
|
+
|
|
195
|
+
### 4. React Native
|
|
196
|
+
|
|
197
|
+
- Zintegruj Intlayer z React Native, aby zarządzać treściami i internacjonalizować swoje aplikacje mobilne.
|
|
198
|
+
- Wspiera platformy iOS oraz Android.
|
|
199
|
+
|
|
200
|
+
> Zasoby:
|
|
201
|
+
>
|
|
202
|
+
> - [React Native](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_react_native.md)
|
|
203
|
+
|
|
204
|
+
### 5. Lynx
|
|
205
|
+
|
|
206
|
+
- Zintegruj Intlayer z Lynx, aby zarządzać treściami i internacjonalizować swoje aplikacje mobilne.
|
|
207
|
+
- Wspiera platformy iOS oraz Android.
|
|
208
|
+
|
|
209
|
+
> Zasoby:
|
|
210
|
+
>
|
|
211
|
+
> - [Lynx](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_lynx.md)
|
|
212
|
+
|
|
213
|
+
### 6. Vue
|
|
214
|
+
|
|
215
|
+
- Zintegruj Intlayer z Vue, aby zarządzać treściami i internacjonalizować swoje aplikacje Vite / Vue.js.
|
|
216
|
+
|
|
217
|
+
> Zasoby:
|
|
218
|
+
>
|
|
219
|
+
> - [Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_vue.md)
|
|
220
|
+
|
|
221
|
+
### 7. Nuxt
|
|
222
|
+
|
|
223
|
+
- Zintegruj Intlayer z Nuxt, aby zarządzać treściami i internacjonalizować swoje aplikacje Nuxt / Vue.js.
|
|
224
|
+
- Obsługuje zarówno komponenty po stronie serwera, jak i klienta.
|
|
225
|
+
- Integruje routing i middleware, aby przekierowywać użytkowników do treści na podstawie ich preferowanego języka.
|
|
226
|
+
|
|
227
|
+
> Zasoby:
|
|
228
|
+
>
|
|
229
|
+
> - [Nuxt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nuxt.md)
|
|
230
|
+
|
|
231
|
+
### 8. Preact
|
|
232
|
+
|
|
233
|
+
- Zintegruj Intlayer z Preact, aby zarządzać treściami i internacjonalizować swoje aplikacje Preact.
|
|
234
|
+
|
|
235
|
+
> Zasoby:
|
|
236
|
+
>
|
|
237
|
+
> - [Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_preact.md)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Edytory wizualne i CMS
|
|
242
|
+
|
|
243
|
+
### 1. Lokalny edytor wizualny
|
|
244
|
+
|
|
245
|
+
- **Darmowy, lokalny edytor wizualny**, który pozwala na edycję treści aplikacji poprzez bezpośredni wybór elementów na stronie.
|
|
246
|
+
- Integruje funkcje AI, które pomagają:
|
|
247
|
+
- Generować lub poprawiać tłumaczenia
|
|
248
|
+
- Sprawdzać składnię i pisownię
|
|
249
|
+
- Sugerować ulepszenia
|
|
250
|
+
- Może być hostowany lokalnie lub wdrożony na zdalnym serwerze.
|
|
251
|
+
|
|
252
|
+
> Zasoby:
|
|
253
|
+
>
|
|
254
|
+
> - [Edytor wizualny](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_visual_editor.md)
|
|
255
|
+
|
|
256
|
+
### 2. Intlayer CMS (Zdalny)
|
|
257
|
+
|
|
258
|
+
- **Hostowane rozwiązanie CMS**, które pozwala zarządzać treściami aplikacji online, bez konieczności ingerencji w bazę kodu.
|
|
259
|
+
- Oferuje funkcje wspomagane przez AI do deklarowania treści, zarządzania tłumaczeniami oraz poprawiania błędów składniowych i ortograficznych.
|
|
260
|
+
- Umożliwia interakcję z treściami poprzez interfejs Twojej działającej aplikacji.
|
|
261
|
+
|
|
262
|
+
> Zasoby:
|
|
263
|
+
>
|
|
264
|
+
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md)
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Rozszerzenia IDE
|
|
269
|
+
|
|
270
|
+
- Rozszerzenia dla głównych IDE, które zapewniają **graficzny interfejs** do zarządzania lokalnymi i zdalnymi tłumaczeniami.
|
|
271
|
+
- Funkcje mogą obejmować automatyczne generowanie plików deklaracji treści dla komponentów, bezpośrednią integrację z Intlayer CMS oraz walidację w czasie rzeczywistym.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Serwer MCP
|
|
276
|
+
|
|
277
|
+
- **Serwer MCP**, który pozwala zarządzać treścią i tłumaczeniami za pomocą zintegrowanego narzędzia w Twoim IDE.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Intlayer CLI
|
|
282
|
+
|
|
283
|
+
- **Tłumaczenie i generowanie plików**: Przeprowadzaj audyty plików z treścią, aby wygenerować brakujące tłumaczenia i przejrzeć niespójności.
|
|
284
|
+
- **Interakcja zdalna**: Wysyłaj lokalną treść do zdalnego CMS lub pobieraj zdalną treść, aby zintegrować ją z lokalną aplikacją.
|
|
285
|
+
- **Tłumaczenie i przegląd dokumentacji**: Tłumacz i przeglądaj swoją dokumentację / pliki itp.
|
|
286
|
+
|
|
287
|
+
> Zasoby:
|
|
288
|
+
>
|
|
289
|
+
> - [CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_cli.md)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Środowiska
|
|
294
|
+
|
|
295
|
+
- Używaj **zmiennych środowiskowych**, aby konfigurować Intlayer inaczej w środowiskach produkcyjnych, testowych i lokalnych.
|
|
296
|
+
- Określ, który edytor wizualny lub zdalny projekt CMS ma być używany w zależności od środowiska.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Gorące aktualizacje treści
|
|
301
|
+
|
|
302
|
+
- Korzystając ze zdalnych słowników i Intlayer CMS, możesz **aktualizować treść aplikacji na bieżąco**, bez konieczności ponownego wdrażania.
|
|
303
|
+
|
|
304
|
+
> Zasoby:
|
|
305
|
+
>
|
|
306
|
+
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md)
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Nadchodzące funkcje
|
|
311
|
+
|
|
312
|
+
### 1. Testy A/B i personalizacja
|
|
313
|
+
|
|
314
|
+
- **Testowanie wielowariantowe**: Testuj różne wersje danego fragmentu treści, aby zobaczyć, która działa najlepiej (np. wyższy wskaźnik kliknięć).
|
|
315
|
+
- **Personalizacja oparta na danych**: Wyświetlaj różne treści w zależności od demografii użytkownika (płeć, wiek, lokalizacja itp.) lub innych wzorców zachowań.
|
|
316
|
+
- **Automatyczna iteracja**: Pozwól AI automatycznie testować wiele wersji i wybrać najlepszą lub zasugerować opcje do zatwierdzenia przez administratora.
|
|
317
|
+
|
|
318
|
+
### 2. Wersjonowanie
|
|
319
|
+
|
|
320
|
+
- Przywracaj poprzednie wersje swoich treści dzięki **wersjonowaniu zawartości**.
|
|
321
|
+
- Śledź zmiany w czasie i w razie potrzeby cofaj się do wcześniejszych stanów.
|
|
322
|
+
|
|
323
|
+
### 3. Automatyczne tłumaczenie
|
|
324
|
+
|
|
325
|
+
- Dla użytkowników zdalnego CMS, **generowanie tłumaczeń jednym kliknięciem** dla dowolnego obsługiwanego języka.
|
|
326
|
+
- System generowałby tłumaczenia w tle, a następnie prosił o ich zatwierdzenie lub edycję.
|
|
327
|
+
|
|
328
|
+
### 4. Ulepszenia SEO
|
|
329
|
+
|
|
330
|
+
- Narzędzia do **analizy słów kluczowych**, intencji wyszukiwania użytkowników oraz pojawiających się trendów.
|
|
331
|
+
- Sugestie ulepszonej treści dla lepszych pozycji w rankingach oraz monitorowanie długoterminowej wydajności.
|
|
332
|
+
|
|
333
|
+
### 5. Zgodność z większą liczbą frameworków
|
|
334
|
+
|
|
335
|
+
- Trwają prace nad wsparciem dla **Solid, Svelte, Angular** i innych.
|
|
336
|
+
- Celem jest uczynienie Intlayer kompatybilnym z **dowolną aplikacją opartą na JavaScript**.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Podsumowanie
|
|
341
|
+
|
|
342
|
+
- System generowałby tłumaczenia w tle, a następnie prosiłby Cię o ich zatwierdzenie lub edycję.
|
|
343
|
+
|
|
344
|
+
### 4. Ulepszenia SEO
|
|
345
|
+
|
|
346
|
+
- Narzędzia do **analizy słów kluczowych**, intencji wyszukiwania użytkowników oraz pojawiających się trendów.
|
|
347
|
+
- Sugestie ulepszonej treści dla lepszych pozycji w rankingach oraz śledzenie długoterminowej wydajności.
|
|
348
|
+
|
|
349
|
+
### 5. Kompatybilność z większą liczbą frameworków
|
|
350
|
+
|
|
351
|
+
- Trwają prace nad wsparciem dla **Solid, Svelte, Angular** i innych.
|
|
352
|
+
- Celem jest uczynienie Intlayer kompatybilnym z **każdą aplikacją opartą na JavaScript**.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Podsumowanie
|
|
357
|
+
|
|
358
|
+
Intlayer ma na celu być kompleksowym rozwiązaniem do zarządzania treścią i internacjonalizacji. Skupia się na elastyczności (pliki scentralizowane lub rozproszone), szerokim wsparciu językowym, łatwej integracji z nowoczesnymi frameworkami i bundlerami oraz potężnych funkcjach opartych na sztucznej inteligencji. W miarę pojawiania się nowych możliwości, takich jak testy A/B, wersjonowanie i automatyczne tłumaczenia, Intlayer będzie nadal upraszczał przepływy pracy z treścią i podnosił jakość doświadczeń użytkowników na różnych platformach.
|
|
359
|
+
|
|
360
|
+
Bądź na bieżąco z nadchodzącymi wydaniami i śmiało eksploruj istniejące funkcje, aby zobaczyć, jak Intlayer może pomóc w centralizacji i optymalizacji procesów zarządzania treścią już dziś!
|
|
361
|
+
|
|
362
|
+
---
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-10-05
|
|
4
|
+
title: Testowanie Twoich treści
|
|
5
|
+
description: Odkryj, jak testować swoje treści za pomocą Intlayer.
|
|
6
|
+
keywords:
|
|
7
|
+
- Testowanie
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internacjonalizacja
|
|
10
|
+
- CMS
|
|
11
|
+
- System Zarządzania Treścią
|
|
12
|
+
- Edytor Wizualny
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- testing
|
|
16
|
+
history:
|
|
17
|
+
- version: 6.0.1
|
|
18
|
+
date: 2025-10-05
|
|
19
|
+
changes: Uczynienie testu asynchronicznym i dodanie opcji build
|
|
20
|
+
- version: 6.0.0
|
|
21
|
+
date: 2025-09-20
|
|
22
|
+
changes: Wprowadzenie testowania
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Testowanie Twoich treści
|
|
26
|
+
|
|
27
|
+
Ten przewodnik pokazuje, jak automatycznie weryfikować kompletność słowników, wykrywać brakujące tłumaczenia przed wdrożeniem oraz testować zlokalizowany interfejs użytkownika w Twojej aplikacji.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Co możesz testować
|
|
32
|
+
|
|
33
|
+
- **Brakujące tłumaczenia**: przerwij CI, jeśli w którymkolwiek słowniku brakuje wymaganych lokalizacji.
|
|
34
|
+
- **Renderowanie zlokalizowanego UI**: renderuj komponenty z określonym dostawcą lokalizacji i sprawdzaj widoczny tekst/atrybuty.
|
|
35
|
+
- **Audyt w czasie budowania**: uruchom szybki audyt lokalnie za pomocą CLI.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Szybki start: audyt przez CLI
|
|
40
|
+
|
|
41
|
+
Uruchom audyt z katalogu głównego projektu:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx intlayer content test
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Przydatne flagi:
|
|
48
|
+
|
|
49
|
+
- `--env-file [ścieżka]`: załaduj zmienne środowiskowe z pliku.
|
|
50
|
+
- `-e, --env [nazwa]`: wybierz profil środowiska.
|
|
51
|
+
- `--base-dir [ścieżka]`: ustaw katalog bazowy aplikacji do rozwiązywania ścieżek.
|
|
52
|
+
- `--verbose`: pokaż szczegółowe logi.
|
|
53
|
+
- `--prefix [etykieta]`: prefiksuj linie logów.
|
|
54
|
+
- `--build [build]`: zbuduj słowniki przed testowaniem, aby upewnić się, że zawartość jest aktualna. True wymusi budowanie, false pominie budowanie, undefined pozwoli użyć cache budowania.
|
|
55
|
+
|
|
56
|
+
Uwaga: CLI generuje szczegółowy raport, ale nie zwraca kodu błędu przy niepowodzeniach. Aby zabezpieczyć CI, dodaj test jednostkowy (poniżej), który sprawdza brak brakujących wymaganych lokalizacji.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Test programowy (Vitest/Jest)
|
|
61
|
+
|
|
62
|
+
Użyj API Intlayer CLI, aby sprawdzić, czy nie brakuje tłumaczeń dla wymaganych lokalizacji.
|
|
63
|
+
|
|
64
|
+
```ts fileName=i18n.test.ts
|
|
65
|
+
/* @vitest-environment node */
|
|
66
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
67
|
+
import { describe, expect, it } from "vitest";
|
|
68
|
+
|
|
69
|
+
describe("translations", () => {
|
|
70
|
+
it("has no missing required locales", async () => {
|
|
71
|
+
const result = await listMissingTranslations();
|
|
72
|
+
|
|
73
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
74
|
+
// Przydatne, gdy test nie przejdzie lokalnie lub w CI
|
|
75
|
+
console.log(result.missingTranslations);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Odpowiednik w Jest:
|
|
84
|
+
|
|
85
|
+
```ts fileName=i18n.test.ts
|
|
86
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
87
|
+
|
|
88
|
+
test("nie ma brakujących wymaganych lokalizacji", async () => {
|
|
89
|
+
const result = await listMissingTranslations();
|
|
90
|
+
|
|
91
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
92
|
+
// Przydatne, gdy test nie przejdzie lokalnie lub w CI
|
|
93
|
+
console.log(result.missingTranslations);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Jak to działa:
|
|
101
|
+
|
|
102
|
+
- Intlayer odczytuje Twoją konfigurację (locales, requiredLocales) oraz zadeklarowane słowniki, a następnie raportuje:
|
|
103
|
+
- `missingTranslations`: dla każdego klucza, które lokalizacje są brakujące i z którego pliku.
|
|
104
|
+
- `missingLocales`: zbiór wszystkich brakujących lokalizacji.
|
|
105
|
+
- `missingRequiredLocales`: podzbiór ograniczony do `requiredLocales` (lub wszystkich lokalizacji, jeśli `requiredLocales` nie jest ustawione).
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Testowanie lokalizowanego UI (React / Next.js)
|
|
110
|
+
|
|
111
|
+
Renderuj komponenty w ramach providera Intlayer i sprawdzaj widoczną zawartość.
|
|
112
|
+
|
|
113
|
+
Przykład React (Testing Library):
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
import { IntlayerProvider } from "react-intlayer/client";
|
|
117
|
+
import { render, screen } from "@testing-library/react";
|
|
118
|
+
import { MyComponent } from "./MyComponent";
|
|
119
|
+
|
|
120
|
+
test("renderuje lokalizowany tytuł w języku angielskim", () => {
|
|
121
|
+
render(
|
|
122
|
+
<IntlayerProvider locale="en-US">
|
|
123
|
+
<MyComponent />
|
|
124
|
+
</IntlayerProvider>
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
expect(screen.getByText("Expected English title")).toBeInTheDocument();
|
|
128
|
+
});
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Przykład Next.js (App Router): użyj wrappera frameworka:
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
import { IntlayerClientProvider } from "next-intlayer/client";
|
|
135
|
+
import { render, screen } from "@testing-library/react";
|
|
136
|
+
import { MyPage } from "./MyPage";
|
|
137
|
+
|
|
138
|
+
test("renders localized heading in French", () => {
|
|
139
|
+
render(
|
|
140
|
+
<IntlayerClientProvider locale="fr-FR">
|
|
141
|
+
<MyPage />
|
|
142
|
+
</IntlayerClientProvider>
|
|
143
|
+
);
|
|
144
|
+
expect(
|
|
145
|
+
screen.getByRole("heading", { name: "Titre attendu" })
|
|
146
|
+
).toBeInTheDocument();
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Wskazówki:
|
|
151
|
+
|
|
152
|
+
- Gdy potrzebujesz surowych wartości tekstowych dla atrybutów (np. `aria-label`), uzyskaj dostęp do pola `.value` zwracanego przez `useIntlayer` w React.
|
|
153
|
+
- Przechowuj słowniki razem z komponentami, aby ułatwić testy jednostkowe i sprzątanie.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Continuous Integration
|
|
158
|
+
|
|
159
|
+
Dodaj test, który przerwie budowanie, gdy braknie wymaganych tłumaczeń.
|
|
160
|
+
|
|
161
|
+
`package.json`:
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"scripts": {
|
|
166
|
+
"test:i18n": "vitest run -c"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Przykład GitHub Actions:
|
|
172
|
+
|
|
173
|
+
```yaml
|
|
174
|
+
name: CI
|
|
175
|
+
on: [push, pull_request]
|
|
176
|
+
jobs:
|
|
177
|
+
test:
|
|
178
|
+
runs-on: ubuntu-latest
|
|
179
|
+
steps:
|
|
180
|
+
- uses: actions/checkout@v4
|
|
181
|
+
- uses: actions/setup-node@v4
|
|
182
|
+
with:
|
|
183
|
+
node-version: 20
|
|
184
|
+
- run: npm ci
|
|
185
|
+
- run: npm run test:i18n
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Opcjonalnie: uruchom audyt CLI, aby uzyskać czytelne podsumowanie wraz z testami:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npx intlayer content test --verbose
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Rozwiązywanie problemów
|
|
197
|
+
|
|
198
|
+
- Upewnij się, że Twoja konfiguracja Intlayer definiuje `locales` oraz (opcjonalnie) `requiredLocales`.
|
|
199
|
+
- Jeśli Twoja aplikacja korzysta z dynamicznych lub zdalnych słowników, uruchamiaj testy w środowisku, gdzie słowniki są dostępne.
|
|
200
|
+
- W przypadku mieszanych monorepo, użyj `--base-dir`, aby wskazać CLI właściwy katalog główny aplikacji.
|
|
201
|
+
|
|
202
|
+
---
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-17
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
|
+
title: Oficjalne rozszerzenie VS Code
|
|
5
|
+
description: Dowiedz się, jak korzystać z rozszerzenia Intlayer w VS Code, aby usprawnić swój proces tworzenia oprogramowania. Szybko nawiguj między zlokalizowanymi treściami i efektywnie zarządzaj swoimi słownikami.
|
|
6
|
+
keywords:
|
|
7
|
+
- Rozszerzenie VS Code
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Lokalizacja
|
|
10
|
+
- Narzędzia programistyczne
|
|
11
|
+
- React
|
|
12
|
+
- Next.js
|
|
13
|
+
- JavaScript
|
|
14
|
+
- TypeScript
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- vs-code-extension
|
|
18
|
+
history:
|
|
19
|
+
- version: 6.1.5
|
|
20
|
+
date: 2025-09-30
|
|
21
|
+
changes: Dodano demo gif
|
|
22
|
+
- version: 6.1.0
|
|
23
|
+
date: 2025-09-24
|
|
24
|
+
changes: Dodano sekcję wyboru środowiska
|
|
25
|
+
- version: 6.0.0
|
|
26
|
+
date: 2025-09-22
|
|
27
|
+
changes: Karta Intlayer / Komendy Fill & Test
|
|
28
|
+
- version: 5.5.10
|
|
29
|
+
date: 2025-06-29
|
|
30
|
+
changes: Inicjalizacja historii
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Oficjalne rozszerzenie VS Code
|
|
34
|
+
|
|
35
|
+
## Przegląd
|
|
36
|
+
|
|
37
|
+
[**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) to oficjalne rozszerzenie Visual Studio Code dla **Intlayer**, zaprojektowane w celu poprawy doświadczenia programisty podczas pracy z zlokalizowanymi treściami w Twoich projektach.
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
Link do rozszerzenia: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
|
|
42
|
+
|
|
43
|
+
## Funkcje
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
- **Natychmiastowa Nawigacja** – Szybko przejdź do odpowiedniego pliku z treścią, klikając na klucz `useIntlayer`.
|
|
48
|
+
- **Wypełnianie Słowników** – Wypełnij słowniki treściami z Twojego projektu.
|
|
49
|
+
|
|
50
|
+

|
|
51
|
+
|
|
52
|
+
- **Łatwy dostęp do poleceń Intlayer** – Buduj, pushuj, pulluj, wypełniaj, testuj słowniki treści z łatwością.
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
- **Generator deklaracji treści** – Twórz pliki słowników treści w różnych formatach (`.ts`, `.esm`, `.cjs`, `.json`).
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
- **Testowanie słowników** – Testuj słowniki pod kątem brakujących tłumaczeń.
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
- **Aktualizuj swoje słowniki** – Utrzymuj swoje słowniki na bieżąco z najnowszą zawartością z Twojego projektu.
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
- **Zakładka Intlayer (pasek aktywności)** – Przeglądaj i wyszukuj słowniki z dedykowanej bocznej zakładki z paskiem narzędzi i akcjami kontekstowymi (Build, Pull, Push, Fill, Refresh, Test, Create File).
|
|
69
|
+
|
|
70
|
+
## Użytkowanie
|
|
71
|
+
|
|
72
|
+
### Szybka nawigacja
|
|
73
|
+
|
|
74
|
+
1. Otwórz projekt korzystający z **react-intlayer**.
|
|
75
|
+
2. Znajdź wywołanie `useIntlayer()`, na przykład:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
const content = useIntlayer("app");
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
3. **Command-click** (`⌘+Click` na macOS) lub **Ctrl+Click** (na Windows/Linux) na klucz (np. `"app"`).
|
|
82
|
+
4. VS Code automatycznie otworzy odpowiadający plik słownika, np. `src/app.content.ts`.
|
|
83
|
+
|
|
84
|
+
### Zakładka Intlayer (pasek aktywności)
|
|
85
|
+
|
|
86
|
+
Użyj bocznej zakładki do przeglądania i zarządzania słownikami:
|
|
87
|
+
|
|
88
|
+
- Otwórz ikonę Intlayer na pasku aktywności.
|
|
89
|
+
- W **Search** wpisuj, aby filtrować słowniki i wpisy w czasie rzeczywistym.
|
|
90
|
+
- W **Słownikach** przeglądaj środowiska, słowniki i pliki. Użyj paska narzędzi do operacji Build, Pull, Push, Fill, Refresh, Test oraz Create Dictionary File. Kliknij prawym przyciskiem myszy, aby uzyskać akcje kontekstowe (Pull/Push dla słowników, Fill dla plików). Aktualnie otwarty plik w edytorze jest automatycznie podświetlany w drzewie, gdy jest to możliwe.
|
|
91
|
+
|
|
92
|
+
### Dostęp do poleceń
|
|
93
|
+
|
|
94
|
+
Do poleceń możesz uzyskać dostęp z **Command Palette**.
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
- **Build Dictionaries**
|
|
101
|
+
- **Push Dictionaries**
|
|
102
|
+
- **Pull Dictionaries**
|
|
103
|
+
- **Fill Dictionaries**
|
|
104
|
+
- **Test Dictionaries**
|
|
105
|
+
- **Create Dictionary File**
|
|
106
|
+
|
|
107
|
+
### Ładowanie zmiennych środowiskowych
|
|
108
|
+
|
|
109
|
+
Intlayer zaleca przechowywanie kluczy API AI, a także identyfikatora klienta i sekretu Intlayer w zmiennych środowiskowych.
|
|
110
|
+
|
|
111
|
+
Rozszerzenie może ładować zmienne środowiskowe z twojego workspace, aby uruchamiać polecenia Intlayer z odpowiednim kontekstem.
|
|
112
|
+
|
|
113
|
+
- **Kolejność ładowania (wg priorytetu)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
|
|
114
|
+
- **Bez destrukcji**: istniejące wartości `process.env` nie są nadpisywane.
|
|
115
|
+
- **Zakres**: pliki są rozwiązywane względem skonfigurowanego katalogu bazowego (domyślnie root workspace).
|
|
116
|
+
|
|
117
|
+
#### Wybór aktywnego środowiska
|
|
118
|
+
|
|
119
|
+
- **Command Palette**: otwórz paletę i uruchom `Intlayer: Select Environment`, następnie wybierz środowisko (np. `development`, `staging`, `production`). Rozszerzenie spróbuje załadować pierwszy dostępny plik z powyższej listy priorytetów i wyświetli powiadomienie takie jak „Załadowano env z .env.<env>.local”.
|
|
120
|
+
- **Ustawienia**: przejdź do `Settings → Extensions → Intlayer` i ustaw:
|
|
121
|
+
- **Environment**: nazwa środowiska używana do rozwiązywania plików `.env.<env>*`.
|
|
122
|
+
- (Opcjonalnie) **Plik Env**: jawna ścieżka do pliku `.env`. Jeśli jest podana, ma pierwszeństwo przed listą domyślną.
|
|
123
|
+
|
|
124
|
+
#### Monorepo i niestandardowe katalogi
|
|
125
|
+
|
|
126
|
+
Jeśli twoje pliki `.env` znajdują się poza rootem workspace, ustaw **Katalog Bazowy** w `Settings → Extensions → Intlayer`. Loader będzie szukał plików `.env` względem tego katalogu.
|