@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,516 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة الـ backend الخاص بـ Fastify – دليل التدويل (i18n) 2026
|
|
5
|
+
description: اكتشف كيفية جعل خادم Fastify الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
|
+
keywords:
|
|
7
|
+
- التدويل
|
|
8
|
+
- الوثائق
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Fastify
|
|
11
|
+
- JavaScript
|
|
12
|
+
- الخادم
|
|
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: إضافة أمر init
|
|
22
|
+
- version: 7.6.0
|
|
23
|
+
date: 2025-12-31
|
|
24
|
+
changes: تهيئة السجل
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# ترجمة موقع الويب الخاص بخادم Fastify باستخدام Intlayer | التدويل (i18n)
|
|
28
|
+
|
|
29
|
+
`fastify-intlayer` هو ملحق (plugin) قوي للتدويل (i18n) لتطبيقات Fastify، مصمم لجعل خدمات الـ backend الخاصة بك متاحة عالميًا من خلال تقديم استجابات محلية حسب تفضيلات العميل.
|
|
30
|
+
|
|
31
|
+
### حالات استخدام عملية
|
|
32
|
+
|
|
33
|
+
- **عرض أخطاء الـ backend بلغة المستخدم**: عند حدوث خطأ، عرض الرسائل بلغة المستخدم الأم يُحسّن الفهم ويقلل الإحباط. هذا مفيد بشكل خاص للرسائل الديناميكية للأخطاء التي قد تُعرض في مكونات الواجهة الأمامية مثل toasts أو modals.
|
|
34
|
+
|
|
35
|
+
`fastify-intlayer` هو مكون إضافي قوي للتدويل (i18n) لتطبيقات Fastify، مصمم لجعل خدمات backend الخاصة بك متاحة عالميًا من خلال تقديم استجابات مَحَلّية بناءً على تفضيلات العميل.
|
|
36
|
+
|
|
37
|
+
### حالات استخدام عملية
|
|
38
|
+
|
|
39
|
+
- **عرض أخطاء الخادم بلغة المستخدم**: عندما يحدث خطأ، فإن عرض الرسائل بلغة المستخدم الأم يحسّن الفهم ويقلل الإحباط. هذا مفيد بشكل خاص للرسائل الديناميكية للأخطاء التي قد تُعرض في مكونات الواجهة الأمامية مثل toasts أو modals.
|
|
40
|
+
- **استرجاع محتوى متعدد اللغات**: بالنسبة للتطبيقات التي تجلب المحتوى من قاعدة بيانات، يضمن التدويل أنه يمكنك تقديم هذا المحتوى بعدة لغات. هذا أمر حاسم لمنصات مثل مواقع e-commerce أو أنظمة إدارة المحتوى التي تحتاج إلى عرض أوصاف المنتجات والمقالات ومحتويات أخرى باللغة التي يفضلها المستخدم.
|
|
41
|
+
- **إرسال رسائل بريد إلكتروني متعددة اللغات**: سواء كانت transactional emails أو حملات تسويقية أو notifications، فإن إرسال الرسائل البريدية بلغة المستلم يمكن أن يزيد بشكل كبير من التفاعل والفعالية.
|
|
42
|
+
- **الإشعارات المتعددة اللغات (Multilingual Push Notifications)**: بالنسبة لتطبيقات الجوال، إرسال إشعارات الدفع بلغة مفضلة لدى المستخدم يمكن أن يعزز التفاعل والاحتفاظ بالمستخدمين. تضيف هذه اللمسة الشخصية شعورًا بأن الإشعارات ذات صلة وقابلة للتنفيذ.
|
|
43
|
+
- **وسائل اتصال أخرى**: أي شكل من أشكال الاتصال من الـ backend، مثل رسائل SMS أو تنبيهات النظام أو تحديثات واجهة المستخدم، يستفيد من تقديمه بلغة المستخدم، مما يضمن الوضوح ويعزز تجربة المستخدم العامة.
|
|
44
|
+
|
|
45
|
+
من خلال تدويل الـ backend، لا يحترم تطبيقك الفروق الثقافية فحسب، بل يتماشى أيضًا بشكل أفضل مع احتياجات السوق العالمية، مما يجعله خطوة أساسية لتوسيع نطاق خدماتك عالميًا.
|
|
46
|
+
|
|
47
|
+
## البدء
|
|
48
|
+
|
|
49
|
+
### التثبيت
|
|
50
|
+
|
|
51
|
+
لبدء استخدام `fastify-intlayer`، قم بتثبيت الحزمة باستخدام 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
|
+
### الإعداد
|
|
78
|
+
|
|
79
|
+
قم بتكوين إعدادات التدويل بإنشاء ملف `intlayer.config.ts` في جذر مشروعك:
|
|
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
|
+
### إعلان المحتوى
|
|
138
|
+
|
|
139
|
+
أنشئ وادِر تعريفات المحتوى الخاصة بك لتخزين الترجمات:
|
|
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
|
+
ar: "مثال على المحتوى المعاد باللغة الإنجليزية",
|
|
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
|
+
ar: "مثال على المحتوى المعاد باللغة الإنجليزية",
|
|
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
|
+
|
|
180
|
+
```javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
181
|
+
const { t } = require("intlayer");
|
|
182
|
+
|
|
183
|
+
/** @type {import('intlayer').Dictionary} */
|
|
184
|
+
const indexContent = {
|
|
185
|
+
key: "index",
|
|
186
|
+
content: {
|
|
187
|
+
exampleOfContent: t({
|
|
188
|
+
ar: "مثال على المحتوى المعاد باللغة الإنجليزية",
|
|
189
|
+
en: "Example of returned content in English",
|
|
190
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
191
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
192
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
193
|
+
}),
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
module.exports = indexContent;
|
|
198
|
+
javascript fileName="src/index.content.cjs" contentDeclarationFormat="commonjs"
|
|
199
|
+
const { t } = require("intlayer");
|
|
200
|
+
|
|
201
|
+
/** @type {import('intlayer').Dictionary} */
|
|
202
|
+
const indexContent = {
|
|
203
|
+
key: "index",
|
|
204
|
+
content: {
|
|
205
|
+
exampleOfContent: t({
|
|
206
|
+
ar: "مثال على المحتوى المعاد باللغة الإنجليزية",
|
|
207
|
+
en: "Example of returned content in English",
|
|
208
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
209
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
210
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
211
|
+
}),
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
module.exports = indexContent;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
219
|
+
{
|
|
220
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
221
|
+
"key": "index",
|
|
222
|
+
"content": {
|
|
223
|
+
"exampleOfContent": {
|
|
224
|
+
"nodeType": "translation",
|
|
225
|
+
"translation": {
|
|
226
|
+
"ar": "مثال على المحتوى المعاد باللغة الإنجليزية",
|
|
227
|
+
"en": "Example of returned content in English",
|
|
228
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
229
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
230
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
> يمكن تعريف إعلانات المحتوى (content declarations) في أي مكان داخل تطبيقك طالما أنها مضمنة في دليل `contentDir` (افتراضياً `./src`). ويجب أن تتطابق مع امتداد ملف إعلان المحتوى (افتراضياً `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
238
|
+
|
|
239
|
+
> لمزيد من التفاصيل، راجع [توثيق إعلان المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md).
|
|
240
|
+
|
|
241
|
+
### إعداد تطبيق Fastify
|
|
242
|
+
|
|
243
|
+
أعد إعداد تطبيق Fastify لاستخدام `fastify-intlayer`:
|
|
244
|
+
|
|
245
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
246
|
+
import Fastify from "fastify";
|
|
247
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
248
|
+
import dictionaryExample from "./index.content";
|
|
249
|
+
|
|
250
|
+
const fastify = Fastify({ logger: true });
|
|
251
|
+
|
|
252
|
+
// تحميل إضافة التدويل
|
|
253
|
+
await fastify.register(intlayer);
|
|
254
|
+
|
|
255
|
+
// المسارات
|
|
256
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
257
|
+
return t({
|
|
258
|
+
ar: "مثال على المحتوى المُعاد باللغة الإنجليزية",
|
|
259
|
+
en: "Example of returned content in English",
|
|
260
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
261
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
262
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
267
|
+
return getIntlayer("index").exampleOfContent;
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
271
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
// بدء الخادم
|
|
275
|
+
const start = async () => {
|
|
276
|
+
try {
|
|
277
|
+
await fastify.listen({ port: 3000 });
|
|
278
|
+
} catch (err) {
|
|
279
|
+
fastify.log.error(err);
|
|
280
|
+
process.exit(1);
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
start();
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
288
|
+
import Fastify from "fastify";
|
|
289
|
+
import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
|
|
290
|
+
import dictionaryExample from "./index.content";
|
|
291
|
+
|
|
292
|
+
const fastify = Fastify({ logger: true });
|
|
293
|
+
|
|
294
|
+
// تحميل إضافة التدويل
|
|
295
|
+
await fastify.register(intlayer);
|
|
296
|
+
|
|
297
|
+
// المسارات
|
|
298
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
299
|
+
return t({
|
|
300
|
+
ar: "مثال على المحتوى المعاد باللغة العربية",
|
|
301
|
+
en: "Example of returned content in English",
|
|
302
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
303
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
304
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
309
|
+
return getIntlayer("index").exampleOfContent;
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
javascript fileName="src/index.mjs" codeFormat="esm"
|
|
313
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
314
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
// بدء الخادم
|
|
318
|
+
const start = async () => {
|
|
319
|
+
try {
|
|
320
|
+
await fastify.listen({ port: 3000 });
|
|
321
|
+
} catch (err) {
|
|
322
|
+
fastify.log.error(err);
|
|
323
|
+
process.exit(1);
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
start();
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
331
|
+
const Fastify = require("fastify");
|
|
332
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
333
|
+
const dictionaryExample = require("./index.content");
|
|
334
|
+
|
|
335
|
+
const fastify = Fastify({ logger: true });
|
|
336
|
+
|
|
337
|
+
// غلاف بدء الخادم لـ async/await
|
|
338
|
+
const start = async () => {
|
|
339
|
+
try {
|
|
340
|
+
// تحميل مكون التدويل
|
|
341
|
+
await fastify.register(intlayer);
|
|
342
|
+
|
|
343
|
+
// المسارات
|
|
344
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
345
|
+
return t({
|
|
346
|
+
ar: "مثال على المحتوى المعاد باللغة العربية",
|
|
347
|
+
en: "Example of returned content in English",
|
|
348
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
349
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
350
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
355
|
+
return getIntlayer("index").exampleOfContent;
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
359
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
await fastify.listen({ port: 3000 });
|
|
363
|
+
} catch (err) {
|
|
364
|
+
fastify.log.error(err);
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
start();
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
373
|
+
const Fastify = require("fastify");
|
|
374
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("fastify-intlayer");
|
|
375
|
+
const dictionaryExample = require("./index.content");
|
|
376
|
+
|
|
377
|
+
const fastify = Fastify({ logger: true });
|
|
378
|
+
|
|
379
|
+
// Start server wrapper for async/await
|
|
380
|
+
const start = async () => {
|
|
381
|
+
try {
|
|
382
|
+
// Load internationalization plugin
|
|
383
|
+
await fastify.register(intlayer);
|
|
384
|
+
|
|
385
|
+
// Routes
|
|
386
|
+
fastify.get("/t_example", async (_req, reply) => {
|
|
387
|
+
return t({
|
|
388
|
+
ar: "مثال على المحتوى المعاد باللغة العربية",
|
|
389
|
+
en: "Example of returned content in English",
|
|
390
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
391
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
392
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
fastify.get("/getIntlayer_example", async (_req, reply) => {
|
|
397
|
+
return getIntlayer("index").exampleOfContent;
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
fastify.get("/getDictionary_example", async (_req, reply) => {
|
|
401
|
+
return getDictionary(dictionaryExample).exampleOfContent;
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
await fastify.listen({ port: 3000 });
|
|
405
|
+
} catch (err) {
|
|
406
|
+
fastify.log.error(err);
|
|
407
|
+
process.exit(1);
|
|
408
|
+
}
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
start();
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### التوافق
|
|
415
|
+
|
|
416
|
+
`fastify-intlayer` متوافق تمامًا مع:
|
|
417
|
+
|
|
418
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/react-intlayer/index.md)>) لتطبيقات React
|
|
419
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/next-intlayer/index.md)>) لتطبيقات Next.js
|
|
420
|
+
|
|
421
|
+
- [`react-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/react-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/react-intlayer/index.md)>) لتطبيقات React
|
|
422
|
+
- [`next-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/next-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/next-intlayer/index.md)>) لتطبيقات Next.js
|
|
423
|
+
- [`vite-intlayer`](<https://www.google.com/search?q=%5Bhttps://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/vite-intlayer/index.md%5D(https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/vite-intlayer/index.md)>) لتطبيقات Vite
|
|
424
|
+
|
|
425
|
+
كما يعمل بسلاسة مع أي حل للتدويل عبر بيئات متعددة، بما في ذلك المتصفحات وطلبات API. يمكنك تخصيص الـ middleware لاكتشاف اللغة عبر الرؤوس أو الكوكيز:
|
|
426
|
+
|
|
427
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
428
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
429
|
+
|
|
430
|
+
const config: IntlayerConfig = {
|
|
431
|
+
// ... خيارات التكوين الأخرى
|
|
432
|
+
middleware: {
|
|
433
|
+
headerName: "my-locale-header",
|
|
434
|
+
cookieName: "my-locale-cookie",
|
|
435
|
+
},
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
export default config;
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
442
|
+
import { Locales } from "intlayer";
|
|
443
|
+
|
|
444
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
445
|
+
const config = {
|
|
446
|
+
// ... خيارات تكوين أخرى
|
|
447
|
+
middleware: {
|
|
448
|
+
headerName: "my-locale-header",
|
|
449
|
+
cookieName: "my-locale-cookie",
|
|
450
|
+
},
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
export default config;
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
457
|
+
const { Locales } = require("intlayer");
|
|
458
|
+
|
|
459
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
460
|
+
const config = {
|
|
461
|
+
// ... خيارات تكوين أخرى
|
|
462
|
+
middleware: {
|
|
463
|
+
headerName: "my-locale-header",
|
|
464
|
+
cookieName: "my-locale-cookie",
|
|
465
|
+
},
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
module.exports = config;
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
بشكل افتراضي، سيقوم `fastify-intlayer` بتفسير رأس الطلب `Accept-Language` لتحديد اللغة المفضلة لدى العميل.
|
|
472
|
+
|
|
473
|
+
> لمزيد من المعلومات حول التكوين والمواضيع المتقدمة، قم بزيارة [التوثيق](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
|
|
474
|
+
|
|
475
|
+
### تكوين TypeScript
|
|
476
|
+
|
|
477
|
+
`fastify-intlayer` يستفيد من القدرات القوية لـ TypeScript لتحسين عملية التدويل. يضمن نظام الكتابة الثابتة في TypeScript أن كل مفتاح ترجمة مغطى، مما يقلل من خطر فقدان الترجمات ويحسن قابلية الصيانة.
|
|
478
|
+
|
|
479
|
+
تأكد من تضمين الأنواع المولدة تلقائياً (بشكل افتراضي في ./types/intlayer.d.ts) في ملف tsconfig.json الخاص بك.
|
|
480
|
+
|
|
481
|
+
```json5 fileName="tsconfig.json"
|
|
482
|
+
{
|
|
483
|
+
// ... تكوينات TypeScript الحالية الخاصة بك
|
|
484
|
+
"include": [
|
|
485
|
+
// ... تكوينات TypeScript الحالية الخاصة بك
|
|
486
|
+
".intlayer/**/*.ts", // تضمين الأنواع المولدة تلقائياً
|
|
487
|
+
],
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### امتداد VS Code
|
|
492
|
+
|
|
493
|
+
لتحسين تجربة التطوير مع Intlayer، يمكنك تثبيت الامتداد الرسمي **Intlayer VS Code Extension**.
|
|
494
|
+
|
|
495
|
+
[التثبيت من سوق إضافات VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
496
|
+
|
|
497
|
+
يقدّم هذا الامتداد:
|
|
498
|
+
|
|
499
|
+
- **الإكمال التلقائي** لمفاتيح الترجمة.
|
|
500
|
+
- **كشف الأخطاء في الوقت الحقيقي** للترجمات المفقودة.
|
|
501
|
+
- **معاينات مُضمّنة** للمحتوى المترجم.
|
|
502
|
+
- **إجراءات سريعة** لإنشاء وتحديث الترجمات بسهولة.
|
|
503
|
+
|
|
504
|
+
لمزيد من التفاصيل حول كيفية استخدام الامتداد، راجع وثائق امتداد Intlayer لـ VS Code: [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
|
|
505
|
+
|
|
506
|
+
### تكوين Git
|
|
507
|
+
|
|
508
|
+
يوصى بتجاهل الملفات التي يولّدها Intlayer. يتيح ذلك تجنّب عمل commit لها في مستودع Git الخاص بك.
|
|
509
|
+
|
|
510
|
+
لتحقيق ذلك، يمكنك إضافة التعليمات التالية إلى ملف `.gitignore` الخاص بك:
|
|
511
|
+
|
|
512
|
+
```plaintext fileName=".gitignore"
|
|
513
|
+
# تجاهل الملفات التي تم إنشاؤها بواسطة Intlayer
|
|
514
|
+
.intlayer
|
|
515
|
+
|
|
516
|
+
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-09
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق Lynx and React mobile app – دليل i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق Lynx and React mobile app – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك الذي يستخدم Lynx و React مع Page Router متعدد اللغات. اتبع الوثائق لتدويله (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
20
23
|
- version: 5.5.10
|
|
21
24
|
date: 2025-06-29
|
|
22
25
|
changes: بدء السجل
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق Nest backend – دليل i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق Nest backend – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل خلفية NestJS الخاصة بك متعددة اللغات. اتبع الوثائق لتدويل (i18n) وترجمتها.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
20
23
|
- version: 5.8.0
|
|
21
24
|
date: 2025-09-09
|
|
22
25
|
changes: الوثيقة الأولية
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js 15 باستخدام next-i18next – دليل i18n
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js 15 باستخدام next-i18next – دليل i18n 2026
|
|
5
5
|
description: دليل عملي وجاهز للإنتاج لتعريب تطبيق Next.js 15 App Router باستخدام i18next/next-i18next وتعزيزه بـ Intlayer.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-05
|
|
3
3
|
updatedAt: 2025-10-05
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js 15 باستخدام next-intl – دليل i18n
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js 15 باستخدام next-intl – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع Next.js 15 App Router متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
3
|
updatedAt: 2025-06-29
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js 14 and App Router – دليل i18n
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js 14 and App Router – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع Next.js 14 App Router الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدوين الدولي
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js 15 – دليل i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js 15 – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك الإلكتروني Next.js 15 متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
21
24
|
- version: 5.5.10
|
|
22
25
|
date: 2025-06-29
|
|
23
26
|
changes: بداية التاريخ
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-10-25
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js 16 الخاص بك – دليل i18n لعام
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js 16 الخاص بك – دليل i18n لعام 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع Next.js 16 الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
20
23
|
- version: 7.0.0
|
|
21
24
|
date: 2025-06-29
|
|
22
25
|
changes: بداية السجل
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-07
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق Next.js and Page Router – دليل i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق Next.js and Page Router – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقعك الذي يستخدم Next.js و Page Router متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
20
23
|
- version: 5.5.10
|
|
21
24
|
date: 2025-06-29
|
|
22
25
|
changes: بدء التاريخ
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-18
|
|
3
3
|
updatedAt: 2025-12-07
|
|
4
|
-
title: كيفية ترجمة تطبيق Nuxt و Vue الخاص بك – دليل i18n
|
|
4
|
+
title: كيفية ترجمة تطبيق Nuxt و Vue الخاص بك – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع Nuxt و Vue الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-18
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: كيفية ترجمة تطبيق React Native and Expo – دليل i18n
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: كيفية ترجمة تطبيق React Native and Expo – دليل i18n 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع React Native و Expo الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته.
|
|
6
6
|
keywords:
|
|
7
7
|
- التدويل
|
|
@@ -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: إضافة أمر init
|
|
19
22
|
- version: 5.5.10
|
|
20
23
|
date: 2025-06-29
|
|
21
24
|
changes: بداية التاريخ
|