@intlayer/docs 7.5.8 → 7.5.10
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/README.md +9 -2
- package/dist/cjs/generated/docs.entry.cjs +38 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +38 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/index.md +6 -1
- package/docs/ar/cli/init.md +84 -0
- package/docs/ar/cli/push.md +1 -1
- package/docs/ar/configuration.md +3 -3
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/ar/intlayer_CMS.md +5 -5
- package/docs/ar/intlayer_with_angular.md +5 -2
- package/docs/ar/intlayer_with_astro.md +5 -2
- package/docs/ar/intlayer_with_create_react_app.md +5 -2
- package/docs/ar/intlayer_with_express.md +6 -2
- package/docs/ar/intlayer_with_fastify.md +516 -0
- package/docs/ar/intlayer_with_lynx+react.md +5 -2
- package/docs/ar/intlayer_with_nestjs.md +5 -2
- package/docs/ar/intlayer_with_next-i18next.md +1 -1
- package/docs/ar/intlayer_with_next-intl.md +1 -1
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +5 -2
- package/docs/ar/intlayer_with_nextjs_16.md +5 -2
- package/docs/ar/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/ar/intlayer_with_nuxt.md +1 -1
- package/docs/ar/intlayer_with_react_native+expo.md +5 -2
- package/docs/ar/intlayer_with_react_router_v7.md +5 -2
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/ar/intlayer_with_svelte_kit.md +5 -2
- package/docs/ar/intlayer_with_tanstack.md +5 -2
- package/docs/ar/intlayer_with_vite+preact.md +5 -2
- package/docs/ar/intlayer_with_vite+react.md +5 -2
- package/docs/ar/intlayer_with_vite+solid.md +5 -2
- package/docs/ar/intlayer_with_vite+svelte.md +5 -2
- package/docs/ar/intlayer_with_vite+vue.md +5 -2
- package/docs/ar/readme.md +1 -1
- package/docs/de/cli/index.md +6 -1
- package/docs/de/cli/init.md +92 -0
- package/docs/de/cli/push.md +1 -1
- package/docs/de/configuration.md +3 -3
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/de/intlayer_CMS.md +5 -5
- package/docs/de/intlayer_with_angular.md +5 -2
- package/docs/de/intlayer_with_astro.md +5 -2
- package/docs/de/intlayer_with_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +6 -2
- package/docs/de/intlayer_with_fastify.md +449 -0
- package/docs/de/intlayer_with_lynx+react.md +5 -2
- package/docs/de/intlayer_with_nestjs.md +5 -2
- package/docs/de/intlayer_with_next-i18next.md +1 -1
- package/docs/de/intlayer_with_next-intl.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +5 -2
- package/docs/de/intlayer_with_nextjs_16.md +5 -2
- package/docs/de/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +5 -2
- package/docs/de/intlayer_with_react_router_v7.md +5 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/de/intlayer_with_svelte_kit.md +5 -2
- package/docs/de/intlayer_with_tanstack.md +5 -2
- package/docs/de/intlayer_with_vite+preact.md +5 -2
- package/docs/de/intlayer_with_vite+react.md +5 -2
- package/docs/de/intlayer_with_vite+solid.md +5 -2
- package/docs/de/intlayer_with_vite+svelte.md +5 -2
- package/docs/de/intlayer_with_vite+vue.md +5 -2
- package/docs/de/readme.md +1 -1
- package/docs/en/cli/index.md +6 -1
- package/docs/en/cli/init.md +84 -0
- package/docs/en/cli/push.md +1 -1
- package/docs/en/configuration.md +3 -3
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_CMS.md +5 -5
- package/docs/en/intlayer_with_angular.md +5 -2
- package/docs/en/intlayer_with_astro.md +5 -2
- package/docs/en/intlayer_with_create_react_app.md +5 -2
- package/docs/en/intlayer_with_express.md +6 -2
- package/docs/en/intlayer_with_fastify.md +439 -0
- package/docs/en/intlayer_with_lynx+react.md +5 -2
- package/docs/en/intlayer_with_nestjs.md +5 -2
- package/docs/en/intlayer_with_next-i18next.md +1 -1
- package/docs/en/intlayer_with_next-intl.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +5 -2
- package/docs/en/intlayer_with_nextjs_15.md +5 -2
- package/docs/en/intlayer_with_nextjs_16.md +5 -2
- package/docs/en/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/en/intlayer_with_nuxt.md +5 -2
- package/docs/en/intlayer_with_react_native+expo.md +5 -2
- package/docs/en/intlayer_with_react_router_v7.md +5 -2
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/en/intlayer_with_svelte_kit.md +5 -2
- package/docs/en/intlayer_with_tanstack.md +5 -2
- package/docs/en/intlayer_with_vite+preact.md +5 -2
- package/docs/en/intlayer_with_vite+react.md +5 -2
- package/docs/en/intlayer_with_vite+solid.md +5 -2
- package/docs/en/intlayer_with_vite+svelte.md +5 -2
- package/docs/en/intlayer_with_vite+vue.md +5 -2
- package/docs/en/readme.md +3 -1
- package/docs/en-GB/cli/index.md +6 -1
- package/docs/en-GB/cli/init.md +89 -0
- package/docs/en-GB/cli/push.md +1 -1
- package/docs/en-GB/configuration.md +3 -3
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_CMS.md +5 -5
- package/docs/en-GB/intlayer_with_angular.md +5 -2
- package/docs/en-GB/intlayer_with_astro.md +5 -2
- package/docs/en-GB/intlayer_with_create_react_app.md +5 -2
- package/docs/en-GB/intlayer_with_express.md +6 -2
- package/docs/en-GB/intlayer_with_fastify.md +445 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +5 -2
- package/docs/en-GB/intlayer_with_nestjs.md +5 -2
- package/docs/en-GB/intlayer_with_next-i18next.md +1 -1
- package/docs/en-GB/intlayer_with_next-intl.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +5 -2
- package/docs/en-GB/intlayer_with_nextjs_15.md +5 -2
- package/docs/en-GB/intlayer_with_nextjs_16.md +5 -2
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/en-GB/intlayer_with_nuxt.md +1 -1
- package/docs/en-GB/intlayer_with_react_native+expo.md +5 -2
- package/docs/en-GB/intlayer_with_react_router_v7.md +5 -2
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/en-GB/intlayer_with_svelte_kit.md +5 -2
- package/docs/en-GB/intlayer_with_tanstack.md +5 -2
- package/docs/en-GB/intlayer_with_vite+preact.md +5 -2
- package/docs/en-GB/intlayer_with_vite+react.md +5 -2
- package/docs/en-GB/intlayer_with_vite+solid.md +5 -2
- package/docs/en-GB/intlayer_with_vite+svelte.md +5 -2
- package/docs/en-GB/intlayer_with_vite+vue.md +5 -2
- package/docs/en-GB/readme.md +3 -1
- package/docs/es/cli/index.md +6 -1
- package/docs/es/cli/init.md +84 -0
- package/docs/es/cli/push.md +1 -1
- package/docs/es/configuration.md +3 -3
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/es/intlayer_CMS.md +5 -5
- package/docs/es/intlayer_with_angular.md +5 -2
- package/docs/es/intlayer_with_astro.md +5 -2
- package/docs/es/intlayer_with_create_react_app.md +5 -2
- package/docs/es/intlayer_with_express.md +6 -2
- package/docs/es/intlayer_with_fastify.md +480 -0
- package/docs/es/intlayer_with_lynx+react.md +5 -2
- package/docs/es/intlayer_with_nestjs.md +5 -2
- package/docs/es/intlayer_with_next-i18next.md +1 -1
- package/docs/es/intlayer_with_next-intl.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +5 -2
- package/docs/es/intlayer_with_nextjs_15.md +5 -2
- package/docs/es/intlayer_with_nextjs_16.md +5 -2
- package/docs/es/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +5 -2
- package/docs/es/intlayer_with_react_router_v7.md +5 -2
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/es/intlayer_with_svelte_kit.md +5 -2
- package/docs/es/intlayer_with_tanstack.md +5 -2
- package/docs/es/intlayer_with_vite+preact.md +5 -2
- package/docs/es/intlayer_with_vite+react.md +5 -2
- package/docs/es/intlayer_with_vite+solid.md +5 -2
- package/docs/es/intlayer_with_vite+svelte.md +5 -2
- package/docs/es/intlayer_with_vite+vue.md +5 -2
- package/docs/es/readme.md +1 -1
- package/docs/fr/cli/index.md +6 -1
- package/docs/fr/cli/init.md +84 -0
- package/docs/fr/cli/push.md +1 -1
- package/docs/fr/configuration.md +3 -3
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/fr/intlayer_CMS.md +5 -5
- package/docs/fr/intlayer_with_angular.md +5 -2
- package/docs/fr/intlayer_with_astro.md +5 -2
- package/docs/fr/intlayer_with_create_react_app.md +5 -2
- package/docs/fr/intlayer_with_express.md +6 -2
- package/docs/fr/intlayer_with_fastify.md +439 -0
- package/docs/fr/intlayer_with_lynx+react.md +5 -2
- package/docs/fr/intlayer_with_nestjs.md +5 -2
- package/docs/fr/intlayer_with_next-i18next.md +1 -1
- package/docs/fr/intlayer_with_next-intl.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +5 -2
- package/docs/fr/intlayer_with_nextjs_16.md +5 -2
- package/docs/fr/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/fr/intlayer_with_nuxt.md +1 -1
- package/docs/fr/intlayer_with_react_native+expo.md +5 -2
- package/docs/fr/intlayer_with_react_router_v7.md +5 -2
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/fr/intlayer_with_svelte_kit.md +5 -2
- package/docs/fr/intlayer_with_tanstack.md +5 -2
- package/docs/fr/intlayer_with_vite+preact.md +5 -2
- package/docs/fr/intlayer_with_vite+react.md +5 -2
- package/docs/fr/intlayer_with_vite+solid.md +5 -2
- package/docs/fr/intlayer_with_vite+svelte.md +5 -2
- package/docs/fr/intlayer_with_vite+vue.md +5 -2
- package/docs/fr/readme.md +1 -1
- package/docs/hi/cli/index.md +6 -1
- package/docs/hi/cli/init.md +92 -0
- package/docs/hi/cli/push.md +1 -1
- package/docs/hi/configuration.md +3 -3
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/hi/intlayer_CMS.md +5 -5
- package/docs/hi/intlayer_with_angular.md +5 -2
- package/docs/hi/intlayer_with_astro.md +5 -2
- package/docs/hi/intlayer_with_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +6 -2
- package/docs/hi/intlayer_with_fastify.md +540 -0
- package/docs/hi/intlayer_with_lynx+react.md +5 -2
- package/docs/hi/intlayer_with_nestjs.md +5 -2
- package/docs/hi/intlayer_with_next-i18next.md +1 -1
- package/docs/hi/intlayer_with_next-intl.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +5 -2
- package/docs/hi/intlayer_with_nextjs_16.md +5 -2
- package/docs/hi/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/hi/intlayer_with_nuxt.md +1 -1
- package/docs/hi/intlayer_with_react_native+expo.md +5 -2
- package/docs/hi/intlayer_with_react_router_v7.md +5 -2
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/hi/intlayer_with_svelte_kit.md +5 -2
- package/docs/hi/intlayer_with_tanstack.md +5 -2
- package/docs/hi/intlayer_with_vite+preact.md +5 -2
- package/docs/hi/intlayer_with_vite+react.md +5 -2
- package/docs/hi/intlayer_with_vite+solid.md +5 -2
- package/docs/hi/intlayer_with_vite+svelte.md +5 -2
- package/docs/hi/intlayer_with_vite+vue.md +5 -2
- package/docs/hi/readme.md +1 -1
- package/docs/id/cli/index.md +6 -1
- package/docs/id/cli/init.md +89 -0
- package/docs/id/cli/push.md +1 -1
- package/docs/id/configuration.md +3 -3
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_CMS.md +5 -5
- package/docs/id/intlayer_with_angular.md +5 -2
- package/docs/id/intlayer_with_astro.md +5 -2
- package/docs/id/intlayer_with_create_react_app.md +5 -2
- package/docs/id/intlayer_with_express.md +6 -2
- package/docs/id/intlayer_with_fastify.md +470 -0
- package/docs/id/intlayer_with_lynx+react.md +5 -2
- package/docs/id/intlayer_with_nestjs.md +5 -2
- package/docs/id/intlayer_with_next-i18next.md +1 -1
- package/docs/id/intlayer_with_next-intl.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +5 -2
- package/docs/id/intlayer_with_nextjs_15.md +5 -2
- package/docs/id/intlayer_with_nextjs_16.md +5 -2
- package/docs/id/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +5 -2
- package/docs/id/intlayer_with_react_router_v7.md +5 -2
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/id/intlayer_with_svelte_kit.md +5 -2
- package/docs/id/intlayer_with_tanstack.md +5 -2
- package/docs/id/intlayer_with_vite+preact.md +5 -2
- package/docs/id/intlayer_with_vite+react.md +5 -2
- package/docs/id/intlayer_with_vite+solid.md +5 -2
- package/docs/id/intlayer_with_vite+svelte.md +5 -2
- package/docs/id/intlayer_with_vite+vue.md +5 -2
- package/docs/id/readme.md +1 -1
- package/docs/it/cli/index.md +6 -1
- package/docs/it/cli/init.md +97 -0
- package/docs/it/cli/push.md +1 -1
- package/docs/it/configuration.md +3 -3
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/it/intlayer_CMS.md +5 -5
- package/docs/it/intlayer_with_angular.md +5 -2
- package/docs/it/intlayer_with_astro.md +5 -2
- package/docs/it/intlayer_with_create_react_app.md +5 -2
- package/docs/it/intlayer_with_express.md +6 -2
- package/docs/it/intlayer_with_fastify.md +445 -0
- package/docs/it/intlayer_with_lynx+react.md +5 -2
- package/docs/it/intlayer_with_nestjs.md +5 -2
- package/docs/it/intlayer_with_next-i18next.md +1 -1
- package/docs/it/intlayer_with_next-intl.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +5 -2
- package/docs/it/intlayer_with_nextjs_16.md +5 -2
- package/docs/it/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +5 -2
- package/docs/it/intlayer_with_react_router_v7.md +5 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/it/intlayer_with_svelte_kit.md +5 -2
- package/docs/it/intlayer_with_tanstack.md +5 -2
- package/docs/it/intlayer_with_vite+preact.md +5 -2
- package/docs/it/intlayer_with_vite+react.md +5 -2
- package/docs/it/intlayer_with_vite+solid.md +5 -2
- package/docs/it/intlayer_with_vite+svelte.md +5 -2
- package/docs/it/intlayer_with_vite+vue.md +5 -2
- package/docs/it/readme.md +1 -1
- package/docs/ja/cli/index.md +6 -1
- package/docs/ja/cli/init.md +84 -0
- package/docs/ja/cli/push.md +1 -1
- package/docs/ja/configuration.md +3 -3
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ja/intlayer_CMS.md +5 -5
- package/docs/ja/intlayer_with_angular.md +5 -2
- package/docs/ja/intlayer_with_astro.md +5 -2
- package/docs/ja/intlayer_with_create_react_app.md +5 -2
- package/docs/ja/intlayer_with_express.md +6 -2
- package/docs/ja/intlayer_with_fastify.md +516 -0
- package/docs/ja/intlayer_with_lynx+react.md +5 -2
- package/docs/ja/intlayer_with_nestjs.md +5 -2
- package/docs/ja/intlayer_with_nextjs_14.md +5 -2
- package/docs/ja/intlayer_with_nextjs_15.md +5 -2
- package/docs/ja/intlayer_with_nextjs_16.md +4 -1
- package/docs/ja/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/ja/intlayer_with_nuxt.md +1 -1
- package/docs/ja/intlayer_with_react_native+expo.md +5 -2
- package/docs/ja/intlayer_with_react_router_v7.md +5 -2
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/ja/intlayer_with_svelte_kit.md +5 -2
- package/docs/ja/intlayer_with_tanstack.md +5 -2
- package/docs/ja/intlayer_with_vite+preact.md +5 -2
- package/docs/ja/intlayer_with_vite+react.md +5 -2
- package/docs/ja/intlayer_with_vite+solid.md +5 -2
- package/docs/ja/intlayer_with_vite+svelte.md +5 -2
- package/docs/ja/intlayer_with_vite+vue.md +5 -2
- package/docs/ja/readme.md +1 -1
- package/docs/ko/cli/index.md +6 -1
- package/docs/ko/cli/init.md +92 -0
- package/docs/ko/cli/push.md +1 -1
- package/docs/ko/configuration.md +3 -3
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/ko/intlayer_CMS.md +5 -5
- package/docs/ko/intlayer_with_angular.md +5 -2
- package/docs/ko/intlayer_with_astro.md +5 -2
- package/docs/ko/intlayer_with_create_react_app.md +5 -2
- package/docs/ko/intlayer_with_express.md +6 -2
- package/docs/ko/intlayer_with_fastify.md +463 -0
- package/docs/ko/intlayer_with_lynx+react.md +5 -2
- package/docs/ko/intlayer_with_nestjs.md +5 -2
- package/docs/ko/intlayer_with_nextjs_14.md +5 -2
- package/docs/ko/intlayer_with_nextjs_15.md +5 -2
- package/docs/ko/intlayer_with_nextjs_16.md +4 -1
- package/docs/ko/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/ko/intlayer_with_nuxt.md +1 -1
- package/docs/ko/intlayer_with_react_native+expo.md +5 -2
- package/docs/ko/intlayer_with_react_router_v7.md +5 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/ko/intlayer_with_svelte_kit.md +5 -2
- package/docs/ko/intlayer_with_tanstack.md +5 -2
- package/docs/ko/intlayer_with_vite+preact.md +5 -2
- package/docs/ko/intlayer_with_vite+react.md +5 -2
- package/docs/ko/intlayer_with_vite+solid.md +5 -2
- package/docs/ko/intlayer_with_vite+svelte.md +4 -1
- package/docs/ko/intlayer_with_vite+vue.md +5 -2
- package/docs/ko/readme.md +1 -1
- package/docs/pl/cli/index.md +6 -1
- package/docs/pl/cli/init.md +92 -0
- package/docs/pl/cli/push.md +1 -1
- package/docs/pl/configuration.md +3 -3
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_CMS.md +5 -5
- package/docs/pl/intlayer_with_angular.md +5 -2
- package/docs/pl/intlayer_with_astro.md +6 -3
- package/docs/pl/intlayer_with_create_react_app.md +5 -2
- package/docs/pl/intlayer_with_express.md +6 -2
- package/docs/pl/intlayer_with_fastify.md +457 -0
- package/docs/pl/intlayer_with_lynx+react.md +5 -2
- package/docs/pl/intlayer_with_nestjs.md +5 -2
- package/docs/pl/intlayer_with_next-i18next.md +1 -1
- package/docs/pl/intlayer_with_next-intl.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +5 -2
- package/docs/pl/intlayer_with_nextjs_15.md +5 -2
- package/docs/pl/intlayer_with_nextjs_16.md +5 -2
- package/docs/pl/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/pl/intlayer_with_nuxt.md +1 -1
- package/docs/pl/intlayer_with_react_native+expo.md +5 -2
- package/docs/pl/intlayer_with_react_router_v7.md +5 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/pl/intlayer_with_svelte_kit.md +5 -2
- package/docs/pl/intlayer_with_tanstack.md +5 -2
- package/docs/pl/intlayer_with_vite+preact.md +5 -2
- package/docs/pl/intlayer_with_vite+react.md +5 -2
- package/docs/pl/intlayer_with_vite+solid.md +5 -2
- package/docs/pl/intlayer_with_vite+svelte.md +5 -2
- package/docs/pl/intlayer_with_vite+vue.md +5 -2
- package/docs/pl/readme.md +1 -1
- package/docs/pt/cli/index.md +6 -1
- package/docs/pt/cli/init.md +92 -0
- package/docs/pt/cli/push.md +1 -1
- package/docs/pt/configuration.md +3 -3
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/pt/intlayer_CMS.md +5 -5
- package/docs/pt/intlayer_with_angular.md +5 -2
- package/docs/pt/intlayer_with_astro.md +5 -2
- package/docs/pt/intlayer_with_create_react_app.md +5 -2
- package/docs/pt/intlayer_with_express.md +6 -2
- package/docs/pt/intlayer_with_fastify.md +502 -0
- package/docs/pt/intlayer_with_lynx+react.md +5 -2
- package/docs/pt/intlayer_with_nestjs.md +5 -2
- package/docs/pt/intlayer_with_next-i18next.md +1 -1
- package/docs/pt/intlayer_with_next-intl.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +5 -2
- package/docs/pt/intlayer_with_nextjs_16.md +5 -2
- package/docs/pt/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +5 -2
- package/docs/pt/intlayer_with_react_router_v7.md +5 -2
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/pt/intlayer_with_svelte_kit.md +5 -2
- package/docs/pt/intlayer_with_tanstack.md +5 -2
- package/docs/pt/intlayer_with_vite+preact.md +5 -2
- package/docs/pt/intlayer_with_vite+react.md +5 -2
- package/docs/pt/intlayer_with_vite+solid.md +5 -2
- package/docs/pt/intlayer_with_vite+svelte.md +5 -2
- package/docs/pt/intlayer_with_vite+vue.md +5 -2
- package/docs/pt/readme.md +1 -1
- package/docs/ru/cli/index.md +6 -1
- package/docs/ru/cli/init.md +92 -0
- package/docs/ru/cli/push.md +1 -1
- package/docs/ru/configuration.md +3 -3
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/ru/intlayer_CMS.md +5 -5
- package/docs/ru/intlayer_with_angular.md +5 -2
- package/docs/ru/intlayer_with_astro.md +5 -2
- package/docs/ru/intlayer_with_create_react_app.md +5 -2
- package/docs/ru/intlayer_with_express.md +6 -2
- package/docs/ru/intlayer_with_fastify.md +468 -0
- package/docs/ru/intlayer_with_lynx+react.md +5 -2
- package/docs/ru/intlayer_with_nestjs.md +5 -2
- package/docs/ru/intlayer_with_next-i18next.md +1 -1
- package/docs/ru/intlayer_with_next-intl.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +5 -2
- package/docs/ru/intlayer_with_nextjs_16.md +5 -2
- package/docs/ru/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- package/docs/ru/intlayer_with_react_native+expo.md +5 -2
- package/docs/ru/intlayer_with_react_router_v7.md +5 -2
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/ru/intlayer_with_svelte_kit.md +5 -2
- package/docs/ru/intlayer_with_tanstack.md +5 -2
- package/docs/ru/intlayer_with_vite+preact.md +5 -2
- package/docs/ru/intlayer_with_vite+react.md +5 -2
- package/docs/ru/intlayer_with_vite+solid.md +5 -2
- package/docs/ru/intlayer_with_vite+svelte.md +5 -2
- package/docs/ru/intlayer_with_vite+vue.md +5 -2
- package/docs/ru/readme.md +1 -1
- package/docs/tr/cli/index.md +6 -1
- package/docs/tr/cli/init.md +89 -0
- package/docs/tr/cli/push.md +1 -1
- package/docs/tr/configuration.md +3 -3
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_CMS.md +5 -5
- package/docs/tr/intlayer_with_angular.md +5 -2
- package/docs/tr/intlayer_with_astro.md +5 -2
- package/docs/tr/intlayer_with_create_react_app.md +5 -2
- package/docs/tr/intlayer_with_express.md +6 -2
- package/docs/tr/intlayer_with_fastify.md +471 -0
- package/docs/tr/intlayer_with_lynx+react.md +5 -2
- package/docs/tr/intlayer_with_nestjs.md +5 -2
- package/docs/tr/intlayer_with_next-i18next.md +1 -1
- package/docs/tr/intlayer_with_next-intl.md +1 -1
- package/docs/tr/intlayer_with_nextjs_14.md +5 -2
- package/docs/tr/intlayer_with_nextjs_15.md +5 -2
- package/docs/tr/intlayer_with_nextjs_16.md +5 -2
- package/docs/tr/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +5 -2
- package/docs/tr/intlayer_with_react_router_v7.md +5 -2
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/tr/intlayer_with_svelte_kit.md +5 -2
- package/docs/tr/intlayer_with_tanstack.md +5 -2
- package/docs/tr/intlayer_with_vite+preact.md +5 -2
- package/docs/tr/intlayer_with_vite+react.md +5 -2
- package/docs/tr/intlayer_with_vite+solid.md +5 -2
- package/docs/tr/intlayer_with_vite+svelte.md +5 -2
- package/docs/tr/intlayer_with_vite+vue.md +5 -2
- package/docs/tr/readme.md +1 -1
- package/docs/vi/cli/index.md +6 -1
- package/docs/vi/cli/init.md +84 -0
- package/docs/vi/cli/push.md +1 -1
- package/docs/vi/configuration.md +3 -3
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_CMS.md +5 -5
- package/docs/vi/intlayer_with_angular.md +5 -2
- package/docs/vi/intlayer_with_astro.md +5 -2
- package/docs/vi/intlayer_with_create_react_app.md +5 -2
- package/docs/vi/intlayer_with_express.md +6 -2
- package/docs/vi/intlayer_with_fastify.md +490 -0
- package/docs/vi/intlayer_with_lynx+react.md +5 -2
- package/docs/vi/intlayer_with_nestjs.md +5 -2
- package/docs/vi/intlayer_with_next-i18next.md +1 -1
- package/docs/vi/intlayer_with_next-intl.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +5 -2
- package/docs/vi/intlayer_with_nextjs_15.md +5 -2
- package/docs/vi/intlayer_with_nextjs_16.md +5 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/vi/intlayer_with_nuxt.md +1 -1
- package/docs/vi/intlayer_with_react_native+expo.md +5 -2
- package/docs/vi/intlayer_with_react_router_v7.md +5 -2
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/vi/intlayer_with_svelte_kit.md +5 -2
- package/docs/vi/intlayer_with_tanstack.md +5 -2
- package/docs/vi/intlayer_with_vite+preact.md +5 -2
- package/docs/vi/intlayer_with_vite+react.md +5 -2
- package/docs/vi/intlayer_with_vite+solid.md +5 -2
- package/docs/vi/intlayer_with_vite+svelte.md +5 -2
- package/docs/vi/intlayer_with_vite+vue.md +5 -2
- package/docs/vi/readme.md +1 -1
- package/docs/zh/cli/index.md +6 -1
- package/docs/zh/cli/init.md +84 -0
- package/docs/zh/cli/push.md +1 -1
- package/docs/zh/configuration.md +3 -3
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh/intlayer_CMS.md +5 -5
- package/docs/zh/intlayer_with_angular.md +5 -2
- package/docs/zh/intlayer_with_astro.md +5 -2
- package/docs/zh/intlayer_with_create_react_app.md +5 -2
- package/docs/zh/intlayer_with_express.md +6 -2
- package/docs/zh/intlayer_with_fastify.md +451 -0
- package/docs/zh/intlayer_with_lynx+react.md +5 -2
- package/docs/zh/intlayer_with_nestjs.md +5 -2
- package/docs/zh/intlayer_with_nextjs_14.md +5 -2
- package/docs/zh/intlayer_with_nextjs_15.md +5 -2
- package/docs/zh/intlayer_with_nextjs_16.md +4 -1
- package/docs/zh/intlayer_with_nextjs_page_router.md +5 -2
- package/docs/zh/intlayer_with_react_native+expo.md +5 -2
- package/docs/zh/intlayer_with_react_router_v7.md +5 -2
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +5 -2
- package/docs/zh/intlayer_with_svelte_kit.md +4 -1
- package/docs/zh/intlayer_with_tanstack.md +5 -2
- package/docs/zh/intlayer_with_vite+preact.md +5 -2
- package/docs/zh/intlayer_with_vite+react.md +4 -1
- package/docs/zh/intlayer_with_vite+solid.md +5 -2
- package/docs/zh/intlayer_with_vite+svelte.md +4 -1
- package/docs/zh/intlayer_with_vite+vue.md +5 -2
- package/docs/zh/readme.md +1 -1
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +38 -0
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan backend Fastify Anda – i18n guide 2026
|
|
5
|
+
description: Temukan cara membuat backend Fastify Anda mendukung banyak bahasa. Ikuti dokumentasi untuk menginternasionalisasi (i18n) dan menerjemahkannya.
|
|
6
|
+
keywords:
|
|
7
|
+
- Internationalization
|
|
8
|
+
- Dokumentasi
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Fastify
|
|
11
|
+
- JavaScript
|
|
12
|
+
- Backend
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- fastify
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-fastify-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 7.6.0
|
|
20
|
+
date: 2025-12-31
|
|
21
|
+
changes: Menambahkan perintah init
|
|
22
|
+
- version: 7.6.0
|
|
23
|
+
date: 2025-12-31
|
|
24
|
+
changes: Riwayat awal
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Terjemahkan situs backend Fastify Anda menggunakan Intlayer | Internationalization (i18n)
|
|
28
|
+
|
|
29
|
+
`fastify-intlayer` adalah plugin Internationalization (i18n) yang kuat untuk aplikasi Fastify, dirancang untuk membuat layanan backend Anda dapat diakses secara global dengan menyediakan respons yang dilokalisasi berdasarkan preferensi klien.
|
|
30
|
+
|
|
31
|
+
### Kasus Penggunaan Praktis
|
|
32
|
+
|
|
33
|
+
- **Menampilkan Error Backend dalam Bahasa Pengguna**: Ketika terjadi error, menampilkan pesan dalam bahasa asli pengguna meningkatkan pemahaman dan mengurangi frustrasi. Ini sangat berguna untuk pesan error dinamis yang mungkin ditampilkan di komponen front-end seperti toast atau modal.
|
|
34
|
+
|
|
35
|
+
`fastify-intlayer` adalah plugin internationalization (i18n) yang kuat untuk aplikasi Fastify, dirancang agar layanan backend Anda dapat diakses secara global dengan menyediakan respons yang dilokalkan berdasarkan preferensi klien.
|
|
36
|
+
|
|
37
|
+
### Kasus Penggunaan Praktis
|
|
38
|
+
|
|
39
|
+
- **Menampilkan Kesalahan Backend dalam Bahasa Pengguna**: Ketika terjadi kesalahan, menampilkan pesan dalam bahasa asli pengguna meningkatkan pemahaman dan mengurangi frustrasi. Ini sangat berguna untuk pesan error dinamis yang mungkin ditampilkan di komponen frontend seperti toasts atau modals.
|
|
40
|
+
- **Mengambil Konten Multibahasa**: Untuk aplikasi yang mengambil konten dari database, internationalization memastikan bahwa Anda dapat menyajikan konten ini dalam berbagai bahasa. Ini sangat penting untuk platform seperti situs e-commerce atau sistem manajemen konten yang perlu menampilkan deskripsi produk, artikel, dan konten lain dalam bahasa yang dipilih pengguna.
|
|
41
|
+
- **Mengirim Email Multibahasa**: Baik itu email transaksional, kampanye pemasaran, atau notifikasi, mengirim email dalam bahasa penerima dapat secara signifikan meningkatkan keterlibatan dan efektivitas.
|
|
42
|
+
- **Notifikasi Push Multibahasa**: Untuk aplikasi seluler, mengirim notifikasi push dalam bahasa yang dipilih pengguna dapat meningkatkan interaksi dan retensi. Sentuhan personal ini membuat notifikasi terasa lebih relevan dan lebih mudah ditindaklanjuti.
|
|
43
|
+
- **Komunikasi Lainnya**: Bentuk komunikasi apa pun dari backend, seperti pesan SMS, peringatan sistem, atau pembaruan antarmuka pengguna, mendapat manfaat bila disampaikan dalam bahasa pengguna, sehingga memastikan kejelasan dan meningkatkan pengalaman pengguna secara keseluruhan.
|
|
44
|
+
|
|
45
|
+
Dengan melakukan internasionalisasi pada backend, aplikasi Anda tidak hanya menghormati perbedaan budaya tetapi juga lebih selaras dengan kebutuhan pasar global, menjadikannya langkah penting untuk menskalakan layanan Anda secara internasional.
|
|
46
|
+
|
|
47
|
+
## Memulai
|
|
48
|
+
|
|
49
|
+
### Instalasi
|
|
50
|
+
|
|
51
|
+
Untuk mulai menggunakan `fastify-intlayer`, pasang paket menggunakan npm:
|
|
52
|
+
|
|
53
|
+
```bash packageManager="npm"
|
|
54
|
+
npm install intlayer fastify-intlayer
|
|
55
|
+
npx intlayer init
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```bash packageManager="pnpm"
|
|
60
|
+
pnpm add intlayer fastify-intlayer
|
|
61
|
+
pnpm intlayer init
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```bash packageManager="yarn"
|
|
66
|
+
yarn add intlayer fastify-intlayer
|
|
67
|
+
yarn intlayer init
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```bash packageManager="bun"
|
|
72
|
+
bun add intlayer fastify-intlayer
|
|
73
|
+
bunx intlayer init
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Penyiapan
|
|
78
|
+
|
|
79
|
+
Konfigurasikan pengaturan internationalization dengan membuat sebuah `intlayer.config.ts` di root proyek Anda:
|
|
80
|
+
|
|
81
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
82
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
83
|
+
|
|
84
|
+
const config: IntlayerConfig = {
|
|
85
|
+
internationalization: {
|
|
86
|
+
locales: [
|
|
87
|
+
Locales.ENGLISH,
|
|
88
|
+
Locales.FRENCH,
|
|
89
|
+
Locales.SPANISH_MEXICO,
|
|
90
|
+
Locales.SPANISH_SPAIN,
|
|
91
|
+
],
|
|
92
|
+
defaultLocale: Locales.ENGLISH,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export default config;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
100
|
+
import { Locales } from "intlayer";
|
|
101
|
+
|
|
102
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
103
|
+
const config = {
|
|
104
|
+
internationalization: {
|
|
105
|
+
locales: [
|
|
106
|
+
Locales.ENGLISH,
|
|
107
|
+
Locales.FRENCH,
|
|
108
|
+
Locales.SPANISH_MEXICO,
|
|
109
|
+
Locales.SPANISH_SPAIN,
|
|
110
|
+
],
|
|
111
|
+
defaultLocale: Locales.ENGLISH,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export default config;
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
119
|
+
const { Locales } = require("intlayer");
|
|
120
|
+
|
|
121
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
122
|
+
const config = {
|
|
123
|
+
internationalization: {
|
|
124
|
+
locales: [
|
|
125
|
+
Locales.ENGLISH,
|
|
126
|
+
Locales.FRENCH,
|
|
127
|
+
Locales.SPANISH_MEXICO,
|
|
128
|
+
Locales.SPANISH_SPAIN,
|
|
129
|
+
],
|
|
130
|
+
defaultLocale: Locales.ENGLISH,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
module.exports = config;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Deklarasikan Konten Anda
|
|
138
|
+
|
|
139
|
+
Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan:
|
|
140
|
+
|
|
141
|
+
```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
|
|
142
|
+
import { t, type Dictionary } from "intlayer";
|
|
143
|
+
|
|
144
|
+
const indexContent = {
|
|
145
|
+
key: "index",
|
|
146
|
+
content: {
|
|
147
|
+
exampleOfContent: t({
|
|
148
|
+
id: "Contoh konten yang dikembalikan dalam Bahasa Indonesia",
|
|
149
|
+
en: "Example of returned content in English",
|
|
150
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
151
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
152
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
153
|
+
}),
|
|
154
|
+
},
|
|
155
|
+
} satisfies Dictionary;
|
|
156
|
+
|
|
157
|
+
export default indexContent;
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
|
|
161
|
+
import { t } from "intlayer";
|
|
162
|
+
|
|
163
|
+
/** @type {import('intlayer').Dictionary} */
|
|
164
|
+
const indexContent = {
|
|
165
|
+
key: "index",
|
|
166
|
+
content: {
|
|
167
|
+
exampleOfContent: t({
|
|
168
|
+
id: "Contoh konten yang dikembalikan dalam Bahasa Indonesia",
|
|
169
|
+
en: "Example of returned content in English",
|
|
170
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
171
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
172
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
173
|
+
}),
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export default indexContent;
|
|
178
|
+
|
|
179
|
+
/** @type {import('intlayer').Dictionary} */
|
|
180
|
+
const indexContent = {
|
|
181
|
+
key: "index",
|
|
182
|
+
content: {
|
|
183
|
+
exampleOfContent: t({
|
|
184
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
185
|
+
en: "Example of returned content in English",
|
|
186
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
187
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
188
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
189
|
+
}),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export default indexContent;
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
197
|
+
const { t } = require("intlayer");
|
|
198
|
+
|
|
199
|
+
/** @type {import('intlayer').Dictionary} */
|
|
200
|
+
const indexContent = {
|
|
201
|
+
key: "index",
|
|
202
|
+
content: {
|
|
203
|
+
exampleOfContent: t({
|
|
204
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
205
|
+
en: "Example of returned content in English",
|
|
206
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
207
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
208
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
209
|
+
}),
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
module.exports = indexContent;
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
217
|
+
{
|
|
218
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
219
|
+
"key": "index",
|
|
220
|
+
"content": {
|
|
221
|
+
"exampleOfContent": {
|
|
222
|
+
"nodeType": "translation",
|
|
223
|
+
"translation": {
|
|
224
|
+
"id": "Contoh konten yang dikembalikan dalam bahasa Indonesia",
|
|
225
|
+
"en": "Example of returned content in English",
|
|
226
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
227
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
228
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
> Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama mereka dimasukkan ke direktori `contentDir` (secara default, `./src`). Dan cocokkan ekstensi file deklarasi konten (secara default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
236
|
+
|
|
237
|
+
> Untuk detail lebih lanjut, lihat [dokumentasi deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md).
|
|
238
|
+
|
|
239
|
+
### Pengaturan Aplikasi Fastify
|
|
240
|
+
|
|
241
|
+
Siapkan aplikasi Fastify Anda untuk menggunakan `fastify-intlayer`:
|
|
242
|
+
|
|
243
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
244
|
+
import Fastify from "fastify";
|
|
245
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
246
|
+
import dictionaryExample from "./index.content";
|
|
247
|
+
|
|
248
|
+
const fastify = Fastify({ logger: true });
|
|
249
|
+
|
|
250
|
+
typescript fileName="src/index.ts" codeFormat="typescript"
|
|
251
|
+
// Muat plugin internasionalisasi
|
|
252
|
+
await fastify.register(intlayer);
|
|
253
|
+
|
|
254
|
+
// Rute
|
|
255
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
256
|
+
return t({
|
|
257
|
+
en: "Example of returned content in English",
|
|
258
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
259
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
260
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
265
|
+
return getIntlayer("index").exampleOfContent;
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
269
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
// Mulai server
|
|
273
|
+
const start = async () => {
|
|
274
|
+
try {
|
|
275
|
+
await fastify.listen({ port: 3000 });
|
|
276
|
+
} catch (err) {
|
|
277
|
+
fastify.log.error(err);
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
start();
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
286
|
+
import Fastify from "fastify";
|
|
287
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
288
|
+
import dictionaryExample from "./index.content";
|
|
289
|
+
|
|
290
|
+
const fastify = Fastify({ logger: true });
|
|
291
|
+
|
|
292
|
+
// Muat plugin internasionalisasi
|
|
293
|
+
await fastify.register(intlayer);
|
|
294
|
+
|
|
295
|
+
// Rute
|
|
296
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
297
|
+
return t({
|
|
298
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Inggris",
|
|
299
|
+
en: "Example of returned content in English",
|
|
300
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
301
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
302
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
307
|
+
return getIntlayer("index").exampleOfContent;
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
311
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
// Mulai server
|
|
315
|
+
const start = async () => {
|
|
316
|
+
try {
|
|
317
|
+
await fastify.listen({ port: 3000 });
|
|
318
|
+
} catch (err) {
|
|
319
|
+
fastify.log.error(err);
|
|
320
|
+
process.exit(1);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
start();
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
328
|
+
const Fastify = require("fastify");
|
|
329
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
330
|
+
const dictionaryExample = require("./index.content");
|
|
331
|
+
|
|
332
|
+
const fastify = Fastify({ logger: true });
|
|
333
|
+
|
|
334
|
+
// Pembungkus untuk memulai server (async/await)
|
|
335
|
+
const start = async () => {
|
|
336
|
+
try {
|
|
337
|
+
// Muat plugin internasionalisasi
|
|
338
|
+
await fastify.register(intlayer);
|
|
339
|
+
|
|
340
|
+
// Rute
|
|
341
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
342
|
+
return t({
|
|
343
|
+
id: "Contoh konten yang dikembalikan dalam bahasa Indonesia",
|
|
344
|
+
en: "Example of returned content in English",
|
|
345
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
346
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
347
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
352
|
+
return getIntlayer("index").exampleOfContent;
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
356
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
await fastify.listen({ port: 3000 });
|
|
360
|
+
} catch (err) {
|
|
361
|
+
fastify.log.error(err);
|
|
362
|
+
process.exit(1);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
start();
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Kompatibilitas
|
|
370
|
+
|
|
371
|
+
`fastify-intlayer` sepenuhnya kompatibel dengan:
|
|
372
|
+
|
|
373
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md)>) untuk aplikasi React
|
|
374
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md)>) untuk aplikasi Next.js
|
|
375
|
+
|
|
376
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/react-intlayer/index.md)>) untuk aplikasi React
|
|
377
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/next-intlayer/index.md)>) untuk aplikasi Next.js
|
|
378
|
+
- [`vite-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/vite-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/vite-intlayer/index.md)>) untuk aplikasi Vite
|
|
379
|
+
|
|
380
|
+
Ini juga berfungsi mulus dengan solusi internasionalisasi apa pun di berbagai lingkungan, termasuk browser dan permintaan API. Anda dapat menyesuaikan middleware untuk mendeteksi locale melalui header atau cookie:
|
|
381
|
+
|
|
382
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
383
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
384
|
+
|
|
385
|
+
const config: IntlayerConfig = {
|
|
386
|
+
// ... Opsi konfigurasi lainnya
|
|
387
|
+
middleware: {
|
|
388
|
+
headerName: "my-locale-header",
|
|
389
|
+
cookieName: "my-locale-cookie",
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
export default config;
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
397
|
+
import { Locales } from "intlayer";
|
|
398
|
+
|
|
399
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
400
|
+
const config = {
|
|
401
|
+
// ... Opsi konfigurasi lainnya
|
|
402
|
+
middleware: {
|
|
403
|
+
headerName: "my-locale-header",
|
|
404
|
+
cookieName: "my-locale-cookie",
|
|
405
|
+
},
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
export default config;
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
412
|
+
const { Locales } = require("intlayer");
|
|
413
|
+
|
|
414
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
415
|
+
const config = {
|
|
416
|
+
// ... Opsi konfigurasi lainnya
|
|
417
|
+
middleware: {
|
|
418
|
+
headerName: "my-locale-header",
|
|
419
|
+
cookieName: "my-locale-cookie",
|
|
420
|
+
},
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
module.exports = config;
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
Secara default, `fastify-intlayer` akan menginterpretasikan header `Accept-Language` untuk menentukan bahasa yang dipilih klien.
|
|
427
|
+
|
|
428
|
+
> Untuk informasi lebih lanjut tentang konfigurasi dan topik lanjutan, kunjungi [dokumentasi kami](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
|
|
429
|
+
|
|
430
|
+
### Konfigurasi TypeScript
|
|
431
|
+
|
|
432
|
+
`fastify-intlayer` memanfaatkan kemampuan kuat TypeScript untuk meningkatkan proses internasionalisasi. Tipe statis TypeScript memastikan setiap kunci terjemahan tercakup, mengurangi risiko terjemahan yang hilang dan meningkatkan pemeliharaan.
|
|
433
|
+
|
|
434
|
+
Pastikan tipe yang dihasilkan secara otomatis (secara default di ./types/intlayer.d.ts) disertakan dalam file tsconfig.json Anda.
|
|
435
|
+
|
|
436
|
+
```json5 fileName="tsconfig.json"
|
|
437
|
+
{
|
|
438
|
+
// ... Konfigurasi TypeScript Anda yang sudah ada
|
|
439
|
+
"include": [
|
|
440
|
+
// ... Konfigurasi TypeScript Anda yang sudah ada
|
|
441
|
+
".intlayer/**/*.ts", // Sertakan tipe yang dihasilkan otomatis
|
|
442
|
+
],
|
|
443
|
+
}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Ekstensi VS Code
|
|
447
|
+
|
|
448
|
+
Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat memasang **Ekstensi Intlayer untuk VS Code** resmi.
|
|
449
|
+
|
|
450
|
+
[Pasang dari VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
451
|
+
|
|
452
|
+
Ekstensi ini menyediakan:
|
|
453
|
+
|
|
454
|
+
- **Autocompletion** untuk kunci terjemahan.
|
|
455
|
+
- **Deteksi kesalahan real-time** untuk terjemahan yang hilang.
|
|
456
|
+
- **Pratinjau inline** untuk konten yang diterjemahkan.
|
|
457
|
+
- **Tindakan cepat** untuk memudahkan pembuatan dan pembaruan terjemahan.
|
|
458
|
+
|
|
459
|
+
Untuk detail lebih lanjut tentang cara menggunakan ekstensi ini, lihat [dokumentasi Ekstensi Intlayer untuk VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
460
|
+
|
|
461
|
+
### Konfigurasi Git
|
|
462
|
+
|
|
463
|
+
Disarankan untuk mengabaikan file yang dihasilkan oleh Intlayer. Hal ini memungkinkan Anda untuk menghindari meng-commit file tersebut ke repositori Git Anda.
|
|
464
|
+
|
|
465
|
+
Untuk melakukan ini, Anda dapat menambahkan instruksi berikut ke file `.gitignore` Anda:
|
|
466
|
+
|
|
467
|
+
```plaintext fileName=".gitignore"
|
|
468
|
+
# Abaikan file yang dihasilkan oleh Intlayer
|
|
469
|
+
.intlayer
|
|
470
|
+
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-09
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi mobile Lynx dan React Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi mobile Lynx dan React Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat aplikasi mobile Lynx dan React Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- lynx-and-react
|
|
18
18
|
applicationTemplate: https://github.com/aymericzip/intlayer-lynx-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.9
|
|
21
|
+
date: 2025-12-30
|
|
22
|
+
changes: Tambahkan perintah init
|
|
20
23
|
- version: 5.5.10
|
|
21
24
|
date: 2025-06-29
|
|
22
25
|
changes: Inisialisasi riwayat
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan backend Nest Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan backend Nest Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat backend NestJS Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
applicationTemplate: https://github.com/AydinTheFirst/nestjs-intlayer
|
|
18
18
|
author: AydinTheFirst
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.9
|
|
21
|
+
date: 2025-12-30
|
|
22
|
+
changes: Tambahkan perintah init
|
|
20
23
|
- version: 5.8.0
|
|
21
24
|
date: 2025-09-09
|
|
22
25
|
changes: Dokumen awal
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title: Cara menerjemahkan Next.js 15 Anda menggunakan next-i18next – panduan i18n
|
|
4
|
+
title: Cara menerjemahkan Next.js 15 Anda menggunakan next-i18next – panduan i18n 2026
|
|
5
5
|
description: Panduan praktis dan siap produksi untuk menginternasionalisasi aplikasi Next.js 15 App Router dengan i18next/next-i18next dan meningkatkan dengan Intlayer.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title: Cara menerjemahkan Next.js 15 Anda menggunakan next-intl – panduan i18n
|
|
4
|
+
title: Cara menerjemahkan Next.js 15 Anda menggunakan next-intl – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Next.js 15 App Router Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara Menerjemahkan Next.js 14 dan App Router Anda – Panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara Menerjemahkan Next.js 14 dan App Router Anda – Panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Next.js 14 App Router Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- 14
|
|
18
18
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-14-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.9
|
|
21
|
+
date: 2025-12-30
|
|
22
|
+
changes: Tambahkan perintah init
|
|
20
23
|
- version: 6.2.0
|
|
21
24
|
date: 2025-10-09
|
|
22
25
|
changes: Menambahkan dokumentasi untuk hook `useLocale` dengan opsi `onLocaleChange`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-25
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi Next.js 15 Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi Next.js 15 Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Next.js 15 Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -18,6 +18,9 @@ slugs:
|
|
|
18
18
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-15-template
|
|
19
19
|
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
20
20
|
history:
|
|
21
|
+
- version: 7.5.9
|
|
22
|
+
date: 2025-12-30
|
|
23
|
+
changes: Tambahkan perintah init
|
|
21
24
|
- version: 7.0.6
|
|
22
25
|
date: 2025-11-01
|
|
23
26
|
changes: Menambahkan penyebutan `x-default` dalam objek `alternates`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi Next.js 16 Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi Next.js 16 Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Next.js 16 Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-16-template
|
|
18
18
|
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.9
|
|
21
|
+
date: 2025-12-30
|
|
22
|
+
changes: Tambahkan perintah init
|
|
20
23
|
- version: 7.0.0
|
|
21
24
|
date: 2025-06-29
|
|
22
25
|
changes: Riwayat awal
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-07
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi Next.js dan Page Router Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi Next.js dan Page Router Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Next.js Anda yang menggunakan Page Router menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- nextjs
|
|
18
18
|
- next-with-page-router
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.9
|
|
21
|
+
date: 2025-12-30
|
|
22
|
+
changes: Tambahkan perintah init
|
|
20
23
|
- version: 5.6.0
|
|
21
24
|
date: 2025-07-06
|
|
22
25
|
changes: Mengubah fungsi `withIntlayer()` menjadi fungsi berbasis promise
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-18
|
|
3
3
|
updatedAt: 2025-12-07
|
|
4
|
-
title: Cara Menerjemahkan Aplikasi Nuxt dan Vue Anda – Panduan i18n
|
|
4
|
+
title: Cara Menerjemahkan Aplikasi Nuxt dan Vue Anda – Panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web Nuxt dan Vue Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-18
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi React Native dan Expo Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi React Native dan Expo Anda – panduan i18n 2026
|
|
5
5
|
description: Temukan cara membuat situs web React Native dan Expo Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -16,6 +16,9 @@ slugs:
|
|
|
16
16
|
- react-native-and-expo
|
|
17
17
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-native-template
|
|
18
18
|
history:
|
|
19
|
+
- version: 7.5.9
|
|
20
|
+
date: 2025-12-30
|
|
21
|
+
changes: Tambahkan perintah init
|
|
19
22
|
- version: 6.1.6
|
|
20
23
|
date: 2025-10-02
|
|
21
24
|
changes: Menambahkan bagian debug
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt: 2025-12-
|
|
4
|
-
title: Cara menerjemahkan aplikasi React Router v7 Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi React Router v7 Anda – panduan i18n 2026
|
|
5
5
|
description: Pelajari cara menambahkan internasionalisasi (i18n) ke aplikasi React Router v7 Anda menggunakan Intlayer. Ikuti panduan komprehensif ini untuk membuat aplikasi Anda multibahasa dengan routing yang mendukung locale.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
22
|
history:
|
|
23
|
+
- version: 7.5.9
|
|
24
|
+
date: 2025-12-30
|
|
25
|
+
changes: Tambahkan perintah init
|
|
23
26
|
- version: 7.5.6
|
|
24
27
|
date: 2025-12-27
|
|
25
28
|
changes: Perbarui Layout dan tangani 404
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Cara menerjemahkan aplikasi React Router v7 Anda – panduan i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Cara menerjemahkan aplikasi React Router v7 Anda – panduan i18n 2026
|
|
5
5
|
description: Pelajari cara menambahkan internasionalisasi (i18n) ke aplikasi React Router v7 Anda menggunakan Intlayer. Ikuti panduan komprehensif ini untuk membuat aplikasi Anda multibahasa dengan routing yang mendukung locale.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internasionalisasi
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
22
|
history:
|
|
23
|
+
- version: 7.5.9
|
|
24
|
+
date: 2025-12-30
|
|
25
|
+
changes: Tambahkan perintah init
|
|
23
26
|
- version: 6.1.5
|
|
24
27
|
date: 2025-10-03
|
|
25
28
|
changes: Memperbarui dokumen
|