@intlayer/docs 7.0.7 → 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,408 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-02-07
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Markdown
|
|
5
|
+
description: Dowiedz się, jak deklarować i używać zawartości Markdown na swojej wielojęzycznej stronie internetowej z Intlayer. Postępuj zgodnie z krokami w tej dokumentacji online, aby bezproblemowo zintegrować Markdown z Twoim projektem.
|
|
6
|
+
keywords:
|
|
7
|
+
- Markdown
|
|
8
|
+
- Internacjonalizacja
|
|
9
|
+
- Dokumentacja
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Next.js
|
|
12
|
+
- JavaScript
|
|
13
|
+
- React
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- content
|
|
18
|
+
- markdown
|
|
19
|
+
history:
|
|
20
|
+
- version: 5.5.10
|
|
21
|
+
date: 2025-06-29
|
|
22
|
+
changes: Inicjalizacja historii
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Markdown / Zawartość tekstu sformatowanego
|
|
26
|
+
|
|
27
|
+
## Jak działa Markdown
|
|
28
|
+
|
|
29
|
+
Intlayer obsługuje zawartość tekstu sformatowanego zdefiniowaną za pomocą składni Markdown. Osiąga się to poprzez funkcję `md`, która konwertuje łańcuch Markdown na format, którym może zarządzać Intlayer. Korzystając z Markdown, możesz łatwo pisać i utrzymywać treści z bogatym formatowaniem, takie jak blogi, artykuły i inne.
|
|
30
|
+
|
|
31
|
+
[Edytor wizualny Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_visual_editor.md) oraz [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_CMS.md) oba wspierają zarządzanie zawartością Markdown.
|
|
32
|
+
|
|
33
|
+
Po integracji z aplikacją React możesz użyć dostawcy renderującego Markdown (takiego jak [`markdown-to-jsx`](https://www.npmjs.com/package/markdown-to-jsx)), aby wyrenderować zawartość Markdown do HTML. Pozwala to pisać treści w Markdown, jednocześnie zapewniając ich poprawne wyświetlanie w Twojej aplikacji.
|
|
34
|
+
|
|
35
|
+
## Konfiguracja zawartości Markdown
|
|
36
|
+
|
|
37
|
+
Aby skonfigurować zawartość Markdown w swoim projekcie Intlayer, zdefiniuj słownik zawartości, który wykorzystuje funkcję `md`.
|
|
38
|
+
|
|
39
|
+
```typescript fileName="markdownDictionary.content.ts" contentDeclarationFormat="typescript"
|
|
40
|
+
import { md, type Dictionary } from "intlayer";
|
|
41
|
+
|
|
42
|
+
const markdownDictionary = {
|
|
43
|
+
key: "app",
|
|
44
|
+
content: {
|
|
45
|
+
myMarkdownContent: md("## My title \n\nLorem Ipsum"),
|
|
46
|
+
},
|
|
47
|
+
} satisfies Dictionary;
|
|
48
|
+
|
|
49
|
+
export default markdownDictionary;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```javascript fileName="markdownDictionary.content.mjs" contentDeclarationFormat="esm"
|
|
53
|
+
import { md } from "intlayer";
|
|
54
|
+
|
|
55
|
+
/** @type {import('intlayer').Dictionary} */
|
|
56
|
+
const markdownDictionary = {
|
|
57
|
+
key: "app",
|
|
58
|
+
content: {
|
|
59
|
+
myMarkdownContent: md("## Mój tytuł \n\nLorem Ipsum"),
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default markdownDictionary;
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```javascript fileName="markdownDictionary.content.cjs" contentDeclarationFormat="commonjs"
|
|
67
|
+
const { md } = require("intlayer");
|
|
68
|
+
|
|
69
|
+
/** @type {import('intlayer').Dictionary} */
|
|
70
|
+
const markdownDictionary = {
|
|
71
|
+
key: "app",
|
|
72
|
+
content: {
|
|
73
|
+
myMarkdownContent: md("## Mój tytuł \n\nLorem Ipsum"),
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
module.exports = markdownDictionary;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```json fileName="markdownDictionary.content.json" contentDeclarationFormat="json"
|
|
81
|
+
{
|
|
82
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
83
|
+
"key": "app",
|
|
84
|
+
"content": {
|
|
85
|
+
"myMarkdownContent": {
|
|
86
|
+
"nodeType": "markdown",
|
|
87
|
+
"markdown": "## Mój tytuł \n\nLorem Ipsum"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Importowanie (wielojęzyczne) pliku `.md`
|
|
94
|
+
|
|
95
|
+
Jeśli Twój plik Markdown to plik `.md`, możesz go importować, korzystając z różnych formatów importu udostępnianych przez JavaScript lub Intlayer.
|
|
96
|
+
|
|
97
|
+
Zaleca się priorytetowe korzystanie z importu za pomocą funkcji [`file`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/file.md), ponieważ pozwala to Intlayer na prawidłowe zarządzanie ścieżkami względem lokalizacji pliku oraz zapewnia integrację tego pliku z Edytorem Wizualnym / CMS.
|
|
98
|
+
|
|
99
|
+
```typescript fileName="md.d.ts" contentDeclarationFormat="typescript"
|
|
100
|
+
// To deklaracja pozwala TypeScript rozpoznawać i importować pliki Markdown (.md) jako moduły.
|
|
101
|
+
// Bez tego TypeScript zgłosiłby błąd podczas próby importu plików Markdown,
|
|
102
|
+
// ponieważ natywnie nie obsługuje importów plików niebędących kodem.
|
|
103
|
+
|
|
104
|
+
declare module "*.md";
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```typescript fileName="markdownDictionary.content.ts" contentDeclarationFormat="typescript"
|
|
108
|
+
import { md, file, t, type Dictionary } from "intlayer";
|
|
109
|
+
import { readFileSync } from "fs";
|
|
110
|
+
import { resolve } from "path";
|
|
111
|
+
|
|
112
|
+
import markdown from "./myMarkdown.md";
|
|
113
|
+
|
|
114
|
+
const markdownDictionary = {
|
|
115
|
+
key: "app",
|
|
116
|
+
content: {
|
|
117
|
+
contentMultilingualFile: t({
|
|
118
|
+
en: md(file("./myMarkdown.en.md")),
|
|
119
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
120
|
+
es: md(file("./myMarkdown.es.md")),
|
|
121
|
+
}),
|
|
122
|
+
|
|
123
|
+
contentImport: md(markdown),
|
|
124
|
+
contentRequire: md(require("./myMarkdown.md")),
|
|
125
|
+
contentAsyncImport: md(
|
|
126
|
+
import("./myMarkdown.md").then((module) => module.default)
|
|
127
|
+
),
|
|
128
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
129
|
+
contentFS: md(() => {
|
|
130
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
131
|
+
return readFileSync(filePath, "utf8");
|
|
132
|
+
}),
|
|
133
|
+
},
|
|
134
|
+
} satisfies Dictionary;
|
|
135
|
+
|
|
136
|
+
export default markdownDictionary;
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```javascript fileName="markdownDictionary.content.mjs" contentDeclarationFormat="esm"
|
|
140
|
+
import { md, file, t } from "intlayer";
|
|
141
|
+
import { readFileSync } from "fs";
|
|
142
|
+
import { resolve } from "path";
|
|
143
|
+
|
|
144
|
+
import markdown from "./myMarkdown.md";
|
|
145
|
+
|
|
146
|
+
/** @type {import('intlayer').Dictionary} */
|
|
147
|
+
const markdownDictionary = {
|
|
148
|
+
key: "app",
|
|
149
|
+
content: {
|
|
150
|
+
contentMultilingualFile: t({
|
|
151
|
+
en: md(file("./myMarkdown.en.md")),
|
|
152
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
153
|
+
es: md(file("./myMarkdown.es.md")),
|
|
154
|
+
}),
|
|
155
|
+
|
|
156
|
+
contentImport: md(markdown),
|
|
157
|
+
contentRequire: md(require("./myMarkdown.md")),
|
|
158
|
+
contentAsyncImport: md(
|
|
159
|
+
import("./myMarkdown.md").then((module) => module.default)
|
|
160
|
+
),
|
|
161
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
162
|
+
contentFS: md(() => {
|
|
163
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
164
|
+
return readFileSync(filePath, "utf8");
|
|
165
|
+
}),
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export default markdownDictionary;
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
```javascript fileName="markdownDictionary.content.cjs" contentDeclarationFormat="commonjs"
|
|
173
|
+
const { md, file, t } = require("intlayer");
|
|
174
|
+
|
|
175
|
+
const markdown_en = require("./myMarkdown.en.md");
|
|
176
|
+
const markdown_fr = require("./myMarkdown.fr.md");
|
|
177
|
+
const markdown_es = require("./myMarkdown.es.md");
|
|
178
|
+
|
|
179
|
+
/** @type {import('intlayer').Dictionary} */
|
|
180
|
+
const markdownDictionary = {
|
|
181
|
+
key: "app",
|
|
182
|
+
content: {
|
|
183
|
+
contentMultilingualFile: t({
|
|
184
|
+
en: md(file("./myMarkdown.en.md")),
|
|
185
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
186
|
+
es: md(file("./myMarkdown.es.md")),
|
|
187
|
+
}),
|
|
188
|
+
|
|
189
|
+
contentImport: md(markdown),
|
|
190
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
191
|
+
contentFS: md(() => {
|
|
192
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
193
|
+
return readFileSync(filePath, "utf8");
|
|
194
|
+
}),
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
module.exports = markdownDictionary;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```jsonc fileName="markdownDictionary.content.json" contentDeclarationFormat="json"
|
|
202
|
+
// - Importowanie zewnętrznych plików Markdown (.md) jest możliwe tylko przy użyciu węzła `file` lub plików deklaracji JS lub TS.
|
|
203
|
+
// - Pobieranie zewnętrznej zawartości Markdown jest możliwe tylko przy użyciu plików deklaracji JS lub TS.
|
|
204
|
+
|
|
205
|
+
{
|
|
206
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
207
|
+
"key": "app",
|
|
208
|
+
"content": {
|
|
209
|
+
"": {
|
|
210
|
+
"nodeType": "file",
|
|
211
|
+
"file": "./myMarkdown.md"
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
"contentMultilingualFile": {
|
|
216
|
+
"nodeType": "translation",
|
|
217
|
+
"translation": {
|
|
218
|
+
"en": {
|
|
219
|
+
"nodeType": "markdown",
|
|
220
|
+
"markdown": {
|
|
221
|
+
"nodeType": "file",
|
|
222
|
+
"file": "./myMarkdown.en.md"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"fr": {
|
|
226
|
+
"nodeType": "markdown",
|
|
227
|
+
"markdown": {
|
|
228
|
+
"nodeType": "file",
|
|
229
|
+
"file": "./myMarkdown.fr.md"
|
|
230
|
+
}
|
|
231
|
+
// - Importowanie zewnętrznych plików Markdown (.md) jest możliwe tylko za pomocą węzła `file` lub plików deklaracji JS lub TS.
|
|
232
|
+
// - Pobieranie zewnętrznej zawartości Markdown jest możliwe tylko za pomocą plików deklaracji JS lub TS.
|
|
233
|
+
|
|
234
|
+
{
|
|
235
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
236
|
+
"key": "app",
|
|
237
|
+
"content": {
|
|
238
|
+
"": {
|
|
239
|
+
"nodeType": "file",
|
|
240
|
+
"file": "./myMarkdown.md",
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
|
|
244
|
+
"contentMultilingualFile": {
|
|
245
|
+
"nodeType": "translation",
|
|
246
|
+
"translation": {
|
|
247
|
+
"en": {
|
|
248
|
+
"nodeType": "markdown",
|
|
249
|
+
"markdown": {
|
|
250
|
+
"nodeType": "file",
|
|
251
|
+
"file": "./myMarkdown.en.md",
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
"fr": {
|
|
255
|
+
"nodeType": "markdown",
|
|
256
|
+
"markdown": {
|
|
257
|
+
"nodeType": "file",
|
|
258
|
+
"file": "./myMarkdown.fr.md",
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
"es": {
|
|
262
|
+
"nodeType": "markdown",
|
|
263
|
+
"markdown": {
|
|
264
|
+
"nodeType": "file",
|
|
265
|
+
"file": "./myMarkdown.es.md",
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Używanie Markdown z React Intlayer
|
|
275
|
+
|
|
276
|
+
Aby renderować zawartość Markdown w aplikacji React, możesz wykorzystać hook `useIntlayer` z pakietu `react-intlayer` wraz z dostawcą renderowania Markdown. W tym przykładzie używamy pakietu [`markdown-to-jsx`](https://www.npmjs.com/package/markdown-to-jsx), aby przekonwertować Markdown na HTML.
|
|
277
|
+
|
|
278
|
+
```tsx fileName="App.tsx" codeFormat="typescript"
|
|
279
|
+
import type { FC } from "react";
|
|
280
|
+
import { useIntlayer, MarkdownProvider } from "react-intlayer";
|
|
281
|
+
import Markdown from "markdown-to-jsx";
|
|
282
|
+
|
|
283
|
+
const AppContent: FC = () => {
|
|
284
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
285
|
+
|
|
286
|
+
return <>{myMarkdownContent}</>;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
export const AppProvider: FC = () => (
|
|
290
|
+
<MarkdownProvider
|
|
291
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
292
|
+
>
|
|
293
|
+
<AppContent />
|
|
294
|
+
</MarkdownProvider>
|
|
295
|
+
);
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
```jsx fileName="App.jsx" codeFormat="esm"
|
|
299
|
+
import { useIntlayer, MarkdownProvider } from "react-intlayer";
|
|
300
|
+
import Markdown from "markdown-to-jsx";
|
|
301
|
+
|
|
302
|
+
const AppContent = () => {
|
|
303
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
304
|
+
|
|
305
|
+
return <>{myMarkdownContent}</>;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
export const AppProvider = () => (
|
|
309
|
+
<MarkdownProvider
|
|
310
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
311
|
+
>
|
|
312
|
+
<AppContent />
|
|
313
|
+
</MarkdownProvider>
|
|
314
|
+
);
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
```jsx fileName="App.jsx" codeFormat="commonjs"
|
|
318
|
+
const { useIntlayer, MarkdownProvider } = require("react-intlayer");
|
|
319
|
+
const Markdown = require("markdown-to-jsx");
|
|
320
|
+
|
|
321
|
+
const AppContent = () => {
|
|
322
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
323
|
+
|
|
324
|
+
return <>{myMarkdownContent}</>;
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
AppProvider = () => (
|
|
328
|
+
<MarkdownProvider
|
|
329
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
330
|
+
>
|
|
331
|
+
<AppContent />
|
|
332
|
+
</MarkdownProvider>
|
|
333
|
+
);
|
|
334
|
+
|
|
335
|
+
module.exports = {
|
|
336
|
+
AppProvider,
|
|
337
|
+
};
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
W tej implementacji:
|
|
341
|
+
|
|
342
|
+
- `MarkdownProvider` otacza aplikację (lub odpowiednią jej część) i przyjmuje funkcję `renderMarkdown`. Funkcja ta służy do konwersji łańcuchów Markdown na JSX za pomocą pakietu `markdown-to-jsx`.
|
|
343
|
+
- Hook `useIntlayer` jest używany do pobierania zawartości Markdown (`myMarkdownContent`) ze słownika pod kluczem `"app"`.
|
|
344
|
+
- Zawartość Markdown jest renderowana bezpośrednio w komponencie, a renderowanie Markdown jest obsługiwane przez providera.
|
|
345
|
+
|
|
346
|
+
### Używanie Markdown z Next Intlayer
|
|
347
|
+
|
|
348
|
+
Implementacja z użyciem pakietu `next-intlayer` jest podobna do powyższej. Jedyną różnicą jest to, że funkcja `renderMarkdown` powinna być przekazana do komponentu `MarkdownProvider` w komponencie klienta.
|
|
349
|
+
|
|
350
|
+
```tsx title="src/providers/IntlayerMarkdownProvider.tsx" codeFormat="typescript"
|
|
351
|
+
"use client";
|
|
352
|
+
|
|
353
|
+
import type { FC, PropsWithChildren } from "react";
|
|
354
|
+
import { MarkdownProvider } from "next-intlayer";
|
|
355
|
+
|
|
356
|
+
const renderMarkdown = (markdown: string) => (
|
|
357
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
358
|
+
);
|
|
359
|
+
|
|
360
|
+
export const IntlayerMarkdownProvider: FC<PropsWithChildren> = ({
|
|
361
|
+
children,
|
|
362
|
+
}) => (
|
|
363
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
364
|
+
{children}
|
|
365
|
+
</MarkdownProvider>
|
|
366
|
+
);
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
```jsx title="src/providers/IntlayerMarkdownProvider.msx" codeFormat="esm"
|
|
370
|
+
"use client";
|
|
371
|
+
|
|
372
|
+
import { MarkdownProvider } from "next-intlayer";
|
|
373
|
+
|
|
374
|
+
const renderMarkdown = (markdown) => (
|
|
375
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
376
|
+
);
|
|
377
|
+
|
|
378
|
+
export const IntlayerMarkdownProvider = ({ children }) => (
|
|
379
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
380
|
+
{children}
|
|
381
|
+
</MarkdownProvider>
|
|
382
|
+
);
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
```jsx title="src/providers/IntlayerMarkdownProvider.csx" codeFormat="commonjs"
|
|
386
|
+
"use client";
|
|
387
|
+
|
|
388
|
+
const { MarkdownProvider } = require("next-intlayer");
|
|
389
|
+
|
|
390
|
+
const renderMarkdown = (markdown) => (
|
|
391
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
392
|
+
);
|
|
393
|
+
|
|
394
|
+
const IntlayerMarkdownProvider = ({ children }) => (
|
|
395
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
396
|
+
{children}
|
|
397
|
+
</MarkdownProvider>
|
|
398
|
+
);
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
## Dodatkowe zasoby
|
|
402
|
+
|
|
403
|
+
- [Dokumentacja Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_cli.md)
|
|
404
|
+
- [Dokumentacja React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_create_react_app.md)
|
|
405
|
+
- [Dokumentacja Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nextjs_15.md)
|
|
406
|
+
- [markdown-to-jsx na npm](https://www.npmjs.com/package/markdown-to-jsx)
|
|
407
|
+
|
|
408
|
+
Te zasoby dostarczają dodatkowych informacji na temat konfiguracji i używania Intlayer z różnymi typami treści i frameworkami.
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-02-07
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Zagnieżdżanie słowników
|
|
5
|
+
description: Dowiedz się, jak korzystać z zagnieżdżania treści w Intlayer, aby efektywnie ponownie wykorzystywać i strukturyzować wielojęzyczne treści. Postępuj zgodnie z tą dokumentacją, aby bezproblemowo wdrożyć zagnieżdżanie w swoim projekcie.
|
|
6
|
+
keywords:
|
|
7
|
+
- Zagnieżdżanie
|
|
8
|
+
- Ponowne wykorzystywanie treści
|
|
9
|
+
- Dokumentacja
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Next.js
|
|
12
|
+
- JavaScript
|
|
13
|
+
- React
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- content
|
|
18
|
+
- nesting
|
|
19
|
+
history:
|
|
20
|
+
- version: 5.5.10
|
|
21
|
+
date: 2025-06-29
|
|
22
|
+
changes: Inicjalizacja historii
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Zagnieżdżanie / Odwołania do podtreści
|
|
26
|
+
|
|
27
|
+
## Jak działa zagnieżdżanie
|
|
28
|
+
|
|
29
|
+
W Intlayer zagnieżdżanie realizowane jest za pomocą funkcji `nest`, która pozwala na odwoływanie się do treści z innego słownika i jej ponowne wykorzystanie. Zamiast duplikować treść, możesz wskazać istniejący moduł treści za pomocą jego klucza.
|
|
30
|
+
|
|
31
|
+
## Konfiguracja zagnieżdżania
|
|
32
|
+
|
|
33
|
+
Aby skonfigurować zagnieżdżanie w swoim projekcie Intlayer, najpierw definiujesz bazową treść, którą chcesz ponownie wykorzystać. Następnie, w osobnym module treści, używasz funkcji `nest`, aby zaimportować tę treść.
|
|
34
|
+
|
|
35
|
+
### Bazowy słownik
|
|
36
|
+
|
|
37
|
+
Poniżej znajduje się przykład bazowego słownika do zagnieżdżenia w innym słowniku:
|
|
38
|
+
|
|
39
|
+
```typescript fileName="firstDictionary.content.ts" contentDeclarationFormat="typescript"
|
|
40
|
+
import { type Dictionary } from "intlayer";
|
|
41
|
+
|
|
42
|
+
const firstDictionary = {
|
|
43
|
+
key: "key_of_my_first_dictionary",
|
|
44
|
+
content: {
|
|
45
|
+
content: "content",
|
|
46
|
+
subContent: {
|
|
47
|
+
contentNumber: 0,
|
|
48
|
+
contentString: "string",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
} satisfies Dictionary;
|
|
52
|
+
|
|
53
|
+
export default firstDictionary;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```javascript fileName="firstDictionary.content.mjs" contentDeclarationFormat="esm"
|
|
57
|
+
/** @type {import('intlayer').Dictionary} */
|
|
58
|
+
const firstDictionary = {
|
|
59
|
+
key: "key_of_my_first_dictionary",
|
|
60
|
+
content: {
|
|
61
|
+
content: "content",
|
|
62
|
+
subContent: {
|
|
63
|
+
contentNumber: 0,
|
|
64
|
+
contentString: "string",
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default firstDictionary;
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```javascript fileName="firstDictionary.content.cjs" contentDeclarationFormat="commonjs"
|
|
73
|
+
/** @type {import('intlayer').Dictionary} */
|
|
74
|
+
const firstDictionary = {
|
|
75
|
+
key: "key_of_my_first_dictionary",
|
|
76
|
+
content: {
|
|
77
|
+
content: "content",
|
|
78
|
+
subContent: {
|
|
79
|
+
contentNumber: 0,
|
|
80
|
+
contentString: "string",
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
module.exports = firstDictionary;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```json fileName="firstDictionary.content.json" contentDeclarationFormat="json"
|
|
89
|
+
{
|
|
90
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
91
|
+
"key": "key_of_my_first_dictionary",
|
|
92
|
+
"content": {
|
|
93
|
+
"content": "content",
|
|
94
|
+
"subContent": {
|
|
95
|
+
"contentNumber": 0,
|
|
96
|
+
"contentString": "string"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Odwołania za pomocą Nest
|
|
103
|
+
|
|
104
|
+
Teraz utwórz inny moduł zawartości, który używa funkcji `nest` do odwołania się do powyższej zawartości. Możesz odwołać się do całej zawartości lub do konkretnej zagnieżdżonej wartości:
|
|
105
|
+
|
|
106
|
+
```typescript fileName="secondDictionary.content.ts" contentDeclarationFormat="typescript"
|
|
107
|
+
import { nest, type Dictionary } from "intlayer";
|
|
108
|
+
|
|
109
|
+
const myNestingContent = {
|
|
110
|
+
key: "key_of_my_second_dictionary",
|
|
111
|
+
content: {
|
|
112
|
+
// Odwołuje się do całego słownika:
|
|
113
|
+
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
114
|
+
// Odwołuje się do konkretnej zagnieżdżonej wartości:
|
|
115
|
+
partialNestedContent: nest(
|
|
116
|
+
"key_of_my_first_dictionary",
|
|
117
|
+
"subContent.contentNumber"
|
|
118
|
+
),
|
|
119
|
+
},
|
|
120
|
+
} satisfies Dictionary;
|
|
121
|
+
|
|
122
|
+
export default myNestingContent;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```javascript fileName="secondDictionary.content.mjs" contentDeclarationFormat="esm"
|
|
126
|
+
import { nest } from "intlayer";
|
|
127
|
+
|
|
128
|
+
/** @type {import('intlayer').Dictionary} */
|
|
129
|
+
const myNestingContent = {
|
|
130
|
+
key: "key_of_my_second_dictionary",
|
|
131
|
+
content: {
|
|
132
|
+
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
133
|
+
partialNestedContent: nest(
|
|
134
|
+
"key_of_my_first_dictionary",
|
|
135
|
+
"subContent.contentNumber"
|
|
136
|
+
),
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export default myNestingContent;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```javascript fileName="secondDictionary.content.cjs" contentDeclarationFormat="commonjs"
|
|
144
|
+
const { nest } = require("intlayer");
|
|
145
|
+
|
|
146
|
+
/** @type {import('intlayer').Dictionary} */
|
|
147
|
+
const myNestingContent = {
|
|
148
|
+
key: "key_of_my_second_dictionary",
|
|
149
|
+
content: {
|
|
150
|
+
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
151
|
+
partialNestedContent: nest(
|
|
152
|
+
"key_of_my_first_dictionary",
|
|
153
|
+
"subContent.contentNumber"
|
|
154
|
+
),
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
module.exports = myNestingContent;
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```json fileName="secondDictionary.content.json" contentDeclarationFormat="json"
|
|
162
|
+
{
|
|
163
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
164
|
+
"key": "key_of_my_second_dictionary",
|
|
165
|
+
"content": {
|
|
166
|
+
"fullNestedContent": {
|
|
167
|
+
"nodeType": "nested",
|
|
168
|
+
"nested": {
|
|
169
|
+
"dictionaryKey": "key_of_my_first_dictionary"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"partialNestedContent": {
|
|
173
|
+
"nodeType": "nested",
|
|
174
|
+
"nested": {
|
|
175
|
+
"dictionaryKey": "key_of_my_first_dictionary",
|
|
176
|
+
"path": "subContent.contentNumber"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Jako drugi parametr możesz określić ścieżkę do zagnieżdżonej wartości w ramach tej zawartości. Jeśli ścieżka nie zostanie podana, zwracana jest cała zawartość odwołującego się słownika.
|
|
184
|
+
|
|
185
|
+
## Używanie zagnieżdżenia z React Intlayer
|
|
186
|
+
|
|
187
|
+
Aby użyć zagnieżdżonej zawartości w komponencie React, skorzystaj z hooka `useIntlayer` z pakietu `react-intlayer`. Ten hook pobiera odpowiednią zawartość na podstawie podanego klucza. Oto przykład, jak go użyć:
|
|
188
|
+
|
|
189
|
+
```tsx fileName="**/*.tsx" codeFormat="typescript"
|
|
190
|
+
import type { FC } from "react";
|
|
191
|
+
import { useIntlayer } from "react-intlayer";
|
|
192
|
+
|
|
193
|
+
const NestComponent: FC = () => {
|
|
194
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
195
|
+
"key_of_my_second_dictionary"
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
return (
|
|
199
|
+
<div>
|
|
200
|
+
<p>
|
|
201
|
+
Full Nested Content: {JSON.stringify(fullNestedContent)}
|
|
202
|
+
{/* Wynik: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
203
|
+
</p>
|
|
204
|
+
<p>
|
|
205
|
+
Częściowa wartość zagnieżdżona: {partialNestedContent}
|
|
206
|
+
{/* Wynik: 0 */}
|
|
207
|
+
</p>
|
|
208
|
+
</div>
|
|
209
|
+
);
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
export default NestComponent;
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
```javascript fileName="**/*.mjx" codeFormat="esm"
|
|
216
|
+
import { useIntlayer } from "react-intlayer";
|
|
217
|
+
|
|
218
|
+
const NestComponent = () => {
|
|
219
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
220
|
+
"key_of_my_second_dictionary"
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
return (
|
|
224
|
+
<div>
|
|
225
|
+
<p>
|
|
226
|
+
Pełna zawartość zagnieżdżona: {JSON.stringify(fullNestedContent)}
|
|
227
|
+
{/* Wynik: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
228
|
+
</p>
|
|
229
|
+
<p>
|
|
230
|
+
Częściowa wartość zagnieżdżona: {partialNestedContent}
|
|
231
|
+
{/* Wynik: 0 */}
|
|
232
|
+
</p>
|
|
233
|
+
</div>
|
|
234
|
+
);
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export default NestComponent;
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
```javascript fileName="**/*.cjx" codeFormat="commonjs"
|
|
241
|
+
const { useIntlayer } = require("react-intlayer");
|
|
242
|
+
|
|
243
|
+
const NestComponent = () => {
|
|
244
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
245
|
+
"key_of_my_second_dictionary"
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
return (
|
|
249
|
+
<div>
|
|
250
|
+
<p>
|
|
251
|
+
Pełna zawartość zagnieżdżona: {JSON.stringify(fullNestedContent)}
|
|
252
|
+
{/* Wynik: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
253
|
+
</p>
|
|
254
|
+
<p>
|
|
255
|
+
Częściowa wartość zagnieżdżona: {partialNestedContent}
|
|
256
|
+
{/* Wynik: 0 */}
|
|
257
|
+
</p>
|
|
258
|
+
</div>
|
|
259
|
+
);
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
module.exports = NestComponent;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Dodatkowe zasoby
|
|
266
|
+
|
|
267
|
+
Aby uzyskać bardziej szczegółowe informacje na temat konfiguracji i użytkowania, zapoznaj się z następującymi zasobami:
|
|
268
|
+
|
|
269
|
+
- [Dokumentacja Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_cli.md)
|
|
270
|
+
- [Dokumentacja React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_create_react_app.md)
|
|
271
|
+
- [Dokumentacja Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/intlayer_with_nextjs_15.md)
|
|
272
|
+
|
|
273
|
+
Te zasoby dostarczają dodatkowych informacji na temat konfiguracji i użytkowania Intlayer w różnych środowiskach oraz z różnymi frameworkami.
|