@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
|
@@ -80,6 +80,7 @@ history:
|
|
|
80
80
|
title="عرض توضيحي CodeSandbox - كيفية تدويل تطبيقك باستخدام Intlayer"
|
|
81
81
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
82
82
|
loading="lazy"
|
|
83
|
+
/>
|
|
83
84
|
|
|
84
85
|
> راجع [قالب التطبيق](https://github.com/aymericzip/next-i18next-template) على GitHub.
|
|
85
86
|
|
|
@@ -225,35 +225,6 @@ Here is an example of the impact of bundle size optimisation using `intlayer` in
|
|
|
225
225
|
|
|
226
226
|
## Routing, middleware & URL strategy
|
|
227
227
|
|
|
228
|
-
- **Generates strict types** from your content. **IDE autocompletion** and **compile-time errors** catch typos and missing keys before deployment.
|
|
229
|
-
|
|
230
|
-
</Column>
|
|
231
|
-
</Columns>
|
|
232
|
-
|
|
233
|
-
**Why it matters:** Strong typing shifts failures **left** (CI/build) instead of **right** (runtime).
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Missing translation handling
|
|
238
|
-
|
|
239
|
-
**next-intl**
|
|
240
|
-
|
|
241
|
-
- Relies on **runtime fallbacks** (e.g., show the key or default locale). Build does not fail.
|
|
242
|
-
|
|
243
|
-
**next-i18next**
|
|
244
|
-
|
|
245
|
-
- Relies on **runtime fallbacks** (e.g., show the key or default locale). Build does not fail.
|
|
246
|
-
|
|
247
|
-
**intlayer**
|
|
248
|
-
|
|
249
|
-
- **Build-time detection** with **warnings/errors** for missing locales or keys.
|
|
250
|
-
|
|
251
|
-
**Why it matters:** Catching gaps during build prevents “mystery strings” in production and aligns with strict release gates.
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## Routing, middleware & URL strategy
|
|
256
|
-
|
|
257
228
|
<Columns>
|
|
258
229
|
<Column>
|
|
259
230
|
|
package/docs/ar/compiler.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: مترجم Intlayer | استخراج المحتوى الآلي للتدويل
|
|
5
5
|
description: قم بأتمتة عملية التدويل الخاصة بك باستخدام مترجم Intlayer. استخرج المحتوى مباشرة من مكوناتك لتحقيق تدويل أسرع وأكثر كفاءة في Vite و Next.js والمزيد.
|
|
6
6
|
keywords:
|
|
@@ -22,7 +22,7 @@ slugs:
|
|
|
22
22
|
history:
|
|
23
23
|
- version: 8.2.0
|
|
24
24
|
date: 2026-03-09
|
|
25
|
-
changes:
|
|
25
|
+
changes: تحديث خيارات المترجم، إضافة دعم FilePathPattern
|
|
26
26
|
- version: 8.1.7
|
|
27
27
|
date: 2026-02-25
|
|
28
28
|
changes: تحديث خيارات المترجم
|
|
@@ -136,9 +136,9 @@ const {
|
|
|
136
136
|
module.exports = {
|
|
137
137
|
presets: ["next/babel"],
|
|
138
138
|
plugins: [
|
|
139
|
-
//
|
|
139
|
+
// استخراج المحتوى من المكونات إلى قواميس
|
|
140
140
|
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
141
|
-
//
|
|
141
|
+
// تحسين الاستيراد عن طريق استبدال useIntlayer باستيراد قواميس مباشر
|
|
142
142
|
[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
|
|
143
143
|
],
|
|
144
144
|
};
|
|
@@ -149,73 +149,85 @@ module.exports = {
|
|
|
149
149
|
See complete tutorial: [Intlayer Compiler with Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_compiler.md)
|
|
150
150
|
|
|
151
151
|
</Tab>
|
|
152
|
+
</Tabs>
|
|
152
153
|
|
|
153
154
|
### التكوين المخصص
|
|
154
155
|
|
|
155
156
|
لتخصيص سلوك المترجم، يمكنك تحديث ملف `intlayer.config.ts` في جذر مشروعك.
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
````ts fileName="intlayer.config.ts"
|
|
158
159
|
import { type IntlayerConfig, Locales } from "intlayer";
|
|
159
160
|
|
|
160
161
|
const config: IntlayerConfig = {
|
|
161
162
|
compiler: {
|
|
162
163
|
/**
|
|
164
|
+
* يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
163
165
|
* اضبط على 'build-only' لتخطي المجمّع أثناء التطوير وتسريع أوقات التشغيل.
|
|
164
166
|
*/
|
|
165
167
|
enabled: true,
|
|
166
168
|
|
|
167
169
|
/**
|
|
168
|
-
*
|
|
170
|
+
* يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
171
|
+
*
|
|
172
|
+
* - المسارات التي تبدأ بـ `./` يتم حلها بالنسبة لدليل المكون.
|
|
173
|
+
* - المسارات التي تبدأ بـ `/` يتم حلها بالنسبة لجذر المشروع (`baseDir`).
|
|
174
|
+
*
|
|
175
|
+
* - تضمين متغير `{{locale}}` في المسار سيمكن توليد قواميس منفصلة لكل لغة.
|
|
176
|
+
*
|
|
177
|
+
* أمثلة:
|
|
178
|
+
* ```ts
|
|
179
|
+
* {
|
|
180
|
+
* // إنشاء ملف .content.ts متعدد اللغات بجانب المكون
|
|
181
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
182
|
+
*
|
|
183
|
+
* // output: './{{fileName}}{{extension}}', // تعبير مكافئ باستخدام قالب السلسلة
|
|
184
|
+
* }
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* ```ts
|
|
188
|
+
* {
|
|
189
|
+
* // إنشاء ملفات JSON مركزية لكل لغة في جذر المشروع
|
|
190
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
191
|
+
*
|
|
192
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // تعبير مكافئ باستخدام قالب السلسلة
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* قائمة المتغيرات:
|
|
197
|
+
* - `fileName`: اسم الملف.
|
|
198
|
+
* - `key`: مفتاح المحتوى.
|
|
199
|
+
* - `locale`: لغة المحتوى.
|
|
200
|
+
* - `extension`: امتداد الملف.
|
|
201
|
+
* - `componentFileName`: اسم ملف المكون.
|
|
202
|
+
* - `componentExtension`: امتداد ملف المكون.
|
|
203
|
+
* - `format`: تنسيق القاموس.
|
|
204
|
+
* - `componentFormat`: تنسيق قاموس المكون.
|
|
205
|
+
* - `componentDirPath`: مسار دليل المكون.
|
|
169
206
|
*/
|
|
170
|
-
|
|
171
|
-
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
172
|
-
"!**/node_modules/**",
|
|
173
|
-
],
|
|
207
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
174
208
|
|
|
175
209
|
/**
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
excludePattern: ["**/node_modules/**"],
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* دليل الإخراج للقواميس المحسنة.
|
|
210
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
211
|
+
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
182
212
|
*/
|
|
183
|
-
|
|
213
|
+
saveComponents: false,
|
|
184
214
|
|
|
185
215
|
/**
|
|
186
|
-
* أدخل المحتوى فقط في الملف الذي تم
|
|
216
|
+
* أدخل المحتوى فقط في الملف الذي تم إنشاؤه. مفيد لإخراج JSON لـ i18next أو ICU MessageFormat لكل لغة.
|
|
217
|
+
*
|
|
218
|
+
* - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`
|
|
187
219
|
*/
|
|
188
220
|
noMetadata: false,
|
|
189
221
|
|
|
190
222
|
/**
|
|
191
223
|
* بادئة مفتاح القاموس
|
|
192
224
|
*/
|
|
193
|
-
dictionaryKeyPrefix: "", //
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
197
|
-
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
198
|
-
*/
|
|
199
|
-
saveComponents: false,
|
|
225
|
+
dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القواميس المستخرجة
|
|
200
226
|
},
|
|
201
227
|
};
|
|
202
228
|
|
|
203
229
|
export default config;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
### ملء الترجمات المفقودة
|
|
207
|
-
|
|
208
|
-
يوفر Intlayer أداة CLI لمساعدتك في ملء الترجمات المفقودة. يمكنك استخدام أمر `intlayer` لاختبار وملء الترجمات المفقودة من الكود الخاص بك.
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
npx intlayer test # اختبار ما إذا كانت هناك ترجمات مفقودة
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
npx intlayer fill # ملء الترجمات المفقودة
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
> لمزيد من التفاصيل، راجع [توثيق CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/ci.md)
|
|
230
|
+
````
|
|
219
231
|
|
|
220
232
|
### مرجع تكوين المجمّع
|
|
221
233
|
|
|
@@ -225,36 +237,37 @@ npx intlayer fill # ملء الترجمات المفقودة
|
|
|
225
237
|
- _النوع_: `boolean | 'build-only'`
|
|
226
238
|
- _الافتراضي_: `true`
|
|
227
239
|
- _الوصف_: يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
240
|
+
|
|
228
241
|
- **dictionaryKeyPrefix**:
|
|
229
242
|
- _النوع_: `string`
|
|
230
|
-
- _الافتراضي_: `'
|
|
243
|
+
- _الافتراضي_: `''`
|
|
231
244
|
- _الوصف_: بادئة لمفاتيح القواميس المستخرجة.
|
|
245
|
+
|
|
232
246
|
- **transformPattern**:
|
|
233
247
|
- _النوع_: `string | string[]`
|
|
234
248
|
- _الافتراضي_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
|
|
235
|
-
- _الوصف_: أنماط لاجتياز الكود لتحسينه.
|
|
249
|
+
- _الوصف_: (مهجور: استخدم `build.traversePattern` بدلاً من ذلك) أنماط لاجتياز الكود لتحسينه.
|
|
250
|
+
|
|
236
251
|
- **excludePattern**:
|
|
237
252
|
- _النوع_: `string | string[]`
|
|
238
253
|
- _الافتراضي_: `['**/node_modules/**']`
|
|
239
|
-
- _الوصف_: أنماط لاستبعادها من التحسين.
|
|
240
|
-
- **outputDir** (Deprecated):
|
|
241
|
-
- _النوع_: `string`
|
|
242
|
-
- _الافتراضي_: `'compiler'`
|
|
243
|
-
- _الوصف_: الدليل الذي سيتم تخزين القواميس المستخرجة فيه.
|
|
254
|
+
- _الوصف_: (مهجور: استخدم `build.traversePattern` بدلاً من ذلك) أنماط لاستبعادها من التحسين.
|
|
244
255
|
|
|
245
256
|
- **output**:
|
|
246
257
|
- _النوع_: `FilePathPattern`
|
|
247
258
|
- _الافتراضي_: `({ key }) => 'compiler/${key}.content.json'`
|
|
248
259
|
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`. يتعامل مع المتغيرات الديناميكية مثل `{{locale}}` و `{{key}}` و `{{fileName}}` و `{{extension}}` و `{{format}}` و `{{dirPath}}` و `{{componentFileName}}` و `{{componentExtension}}` و `{{componentFormat}}`. يمكن تعيينه كسلسلة باستخدام تنسيق `'my/{{var}}/path'`، أو كدالة.
|
|
249
260
|
- _ملاحظة_: يتم حل مسار `./**/*` بالنسبة للمكون. يتم حل مسار `/**/*` بالنسبة لـ `baseDir` الخاص بـ Intlayer.
|
|
261
|
+
- _ملاحظة_: إذا تم تعريف اللغة في المسار، سيتم توليد القواميس لكل لغة.
|
|
250
262
|
- _مثال_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
251
263
|
|
|
252
264
|
- **noMetadata**:
|
|
253
265
|
- _النوع_: `boolean`
|
|
254
266
|
- _الافتراضي_: `false`
|
|
255
|
-
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى).
|
|
267
|
+
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
256
268
|
- _ملاحظة_: مفيد إذا تم استخدامه مع إضافة `loadJSON`.
|
|
257
|
-
- _مثال_:
|
|
269
|
+
- _مثال_:
|
|
270
|
+
إذا كان `true`:
|
|
258
271
|
```json
|
|
259
272
|
{
|
|
260
273
|
"key": "value"
|
|
@@ -274,3 +287,25 @@ npx intlayer fill # ملء الترجمات المفقودة
|
|
|
274
287
|
- _النوع_: `boolean`
|
|
275
288
|
- _الافتراضي_: `false`
|
|
276
289
|
- _الوصف_: يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
290
|
+
|
|
291
|
+
### ملء الترجمات المفقودة
|
|
292
|
+
|
|
293
|
+
يوفر Intlayer أداة CLI لمساعدتك في ملء الترجمات المفقودة. يمكنك استخدام أمر `intlayer` لاختبار وملء الترجمات المفقودة من الكود الخاص بك.
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
npx intlayer test # اختبار ما إذا كانت هناك ترجمات مفقودة
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
npx intlayer fill # ملء الترجمات المفقودة
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### الاستخراج
|
|
304
|
+
|
|
305
|
+
يوفر Intlayer أداة CLI لاستخراج المحتوى من الكود الخاص بك. يمكنك استخدام أمر `intlayer extract` لاستخراج المحتوى من الكود الخاص بك.
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
npx intlayer extract
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
> لمزيد من التفاصيل، راجع [توثيق CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/index.md)
|
package/docs/ar/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: التهيئة
|
|
5
5
|
description: تعلّم كيفية تهيئة Intlayer لتطبيقك. فهم الإعدادات والخيارات المختلفة المتاحة لتخصيص Intlayer حسب احتياجاتك.
|
|
6
6
|
keywords:
|
|
@@ -15,7 +15,7 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: نقل 'baseDir' من تكوين 'content' إلى تكوين 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
21
|
date: 2026-03-09
|
|
@@ -92,7 +92,7 @@ history:
|
|
|
92
92
|
|
|
93
93
|
## مثال على ملف التهيئة
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
96
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
97
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
98
|
import { z } from "zod";
|
|
@@ -190,7 +190,7 @@ const config: IntlayerConfig = {
|
|
|
190
190
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
191
|
* Default: ['cookie', 'header']
|
|
192
192
|
*/
|
|
193
|
-
storage: "cookie",
|
|
193
|
+
storage: ["cookie", "header"],
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
196
|
* Base path for the application URLs.
|
|
@@ -256,13 +256,13 @@ const config: IntlayerConfig = {
|
|
|
256
256
|
editor: {
|
|
257
257
|
/**
|
|
258
258
|
* Whether the visual editor is enabled.
|
|
259
|
-
* Default:
|
|
259
|
+
* Default: false
|
|
260
260
|
*/
|
|
261
261
|
enabled: true,
|
|
262
262
|
|
|
263
263
|
/**
|
|
264
264
|
* URL of your application for origin validation.
|
|
265
|
-
* Default: "
|
|
265
|
+
* Default: ""
|
|
266
266
|
*/
|
|
267
267
|
applicationURL: "http://localhost:3000",
|
|
268
268
|
|
|
@@ -327,6 +327,17 @@ const config: IntlayerConfig = {
|
|
|
327
327
|
* Base URL for the AI API.
|
|
328
328
|
*/
|
|
329
329
|
baseURL: "http://localhost:3000",
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* تسلسل البيانات
|
|
333
|
+
*
|
|
334
|
+
* الخيارات:
|
|
335
|
+
* - "json": معيار ، موثوق ؛ يستخدم المزيد من الرموز.
|
|
336
|
+
* - "toon": عدد أقل من الرموز المميزة ، أقل اتساقا من JSON.
|
|
337
|
+
*
|
|
338
|
+
* الافتراضي: "json"
|
|
339
|
+
*/
|
|
340
|
+
dataSerialization: "json",
|
|
330
341
|
},
|
|
331
342
|
|
|
332
343
|
/**
|
|
@@ -426,42 +437,70 @@ const config: IntlayerConfig = {
|
|
|
426
437
|
compiler: {
|
|
427
438
|
/**
|
|
428
439
|
* يشير إلى ما إذا كان يجب تمكين المجمّع.
|
|
440
|
+
*
|
|
441
|
+
* - false : تعطيل المجمّع.
|
|
442
|
+
* - true : تمكين المجمّع.
|
|
443
|
+
* - "build-only" : تخطي المجمّع أثناء التطوير لتسريع أوقات التشغيل.
|
|
444
|
+
*
|
|
445
|
+
* الافتراضي : false
|
|
429
446
|
*/
|
|
430
447
|
enabled: true,
|
|
431
448
|
|
|
432
449
|
/**
|
|
433
|
-
*
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
*
|
|
450
|
+
* يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
451
|
+
*
|
|
452
|
+
* - المسارات التي تبدأ بـ `./` يتم حلها بالنسبة لدليل المكون.
|
|
453
|
+
* - المسارات التي تبدأ بـ `/` يتم حلها بالنسبة لجذر المشروع (`baseDir`).
|
|
454
|
+
*
|
|
455
|
+
* - تضمين متغير `{{locale}}` في المسار سيمكن توليد قواميس منفصلة لكل لغة.
|
|
456
|
+
*
|
|
457
|
+
* أمثلة:
|
|
458
|
+
* ```ts
|
|
459
|
+
* {
|
|
460
|
+
* // إنشاء ملف .content.ts متعدد اللغات بجانب المكون
|
|
461
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
462
|
+
*
|
|
463
|
+
* // output: './{{fileName}}{{extension}}', // تعبير مكافئ باستخدام قالب السلسلة
|
|
464
|
+
* }
|
|
465
|
+
* ```
|
|
466
|
+
*
|
|
467
|
+
* ```ts
|
|
468
|
+
* {
|
|
469
|
+
* // إنشاء ملفات JSON مركزية لكل لغة في جذر المشروع
|
|
470
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
471
|
+
*
|
|
472
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // تعبير مكافئ باستخدام قالب السلسلة
|
|
473
|
+
* }
|
|
474
|
+
* ```
|
|
475
|
+
*
|
|
476
|
+
* قائمة المتغيرات:
|
|
477
|
+
* - `fileName`: اسم الملف.
|
|
478
|
+
* - `key`: مفتاح المحتوى.
|
|
479
|
+
* - `locale`: لغة المحتوى.
|
|
480
|
+
* - `extension`: امتداد الملف.
|
|
481
|
+
* - `componentFileName`: اسم ملف المكون.
|
|
482
|
+
* - `componentExtension`: امتداد ملف المكون.
|
|
483
|
+
* - `format`: تنسيق القاموس.
|
|
484
|
+
* - `componentFormat`: تنسيق قاموس المكون.
|
|
485
|
+
* - `componentDirPath`: مسار دليل المكون.
|
|
442
486
|
*/
|
|
443
|
-
|
|
487
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
444
488
|
|
|
445
489
|
/**
|
|
446
|
-
*
|
|
490
|
+
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
491
|
+
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
447
492
|
*/
|
|
448
|
-
|
|
493
|
+
saveComponents: false,
|
|
449
494
|
|
|
450
495
|
/**
|
|
451
|
-
* أدخل المحتوى فقط في الملف الذي تم
|
|
496
|
+
* أدخل المحتوى فقط في الملف الذي تم إنشاؤه. مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
452
497
|
*/
|
|
453
498
|
noMetadata: false,
|
|
454
499
|
|
|
455
500
|
/**
|
|
456
501
|
* بادئة مفتاح القاموس
|
|
457
502
|
*/
|
|
458
|
-
dictionaryKeyPrefix: "", //
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
|
|
462
|
-
* بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
|
|
463
|
-
*/
|
|
464
|
-
saveComponents: false,
|
|
503
|
+
dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القاموس المستخرجة
|
|
465
504
|
},
|
|
466
505
|
|
|
467
506
|
/**
|
|
@@ -480,7 +519,7 @@ const config: IntlayerConfig = {
|
|
|
480
519
|
};
|
|
481
520
|
|
|
482
521
|
export default config;
|
|
483
|
-
|
|
522
|
+
````
|
|
484
523
|
|
|
485
524
|
## مرجع التهيئة
|
|
486
525
|
|
|
@@ -990,25 +1029,6 @@ export default config;
|
|
|
990
1029
|
- _ملاحظة_: يعتمد هذا الخيار على الإضافات `@intlayer/babel` و `@intlayer/swc`.
|
|
991
1030
|
- _ملاحظة_: تأكد من إعلان جميع المفاتيح بشكل ثابت في استدعاءات `useIntlayer`، على سبيل المثال `useIntlayer('navbar')`.
|
|
992
1031
|
|
|
993
|
-
- **importMode**:
|
|
994
|
-
- _ملاحظة_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
995
|
-
- _النوع_: `'static' | 'dynamic' | 'fetch'`
|
|
996
|
-
- _الافتراضي_: `'static'`
|
|
997
|
-
- _الوصف_: يتحكم في كيفية استيراد القواميس.
|
|
998
|
-
- _مثال_: `'dynamic'`
|
|
999
|
-
- _ملاحظة_: الأنماط المتاحة:
|
|
1000
|
-
- "static": يتم استيراد القواميس بشكل ثابت. يستبدل `useIntlayer` بـ `useDictionary`.
|
|
1001
|
-
- "dynamic": يتم استيراد القواميس بشكل ديناميكي باستخدام Suspense. يستبدل `useIntlayer` بـ `useDictionaryDynamic`.
|
|
1002
|
-
- "fetch": يتم جلب القواميس ديناميكيًا باستخدام واجهة برمجة التطبيقات للمزامنة الحية. يستبدل `useIntlayer` بـ `useDictionaryFetch`.
|
|
1003
|
-
- _ملاحظة_: تعتمد الاستيرادات الديناميكية على Suspense وقد تؤثر قليلاً على أداء العرض.
|
|
1004
|
-
- _ملاحظة_: إذا تم تعطيلها، سيتم تحميل جميع اللغات مرة واحدة، حتى لو لم تُستخدم.
|
|
1005
|
-
- _ملاحظة_: تعتمد هذه الخيار على الإضافات `@intlayer/babel` و `@intlayer/swc`.
|
|
1006
|
-
- _ملاحظة_: تأكد من إعلان جميع المفاتيح بشكل ثابت في استدعاءات `useIntlayer`، مثل `useIntlayer('navbar')`.
|
|
1007
|
-
- _ملاحظة_: سيتم تجاهل هذا الخيار إذا تم تعطيل `optimize`.
|
|
1008
|
-
- _ملاحظة_: إذا تم تعيينه إلى "live"، فسيتم تحويل القواميس التي تحتوي على محتوى عن بُعد والمحددة كعلامات "live" فقط إلى وضع البث المباشر. وسيتم استيراد القواميس الأخرى ديناميكيًا كـ "dynamic" لتحسين عدد استعلامات الجلب وأداء التحميل.
|
|
1009
|
-
- _ملاحظة_: سيستخدم وضع البث المباشر واجهة برمجة التطبيقات للمزامنة الحية لجلب القواميس. إذا فشل استدعاء واجهة برمجة التطبيقات، فسيتم استيراد القواميس ديناميكيًا كـ "dynamic".
|
|
1010
|
-
- _ملاحظة_: لن تؤثر هذه الخيار على الدوال `getIntlayer`، `getDictionary`، `useDictionary`، `useDictionaryAsync` و `useDictionaryDynamic`.
|
|
1011
|
-
|
|
1012
1032
|
- **outputFormat**:
|
|
1013
1033
|
- _النوع_: `'esm' | 'cjs'`
|
|
1014
1034
|
- _الافتراضي_: `'esm'`
|
|
@@ -1042,7 +1062,7 @@ export default config;
|
|
|
1042
1062
|
|
|
1043
1063
|
- **dictionaryKeyPrefix**:
|
|
1044
1064
|
- _النوع_: `string`
|
|
1045
|
-
- _الافتراضي_: `'
|
|
1065
|
+
- _الافتراضي_: `''`
|
|
1046
1066
|
- _الوصف_: بادئة لمفاتيح القاموس المستخرجة.
|
|
1047
1067
|
- _المثال_: `'my-key-'`
|
|
1048
1068
|
- _ملاحظة_: عند استخراج القواميس، يتم إنشاء المفتاح بناءً على اسم الملف. يتم إضافة هذه البادئة إلى المفتاح الذي تم إنشاؤه لمنع التضارب.
|
|
@@ -1066,24 +1086,28 @@ export default config;
|
|
|
1066
1086
|
- _الوصف_: الأنماط التي تحدد الملفات التي يجب استبعادها أثناء التحسين.
|
|
1067
1087
|
- _المثال_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1068
1088
|
|
|
1069
|
-
- **outputDir**:
|
|
1070
|
-
- _النوع_: `string`
|
|
1071
|
-
- _الافتراضي_: `'compiler'`
|
|
1072
|
-
- _الوصف_: الدليل الذي سيتم تخزين القواميس المستخرجة فيه، بالنسبة لمسار أساس مشروعك.
|
|
1073
|
-
|
|
1074
1089
|
- **output**:
|
|
1075
1090
|
- _النوع_: `FilePathPattern`
|
|
1076
|
-
- _الافتراضي_: `
|
|
1077
|
-
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`.
|
|
1078
|
-
- _ملاحظة_: يتم حل
|
|
1079
|
-
- _
|
|
1091
|
+
- _الافتراضي_: `undefined`
|
|
1092
|
+
- _الوصف_: يحدد مسار ملفات الإخراج. يستبدل `outputDir`. يدعم المتغيرات الديناميكية عبر قالب سلسلة أو دالة. المتغيرات المدعومة: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, `{{componentDirPath}}`.
|
|
1093
|
+
- _ملاحظة_: يتم حل المسارات التي تبدأ بـ `./` بالنسبة لدليل المكون. يتم حل المسارات التي تبدأ بـ `/` بالنسبة لجذر المشروع (`baseDir`).
|
|
1094
|
+
- _ملاحظة_: تضمين المتغير `{{locale}}` في المسار سيمكن من توليد قواميس منفصلة حسب اللغة.
|
|
1095
|
+
- _مثال_:
|
|
1096
|
+
- **إنشاء ملفات متعددة اللغات بجانب المكون**:
|
|
1097
|
+
- سلسلة: `'./{{fileName}}{{extension}}'`
|
|
1098
|
+
- دالة: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1099
|
+
|
|
1100
|
+
- **إخراج ملفات JSON مركزية حسب اللغة**:
|
|
1101
|
+
- سلسلة: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1102
|
+
- دالة: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1080
1103
|
|
|
1081
1104
|
- **noMetadata**:
|
|
1082
1105
|
- _النوع_: `boolean`
|
|
1083
1106
|
- _الافتراضي_: `false`
|
|
1084
|
-
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى).
|
|
1107
|
+
- _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
|
|
1085
1108
|
- _ملاحظة_: مفيد إذا تم استخدامه مع إضافة `loadJSON`.
|
|
1086
|
-
- _مثال_:
|
|
1109
|
+
- _مثال_:
|
|
1110
|
+
إذا كان `true`:
|
|
1087
1111
|
```json
|
|
1088
1112
|
{
|
|
1089
1113
|
"key": "value"
|
|
@@ -344,8 +344,8 @@ export default class HomeComponent {
|
|
|
344
344
|
|
|
345
345
|
للقيام بذلك، يمكنك إضافة التعليمات التالية إلى ملف `.gitignore` الخاص بك:
|
|
346
346
|
|
|
347
|
-
```
|
|
348
|
-
#
|
|
347
|
+
```bash
|
|
348
|
+
# تجاهل الملفات التي تم إنشاؤها بواسطة Intlayer
|
|
349
349
|
.intlayer
|
|
350
350
|
```
|
|
351
351
|
|
|
@@ -398,8 +398,8 @@ export class AppComponent {
|
|
|
398
398
|
|
|
399
399
|
للقيام بذلك، يمكنك إضافة التعليمات التالية إلى ملف `.gitignore` الخاص بك:
|
|
400
400
|
|
|
401
|
-
```
|
|
402
|
-
#
|
|
401
|
+
```bash
|
|
402
|
+
# تجاهل الملفات التي تم إنشاؤها بواسطة Intlayer
|
|
403
403
|
.intlayer
|
|
404
404
|
```
|
|
405
405
|
|
|
@@ -218,8 +218,8 @@ const { title } = getIntlayer('app');
|
|
|
218
218
|
|
|
219
219
|
للقيام بذلك، يمكنك إضافة التعليمات التالية إلى ملف `.gitignore` الخاص بك:
|
|
220
220
|
|
|
221
|
-
```
|
|
222
|
-
#
|
|
221
|
+
```bash
|
|
222
|
+
# تجاهل الملفات التي تم إنشاؤها بواسطة Intlayer
|
|
223
223
|
.intlayer
|
|
224
224
|
```
|
|
225
225
|
|
|
@@ -501,8 +501,8 @@ export const LocaleSwitcher: FC = () => {
|
|
|
501
501
|
|
|
502
502
|
لتجنب الالتزام بالملفات التي يتم إنشاؤها تلقائيًا بواسطة Intlayer، أضف التالي إلى ملف `.gitignore` الخاص بك:
|
|
503
503
|
|
|
504
|
-
```
|
|
505
|
-
#
|
|
504
|
+
```bash
|
|
505
|
+
# تجاهل الملفات التي يتم إنشاؤها بواسطة Intlayer
|
|
506
506
|
.intlayer
|
|
507
507
|
```
|
|
508
508
|
|