@intlayer/docs 8.4.6 → 8.4.8

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.
Files changed (33) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/ar/configuration.md +300 -264
  12. package/docs/cs/configuration.md +958 -0
  13. package/docs/de/configuration.md +285 -249
  14. package/docs/en/configuration.md +115 -137
  15. package/docs/en-GB/configuration.md +272 -237
  16. package/docs/es/configuration.md +161 -125
  17. package/docs/fr/configuration.md +137 -101
  18. package/docs/it/configuration.md +294 -259
  19. package/docs/ja/configuration.md +269 -233
  20. package/docs/nl/configuration.md +958 -0
  21. package/docs/pt/configuration.md +311 -275
  22. package/docs/ru/configuration.md +287 -272
  23. package/docs/tr/configuration.md +265 -229
  24. package/package.json +6 -6
  25. package/docs/bn/configuration.md +0 -922
  26. package/docs/hi/configuration.md +0 -922
  27. package/docs/id/configuration.md +0 -922
  28. package/docs/ko/configuration.md +0 -922
  29. package/docs/pl/configuration.md +0 -922
  30. package/docs/uk/configuration.md +0 -922
  31. package/docs/ur/configuration.md +0 -922
  32. package/docs/vi/configuration.md +0 -922
  33. package/docs/zh/configuration.md +0 -922
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
3
  updatedAt: 2026-03-20
4
- title: التكوين (Configuration)
5
- description: تعرف على كيفية تكوين Intlayer لتطبيقك. افهم الإعدادات والخيارات المتنوعة المتاحة لتخصيص Intlayer وفقًا لاحتياجاتك.
4
+ title: الإعدادات (Configuration)
5
+ description: تعرف على كيفية إعداد Intlayer لتطبيقك. افهم الإعدادات والخيارات المختلفة المتاحة لتخصيص Intlayer وفقًا لاحتياجاتك.
6
6
  keywords:
7
- - التكوين
8
7
  - الإعدادات
8
+ - الإعداد
9
9
  - التخصيص
10
10
  - Intlayer
11
11
  - الخيارات
@@ -16,13 +16,13 @@ slugs:
16
16
  history:
17
17
  - version: 8.4.0
18
18
  date: 2026-03-20
19
- changes: تمت إضافة تدوين الكائن لكل لغة لـ 'compiler.output' و 'dictionary.fill'
19
+ changes: إضافة تمثيل الكائن لكل لغة لـ 'compiler.output' و 'dictionary.fill'
20
20
  - version: 8.3.0
21
21
  date: 2026-03-11
22
- changes: نقل 'baseDir' من تكوين 'content' إلى تكوين 'system'
22
+ changes: نقل 'baseDir' من إعدادات 'content' إلى إعدادات 'system'
23
23
  - version: 8.2.0
24
24
  date: 2026-03-09
25
- changes: تحديث خيارات المترجم (compiler)، وإضافة دعم لـ 'output' و 'noMetadata'
25
+ changes: تحديث خيارات المترجم، إضافة دعم لـ 'output' و 'noMetadata'
26
26
  - version: 8.1.7
27
27
  date: 2026-02-25
28
28
  changes: تحديث خيارات المترجم
@@ -34,34 +34,34 @@ history:
34
34
  changes: إضافة دعم لمزودي Open Router و Alibaba و Amazon و Google Vertex Bedrock و Fireworks و Groq و Hugging Face و Together.ai
35
35
  - version: 8.0.5
36
36
  date: 2026-02-06
37
- changes: إضافة `dataSerialization` إلى تكوين الذكاء الاصطناعي
37
+ changes: إضافة `dataSerialization` إلى إعدادات الذكاء الاصطناعي
38
38
  - version: 8.0.0
39
39
  date: 2026-01-24
40
- changes: إعادة تسمية وضع الاستيراد `live` إلى `fetch` لوصف الآلية الأساسية بشكل أفضل.
40
+ changes: تم تغيير اسم وضع الاستيراد `live` إلى `fetch` لوصف الآلية الأساسية بشكل أفضل.
41
41
  - version: 8.0.0
42
42
  date: 2026-01-22
43
- changes: نقل تكوين البناء `importMode` إلى تكوين القاموس `dictionary`.
43
+ changes: تم نقل إعدادات البناء `importMode` إلى إعدادات `dictionary`.
44
44
  - version: 8.0.0
45
45
  date: 2026-01-22
46
- changes: إضافة خيار `rewrite` لتكوين التوجيه
46
+ changes: إضافة خيار `rewrite` إلى إعدادات التوجيه
47
47
  - version: 8.0.0
48
48
  date: 2026-01-18
49
- changes: فصل تكوين النظام عن تكوين المحتوى. نقل المسارات الداخلية إلى خاصية `system`. إضافة `codeDir` لفصل ملفات المحتوى وتحويل الكود.
49
+ changes: فصل إعدادات النظام عن إعدادات المحتوى. نقل المسارات الداخلية إلى خاصية `system`. إضافة `codeDir` لفصل ملفات المحتوى عن تحويل الكود.
50
50
  - version: 8.0.0
51
51
  date: 2026-01-18
52
52
  changes: إضافة خيارات القاموس `location` و `schema`
53
53
  - version: 7.5.1
54
54
  date: 2026-01-10
55
- changes: إضافة دعم لتنسيقات ملفات JSON5 و JSONC
55
+ changes: إضافة دعم لصيغ ملفات JSON5 و JSONC
56
56
  - version: 7.5.0
57
57
  date: 2025-12-17
58
58
  changes: إضافة خيار `buildMode`
59
59
  - version: 7.0.0
60
60
  date: 2025-10-25
61
- changes: إضافة تكوين `dictionary`
61
+ changes: إضافة إعدادات `dictionary`
62
62
  - version: 7.0.0
63
63
  date: 2025-10-21
64
- changes: استبدال `middleware` بتكوين التوجيه `routing`
64
+ changes: استبدال `middleware` بإعدادات `routing`
65
65
  - version: 7.0.0
66
66
  date: 2025-10-12
67
67
  changes: إضافة خيار `formatCommand`
@@ -73,13 +73,13 @@ history:
73
73
  changes: إضافة خيار `outputFormat`
74
74
  - version: 6.0.0
75
75
  date: 2025-09-21
76
- changes: إزالة حقل `dictionaryOutput` وحقل `i18nextResourcesDir`
76
+ changes: إزالة حقول `dictionaryOutput` و `i18nextResourcesDir`
77
77
  - version: 6.0.0
78
78
  date: 2025-09-16
79
79
  changes: إضافة وضع الاستيراد `live`
80
80
  - version: 6.0.0
81
81
  date: 2025-09-04
82
- changes: استبدال حقل `hotReload` بـ `liveSync` وإضافة حقلي `liveSyncPort` و `liveSyncURL`
82
+ changes: استبدال حقل `hotReload` بـ `liveSync` وإضافة حقول `liveSyncPort` و `liveSyncURL`
83
83
  - version: 5.6.1
84
84
  date: 2025-07-25
85
85
  changes: استبدال `activateDynamicImport` بخيار `importMode`
@@ -91,11 +91,11 @@ history:
91
91
  changes: إضافة أوامر `docs`
92
92
  ---
93
93
 
94
- # توثيق تكوين Intlayer
94
+ # توثيق إعدادات Intlayer
95
95
 
96
96
  ## نظرة عامة
97
97
 
