@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,362 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Roadmap
|
|
5
|
+
description: Temukan roadmap Intlayer. Lihat semua fitur yang telah diimplementasikan Intlayer, dan yang direncanakan untuk diimplementasikan.
|
|
6
|
+
keywords:
|
|
7
|
+
- Roadmap
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internasionalisasi
|
|
10
|
+
- CMS
|
|
11
|
+
- Sistem Manajemen Konten
|
|
12
|
+
- Editor Visual
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- roadmap
|
|
16
|
+
history:
|
|
17
|
+
- version: 5.5.10
|
|
18
|
+
date: 2025-06-30
|
|
19
|
+
changes: Menambahkan dukungan Preact dan Nuxt, Server MCP, memperbarui CLI
|
|
20
|
+
- version: 5.5.11
|
|
21
|
+
date: 2025-06-29
|
|
22
|
+
changes: Menambahkan perintah `docs`
|
|
23
|
+
- version: 5.5.10
|
|
24
|
+
date: 2025-06-29
|
|
25
|
+
changes: Inisialisasi riwayat
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Intlayer: Ikhtisar Fitur & Roadmap
|
|
29
|
+
|
|
30
|
+
Intlayer adalah solusi manajemen konten dan internasionalisasi yang dirancang untuk mempermudah cara Anda mendeklarasikan, mengelola, dan memperbarui konten di seluruh aplikasi Anda. Solusi ini menawarkan fitur-fitur kuat seperti deklarasi konten terpusat atau terdistribusi, opsi internasionalisasi yang luas, dukungan Markdown, rendering kondisional, integrasi TypeScript/JavaScript/JSON, dan banyak lagi. Berikut adalah gambaran menyeluruh tentang apa yang saat ini disediakan oleh Intlayer, diikuti dengan fitur-fitur roadmap yang akan datang.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Daftar Isi
|
|
35
|
+
|
|
36
|
+
<TOC/>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Fitur Saat Ini
|
|
41
|
+
|
|
42
|
+
### 1. Deklarasi Konten
|
|
43
|
+
|
|
44
|
+
#### Terpusat atau Terdistribusi
|
|
45
|
+
|
|
46
|
+
- **Terpusat**: Deklarasikan semua konten Anda dalam satu file besar di dasar aplikasi Anda, mirip dengan i18next, sehingga Anda dapat mengelola semuanya di satu tempat.
|
|
47
|
+
- **Terdistribusi**: Sebagai alternatif, pisahkan konten Anda ke dalam file-file terpisah pada tingkat komponen atau fitur untuk pemeliharaan yang lebih baik. Ini menjaga konten Anda tetap dekat dengan kode yang relevan (komponen, pengujian, Storybook, dll.). Menghapus sebuah komponen memastikan konten terkait juga dihapus, mencegah data sisa yang mengacaukan basis kode Anda.
|
|
48
|
+
|
|
49
|
+
> Sumber Daya:
|
|
50
|
+
>
|
|
51
|
+
> - [Deklarasi Konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md)
|
|
52
|
+
|
|
53
|
+
### 2. Internasionalisasi
|
|
54
|
+
|
|
55
|
+
- Mendukung **230 bahasa dan lokal** (termasuk varian regional seperti Prancis (Perancis), Inggris (Kanada), Inggris (UK), Portugis (Portugal), dll.).
|
|
56
|
+
- Kelola terjemahan untuk semua lokal ini dengan mudah dari satu tempat.
|
|
57
|
+
|
|
58
|
+
> Sumber Daya:
|
|
59
|
+
>
|
|
60
|
+
> - [Internasionalisasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/translation.md)
|
|
61
|
+
|
|
62
|
+
### 3. Dukungan Markdown
|
|
63
|
+
|
|
64
|
+
- Deklarasikan konten menggunakan **Markdown**, memungkinkan Anda secara otomatis memformat teks dengan paragraf, judul, tautan, dan lainnya.
|
|
65
|
+
- Ideal untuk posting blog, artikel, halaman dokumentasi, atau skenario apa pun yang membutuhkan pemformatan teks kaya.
|
|
66
|
+
|
|
67
|
+
> Sumber Daya:
|
|
68
|
+
>
|
|
69
|
+
> - [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/markdown.md)
|
|
70
|
+
|
|
71
|
+
### 4. Dukungan file eksternal
|
|
72
|
+
|
|
73
|
+
- Impor konten dari file eksternal dalam format teks, seperti TXT, HTML, JSON, YAML, atau CSV.
|
|
74
|
+
- Gunakan fungsi `file` di Intlayer untuk menyematkan konten file eksternal ke dalam dictionary, memastikan integrasi mulus dengan Intlayer Visual Editor dan CMS.
|
|
75
|
+
- Mendukung pembaruan konten dinamis, artinya ketika file sumber dimodifikasi, konten akan diperbarui secara otomatis di dalam Intlayer.
|
|
76
|
+
- Memungkinkan manajemen konten multibahasa dengan menghubungkan file Markdown spesifik bahasa secara dinamis.
|
|
77
|
+
|
|
78
|
+
> Sumber Daya:
|
|
79
|
+
>
|
|
80
|
+
> - [Penyisipan Konten File](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/file.md)
|
|
81
|
+
|
|
82
|
+
### 5. Konten Dinamis & Pengambilan Fungsi
|
|
83
|
+
|
|
84
|
+
Intlayer menyediakan berbagai metode untuk menyisipkan dan mengelola konten dinamis, memastikan fleksibilitas dan adaptabilitas dalam penyampaian konten. Ini mencakup fungsi untuk penyisipan konten dinamis, rendering kondisional, enumerasi, penanaman, dan pengambilan fungsi.
|
|
85
|
+
|
|
86
|
+
1. Penyisipan Konten Dinamis
|
|
87
|
+
|
|
88
|
+
Gunakan fungsi insert untuk mendefinisikan konten dengan placeholder ({{name}}, {{age}}, dll).
|
|
89
|
+
|
|
90
|
+
Memungkinkan konten seperti template yang beradaptasi berdasarkan input pengguna, respons API, atau sumber data dinamis lainnya.
|
|
91
|
+
|
|
92
|
+
Bekerja dengan mulus dengan konfigurasi TypeScript, ESM, CommonJS, dan JSON.
|
|
93
|
+
|
|
94
|
+
Mudah diintegrasikan dengan React Intlayer dan Next Intlayer menggunakan useIntlayer.
|
|
95
|
+
|
|
96
|
+
2. Rendering Kondisional
|
|
97
|
+
|
|
98
|
+
Mendefinisikan konten yang beradaptasi berdasarkan kondisi spesifik pengguna, seperti bahasa atau status autentikasi.
|
|
99
|
+
|
|
100
|
+
Menyesuaikan pengalaman personal tanpa menduplikasi konten di beberapa file.
|
|
101
|
+
|
|
102
|
+
3. Enumerasi & Pluralisasi
|
|
103
|
+
|
|
104
|
+
Gunakan fungsi enu untuk mendefinisikan variasi konten berdasarkan nilai numerik, rentang, atau kunci khusus.
|
|
105
|
+
|
|
106
|
+
Memastikan pemilihan otomatis frasa yang tepat berdasarkan nilai yang diberikan.
|
|
107
|
+
|
|
108
|
+
Mendukung aturan pengurutan, memastikan perilaku yang dapat diprediksi.
|
|
109
|
+
|
|
110
|
+
4. Nesting & Referensi Sub-Konten
|
|
111
|
+
|
|
112
|
+
Gunakan fungsi nest untuk mereferensikan dan menggunakan kembali konten dari kamus lain, mengurangi duplikasi.
|
|
113
|
+
|
|
114
|
+
Mendukung manajemen konten yang terstruktur dan hierarkis untuk pemeliharaan yang lebih baik.
|
|
115
|
+
|
|
116
|
+
5. Pengambilan Fungsi
|
|
117
|
+
|
|
118
|
+
Intlayer memungkinkan konten dideklarasikan sebagai fungsi, memungkinkan pengambilan konten secara sinkron dan asinkron.
|
|
119
|
+
|
|
120
|
+
Fungsi Sinkron: Konten dihasilkan secara dinamis saat build time.
|
|
121
|
+
|
|
122
|
+
Fungsi Asinkron: Mengambil data dari sumber eksternal (misalnya, API, basis data) secara dinamis.
|
|
123
|
+
|
|
124
|
+
Integrasi: Bekerja dengan TypeScript, ESM, dan CommonJS tetapi tidak didukung dalam file konten JSON atau remote.
|
|
125
|
+
|
|
126
|
+
### 6. Format Deklarasi Konten
|
|
127
|
+
|
|
128
|
+
Intlayer mendukung **TypeScript** (juga JavaScript) dan **JSON** untuk mendeklarasikan konten.
|
|
129
|
+
|
|
130
|
+
- **TypeScript**:
|
|
131
|
+
- Memastikan struktur konten Anda benar dan tidak ada terjemahan yang hilang.
|
|
132
|
+
- Menawarkan mode validasi yang ketat atau lebih fleksibel.
|
|
133
|
+
- Memungkinkan pengambilan data dinamis dari variabel, fungsi, atau API eksternal.
|
|
134
|
+
|
|
135
|
+
- **JSON**:
|
|
136
|
+
- Memudahkan integrasi dengan alat eksternal (seperti editor visual) karena formatnya yang standar.
|
|
137
|
+
|
|
138
|
+
> Sumber Daya:
|
|
139
|
+
>
|
|
140
|
+
> - [Format Deklarasi Konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md)
|
|
141
|
+
|
|
142
|
+
### 7. Purging, optimasi bundle, dan impor dinamis
|
|
143
|
+
|
|
144
|
+
- Intlayer mengintegrasikan plugin `Babel` dan `SWC` untuk mengoptimalkan bundle Anda dan meningkatkan performa. Plugin ini menggantikan impor, sehingga hanya kamus yang digunakan yang diimpor ke dalam bundle.
|
|
145
|
+
- Dengan mengaktifkan opsi ini, Intlayer juga memungkinkan untuk mengimpor konten kamus secara dinamis hanya untuk locale saat ini.
|
|
146
|
+
|
|
147
|
+
> Sumber Daya:
|
|
148
|
+
>
|
|
149
|
+
> - [Konfigurasi Build](https://intlayer.org/doc/concept/configuration#build-configuration)
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Integrasi dengan Framework & Lingkungan
|
|
154
|
+
|
|
155
|
+
### 1. Next.js
|
|
156
|
+
|
|
157
|
+
#### a. Komponen Server dan Client
|
|
158
|
+
|
|
159
|
+
- Menyediakan **pendekatan manajemen konten terpadu** untuk komponen server dan client.
|
|
160
|
+
- Menawarkan konteks bawaan untuk komponen server, mempermudah implementasi dibandingkan solusi lain.
|
|
161
|
+
|
|
162
|
+
#### b. Metadata, Sitemap, dan robots.txt
|
|
163
|
+
|
|
164
|
+
- Mengambil dan menyuntikkan konten secara dinamis untuk menghasilkan metadata, sitemap, atau file `robots.txt`.
|
|
165
|
+
|
|
166
|
+
#### c. Middleware
|
|
167
|
+
|
|
168
|
+
- Menambahkan middleware untuk **mengalihkan pengguna** ke konten berdasarkan bahasa pilihan mereka.
|
|
169
|
+
|
|
170
|
+
#### d. Kompatibilitas Turbopack dan Webpack
|
|
171
|
+
|
|
172
|
+
- Sepenuhnya kompatibel dengan Turbopack Next.js yang baru serta Webpack tradisional.
|
|
173
|
+
|
|
174
|
+
> Sumber Daya:
|
|
175
|
+
>
|
|
176
|
+
> - [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_nextjs_15.md)
|
|
177
|
+
|
|
178
|
+
### 2. Vite
|
|
179
|
+
|
|
180
|
+
- Serupa dengan Next.js, Anda dapat mengintegrasikan Intlayer dengan Vite dan menggunakan **middleware** untuk mengarahkan pengguna ke konten berdasarkan bahasa pilihan mereka.
|
|
181
|
+
|
|
182
|
+
> Sumber Daya:
|
|
183
|
+
>
|
|
184
|
+
> - [Vite](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_vite+react.md)
|
|
185
|
+
|
|
186
|
+
### 3. Express
|
|
187
|
+
|
|
188
|
+
- Mengelola konten dan melakukan internasionalisasi layanan backend yang dibangun dengan Express.
|
|
189
|
+
- Personalisasi email, pesan kesalahan, notifikasi push, dan lainnya dengan teks yang dilokalkan.
|
|
190
|
+
|
|
191
|
+
> Sumber Daya:
|
|
192
|
+
>
|
|
193
|
+
> - [Express](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_express.md)
|
|
194
|
+
|
|
195
|
+
### 4. React Native
|
|
196
|
+
|
|
197
|
+
- Integrasikan Intlayer dengan React Native untuk mengelola konten dan menginternasionalkan aplikasi mobile Anda.
|
|
198
|
+
- Mendukung platform iOS dan Android.
|
|
199
|
+
|
|
200
|
+
> Sumber Daya:
|
|
201
|
+
>
|
|
202
|
+
> - [React Native](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_react_native.md)
|
|
203
|
+
|
|
204
|
+
### 5. Lynx
|
|
205
|
+
|
|
206
|
+
- Integrasikan Intlayer dengan Lynx untuk mengelola konten dan menginternasionalkan aplikasi mobile Anda.
|
|
207
|
+
- Mendukung platform iOS dan Android.
|
|
208
|
+
|
|
209
|
+
> Sumber Daya:
|
|
210
|
+
>
|
|
211
|
+
> - [Lynx](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_lynx.md)
|
|
212
|
+
|
|
213
|
+
### 6. Vue
|
|
214
|
+
|
|
215
|
+
- Integrasikan Intlayer dengan Vue untuk mengelola konten dan menginternasionalkan aplikasi Vite / Vue.js Anda.
|
|
216
|
+
|
|
217
|
+
> Sumber Daya:
|
|
218
|
+
>
|
|
219
|
+
> - [Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_vue.md)
|
|
220
|
+
|
|
221
|
+
### 7. Nuxt
|
|
222
|
+
|
|
223
|
+
- Integrasikan Intlayer dengan Nuxt untuk mengelola konten dan menginternasionalkan aplikasi Nuxt / Vue.js Anda.
|
|
224
|
+
- Mendukung komponen server dan klien.
|
|
225
|
+
- Mengintegrasikan routing dan middleware untuk mengarahkan pengguna ke konten berdasarkan bahasa pilihan mereka.
|
|
226
|
+
|
|
227
|
+
> Sumber Daya:
|
|
228
|
+
>
|
|
229
|
+
> - [Nuxt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_nuxt.md)
|
|
230
|
+
|
|
231
|
+
### 8. Preact
|
|
232
|
+
|
|
233
|
+
- Integrasikan Intlayer dengan Preact untuk mengelola konten dan menginternasionalkan aplikasi Preact Anda.
|
|
234
|
+
|
|
235
|
+
> Sumber Daya:
|
|
236
|
+
>
|
|
237
|
+
> - [Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_with_preact.md)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Editor Visual dan CMS
|
|
242
|
+
|
|
243
|
+
### 1. Editor Visual Lokal
|
|
244
|
+
|
|
245
|
+
- Editor visual lokal **gratis** yang memungkinkan Anda mengedit konten aplikasi dengan langsung memilih elemen di halaman.
|
|
246
|
+
- Mengintegrasikan fitur AI untuk membantu:
|
|
247
|
+
- Menghasilkan atau memperbaiki terjemahan
|
|
248
|
+
- Memeriksa sintaks dan ejaan
|
|
249
|
+
- Menyarankan perbaikan
|
|
250
|
+
- Dapat dihosting secara lokal atau dideploy di server jarak jauh.
|
|
251
|
+
|
|
252
|
+
> Sumber daya:
|
|
253
|
+
>
|
|
254
|
+
> - [Editor Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md)
|
|
255
|
+
|
|
256
|
+
### 2. Intlayer CMS (Remote)
|
|
257
|
+
|
|
258
|
+
- Solusi **CMS yang dihosting** yang memungkinkan Anda mengelola konten aplikasi secara online, tanpa menyentuh codebase Anda.
|
|
259
|
+
- Menyediakan fitur berbantuan AI untuk mendeklarasikan konten, mengelola terjemahan, dan memperbaiki kesalahan sintaks atau ejaan.
|
|
260
|
+
- Berinteraksi dengan konten Anda melalui antarmuka aplikasi langsung Anda.
|
|
261
|
+
|
|
262
|
+
> Sumber daya:
|
|
263
|
+
>
|
|
264
|
+
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md)
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Ekstensi IDE
|
|
269
|
+
|
|
270
|
+
- Ekstensi untuk IDE utama yang menyediakan **antarmuka grafis** untuk mengelola terjemahan lokal dan jarak jauh.
|
|
271
|
+
- Fitur dapat mencakup pembuatan otomatis file deklarasi konten untuk komponen, integrasi langsung dengan Intlayer CMS, dan validasi waktu nyata.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Server MCP
|
|
276
|
+
|
|
277
|
+
- Sebuah **server MCP** yang memungkinkan Anda mengelola konten dan terjemahan menggunakan alat terintegrasi di IDE Anda.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Intlayer CLI
|
|
282
|
+
|
|
283
|
+
- **Terjemahan dan pembuatan file**: Jalankan audit pada file konten Anda untuk menghasilkan terjemahan yang hilang dan meninjau inkonsistensi.
|
|
284
|
+
- **Interaksi Jarak Jauh**: Dorong konten lokal Anda ke CMS jarak jauh atau tarik konten jarak jauh untuk diintegrasikan ke dalam aplikasi lokal Anda.
|
|
285
|
+
- **Terjemahan dan review dokumen**: Terjemahkan dan tinjau dokumentasi / file Anda, dll.
|
|
286
|
+
|
|
287
|
+
> Sumber daya:
|
|
288
|
+
>
|
|
289
|
+
> - [CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_cli.md)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Lingkungan
|
|
294
|
+
|
|
295
|
+
- Gunakan **variabel lingkungan** untuk mengonfigurasi Intlayer secara berbeda di lingkungan produksi, pengujian, dan lokal.
|
|
296
|
+
- Tentukan editor visual atau proyek CMS jarak jauh mana yang akan ditargetkan tergantung pada lingkungan Anda.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Pembaruan Konten Hot
|
|
301
|
+
|
|
302
|
+
- Saat menggunakan kamus jarak jauh dan Intlayer CMS, Anda dapat **memperbarui konten aplikasi Anda secara langsung**, tanpa perlu melakukan redeploy.
|
|
303
|
+
|
|
304
|
+
> Sumber daya:
|
|
305
|
+
>
|
|
306
|
+
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md)
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Fitur Mendatang
|
|
311
|
+
|
|
312
|
+
### 1. Pengujian A/B & Personalisasi
|
|
313
|
+
|
|
314
|
+
- **Pengujian Multivariat**: Uji berbagai versi dari sebuah konten untuk melihat mana yang berkinerja terbaik (misalnya, tingkat klik yang lebih tinggi).
|
|
315
|
+
- **Personalisasi Berbasis Data**: Tampilkan konten yang berbeda berdasarkan demografi pengguna (jenis kelamin, usia, lokasi, dll.), atau pola perilaku lainnya.
|
|
316
|
+
- **Iterasi Otomatis**: Memungkinkan AI untuk secara otomatis menguji beberapa versi dan memilih yang terbaik atau merekomendasikan opsi untuk persetujuan admin.
|
|
317
|
+
|
|
318
|
+
### 2. Versi
|
|
319
|
+
|
|
320
|
+
- Pulihkan versi sebelumnya dari konten Anda dengan **versi konten**.
|
|
321
|
+
- Lacak perubahan dari waktu ke waktu dan kembalikan ke keadaan sebelumnya jika diperlukan.
|
|
322
|
+
|
|
323
|
+
### 3. Terjemahan Otomatis
|
|
324
|
+
|
|
325
|
+
- Untuk pengguna CMS jarak jauh, **pembuatan terjemahan dengan satu klik** untuk bahasa yang didukung.
|
|
326
|
+
- Sistem akan menghasilkan terjemahan di latar belakang dan kemudian meminta Anda untuk validasi atau pengeditan.
|
|
327
|
+
|
|
328
|
+
### 4. Peningkatan SEO
|
|
329
|
+
|
|
330
|
+
- Alat untuk **menganalisis kata kunci**, niat pencarian pengguna, dan tren yang sedang berkembang.
|
|
331
|
+
- Menyarankan konten yang ditingkatkan untuk peringkat yang lebih baik, dan melacak kinerja jangka panjang.
|
|
332
|
+
|
|
333
|
+
### 5. Kompatibilitas dengan Lebih Banyak Framework
|
|
334
|
+
|
|
335
|
+
- Upaya sedang dilakukan untuk mendukung **Solid, Svelte, Angular**, dan lainnya.
|
|
336
|
+
- Bertujuan agar Intlayer kompatibel dengan **aplikasi berbasis JavaScript apa pun**.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Kesimpulan
|
|
341
|
+
|
|
342
|
+
- Sistem akan menghasilkan terjemahan di latar belakang dan kemudian meminta Anda untuk validasi atau suntingan.
|
|
343
|
+
|
|
344
|
+
### 4. Peningkatan SEO
|
|
345
|
+
|
|
346
|
+
- Alat untuk **menganalisis kata kunci**, niat pencarian pengguna, dan tren yang sedang berkembang.
|
|
347
|
+
- Menyarankan konten yang ditingkatkan untuk peringkat yang lebih baik, dan melacak kinerja jangka panjang.
|
|
348
|
+
|
|
349
|
+
### 5. Kompatibilitas dengan Lebih Banyak Framework
|
|
350
|
+
|
|
351
|
+
- Upaya sedang dilakukan untuk mendukung **Solid, Svelte, Angular**, dan lainnya.
|
|
352
|
+
- Bertujuan agar Intlayer kompatibel dengan **aplikasi berbasis JavaScript apa pun**.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Kesimpulan
|
|
357
|
+
|
|
358
|
+
Intlayer bertujuan menjadi solusi satu atap untuk manajemen konten dan internasionalisasi. Fokusnya pada fleksibilitas (file terpusat atau terdistribusi), dukungan bahasa yang luas, integrasi mudah dengan framework dan bundler modern, serta fitur bertenaga AI yang kuat. Seiring dengan hadirnya kemampuan baru, seperti pengujian A/B, versioning, dan terjemahan otomatis, Intlayer akan terus menyederhanakan alur kerja konten dan meningkatkan pengalaman pengguna di berbagai platform.
|
|
359
|
+
|
|
360
|
+
Tetap nantikan rilis berikutnya, dan jangan ragu untuk menjelajahi fitur yang ada untuk melihat bagaimana Intlayer dapat membantu memusatkan dan mengoptimalkan proses manajemen konten Anda hari ini!
|
|
361
|
+
|
|
362
|
+
---
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-10-05
|
|
4
|
+
title: Menguji konten Anda
|
|
5
|
+
description: Temukan cara menguji konten Anda dengan Intlayer.
|
|
6
|
+
keywords:
|
|
7
|
+
- Pengujian
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internasionalisasi
|
|
10
|
+
- CMS
|
|
11
|
+
- Sistem Manajemen Konten
|
|
12
|
+
- Editor Visual
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- testing
|
|
16
|
+
history:
|
|
17
|
+
- version: 6.0.1
|
|
18
|
+
date: 2025-10-05
|
|
19
|
+
changes: Membuat pengujian asinkron dan menambahkan opsi build
|
|
20
|
+
- version: 6.0.0
|
|
21
|
+
date: 2025-09-20
|
|
22
|
+
changes: Pengenalan pengujian
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Menguji konten Anda
|
|
26
|
+
|
|
27
|
+
Panduan ini menunjukkan cara memverifikasi secara otomatis bahwa kamus Anda lengkap, menangkap terjemahan yang hilang sebelum pengiriman, dan menguji UI yang dilokalisasi dalam aplikasi Anda.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Apa yang bisa Anda uji
|
|
32
|
+
|
|
33
|
+
- **Terjemahan yang hilang**: gagal CI jika ada locale yang diperlukan hilang untuk kamus apa pun.
|
|
34
|
+
- **Rendering UI yang dilokalisasi**: render komponen dengan penyedia locale tertentu dan pastikan teks/atribut yang terlihat.
|
|
35
|
+
- **Audit saat build**: jalankan audit cepat secara lokal melalui CLI.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Mulai cepat: audit melalui CLI
|
|
40
|
+
|
|
41
|
+
Jalankan audit dari root proyek Anda:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx intlayer content test
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Flag yang berguna:
|
|
48
|
+
|
|
49
|
+
- `--env-file [path]`: memuat variabel lingkungan dari sebuah file.
|
|
50
|
+
- `-e, --env [name]`: memilih profil lingkungan.
|
|
51
|
+
- `--base-dir [path]`: menetapkan direktori dasar aplikasi untuk resolusi.
|
|
52
|
+
- `--verbose`: menampilkan log secara detail.
|
|
53
|
+
- `--prefix [label]`: menambahkan prefix pada baris log.
|
|
54
|
+
- `--build [build]`: membangun kamus sebelum pengujian untuk memastikan konten terbaru. True akan memaksa build, false akan melewati build, undefined akan menggunakan cache build.
|
|
55
|
+
|
|
56
|
+
Catatan: CLI mencetak laporan terperinci tetapi tidak keluar dengan kode non-zero saat terjadi kegagalan. Untuk pengujian CI, tambahkan unit test (di bawah) yang memastikan tidak ada locale wajib yang hilang.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Pengujian programatik (Vitest/Jest)
|
|
61
|
+
|
|
62
|
+
Gunakan Intlayer CLI API untuk memastikan tidak ada terjemahan yang hilang untuk locale wajib Anda.
|
|
63
|
+
|
|
64
|
+
```ts fileName=i18n.test.ts
|
|
65
|
+
/* @vitest-environment node */
|
|
66
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
67
|
+
import { describe, expect, it } from "vitest";
|
|
68
|
+
|
|
69
|
+
describe("translations", () => {
|
|
70
|
+
it("has no missing required locales", async () => {
|
|
71
|
+
const result = await listMissingTranslations();
|
|
72
|
+
|
|
73
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
74
|
+
// Berguna saat pengujian gagal secara lokal atau di CI
|
|
75
|
+
console.log(result.missingTranslations);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Setara Jest:
|
|
84
|
+
|
|
85
|
+
```ts fileName=i18n.test.ts
|
|
86
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
87
|
+
|
|
88
|
+
test("tidak ada locale wajib yang hilang", async () => {
|
|
89
|
+
const result = await listMissingTranslations();
|
|
90
|
+
|
|
91
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
92
|
+
// Berguna saat pengujian gagal secara lokal atau di CI
|
|
93
|
+
console.log(result.missingTranslations);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Cara kerjanya:
|
|
101
|
+
|
|
102
|
+
- Intlayer membaca konfigurasi Anda (locales, requiredLocales) dan kamus yang dideklarasikan, lalu melaporkan:
|
|
103
|
+
- `missingTranslations`: per kunci, locale mana yang hilang dan dari file mana.
|
|
104
|
+
- `missingLocales`: gabungan dari semua locale yang hilang.
|
|
105
|
+
- `missingRequiredLocales`: subset terbatas pada `requiredLocales` (atau semua locales jika `requiredLocales` tidak disetel).
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Menguji UI yang dilokalkan (React / Next.js)
|
|
110
|
+
|
|
111
|
+
Render komponen di bawah penyedia Intlayer dan lakukan assert pada konten yang terlihat.
|
|
112
|
+
|
|
113
|
+
Contoh React (Testing Library):
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
import { IntlayerProvider } from "react-intlayer/client";
|
|
117
|
+
import { render, screen } from "@testing-library/react";
|
|
118
|
+
import { MyComponent } from "./MyComponent";
|
|
119
|
+
|
|
120
|
+
test("menampilkan judul yang dilokalkan dalam bahasa Inggris", () => {
|
|
121
|
+
render(
|
|
122
|
+
<IntlayerProvider locale="en-US">
|
|
123
|
+
<MyComponent />
|
|
124
|
+
</IntlayerProvider>
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
expect(screen.getByText("Expected English title")).toBeInTheDocument();
|
|
128
|
+
});
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Contoh Next.js (App Router): gunakan pembungkus framework:
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
import { IntlayerClientProvider } from "next-intlayer/client";
|
|
135
|
+
import { render, screen } from "@testing-library/react";
|
|
136
|
+
import { MyPage } from "./MyPage";
|
|
137
|
+
|
|
138
|
+
test("menampilkan heading yang dilokalkan dalam bahasa Prancis", () => {
|
|
139
|
+
render(
|
|
140
|
+
<IntlayerClientProvider locale="fr-FR">
|
|
141
|
+
<MyPage />
|
|
142
|
+
</IntlayerClientProvider>
|
|
143
|
+
);
|
|
144
|
+
expect(
|
|
145
|
+
screen.getByRole("heading", { name: "Titre attendu" })
|
|
146
|
+
).toBeInTheDocument();
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Tips:
|
|
151
|
+
|
|
152
|
+
- Saat Anda membutuhkan nilai string mentah untuk atribut (misalnya, `aria-label`), akses field `.value` yang dikembalikan oleh `useIntlayer` di React.
|
|
153
|
+
- Simpan kamus berdekatan dengan komponen untuk memudahkan pengujian unit dan pembersihan.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Integrasi Berkelanjutan
|
|
158
|
+
|
|
159
|
+
Tambahkan pengujian yang akan membuat build gagal ketika terjemahan yang dibutuhkan hilang.
|
|
160
|
+
|
|
161
|
+
`package.json`:
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"scripts": {
|
|
166
|
+
"test:i18n": "vitest run -c"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Contoh GitHub Actions:
|
|
172
|
+
|
|
173
|
+
```yaml
|
|
174
|
+
name: CI
|
|
175
|
+
on: [push, pull_request]
|
|
176
|
+
jobs:
|
|
177
|
+
test:
|
|
178
|
+
runs-on: ubuntu-latest
|
|
179
|
+
steps:
|
|
180
|
+
- uses: actions/checkout@v4
|
|
181
|
+
- uses: actions/setup-node@v4
|
|
182
|
+
with:
|
|
183
|
+
node-version: 20
|
|
184
|
+
- run: npm ci
|
|
185
|
+
- run: npm run test:i18n
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Opsional: jalankan audit CLI untuk ringkasan yang mudah dibaca manusia bersamaan dengan pengujian:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npx intlayer content test --verbose
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Pemecahan Masalah
|
|
197
|
+
|
|
198
|
+
- Pastikan konfigurasi Intlayer Anda mendefinisikan `locales` dan (opsional) `requiredLocales`.
|
|
199
|
+
- Jika aplikasi Anda menggunakan kamus dinamis atau jarak jauh, jalankan pengujian di lingkungan di mana kamus tersebut tersedia.
|
|
200
|
+
- Untuk monorepo campuran, gunakan `--base-dir` untuk mengarahkan CLI ke root aplikasi yang benar.
|
|
201
|
+
|
|
202
|
+
---
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-17
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
|
+
title: Ekstensi VS Code Resmi
|
|
5
|
+
description: Pelajari cara menggunakan ekstensi Intlayer di VS Code untuk meningkatkan alur kerja pengembangan Anda. Navigasi cepat antar konten yang dilokalisasi dan kelola kamus Anda dengan efisien.
|
|
6
|
+
keywords:
|
|
7
|
+
- Ekstensi VS Code
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Lokalisasi
|
|
10
|
+
- Alat Pengembangan
|
|
11
|
+
- React
|
|
12
|
+
- Next.js
|
|
13
|
+
- JavaScript
|
|
14
|
+
- TypeScript
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- vs-code-extension
|
|
18
|
+
history:
|
|
19
|
+
- version: 6.1.5
|
|
20
|
+
date: 2025-09-30
|
|
21
|
+
changes: Menambahkan gif demo
|
|
22
|
+
- version: 6.1.0
|
|
23
|
+
date: 2025-09-24
|
|
24
|
+
changes: Menambahkan bagian pemilihan lingkungan
|
|
25
|
+
- version: 6.0.0
|
|
26
|
+
date: 2025-09-22
|
|
27
|
+
changes: Tab Intlayer / Perintah Isi & Uji
|
|
28
|
+
- version: 5.5.10
|
|
29
|
+
date: 2025-06-29
|
|
30
|
+
changes: Inisialisasi riwayat
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Ekstensi VS Code Resmi
|
|
34
|
+
|
|
35
|
+
## Ikhtisar
|
|
36
|
+
|
|
37
|
+
[**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) adalah ekstensi resmi Visual Studio Code untuk **Intlayer**, yang dirancang untuk meningkatkan pengalaman pengembang saat bekerja dengan konten yang dilokalisasi dalam proyek Anda.
|
|
38
|
+
|
|
39
|
+

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

|
|
46
|
+
|
|
47
|
+
- **Navigasi Instan** – Melompat dengan cepat ke file konten yang benar saat mengklik kunci `useIntlayer`.
|
|
48
|
+
- **Isi Kamus** – Mengisi kamus dengan konten dari proyek Anda.
|
|
49
|
+
|
|
50
|
+

|
|
51
|
+
|
|
52
|
+
- **Akses Mudah ke Perintah Intlayer** – Membangun, mendorong, menarik, mengisi, menguji kamus konten dengan mudah.
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
- **Generator Deklarasi Konten** – Membuat file konten kamus dalam berbagai format (`.ts`, `.esm`, `.cjs`, `.json`).
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
- **Uji Kamus** – Uji kamus untuk terjemahan yang hilang.
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
- **Perbarui kamus Anda** – Perbarui kamus Anda dengan konten terbaru dari proyek Anda.
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
- **Tab Intlayer (Activity Bar)** – Jelajahi dan cari kamus dari tab samping khusus dengan toolbar dan aksi konteks (Build, Pull, Push, Fill, Refresh, Test, Create File).
|
|
69
|
+
|
|
70
|
+
## Penggunaan
|
|
71
|
+
|
|
72
|
+
### Navigasi Cepat
|
|
73
|
+
|
|
74
|
+
1. Buka proyek yang menggunakan **react-intlayer**.
|
|
75
|
+
2. Temukan pemanggilan `useIntlayer()`, seperti:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
const content = useIntlayer("app");
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
3. **Command-click** (`⌘+Click` di macOS) atau **Ctrl+Click** (di Windows/Linux) pada kunci (misalnya, `"app"`).
|
|
82
|
+
4. VS Code akan secara otomatis membuka file kamus yang sesuai, misalnya, `src/app.content.ts`.
|
|
83
|
+
|
|
84
|
+
### Tab Intlayer (Activity Bar)
|
|
85
|
+
|
|
86
|
+
Gunakan tab samping untuk menjelajahi dan mengelola kamus:
|
|
87
|
+
|
|
88
|
+
- Buka ikon Intlayer di Activity Bar.
|
|
89
|
+
- Di **Search**, ketik untuk memfilter kamus dan entri secara real time.
|
|
90
|
+
- Di **Dictionaries**, jelajahi environment, kamus, dan file. Gunakan toolbar untuk Build, Pull, Push, Fill, Refresh, Test, dan Create Dictionary File. Klik kanan untuk aksi konteks (Pull/Push pada kamus, Fill pada file). File editor saat ini akan otomatis terlihat di pohon saat berlaku.
|
|
91
|
+
|
|
92
|
+
### Mengakses perintah
|
|
93
|
+
|
|
94
|
+
Anda dapat mengakses perintah dari **Command Palette**.
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
- **Build Dictionaries**
|
|
101
|
+
- **Push Dictionaries**
|
|
102
|
+
- **Pull Dictionaries**
|
|
103
|
+
- **Fill Dictionaries**
|
|
104
|
+
- **Test Dictionaries**
|
|
105
|
+
- **Create Dictionary File**
|
|
106
|
+
|
|
107
|
+
### Memuat Variabel Lingkungan
|
|
108
|
+
|
|
109
|
+
Intlayer menyarankan untuk menyimpan kunci API AI Anda, serta client ID dan secret Intlayer dalam variabel lingkungan.
|
|
110
|
+
|
|
111
|
+
Ekstensi dapat memuat variabel lingkungan dari workspace Anda untuk menjalankan perintah Intlayer dengan konteks yang benar.
|
|
112
|
+
|
|
113
|
+
- **Urutan pemuatan (berdasarkan prioritas)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
|
|
114
|
+
- **Non-destruktif**: nilai `process.env` yang sudah ada tidak akan ditimpa.
|
|
115
|
+
- **Lingkup**: file diselesaikan dari direktori dasar yang dikonfigurasi (default ke root workspace).
|
|
116
|
+
|
|
117
|
+
#### Memilih environment aktif
|
|
118
|
+
|
|
119
|
+
- **Command Palette**: buka palette dan jalankan `Intlayer: Select Environment`, lalu pilih environment (misalnya, `development`, `staging`, `production`). Ekstensi akan mencoba memuat file pertama yang tersedia dalam daftar prioritas di atas dan menampilkan notifikasi seperti “Loaded env from .env.<env>.local”.
|
|
120
|
+
- **Settings**: buka `Settings → Extensions → Intlayer`, dan atur:
|
|
121
|
+
- **Environment**: nama environment yang digunakan untuk menyelesaikan file `.env.<env>*`.
|
|
122
|
+
- (Opsional) **Env File**: jalur eksplisit ke file `.env`. Jika disediakan, ini akan memiliki prioritas lebih tinggi daripada daftar yang diinferensikan.
|
|
123
|
+
|
|
124
|
+
#### Monorepos dan direktori kustom
|
|
125
|
+
|
|
126
|
+
Jika file `.env` Anda berada di luar root workspace, atur **Base Directory** di `Settings → Extensions → Intlayer`. Loader akan mencari file `.env` relatif terhadap direktori tersebut.
|
|
@@ -181,6 +181,6 @@ Consulta i confronti e i modelli nel riepilogo focalizzato su Next.js: https://i
|
|
|
181
181
|
- React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
|
|
182
182
|
- TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
|
|
183
183
|
- Configurazione Next.js: https://intlayer.org/doc/environment/nextjs
|
|
184
|
-
- Perché Intlayer vs. next-intl vs. next-i18next
|
|
184
|
+
- Perché Intlayer vs. next-intl vs. next-i18next - https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
|
|
185
185
|
|
|
186
186
|
Queste pagine includono la configurazione end-to-end, i provider, il routing e gli helper SEO.
|