@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,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Bagaimana cara menyesuaikan daftar locale?
|
|
5
|
+
description: Pelajari cara menyesuaikan daftar locale.
|
|
6
|
+
keywords:
|
|
7
|
+
- locales
|
|
8
|
+
- daftar
|
|
9
|
+
- intlayer
|
|
10
|
+
- konfigurasi
|
|
11
|
+
- availableLocales
|
|
12
|
+
- defaultLocale
|
|
13
|
+
- useLocale
|
|
14
|
+
- hook
|
|
15
|
+
- locale
|
|
16
|
+
- daftar
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- customized-locale-list
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Apakah mungkin untuk memblokir tipe bahasa, seperti Bahasa Inggris? Saya menambahkan bahasa Inggris dalam kamus saya tetapi saya belum ingin bahasa Inggris tersedia di situs web
|
|
23
|
+
|
|
24
|
+
Ya, Anda dapat memblokir tipe bahasa, seperti Bahasa Inggris, dengan menggunakan opsi `availableLocales` dalam konfigurasi Intlayer.
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { IntlayerConfig } from "intlayer";
|
|
28
|
+
|
|
29
|
+
const config: IntlayerConfig = {
|
|
30
|
+
locales: [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH],
|
|
31
|
+
availableLocales: [Locales.FRENCH, Locales.SPANISH],
|
|
32
|
+
defaultLocale: Locales.FRENCH,
|
|
33
|
+
};
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
atau
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { IntlayerConfig } from "intlayer";
|
|
40
|
+
|
|
41
|
+
const locales = [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH];
|
|
42
|
+
|
|
43
|
+
const config: IntlayerConfig = {
|
|
44
|
+
locales,
|
|
45
|
+
availableLocales: locales.filter((locale) => locale !== Locales.ENGLISH),
|
|
46
|
+
defaultLocale: Locales.FRENCH,
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Konfigurasi ini akan mengubah tipe fungsi `t()` Anda sehingga hanya mencakup locale yang tersedia.
|
|
51
|
+
|
|
52
|
+
Available locales bersifat opsional, jika Anda tidak menyediakannya, semua locale akan tersedia.
|
|
53
|
+
|
|
54
|
+
Berhati-hatilah, semua locale yang termasuk dalam opsi `availableLocales` harus juga termasuk dalam opsi `locales`.
|
|
55
|
+
|
|
56
|
+
Perlu dicatat bahwa jika Anda menggunakan hook `useLocale`, opsi `availableLocales` akan digunakan untuk mengatur akses ke daftar locale.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { useLocale } from "intlayer";
|
|
60
|
+
|
|
61
|
+
const { availableLocales } = useLocale();
|
|
62
|
+
|
|
63
|
+
console.log(availableLocales); // [Locales.FRENCH, Locales.SPANISH]
|
|
64
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Cara mengonfigurasi routing berbasis domain?
|
|
5
|
+
description: Pelajari cara mengonfigurasi routing berbasis domain.
|
|
6
|
+
keywords:
|
|
7
|
+
- domain
|
|
8
|
+
- routing
|
|
9
|
+
- intlayer
|
|
10
|
+
- konfigurasi
|
|
11
|
+
- middleware
|
|
12
|
+
- react-router
|
|
13
|
+
- vue-router
|
|
14
|
+
- next.js
|
|
15
|
+
- vite
|
|
16
|
+
- framework
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- domain-routing
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Bagaimana cara mengonfigurasi **routing berbasis domain** dengan Intlayer daripada menggunakan path `/[locale]/`?
|
|
23
|
+
|
|
24
|
+
## Jawaban singkat
|
|
25
|
+
|
|
26
|
+
Routing berbasis domain lebih sederhana daripada routing berbasis path (`example.com/[locale]/`) karena Anda dapat melewati semua konfigurasi middleware dan routing. Cukup deploy aplikasi Anda ke setiap domain bahasa dan atur satu variabel lingkungan per domain.
|
|
27
|
+
|
|
28
|
+
## Langkah demi langkah
|
|
29
|
+
|
|
30
|
+
1. **Deploy sekali untuk setiap domain** (`example.com`, `exemple.fr`, `ejemplo.es`, …).
|
|
31
|
+
2. Untuk setiap deployment, atur `LOCALE` (dan variabel lingkungan Intlayer yang biasa) ke locale yang harus dilayani oleh domain tersebut.
|
|
32
|
+
3. Referensikan variabel tersebut sebagai `defaultLocale` di `intlayer.config.[ts|js]` Anda.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
36
|
+
|
|
37
|
+
const config: IntlayerConfig = {
|
|
38
|
+
internationalization: {
|
|
39
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
40
|
+
defaultLocale: process.env.LOCALE, // 👈 domain menentukan locale
|
|
41
|
+
},
|
|
42
|
+
// ... sisa konfigurasi Anda
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default config;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Itu saja—cara kerjanya sama untuk **Next.js**, **Vite + React**, **Vite + Vue**, dll.
|
|
49
|
+
|
|
50
|
+
## Bagaimana jika setiap domain mengarah ke deployment **yang sama**?
|
|
51
|
+
|
|
52
|
+
Jika semua domain mengarah ke bundle aplikasi yang sama, Anda perlu mendeteksi host saat runtime dan mengoper locale secara manual melalui provider.
|
|
53
|
+
|
|
54
|
+
### Untuk Next.js
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
// src/IntlayerProvider.tsx
|
|
58
|
+
import {
|
|
59
|
+
IntlayerClientProvider,
|
|
60
|
+
type IntlayerClientProviderProps,
|
|
61
|
+
} from "next-intlayer";
|
|
62
|
+
import { IntlayerServerProvider } from "next-intlayer/server";
|
|
63
|
+
import type { FC } from "react";
|
|
64
|
+
|
|
65
|
+
export const IntlayerProvider: FC<IntlayerClientProviderProps> = ({
|
|
66
|
+
children,
|
|
67
|
+
locale,
|
|
68
|
+
}) => {
|
|
69
|
+
const resolvedLocale = locale ?? getLocaleFromHostname(); // 👈 dapatkan locale dari hostname jika locale tidak diberikan
|
|
70
|
+
return (
|
|
71
|
+
<IntlayerServerProvider locale={resolvedLocale}>
|
|
72
|
+
<IntlayerClientProvider locale={resolvedLocale}>
|
|
73
|
+
{children}
|
|
74
|
+
</IntlayerClientProvider>
|
|
75
|
+
</IntlayerServerProvider>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Untuk Vue
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
import { createApp } from "vue";
|
|
84
|
+
import { installIntlayer } from "vue-intlayer";
|
|
85
|
+
import App from "./App.vue";
|
|
86
|
+
import { router } from "./routes";
|
|
87
|
+
|
|
88
|
+
const app = createApp(App);
|
|
89
|
+
app.use(router);
|
|
90
|
+
installIntlayer(app, getLocaleFromHostname()); // 👈 pasang Intlayer dengan locale dari hostname
|
|
91
|
+
app.mount("#app");
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Ganti `getLocaleFromHostname()` dengan logika pencarian Anda sendiri.
|
|
95
|
+
|
|
96
|
+
## Perbarui pengalih locale Anda
|
|
97
|
+
|
|
98
|
+
Saat menggunakan routing berbasis domain, mengganti bahasa berarti menavigasi ke domain lain:
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
const { locale } = useLocale();
|
|
102
|
+
|
|
103
|
+
function changeLanguage(target: Locale) {
|
|
104
|
+
window.location.href = domainForLocale[target]; // 👈 navigasi ke domain sesuai locale target
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Manfaat routing berbasis domain
|
|
109
|
+
|
|
110
|
+
1. **Konfigurasi lebih sederhana**: Tidak perlu mengonfigurasi `intlayerMiddleware`, `generateStaticParams`, `react-router`, atau `vue-router`
|
|
111
|
+
2. **SEO yang lebih baik**: Setiap bahasa memiliki domainnya sendiri
|
|
112
|
+
3. **URL yang lebih bersih**: Tidak ada prefix locale di jalur
|
|
113
|
+
4. **Pemeliharaan yang lebih mudah**: Setiap deployment bahasa bersifat independen
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Kesalahan ESBuild
|
|
5
|
+
description: Pelajari cara memperbaiki kesalahan ESBuild.
|
|
6
|
+
keywords:
|
|
7
|
+
- esbuild
|
|
8
|
+
- error
|
|
9
|
+
- intlayer
|
|
10
|
+
- plugin
|
|
11
|
+
- framework
|
|
12
|
+
- next.js
|
|
13
|
+
- vite
|
|
14
|
+
- react-native
|
|
15
|
+
- lynx
|
|
16
|
+
slugs:
|
|
17
|
+
- frequent-questions
|
|
18
|
+
- esbuild-error
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Kesalahan ESBuild
|
|
22
|
+
|
|
23
|
+
Jika Anda mengalami kesalahan ESBuild selama proses build, kemungkinan plugin Intlayer belum dikonfigurasi dengan benar.
|
|
24
|
+
|
|
25
|
+
ESBuild bertanggung jawab untuk membaca file deklarasi konten (`.content.{ts,js,mjs,cjs,json}`) dan menghasilkan kamus yang sesuai di folder `.intlayer/dictionary`. Selain itu juga membaca file konfigurasi (`intlayer.config.ts`).
|
|
26
|
+
|
|
27
|
+
Intlayer menyediakan plugin untuk integrasi dengan bundler Anda. Plugin ini dirancang untuk mengalias komponen yang hanya dimaksudkan untuk dijalankan di sisi server.
|
|
28
|
+
|
|
29
|
+
Jika Anda menggunakan framework seperti Next.js (Webpack / Turbopack), Vite, atau React Native, Lynx, dll. Intlayer menyediakan plugin yang dapat Anda gunakan untuk mengintegrasikan Intlayer ke dalam aplikasi Anda. Jadi, lihat dokumentasi spesifik dari framework Anda untuk mempelajari cara mengintegrasikan plugin tersebut.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Cara mengambil locale dari cookies / headers?
|
|
5
|
+
description: Pelajari cara mengambil locale dari cookies / headers.
|
|
6
|
+
keywords:
|
|
7
|
+
- cookie
|
|
8
|
+
- headers
|
|
9
|
+
- intlayer
|
|
10
|
+
- locale
|
|
11
|
+
- hook
|
|
12
|
+
- useLocale
|
|
13
|
+
- useLocaleCookie
|
|
14
|
+
- next.js
|
|
15
|
+
- react-intlayer
|
|
16
|
+
- vue-intlayer
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- get-locale-cookie
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Cara mengambil locale dari cookies / headers
|
|
23
|
+
|
|
24
|
+
## Menggunakan Hooks (Direkomendasikan)
|
|
25
|
+
|
|
26
|
+
Untuk sebagian besar kasus penggunaan, disarankan untuk mengambil locale saat ini menggunakan hook `useLocale` karena ini otomatis ter-resolve. Ini bekerja serupa dengan composable `useLocale` di Vue.js.
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { useLocale } from "next-intlayer";
|
|
30
|
+
// or import { useLocale } from "react-intlayer";
|
|
31
|
+
// or import { useLocale } from "vue-intlayer";
|
|
32
|
+
|
|
33
|
+
// Penggunaan di sisi klien
|
|
34
|
+
const { locale } = useLocale();
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Untuk komponen server, Anda dapat mengimpornya dari:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { useLocale } from "next-intlayer/server";
|
|
41
|
+
|
|
42
|
+
const Test = () => {
|
|
43
|
+
const { locale } = useLocale();
|
|
44
|
+
return <>{locale}</>;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const Page = async ({ params }) => {
|
|
48
|
+
const { locale } = await params;
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<IntlayerServerProvider locale={locale}>
|
|
52
|
+
<Test />
|
|
53
|
+
</IntlayerServerProvider>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Ada juga hook `useLocaleCookie` yang hanya mengambil nilai cookie.
|
|
59
|
+
|
|
60
|
+
## Konfigurasi Cookie Manual
|
|
61
|
+
|
|
62
|
+
Anda dapat mendeklarasikan nama cookie kustom sebagai
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
import { type IntlayerConfig } from "intlayer";
|
|
66
|
+
|
|
67
|
+
const config: IntlayerConfig = {
|
|
68
|
+
middleware: {
|
|
69
|
+
cookieName: "myCustomLocaleCookie", // default adalah 'intlayer-locale'
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export default config;
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
kemudian mengambilnya sebagai
|
|
77
|
+
|
|
78
|
+
### Sisi Klien
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
// Menggunakan nama cookie default
|
|
82
|
+
const locale = document.cookie
|
|
83
|
+
.split("; ")
|
|
84
|
+
.find((row) => row.startsWith("intlayer-locale="))
|
|
85
|
+
?.split("=")[1];
|
|
86
|
+
|
|
87
|
+
// Menggunakan nama cookie kustom
|
|
88
|
+
const locale = document.cookie
|
|
89
|
+
.split("; ")
|
|
90
|
+
.find((row) => row.startsWith("myCustomLocaleCookie="))
|
|
91
|
+
?.split("=")[1];
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Sisi Server (Next.js)
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
import { cookies } from "next/headers";
|
|
98
|
+
|
|
99
|
+
// Menggunakan nama cookie default
|
|
100
|
+
const locale = cookies().get("intlayer-locale")?.value;
|
|
101
|
+
|
|
102
|
+
// Menggunakan nama cookie kustom
|
|
103
|
+
const locale = cookies().get("myCustomLocaleCookie")?.value;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Jika locale belum disetel
|
|
107
|
+
|
|
108
|
+
Locale disetel sebagai cookie hanya setelah pengguna secara eksplisit memilih locale. Secara default, untuk pengunjung baru, locale diinterpretasikan dari field headers.
|
|
109
|
+
|
|
110
|
+
Anda dapat mendeteksi locale yang disukai pengguna dari headers permintaan. Berikut adalah contoh cara menanganinya:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
/**
|
|
114
|
+
* Mendeteksi locale dari headers permintaan
|
|
115
|
+
*
|
|
116
|
+
* Header accept-language adalah yang paling penting untuk deteksi locale.
|
|
117
|
+
* Header ini berisi daftar kode bahasa dengan nilai kualitas (q-values) yang menunjukkan
|
|
118
|
+
* bahasa yang disukai pengguna berdasarkan urutan preferensi.
|
|
119
|
+
*
|
|
120
|
+
* Contoh: "en-US,en;q=0.9,fr;q=0.8,es;q=0.7"
|
|
121
|
+
* - en-US adalah bahasa utama (q=1.0 diasumsikan)
|
|
122
|
+
* - en adalah pilihan kedua (q=0.9)
|
|
123
|
+
* - fr adalah pilihan ketiga (q=0.8)
|
|
124
|
+
* - es adalah pilihan keempat (q=0.7)
|
|
125
|
+
*/
|
|
126
|
+
import { localeDetector } from "@intlayer/core";
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Contoh header negosiator yang biasanya dikirim oleh browser
|
|
130
|
+
* Header ini membantu menentukan bahasa yang disukai pengguna
|
|
131
|
+
*/
|
|
132
|
+
const exampleNegotiatorHeaders: Record<string, string> = {
|
|
133
|
+
"accept-language": "en-US,en;q=0.9,fr;q=0.8,es;q=0.7",
|
|
134
|
+
"accept":
|
|
135
|
+
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
|
|
136
|
+
"user-agent":
|
|
137
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// Contoh penggunaan:
|
|
141
|
+
const detectedLocale = localeDetector(exampleNegotiatorHeaders);
|
|
142
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Perintah Intlayer tidak terdefinisi
|
|
5
|
+
description: Pelajari cara memperbaiki error perintah intlayer tidak terdefinisi.
|
|
6
|
+
keywords:
|
|
7
|
+
- intlayer
|
|
8
|
+
- perintah
|
|
9
|
+
- tidak terdefinisi
|
|
10
|
+
- error
|
|
11
|
+
- vscode
|
|
12
|
+
- ekstensi
|
|
13
|
+
- plugin
|
|
14
|
+
- framework
|
|
15
|
+
- next.js
|
|
16
|
+
- vite
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- intlayer-command-undefined
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Perintah Intlayer tidak terdefinisi
|
|
23
|
+
|
|
24
|
+
## Ikhtisar
|
|
25
|
+
|
|
26
|
+
CLI Intlayer menyediakan cara yang nyaman untuk mengontrol konten intlayer Anda, termasuk membangun kamus, mendorong terjemahan, dan lainnya. Namun, ini tidak esensial agar proyek Anda dapat berjalan. Jika Anda menggunakan plugin bundler (seperti `withIntlayer()` untuk Next.js atau `intlayer()` untuk Vite), Intlayer akan secara otomatis membangun kamus selama proses build aplikasi atau saat server pengembangan dimulai. Dalam mode pengembangan, ia juga akan memantau perubahan dan membangun ulang file deklarasi konten secara otomatis.
|
|
27
|
+
|
|
28
|
+
Anda dapat mengakses perintah intlayer dengan berbagai cara:
|
|
29
|
+
|
|
30
|
+
- Menggunakan perintah CLI `intlayer` secara langsung
|
|
31
|
+
- Menggunakan [ekstensi VSCode](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/vs_code_extension.md)
|
|
32
|
+
- Menggunakan SDK `@intlayer/cli`
|
|
33
|
+
|
|
34
|
+
## Masalah
|
|
35
|
+
|
|
36
|
+
Saat mencoba menggunakan perintah `intlayer`, Anda mungkin menemui kesalahan ini:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
'intlayer' tidak dikenali sebagai perintah internal atau eksternal,
|
|
40
|
+
program yang dapat dijalankan atau file batch.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Solusi
|
|
44
|
+
|
|
45
|
+
Coba solusi berikut secara berurutan:
|
|
46
|
+
|
|
47
|
+
1. **Verifikasi bahwa perintah sudah terpasang**
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx intlayer -h
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Output yang diharapkan:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
Usage: intlayer [options] [command]
|
|
57
|
+
|
|
58
|
+
Intlayer CLI
|
|
59
|
+
|
|
60
|
+
Options:
|
|
61
|
+
-V, --version menampilkan nomor versi
|
|
62
|
+
-h, --help menampilkan bantuan untuk perintah
|
|
63
|
+
|
|
64
|
+
Commands:
|
|
65
|
+
dictionary|dictionaries Operasi kamus
|
|
66
|
+
configuration|config Operasi konfigurasi
|
|
67
|
+
help [command] menampilkan bantuan untuk perintah
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
2. **Pasang paket intlayer-cli secara global**
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install intlayer-cli -g -g
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> Seharusnya tidak perlu jika Anda sudah menginstal paket `intlayer`
|
|
77
|
+
|
|
78
|
+
3. **Pasang paket secara global**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install intlayer -g
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
4. **Restart terminal Anda**
|
|
85
|
+
Kadang-kadang perlu me-restart terminal agar perintah baru dikenali.
|
|
86
|
+
|
|
87
|
+
5. **Bersihkan dan pasang ulang**
|
|
88
|
+
Jika solusi di atas tidak berhasil:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
rm -rf node_modules package-lock.json
|
|
92
|
+
npm install
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
6. **Verifikasi file instalasi**
|
|
96
|
+
Jika masalah masih berlanjut, periksa apakah file-file ini ada:
|
|
97
|
+
- `node_modules/intlayer/dist/cjs/cli.cjs`
|
|
98
|
+
- `node_modules/intlayer/package.json` (harus memiliki field `bin` yang merujuk ke `./dist/cjs/cli.cjs`)
|
|
99
|
+
|
|
100
|
+
7. **Periksa variabel lingkungan PATH**
|
|
101
|
+
Pastikan direktori bin global npm ada di PATH Anda:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Untuk sistem berbasis Unix (macOS/Linux)
|
|
105
|
+
echo $PATH
|
|
106
|
+
# Seharusnya termasuk sesuatu seperti /usr/local/bin atau ~/.npm-global/bin
|
|
107
|
+
|
|
108
|
+
# Untuk Windows
|
|
109
|
+
echo %PATH%
|
|
110
|
+
# Seharusnya termasuk direktori bin global npm
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
8. **Gunakan npx dengan path lengkap**
|
|
114
|
+
Jika perintah masih tidak ditemukan, coba gunakan npx dengan path lengkap:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npx ./node_modules/intlayer/ dictionaries build
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
9. **Periksa instalasi yang bertentangan**
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Daftar semua paket yang terpasang secara global
|
|
124
|
+
npm list -g --depth=0
|
|
125
|
+
|
|
126
|
+
# Hapus instalasi global yang bertentangan
|
|
127
|
+
npm uninstall -g intlayer
|
|
128
|
+
npm uninstall -g intlayer-cli
|
|
129
|
+
# Kemudian pasang ulang
|
|
130
|
+
npm install -g intlayer
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
10. **Verifikasi versi Node.js dan npm**
|
|
134
|
+
Pastikan Anda menggunakan versi yang kompatibel:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
node --version
|
|
138
|
+
npm --version
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Jika Anda menggunakan versi yang sudah usang, pertimbangkan untuk memperbarui Node.js dan npm.
|
|
142
|
+
|
|
143
|
+
11. **Periksa masalah izin**
|
|
144
|
+
Jika Anda mendapatkan kesalahan izin:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Untuk sistem berbasis Unix
|
|
148
|
+
sudo npm install -g intlayer
|
|
149
|
+
|
|
150
|
+
# Atau ubah direktori default npm
|
|
151
|
+
mkdir ~/.npm-global
|
|
152
|
+
npm config set prefix '~/.npm-global'
|
|
153
|
+
# Tambahkan ke ~/.profile atau ~/.bashrc Anda:
|
|
154
|
+
export PATH=~/.npm-global/bin:$PATH
|
|
155
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Locale yang Salah Diambil dari URL
|
|
5
|
+
description: Pelajari cara memperbaiki locale yang salah diambil dari URL.
|
|
6
|
+
keywords:
|
|
7
|
+
- locale
|
|
8
|
+
- url
|
|
9
|
+
- intlayer
|
|
10
|
+
- next.js
|
|
11
|
+
- vite
|
|
12
|
+
- framework
|
|
13
|
+
- middleware
|
|
14
|
+
- configuration
|
|
15
|
+
- prefixDefault
|
|
16
|
+
- noPrefix
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- locale-incorect-in-url
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Locale yang Salah Diambil dari URL
|
|
23
|
+
|
|
24
|
+
## Deskripsi Masalah
|
|
25
|
+
|
|
26
|
+
Saat mencoba mengakses parameter locale dari URL, Anda mungkin mengalami masalah di mana nilai locale yang didapatkan salah:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
const { locale } = await params;
|
|
30
|
+
console.log(locale); // mengembalikan "about" alih-alih locale yang diharapkan
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Solusi
|
|
34
|
+
|
|
35
|
+
### 1. Verifikasi Struktur File
|
|
36
|
+
|
|
37
|
+
Pastikan path router aplikasi Next.js Anda mengikuti struktur ini:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
src/app/[locale]/about/page.tsx
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Periksa Konfigurasi Middleware
|
|
44
|
+
|
|
45
|
+
Masalah ini sering terjadi ketika middleware tidak ada atau tidak dijalankan. File middleware harus berada di:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
src/middleware.ts
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Middleware ini bertanggung jawab untuk menulis ulang rute ketika `prefixDefault` disetel ke `false`. Misalnya, ia menulis ulang `/en/about` menjadi `/about`.
|
|
52
|
+
|
|
53
|
+
### 3. Pola URL Berdasarkan Konfigurasi
|
|
54
|
+
|
|
55
|
+
#### Konfigurasi Default (`prefixDefault: false`, `noPrefix: false`)
|
|
56
|
+
|
|
57
|
+
- Bahasa Inggris: `/about`
|
|
58
|
+
- Bahasa Prancis: `/fr/about`
|
|
59
|
+
- Bahasa Spanyol: `/es/about`
|
|
60
|
+
|
|
61
|
+
#### Dengan `prefixDefault: true`
|
|
62
|
+
|
|
63
|
+
- Bahasa Inggris: `/en/about`
|
|
64
|
+
- Bahasa Prancis: `/fr/about`
|
|
65
|
+
- Bahasa Spanyol: `/es/about`
|
|
66
|
+
|
|
67
|
+
#### Dengan `noPrefix: true`
|
|
68
|
+
|
|
69
|
+
- Bahasa Inggris: `/about`
|
|
70
|
+
- Bahasa Prancis: `/about`
|
|
71
|
+
- Bahasa Spanyol: `/about`
|
|
72
|
+
|
|
73
|
+
Untuk detail lebih lanjut tentang opsi konfigurasi ini, lihat [Dokumentasi Konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Rendering Statis vs Dinamis dengan i18n di Next.js
|
|
5
|
+
description: Pelajari cara menggunakan rendering statis vs dinamis dengan i18n di Next.js.
|
|
6
|
+
keywords:
|
|
7
|
+
- statis
|
|
8
|
+
- dinamis
|
|
9
|
+
- rendering
|
|
10
|
+
- i18n
|
|
11
|
+
- next.js
|
|
12
|
+
- next-intl
|
|
13
|
+
- intlayer
|
|
14
|
+
- framework
|
|
15
|
+
- middleware
|
|
16
|
+
- konfigurasi
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- static-rendering
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Rendering Statis vs Dinamis dengan i18n di Next.js
|
|
23
|
+
|
|
24
|
+
## Masalah dengan **next-intl**
|
|
25
|
+
|
|
26
|
+
- **Apa yang terjadi?**
|
|
27
|
+
Saat Anda menggunakan `useTranslations`, `getTranslations`, atau helper next-intl lainnya _di dalam Server Component_ pada aplikasi dengan routing i18n (`/en/…`, `/fr/…`), Next.js menandai seluruh rute sebagai **dinamis**. ([Next Intl][1])
|
|
28
|
+
|
|
29
|
+
- **Mengapa?**
|
|
30
|
+
next-intl mengambil locale saat ini dari header yang hanya tersedia pada request (`x-next-intl-locale`) melalui `headers()`. Karena `headers()` adalah **dynamic API**, setiap komponen yang mengaksesnya kehilangan optimasi statis. ([Next Intl][1], [Next.js][2])
|
|
31
|
+
|
|
32
|
+
- **Solusi resmi (boilerplate)**
|
|
33
|
+
1. Ekspor `generateStaticParams` dengan setiap locale yang didukung.
|
|
34
|
+
2. Panggil `setRequestLocale(locale)` di **setiap** layout/halaman _sebelum_ Anda memanggil `useTranslations`. ([Next Intl][1])
|
|
35
|
+
Ini menghilangkan ketergantungan pada header, tetapi Anda sekarang memiliki kode tambahan yang harus dipelihara dan API yang tidak stabil di produksi.
|
|
36
|
+
|
|
37
|
+
## Bagaimana **intlayer** menghindari masalah ini
|
|
38
|
+
|
|
39
|
+
**Pilihan desain**
|
|
40
|
+
|
|
41
|
+
1. **Hanya parameter route** – Locale berasal dari segmen URL `[locale]` yang sudah diteruskan Next.js ke setiap halaman.
|
|
42
|
+
2. **Bundle waktu kompilasi** – Terjemahan diimpor sebagai modul ES biasa, sehingga mereka di-tree-shaken dan disematkan pada saat build.
|
|
43
|
+
3. **Tanpa API dinamis** – `useT()` membaca dari konteks React, bukan dari `headers()` atau `cookies()`.
|
|
44
|
+
4. **Tanpa konfigurasi tambahan** – Setelah halaman Anda berada di bawah `app/[locale]/`, Next.js secara otomatis melakukan prerender satu file HTML per locale.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-05-20
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Bisakah saya menerjemahkan jalur url?
|
|
5
|
+
description: Pelajari cara menerjemahkan jalur url.
|
|
6
|
+
keywords:
|
|
7
|
+
- array
|
|
8
|
+
- konten
|
|
9
|
+
- deklarasi
|
|
10
|
+
- intlayer
|
|
11
|
+
- middleware
|
|
12
|
+
- proxy
|
|
13
|
+
- rewrite
|
|
14
|
+
- prefix
|
|
15
|
+
- locale
|
|
16
|
+
- url
|
|
17
|
+
slugs:
|
|
18
|
+
- frequent-questions
|
|
19
|
+
- translated-path-url
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Apakah mungkin menerjemahkan url seperti berikut:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
en -> /product (tanpa prefix) atau /en/product (dengan prefix)
|
|
26
|
+
fr -> /fr/produit
|
|
27
|
+
es -> /es/producto
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Sayangnya Intlayer tidak mengizinkan menerjemahkan URL seperti yang ditentukan. Untuk mencapai ini, Anda harus menggunakan middleware atau proxy Anda sendiri untuk menulis ulang URL.
|
|
31
|
+
|
|
32
|
+
Namun Anda dapat menggunakan fungsi `getMultilingualUrl` untuk menyisipkan prefix di url untuk locale tertentu.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { getMultilingualUrl, Locales } from "intlayer";
|
|
36
|
+
|
|
37
|
+
const url = getMultilingualUrl("/product");
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* en -> /product (tanpa prefix) atau /en/product (dengan prefix)
|
|
41
|
+
* fr -> /fr/product
|
|
42
|
+
* es -> /es/product
|
|
43
|
+
*/
|
|
44
|
+
console.log(url);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Atau `getLocalizedUrl`
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import { getLocalizedUrl, Locales } from "intlayer";
|
|
51
|
+
|
|
52
|
+
const url = getLocalizedUrl("/product", Locales.FRENCH);
|
|
53
|
+
|
|
54
|
+
console.log(url); // /fr/product
|
|
55
|
+
```
|