98
- تسمح لك ملفات تكوين Intlayer بتخصيص جوانب مختلفة من البرنامج المساعد، مثل التدويل (internationalizationوالبرامج الوسيطة (middleware)، ومعالجة المحتوى. يوفر هذا التوثيق وصفًا تفصيليًا لكل خاصية في التكوين.
98
+ تسمح لك ملفات إعدادات Intlayer بتخصيص جوانب مختلفة من الإضافة، مثل تدويل التطبيق (i18nوالبرمجيات الوسيطة (middleware)، وإدارة المحتوى. يوفر هذا المستند وصفاً مفصلاً لكل خاصية في الإعدادات.
99
99
 
100
100
  ---
101
101
 
@@ -105,9 +105,9 @@ history:
105
105
 
106
106
  ---
107
107
 
108
- ## تنسيقات ملفات التكوين المدعومة
108
+ ## دعم ملفات الإعدادات
109
109
 
110
- يقبل Intlayer تنسيقات ملفات التكوين JSON و JS و MJS و TS:
110
+ يقبل Intlayer صيغ ملفات الإعدادات التالية: JSON، JS، MJS، و TS:
111
111
 
112
112
  - `intlayer.config.ts`
113
113
  - `intlayer.config.js`
@@ -120,7 +120,7 @@ history:
120
120
 
121
121
  ---
122
122
 
123
- ## مثال على ملف التكوين
123
+ ## مثال لملف الإعدادات
124
124
 
125
125
  ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
126
126
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -128,57 +128,57 @@ import { nextjsRewrite } from "intlayer/routing";
128
128
  import { z } from "zod";
129
129
 
130
130
  /**
131
- * مثال على ملف تكوين Intlayer يعرض جميع الخيارات المتاحة.
131
+ * مثال لملف إعدادات Intlayer مع جميع الخيارات المتاحة.
132
132
  */
133
133
  const config: IntlayerConfig = {
134
134
  /**
135
- * تكوين إعدادات التدويل.
135
+ * إعدادات التدويل (Internationalization).
136
136
  */
137
137
  internationalization: {
138
138
  /**
139
- * قائمة اللغات (locales) المدعومة في التطبيق.
139
+ * قائمة اللغات المدعومة في التطبيق.
140
140
  * الافتراضي: [Locales.ENGLISH]
141
141
  */
142
142
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
143
143
 
144
144
  /**
145
- * قائمة اللغات الإلزامية التي يجب تعريفها في كل قاموس.
146
- * إذا كانت فارغة، فستكون جميع اللغات إلزامية في وضع `strict`.
145
+ * قائمة اللغات المطلوبة التي يجب تعريفها في كل قاموس.
146
+ * إذا كانت فارغة، فستكون جميع اللغات مطلوبة في وضع `strict`.
147
147
  * الافتراضي: []
148
148
  */
149
149
  requiredLocales: [Locales.ENGLISH],
150
150
 
151
151
  /**
152
- * مستوى الصرامة للمحتوى المدوّل.
153
- * - "strict": خطأ إذا كانت أي لغة معلنة مفقودة أو غير معلنة.
154
- * - "inclusive": تحذير إذا كانت اللغة المعلنة مفقودة.
155
- * - "loose": قبول أي لغة موجودة.
152
+ * مستوى الصرامة للمحتوى المترجم.
153
+ * - "strict": يلقي خطأ إذا كانت اللغة المعلنة مفقودة أو غير معلنة.
154
+ * - "inclusive": يلقي تحذيراً إذا كانت اللغة المعلنة مفقودة.
155
+ * - "loose": يقبل أي لغة موجودة.
156
156
  * الافتراضي: "inclusive"
157
157
  */
158
158
  strictMode: "inclusive",
159
159
 
160
160
  /**
161
- * اللغة الافتراضية المستخدمة كبديل في حالة عدم العثور على اللغة المطلوبة.
161
+ * اللغة الافتراضية المستخدمة كاحتياطي في حالة عدم العثور على اللغة المطلوبة.
162
162
  * الافتراضي: Locales.ENGLISH
163
163
  */
164
164
  defaultLocale: Locales.ENGLISH,
165
165
  },
166
166
 
167
167
  /**
168
- * الإعدادات التي تتحكم في عمليات القاموس وسلوك البدائل.
168
+ * الإعدادات التي تتحكم في عمليات القاموس والسلوك عند فقدان المحتوى.
169
169
  */
170
170
  dictionary: {
171
171
  /**
172
- * يتحكم في كيفية استيراد القواميس.
173
- * - "static": يتم استيراده بشكل ثابت في وقت البناء.
174
- * - "dynamic": يتم استيراده بشكل ديناميكي باستخدام Suspense.
175
- * - "fetch": يتم جلبه ديناميكيًا عبر واجهة برمجة تطبيقات Live Sync.
172
+ * يتحكم في طريقة استيراد القواميس.
173
+ * - "static": استيراد ثابت أثناء البناء.
174
+ * - "dynamic": استيراد ديناميكي باستخدام Suspense.
175
+ * - "fetch": جلب ديناميكي عبر Live Sync API.
176
176
  * الافتراضي: "static"
177
177
  */
178
178
  importMode: "static",
179
179
 
180
180
  /**
181
- * استراتيجية ملء الترجمات المفقودة تلقائيًا باستخدام الذكاء الاصطناعي.
181
+ * إستراتيجية الملء التلقائي للترجمات المفقودة باستخدام الذكاء الاصطناعي.
182
182
  * يمكن أن تكون قيمة منطقية أو نمط مسار لحفظ المحتوى المملوء.
183
183
  * الافتراضي: true
184
184
  */
@@ -186,50 +186,50 @@ const config: IntlayerConfig = {
186
186
 
187
187
  /**
188
188
  * الموقع الفعلي لملفات القاموس.
189
- * - "local": مخزن في نظام الملفات المحلي.
190
- * - "remote": مخزن في Intlayer CMS.
191
- * - "hybrid": مخزن محليًا وفي Intlayer CMS.
192
- * - "plugin" (أو أي سلسلة مخصصة): يتم توفيره بواسطة مكون إضافي أو مصدر مخصص.
189
+ * - "local": مخزنة في نظام الملفات المحلي.
190
+ * - "remote": مخزنة في Intlayer CMS.
191
+ * - "hybrid": مخزنة محلياً وفي Intlayer CMS.
192
+ * - "plugin" (أو أي سلسلة مخصصة): يتم توفيرها بواسطة إضافة أو مصدر مخصص.
193
193
  * الافتراضي: "local"
194
194
  */
195
195
  location: "local",
196
196
 
197
197
  /**
198
- * ما إذا كان يجب تحويل المحتوى تلقائيًا (مثل Markdown إلى HTML).
198
+ * ما إذا كان سيتم تحويل المحتوى تلقائياً (مثلMarkdown إلى HTML).
199
199
  * الافتراضي: false
200
200
  */
201
201
  contentAutoTransformation: false,
202
202
  },
203
203
 
204
204
  /**
205
- * تكوين التوجيه والبرامج الوسيطة.
205
+ * إعدادات التوجيه والبرمجيات الوسيطة.
206
206
  */
207
207
  routing: {
208
208
  /**
209
- * استراتيجية توجيه اللغات.
210
- * - "prefix-no-default": يضيف بادئة للجميع باستثناء اللغة الافتراضية (مثل /dashboard، /fr/dashboard).
211
- * - "prefix-all": يضيف بادئة لجميع اللغات (مثل /en/dashboard، /fr/dashboard).
212
- * - "no-prefix": لا توجد لغة في عنوان URL.
213
- * - "search-params": يستخدم ?locale=...
209
+ * إستراتيجية التوجيه حسب اللغة.
210
+ * - "prefix-no-default": بادئة لجميع اللغات باستثناء الافتراضية (مثلاً: /dashboard، /fr/dashboard).
211
+ * - "prefix-all": بادئة لجميع اللغات (مثلاً: /en/dashboard، /fr/dashboard).
212
+ * - "no-prefix": لا توجد لغة في رابط URL.
213
+ * - "search-params": استخدام ?locale=...
214
214
  * الافتراضي: "prefix-no-default"
215
215
  */
216
216
  mode: "prefix-no-default",
217
217
 
218
218
  /**
219
- * مكان تخزين اللغة المختارة من قبل المستخدم.
219
+ * أين يتم تخزين اللغة التي يختارها المستخدم.
220
220
  * الخيارات: 'cookie' أو 'localStorage' أو 'sessionStorage' أو 'header' أو مصفوفة منها.
221
221
  * الافتراضي: ['cookie', 'header']
222
222
  */
223
223
  storage: ["cookie", "header"],
224
224
 
225
225
  /**
226
- * المسار الأساسي لعناوين URL للتطبيق.
226
+ * المسار الأساسي لروابط التطبيق.
227
227
  * الافتراضي: ""
228
228
  */
229
229
  basePath: "",
230
230
 
231
231
  /**
232
- * قواعد إعادة كتابة URL مخصصة لمسارات محددة لكل لغة.
232
+ * قواعد إعادة كتابة رابط URL مخصصة للمسارات في لغات معينة.
233
233
  */
234
234
  rewrite: nextjsRewrite({
235
235
  "/[locale]/about": {
@@ -240,12 +240,12 @@ const config: IntlayerConfig = {
240
240
  },
241
241
 
242
242
  /**
243
- * الإعدادات المتعلقة بالبحث عن ملفات المحتوى ومعالجتها.
243
+ * إعدادات البحث ومعالجة ملفات المحتوى.
244
244
  */
245
245
  content: {
246
246
  /**
247
- * امتدادات الملفات لمسح القواميس.
248
- * الافتراضي: ['.content.ts', '.content.js', '.content.json' وغيرها]
247
+ * امتدادات الملفات لفحص القواميس.
248
+ * الافتراضي: ['.content.ts', '.content.js', '.content.json', إلخ]
249
249
  */
250
250
  fileExtensions: [".content.ts", ".content.js", ".content.json"],
251
251
 
@@ -256,114 +256,114 @@ const config: IntlayerConfig = {
256
256
  contentDir: ["src"],
257
257
 
258
258
  /**
259
- * مكان وجود الكود المصدري.
260
- * يستخدم لتحسين البناء وتحويل الكود.
259
+ * مجلد كود المصدر.
260
+ * يستخدم لتحسينات البناء وتحويل الكود.
261
261
  * الافتراضي: ["."]
262
262
  */
263
263
  codeDir: ["src"],
264
264
 
265
265
  /**
266
- * الأنماط المستبعدة من المسح.
267
- * الافتراضي: ['node_modules', '.intlayer' وغيرها]
266
+ * الأنماط المستبعدة من الفحص.
267
+ * الافتراضي: ['node_modules', '.intlayer', إلخ]
268
268
  */
269
269
  excludedPath: ["node_modules"],
270
270
 
271
271
  /**
272
- * ما إذا كان يجب مراقبة التغييرات وإعادة بناء القواميس أثناء التطوير.
272
+ * ما إذا كان سيتم مراقبة التغييرات وإعادة توليد القواميس أثناء التطوير.
273
273
  * الافتراضي: true في وضع التطوير
274
274
  */
275
275
  watch: true,
276
276
 
277
277
  /**
278
- * الأمر المستخدم لتنسيق ملفات .content المنشأة حديثًا / المحدثة.
278
+ * أمر لتنسيق ملفات .content المنشأة/المحدثة حديثاً.
279
279
  */
280
280
  formatCommand: 'npx prettier --write "{{file}}"',
281
281
  },
282
282
 
283
283
  /**
284
- * تكوين المحرر المرئي (Visual Editor).
284
+ * إعدادات المحرر المرئي.
285
285
  */
286
286
  editor: {
287
287
  /**
288
- * ما إذا كان المحرر المرئي ممكناً.
288
+ * ما إذا كان المحرر المرئي مفعلاً.
289
289
  * الافتراضي: false
290
290
  */
291
291
  enabled: true,
292
292
 
293
293
  /**
294
- * عنوان URL لتطبيقك للتحقق من المصدر (origin validation).
294
+ * رابط تطبيقك للتحقق من المصدر (origin).
295
295
  * الافتراضي: ""
296
296
  */
297
297
  applicationURL: "http://localhost:3000",
298
298
 
299
299
  /**
300
- * منفذ خادم المحرر المحلي.
300
+ * المنفذ لخادم المحرر المحلي.
301
301
  * الافتراضي: 8000
302
302
  */
303
303
  port: 8000,
304
304
 
305
305
  /**
306
- * عنوان URL العام للمحرر.
306
+ * الرابط العام للمحرر.
307
307
  * الافتراضي: "http://localhost:8000"
308
308
  */
309
309
  editorURL: "http://localhost:8000",
310
310
 
311
311
  /**
312
- * عنوان URL لـ Intlayer CMS.
312
+ * رابط Intlayer CMS.
313
313
  * الافتراضي: "https://app.intlayer.org"
314
314
  */
315
315
  cmsURL: "https://app.intlayer.org",
316
316
 
317
317
  /**
318
- * عنوان URL لواجهة برمجة تطبيقات الخلفية (Backend API).
318
+ * رابط خادم واجهة برمجة التطبيقات (API) الخلفي.
319
319
  * الافتراضي: "https://back.intlayer.org"
320
320
  */
321
321
  backendURL: "https://back.intlayer.org",
322
322
 
323
323
  /**
324
- * ما إذا كان يجب تمكين مزامنة المحتوى في الوقت الفعلي.
324
+ * ما إذا كان سيتم تفعيل مزامنة المحتوى في الوقت الفعلي.
325
325
  * الافتراضي: false
326
326
  */
327
327
  liveSync: true,
328
328
  },
329
329
 
330
330
  /**
331
- * إعدادات الترجمة والبناء القائم على الذكاء الاصطناعي.
331
+ * إعدادات الترجمة والتوليد باستخدام الذكاء الاصطناعي.
332
332
  */
333
333
  ai: {
334
334
  /**
335
- * مزود الذكاء الاصطناعي المراد استخدامه.
335
+ * مزود الذكاء الاصطناعي المستخدم.
336
336
  * الخيارات: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
337
  * الافتراضي: 'openai'
338
338
  */
339
339
  provider: "openai",
340
340
 
341
341
  /**
342
- * نموذج المزود المختار المراد استخدامه.
342
+ * النموذج المستخدم من المزود المختار.
343
343
  */
344
344
  model: "gpt-4o",
345
345
 
346
346
  /**
347
- * مفتاح واجهة برمجة تطبيقات المزود.
347
+ * مفتاح واجهة برمجة التطبيقات (API key) للمزود.
348
348
  */
349
349
  apiKey: process.env.OPENAI_API_KEY,
350
350
 
351
351
  /**
352
- * سياق عالمي لتوجيه الذكاء الاصطناعي عند بناء الترجمات.
352
+ * السياق العام لتوجيه الذكاء الاصطناعي عند توليد الترجمات.
353
353
  */
354
- applicationContext: "هذا تطبيق لحجز الرحلات.",
354
+ applicationContext: "هذا تطبيق لحجز السفر.",
355
355
 
356
356
  /**
357
- * عنوان URL للمسار الأساسي لواجهة برمجة تطبيقات الذكاء الاصطناعي.
357
+ * الرابط الأساسي لواجهة برمجة تطبيقات الذكاء الاصطناعي.
358
358
  */
359
359
  baseURL: "http://localhost:3000",
360
360
 
361
361
  /**
362
- * تسلسل البيانات (Data Serialization)
362
+ * تسلسل البيانات
363
363
  *
364
364
  * الخيارات:
365
- * - "json": افتراضي، قوي؛ يستهلك المزيد من التوكنات.
366
- * - "toon": يستهلك توكنات أقل، قد لا يكون متسقًا مثل JSON.
365
+ * - "json": افتراضي، موثوق؛ يستهلك المزيد من الوحدات (tokens).
366
+ * - "toon": حات سريعة، استهلاك أقل للوحدات، أقل استقراراً من JSON.
367
367
  *
368
368
  * الافتراضي: "json"
369
369
  */
@@ -376,53 +376,53 @@ const config: IntlayerConfig = {
376
376
  build: {
377
377
  /**
378
378
  * وضع تنفيذ البناء.
379
- * - "auto": يتم البناء تلقائيًا أثناء بناء التطبيق.
379
+ * - "auto": بناء تلقائي أثناء بناء التطبيق.
380
380
  * - "manual": يتطلب أمر بناء صريح.
381
381
  * الافتراضي: "auto"
382
382
  */
383
383
  mode: "auto",
384
384
 
385
385
  /**
386
- * ما إذا كان يجب تحسين الحزمة النهائية عن طريق إزالة القواميس غير المستخدمة.
386
+ * ما إذا كان سيتم تحسين الحزمة الناتجة عن طريق إزالة القواميس غير المستخدمة.
387
387
  * الافتراضي: true في الإنتاج
388
388
  */
389
389
  optimize: true,
390
390
 
391
391
  /**
392
- * تنسيق الإخراج لملفات القاموس المنشأة.
392
+ * صيغة الإخراج لملفات القاموس المولدة.
393
393
  * الافتراضي: ['cjs', 'esm']
394
394
  */
395
395
  outputFormat: ["cjs", "esm"],
396
396
 
397
397
  /**
398
- * يحدد ما إذا كان ينبغي للبناء التحقق من أنواع TypeScript.
398
+ * ما إذا كان ينبغي للبناء التحقق من أنواع TypeScript.
399
399
  * الافتراضي: false
400
400
  */
401
401
  checkTypes: false,
402
402
  },
403
403
 
404
404
  /**
405
- * تكوين المسجل (Logger).
405
+ * إعدادات السجل (Logger).
406
406
  */
407
407
  log: {
408
408
  /**
409
- * مستوى تسجيل البيانات.
410
- * - "default": تسجيل البيانات القياسي.
411
- * - "verbose": تسجيل بيانات تصحيح الأخطاء بعمق.
412
- * - "disabled": تعطيل تسجيل البيانات.
409
+ * مستوى السجل.
410
+ * - "default": تسجيل قياسي.
411
+ * - "verbose": تسجيل تصحيح مفصل.
412
+ * - "disabled": لا يوجد تسجيل.
413
413
  * الافتراضي: "default"
414
414
  */
415
415
  mode: "default",
416
416
 
417
417
  /**
418
- * البادئة لجميع رسائل السجل.
418
+ * بادئة لجميع الرسائل في السجل.
419
419
  * الافتراضي: "[intlayer]"
420
420
  */
421
421
  prefix: "[intlayer]",
422
422
  },
423
423
 
424
424
  /**
425
- * تكوين النظام (للاستخدام المتقدم)
425
+ * إعدادات النظام (حالات الاستخدام المتقدمة)
426
426
  */
427
427
  system: {
428
428
  /**
@@ -431,12 +431,12 @@ const config: IntlayerConfig = {
431
431
  dictionariesDir: ".intlayer/dictionary",
432
432
 
433
433
  /**
434
- * المجلد لزيادة وحدات TypeScript (module augmentation).
434
+ * المجلد لتوسيع الوحدات (module augmentation).
435
435
  */
436
436
  moduleAugmentationDir: ".intlayer/types",
437
437
 
438
438
  /**
439
- * المجلد لتخزين القواميس غير المدمجة (unmerged).
439
+ * المجلد لتخزين القواميس غير المدمجة.
440
440
  */
441
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
442
442
 
@@ -446,31 +446,31 @@ const config: IntlayerConfig = {
446
446
  typesDir: ".intlayer/types",
447
447
 
448
448
  /**
449
- * المجلد الذي يتم فيه تخزين ملفات التطبيق الرئيسية.
449
+ * المجلد حيث يتم الاحتفاظ بملفات التطبيق الرئيسية.
450
450
  */
451
451
  mainDir: ".intlayer/main",
452
452
 
453
453
  /**
454
- * المجلد الذي يتم فيه تخزين ملفات التكوين.
454
+ * المجلد حيث يتم الاحتفاظ بملفات الإعدادات المحولة برمجياً.
455
455
  */
456
456
  configDir: ".intlayer/config",
457
457
 
458
458
  /**
459
- * المجلد الذي يتم فيه تخزين ملفات التخزين المؤقت.
459
+ * المجلد لملفات التخزين المؤقت (cache).
460
460
  */
461
461
  cacheDir: ".intlayer/cache",
462
462
  },
463
463
 
464
464
  /**
465
- * تكوين المترجم (للاستخدام المتقدم)
465
+ * إعدادات المترجم (حالات الاستخدام المتقدمة)
466
466
  */
467
467
  compiler: {
468
468
  /**
469
- * يحدد ما إذا كان ينبغي تمكين المترجم.
469
+ * ما إذا كان سيتم تفعيل المترجم.
470
470
  *
471
471
  * - false: تعطيل المترجم.
472
- * - true: تمكين المترجم.
473
- * - "build-only": يتخطى المترجم أثناء التطوير ويسرع وقت البدء.
472
+ * - true: تفعيل المترجم.
473
+ * - "build-only": تخطي المترجم أثناء التطوير لبدء أسرع.
474
474
  *
475
475
  * الافتراضي: false
476
476
  */
@@ -480,26 +480,26 @@ const config: IntlayerConfig = {
480
480
  * يحدد المسار لملفات الإخراج. يستبدل `outputDir`.
481
481
  *
482
482
  * - يتم حل المسارات التي تبدأ بـ `./` بالنسبة لمجلد المكون.
483
- * - يتم حل المسارات التي تبدأ بـ `/` بالنسبة لجذر المشروع (`baseDir`).
483
+ * - يتم حل المسارات التي تبدأ بـ `/` بالنسبة لمجلد المشروع الأساسي (`baseDir`).
484
484
  *
485
- * - سيؤدي تضمين متغير `{{locale}}` في المسار إلى إنشاء قواميس منفصلة لكل لغة.
485
+ * - وجود متغير `{{locale}}` في المسار يفعل توليد قواميس منفصلة لكل لغة.
486
486
  *
487
487
  * مثال:
488
488
  * ```ts
489
489
  * {
490
- * // إنشاء ملفات .content.ts متعددة اللغات بجوار المكون
490
+ * // إنشاء ملفات .content.ts متعددة اللغات بجانب المكون
491
491
  * output: ({ fileName, extension }) => `./${fileName}${extension}`,
492
492
  *
493
- * // output: './{{fileName}}{{extension}}', // مكافئ باستخدام سلسلة قالب
493
+ * // output: './{{fileName}}{{extension}}', // مكافئ عبر سلسلة قالب
494
494
  * }
495
495
  * ```
496
496
  *
497
497
  * ```ts
498
498
  * {
499
- * // إنشاء ملفات JSON مركزية لكل لغة في جذر المشروع
499
+ * // إنشاء ملفات JSON مركزية حسب اللغة في مجلد المشروع الأساسي
500
500
  * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
501
501
  *
502
- * // output: '/locales/{{locale}}/{{key}}.content.json', // مكافئ باستخدام سلسلة قالب
502
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // مكافئ عبر سلسلة قالب
503
503
  * }
504
504
  * ```
505
505
  *
@@ -510,31 +510,31 @@ const config: IntlayerConfig = {
510
510
  * - `extension`: امتداد الملف.
511
511
  * - `componentFileName`: اسم ملف المكون.
512
512
  * - `componentExtension`: امتداد ملف المكون.
513
- * - `format`: تنسيق القاموس.
514
- * - `componentFormat`: تنسيق قاموس المكون.
515
- * - `componentDirPath`: مسار مجلد المكون.
513
+ * - `format`: صيغة القاموس.
514
+ * - `componentFormat`: صيغة قاموس المكون.
515
+ * - `componentDirPath`: المسار إلى مجلد المكون.
516
516
  */
517
517
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
518
518
 
519
519
  /**
520
- * يحدد ما إذا كانت المكونات يجب أن تحفظ بعد تحويلها.
521
- * بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق ثم حذفه.
520
+ * ما إذا كان سيتم حفظ المكونات بعد تحويلها.
521
+ * بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة لتحويل التطبيق ثم إزالته.
522
522
  */
523
523
  saveComponents: false,
524
524
 
525
525
  /**
526
- * إدراج المحتوى فقط في الملف المنشأ. مفيد لإخراج JSON لكل لغة لـ i18next أو ICU MessageFormat.
526
+ * وضع المحتوى فقط في الملف المولد. مفيد لمخرجات بصيغة i18next أو ICU MessageFormat JSON حسب اللغة.
527
527
  */
528
528
  noMetadata: false,
529
529
 
530
530
  /**
531
- * بادئة مفتاح القاموس
531
+ * بادئة لمفتاح القاموس
532
532
  */
533
- dictionaryKeyPrefix: "", // أضف بادئة اختيارية لمفاتيح القواميس المستخرجة
533
+ dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القواميس المستخرجة
534
534
  },
535
535
 
536
536
  /**
537
- * مخططات مخصصة (Schemas) للتحقق من صحة محتوى القاموس.
537
+ * مخططات مخصصة للتحقق من صحة محتوى القاموس.
538
538
  */
539
539
  schemas: {
540
540
  "my-schema": z.object({
@@ -543,7 +543,7 @@ const config: IntlayerConfig = {
543
543
  },
544
544
 
545
545
  /**
546
- * تكوين المكونات الإضافية (Plugins).
546
+ * إعدادات الإضافات.
547
547
  */
548
548
  plugins: [],
549
549
  };
@@ -553,60 +553,62 @@ export default config;
553
553
 
554
554
  ---
555
555
 
556
- ## مرجع التكوين (Configuration Reference)
556
+ ## مرجع دليل الإعدادات
557
557
 
558
- تصف الأقسام التالية خيارات التكوين المختلفة المتاحة في Intlayer.
558
+ يوضح ما يلي معالم الإعدادات المختلفة المتاحة في Intlayer.
559
559
 
560
560
  ---
561
561
 
562
- ### تكوين التدويل (Internationalization Configuration)
562
+ ### إعدادات التدويل (Internationalization)
563
563
 
564
- يعرف الإعدادات المتعلقة بالتدويل، بما في ذلك اللغات المتاحة واللغة الافتراضية للتطبيق.
564
+ تحدد الإعدادات المتعلقة بتدويل التطبيق، بما في ذلك اللغات المتاحة واللغة الافتراضية.
565
565
 
566
- | الحقل | النوع | الوصف | مثال | ملاحظة |
567
- | ----------------- | ---------- | --------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
568
- | `locales` | `string[]` | قائمة اللغات المدعومة في التطبيق. الافتراضي: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
- | `requiredLocales` | `string[]` | قائمة اللغات الإلزامية في التطبيق. الافتراضي: `[]` | `[]` | إذا كانت فارغة، فستكون جميع اللغات إلزامية في وضع `strict`. تأكد من تعريف اللغات الإلزامية أيضًا في حقل `locales`. |
570
- | `strictMode` | `string` | يضمن تنفيذًا قويًا للمحتوى المدوّل باستخدام TypeScript. الافتراضي: `inclusive` | | إذا كان `"strict"`: تتطلب وظيفة `t` تعريف كل لغة معلنة - يطرح خطأ إذا كانت أي منها مفقودة أو غير معلنة. إذا كان `"inclusive"`: يحذر من اللغات المفقودة ولكنه يقبل اللغات غير المعلنة الموجودة. إذا كان `"loose"`: يقبل أي لغة موجودة. |
571
- | `defaultLocale` | `string` | اللغة الافتراضية المستخدمة كبديل إذا لم يتم العثور على اللغة المطلوبة. الافتراضي: `Locales.ENGLISH` | `'en'` | يستخدم لتحديد اللغة عندما لا يتم تحديد أي لغة في عنوان URL أو ملف تعريف الارتباط أو الرأس. |
566
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
567
+ | ----------------- | -------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
568
+ | `locales` | قائمة اللغات المدعومة في التطبيق. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
+ | `requiredLocales` | قائمة اللغات المطلوبة في التطبيق. | `string[]` | `[]` | `[]` | إذا كانت فارغة، فستكون جميع اللغات مطلوبة في وضع `strict`. <br/> • تأكد من تعريف اللغات المطلوبة أيضاً في حقل `locales`. |
570
+ | `strictMode` | يضمن تنفيذاً قوياً للمحتوى المترجم باستخدام TypeScript. | `string` | `'inclusive'` | | إذا كان `"strict"`: تطلب الدالة `t` تعريف كل لغة معلنة يلقي خطأ إذا كانت إحداها مفقودة أو غير معلنة. <br/> • إذا كان `"inclusive"`: يحذر من اللغات المفقودة ولكنه يسمح باستخدام اللغات الموجودة غير المعلنة. <br/> إذا كان `"loose"`: يقبل أي لغة موجودة. |
571
+ | `defaultLocale` | اللغة الافتراضية المستخدمة كاحتياطي في حالة عدم العثور على اللغة المطلوبة. | `string` | `Locales.ENGLISH` | `'en'` | تُستخدم لتحديد اللغة عندما لا يتم تحديدها في رابط URL أو الكوكيز أو الهيدر. |
572
572
 
573
573
  ---
574
574
 
575
- ### تكوين المحرر (Editor Configuration)
575
+ ### إعدادات المحرر (Editor)
576
+
577
+ تحدد إعدادات المحرر المرئي المدمج، بما في ذلك منفذ الخادم وحالة التفعيل.
578
+
579
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
580
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
+ | `applicationURL` | رابط التطبيق. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • يُستخدم لتقييد مصدر (origin) المحرر لأسباب أمنية. <br/> • إذا تم تعيينه على `'*'`، يمكن الوصول إلى المحرر من أي مصدر. |
582
+ | `port` | المنفذ المستخدم بواسطة خادم المحرر المرئي. | `number` | `8000` | | |
583
+ | `editorURL` | رابط خادم المحرر. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • يُستخدم لتقييد المصادر التي يمكنها التواصل مع التطبيق. <br/> • إذا تم تعيينه على `'*'`، يمكن الوصول إليه من أي مصدر. <br/> • يجب تعيينه إذا تم تغيير المنفذ أو استضافة المحرر على نطاق مختلف. |
584
+ | `cmsURL` | رابط Intlayer CMS. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
585
+ | `backendURL` | رابط الخادم الخلفي. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
586
+ | `enabled` | ما إذا كان ينبغي للتطبيق التواصل مع المحرر المرئي. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • إذا كان `false` ، فلا يمكن للمحرر التواصل مع التطبيق. <br/> • يؤدي تعطيله لبيئات معينة إلى زيادة الأمان. |
587
+ | `clientId` | يسمح لحزم intlayer بالتحقق من الهوية على الخادم الخلفي عبر oAuth2. انتقل إلى [intlayer.org/project](https://app.intlayer.org/project) للحصول على رمز الوصول الخاص بك. | `string` &#124; <br/> `undefined` | `undefined` | | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. |
588
+ | `clientSecret` | يسمح لحزم intlayer بالتحقق من الهوية على الخادم الخلفي عبر oAuth2. انتقل إلى [intlayer.org/project](https://app.intlayer.org/project) للحصول على رمز الوصول الخاص بك. | `string` &#124; <br/> `undefined` | `undefined` | | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. |
589
+ | `dictionaryPriorityStrategy` | إستراتيجية أولوية القواميس عند وجود قواميس محلية وعن بعد معاً. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: يعطي الأولوية للقواميس البعيدة على المحلية. <br/> • `'local_first'`: يعطي الأولوية للقواميس المحلية على البعيدة. |
590
+ | `liveSync` | ما إذا كان ينبغي لخادم التطبيق إعادة تحميل المحتوى فوراً عند اكتشاف تغييرات في CMS <br/> المحرر المرئي <br/> الخادم الخلفي. | `boolean` | `true` | `true` | • عند إضافة/تحديث قاموس، سيقوم التطبيق بتحديث محتوى الصفحة. <br/> • تستهلك المزامنة الحية المحتوى في خادم آخر، مما قد يؤثر قليلاً على الأداء. <br/> • يوصى باستضافة كليهما على نفس الجهاز. |
591
+ | `liveSyncPort` | منفذ خادم المزامنة الحية. | `number` | `4000` | `4000` | |
592
+ | `liveSyncURL` | رابط خادم المزامنة الحية. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | يشير افتراضياً إلى localhost؛ يمكن تغييره ليشير إلى خادم مزامنة حية بعيد. |
576
593
 
577
- يعرف الإعدادات المتعلقة بالمحرر المدمج، بما في ذلك منفذ الخادم وحالة النشاط.
578
-
579
- | الحقل | النوع | الوصف | مثال | ملاحظة |
580
- | ---------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
- | `applicationURL` | `string` | عنوان URL لتطبيقك. الافتراضي: `''` | `'http://localhost:3000'`، `'https://example.com'`، `process.env.INTLAYER_EDITOR_URL` | يستخدم لتقييد مصادر (origin) المحرر لأسباب أمنية. إذا تم تعيينه على `'*'`، يمكن الوصول إلى المحرر من أي مصدر. |
582
- | `port` | `number` | المنفذ المستخدم من قبل خادم المحرر المرئي. الافتراضي: `8000` | | |
583
- | `editorURL` | `string` | عنوان URL لخادم المحرر. الافتراضي: `'http://localhost:8000'` | `'http://localhost:3000'`، `'https://example.com'`، `process.env.INTLAYER_EDITOR_URL` | يستخدم لتقييد المصادر التي يمكنها التفاعل مع التطبيق. إذا تم تعيينه على `'*'`، يمكن الوصول إليه من أي مصدر. يجب تعيينه عند تغيير المنفذ أو إذا تم استضافة المحرر في مجال مختلف. |
584
- | `cmsURL` | `string` | عنوان URL لـ Intlayer CMS. الافتراضي: `'https://intlayer.org'` | `'https://intlayer.org'` | |
585
- | `backendURL` | `string` | عنوان URL لخادم الخلفية. الافتراضي: `https://back.intlayer.org` | `http://localhost:4000` | |
586
- | `enabled` | `boolean` | يحدد ما إذا كان التطبيق سيتفاعل مع المحرر المرئي. الافتراضي: `true` | `process.env.NODE_ENV !== 'production'` | إذا كان `false`، لا يمكن للمحرر التفاعل مع التطبيق. يؤدي تعطيله لبيئات معينة إلى تعزيز الأمان. |
587
- | `clientId` | `string &#124; undefined` | يسمح لحزم intlayer بالمصادقة مع الخلفية باستخدام oAuth2. للحصول على توكن وصول، انتقل إلى [intlayer.org/project](https://app.intlayer.org/project). الافتراضي: `undefined` | | ابقِهِ سريًا؛ قم بتخزينه في متغيرات البيئة. |
588
- | `clientSecret` | `string &#124; undefined` | يسمح لحزم intlayer بالمصادقة مع الخلفية باستخدام oAuth2. للحصول على توكن وصول، انتقل إلى [intlayer.org/project](https://app.intlayer.org/project). الافتراضي: `undefined` | | ابقِهِ سريًا؛ قم بتخزينه في متغيرات البيئة. |
589
- | `dictionaryPriorityStrategy` | `string` | استراتيجية تحديد أولويات القواميس عند وجود قواميس محلية وعن بُعد. الافتراضي: `'local_first'` | `'distant_first'` | `'distant_first'`: يعطي الأولوية للبعيد على المحلي. `'local_first'`: يعطي الأولوية للمحلي على البعيد. |
590
- | `liveSync` | `boolean` | يحدد ما إذا كان يجب على خادم التطبيق إعادة تحميل المحتوى حرارياً عند اكتشاف تغيير في CMS / المحرر المرئي / الخلفية. الافتراضي: `true` | `true` | عند إضافة/تحديث قاموس، يقوم التطبيق بتحديث محتوى الصفحة. يقوم المزامنة الحية (Live sync) بالاستعانة بمصادر خارجية للمحتوى لخادم آخر، مما قد يؤثر قليلاً على الأداء. يوصى باستضافة كليهما على نفس الجهاز. |
591
- | `liveSyncPort` | `number` | منفذ خادم المزامنة الحية. الافتراضي: `4000` | `4000` | |
592
- | `liveSyncURL` | `string` | عنوان URL لخادم المزامنة الحية. الافتراضي: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | يشير إلى localhost بشكل افتراضي؛ يمكن تغييره إلى خادم مزامنة حية بعيد. |
594
+ ---
593
595
 
594
- ### تكوين التوجيه (Routing Configuration)
596
+ ### إعدادات التوجيه (Routing)
595
597
 
596
- الإعدادات التي تتحكم في سلوك التوجيه، بما في ذلك بنية URL، وتخزين اللغات، ومعالجة البرامج الوسيطة.
598
+ الإعدادات التي تتحكم في سلوك التوجيه، بما في ذلك بنية رابط URL، وتخزين اللغة، وإدارة البرمجيات الوسيطة.
597
599
 
598
- | الحقل | النوع | الوصف | مثال | ملاحظة |
599
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
600
- | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | وضع توجيه URL لمعالجة اللغات. الافتراضي: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) أو `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: تتم معالجة اللغة بوسائل أخرى. `'search-params'`: يستخدم `/dashboard?locale=fr` | لا يؤثر على إدارة ملفات تعريف الارتباط أو تخزين اللغات. |
601
- | `storage` | `false &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; Array` | تكوين لتخزين اللغة على العميل. الافتراضي: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | راجع جدول خيارات التخزين أدناه. |
602
- | `basePath` | `string` | المسار الأساسي لعناوين URL للتطبيق. الافتراضي: `''` | `'/my-app'` | إذا كان التطبيق على `https://example.com/my-app` ، فإن basePath هو `'/my-app'` وتصبح عناوين URL مثل `https://example.com/my-app/en`. |
603
- | `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | قواعد إعادة كتابة URL مخصصة تتجاوز وضع التوجيه الافتراضي لمسارات محددة. يدعم المعلمات الديناميكية `[param]`. الافتراضي: `undefined` | انظر المثال أدناه | قواعد إعادة الكتابة لها الأولوية على `mode`. تعمل مع Next.js و Vite. تقوم `getLocalizedUrl()` بتطبيق القواعد المطابقة تلقائيًا. انظر [عمليات إعادة كتابة URL المخصصة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/custom_url_rewrites.md). |
600
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
601
+ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
602
+ | `mode` | وضع توجيه رابط URL لإدارة اللغات. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (الإنجليزية) أو `/fr/dashboard` (الفرنسية). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: تتم إدارة اللغة بوسائل أخرى. `'search-params'`: `/dashboard?locale=fr` | لا يؤثر على إدارة الكوكيز أو تخزين اللغات. |
603
+ | `storage` | إعدادات تخزين اللغة على العميل. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | انظر جدول معالم التخزين أدناه. |
604
+ | `basePath` | المسار الأساسي لروابط التطبيق. | `string` | `''` | `'/my-app'` | إذا كان التطبيق يعمل على العنوان `https://example.com/my-app` ، فإن الـ basePath هو `'/my-app'` وتصبح الروابط `https://example.com/my-app/en`. |
605
+ | `rewrite` | قواعد إعادة كتابة رابط URL مخصصة تتجاوز وضع التوجيه الافتراضي لمسارات معينة. تدعم المعاملات الديناميكية `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | انظر المثال أدناه | لقواعد إعادة الكتابة أولوية على `mode`. <br/> • يعمل مع Next.js و Vite. <br/> • تقوم `getLocalizedUrl()` بتطبيق القواعد المناسبة تلقائياً. <br/> • انظر [إعادة كتابة روابط URL المخصصة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
604
606
 
605
- **مثال على `rewrite`**:
607
+ **مثال لـ `rewrite`**:
606
608
 
607
609
  ```typescript
608
610
  routing: {
609
- mode: "prefix-no-default", // استراتيجية التراجع
611
+ mode: "prefix-no-default", // إستراتيجية احتياطية
610
612
  rewrite: nextjsRewrite({
611
613
  "/about": {
612
614
  en: "/about",
@@ -624,43 +626,43 @@ routing: {
624
626
  }
625
627
  ```
626
628
 
627
- #### خيارات التخزين (Storage Options)
629
+ #### معالم التخزين (Storage)
628
630
 
629
- | القيمة | الوصف | ملاحظة |
630
- | ------------------ | ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
631
- | `'cookie'` | يخزن اللغة في ملفات تعريف الارتباط - يمكن الوصول إليها من جانبي العميل والخادم. | للامتثال للقانون العام لحماية البيانات (GDPR) ، تأكد من الحصول على موافقة المستخدم المناسبة. قابلة للتخصيص عبر `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
632
- | `'localStorage'` | يخزن اللغة في المتصفح بدون تاريخ انتهاء - جانب العميل فقط. | لا تنتهي صلاحيتها إلا إذا تم مسحها صراحة. لا يمكن لبروكسي Intlayer الوصول إليها. قابلة للتخصيص عبر `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
633
- | `'sessionStorage'` | يخزن اللغة طوال مدة جلسة الصفحة - جانب العميل فقط. | يتم مسحها عند إغلاق علامة التبويب/النافذة. لا يمكن لبروكسي Intlayer الوصول إليها. قابلة للتخصيص عبر `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
634
- | `'header'` | يخزن أو ينقل اللغة عبر رؤوس HTTP - جانب الخادم فقط. | مفيد لمكالمات واجهة برمجة التطبيقات. لا يمكن لجانب العميل الوصول إليه. قابلة للتخصيص عبر `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
631
+ | القيمة | ملاحظة | الوصف |
632
+ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
633
+ | `'cookie'` | للامتثال للقانون العام لحماية البيانات (GDPR)، تأكد من الحصول على موافقة المستخدم بشكل صحيح. <br/> • قابل للتخصيص عبر `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | يخزن اللغة في الكوكيز — يمكن الوصول إليها على كل من العميل والخادم. |
634
+ | `'localStorage'` | لا تنتهي صلاحيته إلا إذا تم مسحه صراحة. <br/> • لا يمكن لـ Intlayer Proxy الوصول إليه. <br/> • قابل للتخصيص عبر `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | يخزن اللغة في المتصفح دون حد زمني — من جانب العميل فقط. |
635
+ | `'sessionStorage'` | يتم مسحه عند إغلاق التبويب/النافذة. <br/> • لا يمكن لـ Intlayer Proxy الوصول إليه. <br/> • قابل للتخصيص عبر `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | يخزن اللغة طوال مدة جلسة الصفحة — من جانب العميل فقط. |
636
+ | `'header'` | مفيد لطلبات واجهة برمجة التطبيقات (API). <br/> لا يمكن لجانب العميل الوصول إليه. <br/> • قابل للتخصيص عبر `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | يخزن أو يمرر اللغة عبر ترويسات HTTP — من جانب الخادم فقط. |
635
637
 
636
- #### سمات ملف تعريف الارتباط (Cookie Attributes)
638
+ #### سمات الكوكيز (Cookies Attributes)
637
639
 
638
- عند استخدام التخزين عبر ملفات تعريف الارتباط ، يمكنك تكوين سمات إضافية:
640
+ عند استخدام التخزين في الكوكيز، يمكن تعيين سمات إضافية:
639
641
 
640
- | الحقل | النوع | الوصف |
641
- | ---------- | ------------------------------------- | ----------------------------------------------------------- |
642
- | `name` | `string` | اسم ملف تعريف الارتباط. الافتراضي: `'INTLAYER_LOCALE'` |
643
- | `domain` | `string` | مجال ملف تعريف الارتباط. الافتراضي: `undefined` |
644
- | `path` | `string` | مسار ملف تعريف الارتباط. الافتراضي: `undefined` |
645
- | `secure` | `boolean` | يتطلب HTTPS. الافتراضي: `undefined` |
646
- | `httpOnly` | `boolean` | علم HTTP-only. الافتراضي: `undefined` |
647
- | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | سياسة SameSite. |
648
- | `expires` | `Date &#124; number` | تاريخ انتهاء الصلاحية أو عدد الأيام. الافتراضي: `undefined` |
642
+ | الحقل | الوصف | النوع |
643
+ | ---------- | ------------------------------------------- | ---------------------------------------------------- |
644
+ | `name` | اسم الكوكيز. الافتراضي: `'INTLAYER_LOCALE'` | `string` |
645
+ | `domain` | نطاق الكوكيز. الافتراضي: `undefined` | `string` |
646
+ | `path` | مسار الكوكيز. الافتراضي: `undefined` | `string` |
647
+ | `secure` | يتطلب HTTPS. الافتراضي: `undefined` | `boolean` |
648
+ | `httpOnly` | علامة HTTP-only. الافتراضي: `undefined` | `boolean` |
649
+ | `sameSite` | سياسة SameSite. | `'strict'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
650
+ | `expires` | تاريخ الانتهاء أو عدد الأيام. الافتراضي: `undefined` | `Date` &#124; <br/> `number` |
649
651
 
650
- #### سمات تخزين اللغة (Locale Storage Attributes)
652
+ #### سمات التخزين (Storage Attributes)
651
653
 
652
654
  عند استخدام localStorage أو sessionStorage:
653
655
 
654
- | الحقل | النوع | الوصف |
655
- | ------ | ---------------------------------------- | ------------------------------------------------- |
656
- | `type` | `'localStorage' &#124; 'sessionStorage'` | نوع التخزين. |
657
- | `name` | `string` | اسم مفتاح التخزين. الافتراضي: `'INTLAYER_LOCALE'` |
656
+ | الحقل | الوصف | النوع |
657
+ | ------ | ----------------------------------------------- | ------------------------------------------------ |
658
+ | `type` | نوع التخزين. | `'localStorage'` &#124; <br/> `'sessionStorage'` |
659
+ | `name` | اسم المفتاح في التخزين. الافتراضي: `'INTLAYER_LOCALE'` | `string` |
658
660
 
659
- #### أمثلة التكوين
661
+ #### أمثلة للإعدادات
660
662
 
661
- إليك بعض أمثلة التكوين الشائعة لبنية التوجيه الجديدة v7:
663
+ فيما يلي بعض الأمثلة الشائعة للإعدادات لهيكل التوجيه v7 الجديد:
662
664
 
663
- **التكوين الأساسي (افتراضي)**:
665
+ **الإعدادات الأساسية (الافتراضية)**:
664
666
 
665
667
  ```typescript
666
668
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -680,7 +682,7 @@ const config: IntlayerConfig = {
680
682
  export default config;
681
683
  ```
682
684
 
683
- **تكوين متوافق مع GDPR**:
685
+ **الإعدادات مع الامتثال لـ GDPR**:
684
686
 
685
687
  ```typescript
686
688
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -712,7 +714,7 @@ const config: IntlayerConfig = {
712
714
  export default config;
713
715
  ```
714
716
 
715
- **وضع معلمات البحث (Search Parameters Mode)**:
717
+ **وضع معاملات البحث (Search Params)**:
716
718
 
717
719
  ```typescript
718
720
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -732,7 +734,7 @@ const config: IntlayerConfig = {
732
734
  export default config;
733
735
  ```
734
736
 
735
- **وضع بدون بادئة (No Prefix Mode) مع تخزين مخصص**:
737
+ **وضع بدون بادئة مع تخزين مخصص**:
736
738
 
737
739
  ```typescript
738
740
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -755,7 +757,7 @@ const config: IntlayerConfig = {
755
757
  export default config;
756
758
  ```
757
759
 
758
- **إعادة كتابة URL مخصص مع مسارات ديناميكية**:
760
+ **إعادة كتابة روابط URL مخصصة مع مسارات ديناميكية**:
759
761
 
760
762
  ```typescript
761
763
  // intlayer.config.ts
@@ -767,7 +769,7 @@ const config: IntlayerConfig = {
767
769
  defaultLocale: "en",
768
770
  },
769
771
  routing: {
770
- mode: "prefix-no-default", // استراتيجية التراجع للمسارات غير المعاد كتابتها
772
+ mode: "prefix-no-default", // احتياطي للمسارات غير المعاد كتابتها
771
773
  storage: "cookie",
772
774
  rewrite: nextjsRewrite({
773
775
  "/about": {
@@ -791,132 +793,166 @@ export default config;
791
793
 
792
794
  ---
793
795
 
794
- ### تكوين المحتوى (Content Configuration)
796
+ ### إعدادات المحتوى (Content)
795
797
 
796
- الإعدادات المتعلقة بمعالجة المحتوى داخل التطبيق (أسماء المجلدات ، امتدادات الملفات ، والتكوينات المشتقة).
798
+ الإعدادات المتعلقة بكيفية إدارة المحتوى في التطبيق، بما في ذلك أسماء المجلدات، وامتدادات الملفات، والإعدادات المشتقة.
797
799
 
798
- | الحقل | النوع | الوصف | مثال | ملاحظة |
799
- | ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------- |
800
- | `watch` | `boolean` | يحدد ما إذا كان يجب على Intlayer مراقبة التغييرات في ملفات إعلان المحتوى لإعادة بناء القواميس. الافتراضي: `process.env.NODE_ENV === 'development'` | | |
801
- | `fileExtensions` | `string[]` | امتدادات الملفات المستخدمة لمسح ملفات إعلان المحتوى. الافتراضي: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
802
- | `contentDir` | `string[]` | مسارات المجلدات التي توجد بها ملفات إعلان المحتوى. الافتراضي: `['.']` | `['src/content']` | |
803
- | `codeDir` | `string[]` | مسارات المجلدات التي توجد بها ملفات الكود المصدري لتطبيقك. الافتراضي: `['.']` | `['src']` | يستخدم لتحسين البناء وضمان تطبيق تحويل الكود وإعادة التحميل الحراري فقط على الملفات الضرورية. |
804
- | `excludedPath` | `string[]` | المسارات المستبعدة من مسح المحتوى. الافتراضي: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
805
- | `formatCommand` | `string` | الأمر الذي سيتم تشغيله لتنسيق ملفات المحتوى المنشأة حديثًا أو المحدثة. الافتراضي: `undefined` | `'npx prettier --write "{{file}}"'` | يستخدم أثناء استخراج المحتوى أو عبر المحرر المرئي. |
800
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
801
+ | ----------------- | ------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
802
+ | `watch` | يشير إلى ما إذا كان ينبغي لـ Intlayer مراقبة التغييرات في ملفات الإعلان عن المحتوى لإعادة توليد القواميس. | `boolean` | `true` | | |
803
+ | `fileExtensions` | امتدادات الملفات للفحص أثناء تجميع القواميس. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | يساعد التخصيص في تجنب التعارضات. |
804
+ | `contentDir` | المسار إلى المجلد حيث يتم الاحتفاظ بملفات تعريف المحتوى (`.content.*`). | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | يُستخدم لمراقبة ملفات المحتوى وإعادة توليد القواميس. |
805
+ | `codeDir` | المسار إلى المجلد حيث يتم الاحتفاظ بالكود، بالنسبة لمجلد المشروع الأساسي. | `string[]` | `['.']` | `['src', '../../ui-library']` | يُستخدم لمراقبة ملفات الكود للتحويل (إزالة الأجزاء غير الضرورية، التحسين). <br/> يمكن أن يؤدي فصله عن `contentDir` إلى تحسين الأداء. |
806
+ | `excludedPath` | المجلدات المستبعدة من فحص المحتوى. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | غير مستخدم حالياً؛ مخطط له في المستقبل. |
807
+ | `formatCommand` | أمر لتنسيق ملفات المحتوى عند كتابتها محلياً بواسطة Intlayer. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | سيتم استبدال `{{file}}` بمسار الملف. <br/> • إذا لم يتم تعريفه، فسيقوم Intlayer بالتحديد تلقائياً (يختبر prettier و biome و eslint). |
806
808
 
807
809
  ---
808
810
 
809
- ### تكوين القاموس (Dictionary Configuration)
810
-
811
- الإعدادات التي تتحكم في عمليات القواميس، بما في ذلك سلوك الملء التلقائي وإنشاء المحتوى.
811
+ ### إعدادات القاموس (Dictionary)
812
812
 
813
- يخدم تكوين القاموس هذا غرضين رئيسيين:
813
+ المعالم التي تتحكم في عمليات القاموس، بما في ذلك سلوك الملء التلقائي وتوليد المحتوى.
814
814
 
815
- 1. **القيم الافتراضية**: تحديد القيم الافتراضية عند إنشاء ملفات إعلان المحتوى.
816
- 2. **سلوك البدائل (Fallback)**: توفير قيم بديلة عندما لا يتم تعريف حقول محددة، مما يسمح لك بتعريف سلوك عمليات القاموس بشكل عالمي.
815
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
816
+ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
817
+ | `fill` | يتحكم في كيفية توليد ملفات مخرجات الملء التلقائي (ترجمة الذكاء الاصطناعي). | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: المسار الافتراضي (نفس ملف المصدر). <br/> • `false`: تعطيل. <br/> • تولد سلسلة القالب/الدالة ملفات حسب اللغة. <br/> • كائن حسب اللغة: كل لغة تقابل قالبها؛ `false` يتجاهل هذه اللغة. <br/> • إدراج `{{locale}}` يفعل التوليد حسب اللغة. <br/> • الـ `fill` على مستوى القاموس دائماً له الأولوية على هذا الإعداد العام. |
818
+ | `description` | يساعد المحرر و CMS على فهم الغرض من القاموس. يُستخدم أيضاً كسياق لتوليد الترجمات باستخدام الذكاء الاصطناعي. | `string` | `undefined` | `'User profile section'` | |
819
+ | `locale` | يحول القاموس إلى صيغة خاصة بلغة محددة. تصبح كل حقل معلن عقدة ترجمة. إذا غاب، يُعتبر القاموس متعدد اللغات. | `LocalesValues` | `undefined` | `'en'` | استخدم هذا إذا كان القاموس مخصصاً للغة واحدة معينة، بدلاً من ترجمات متعددة. |
820
+ | `contentAutoTransformation` | يحول سلاسل المحتوى تلقائياً إلى عقد ذات أنواع (markdown أو HTML أو إدراج). | `boolean` &#124; <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`. <br/> • HTML : `<div>Title</div>` → `html('<div>Title</div>')`. <br/> • إدراج : `Hello {{name}}` → `insert('Hello {{name}}')`. |
821
+ | `location` | يشير إلى مكان تخزين ملفات القاموس وكيفية مزامنتها مع CMS. | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: إدارة محلية فقط. <br/> • `'remote'`: إدارة عن بعد فقط (CMS). <br/> • `'hybrid'`: إدارة محلية وعن بعد معاً. <br/> • `'plugin'` أو سلسلة مخصصة: إدارة بواسطة إضافة أو مصدر مخصص. |
822
+ | `importMode` | يتحكم في طريقة استيراد القواميس. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: استيراد ثابت. <br/> • `'dynamic'`: استيراد ديناميكي عبر Suspense. <br/> • `'fetch'`: جلب عبر Live Sync API؛ التراجع إلى `'dynamic'` عند الفشل. <br/> • يتطلب إضافات `@intlayer/babel` و `@intlayer/swc`. <br/> • يجب الإعلان عن المفاتيح بشكل ثابت. <br/> • يتم تجاهله إذا تم إيقاف `optimize`. <br/> • لا يؤثر على `getIntlayer` أو `getDictionary` إلخ. |
823
+ | `priority` | أولوية القاموس. تفوز القيم الأعلى على القيم الأدنى عند حل التعارضات بين القواميس. | `number` | `undefined` | `1` | |
824
+ | `live` | ملغي — استخدم `importMode: 'fetch'`. كان يشير إلى ما إذا كان ينبغي جلب محتوى القاموس ديناميكياً عبر Live Sync API. | `boolean` | `undefined` | | تم تغيير اسمه إلى `importMode: 'fetch'` في v8.0.0. |
825
+ | `schema` | يتم توليده تلقائياً بواسطة Intlayer للتحقق من صحة JSON schema. | `'https://intlayer.org/schema.json'` | توليد تلقائي | | لا تقم بتحريره يدوياً. |
826
+ | `title` | يساعد في التعرف على القاموس في المحرر و CMS. | `string` | `undefined` | `'User Profile'` | |
827
+ | `tags` | يصنف القواميس ويوفر سياقاً أو تعليمات للمحرر والذكاء الاصطناعي. | `string[]` | `undefined` | `['user', 'profile']` | |
828
+ | `version` | إصدار القاموس البعيد؛ يساعد في تتبع النسخة المستخدمة حالياً. | `string` | `undefined` | `'1.0.0'` | • تتم إدارته في CMS. <br/> • لا تقم بتحريره محلياً. |
817
829
 
818
- لمزيد من المعلومات حول ملفات إعلان المحتوى وكيفية تطبيق قيم التكوين، راجع [توثيق ملفات المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md).
819
-
820
- | الحقل | النوع | الوصف | مثال | ملاحظة |
821
- | --------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
822
- | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | يتحكم في كيفية إنشاء ملفات إخراج الملء التلقائي (الترجمة بالذكاء الاصطناعي). الافتراضي: `true` | انظر المثال أدناه | `true`: المسار الافتراضي (نفس ملف المصدر). `false`: معطل. تنشئ قوالب السلسلة/الوظيفة ملفات لكل لغة. كائن لكل لغة: يتم تعيين كل لغة لنمطها الخاص؛ يؤدي `false` لتخطي تلك اللغة. يؤدي تضمين `{{locale}}` إلى بدء الإنشاء لكل لغة. الـ `fill` على مستوى القاموس له الأولوية دائماً على هذا التكوين العالمي. |
823
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | يتحكم في كيفية استيراد القواميس. الافتراضي: `'static'` | `'dynamic'` | `'static'`: يتم استيراده بشكل ثابت. `'dynamic'`: يتم استيراده بشكل ديناميكي عبر Suspense. `'fetch'`: يتم جلبه ديناميكيًا عبر واجهة برمجة تطبيقات Live Sync. لا يؤثر على `getIntlayer` أو `getDictionary` أو `useDictionary` وما إلى ذلك. |
824
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | مكان تخزين القواميس. الافتراضي: `'local'` | `'remote'` | `'local'`: نظام الملفات. `'remote'`: Intlayer CMS. `'hybrid'`: كلاهما. |
825
- | `contentAutoTransformation` | `boolean` | يحدد ما إذا كان يجب تحويل ملفات المحتوى تلقائيًا (مثل من Markdown إلى HTML). الافتراضي: `false` | `true` | مفيد لمعالجة حقول Markdown عبر @intlayer/markdown. |
826
-
827
- **مثال على `fill`**:
830
+ **مثال لـ `fill`**:
828
831
 
829
832
  ```ts
830
833
  dictionary: {
831
834
  fill: {
832
- en: '/locales/en/{{key}}.content.json',
835
+ en: "/locales/en/{{key}}.content.json",
833
836
  fr: ({ key }) => `/locales/fr/${key}.content.json`,
834
837
  es: false,
835
- }
836
- }
838
+ },
839
+ };
837
840
  ```
838
841
 
839
842
  ---
840
843
 
841
- ### تكوين الذكاء الاصطناعي (AI Configuration)
844
+ ### إعدادات السجل (Log)
842
845
 
843
- يعرف الإعدادات لميزات Intlayer التي تعمل بالذكاء الاصطناعي ، مثل بناء الترجمة.
846
+ المعالم لتخصيص مخرجات سجل Intlayer.
844
847
 
845
- | الحقل | النوع | الوصف | مثال | ملاحظة |
846
- | -------------------- | ---------------------- | ------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------- |
847
- | `provider` | `string` | مزود الذكاء الاصطناعي المراد استخدامه. | `'openai' `'anthropic' `'googlevertex'` | |
848
- | `model` | `string` | نموذج الذكاء الاصطناعي المراد استخدامه. | `'gpt-4o' `'claude-3-5-sonnet-20240620'` | |
849
- | `apiKey` | `string` | مفتاح واجهة برمجة التطبيقات للمزود المختار. | `process.env.OPENAI_API_KEY` | |
850
- | `applicationContext` | `string` | سياق إضافي حول تطبيقك لتحسين دقة ترجمة الذكاء الاصطناعي. | `'منصة تعليمية للأطفال.'` | |
851
- | `baseURL` | `string` | عنوان URL اختياري للمسار الأساسي لمكالمات واجهة برمجة التطبيقات. | | مفيد إذا كنت تستخدم بروكسي أو نشر ذكاء اصطناعي محلي. |
852
- | `dataSerialization` | `'json' &#124; 'toon'` | يحدد كيفية إرسال البيانات إلى الذكاء الاصطناعي. الافتراضي: `'json'` | `'json'` | `'json'`: أكثر قوة ودقة. `'toon'`: يستهلك توكنات أقل ولكنه قد يكون أقل استقرارًا. |
848
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
849
+ | -------- | ----------------------------------- | -------------------------------------------------------------- | ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- |
850
+ | `mode` | يشير إلى وضع السجل. | `'default'` &#124; <br/> `'verbose'` &#124; <br/> `'disabled'` | `'default'` | `'verbose'` | `'verbose'`: يسجل المزيد من المعلومات لتصحيح الأخطاء. <br/> • `'disabled'`: يوقف السجل تماماً. |
851
+ | `prefix` | بادئة لجميع الرسائل في السجل. | `string` | `'[intlayer] '` | `'[my prefix] '` | |
853
852
 
854
853
  ---
855
854
 
856
- ### تكوين البناء (Build Configuration)
855
+ ### إعدادات الذكاء الاصطناعي (AI)
856
+
857
+ الإعدادات التي تتحكم في ميزات الذكاء الاصطناعي في Intlayer، بما في ذلك المزود، والنموذج، ومفتاح واجهة برمجة التطبيقات.
858
+
859
+ هذه الإعدادات اختيارية إذا كنت مسجلاً في [لوحة تحكم Intlayer](https://app.intlayer.org/project) بمفتاح وصول. سيقوم Intlayer تلقائياً بإدارة حل الذكاء الاصطناعي الأكثر كفاءة وملاءمة للتكاليف لاحتياجاتك. استخدام الخيارات الافتراضية يضمن أفضل دعم طويل الأمد حيث يتم تحديث Intlayer باستمرار لاستخدام أحدث النماذج.
860
+
861
+ إذا كنت تفضل استخدام مفتاح واجهة برمجة تطبيقات خاص بك أو نموذج محدد، يمكنك تعريف إعدادات الذكاء الاصطناعي الخاصة بك.
862
+ سيتم استخدام إعدادات الذكاء الاصطناعي هذه عالمياً في بيئة Intlayer الخاصة بك. ستستخدم أوامر CLI هذه الإعدادات افتراضياً لأوامر مثل `fill` ، وكذلك SDK ، والمحرر المرئي ، و CMS. يمكنك تجاوز هذه القيم الافتراضية لحالات استخدام معينة عبر معاملات الأوامر.
863
+
864
+ يدعم Intlayer العديد من مزودي الذكاء الاصطناعي لتحقيق أقصى قدر من المرونة. حالياً، المزودون المدعومون هم:
865
+
866
+ - **OpenAI** (الافتراضي)
867
+ - **Anthropic Claude**
868
+ - **Mistral AI**
869
+ - **DeepSeek**
870
+ - **Google Gemini**
871
+ - **Google AI Studio**
872
+ - **Google Vertex**
873
+ - **Meta Llama**
874
+ - **Ollama**
875
+ - **OpenRouter**
876
+ - **Alibaba Cloud**
877
+ - **Fireworks**
878
+ - **Hugging Face**
879
+ - **Groq**
880
+ - **Amazon Bedrock**
881
+ - **Together.ai**
882
+
883
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
884
+ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
885
+ | `provider` | المزود المستخدم لميزات الذكاء الاصطناعي في Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` | `undefined`| `'anthropic'` | يحتاج المزودون المختلفون إلى مفاتيح واجهة برمجة تطبيقات مختلفة ولهم أسعار مختلفة. |
886
+ | `model` | النموذج المستخدم لميزات الذكاء الاصطناعي. | `string` | لا يوجد | `'gpt-4o-2024-11-20'` | يعتمد النموذج المحدد على المزود. |
887
+ | `temperature` | يتحكم في عشوائية ردود الذكاء الاصطناعي. | `number` | لا يوجد | `0.1` | درجة حرارة أعلى = أكثر إبداعاً وأقل قابلية للتنبؤ. |
888
+ | `apiKey` | مفتاح واجهة برمجة التطبيقات الخاص بك للمزود المختار. | `string` | لا يوجد | `process.env.OPENAI_API_KEY` | يجب الحفاظ على سريته؛ استخدم متغيرات البيئة. |
889
+ | `applicationContext` | سياق إضافي حول تطبيقك لمساعدة الذكاء الاصطناعي في توليد ترجمات أكثر دقة (المجال، الجمهور المستهدف، النبرة، المصطلحات). | `string` | لا يوجد | `'سياق تطبيقي الخاص'` | يمكن استخدامه لإضافة قواعد (مثلاً: `"لا يجب عليك تحويل روابط URL"`). |
890
+ | `baseURL` | الرابط الأساسي لواجهة برمجة تطبيقات الذكاء الاصطناعي. | `string` | لا يوجد | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | يمكن أن يشير إلى نقطة نهاية محلية أو مخصصة لواجهة برمجة تطبيقات الذكاء الاصطناعي. |
891
+ | `dataSerialization` | صيغة تسلسل البيانات لميزات الذكاء الاصطناعي. | `'json'` &#124; <br/> `'toon'` | `undefined`| `'toon'` | • `'json'`: افتراضي، موثوق؛ يستهلك المزيد من الوحدات. <br/> • `'toon'`: وحدات أقل، أقل استقراراً. <br/> • يتم تمرير المعاملات الإضافية إلى النموذج كسياق (جهد التفكير إلخ). |
857
892
 
858
- إعدادات عملية بناء وتحسين Intlayer.
893
+ ---
859
894
 
860
- | الحقل | النوع | الوصف | مثال | ملاحظة |
861
- | -------------- | ------------------------ | ------------------------------------------------------------------------------------------------ | ---- | ------ |
862
- | `mode` | `'auto' &#124; 'manual'` | يحدد ما إذا كان يجب تشغيل Intlayer تلقائيًا أثناء خطوات ما قبل بناء التطبيق. الافتراضي: `'auto'` | | |
863
- | `optimize` | `boolean` | يحدد ما إذا كان يجب تحسين القواميس المجمعة لوقت التشغيل. الافتراضي: `true` في الإنتاج | | |
864
- | `outputFormat` | `('cjs' &#124; 'esm')[]` | تنسيق الإخراج لملفات القاموس المنشأة. الافتراضي: `['cjs', 'esm']` | | |
865
- | `checkTypes` | `boolean` | يحدد ما إذا كان يجب على Intlayer التحقق من الأنواع في الملفات المنشأة. الافتراضي: `false` | | |
895
+ ### إعدادات البناء (Build)
866
896
 
867
- ---
897
+ المعالم التي تتحكم في كيفية قيام Intlayer بتحسين وترجمة تدويل تطبيقك.
898
+
899
+ يتم تطبيق خيارات البناء على إضافات `@intlayer/babel` و `@intlayer/swc`.
868
900
 
869
- ### تكوين النظام (System Configuration)
901
+ > في وضع التطوير، يستخدم Intlayer استيراداً ثابتاً للقواميس لتبسيط عملية التطوير.
870
902
 
871
- هذه الإعدادات مخصصة لحالات الاستخدام المتقدمة والتكوين الداخلي لـ Intlayer.
903
+ > أثناء التحسين، سيقوم Intlayer باستبدال استدعاءات القواميس لتحسين تقسيم الكود (chunking) بحيث تستورد الحزمة الناتجة القواميس المستخدمة فعلياً فقط.
872
904
 
873
- | الحقل | النوع | الوصف | الافتراضي |
874
- | ------------------------- | -------- | ---------------------------- | --------------------------------- |
875
- | `dictionariesDir` | `string` | مجلد القواميس المجمعة. | `'.intlayer/dictionary'` |
876
- | `moduleAugmentationDir` | `string` | مجلد زيادة وحدات TypeScript. | `'.intlayer/types'` |
877
- | `unmergedDictionariesDir` | `string` | مجلد القواميس غير المدمجة. | `'.intlayer/unmerged_dictionary'` |
878
- | `typesDir` | `string` | مجلد الأنواع المنشأة. | `'.intlayer/types'` |
879
- | `mainDir` | `string` | مجلد ملف Intlayer الرئيسي. | `'.intlayer/main'` |
880
- | `configDir` | `string` | مجلد ملفات التكوين المجمعة. | `'.intlayer/config'` |
881
- | `cacheDir` | `string` | مجلد ملفات التخزين المؤقت. | `'.intlayer/cache'` |
905
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
906
+ | ----------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
907
+ | `mode` | يتحكم في وضع البناء. | `'auto'` &#124; <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: يتم تشغيل البناء تلقائياً أثناء بناء التطبيق. <br/> • `'manual'`: يتم تنفيذه فقط عند استدعاء أمر بناء صريح. <br/> • يمكن استخدامه لإيقاف بناء القواميس (مثلاً لتجنب الجري في بيئات Node.js). |
908
+ | `optimize` | يتحكم في ما إذا كان ينبغي إجراء تحسينات البناء. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • إذا لم يتم تعريفه، فسيتم تشغيل التحسين عند بناء إطار العمل (Vite/Next.js). <br/> `true` يفرض التحسين حتى في وضع التطوير. <br/> • `false` يعطله. <br/> • عند تشغيله، يستبدل استدعاءات القواميس لتحسين الـ chunking. <br/> • يتطلب إضافات `@intlayer/babel` و `@intlayer/swc`. |
909
+ | `checkTypes` | يشير إلى ما إذا كان ينبغي للبناء التحقق من أنواع TypeScript وتسجيل الأخطاء. | `boolean` | `false` | | قد يبطئ عملية البناء. |
910
+ | `outputFormat` | يتحكم في صيغة إخراج القواميس. | `('esm' &#124; 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
911
+ | `traversePattern` | الأنماط التي تحدد الملفات التي يتم فحصها أثناء التحسين. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • قيد التحسين على الملفات ذات الصلة لزيادة أداء البناء. <br/> • سيتم تجاهله إذا توقف `optimize`. <br/> • يستخدم أنماط glob. |
882
912
 
883
913
  ---
884
914
 
885
- ### تكوين المترجم (Compiler Configuration)
915
+ ### إعدادات النظام (System)
886
916
 
887
- إعدادات مترجم Intlayer (`intlayer compiler`).
917
+ هذه الإعدادات مخصصة لحالات الاستخدام المتقدمة والإعدادات الداخلية لـ Intlayer.
888
918
 
889
- | الحقل | النوع | الوصف | الافتراضي |
890
- | --------------------- | ------------------------ | -------------------------------------------------------------------- | --------- |
891
- | `enabled` | `boolean` | يحدد ما إذا كان المترجم نشطًا. | `false` |
892
- | `output` | `string &#124; Function` | مسار الإخراج للقواميس المستخرجة. | |
893
- | `saveComponents` | `boolean` | يحدد ما إذا كان يجب استبدال ملفات المصدر الأصلية بالإصدارات المحولة. | `false` |
894
- | `noMetadata` | `boolean` | إذا كان `true` ، فلن يدرج المترجم بيانات وصفية في الملفات المنشأة. | `false` |
895
- | `dictionaryKeyPrefix` | `string` | بادئة مفتاح قاموس اختيارية. | `''` |
919
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
920
+ | ------------------------- | ---------------------------------------------------- | -------- | --------------------------------- | ------ | ---------- |
921
+ | `dictionariesDir` | المجلد للقواميس المحولة برمجياً. | `string` | `'.intlayer/dictionary'` | | |
922
+ | `moduleAugmentationDir` | المجلد لتوسيع وحدات TypeScript. | `string` | `'.intlayer/types'` | | |
923
+ | `unmergedDictionariesDir` | المجلد لتخزين القواميس غير المدمجة. | `string` | `'.intlayer/unmerged_dictionary'` | | |
924
+ | `typesDir` | المجلد للأنواع المولدة. | `string` | `'.intlayer/types'` | | |
925
+ | `mainDir` | المجلد لملف Intlayer الرئيسي. | `string` | `'.intlayer/main'` | | |
926
+ | `configDir` | المجلد لملفات الإعدادات المحولة برمجياً. | `string` | `'.intlayer/config'` | | |
927
+ | `cacheDir` | المجلد لملفات التخزين المؤقت. | `string` | `'.intlayer/cache'` | | |
896
928
 
897
929
  ---
898
930
 
899
- ### تكوين المسجل (Logger Configuration)
931
+ ### إعدادات المترجم (Compiler)
900
932
 
901
- إعدادات لتخصيص إخراج سجل Intlayer.
933
+ الإعدادات التي تتحكم في مترجم Intlayer، الذي يستخرج القواميس مباشرة من مكوناتك.
902
934
 
903
- | الحقل | النوع | الوصف | الافتراضي |
904
- | -------- | ---------------------------------------------- | --------------------- | -------------- |
905
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | وضع تسجيل البيانات. | `'default'` |
906
- | `prefix` | `string` | البادئة لرسائل السجل. | `'[intlayer]'` |
935
+ | الحقل | الوصف | النوع | الافتراضي | مثال | ملاحظة |
936
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
937
+ | `enabled` | يشير إلى ما إذا كان ينبغي تفعيل المترجم لاستخراج القواميس. | `boolean` &#124; <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` يتخطى المترجم أثناء التطوير لبناء أسرع؛ يتم تنفيذه فقط عند أوامر البناء. |
938
+ | `dictionaryKeyPrefix` | بادئة لمفاتيح القواميس المستخرجة. | `string` | `''` | `'my-prefix-'` | تتم إضافتها إلى المفتاح المولد (بناءً على اسم الملف) لتجنب التعارضات. |
939
+ | `saveComponents` | ما إذا كان ينبغي حفظ المكونات بعد تحويلها. | `boolean` | `false` | | • إذا كان `true` ، فسيتم استبدال الملفات الأصلية بنسخها المحولة. <br/> • يمكن إزالة المترجم بعد تشغيله مرة واحدة. |
940
+ | `output` | يحدد المسار لملفات الإخراج. يستبدل `outputDir`. يدعم قوالب المتغيرات: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • يتم حل مسارات `./` بالنسبة لمجلد المكون. <br/> • مسارات `/` بالنسبة للمشروع الأساسي. <br/> • `{{locale}}` يتضمن التوليد حسب اللغة. <br/> • يدعم تمثيل الكائن لكل لغة. |
941
+ | `noMetadata` | إذا كان `true` ، فسيقوم المترجم بحذف بيانات ميتا القاموس (المفتاح، غلاف المحتوى) من المخرجات. | `boolean` | `false` | `false` → `{"key":"my-key","content":{"key":"value"}}` <br/> `true` → `{"key":"value"}` | • مفيد لمخرجات بصيغة i18next أو ICU MessageFormat JSON. <br/> • يعمل جيداً مع إضافة `loadJSON`. |
942
+ | `dictionaryKeyPrefix` | بادئة لمفتاح القاموس | `string` | `''` | | إضافة بادئة اختيارية لمفاتيح القواميس المستخرجة |
907
943
 
908
944
  ---
909
945
 
910
- ### المخططات المخصصة (Custom Schemas)
946
+ ### مخططات مخصصة (Custom Schemas)
911
947
 
912
- | الحقل | النوع | الوصف |
913
- | --------- | --------------------------- | ------------------------------------------------- |
914
- | `schemas` | `Record<string, ZodSchema>` | يسمح لك بتعريف مخططات Zod للتحقق من بنية قواميسك. |
948
+ | الحقل | الوصف | النوع |
949
+ | --------- | ------------------------------------------------------------------------------ | --------------------------- |
950
+ | `schemas` | يسمح لك بتعريف مخططات Zod للتحقق من صحة هيكل قواميسك. | `Record<string, ZodSchema>` |
915
951
 
916
952
  ---
917
953
 
918
- ### المكونات الإضافية (Plugins)
954
+ ### الإضافات (Plugins)
919
955
 
920
- | الحقل | النوع | الوصف |
921
- | --------- | ------------------ | ---------------------------------------------- |
922
- | `plugins` | `IntlayerPlugin[]` | قائمة مكونات Intlayer الإضافية المراد تفعيلها. |
956
+ | الحقل | الوصف | النوع |
957
+ | --------- | ----------------------------------------- | ------------------ |
958
+ | `plugins` | قائمة إضافات Intlayer لإدراجها. | `IntlayerPlugin[]` |