@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,381 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-02-07
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Markdown
|
|
5
|
+
description: Pelajari cara mendeklarasikan dan menggunakan konten Markdown di situs web multibahasa Anda dengan Intlayer. Ikuti langkah-langkah dalam dokumentasi online ini untuk mengintegrasikan Markdown secara mulus ke dalam proyek Anda.
|
|
6
|
+
keywords:
|
|
7
|
+
- Markdown
|
|
8
|
+
- Internasionalisasi
|
|
9
|
+
- Dokumentasi
|
|
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: Inisialisasi riwayat
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Markdown / Konten Teks Kaya
|
|
26
|
+
|
|
27
|
+
## Cara Kerja Markdown
|
|
28
|
+
|
|
29
|
+
Intlayer mendukung konten teks kaya yang didefinisikan menggunakan sintaks Markdown. Hal ini dicapai melalui fungsi `md`, yang mengubah string Markdown menjadi format yang dapat dikelola oleh Intlayer. Dengan menggunakan Markdown, Anda dapat dengan mudah menulis dan memelihara konten dengan format kaya, seperti blog, artikel, dan lainnya.
|
|
30
|
+
|
|
31
|
+
[Editor Visual Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md) dan [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md) keduanya mendukung manajemen konten Markdown.
|
|
32
|
+
|
|
33
|
+
Ketika diintegrasikan dengan aplikasi React, Anda dapat menggunakan penyedia rendering Markdown (seperti [`markdown-to-jsx`](https://www.npmjs.com/package/markdown-to-jsx)) untuk merender konten Markdown menjadi HTML. Ini memungkinkan Anda menulis konten dalam Markdown sambil memastikan tampilannya benar di aplikasi Anda.
|
|
34
|
+
|
|
35
|
+
## Menyiapkan Konten Markdown
|
|
36
|
+
|
|
37
|
+
Untuk menyiapkan konten Markdown dalam proyek Intlayer Anda, definisikan sebuah kamus konten yang menggunakan fungsi `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("## Judul Saya \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("## Judul Saya \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": "## Judul Saya \n\nLorem Ipsum"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Impor file `.md` (multibahasa)
|
|
94
|
+
|
|
95
|
+
Jika file Markdown Anda adalah file `.md`, Anda dapat mengimpornya menggunakan berbagai format impor yang disediakan oleh JavaScript atau Intlayer.
|
|
96
|
+
|
|
97
|
+
Disarankan untuk memprioritaskan impor melalui [`file` function](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/file.md), karena memungkinkan Intlayer mengelola jalur relatif terhadap lokasi file dengan benar dan memastikan integrasi file ini dengan Visual Editor / CMS.
|
|
98
|
+
|
|
99
|
+
```typescript fileName="md.d.ts" contentDeclarationFormat="typescript"
|
|
100
|
+
// Deklarasi ini memungkinkan TypeScript mengenali dan mengimpor file Markdown (.md) sebagai modul.
|
|
101
|
+
|
|
102
|
+
// Tanpa ini, TypeScript akan menghasilkan error saat mencoba mengimpor file Markdown,
|
|
103
|
+
// karena secara native tidak mendukung impor file non-kode.
|
|
104
|
+
|
|
105
|
+
declare module "*.md";
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```typescript fileName="markdownDictionary.content.ts" contentDeclarationFormat="typescript"
|
|
109
|
+
import { md, file, t, type Dictionary } from "intlayer";
|
|
110
|
+
import { readFileSync } from "fs";
|
|
111
|
+
import { resolve } from "path";
|
|
112
|
+
|
|
113
|
+
import markdown from "./myMarkdown.md";
|
|
114
|
+
|
|
115
|
+
const markdownDictionary = {
|
|
116
|
+
key: "app",
|
|
117
|
+
content: {
|
|
118
|
+
contentMultilingualFile: t({
|
|
119
|
+
en: md(file("./myMarkdown.en.md")),
|
|
120
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
121
|
+
es: md(file("./myMarkdown.es.md")),
|
|
122
|
+
}),
|
|
123
|
+
|
|
124
|
+
contentImport: md(markdown),
|
|
125
|
+
contentRequire: md(require("./myMarkdown.md")),
|
|
126
|
+
contentAsyncImport: md(
|
|
127
|
+
import("./myMarkdown.md").then((module) => module.default)
|
|
128
|
+
),
|
|
129
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
130
|
+
contentFS: md(() => {
|
|
131
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
132
|
+
return readFileSync(filePath, "utf8");
|
|
133
|
+
}),
|
|
134
|
+
},
|
|
135
|
+
} satisfies Dictionary;
|
|
136
|
+
|
|
137
|
+
export default markdownDictionary;
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```javascript fileName="markdownDictionary.content.mjs" contentDeclarationFormat="esm"
|
|
141
|
+
import { md, file, t } from "intlayer";
|
|
142
|
+
import { readFileSync } from "fs";
|
|
143
|
+
import { resolve } from "path";
|
|
144
|
+
|
|
145
|
+
import markdown from "./myMarkdown.md";
|
|
146
|
+
|
|
147
|
+
/** @type {import('intlayer').Dictionary} */
|
|
148
|
+
const markdownDictionary = {
|
|
149
|
+
key: "app",
|
|
150
|
+
content: {
|
|
151
|
+
contentMultilingualFile: t({
|
|
152
|
+
en: md(file("./myMarkdown.en.md")),
|
|
153
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
154
|
+
es: md(file("./myMarkdown.es.md")),
|
|
155
|
+
}),
|
|
156
|
+
|
|
157
|
+
contentImport: md(markdown),
|
|
158
|
+
contentRequire: md(require("./myMarkdown.md")),
|
|
159
|
+
contentAsyncImport: md(
|
|
160
|
+
import("./myMarkdown.md").then((module) => module.default)
|
|
161
|
+
),
|
|
162
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
163
|
+
contentFS: md(() => {
|
|
164
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
165
|
+
return readFileSync(filePath, "utf8");
|
|
166
|
+
}),
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export default markdownDictionary;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```javascript fileName="markdownDictionary.content.cjs" contentDeclarationFormat="commonjs"
|
|
174
|
+
const { md, file, t } = require("intlayer");
|
|
175
|
+
|
|
176
|
+
const markdown_en = require("./myMarkdown.en.md");
|
|
177
|
+
const markdown_fr = require("./myMarkdown.fr.md");
|
|
178
|
+
const markdown_es = require("./myMarkdown.es.md");
|
|
179
|
+
|
|
180
|
+
/** @type {import('intlayer').Dictionary} */
|
|
181
|
+
// Kamus markdown
|
|
182
|
+
const markdownDictionary = {
|
|
183
|
+
key: "app",
|
|
184
|
+
content: {
|
|
185
|
+
contentMultilingualFile: t({
|
|
186
|
+
en: md(file("./myMarkdown.en.md")),
|
|
187
|
+
fr: md(file("./myMarkdown.fr.md")),
|
|
188
|
+
es: md(file("./myMarkdown.es.md")),
|
|
189
|
+
}),
|
|
190
|
+
|
|
191
|
+
contentImport: md(markdown),
|
|
192
|
+
contentFetch: md(fetch("https://example.com").then((res) => res.text())),
|
|
193
|
+
contentFS: md(() => {
|
|
194
|
+
const filePath = resolve(process.cwd(), "doc/test.md");
|
|
195
|
+
return readFileSync(filePath, "utf8");
|
|
196
|
+
}),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
module.exports = markdownDictionary;
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```jsonc fileName="markdownDictionary.content.json" contentDeclarationFormat="json"
|
|
204
|
+
// - Mengimpor file Markdown eksternal (.md) hanya memungkinkan menggunakan node `file`, atau file deklarasi JS atau TS.
|
|
205
|
+
// - Mengambil konten Markdown eksternal hanya memungkinkan menggunakan file deklarasi JS atau TS.
|
|
206
|
+
|
|
207
|
+
{
|
|
208
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
209
|
+
"key": "app",
|
|
210
|
+
"content": {
|
|
211
|
+
"": {
|
|
212
|
+
"nodeType": "file",
|
|
213
|
+
"file": "./myMarkdown.md",
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
|
|
217
|
+
"contentMultilingualFile": {
|
|
218
|
+
"nodeType": "translation",
|
|
219
|
+
"translation": {
|
|
220
|
+
"en": {
|
|
221
|
+
"nodeType": "markdown",
|
|
222
|
+
"markdown": {
|
|
223
|
+
"nodeType": "file",
|
|
224
|
+
"file": "./myMarkdown.en.md",
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
"fr": {
|
|
228
|
+
"nodeType": "markdown",
|
|
229
|
+
"markdown": {
|
|
230
|
+
"nodeType": "file",
|
|
231
|
+
"file": "./myMarkdown.fr.md",
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
"es": {
|
|
235
|
+
"nodeType": "markdown",
|
|
236
|
+
"markdown": {
|
|
237
|
+
"nodeType": "file",
|
|
238
|
+
"file": "./myMarkdown.es.md",
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Menggunakan Markdown dengan React Intlayer
|
|
248
|
+
|
|
249
|
+
Untuk merender konten Markdown dalam aplikasi React, Anda dapat memanfaatkan hook `useIntlayer` dari paket `react-intlayer` bersama dengan penyedia rendering Markdown. Dalam contoh ini, kami menggunakan paket [`markdown-to-jsx`](https://www.npmjs.com/package/markdown-to-jsx) untuk mengonversi Markdown menjadi HTML.
|
|
250
|
+
|
|
251
|
+
```tsx fileName="App.tsx" codeFormat="typescript"
|
|
252
|
+
import type { FC } from "react";
|
|
253
|
+
import { useIntlayer, MarkdownProvider } from "react-intlayer";
|
|
254
|
+
import Markdown from "markdown-to-jsx";
|
|
255
|
+
|
|
256
|
+
const AppContent: FC = () => {
|
|
257
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
258
|
+
|
|
259
|
+
return <>{myMarkdownContent}</>;
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export const AppProvider: FC = () => (
|
|
263
|
+
<MarkdownProvider
|
|
264
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
265
|
+
>
|
|
266
|
+
<AppContent />
|
|
267
|
+
</MarkdownProvider>
|
|
268
|
+
);
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
```jsx fileName="App.jsx" codeFormat="esm"
|
|
272
|
+
import { useIntlayer, MarkdownProvider } from "react-intlayer";
|
|
273
|
+
import Markdown from "markdown-to-jsx";
|
|
274
|
+
|
|
275
|
+
const AppContent = () => {
|
|
276
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
277
|
+
|
|
278
|
+
return <>{myMarkdownContent}</>;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
export const AppProvider = () => (
|
|
282
|
+
<MarkdownProvider
|
|
283
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
284
|
+
>
|
|
285
|
+
<AppContent />
|
|
286
|
+
</MarkdownProvider>
|
|
287
|
+
);
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
```jsx fileName="App.jsx" codeFormat="commonjs"
|
|
291
|
+
const { useIntlayer, MarkdownProvider } = require("react-intlayer");
|
|
292
|
+
const Markdown = require("markdown-to-jsx");
|
|
293
|
+
|
|
294
|
+
const AppContent = () => {
|
|
295
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
296
|
+
|
|
297
|
+
return <>{myMarkdownContent}</>;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
AppProvider = () => (
|
|
301
|
+
<MarkdownProvider
|
|
302
|
+
renderMarkdown={(markdown) => <Markdown>{markdown}</Markdown>}
|
|
303
|
+
>
|
|
304
|
+
<AppContent />
|
|
305
|
+
</MarkdownProvider>
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
module.exports = {
|
|
309
|
+
AppProvider,
|
|
310
|
+
};
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Dalam implementasi ini:
|
|
314
|
+
|
|
315
|
+
- `MarkdownProvider` membungkus aplikasi (atau bagian relevan darinya) dan menerima fungsi `renderMarkdown`. Fungsi ini digunakan untuk mengonversi string Markdown menjadi JSX menggunakan paket `markdown-to-jsx`.
|
|
316
|
+
- Hook `useIntlayer` digunakan untuk mengambil konten Markdown (`myMarkdownContent`) dari kamus dengan kunci `"app"`.
|
|
317
|
+
- Konten Markdown dirender langsung di dalam komponen, dan rendering Markdown ditangani oleh provider.
|
|
318
|
+
|
|
319
|
+
### Menggunakan Markdown dengan Next Intlayer
|
|
320
|
+
|
|
321
|
+
Implementasi menggunakan paket `next-intlayer` mirip dengan yang di atas. Perbedaannya hanya pada fungsi `renderMarkdown` yang harus diteruskan ke komponen `MarkdownProvider` dalam komponen client.
|
|
322
|
+
|
|
323
|
+
```tsx title="src/providers/IntlayerMarkdownProvider.tsx" codeFormat="typescript"
|
|
324
|
+
"use client";
|
|
325
|
+
|
|
326
|
+
import type { FC, PropsWithChildren } from "react";
|
|
327
|
+
import { MarkdownProvider } from "next-intlayer";
|
|
328
|
+
|
|
329
|
+
const renderMarkdown = (markdown: string) => (
|
|
330
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
export const IntlayerMarkdownProvider: FC<PropsWithChildren> = ({
|
|
334
|
+
children,
|
|
335
|
+
}) => (
|
|
336
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
337
|
+
{children}
|
|
338
|
+
</MarkdownProvider>
|
|
339
|
+
);
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
```jsx title="src/providers/IntlayerMarkdownProvider.msx" codeFormat="esm"
|
|
343
|
+
"use client";
|
|
344
|
+
|
|
345
|
+
import { MarkdownProvider } from "next-intlayer";
|
|
346
|
+
|
|
347
|
+
const renderMarkdown = (markdown) => (
|
|
348
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
349
|
+
);
|
|
350
|
+
|
|
351
|
+
export const IntlayerMarkdownProvider = ({ children }) => (
|
|
352
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
353
|
+
{children}
|
|
354
|
+
</MarkdownProvider>
|
|
355
|
+
);
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
```jsx title="src/providers/IntlayerMarkdownProvider.csx" codeFormat="commonjs"
|
|
359
|
+
"use client";
|
|
360
|
+
|
|
361
|
+
const { MarkdownProvider } = require("next-intlayer");
|
|
362
|
+
|
|
363
|
+
const renderMarkdown = (markdown) => (
|
|
364
|
+
<span style={{ color: "red" }}>{markdown}</span>
|
|
365
|
+
);
|
|
366
|
+
|
|
367
|
+
const IntlayerMarkdownProvider = ({ children }) => (
|
|
368
|
+
<MarkdownProvider renderMarkdown={renderMarkdown}>
|
|
369
|
+
{children}
|
|
370
|
+
</MarkdownProvider>
|
|
371
|
+
);
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## Sumber Daya Tambahan
|
|
375
|
+
|
|
376
|
+
- [Dokumentasi Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_cli.md)
|
|
377
|
+
- [Dokumentasi React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_create_react_app.md)
|
|
378
|
+
- [Dokumentasi Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_nextjs_15.md)
|
|
379
|
+
- [markdown-to-jsx di npm](https://www.npmjs.com/package/markdown-to-jsx)
|
|
380
|
+
|
|
381
|
+
Sumber daya ini memberikan wawasan lebih lanjut tentang pengaturan dan penggunaan Intlayer dengan berbagai jenis konten dan framework.
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-02-07
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Penanaman Kamus
|
|
5
|
+
description: Pelajari cara menggunakan penanaman konten di Intlayer untuk menggunakan kembali dan menyusun konten multibahasa Anda secara efisien. Ikuti dokumentasi ini untuk mengimplementasikan penanaman dengan mulus dalam proyek Anda.
|
|
6
|
+
keywords:
|
|
7
|
+
- Penanaman
|
|
8
|
+
- Penggunaan Kembali Konten
|
|
9
|
+
- Dokumentasi
|
|
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: Inisialisasi riwayat
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Penanaman / Referensi Sub Konten
|
|
26
|
+
|
|
27
|
+
## Cara Kerja Penanaman
|
|
28
|
+
|
|
29
|
+
Di Intlayer, penanaman dicapai melalui fungsi `nest`, yang memungkinkan Anda merujuk dan menggunakan kembali konten dari kamus lain. Alih-alih menggandakan konten, Anda dapat menunjuk ke modul konten yang sudah ada berdasarkan kuncinya.
|
|
30
|
+
|
|
31
|
+
## Menyiapkan Penanaman
|
|
32
|
+
|
|
33
|
+
Untuk menyiapkan penanaman dalam proyek Intlayer Anda, pertama-tama Anda mendefinisikan konten dasar yang ingin Anda gunakan kembali. Kemudian, dalam modul konten terpisah, Anda menggunakan fungsi `nest` untuk mengimpor konten tersebut.
|
|
34
|
+
|
|
35
|
+
### Kamus Dasar
|
|
36
|
+
|
|
37
|
+
Berikut adalah contoh kamus dasar untuk ditanamkan dalam kamus lain:
|
|
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
|
+
### Referensi dengan Nest
|
|
103
|
+
|
|
104
|
+
Sekarang, buat modul konten lain yang menggunakan fungsi `nest` untuk mereferensikan konten di atas. Anda dapat mereferensikan seluruh konten atau nilai nested tertentu:
|
|
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
|
+
// Mereferensikan seluruh dictionary:
|
|
113
|
+
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
114
|
+
// Mereferensikan nilai nested tertentu:
|
|
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
|
+
Sebagai parameter kedua, Anda dapat menentukan jalur ke nilai yang bersarang di dalam konten tersebut. Jika tidak ada jalur yang diberikan, seluruh konten dari kamus yang dirujuk akan dikembalikan.
|
|
184
|
+
|
|
185
|
+
## Menggunakan Nesting dengan React Intlayer
|
|
186
|
+
|
|
187
|
+
Untuk menggunakan konten bersarang dalam komponen React, manfaatkan hook `useIntlayer` dari paket `react-intlayer`. Hook ini mengambil konten yang benar berdasarkan kunci yang ditentukan. Berikut adalah contoh cara menggunakannya:
|
|
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
|
+
{/* Output: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
203
|
+
</p>
|
|
204
|
+
<p>
|
|
205
|
+
Nilai Bersarang Parsial: {partialNestedContent}
|
|
206
|
+
{/* Output: 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
|
+
Konten Bersarang Lengkap: {JSON.stringify(fullNestedContent)}
|
|
227
|
+
{/* Output: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
228
|
+
</p>
|
|
229
|
+
<p>
|
|
230
|
+
Nilai Bersarang Parsial: {partialNestedContent}
|
|
231
|
+
{/* Output: 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
|
+
Konten Bersarang Lengkap: {JSON.stringify(fullNestedContent)}
|
|
252
|
+
{/* Output: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
253
|
+
</p>
|
|
254
|
+
<p>
|
|
255
|
+
Nilai Bersarang Parsial: {partialNestedContent}
|
|
256
|
+
{/* Output: 0 */}
|
|
257
|
+
</p>
|
|
258
|
+
</div>
|
|
259
|
+
);
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
module.exports = NestComponent;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Sumber Daya Tambahan
|
|
266
|
+
|
|
267
|
+
Untuk informasi lebih rinci tentang konfigurasi dan penggunaan, lihat sumber daya berikut:
|
|
268
|
+
|
|
269
|
+
- [Dokumentasi Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_cli.md)
|
|
270
|
+
- [Dokumentasi React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_create_react_app.md)
|
|
271
|
+
- [Dokumentasi Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_nextjs_15.md)
|
|
272
|
+
|
|
273
|
+
Sumber daya ini memberikan wawasan lebih lanjut tentang pengaturan dan penggunaan Intlayer di berbagai lingkungan dan dengan berbagai framework.
|