@intlayer/docs 8.4.5 → 8.4.7

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 (56) 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/dist/cjs/generated/docs.entry.cjs +20 -0
  12. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  13. package/dist/esm/generated/docs.entry.mjs +20 -0
  14. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  15. package/dist/types/generated/docs.entry.d.ts +1 -0
  16. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  17. package/docs/ar/intlayer_with_storybook.md +521 -0
  18. package/docs/bn/intlayer_with_hono.md +428 -0
  19. package/docs/de/intlayer_with_storybook.md +521 -0
  20. package/docs/en/configuration.md +160 -508
  21. package/docs/en/intlayer_with_storybook.md +521 -0
  22. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  23. package/docs/es/configuration.md +387 -754
  24. package/docs/es/intlayer_with_storybook.md +521 -0
  25. package/docs/fr/configuration.md +384 -757
  26. package/docs/fr/intlayer_with_storybook.md +521 -0
  27. package/docs/hi/intlayer_with_storybook.md +521 -0
  28. package/docs/id/intlayer_with_storybook.md +521 -0
  29. package/docs/it/intlayer_with_storybook.md +521 -0
  30. package/docs/ja/intlayer_with_storybook.md +521 -0
  31. package/docs/ko/intlayer_with_storybook.md +521 -0
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/intlayer_with_storybook.md +521 -0
  34. package/docs/ru/intlayer_with_storybook.md +521 -0
  35. package/docs/tr/intlayer_with_storybook.md +521 -0
  36. package/docs/uk/intlayer_with_storybook.md +521 -0
  37. package/docs/ur/intlayer_with_hono.md +428 -0
  38. package/docs/vi/intlayer_with_storybook.md +521 -0
  39. package/docs/zh/intlayer_with_storybook.md +521 -0
  40. package/package.json +6 -6
  41. package/src/generated/docs.entry.ts +20 -0
  42. package/docs/ar/configuration.md +0 -1124
  43. package/docs/de/configuration.md +0 -1296
  44. package/docs/en-GB/configuration.md +0 -1123
  45. package/docs/hi/configuration.md +0 -1118
  46. package/docs/id/configuration.md +0 -1235
  47. package/docs/it/configuration.md +0 -1301
  48. package/docs/ja/configuration.md +0 -1121
  49. package/docs/ko/configuration.md +0 -1121
  50. package/docs/pl/configuration.md +0 -1226
  51. package/docs/pt/configuration.md +0 -1293
  52. package/docs/ru/configuration.md +0 -1112
  53. package/docs/tr/configuration.md +0 -1114
  54. package/docs/uk/configuration.md +0 -1241
  55. package/docs/vi/configuration.md +0 -1263
  56. package/docs/zh/configuration.md +0 -1115
