@intlayer/docs 8.3.0 → 8.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/i18n_using_next-i18next.md +1 -0
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +0 -29
- package/blog/uk/internationalization_and_SEO.md +1 -1
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +82 -58
- package/docs/ar/intlayer_with_analog.md +2 -2
- package/docs/ar/intlayer_with_angular.md +2 -2
- package/docs/ar/intlayer_with_astro.md +2 -2
- package/docs/ar/intlayer_with_lynx+react.md +2 -2
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +4 -7
- package/docs/ar/intlayer_with_react_native+expo.md +2 -2
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +176 -3
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +176 -3
- package/docs/ar/intlayer_with_vite+svelte.md +176 -3
- package/docs/ar/intlayer_with_vite+vue.md +178 -5
- package/docs/ar/vs_code_extension.md +1 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +417 -214
- package/docs/de/intlayer_with_analog.md +2 -2
- package/docs/de/intlayer_with_angular.md +2 -2
- package/docs/de/intlayer_with_astro.md +2 -2
- package/docs/de/intlayer_with_lynx+react.md +2 -2
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_native+expo.md +2 -2
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +159 -3
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +161 -5
- package/docs/de/intlayer_with_vite+svelte.md +159 -3
- package/docs/de/intlayer_with_vite+vue.md +159 -3
- package/docs/de/vs_code_extension.md +1 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +82 -77
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_native+expo.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +160 -1
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +149 -28
- package/docs/en/intlayer_with_vite+svelte.md +160 -1
- package/docs/en/intlayer_with_vite+vue.md +143 -42
- package/docs/en/vs_code_extension.md +1 -1
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +80 -57
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -1
- package/docs/en-GB/intlayer_with_react_native+expo.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +2 -2
- package/docs/en-GB/vs_code_extension.md +1 -1
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +412 -208
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +2 -2
- package/docs/es/intlayer_with_angular.md +2 -2
- package/docs/es/intlayer_with_astro.md +2 -2
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_lynx+react.md +2 -2
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +2 -2
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +164 -8
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +165 -9
- package/docs/es/intlayer_with_vite+svelte.md +159 -3
- package/docs/es/intlayer_with_vite+vue.md +169 -13
- package/docs/es/vs_code_extension.md +1 -1
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +351 -149
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +2 -2
- package/docs/fr/intlayer_with_angular.md +2 -2
- package/docs/fr/intlayer_with_astro.md +2 -2
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_lynx+react.md +2 -2
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_native+expo.md +2 -2
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +166 -10
- package/docs/fr/intlayer_with_vite+react.md +163 -7
- package/docs/fr/intlayer_with_vite+solid.md +165 -9
- package/docs/fr/intlayer_with_vite+svelte.md +159 -3
- package/docs/fr/intlayer_with_vite+vue.md +168 -12
- package/docs/fr/vs_code_extension.md +1 -1
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +89 -65
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +2 -2
- package/docs/hi/intlayer_with_astro.md +2 -2
- package/docs/hi/intlayer_with_lynx+react.md +2 -2
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_native+expo.md +2 -2
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +159 -3
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +159 -3
- package/docs/hi/intlayer_with_vite+svelte.md +159 -3
- package/docs/hi/intlayer_with_vite+vue.md +159 -3
- package/docs/hi/vs_code_extension.md +1 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +85 -65
- package/docs/id/intlayer_with_analog.md +2 -2
- package/docs/id/intlayer_with_angular.md +2 -2
- package/docs/id/intlayer_with_astro.md +2 -2
- package/docs/id/intlayer_with_lynx+react.md +2 -2
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_native+expo.md +2 -2
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +159 -3
- package/docs/id/intlayer_with_vite+react.md +159 -3
- package/docs/id/intlayer_with_vite+solid.md +159 -3
- package/docs/id/intlayer_with_vite+svelte.md +159 -3
- package/docs/id/intlayer_with_vite+vue.md +159 -3
- package/docs/id/vs_code_extension.md +1 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +410 -208
- package/docs/it/intlayer_with_analog.md +2 -2
- package/docs/it/intlayer_with_angular.md +2 -2
- package/docs/it/intlayer_with_astro.md +2 -2
- package/docs/it/intlayer_with_lynx+react.md +2 -2
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_native+expo.md +2 -2
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +159 -3
- package/docs/it/intlayer_with_vite+react.md +159 -3
- package/docs/it/intlayer_with_vite+solid.md +161 -5
- package/docs/it/intlayer_with_vite+svelte.md +159 -3
- package/docs/it/intlayer_with_vite+vue.md +161 -5
- package/docs/it/vs_code_extension.md +1 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +90 -66
- package/docs/ja/intlayer_with_analog.md +2 -2
- package/docs/ja/intlayer_with_angular.md +2 -2
- package/docs/ja/intlayer_with_astro.md +2 -2
- package/docs/ja/intlayer_with_lynx+react.md +2 -2
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_native+expo.md +2 -2
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +161 -5
- package/docs/ja/intlayer_with_vite+svelte.md +159 -3
- package/docs/ja/intlayer_with_vite+vue.md +159 -3
- package/docs/ja/vs_code_extension.md +1 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +89 -65
- package/docs/ko/intlayer_with_analog.md +2 -2
- package/docs/ko/intlayer_with_angular.md +2 -2
- package/docs/ko/intlayer_with_astro.md +2 -2
- package/docs/ko/intlayer_with_lynx+react.md +2 -2
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +159 -3
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +161 -5
- package/docs/ko/intlayer_with_vite+svelte.md +159 -3
- package/docs/ko/intlayer_with_vite+vue.md +159 -3
- package/docs/ko/vs_code_extension.md +1 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +85 -57
- package/docs/pl/intlayer_with_analog.md +2 -2
- package/docs/pl/intlayer_with_angular.md +2 -2
- package/docs/pl/intlayer_with_astro.md +2 -2
- package/docs/pl/intlayer_with_lynx+react.md +2 -2
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_native+expo.md +2 -2
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +158 -2
- package/docs/pl/intlayer_with_vite+react.md +159 -3
- package/docs/pl/intlayer_with_vite+solid.md +159 -3
- package/docs/pl/intlayer_with_vite+svelte.md +159 -3
- package/docs/pl/intlayer_with_vite+vue.md +161 -5
- package/docs/pl/vs_code_extension.md +1 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +399 -199
- package/docs/pt/intlayer_with_analog.md +2 -2
- package/docs/pt/intlayer_with_angular.md +2 -2
- package/docs/pt/intlayer_with_astro.md +2 -2
- package/docs/pt/intlayer_with_lynx+react.md +2 -2
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_native+expo.md +2 -2
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +158 -2
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +159 -3
- package/docs/pt/intlayer_with_vite+svelte.md +159 -3
- package/docs/pt/intlayer_with_vite+vue.md +159 -3
- package/docs/pt/vs_code_extension.md +1 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +78 -67
- package/docs/ru/intlayer_with_analog.md +2 -2
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +2 -2
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_native+expo.md +2 -2
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +159 -3
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +159 -3
- package/docs/ru/intlayer_with_vite+svelte.md +159 -3
- package/docs/ru/intlayer_with_vite+vue.md +159 -3
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +85 -61
- package/docs/tr/intlayer_with_analog.md +2 -2
- package/docs/tr/intlayer_with_angular.md +2 -2
- package/docs/tr/intlayer_with_astro.md +2 -2
- package/docs/tr/intlayer_with_lynx+react.md +2 -2
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +6 -14
- package/docs/tr/intlayer_with_react_native+expo.md +2 -2
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +159 -3
- package/docs/tr/intlayer_with_vite+react.md +159 -3
- package/docs/tr/intlayer_with_vite+solid.md +159 -3
- package/docs/tr/intlayer_with_vite+svelte.md +159 -3
- package/docs/tr/intlayer_with_vite+vue.md +159 -3
- package/docs/tr/vs_code_extension.md +1 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +85 -57
- package/docs/uk/intlayer_with_analog.md +2 -2
- package/docs/uk/intlayer_with_angular.md +2 -2
- package/docs/uk/intlayer_with_astro.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +2 -2
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +4 -22
- package/docs/uk/intlayer_with_react_native+expo.md +2 -2
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +159 -3
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +159 -3
- package/docs/uk/intlayer_with_vite+svelte.md +159 -3
- package/docs/uk/intlayer_with_vite+vue.md +159 -3
- package/docs/uk/vs_code_extension.md +1 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +87 -59
- package/docs/vi/intlayer_with_analog.md +2 -2
- package/docs/vi/intlayer_with_angular.md +2 -2
- package/docs/vi/intlayer_with_astro.md +2 -2
- package/docs/vi/intlayer_with_lynx+react.md +2 -2
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_native+expo.md +2 -2
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +159 -3
- package/docs/vi/intlayer_with_vite+react.md +159 -3
- package/docs/vi/intlayer_with_vite+solid.md +159 -3
- package/docs/vi/intlayer_with_vite+svelte.md +159 -3
- package/docs/vi/intlayer_with_vite+vue.md +159 -3
- package/docs/vi/vs_code_extension.md +1 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +82 -58
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +2 -2
- package/docs/zh/intlayer_with_angular.md +2 -2
- package/docs/zh/intlayer_with_astro.md +2 -2
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_lynx+react.md +2 -2
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_native+expo.md +2 -2
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +161 -5
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +163 -7
- package/docs/zh/intlayer_with_vite+svelte.md +159 -3
- package/docs/zh/intlayer_with_vite+vue.md +162 -6
- package/docs/zh/vs_code_extension.md +2 -2
- package/package.json +8 -8
- package/docs/update_docs.py +0 -65
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-04
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: React Router v7 i18n - كيفية ترجمة تطبيق React Router v7 في 2026
|
|
5
5
|
description: تعلّم كيفية إضافة التدويل (i18n) إلى تطبيق React Router v7 الخاص بك باستخدام Intlayer. اتبع هذا الدليل الشامل لجعل تطبيقك متعدد اللغات مع توجيه يدعم اللغة المحلية.
|
|
6
6
|
keywords:
|
|
@@ -452,6 +452,230 @@ export default function RootLayout() {
|
|
|
452
452
|
}
|
|
453
453
|
```
|
|
454
454
|
|
|
455
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
456
|
+
|
|
457
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
458
|
+
|
|
459
|
+
لتسهيل هذه العملية، يقترح Intlayer [مترجمًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) / [مستخرجًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) لتحويل مكوناتك واستخراج المحتوى.
|
|
460
|
+
|
|
461
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
462
|
+
|
|
463
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
464
|
+
import { type IntlayerConfig } from "intlayer";
|
|
465
|
+
|
|
466
|
+
const config: IntlayerConfig = {
|
|
467
|
+
// ... بقية التكوين الخاص بك
|
|
468
|
+
compiler: {
|
|
469
|
+
/**
|
|
470
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
471
|
+
*/
|
|
472
|
+
enabled: true,
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* يحدد مسار ملفات المخرجات
|
|
476
|
+
*/
|
|
477
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
481
|
+
*/
|
|
482
|
+
saveComponents: false,
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* بادئة مفتاح القاموس
|
|
486
|
+
*/
|
|
487
|
+
dictionaryKeyPrefix: "",
|
|
488
|
+
},
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
export default config;
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
495
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
496
|
+
const config = {
|
|
497
|
+
// ... بقية التكوين الخاص بك
|
|
498
|
+
compiler: {
|
|
499
|
+
/**
|
|
500
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
501
|
+
*/
|
|
502
|
+
enabled: true,
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* يحدد مسار ملفات المخرجات
|
|
506
|
+
*/
|
|
507
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
511
|
+
*/
|
|
512
|
+
saveComponents: false,
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* بادئة مفتاح القاموس
|
|
516
|
+
*/
|
|
517
|
+
dictionaryKeyPrefix: "",
|
|
518
|
+
},
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
export default config;
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
525
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
526
|
+
const config = {
|
|
527
|
+
// ... بقية التكوين الخاص بك
|
|
528
|
+
compiler: {
|
|
529
|
+
/**
|
|
530
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
531
|
+
*/
|
|
532
|
+
enabled: true,
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* يحدد مسار ملفات المخرجات
|
|
536
|
+
*/
|
|
537
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
541
|
+
*/
|
|
542
|
+
saveComponents: false,
|
|
543
|
+
|
|
544
|
+
/**
|
|
545
|
+
* بادئة مفتاح القاموس
|
|
546
|
+
*/
|
|
547
|
+
dictionaryKeyPrefix: "",
|
|
548
|
+
},
|
|
549
|
+
};
|
|
550
|
+
|
|
551
|
+
module.exports = config;
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
<Tabs>
|
|
555
|
+
<Tab value='أمر الاستخراج'>
|
|
556
|
+
|
|
557
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
558
|
+
|
|
559
|
+
```bash packageManager="npm"
|
|
560
|
+
npx intlayer extract
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
```bash packageManager="pnpm"
|
|
564
|
+
pnpm intlayer extract
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
```bash packageManager="yarn"
|
|
568
|
+
yarn intlayer extract
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
```bash packageManager="bun"
|
|
572
|
+
bunx intlayer extract
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
</Tab>
|
|
576
|
+
<Tab value='مترجم Babel'>
|
|
577
|
+
|
|
578
|
+
قم بتحديث `vite.config.ts` لتضمين مكون `intlayerCompiler` الإضافي:
|
|
579
|
+
|
|
580
|
+
```ts fileName="vite.config.ts"
|
|
581
|
+
import { defineConfig } from "vite";
|
|
582
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
583
|
+
|
|
584
|
+
export default defineConfig({
|
|
585
|
+
plugins: [
|
|
586
|
+
intlayer(),
|
|
587
|
+
intlayerCompiler(), // يضيف المكون الإضافي للمترجم
|
|
588
|
+
],
|
|
589
|
+
});
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
```bash packageManager="npm"
|
|
593
|
+
npm run build # أو npm run dev
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
```bash packageManager="pnpm"
|
|
597
|
+
pnpm run build # Or pnpm run dev
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
```bash packageManager="yarn"
|
|
601
|
+
yarn build # Or yarn dev
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
```bash packageManager="bun"
|
|
605
|
+
bun run build # Or bun run dev
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
</Tab>
|
|
609
|
+
</Tabs>
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## Configure TypeScript
|
|
614
|
+
|
|
615
|
+
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
|
|
616
|
+
|
|
617
|
+
Ensure your TypeScript configuration includes the autogenerated types:
|
|
618
|
+
|
|
619
|
+
```json5 fileName="tsconfig.json"
|
|
620
|
+
{
|
|
621
|
+
// ... your existing configurations
|
|
622
|
+
include: [
|
|
623
|
+
// ... your existing includes
|
|
624
|
+
".intlayer/**/*.ts", // Include the auto-generated types
|
|
625
|
+
],
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## Git Configuration
|
|
632
|
+
|
|
633
|
+
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
|
|
634
|
+
|
|
635
|
+
To do this, you can add the following instructions to your `.gitignore` file:
|
|
636
|
+
|
|
637
|
+
```plaintext fileName=".gitignore"
|
|
638
|
+
# Ignore the files generated by Intlayer
|
|
639
|
+
.intlayer
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
---
|
|
643
|
+
|
|
644
|
+
## VS Code Extension
|
|
645
|
+
|
|
646
|
+
To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
|
|
647
|
+
|
|
648
|
+
[Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
649
|
+
|
|
650
|
+
This extension provides:
|
|
651
|
+
|
|
652
|
+
- **Autocompletion** for translation keys.
|
|
653
|
+
- **Real-time error detection** for missing translations.
|
|
654
|
+
- **Inline previews** of translated content.
|
|
655
|
+
- **Quick actions** to easily create and update translations.
|
|
656
|
+
|
|
657
|
+
For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
661
|
+
## Go Further
|
|
662
|
+
|
|
663
|
+
To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
## Documentation References
|
|
668
|
+
|
|
669
|
+
- [Intlayer Documentation](https://intlayer.org)
|
|
670
|
+
- [React Router v7 Documentation](https://reactrouter.com/)
|
|
671
|
+
- [React Router fs-routes Documentation](https://reactrouter.com/how-to/file-route-conventions)
|
|
672
|
+
- [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
|
|
673
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
674
|
+
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
|
|
675
|
+
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
676
|
+
|
|
677
|
+
This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 using file-system based routing for a fully internationalized application with locale-aware routing and TypeScript support.
|
|
678
|
+
|
|
455
679
|
### الخطوة 11: إضافة الوسيط (اختياري)
|
|
456
680
|
|
|
457
681
|
يمكنك أيضًا استخدام `intlayerProxy` لإضافة التوجيه من جانب الخادم إلى تطبيقك. سيقوم هذا المكون الإضافي بالكشف تلقائيًا عن اللغة الحالية بناءً على عنوان URL وتعيين ملف تعريف الارتباط المناسب للغة. إذا لم يتم تحديد لغة، فسيحدد المكون الإضافي اللغة الأنسب بناءً على تفضيلات لغة متصفح المستخدم. إذا لم يتم الكشف عن أي لغة، فسيتم إعادة التوجيه إلى اللغة الافتراضية.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-20
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: SvelteKit i18n - كيفية ترجمة تطبيق SvelteKit في 2026
|
|
5
5
|
description: اكتشف كيفية جعل موقع SvelteKit الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته باستخدام العرض من جانب الخادم (SSR).
|
|
6
6
|
keywords:
|
|
@@ -185,7 +185,7 @@ export default heroContent;
|
|
|
185
185
|
|
|
186
186
|
> **ملاحظة:** تُرجع `useIntlayer` مخزن Svelte، لذا تحتاج إلى استخدام بادئة `---
|
|
187
187
|
> createdAt: 2025-11-20
|
|
188
|
-
> updatedAt:
|
|
188
|
+
> updatedAt: 2026-03-12
|
|
189
189
|
> title: كيفية ترجمة تطبيق SvelteKit الخاص بك – دليل i18n 2026
|
|
190
190
|
> description: اكتشف كيفية جعل موقع SvelteKit الخاص بك متعدد اللغات. اتبع الوثائق لتدويل (i18n) وترجمته باستخدام العرض من جانب الخادم (SSR).
|
|
191
191
|
> keywords:
|
|
@@ -742,6 +742,179 @@ export default defineConfig({
|
|
|
742
742
|
.intlayer
|
|
743
743
|
```
|
|
744
744
|
|
|
745
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
746
|
+
|
|
747
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
748
|
+
|
|
749
|
+
لتسهيل هذه العملية، يقترح Intlayer [مترجمًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) / [مستخرجًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) لتحويل مكوناتك واستخراج المحتوى.
|
|
750
|
+
|
|
751
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
752
|
+
|
|
753
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
754
|
+
import { type IntlayerConfig } from "intlayer";
|
|
755
|
+
|
|
756
|
+
const config: IntlayerConfig = {
|
|
757
|
+
// ... بقية التكوين الخاص بك
|
|
758
|
+
compiler: {
|
|
759
|
+
/**
|
|
760
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
761
|
+
*/
|
|
762
|
+
enabled: true,
|
|
763
|
+
|
|
764
|
+
/**
|
|
765
|
+
* يحدد مسار ملفات المخرجات
|
|
766
|
+
*/
|
|
767
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
771
|
+
*/
|
|
772
|
+
saveComponents: false,
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* بادئة مفتاح القاموس
|
|
776
|
+
*/
|
|
777
|
+
dictionaryKeyPrefix: "",
|
|
778
|
+
},
|
|
779
|
+
};
|
|
780
|
+
|
|
781
|
+
export default config;
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
785
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
786
|
+
const config = {
|
|
787
|
+
// ... بقية التكوين الخاص بك
|
|
788
|
+
compiler: {
|
|
789
|
+
/**
|
|
790
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
791
|
+
*/
|
|
792
|
+
enabled: true,
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* يحدد مسار ملفات المخرجات
|
|
796
|
+
*/
|
|
797
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
801
|
+
*/
|
|
802
|
+
saveComponents: false,
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* بادئة مفتاح القاموس
|
|
806
|
+
*/
|
|
807
|
+
dictionaryKeyPrefix: "",
|
|
808
|
+
},
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
export default config;
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
815
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
816
|
+
const config = {
|
|
817
|
+
// ... بقية التكوين الخاص بك
|
|
818
|
+
compiler: {
|
|
819
|
+
/**
|
|
820
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
821
|
+
*/
|
|
822
|
+
enabled: true,
|
|
823
|
+
|
|
824
|
+
/**
|
|
825
|
+
* يحدد مسار ملفات المخرجات
|
|
826
|
+
*/
|
|
827
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
831
|
+
*/
|
|
832
|
+
saveComponents: false,
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* بادئة مفتاح القاموس
|
|
836
|
+
*/
|
|
837
|
+
dictionaryKeyPrefix: "",
|
|
838
|
+
},
|
|
839
|
+
};
|
|
840
|
+
|
|
841
|
+
module.exports = config;
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
<Tabs>
|
|
845
|
+
<Tab value='أمر الاستخراج'>
|
|
846
|
+
|
|
847
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
848
|
+
|
|
849
|
+
```bash packageManager="npm"
|
|
850
|
+
npx intlayer extract
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
```bash packageManager="pnpm"
|
|
854
|
+
pnpm intlayer extract
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
```bash packageManager="yarn"
|
|
858
|
+
yarn intlayer extract
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
```bash packageManager="bun"
|
|
862
|
+
bunx intlayer extract
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
</Tab>
|
|
866
|
+
<Tab value='مترجم Babel'>
|
|
867
|
+
|
|
868
|
+
```bash packageManager="npm"
|
|
869
|
+
npm install @intlayer/babel --save-dev
|
|
870
|
+
```
|
|
871
|
+
|
|
872
|
+
```bash packageManager="pnpm"
|
|
873
|
+
pnpm add @intlayer/babel --save-dev
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
```bash packageManager="yarn"
|
|
877
|
+
yarn add @intlayer/babel --save-dev
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
```bash packageManager="bun"
|
|
881
|
+
bun add @intlayer/babel --dev
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
```js fileName="babel.config.js"
|
|
885
|
+
const {
|
|
886
|
+
intlayerExtractBabelPlugin,
|
|
887
|
+
getExtractPluginOptions,
|
|
888
|
+
} = require("@intlayer/babel");
|
|
889
|
+
|
|
890
|
+
module.exports = {
|
|
891
|
+
presets: ["next/babel"],
|
|
892
|
+
plugins: [
|
|
893
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
894
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
895
|
+
],
|
|
896
|
+
};
|
|
897
|
+
```
|
|
898
|
+
|
|
899
|
+
```bash packageManager="npm"
|
|
900
|
+
npm run build # أو npm run dev
|
|
901
|
+
```
|
|
902
|
+
|
|
903
|
+
```bash packageManager="pnpm"
|
|
904
|
+
pnpm run build # Or pnpm run dev
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
```bash packageManager="yarn"
|
|
908
|
+
yarn build # Or yarn dev
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
```bash packageManager="bun"
|
|
912
|
+
bun run build # Or bun run dev
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
</Tab>
|
|
916
|
+
</Tabs>
|
|
917
|
+
|
|
745
918
|
---
|
|
746
919
|
|
|
747
920
|
### التعمق أكثر
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Tanstack Start i18n - كيفية ترجمة تطبيق Tanstack Start في 2026
|
|
5
5
|
description: تعرف على كيفية إضافة التدويل (i18n) إلى تطبيق TanStack Start الخاص بك باستخدام Intlayer. اتبع هذا الدليل الشامل لجعل تطبيقك متعدد اللغات مع توجيه مدرك للغة.
|
|
6
6
|
keywords:
|
|
@@ -773,6 +773,8 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
773
773
|
|
|
774
774
|
---
|
|
775
775
|
|
|
776
|
+
---
|
|
777
|
+
|
|
776
778
|
### تكوين Git
|
|
777
779
|
|
|
778
780
|
يوصى بتجاهل الملفات الناتجة عن Intlayer. يتيح لك هذا تجنب الالتزام بها في مستودع Git الخاص بك.
|
|
@@ -784,6 +786,179 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
784
786
|
.intlayer
|
|
785
787
|
```
|
|
786
788
|
|
|
789
|
+
### (اختياري) خطوة 1 : استخراج محتوى مكوناتك
|
|
790
|
+
|
|
791
|
+
إذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
|
|
792
|
+
|
|
793
|
+
لتسهيل هذه العملية، يقترح Intlayer [مترجمًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compiler.md) / [مستخرجًا](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/extract.md) لتحويل مكوناتك واستخراج المحتوى.
|
|
794
|
+
|
|
795
|
+
لإعداده، يمكنك إضافة قسم `compiler` في ملف `intlayer.config.ts` الخاص بك:
|
|
796
|
+
|
|
797
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
798
|
+
import { type IntlayerConfig } from "intlayer";
|
|
799
|
+
|
|
800
|
+
const config: IntlayerConfig = {
|
|
801
|
+
// ... بقية التكوين الخاص بك
|
|
802
|
+
compiler: {
|
|
803
|
+
/**
|
|
804
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
805
|
+
*/
|
|
806
|
+
enabled: true,
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* يحدد مسار ملفات المخرجات
|
|
810
|
+
*/
|
|
811
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
812
|
+
|
|
813
|
+
/**
|
|
814
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
815
|
+
*/
|
|
816
|
+
saveComponents: false,
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* بادئة مفتاح القاموس
|
|
820
|
+
*/
|
|
821
|
+
dictionaryKeyPrefix: "",
|
|
822
|
+
},
|
|
823
|
+
};
|
|
824
|
+
|
|
825
|
+
export default config;
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
829
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
830
|
+
const config = {
|
|
831
|
+
// ... بقية التكوين الخاص بك
|
|
832
|
+
compiler: {
|
|
833
|
+
/**
|
|
834
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
835
|
+
*/
|
|
836
|
+
enabled: true,
|
|
837
|
+
|
|
838
|
+
/**
|
|
839
|
+
* يحدد مسار ملفات المخرجات
|
|
840
|
+
*/
|
|
841
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
845
|
+
*/
|
|
846
|
+
saveComponents: false,
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* بادئة مفتاح القاموس
|
|
850
|
+
*/
|
|
851
|
+
dictionaryKeyPrefix: "",
|
|
852
|
+
},
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
export default config;
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
859
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
860
|
+
const config = {
|
|
861
|
+
// ... بقية التكوين الخاص بك
|
|
862
|
+
compiler: {
|
|
863
|
+
/**
|
|
864
|
+
* يشير إلى ما إذا كان يجب تمكين المترجم.
|
|
865
|
+
*/
|
|
866
|
+
enabled: true,
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* يحدد مسار ملفات المخرجات
|
|
870
|
+
*/
|
|
871
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
872
|
+
|
|
873
|
+
/**
|
|
874
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
875
|
+
*/
|
|
876
|
+
saveComponents: false,
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* بادئة مفتاح القاموس
|
|
880
|
+
*/
|
|
881
|
+
dictionaryKeyPrefix: "",
|
|
882
|
+
},
|
|
883
|
+
};
|
|
884
|
+
|
|
885
|
+
module.exports = config;
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
<Tabs>
|
|
889
|
+
<Tab value='أمر الاستخراج'>
|
|
890
|
+
|
|
891
|
+
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
892
|
+
|
|
893
|
+
```bash packageManager="npm"
|
|
894
|
+
npx intlayer extract
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
```bash packageManager="pnpm"
|
|
898
|
+
pnpm intlayer extract
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
```bash packageManager="yarn"
|
|
902
|
+
yarn intlayer extract
|
|
903
|
+
```
|
|
904
|
+
|
|
905
|
+
```bash packageManager="bun"
|
|
906
|
+
bunx intlayer extract
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
</Tab>
|
|
910
|
+
<Tab value='مترجم Babel'>
|
|
911
|
+
|
|
912
|
+
```bash packageManager="npm"
|
|
913
|
+
npm install @intlayer/babel --save-dev
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
```bash packageManager="pnpm"
|
|
917
|
+
pnpm add @intlayer/babel --save-dev
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
```bash packageManager="yarn"
|
|
921
|
+
yarn add @intlayer/babel --save-dev
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
```bash packageManager="bun"
|
|
925
|
+
bun add @intlayer/babel --dev
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
```js fileName="babel.config.js"
|
|
929
|
+
const {
|
|
930
|
+
intlayerExtractBabelPlugin,
|
|
931
|
+
getExtractPluginOptions,
|
|
932
|
+
} = require("@intlayer/babel");
|
|
933
|
+
|
|
934
|
+
module.exports = {
|
|
935
|
+
presets: ["next/babel"],
|
|
936
|
+
plugins: [
|
|
937
|
+
// استخراج المحتوى من المكونات إلى القواميس
|
|
938
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
939
|
+
],
|
|
940
|
+
};
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
```bash packageManager="npm"
|
|
944
|
+
npm run build # أو npm run dev
|
|
945
|
+
```
|
|
946
|
+
|
|
947
|
+
```bash packageManager="pnpm"
|
|
948
|
+
pnpm run build # Or pnpm run dev
|
|
949
|
+
```
|
|
950
|
+
|
|
951
|
+
```bash packageManager="yarn"
|
|
952
|
+
yarn build # Or yarn dev
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
```bash packageManager="bun"
|
|
956
|
+
bun run build # Or bun run dev
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
</Tab>
|
|
960
|
+
</Tabs>
|
|
961
|
+
|
|
787
962
|
---
|
|
788
963
|
|
|
789
964
|
## إضافة VS Code
|