@@ -1,1124 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: التهيئة
5
- description: تعلّم كيفية تهيئة Intlayer لتطبيقك. فهم الإعدادات والخيارات المختلفة المتاحة لتخصيص Intlayer حسب احتياجاتك.
6
- keywords:
7
- - التهيئة
8
- - الإعدادات
9
- - التخصيص
10
- - Intlayer
11
- - الخيارات
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history:
17
- - version: 8.3.0
18
- date: 2026-03-11
19
- changes: نقل 'baseDir' من تكوين 'content' إلى تكوين 'system'
20
- - version: 8.2.0
21
- date: 2026-03-09
22
- changes: تحديث خيارات المترجم، وإضافة دعم لـ 'output' و 'noMetadata'
23
- - version: 8.1.7
24
- date: 2026-02-25
25
- changes: تحديث خيارات المترجم
26
- - version: 8.0.6
27
- date: 2026-02-12
28
- changes: إضافة دعم لمقدمي Open Router و Alibaba و Amazon و Google Vertex Bedrock و Fireworks و Groq و Hugging Face و Together.ai
29
- - version: 8.0.5
30
- date: 2026-02-06
31
- changes: إضافة `dataSerialization` إلى تكوين الذكاء الاصطناعي
32
- - version: 8.0.0
33
- date: 2026-01-22
34
- changes: نقل تكوين بناء importMode إلى تكوين القاموس.
35
- - version: 8.0.0
36
- date: 2026-01-18
37
- changes: فصل تكوين النظام عن تكوين المحتوى. نقل المسارات الداخلية إلى خاصية `system`. إضافة `codeDir` لفصل ملفات المحتوى عن تحويل الكود.
38
- - version: 8.0.0
39
- date: 2026-01-18
40
- changes: إضافة خيارات القاموس `location` و `schema`
41
- - version: 7.5.1
42
- date: 2026-01-10
43
- changes: إضافة دعم لتنسيقات ملفات JSON5 و JSONC
44
- - version: 7.5.0
45
- date: 2025-12-17
46
- changes: إضافة خيار `buildMode`
47
- - version: 6.0.0
48
- date: 2025-09-16
49
- changes: إضافة وضع الاستيراد `live`
50
- - version: 6.0.0
51
- date: 2025-09-04
52
- changes: استبدال حقل `hotReload` بـ `liveSync` وإضافة حقلي `liveSyncPort` و `liveSyncURL`
53
- - version: 5.6.1
54
- date: 2025-07-25
55
- changes: استبدال `activateDynamicImport` بخيار `importMode`
56
- - version: 5.6.0
57
- date: 2025-07-13
58
- changes: تغيير الدليل الافتراضي للمحتوى من `['src']` إلى `['.']`
59
- - version: 5.5.11
60
- date: 2025-06-29
61
- changes: إضافة أوامر `docs`
62
- ---
63
-
64
- # وثائق تهيئة Intlayer
65
-
66
- ## نظرة عامة
67
-
68
- تتيح ملفات تهيئة Intlayer تخصيص جوانب مختلفة من الإضافة، مثل التدويل، والوسائط الوسيطة، والتعامل مع المحتوى. يوفر هذا المستند وصفًا تفصيليًا لكل خاصية في التهيئة.
69
-
70
- ---
71
-
72
- ## جدول المحتويات
73
-
74
- <TOC/>
75
-
76
- ---
77
-
78
- ## دعم ملفات التهيئة
79
-
80
- يدعم Intlayer تنسيقات ملفات التهيئة JSON و JS و MJS و TS:
81
-
82
- - `intlayer.config.ts`
83
- - `intlayer.config.js`
84
- - `intlayer.config.json`
85
- - `intlayer.config.json5`
86
- - `intlayer.config.jsonc`
87
- - `intlayer.config.cjs`
88
- - `intlayer.config.mjs`
89
- - `.intlayerrc`
90
-
91
- ---
92
-
93
- ## مثال على ملف التهيئة
94
-
95
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
- import { Locales, type IntlayerConfig } from "intlayer";
97
- import { nextjsRewrite } from "intlayer/routing";
98
- import { z } from "zod";
99
-
100
- /**
101
- * Example Intlayer configuration file showing all available options.
102
- */
103
- const config: IntlayerConfig = {
104
- /**
105
- * Configuration for internationalization settings.
106
- */
107
- internationalization: {
108
- /**
109
- * List of supported locales in the application.
110
- * Default: [Locales.ENGLISH]
111
- */
112
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
113
-
114
- /**
115
- * List of required locales that must be defined in every dictionary.
116
- * If empty, all locales are required in `strict` mode.
117
- * Default: []
118
- */
119
- requiredLocales: [Locales.ENGLISH],
120
-
121
- /**
122
- * Strictness level for internationalized content.
123
- * - "strict": Errors if any declared locale is missing or undeclared.
124
- * - "inclusive": Warnings if a declared locale is missing.
125
- * - "loose": Accepts any existing locale.
126
- * Default: "inclusive"
127
- */
128
- strictMode: "inclusive",
129
-
130
- /**
131
- * Default locale used as a fallback if the requested locale is not found.
132
- * Default: Locales.ENGLISH
133
- */
134
- defaultLocale: Locales.ENGLISH,
135
- },
136
-
137
- /**
138
- * Settings that control dictionary operations and fallback behavior.
139
- */
140
- dictionary: {
141
- /**
142
- * Controls how dictionaries are imported.
143
- * - "static": Statically imported at build time.
144
- * - "dynamic": Dynamically imported using Suspense.
145
- * - "fetch": Fetched dynamically via the live sync API.
146
- * Default: "static"
147
- */
148
- importMode: "static",
149
-
150
- /**
151
- * Strategy for auto-filling missing translations using AI.
152
- * Can be a boolean or a path pattern to store filled content.
153
- * Default: true
154
- */
155
- fill: true,
156
-
157
- /**
158
- * Physical location of the dictionary files.
159
- * - "local": Stored in the local filesystem.
160
- * - "remote": Stored in the Intlayer CMS.
161
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
162
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
163
- * Default: "local"
164
- */
165
- location: "local",
166
-
167
- /**
168
- * Whether to automatically transform content (e.g., Markdown to HTML).
169
- * Default: false
170
- */
171
- contentAutoTransformation: false,
172
- },
173
-
174
- /**
175
- * Routing and middleware configuration.
176
- */
177
- routing: {
178
- /**
179
- * Locale routing strategy.
180
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
181
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
182
- * - "no-prefix": No locale in the URL.
183
- * - "search-params": Use ?locale=...
184
- * Default: "prefix-no-default"
185
- */
186
- mode: "prefix-no-default",
187
-
188
- /**
189
- * Where to store the user's selected locale.
190
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
191
- * Default: ['cookie', 'header']
192
- */
193
- storage: ["cookie", "header"],
194
-
195
- /**
196
- * Base path for the application URLs.
197
- * Default: ""
198
- */
199
- basePath: "",
200
-
201
- /**
202
- * Custom URL rewriting rules for locale-specific paths.
203
- */
204
- rewrite: nextjsRewrite({
205
- "/[locale]/about": {
206
- en: "/[locale]/about",
207
- fr: "/[locale]/a-propos",
208
- },
209
- }),
210
- },
211
-
212
- /**
213
- * Settings for finding and processing content files.
214
- */
215
- content: {
216
- /**
217
- * File extensions to scan for dictionaries.
218
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
219
- */
220
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
221
-
222
- /**
223
- * Directories where .content files are located.
224
- * Default: ["."]
225
- */
226
- contentDir: ["src"],
227
-
228
- /**
229
- * Directories where source code is located.
230
- * Used for build optimization and code transformation.
231
- * Default: ["."]
232
- */
233
- codeDir: ["src"],
234
-
235
- /**
236
- * Patterns to exclude from scanning.
237
- * Default: ['node_modules', '.intlayer', etc.]
238
- */
239
- excludedPath: ["node_modules"],
240
-
241
- /**
242
- * Whether to watch for changes and rebuild dictionaries in development.
243
- * Default: true in development
244
- */
245
- watch: true,
246
-
247
- /**
248
- * Command to format newly created / updated .content files.
249
- */
250
- formatCommand: 'npx prettier --write "{{file}}"',
251
- },
252
-
253
- /**
254
- * Visual Editor configuration.
255
- */
256
- editor: {
257
- /**
258
- * Whether the visual editor is enabled.
259
- * Default: false
260
- */
261
- enabled: true,
262
-
263
- /**
264
- * URL of your application for origin validation.
265
- * Default: ""
266
- */
267
- applicationURL: "http://localhost:3000",
268
-
269
- /**
270
- * Port for the local editor server.
271
- * Default: 8000
272
- */
273
- port: 8000,
274
-
275
- /**
276
- * Public URL for the editor.
277
- * Default: "http://localhost:8000"
278
- */
279
- editorURL: "http://localhost:8000",
280
-
281
- /**
282
- * Intlayer CMS URL.
283
- * Default: "https://app.intlayer.org"
284
- */
285
- cmsURL: "https://app.intlayer.org",
286
-
287
- /**
288
- * Backend API URL.
289
- * Default: "https://back.intlayer.org"
290
- */
291
- backendURL: "https://back.intlayer.org",
292
-
293
- /**
294
- * Whether to enable real-time content synchronization.
295
- * Default: false
296
- */
297
- liveSync: true,
298
- },
299
-
300
- /**
301
- * AI-powered translation and generation settings.
302
- */
303
- ai: {
304
- /**
305
- * AI provider to use.
306
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
307
- * Default: 'openai'
308
- */
309
- provider: "openai",
310
-
311
- /**
312
- * Model to use from the selected provider.
313
- */
314
- model: "gpt-4o",
315
-
316
- /**
317
- * Provider API key.
318
- */
319
- apiKey: process.env.OPENAI_API_KEY,
320
-
321
- /**
322
- * Global context to guide the AI in generating translations.
323
- */
324
- applicationContext: "This is a travel booking application.",
325
-
326
- /**
327
- * Base URL for the AI API.
328
- */
329
- baseURL: "http://localhost:3000",
330
-
331
- /**
332
- * تسلسل البيانات
333
- *
334
- * الخيارات:
335
- * - "json": معيار ، موثوق ؛ يستخدم المزيد من الرموز.
336
- * - "toon": عدد أقل من الرموز المميزة ، أقل اتساقا من JSON.
337
- *
338
- * الافتراضي: "json"
339
- */
340
- dataSerialization: "json",
341
- },
342
-
343
- /**
344
- * Build and optimization settings.
345
- */
346
- build: {
347
- /**
348
- * Build execution mode.
349
- * - "auto": Automatic build during app build.
350
- * - "manual": Requires explicit build command.
351
- * Default: "auto"
352
- */
353
- mode: "auto",
354
-
355
- /**
356
- * Whether to optimize the final bundle by pruning unused dictionaries.
357
- * Default: true in production
358
- */
359
- optimize: true,
360
-
361
- /**
362
- * Output format for generated dictionary files.
363
- * Default: ['esm', 'cjs']
364
- */
365
- outputFormat: ["esm"],
366
-
367
- /**
368
- * Indicates if the build should check TypeScript types.
369
- * Default: false
370
- */
371
- checkTypes: false,
372
- },
373
-
374
- /**
375
- * Logger configuration.
376
- */
377
- log: {
378
- /**
379
- * Logging level.
380
- * - "default": Standard logging.
381
- * - "verbose": Detailed debug logging.
382
- * - "disabled": No logging.
383
- * Default: "default"
384
- */
385
- mode: "default",
386
-
387
- /**
388
- * Prefix for all log messages.
389
- * Default: "[intlayer]"
390
- */
391
- prefix: "[intlayer]",
392
- },
393
-
394
- /**
395
- * System configuration (Advanced use cases)
396
- */
397
- system: {
398
- /**
399
- * Directory for storing localization dictionaries.
400
- */
401
- dictionariesDir: ".intlayer/dictionary",
402
-
403
- /**
404
- * Directory for module augmentation.
405
- */
406
- moduleAugmentationDir: ".intlayer/types",
407
-
408
- /**
409
- * Directory for storing unmerged dictionaries.
410
- */
411
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
412
-
413
- /**
414
- * Directory for storing dictionary types.
415
- */
416
- typesDir: ".intlayer/types",
417
-
418
- /**
419
- * Directory where main application files are stored.
420
- */
421
- mainDir: ".intlayer/main",
422
-
423
- /**
424
- * Directory where the configuration files are stored.
425
- */
426
- configDir: ".intlayer/config",
427
-
428
- /**
429
- * Directory where the cache files are stored.
430
- */
431
- cacheDir: ".intlayer/cache",
432
- },
433
-
434
- /**
435
- * Compiler configuration (Advanced use cases)
436
- */
437
- compiler: {
438
- /**
439
- * يشير إلى ما إذا كان يجب تمكين المجمّع.
440
- *
441
- * - false : تعطيل المجمّع.
442
- * - true : تمكين المجمّع.
443
- * - "build-only" : تخطي المجمّع أثناء التطوير لتسريع أوقات التشغيل.
444
- *
445
- * الافتراضي : false
446
- */
447
- enabled: true,
448
-
449
- /**
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`: مسار دليل المكون.
486
- */
487
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
488
-
489
- /**
490
- * يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
491
- * بهذه الطريقة، يمكن تشغيل المجمّع مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
492
- */
493
- saveComponents: false,
494
-
495
- /**
496
- * أدخل المحتوى فقط في الملف الذي تم إنشاؤه. مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
497
- */
498
- noMetadata: false,
499
-
500
- /**
501
- * بادئة مفتاح القاموس
502
- */
503
- dictionaryKeyPrefix: "", // إضافة بادئة اختيارية لمفاتيح القاموس المستخرجة
504
- },
505
-
506
- /**
507
- * Custom schemas to validate the dictionaries content.
508
- */
509
- schemas: {
510
- "my-schema": z.object({
511
- title: z.string(),
512
- }),
513
- },
514
-
515
- /**
516
- * Plugins configuration.
517
- */
518
- plugins: [],
519
- };
520
-
521
- export default config;
522
- ````
523
-
524
- ## مرجع التهيئة
525
-
526
- تصف الأقسام التالية إعدادات التهيئة المختلفة المتاحة لـ Intlayer.
527
-
528
- ---
529
-
530
- ### تهيئة التدويل
531
-
532
- تعريف الإعدادات المتعلقة بالتدويل، بما في ذلك اللغات المتاحة واللغة الافتراضية للتطبيق.
533
-
534
- #### الخصائص
535
-
536
- - **locales**:
537
- - _النوع_: `string[]`
538
- - _الافتراضي_: `['en']`
539
- - _الوصف_: قائمة اللغات المدعومة في التطبيق.
540
- - _مثال_: `['en', 'fr', 'es']`
541
-
542
- - **requiredLocales**:
543
- - _النوع_: `string[]`
544
- - _الافتراضي_: `[]`
545
- - _الوصف_: قائمة اللغات المطلوبة في التطبيق.
546
- - _مثال_: `[]`
547
- - _ملاحظة_: إذا كانت فارغة، فكل اللغات مطلوبة في وضع `strict`.
548
- - _ملاحظة_: تأكد من أن اللغات المطلوبة معرفة أيضًا في حقل `locales`.
549
- - **strictMode**:
550
- - _النوع_: `string`
551
- - _الافتراضي_: `inclusive`
552
- - _الوصف_: ضمان تنفيذ قوي للمحتوى الدولي باستخدام typescript.
553
- - _ملاحظة_: إذا تم تعيينها إلى "strict"، فإن دالة الترجمة `t` ستتطلب تعريف كل اللغات المعلنة. إذا كانت لغة مفقودة، أو إذا لم يتم إعلان لغة في التهيئة الخاصة بك، فسيتم رمي خطأ.
554
- - _ملاحظة_: إذا تم تعيينها إلى "inclusive"، فإن دالة الترجمة `t` ستتطلب تعريف كل اللغات المعلنة. إذا كانت لغة مفقودة، فستصدر تحذيرًا. لكنها ستقبل إذا كانت اللغة غير معلنة في التهيئة الخاصة بك، لكنها موجودة.
555
- - _ملاحظة_: إذا تم تعيينها إلى "loose"، فإن دالة الترجمة `t` ستقبل أي لغة موجودة.
556
-
557
- - **defaultLocale**:
558
- - _النوع_: `string`
559
- - _الافتراضي_: `'en'`
560
- - _الوصف_: اللغة الافتراضية المستخدمة كخيار احتياطي إذا لم يتم العثور على اللغة المطلوبة.
561
- - _مثال_: `'en'`
562
- - _ملاحظة_: يُستخدم هذا لتحديد اللغة عندما لا يتم تحديد أي لغة في عنوان URL أو ملف تعريف الارتباط أو الرأس.
563
-
564
- ---
565
-
566
- ### تكوين المحرر
567
-
568
- يحدد الإعدادات المتعلقة بالمحرر المتكامل، بما في ذلك منفذ الخادم وحالة التفعيل.
569
-
570
- #### الخصائص
571
-
572
- - **applicationURL**:
573
- - _النوع_: `string`
574
- - _الافتراضي_: `http://localhost:3000`
575
- - _الوصف_: عنوان URL الخاص بالتطبيق. يُستخدم لتقييد أصل المحرر لأسباب أمنية.
576
- - _مثال_:
577
- - `'http://localhost:3000'`
578
- - `'https://example.com'`
579
- - `process.env.INTLAYER_EDITOR_URL`
580
- - _ملاحظة_: عنوان URL الخاص بالتطبيق. يُستخدم لتقييد أصل المحرر لأسباب أمنية. إذا تم تعيينه إلى `'*'`، يكون المحرر متاحًا من أي أصل.
581
-
582
- - **port**:
583
- - _النوع_: `number`
584
- - _الافتراضي_: `8000`
585
- - _الوصف_: المنفذ المستخدم من قبل خادم المحرر المرئي.
586
-
587
- - **editorURL**:
588
- - _النوع_: `string`
589
- - _الافتراضي_: `'http://localhost:8000'`
590
- - _الوصف_: عنوان URL الخاص بخادم المحرر. يُستخدم لتقييد أصل المحرر لأسباب أمنية.
591
- - `'http://localhost:3000'`
592
- - `'https://example.com'`
593
- - `process.env.INTLAYER_EDITOR_URL`
594
- - _ملاحظة_: عنوان URL الخاص بخادم المحرر الذي يتم الوصول إليه من التطبيق. يُستخدم لتقييد الأصول التي يمكنها التفاعل مع التطبيق لأسباب أمنية. إذا تم تعيينه إلى `'*'`، يكون المحرر متاحًا من أي أصل. يجب تعيينه إذا تم تغيير المنفذ، أو إذا كان المحرر مستضافًا على نطاق مختلف.
595
-
596
- - **cmsURL**:
597
- - _النوع_: `string`
598
- - _الافتراضي_: `'https://intlayer.org'`
599
- - _الوصف_: عنوان URL الخاص بنظام إدارة المحتوى Intlayer.
600
- - _مثال_: `'https://intlayer.org'`
601
- - _ملاحظة_: عنوان URL الخاص بنظام إدارة المحتوى Intlayer.
602
-
603
- - **backendURL**:
604
- - _النوع_: `string`
605
- - _الافتراضي_: `https://back.intlayer.org`
606
- - _الوصف_: عنوان URL الخاص بخادم الواجهة الخلفية.
607
- - _مثال_: `http://localhost:4000`
608
-
609
- - **enabled**:
610
- - _النوع_: `boolean`
611
- - _الافتراضي_: `true`
612
- - _الوصف_: يشير إلى ما إذا كان التطبيق يتفاعل مع المحرر المرئي.
613
- - _مثال_: `process.env.NODE_ENV !== 'production'`
614
- - _ملاحظة_: إذا كانت القيمة صحيحة، سيتمكن المحرر من التفاعل مع التطبيق. إذا كانت خاطئة، فلن يتمكن المحرر من التفاعل مع التطبيق. في جميع الأحوال، يمكن تمكين المحرر فقط من خلال المحرر المرئي. تعطيل المحرر لبيئات محددة هو وسيلة لتعزيز الأمان.
615
-
616
- - **clientId**:
617
- - _النوع_: `string` | `undefined`
618
- - _الافتراضي_: `undefined`
619
- - _الوصف_: يسمح كل من clientId و clientSecret لحزم intlayer بالمصادقة مع الخادم الخلفي باستخدام مصادقة oAuth2. يتم استخدام رمز وصول للمصادقة على المستخدم المرتبط بالمشروع. للحصول على رمز وصول، انتقل إلى https://app.intlayer.org/project وأنشئ حسابًا.
620
- - _مثال_: `true`
621
- - _ملاحظة_: مهم: يجب الحفاظ على سرية clientId و clientSecret وعدم مشاركتهما علنًا. يرجى التأكد من الاحتفاظ بهما في مكان آمن، مثل متغيرات البيئة.
622
-
623
- - **clientSecret**:
624
- - _النوع_: `string` | `undefined`
625
- - _الافتراضي_: `undefined`
626
- - _الوصف_: يسمح كل من clientId و clientSecret لحزم intlayer بالمصادقة مع الخادم الخلفي باستخدام مصادقة oAuth2. يتم استخدام رمز وصول للمصادقة على المستخدم المرتبط بالمشروع. للحصول على رمز وصول، انتقل إلى https://app.intlayer.org/project وأنشئ حسابًا.
627
- - _مثال_: `true`
628
- - _ملاحظة_: مهم: يجب الحفاظ على سرية clientId و clientSecret وعدم مشاركتهما علنًا. يرجى التأكد من الاحتفاظ بهما في مكان آمن، مثل متغيرات البيئة.
629
-
630
- - **dictionaryPriorityStrategy**:
631
- - _النوع_: `string`
632
- - _الافتراضي_: `'local_first'`
633
- - _الوصف_: الاستراتيجية لتحديد أولوية القواميس في حالة وجود كل من القواميس المحلية والقواميس البعيدة. إذا تم تعيينها إلى `'distant_first'`، ستعطي التطبيق أولوية للقواميس البعيدة على القواميس المحلية. إذا تم تعيينها إلى `'local_first'`، ستعطي التطبيق أولوية للقواميس المحلية على القواميس البعيدة.
634
- - _مثال_: `'distant_first'`
635
-
636
- - **liveSync**:
637
- - _النوع_: `boolean`
638
- - _الافتراضي_: `false`
639
- - _الوصف_: يشير إلى ما إذا كان يجب على خادم التطبيق إعادة تحميل محتوى التطبيق تلقائيًا عند اكتشاف تغيير في نظام إدارة المحتوى / المحرر المرئي / الخلفية.
640
- - _مثال_: `true`
641
- - _ملاحظة_: على سبيل المثال، عندما يتم إضافة قاموس جديد أو تحديثه، سيقوم التطبيق بتحديث المحتوى ليتم عرضه في الصفحة.
642
- - _ملاحظة_: تحتاج المزامنة الحية إلى تعريض محتوى التطبيق على خادم آخر. هذا يعني أنه قد يؤثر قليلاً على أداء التطبيق. للحد من ذلك، نوصي باستضافة التطبيق وخادم المزامنة الحية على نفس الجهاز. أيضًا، يمكن أن يؤدي الجمع بين المزامنة الحية و`optimize` إلى تطبيق عدد كبير من الطلبات على خادم المزامنة الحية. اعتمادًا على البنية التحتية الخاصة بك، نوصي باختبار كلا الخيارين وتركيبتهما.
643
-
644
- - **liveSyncPort**:
645
- - _النوع_: `number`
646
- - _الافتراضي_: `4000`
647
- - _الوصف_: منفذ خادم المزامنة الحية.
648
- - _مثال_: `4000`
649
- - _ملاحظة_: منفذ خادم المزامنة الحية.
650
-
651
- - **liveSyncURL**:
652
- - _النوع_: `string`
653
- - _الافتراضي_: `'http://localhost:{liveSyncPort}'`
654
- - _الوصف_: عنوان URL الخاص بخادم المزامنة الحية.
655
- - _مثال_: `'https://example.com'`
656
- - _ملاحظة_: يشير إلى localhost بشكل افتراضي ولكن يمكن تغييره إلى أي عنوان URL في حالة وجود خادم مزامنة حية عن بُعد.
657
-
658
- ### تكوين الوسيط
659
-
660
- الإعدادات التي تتحكم في سلوك الوسيط، بما في ذلك كيفية تعامل التطبيق مع ملفات تعريف الارتباط، والرؤوس، والبادئات في عناوين URL لإدارة اللغة.
661
-
662
- #### الخصائص
663
-
664
- - **headerName**:
665
- - _النوع_: `string`
666
- - _الافتراضي_: `'x-intlayer-locale'`
667
- - _الوصف_: اسم رأس HTTP المستخدم لتحديد اللغة.
668
- - _مثال_: `'x-custom-locale'`
669
- - _ملاحظة_: هذا مفيد لتحديد اللغة بناءً على واجهة برمجة التطبيقات (API).
670
-
671
- - **cookieName**:
672
- - _النوع_: `string`
673
- - _الافتراضي_: `'intlayer-locale'`
674
- - _الوصف_: اسم ملف تعريف الارتباط المستخدم لتخزين اللغة.
675
- - _مثال_: `'custom-locale'`
676
- - _ملاحظة_: يُستخدم للحفاظ على اللغة عبر الجلسات.
677
-
678
- - **prefixDefault**:
679
- - _النوع_: `boolean`
680
- - _الافتراضي_: `false`
681
- - _الوصف_: ما إذا كان يجب تضمين اللغة الافتراضية في عنوان URL.
682
- - _مثال_: `true`
683
- - _ملاحظة_:
684
- - إذا كانت القيمة `true` و `defaultLocale = 'en'`: المسار = `/en/dashboard` أو `/fr/dashboard`
685
- - إذا كانت القيمة `false` و `defaultLocale = 'en'`: المسار = `/dashboard` أو `/fr/dashboard`
686
-
687
- - **basePath**:
688
- - _النوع_: `string`
689
- - _الافتراضي_: `''`
690
- - _الوصف_: المسار الأساسي لعناوين URL الخاصة بالتطبيق.
691
- - _مثال_: `'/my-app'`
692
- - _ملاحظة_:
693
- - إذا كان التطبيق مستضافًا على `https://example.com/my-app`
694
- - يكون المسار الأساسي هو `'/my-app'`
695
- - سيكون عنوان URL هو `https://example.com/my-app/en`
696
- - إذا لم يتم تعيين المسار الأساسي، سيكون عنوان URL هو `https://example.com/en`
697
-
698
- - **rewrite**:
699
- - _النوع_: `Record<string, StrictModeLocaleMap<string>>`
700
- - _الافتراضي_: `undefined`
701
- - _الوصف_: قواعد إعادة كتابة URL المخصصة التي تتجاوز وضع التوجيه الافتراضي لمسارات محددة. يسمح بتعريف مسارات محددة حسب اللغة تختلف عن سلوك التوجيه القياسي. يدعم معاملات المسار الديناميكية باستخدام بناء الجملة `[param]`.
702
- - _مثال_:
703
- ```typescript
704
- routing: {
705
- mode: "prefix-no-default", // استراتيجية احتياطية
706
- rewrite: nextjsRewrite({
707
- "/[locale]/about": {
708
- en: "/[locale]/about",
709
- fr: "/[locale]/a-propos",
710
- },
711
- "/[locale]/product/[slug]": {
712
- en: "/[locale]/product/[slug]",
713
- fr: "/[locale]/produit/[slug]",
714
- },
715
- "/[locale]/blog/[category]/[id]": {
716
- en: "/[locale]/blog/[category]/[id]",
717
- fr: "/[locale]/journal/[category]/[id]",
718
- },
719
- }),
720
- }
721
- ```
722
- - _ملاحظة_: قواعد إعادة الكتابة لها الأولوية على سلوك `mode` الافتراضي. إذا تطابق مسار مع قاعدة إعادة كتابة، سيتم استخدام المسار المترجم من تكوين إعادة الكتابة بدلاً من بادئة اللغة القياسية.
723
- - _ملاحظة_: معاملات المسار الديناميكية مدعومة باستخدام ترميز الأقواس (على سبيل المثال، `[slug]`، `[id]`). يتم استخراج قيم المعاملات تلقائيًا من URL وإدراجها في المسار المعاد كتابته.
724
- - _ملاحظة_: يعمل مع تطبيقات Next.js و Vite. ستعيد البرمجية الوسيطة/الوكيل كتابة الطلبات الواردة تلقائيًا لتطابق بنية المسار الداخلية.
725
- - _ملاحظة_: عند إنشاء عناوين URL باستخدام `getLocalizedUrl()`، يتم تطبيق قواعد إعادة الكتابة تلقائيًا إذا تطابقت مع المسار المقدم.
726
- - _Reference_ : لمزيد من المعلومات، راجع [إعادة كتابة عناوين URL المخصصة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/custom_url_rewrites.md).
727
-
728
- - **serverSetCookie**:
729
- - _النوع_: `string`
730
- - _الافتراضي_: `'always'`
731
- - _الوصف_: قاعدة تعيين ملف تعريف الارتباط للغة على الخادم.
732
- - _الخيارات_: `'always'`، `'never'`
733
- - _مثال_: `'never'`
734
- - _ملاحظة_: تتحكم فيما إذا كان يتم تعيين ملف تعريف الارتباط للغة عند كل طلب أو لا يتم تعيينه أبدًا.
735
-
736
- - **noPrefix**:
737
- - _النوع_: `boolean`
738
- - _الافتراضي_: `false`
739
- - _الوصف_: ما إذا كان يجب حذف بادئة اللغة من عناوين URL.
740
- - _مثال_: `true`
741
- - _ملاحظة_:
742
- - إذا كانت القيمة `true`: لا توجد بادئة في عنوان URL
743
- - إذا كانت القيمة `false`: توجد بادئة في عنوان URL
744
- - مثال مع `basePath = '/my-app'`:
745
- - إذا كانت `noPrefix = false`: سيكون عنوان URL هو `https://example.com/my-app/en`
746
- - إذا كانت `noPrefix = true`: سيكون عنوان URL هو `https://example.com`
747
-
748
- ---
749
-
750
- ### تكوين المحتوى
751
-
752
- إعدادات تتعلق بمعالجة المحتوى داخل التطبيق، بما في ذلك أسماء الدلائل، امتدادات الملفات، والتكوينات المشتقة.
753
-
754
- #### الخصائص
755
-
756
- - **autoFill**:
757
- - _النوع_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
758
- - _الافتراضي_: `undefined`
759
- - _الوصف_: يشير إلى كيفية ملء المحتوى تلقائيًا باستخدام الذكاء الاصطناعي. يمكن الإعلان عنه عالميًا في ملف `intlayer.config.ts`.
760
- - _مثال_: true
761
- - _مثال_: `'./{{fileName}}.content.json'`
762
- - _مثال_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
763
- - _ملاحظة_: تكوين الملء التلقائي. يمكن أن يكون:
764
- - boolean: تمكين الملء التلقائي لجميع اللغات
765
- - string: مسار إلى ملف واحد أو قالب مع متغيرات
766
- - object: مسارات ملفات لكل لغة
767
-
768
- - **watch**:
769
- - _النوع_: `boolean`
770
- - _الافتراضي_: `process.env.NODE_ENV === 'development'`
771
- - _الوصف_: يشير إلى ما إذا كان يجب على Intlayer مراقبة التغييرات في ملفات إعلان المحتوى داخل التطبيق لإعادة بناء القواميس ذات الصلة.
772
-
773
- - **fileExtensions**:
774
- - _النوع_: `string[]`
775
- - _الافتراضي_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
776
- - _الوصف_: امتدادات الملفات التي يجب البحث عنها عند بناء القواميس.
777
- - _مثال_: `['.data.ts', '.data.js', '.data.json']`
778
- - _ملاحظة_: تخصيص امتدادات الملفات يمكن أن يساعد في تجنب التعارضات.
779
-
780
- - **dictionaryOutput**:
781
- - _النوع_: `string[]`
782
- - _الافتراضي_: `['intlayer']`
783
- - _الوصف_: نوع إخراج القاموس المستخدم، مثل `'intlayer'` أو `'i18next'`.
784
-
785
- - **contentDir**:
786
- - _النوع_: `string[]`
787
- - _الافتراضي_: `['.']`
788
- - _مثال_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
789
- - _الوصف_: مسار الدليل حيث يتم تخزين ملفات تعريف المحتوى (`.content.*`).
790
- - _ملاحظة_: يُستخدم هذا لمراقبة ملفات المحتوى لإعادة بناء القواميس.
791
-
792
- - **codeDir**:
793
- - _النوع_: `string[]`
794
- - _الافتراضي_: `['.']`
795
- - _مثال_: `['src', '../../ui-library']`
796
- - _الوصف_: مسار الدليل حيث يتم تخزين الكود، بالنسبة إلى الدليل الأساسي.
797
- - _ملاحظة_: يُستخدم هذا لمراقبة ملفات الكود للتحويل (التقليم، التحسين). يمكن أن يؤدي الحفاظ على هذا منفصلاً عن `contentDir` إلى تحسين أداء البناء من خلال تجنب عمليات المسح غير الضرورية لملفات المحتوى.
798
-
799
- - **dictionariesDir**:
800
- - _النوع_: `string`
801
- - _الافتراضي_: `'.intlayer/dictionaries'`
802
- - _الوصف_: مسار الدليل لتخزين النتائج الوسيطة أو الناتجة.
803
-
804
- - **moduleAugmentationDir**:
805
- - _النوع_: `string`
806
- - _الافتراضي_: `'.intlayer/types'`
807
- - _الوصف_: دليل لتوسيع الوحدات، مما يسمح بتحسين اقتراحات IDE وفحص الأنواع.
808
- - _مثال_: `'intlayer-types'`
809
- - _ملاحظة_: تأكد من تضمين هذا في `tsconfig.json`.
810
-
811
- - **unmergedDictionariesDir**:
812
- - _النوع_: `string`
813
- - _الافتراضي_: `'.intlayer/unmerged_dictionary'`
814
- - _الوصف_: الدليل لتخزين القواميس غير المدمجة.
815
- - _مثال_: `'translations'`
816
-
817
- - **dictionariesDir**:
818
- - _النوع_: `string`
819
- - _الافتراضي_: `'.intlayer/dictionary'`
820
- - _الوصف_: الدليل لتخزين قواميس التوطين.
821
- - _مثال_: `'translations'`
822
-
823
- - **i18nextResourcesDir**:
824
- - _النوع_: `string`
825
- - _الافتراضي_: `'i18next_dictionary'`
826
- - _الوصف_: الدليل لتخزين قواميس i18n.
827
- - _مثال_: `'translations'`
828
- - _ملاحظة_: تأكد من تكوين هذا الدليل لنوع الإخراج i18next.
829
-
830
- - **typesDir**:
831
- - _النوع_: `string`
832
- - _الافتراضي_: `'types'`
833
- - _الوصف_: الدليل لتخزين أنواع القواميس.
834
- - _مثال_: `'intlayer-types'`
835
-
836
- - **mainDir**:
837
- - _النوع_: `string`
838
- - _الافتراضي_: `'main'`
839
- - _الوصف_: الدليل الذي تُخزن فيه ملفات التطبيق الرئيسية.
840
- - _مثال_: `'intlayer-main'`
841
-
842
- - **excludedPath**:
843
- - _النوع_: `string[]`
844
- - _الافتراضي_: `['node_modules']`
845
- - _الوصف_: الأدلة المستبعدة من البحث في المحتوى.
846
- - _ملاحظة_: هذا الإعداد غير مستخدم حالياً، لكنه مخطط لتطبيقه في المستقبل.
847
-
848
- ---
849
-
850
- ### تكوين النظام
851
-
852
- الإعدادات المتعلقة بالمسارات الداخلية ونتائج الإخراج لـ Intlayer. عادة ما تكون هذه الإعدادات داخلية ولا يجب تعديلها من قبل المستخدم.
853
-
854
- #### الخصائص
855
-
856
- - **baseDir**:
857
- - _النوع_: `string`
858
- - _الافتراضي_: `process.cwd()`
859
- - _الوصف_: الدليل الأساسي للمشروع.
860
- - _مثال_: `'/path/to/project'`
861
- - _ملاحظة_: يُستخدم هذا لحل جميع الدلائل المتعلقة بـ Intlayer.
862
-
863
- ### تكوين القاموس
864
-
865
- الإعدادات التي تتحكم في عمليات القاموس، بما في ذلك سلوك التعبئة التلقائية وإنشاء المحتوى.
866
-
867
- يخدم تكوين القاموس هذا غرضين رئيسيين:
868
-
869
- 1. **القيم الافتراضية**: تحديد القيم الافتراضية عند إنشاء ملفات إعلان المحتوى
870
- 2. **سلوك الاحتياطي**: توفير قيم احتياطية عندما لا تكون الحقول المحددة معرّفة، مما يسمح لك بتعريف سلوك عمليات القاموس بشكل عام
871
-
872
- لمزيد من المعلومات حول ملفات إعلان المحتوى وكيفية تطبيق قيم التكوين، راجع [وثائق ملف المحتوى](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/content_file.md).
873
-
874
- #### الخصائص
875
-
876
- - **fill**
877
- - **description**
878
- - **locale**
879
- - **location**
880
- - **importMode**:
881
- - _ملاحظة_: **Deprecated**: Use `dictionary.importMode` instead.
882
- - _النوع_: `'static' | 'dynamic' | 'fetch'`
883
- - _الافتراضي_: `'static'`
884
- - _الوصف_: Controls how dictionaries are imported.
885
- - _مثال_: `'dynamic'`
886
- - **priority**
887
- - **live**
888
- - **schema**
889
- - **title**
890
- - **tags**
891
- - **version**
892
-
893
- ---
894
-
895
- ### إعدادات المسجل (Logger)
896
-
897
- الإعدادات التي تتحكم في المسجل، بما في ذلك البادئة التي تُستخدم.
898
-
899
- #### الخصائص
900
-
901
- - **mode**:
902
- - _النوع_: `string`
903
- - _الافتراضي_: `default`
904
- - _الوصف_: يشير إلى وضع المسجل.
905
- - _الخيارات_: `default`، `verbose`، `disabled`
906
- - _مثال_: `default`
907
- - _ملاحظة_: وضع المسجل. الوضع المفصل (verbose) يسجل معلومات أكثر، ويمكن استخدامه لأغراض التصحيح. الوضع المعطل (disabled) يعطل المسجل.
908
-
909
- - **prefix**:
910
- - _النوع_: `string`
911
- - _الافتراضي_: `'[intlayer] '`
912
- - _الوصف_: بادئة المسجل.
913
- - _مثال_: `'[my custom prefix] '`
914
- - _ملاحظة_: بادئة المسجل.
915
-
916
- ### تكوين الذكاء الاصطناعي
917
-
918
- الإعدادات التي تتحكم في ميزات الذكاء الاصطناعي في Intlayer، بما في ذلك المزود، النموذج، ومفتاح API.
919
-
920
- هذا التكوين اختياري إذا كنت مسجلاً في [لوحة تحكم Intlayer](https://app.intlayer.org/project) باستخدام مفتاح وصول. ستدير Intlayer تلقائيًا الحل الأكثر كفاءة وفعالية من حيث التكلفة لاحتياجاتك في الذكاء الاصطناعي. يضمن استخدام الخيارات الافتراضية صيانة أفضل على المدى الطويل حيث تقوم Intlayer بالتحديث المستمر لاستخدام النماذج الأكثر ملاءمة.
921
-
922
- إذا كنت تفضل استخدام مفتاح API الخاص بك أو نموذج معين، يمكنك تعريف تكوين الذكاء الاصطناعي المخصص الخاص بك.
923
- سيتم استخدام تكوين الذكاء الاصطناعي هذا على مستوى بيئة Intlayer الخاصة بك بشكل عام. ستستخدم أوامر CLI هذه الإعدادات كقيم افتراضية للأوامر (مثل `fill`)، وكذلك SDK، والمحرر المرئي، ونظام إدارة المحتوى (CMS). يمكنك تجاوز هذه القيم الافتراضية لحالات استخدام محددة باستخدام معلمات الأوامر.
924
-
925
- يدعم Intlayer عدة مزودي ذكاء اصطناعي لزيادة المرونة والاختيار. المزودون المدعومون حاليًا هم:
926
-
927
- - **OpenAI** (الافتراضي)
928
- - **Anthropic Claude**
929
- - **Mistral AI**
930
- - **DeepSeek**
931
- - **Google Gemini**
932
- - **Meta Llama**
933
- - **Ollama**
934
- - **OpenRouter**
935
- - **Alibaba Cloud**
936
- - **Fireworks**
937
- - **Hugging Face**
938
- - **Groq**
939
- - **Amazon Bedrock**
940
- - **Google AI Studio**
941
- - **Google Vertex**
942
- - **Together.ai**
943
- - **ollama**
944
-
945
- #### الخصائص
946
-
947
- - **provider**:
948
- - _النوع_: `string`
949
- - _الافتراضي_: `'openai'`
950
- - _الوصف_: المزود المستخدم لميزات الذكاء الاصطناعي في Intlayer.
951
- - _الخيارات_:`'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
952
- - _مثال_: `'anthropic'`
953
- - _ملاحظة_: قد تتطلب مزودات مختلفة مفاتيح API مختلفة ولها نماذج تسعير مختلفة.
954
-
955
- - **model**:
956
- - _النوع_: `string`
957
- - _الافتراضي_: لا شيء
958
- - _الوصف_: النموذج المستخدم لميزات الذكاء الاصطناعي في Intlayer.
959
- - _مثال_: `'gpt-4o-2024-11-20'`
960
- - _ملاحظة_: يختلف النموذج المحدد المستخدم حسب المزود.
961
-
962
- - **temperature**:
963
- - _النوع_: `number`
964
- - _الافتراضي_: لا شيء
965
- - _الوصف_: تتحكم درجة الحرارة في عشوائية استجابات الذكاء الاصطناعي.
966
- - _مثال_: `0.1`
967
- - _ملاحظة_: درجة حرارة أعلى تجعل الذكاء الاصطناعي أكثر إبداعًا وأقل قابلية للتنبؤ.
968
-
969
- - **apiKey**:
970
- - _النوع_: `string`
971
- - _الافتراضي_: لا شيء
972
- - _الوصف_: مفتاح API الخاص بك للمزود المحدد.
973
- - _مثال_: `process.env.OPENAI_API_KEY`
974
- - _ملاحظة_: مهم: يجب الحفاظ على سرية مفاتيح API وعدم مشاركتها علنًا. يرجى التأكد من الاحتفاظ بها في مكان آمن، مثل متغيرات البيئة.
975
-
976
- - **applicationContext**:
977
- - _النوع_: `string`
978
- - _الافتراضي_: لا شيء
979
- - _الوصف_: يوفر سياقًا إضافيًا حول تطبيقك لنموذج الذكاء الاصطناعي، مما يساعده على توليد ترجمات أكثر دقة وملاءمة للسياق. يمكن أن يشمل ذلك معلومات حول مجال تطبيقك، الجمهور المستهدف، النغمة، أو المصطلحات الخاصة.
980
-
981
- - **baseURL**:
982
- - _النوع_: `string`
983
- - _الافتراضي_: لا شيء
984
- - _الوصف_: عنوان URL الأساسي لواجهة برمجة تطبيقات الذكاء الاصطناعي.
985
- - _مثال_: `'https://api.openai.com/v1'`
986
- - _ملاحظة_: يمكن استخدامه للإشارة إلى نقطة نهاية واجهة برمجة تطبيقات الذكاء الاصطناعي المحلية أو المخصصة.
987
-
988
- - **dataSerialization**:
989
- - _النوع_: `'json' | 'toon'`
990
- - _الافتراضي_: `'json'`
991
- - _الوصف_: تنسيق تسلسل البيانات لاستخدامه في ميزات الذكاء الاصطناعي لـ Intlayer.
992
- - _مثال_: `'toon'`
993
- - _ملاحظة_: `json`: قياسي وموثوق؛ يستهلك رموزًا أكثر. `toon`: رموز أقل، ولكنه أقل اتساقًا من JSON.
994
-
995
- ### إعدادات البناء
996
-
997
- الإعدادات التي تتحكم في كيفية تحسين Intlayer وبناء التدويل في تطبيقك.
998
-
999
- تنطبق خيارات البناء على الإضافات `@intlayer/babel` و `@intlayer/swc`.
1000
-
1001
- > في وضع التطوير، يستخدم Intlayer الاستيراد الثابت للقواميس لتبسيط تجربة التطوير.
1002
-
1003
- > عند التهيئة للتحسين، سيقوم Intlayer باستبدال استدعاءات القواميس لتحسين تقسيم الحزم، بحيث يقوم الحزمة النهائية باستيراد القواميس التي يتم استخدامها فقط.
1004
-
1005
- #### الخصائص
1006
-
1007
- - **mode**:
1008
- - _النوع_: `'auto' | 'manual'`
1009
- - _الافتراضي_: `'auto'`
1010
- - _الوصف_: يتحكم في وضع البناء.
1011
- - _المثال_: `'manual'`
1012
- - _ملاحظة_: إذا كان 'auto'، سيتم تفعيل البناء تلقائيًا عند بناء التطبيق.
1013
- - _ملاحظة_: إذا كان 'manual'، سيتم تعيين البناء فقط عند تنفيذ أمر البناء.
1014
- - _ملاحظة_: يمكن استخدامه لتعطيل بناء القواميس، على سبيل المثال عندما يجب تجنب التنفيذ في بيئة Node.js.
1015
-
1016
- - **checkTypes**:
1017
- - _النوع_: `boolean`
1018
- - _الافتراضي_: `false`
1019
- - _الوصف_: يشير إلى ما إذا كان البناء يجب أن يتحقق من أنواع TypeScript ويسجل الأخطاء.
1020
- - _ملاحظة_: هذا يمكن أن يبطئ عملية البناء.
1021
-
1022
- - **optimize**:
1023
- - _النوع_: `boolean`
1024
- - _الافتراضي_: `process.env.NODE_ENV === 'production'`
1025
- - _الوصف_: يتحكم فيما إذا كان يجب تحسين عملية البناء.
1026
- - _المثال_: `true`
1027
- - _ملاحظة_: عند التفعيل، سيقوم Intlayer باستبدال جميع استدعاءات القواميس لتحسين تقسيم الحزم. بهذه الطريقة، ستقوم الحزمة النهائية باستيراد القواميس المستخدمة فقط. ستبقى جميع الاستيرادات استيرادًا ثابتًا لتجنب المعالجة غير المتزامنة عند تحميل القواميس.
1028
- - _ملاحظة_: سيقوم Intlayer باستبدال جميع استدعاءات `useIntlayer` بالنمط المحدد بواسطة خيار `importMode` و`getIntlayer` بـ `getDictionary`.
1029
- - _ملاحظة_: يعتمد هذا الخيار على الإضافات `@intlayer/babel` و `@intlayer/swc`.
1030
- - _ملاحظة_: تأكد من إعلان جميع المفاتيح بشكل ثابت في استدعاءات `useIntlayer`، على سبيل المثال `useIntlayer('navbar')`.
1031
-
1032
- - **outputFormat**:
1033
- - _النوع_: `'esm' | 'cjs'`
1034
- - _الافتراضي_: `'esm'`
1035
- - _الوصف_: يتحكم في تنسيق إخراج القواميس.
1036
- - _المثال_: `'cjs'`
1037
- - _ملاحظة_: تنسيق إخراج القواميس.
1038
-
1039
- - **traversePattern**:
1040
- - _النوع_: `string[]`
1041
- - _الافتراضي_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1042
- - _الوصف_: أنماط تحدد الملفات التي يجب استعراضها أثناء التحسين.
1043
- - _مثال_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1044
- - _ملاحظة_: استخدم هذا لتحديد التحسين لملفات الكود ذات الصلة وتحسين أداء البناء.
1045
- - _ملاحظة_: سيتم تجاهل هذا الخيار إذا تم تعطيل `optimize`.
1046
- - _ملاحظة_: استخدم نمط glob.
1047
-
1048
- ---
1049
-
1050
- ### تكوين المترجم
1051
-
1052
- الإعدادات التي تتحكم في مترجم Intlayer، الذي يستخرج القواميس مباشرة من مكوناتك.
1053
-
1054
- #### الخصائص
1055
-
1056
- - **enabled**:
1057
- - _النوع_: `boolean | 'build-only'`
1058
- - _الافتراضي_: `true`
1059
- - _الوصف_: يشير إلى ما إذا كان يجب تمكين المترجم لاستخراج القواميس.
1060
- - _المثال_: `'build-only'`
1061
- - _ملاحظة_: تعيينه إلى `'build-only'` سيؤدي إلى تخطي المترجم أثناء وضع التطوير لتسريع أوقات البناء. سيعمل فقط مع أوامر البناء.
1062
-
1063
- - **dictionaryKeyPrefix**:
1064
- - _النوع_: `string`
1065
- - _الافتراضي_: `''`
1066
- - _الوصف_: بادئة لمفاتيح القاموس المستخرجة.
1067
- - _المثال_: `'my-key-'`
1068
- - _ملاحظة_: عند استخراج القواميس، يتم إنشاء المفتاح بناءً على اسم الملف. يتم إضافة هذه البادئة إلى المفتاح الذي تم إنشاؤه لمنع التضارب.
1069
-
1070
- - **saveComponents**:
1071
- - _النوع_: `boolean`
1072
- - _الافتراضي_: `false`
1073
- - _الوصف_: يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها.
1074
- - _ملاحظة_: إذا كان صحيحًا، سيقوم المترجم باستبدال الملفات الأصلية بالملفات المحولة. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته.
1075
-
1076
- - **transformPattern**:
1077
- - _النوع_: `string | string[]`
1078
- - _الافتراضي_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
1079
- - _الوصف_: الأنماط التي تحدد الملفات التي يجب استعراضها أثناء التحسين.
1080
- - _المثال_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
1081
- - _ملاحظة_: استخدم هذا لتحديد التحسين لملفات الكود ذات الصلة وتحسين أداء البناء.
1082
-
1083
- - **excludePattern**:
1084
- - _النوع_: `string | string[]`
1085
- - _الافتراضي_: `['**/node_modules/**']`
1086
- - _الوصف_: الأنماط التي تحدد الملفات التي يجب استبعادها أثناء التحسين.
1087
- - _المثال_: `['**/node_modules/**', '!**/node_modules/react/**']`
1088
-
1089
- - **output**:
1090
- - _النوع_: `FilePathPattern`
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\``
1103
-
1104
- - **noMetadata**:
1105
- - _النوع_: `boolean`
1106
- - _الافتراضي_: `false`
1107
- - _الوصف_: يشير إلى ما إذا كان سيتم حفظ البيانات الوصفية في الملف. إذا كان صحيحا، فلن يحفظ المجمّع البيانات الوصفية للقواميس (المفتاح، غلاف المحتوى). مفيد لمخرجات JSON i18next أو ICU MessageFormat لكل لغة.
1108
- - _ملاحظة_: مفيد إذا تم استخدامه مع إضافة `loadJSON`.
1109
- - _مثال_:
1110
- إذا كان `true`:
1111
- ```json
1112
- {
1113
- "key": "value"
1114
- }
1115
- ```
1116
- إذا كان `false`:
1117
- ```json
1118
- {
1119
- "key": "value",
1120
- "content": {
1121
- "key": "value"
1122
- }
1123
- }
1124
- ```