@intlayer/docs 6.0.1 → 6.0.2-canary.0

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 (104) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs +6 -5
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/blog.entry.cjs +318 -1863
  5. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  6. package/dist/cjs/generated/docs.entry.cjs +1317 -6282
  7. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  8. package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  10. package/dist/cjs/generated/legal.entry.cjs +43 -84
  11. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  12. package/dist/esm/blog.mjs.map +1 -1
  13. package/dist/esm/common.mjs +2 -5
  14. package/dist/esm/common.mjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +318 -1863
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +1317 -6282
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +43 -84
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/types/blog.d.ts +1 -1
  24. package/dist/types/blog.d.ts.map +1 -1
  25. package/dist/types/common.d.ts +1 -1
  26. package/dist/types/common.d.ts.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -1
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +2 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
  32. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  33. package/dist/types/generated/legal.entry.d.ts +1 -1
  34. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  35. package/docs/ar/intlayer_CMS.md +261 -85
  36. package/docs/ar/releases/v6.md +273 -0
  37. package/docs/ar/roadmap.md +1 -3
  38. package/docs/ar/vs_code_extension.md +94 -63
  39. package/docs/de/intlayer_CMS.md +247 -65
  40. package/docs/de/releases/v6.md +298 -0
  41. package/docs/de/roadmap.md +1 -3
  42. package/docs/de/vs_code_extension.md +89 -58
  43. package/docs/en/configuration.md +9 -2
  44. package/docs/en/intlayer_CMS.md +205 -23
  45. package/docs/en/intlayer_cli.md +4 -4
  46. package/docs/en/intlayer_visual_editor.md +7 -6
  47. package/docs/en/intlayer_with_nextjs_14.md +17 -1
  48. package/docs/en/intlayer_with_nextjs_15.md +17 -1
  49. package/docs/en/releases/v6.md +268 -0
  50. package/docs/en/roadmap.md +1 -3
  51. package/docs/en/vs_code_extension.md +79 -49
  52. package/docs/en-GB/intlayer_CMS.md +216 -52
  53. package/docs/en-GB/releases/v6.md +297 -0
  54. package/docs/en-GB/roadmap.md +1 -3
  55. package/docs/en-GB/vs_code_extension.md +79 -48
  56. package/docs/es/intlayer_CMS.md +257 -84
  57. package/docs/es/releases/v6.md +274 -0
  58. package/docs/es/roadmap.md +1 -3
  59. package/docs/es/vs_code_extension.md +90 -60
  60. package/docs/fr/intlayer_CMS.md +250 -68
  61. package/docs/fr/releases/v6.md +274 -0
  62. package/docs/fr/roadmap.md +1 -3
  63. package/docs/fr/vs_code_extension.md +94 -63
  64. package/docs/hi/intlayer_CMS.md +253 -77
  65. package/docs/hi/releases/v6.md +273 -0
  66. package/docs/hi/roadmap.md +1 -3
  67. package/docs/hi/vs_code_extension.md +92 -61
  68. package/docs/it/intlayer_CMS.md +251 -73
  69. package/docs/it/releases/v6.md +273 -0
  70. package/docs/it/roadmap.md +1 -3
  71. package/docs/it/vs_code_extension.md +94 -63
  72. package/docs/ja/intlayer_CMS.md +282 -97
  73. package/docs/ja/releases/v6.md +273 -0
  74. package/docs/ja/roadmap.md +1 -3
  75. package/docs/ja/vs_code_extension.md +99 -68
  76. package/docs/ko/intlayer_CMS.md +267 -93
  77. package/docs/ko/releases/v6.md +273 -0
  78. package/docs/ko/roadmap.md +1 -3
  79. package/docs/ko/vs_code_extension.md +88 -57
  80. package/docs/pt/intlayer_CMS.md +261 -83
  81. package/docs/pt/releases/v6.md +273 -0
  82. package/docs/pt/roadmap.md +1 -3
  83. package/docs/pt/vs_code_extension.md +89 -58
  84. package/docs/ru/intlayer_CMS.md +240 -65
  85. package/docs/ru/releases/v6.md +274 -0
  86. package/docs/ru/roadmap.md +1 -1
  87. package/docs/ru/vs_code_extension.md +83 -52
  88. package/docs/tr/intlayer_CMS.md +278 -96
  89. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  90. package/docs/tr/intlayer_with_tanstack.md +3 -0
  91. package/docs/tr/releases/v6.md +273 -0
  92. package/docs/tr/roadmap.md +1 -1
  93. package/docs/tr/vs_code_extension.md +100 -71
  94. package/docs/zh/intlayer_CMS.md +257 -76
  95. package/docs/zh/releases/v6.md +273 -0
  96. package/docs/zh/roadmap.md +1 -3
  97. package/docs/zh/vs_code_extension.md +99 -68
  98. package/package.json +9 -8
  99. package/src/blog.ts +1 -1
  100. package/src/common.ts +2 -6
  101. package/src/generated/blog.entry.ts +323 -1864
  102. package/src/generated/docs.entry.ts +1317 -6278
  103. package/src/generated/frequentQuestions.entry.ts +202 -1183
  104. package/src/generated/legal.entry.ts +48 -85
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  createdAt: 2025-08-23
3
3
  updatedAt: 2025-08-23
4
- title: نظام إدارة المحتوى Intlayer | استخرج محتواك إلى نظام إدارة المحتوى Intlayer
5
- description: استخرج محتواك إلى نظام إدارة المحتوى Intlayer لتفويض إدارة المحتوى لفريقك.
4
+ title: نظام إدارة المحتوى Intlayer | إخراج محتواك إلى نظام إدارة المحتوى Intlayer
5
+ description: إخراج محتواك إلى نظام إدارة المحتوى Intlayer لتفويض إدارة المحتوى إلى فريقك.
6
6
  keywords:
7
7
  - نظام إدارة المحتوى
8
- - محرر مرئي
9
- - تدويل
10
- - توثيق
8
+ - محرر بصري
9
+ - التدويل
10
+ - التوثيق
11
11
  - Intlayer
12
12
  - Next.js
13
- - JavaScript
13
+ - جافا سكريبت
14
14
  - React
15
15
  slugs:
16
16
  - doc
@@ -19,29 +19,29 @@ slugs:
19
19
  youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
20
20
  ---
21
21
 
22
- # توثيق نظام إدارة المحتوى (CMS) الخاص بـ Intlayer
22
+ # توثيق نظام إدارة المحتوى Intlayer (CMS)
23
23
 
24
- <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
24
+ <iframe title="المحرر البصري + نظام إدارة المحتوى لتطبيق الويب الخاص بك: شرح Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
25
25
 
26
- نظام إدارة المحتوى Intlayer هو تطبيق يتيح لك فصل محتوى مشروع Intlayer الخاص بك.
26
+ نظام إدارة المحتوى Intlayer هو تطبيق يسمح لك بإخراج محتواك من مشروع Intlayer.
27
27
 
28
- لهذا الغرض، يقدم Intlayer مفهوم "القواميس البعيدة".
28
+ لهذا، قدم Intlayer مفهوم "القواميس البعيدة".
29
29
 
30
30
  ![واجهة نظام إدارة المحتوى Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/assets/CMS.png)
31
31
 
32
32
  ## فهم القواميس البعيدة
33
33
 
34
- يقوم Intlayer بالتمييز بين القواميس "المحلية" و"البعيدة".
34
+ يفرق Intlayer بين القواميس "المحلية" و"البعيدة".
35
35
 
36
- - القاموس "المحلي" هو قاموس يتم الإعلان عنه في مشروع Intlayer الخاص بك، مثل ملف الإعلان عن زر أو شريط التنقل الخاص بك. لا معنى لفصل المحتوى في هذه الحالة لأن هذا المحتوى ليس من المفترض تغييره بشكل متكرر.
36
+ - القاموس "المحلي" هو قاموس يتم إعلانه داخل مشروع Intlayer الخاص بك. مثل ملف إعلان زر، أو شريط التنقل الخاص بك. إخراج المحتوى الخاص بك لا معنى له في هذه الحالة لأن هذا المحتوى من المفترض ألا يتغير كثيرًا.
37
37
 
38
- - القاموس "البعيد" هو قاموس يتم إدارته من خلال نظام إدارة المحتوى Intlayer. يمكن أن يكون مفيدًا للسماح لفريقك بإدارة المحتوى مباشرةً على موقعك، كما يهدف إلى استخدام ميزات اختبار A/B وتحسين محركات البحث التلقائي.
38
+ - القاموس "البعيد" هو قاموس يتم إدارته من خلال نظام إدارة المحتوى Intlayer CMS. قد يكون مفيدًا للسماح لفريقك بإدارة المحتوى مباشرة على موقعك الإلكتروني، ويهدف أيضًا إلى استخدام ميزات اختبار A/B والتحسين التلقائي لمحركات البحث (SEO).
39
39
 
40
- ## المحرر البصري مقابل نظام إدارة المحتوى
40
+ ## المحرر المرئي مقابل نظام إدارة المحتوى (CMS)
41
41
 
42
- [المحرر البصري Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md) هو أداة تتيح لك إدارة المحتوى في محرر بصري للقواميس المحلية. بمجرد إجراء تغيير، سيتم استبدال المحتوى في قاعدة الكود. هذا يعني أن التطبيق سيتم إعادة بنائه وستتم إعادة تحميل الصفحة لعرض المحتوى الجديد.
42
+ محرر [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_visual_editor.md) هو أداة تتيح لك إدارة المحتوى الخاص بك في محرر مرئي للقواميس المحلية. بمجرد إجراء تغيير، سيتم استبدال المحتوى في قاعدة الشيفرة. هذا يعني أن التطبيق سيتم إعادة بنائه وستتم إعادة تحميل الصفحة لعرض المحتوى الجديد.
43
43
 
44
- على النقيض من ذلك، فإن نظام إدارة المحتوى Intlayer هو أداة تتيح لك إدارة المحتوى في محرر بصري للقواميس البعيدة. بمجرد إجراء تغيير، لن يؤثر المحتوى على قاعدة الكود. وسيعرض الموقع تلقائيًا المحتوى الذي تم تغييره.
44
+ على النقيض من ذلك، فإن نظام إدارة المحتوى Intlayer CMS هو أداة تتيح لك إدارة المحتوى الخاص بك في محرر مرئي للقواميس البعيدة. بمجرد إجراء تغيير، لن يؤثر المحتوى على قاعدة الشيفرة الخاصة بك. وسيعرض الموقع تلقائيًا المحتوى المُعدل.
45
45
 
46
46
  ## التكامل
47
47
 
@@ -49,8 +49,6 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
49
49
 
50
50
  ### التكامل مع Next.js
51
51
 
52
- ### التكامل مع Next.js
53
-
54
52
  للتكامل مع Next.js، راجع [دليل الإعداد](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_nextjs_15.md).
55
53
 
56
54
  ### التكامل مع Create React App
@@ -61,30 +59,30 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
61
59
 
62
60
  للتكامل مع Vite + React، راجع [دليل الإعداد](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_vite+react.md).
63
61
 
64
- ## التكوين
62
+ ## التهيئة
65
63
 
66
- في ملف تكوين Intlayer الخاص بك، يمكنك تخصيص إعدادات نظام إدارة المحتوى:
64
+ في ملف تهيئة Intlayer الخاص بك، يمكنك تخصيص إعدادات نظام إدارة المحتوى:
67
65
 
68
66
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
69
67
  import type { IntlayerConfig } from "intlayer";
70
68
 
71
69
  const config: IntlayerConfig = {
72
- // ... إعدادات التكوين الأخرى
70
+ // ... إعدادات التهيئة الأخرى
73
71
  editor: {
74
72
  /**
75
73
  * مطلوب
76
74
  *
77
- * عنوان URL للتطبيق.
78
- * هذا هو عنوان URL المستهدف من قبل المحرر البصري.
75
+ * عنوان URL الخاص بالتطبيق.
76
+ * هذا هو العنوان الذي يستهدفه المحرر المرئي.
79
77
  */
80
78
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
81
79
 
82
80
  /**
83
81
  * مطلوب
84
82
  *
85
- * معرف العميل والسر الخاص بالعميل مطلوبان لتمكين المحرر.
83
+ * معرف العميل والسر السري للعميل مطلوبان لتمكين المحرر.
86
84
  * يسمحان بتحديد هوية المستخدم الذي يقوم بتحرير المحتوى.
87
- * يمكن الحصول عليهما عن طريق إنشاء عميل جديد في لوحة تحكم Intlayer - المشاريع (https://intlayer.org/dashboard/projects).
85
+ * يمكن الحصول عليهما بإنشاء عميل جديد في لوحة تحكم Intlayer - المشاريع (https://intlayer.org/dashboard/projects).
88
86
  * clientId: process.env.INTLAYER_CLIENT_ID,
89
87
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
90
88
  */
@@ -94,9 +92,9 @@ const config: IntlayerConfig = {
94
92
  /**
95
93
  * اختياري
96
94
  *
97
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
95
+ * في حال كنت تستضيف نظام إدارة المحتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
98
96
  *
99
- * عنوان URL لنظام إدارة المحتوى Intlayer.
97
+ * عنوان URL الخاص بنظام إدارة المحتوى Intlayer.
100
98
  * بشكل افتراضي، يتم تعيينه إلى https://intlayer.org
101
99
  */
102
100
  cmsURL: process.env.INTLAYER_CMS_URL,
@@ -104,9 +102,9 @@ const config: IntlayerConfig = {
104
102
  /**
105
103
  * اختياري
106
104
  *
107
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بالخلفية.
105
+ * في حال كنت تستضيف نظام إدارة المحتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بالواجهة الخلفية.
108
106
  *
109
- * عنوان URL لنظام إدارة المحتوى Intlayer.
107
+ * عنوان URL الخاص بنظام إدارة المحتوى Intlayer.
110
108
  * بشكل افتراضي، يتم تعيينه إلى https://back.intlayer.org
111
109
  */
112
110
  backendURL: process.env.INTLAYER_BACKEND_URL,
@@ -124,17 +122,19 @@ const config = {
124
122
  /**
125
123
  * مطلوب
126
124
  *
127
- * عنوان URL للتطبيق.
128
- * هذا هو عنوان URL المستهدف من قبل المحرر البصري.
125
+ * عنوان URL الخاص بالتطبيق.
126
+ * هذا هو عنوان URL المستهدف من قبل المحرر المرئي.
129
127
  */
130
128
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
131
129
 
132
130
  /**
133
131
  * مطلوب
134
132
  *
135
- * معرف العميل والسر الخاص بالعميل مطلوبان لتمكين المحرر.
133
+ * معرف العميل والسر السري للعميل مطلوبان لتمكين المحرر.
136
134
  * يسمحان بتحديد هوية المستخدم الذي يقوم بتحرير المحتوى.
137
135
  * يمكن الحصول عليهما عن طريق إنشاء عميل جديد في لوحة تحكم Intlayer - المشاريع (https://intlayer.org/dashboard/projects).
136
+ * clientId: process.env.INTLAYER_CLIENT_ID,
137
+ * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
138
138
  */
139
139
  clientId: process.env.INTLAYER_CLIENT_ID,
140
140
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
@@ -142,9 +142,9 @@ const config = {
142
142
  /**
143
143
  * اختياري
144
144
  *
145
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
145
+ * في حال كنت تستضيف نظام إدارة المحتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
146
146
  *
147
- * عنوان URL لنظام إدارة المحتوى Intlayer.
147
+ * عنوان URL الخاص بنظام إدارة محتوى Intlayer.
148
148
  * بشكل افتراضي، يتم تعيينه إلى https://intlayer.org
149
149
  */
150
150
  cmsURL: process.env.INTLAYER_CMS_URL,
@@ -152,9 +152,9 @@ const config = {
152
152
  /**
153
153
  * اختياري
154
154
  *
155
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بالخلفية.
155
+ * في حال كنت تستضيف نظام إدارة محتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بالواجهة الخلفية.
156
156
  *
157
- * عنوان URL لنظام إدارة المحتوى Intlayer.
157
+ * عنوان URL الخاص بنظام إدارة محتوى Intlayer.
158
158
  * بشكل افتراضي، يتم تعيينه إلى https://back.intlayer.org
159
159
  */
160
160
  backendURL: process.env.INTLAYER_BACKEND_URL,
@@ -172,17 +172,19 @@ const config = {
172
172
  /**
173
173
  * مطلوب
174
174
  *
175
- * عنوان URL للتطبيق.
176
- * هذا هو عنوان URL المستهدف من قبل المحرر البصري.
175
+ * عنوان URL الخاص بالتطبيق.
176
+ * هذا هو العنوان الذي يستهدفه المحرر المرئي.
177
177
  */
178
178
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
179
179
 
180
180
  /**
181
181
  * مطلوب
182
182
  *
183
- * معرف العميل والسر الخاص بالعميل مطلوبان لتمكين المحرر.
183
+ * معرف العميل والسر السري للعميل مطلوبان لتمكين المحرر.
184
184
  * يسمحان بتحديد هوية المستخدم الذي يقوم بتحرير المحتوى.
185
185
  * يمكن الحصول عليهما عن طريق إنشاء عميل جديد في لوحة تحكم Intlayer - المشاريع (https://intlayer.org/dashboard/projects).
186
+ * clientId: process.env.INTLAYER_CLIENT_ID,
187
+ * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
186
188
  */
187
189
  clientId: process.env.INTLAYER_CLIENT_ID,
188
190
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
@@ -190,9 +192,9 @@ const config = {
190
192
  /**
191
193
  * اختياري
192
194
  *
193
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
195
+ * في حال كنت تستضيف نظام إدارة محتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بنظام إدارة المحتوى.
194
196
  *
195
- * عنوان URL لنظام إدارة المحتوى Intlayer.
197
+ * عنوان URL الخاص بنظام إدارة محتوى Intlayer.
196
198
  * بشكل افتراضي، يتم تعيينه إلى https://intlayer.org
197
199
  */
198
200
  cmsURL: process.env.INTLAYER_CMS_URL,
@@ -200,9 +202,9 @@ const config = {
200
202
  /**
201
203
  * اختياري
202
204
  *
203
- * في حالة استضافة نظام إدارة المحتوى Intlayer ذاتيًا، يمكنك تعيين عنوان URL الخاص بالخلفية.
205
+ * في حال كنت تستضيف نظام إدارة محتوى Intlayer بنفسك، يمكنك تعيين عنوان URL الخاص بالخادم الخلفي.
204
206
  *
205
- * عنوان URL لنظام إدارة المحتوى Intlayer.
207
+ * عنوان URL الخاص بنظام إدارة محتوى Intlayer.
206
208
  * بشكل افتراضي، يتم تعيينه إلى https://back.intlayer.org
207
209
  */
208
210
  backendURL: process.env.INTLAYER_BACKEND_URL,
@@ -212,54 +214,55 @@ const config = {
212
214
  module.exports = config;
213
215
  ```
214
216
 
215
- > إذا لم يكن لديك معرف العميل والسر الخاص بالعميل، يمكنك الحصول عليهما عن طريق إنشاء عميل جديد في [لوحة تحكم Intlayer - المشاريع](https://intlayer.org/dashboard/projects).
217
+ > إذا لم يكن لديك معرف عميل وسر عميل، يمكنك الحصول عليهما بإنشاء عميل جديد في [لوحة تحكم Intlayer - المشاريع](https://intlayer.org/dashboard/projects).
216
218
 
217
- > لرؤية جميع المعلمات المتاحة، راجع [وثائق التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
219
+ > لرؤية جميع المعلمات المتاحة، راجع [توثيق التهيئة](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md).
218
220
 
219
221
  ## استخدام نظام إدارة المحتوى
220
222
 
221
- ### دفع التكوين الخاص بك
223
+ ### دفع التهيئة الخاصة بك
222
224
 
223
- لتكوين نظام إدارة المحتوى Intlayer، يمكنك استخدام أوامر [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ar/intlayer_cli.md).
225
+ لتكوين نظام إدارة محتوى Intlayer، يمكنك استخدام أوامر [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ar/intlayer_cli.md).
224
226
 
225
227
  ```bash
226
228
  npx intlayer config push
227
229
  ```
228
230
 
229
- > إذا كنت تستخدم متغيرات البيئة في ملف التكوين `intlayer.config.ts`، يمكنك تحديد البيئة المطلوبة باستخدام الوسيطة `--env`:
231
+ > إذا كنت تستخدم متغيرات البيئة في ملف التهيئة `intlayer.config.ts`، يمكنك تحديد البيئة المطلوبة باستخدام الوسيطة `--env`:
230
232
 
231
233
  ```bash
232
234
  npx intlayer config push --env production
233
235
  ```
234
236
 
235
- يقوم هذا الأمر بتحميل التكوين الخاص بك إلى نظام إدارة المحتوى Intlayer.
237
+ يقوم هذا الأمر برفع تهيئتك إلى نظام إدارة محتوى Intlayer.
236
238
 
237
239
  ### دفع قاموس
238
240
 
239
- لتحويل القواميس المحلية الخاصة بك إلى قاموس بعيد، يمكنك استخدام أوامر [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ar/intlayer_cli.md).
241
+ لتحويل قواميس اللغة المحلية الخاصة بك إلى قاموس بعيد، يمكنك استخدام أوامر [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ar/intlayer_cli.md).
240
242
 
241
243
  ```bash
242
244
  npx intlayer dictionary push -d my-first-dictionary-key
243
245
  ```
244
246
 
245
- > إذا كنت تستخدم متغيرات البيئة في ملف التكوين `intlayer.config.ts يمكنك تحديد البيئة المطلوبة باستخدام الوسيطة `--env`:
247
+ > إذا كنت تستخدم متغيرات البيئة في ملف التهيئة `intlayer.config.ts` الخاص بك، يمكنك تحديد البيئة المطلوبة باستخدام الوسيطة `--env`:
246
248
 
247
249
  ```bash
248
250
  npx intlayer dictionary push -d my-first-dictionary-key --env production
249
251
  ```
250
252
 
251
- يقوم هذا الأمر بتحميل قواميس المحتوى الأولية الخاصة بك، مما يجعلها متاحة للجلب غير المتزامن والتحرير من خلال منصة Intlayer.
253
+ يقوم هذا الأمر برفع قواميس المحتوى الأولية الخاصة بك، مما يجعلها متاحة للتحميل والتحرير غير المتزامن عبر منصة Intlayer.
252
254
 
253
255
  ### تحرير القاموس
254
256
 
255
- بعد ذلك، ستتمكن من رؤية وإدارة القاموس الخاص بك في [نظام إدارة المحتوى Intlayer](https://intlayer.org/dashboard/content).
257
+ بعد ذلك، ستتمكن من رؤية وإدارة قاموسك في [نظام إدارة محتوى Intlayer](https://intlayer.org/dashboard/content).
258
+
259
+ ## التزامن الحي
256
260
 
257
- ## إعادة التحميل الفوري
261
+ يتيح التزامن الحي لتطبيقك عكس تغييرات محتوى نظام إدارة المحتوى أثناء وقت التشغيل. لا حاجة لإعادة البناء أو إعادة النشر. عند التمكين، يتم بث التحديثات إلى خادم التزامن الحي الذي يقوم بتحديث القواميس التي يقرأها تطبيقك.
258
262
 
259
- يستطيع نظام إدارة المحتوى Intlayer إعادة تحميل القواميس تلقائيًا عند اكتشاف تغيير.
263
+ > يتطلب التزامن الحي اتصالًا مستمرًا بالخادم وهو متاح في خطة المؤسسات.
260
264
 
261
- بدون إعادة التحميل الفوري، سيكون من الضروري إنشاء جديد للتطبيق لعرض المحتوى الجديد.
262
- من خلال تفعيل إعداد [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration)، سيقوم التطبيق تلقائيًا باستبدال المحتوى المحدث عند اكتشافه.
265
+ قم بتمكين التزامن الحي عن طريق تحديث تكوين Intlayer الخاص بك:
263
266
 
264
267
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
265
268
  import type { IntlayerConfig } from "intlayer";
@@ -267,18 +270,32 @@ import type { IntlayerConfig } from "intlayer";
267
270
  const config: IntlayerConfig = {
268
271
  // ... إعدادات التكوين الأخرى
269
272
  editor: {
270
- // ... إعدادات التكوين الأخرى
271
-
272
273
  /**
273
- * يشير إلى ما إذا كان يجب على التطبيق إعادة تحميل تكوينات اللغة تلقائيًا عند اكتشاف تغيير.
274
- * على سبيل المثال، عند إضافة أو تحديث قاموس جديد، سيقوم التطبيق بتحديث المحتوى لعرضه في الصفحة.
274
+ * يُمكّن إعادة تحميل التكوينات المحلية تلقائيًا عند اكتشاف تغييرات.
275
+ * على سبيل المثال، عند إضافة قاموس أو تحديثه، يقوم التطبيق بتحديث
276
+ * المحتوى المعروض على الصفحة.
275
277
  *
276
- * لأن إعادة التحميل الفوري تحتاج إلى اتصال مستمر بالخادم، فهي متاحة فقط لعملاء خطة `enterprise`.
278
+ * نظرًا لأن إعادة التحميل الساخن تتطلب اتصالًا مستمرًا بالخادم،
279
+ * فهي متاحة فقط لعملاء خطة `enterprise`.
277
280
  *
278
281
  * الافتراضي: false
279
282
  */
280
283
  liveSync: true,
281
284
  },
285
+ build: {
286
+ /**
287
+ * يتحكم في كيفية استيراد القواميس:
288
+ *
289
+ * - "live": يتم جلب القواميس ديناميكيًا باستخدام واجهة برمجة تطبيقات المزامنة الحية (Live Sync API).
290
+ * يستبدل useIntlayer بـ useDictionaryDynamic.
291
+ *
292
+ * ملاحظة: يستخدم الوضع الحي (Live) واجهة برمجة تطبيقات المزامنة الحية لجلب القواميس. إذا فشل استدعاء الواجهة،
293
+ * يتم استيراد القواميس ديناميكيًا.
294
+ * ملاحظة: فقط القواميس التي تحتوي على محتوى عن بُعد وعلامة "live" تستخدم الوضع الحي.
295
+ * القواميس الأخرى تستخدم الوضع الديناميكي لأداء أفضل.
296
+ */
297
+ importMode: "live",
298
+ },
282
299
  };
283
300
 
284
301
  export default config;
@@ -289,18 +306,31 @@ export default config;
289
306
  const config = {
290
307
  // ... إعدادات التكوين الأخرى
291
308
  editor: {
292
- // ... إعدادات التكوين الأخرى
293
-
294
309
  /**
295
- * يشير إلى ما إذا كان يجب على التطبيق إعادة تحميل تكوينات اللغة تلقائيًا عند اكتشاف تغيير.
296
- * على سبيل المثال، عند إضافة أو تحديث قاموس جديد، سيقوم التطبيق بتحديث المحتوى لعرضه في الصفحة.
310
+ * يُمكّن إعادة التحميل السريع لتكوينات اللغة عند اكتشاف تغييرات.
311
+ * على سبيل المثال، عند إضافة قاموس أو تحديثه، يقوم التطبيق بتحديث
312
+ * المحتوى المعروض على الصفحة.
297
313
  *
298
- * لأن إعادة التحميل الفوري تحتاج إلى اتصال مستمر بالخادم، فهي متاحة فقط لعملاء خطة `enterprise`.
314
+ * نظرًا لأن إعادة التحميل السريع تتطلب اتصالًا مستمرًا بالخادم، فهي
315
+ * متاحة فقط لعملاء خطة `enterprise`.
299
316
  *
300
317
  * الافتراضي: false
301
318
  */
302
319
  liveSync: true,
303
320
  },
321
+ build: {
322
+ /**
323
+ * يتحكم في كيفية استيراد القواميس:
324
+ *
325
+ * - "live": يتم جلب القواميس ديناميكيًا باستخدام واجهة برمجة تطبيقات المزامنة الحية (Live Sync API).
326
+ * يستبدل useIntlayer بـ useDictionaryDynamic.
327
+ *
328
+ * ملاحظة: يستخدم الوضع الحي واجهة برمجة تطبيقات المزامنة الحية لجلب القواميس. إذا فشل استدعاء الواجهة
329
+ * ملاحظة: فقط القواميس التي تحتوي على محتوى عن بُعد وعلامات "live" تستخدم الوضع الحي.
330
+ * يستخدم الآخرون الوضع الديناميكي من أجل الأداء.
331
+ */
332
+ importMode: "live",
333
+ },
304
334
  };
305
335
 
306
336
  export default config;
@@ -311,45 +341,191 @@ export default config;
311
341
  const config = {
312
342
  // ... إعدادات التكوين الأخرى
313
343
  editor: {
314
- // ... إعدادات التكوين الأخرى
315
-
316
344
  /**
317
- * يشير إلى ما إذا كان يجب على التطبيق إعادة تحميل تكوينات اللغة تلقائيًا عند اكتشاف تغيير.
318
- * على سبيل المثال، عند إضافة أو تحديث قاموس جديد، سيقوم التطبيق بتحديث المحتوى لعرضه في الصفحة.
345
+ * يُمكّن إعادة التحميل السريع لتكوينات اللغة عند اكتشاف تغييرات.
346
+ * على سبيل المثال، عند إضافة قاموس أو تحديثه، يقوم التطبيق بتحديث
347
+ * المحتوى المعروض على الصفحة.
319
348
  *
320
- * لأن إعادة التحميل الفوري تحتاج إلى اتصال مستمر بالخادم، فهي متاحة فقط لعملاء خطة `enterprise`.
349
+ * نظرًا لأن إعادة التحميل السريع تتطلب اتصالًا مستمرًا بالخادم، فهي
350
+ * متاحة فقط لعملاء خطة `enterprise`.
321
351
  *
322
352
  * الافتراضي: false
323
353
  */
324
354
  liveSync: true,
355
+
356
+ /**
357
+ * منفذ خادم المزامنة الحية.
358
+ *
359
+ * الافتراضي: 4000
360
+ */
361
+ liveSyncPort: 4000,
362
+
363
+ /**
364
+ * عنوان URL الخاص بخادم المزامنة الحية.
365
+ *
366
+ * الافتراضي: http://localhost:{liveSyncPort}
367
+ */
368
+ liveSyncURL: "https://live.example.com",
369
+ },
370
+ build: {
371
+ /**
372
+ * يتحكم في كيفية استيراد القواميس:
373
+ *
374
+ * - "live": يتم جلب القواميس ديناميكيًا باستخدام واجهة برمجة تطبيقات المزامنة الحية.
375
+ * يستبدل useIntlayer بـ useDictionaryDynamic.
376
+ *
377
+ * ملاحظة: يستخدم الوضع الحي واجهة برمجة تطبيقات المزامنة الحية لجلب القواميس. إذا فشل استدعاء API،
378
+ * يتم استيراد القواميس ديناميكيًا.
379
+ * ملاحظة: فقط القواميس التي تحتوي على محتوى عن بُعد وعلامات "live" تستخدم الوضع الحي.
380
+ * القواميس الأخرى تستخدم الوضع الديناميكي لأداء أفضل.
381
+ */
382
+ importMode: "live",
383
+ },
384
+ };
385
+
386
+ module.exports = config;
387
+ ```
388
+
389
+ ابدأ خادم المزامنة الحية لتغليف تطبيقك:
390
+
391
+ مثال باستخدام Next.js:
392
+
393
+ ```json5 fileName="package.json"
394
+ {
395
+ "scripts": {
396
+ // ... سكريبتات أخرى
397
+ "build": "next build",
398
+ "dev": "next dev",
399
+ "start": "npx intlayer live --process 'next start'",
400
+ },
401
+ }
402
+ ```
403
+
404
+ مثال باستخدام Vite:
405
+
406
+ ```json5 fileName="package.json"
407
+ {
408
+ "scripts": {
409
+ // ... سكريبتات أخرى
410
+ "build": "vite build",
411
+ "dev": "vite dev",
412
+ "start": "npx intlayer live --process 'vite start'",
413
+ },
414
+ }
415
+ ```
416
+
417
+ يقوم خادم المزامنة الحية بتغليف تطبيقك ويطبق المحتوى المحدث تلقائيًا عند وصوله.
418
+
419
+ لتلقي إشعارات التغيير من نظام إدارة المحتوى (CMS)، يحافظ خادم المزامنة الحية على اتصال SSE مع الخادم الخلفي. عندما يتغير المحتوى في نظام إدارة المحتوى، يقوم الخادم الخلفي بإرسال التحديث إلى خادم المزامنة الحية، الذي يقوم بكتابة القواميس الجديدة. سيعكس تطبيقك التحديث في التنقل التالي أو عند إعادة تحميل المتصفح — دون الحاجة لإعادة بناء التطبيق.
420
+
421
+ مخطط التدفق (نظام إدارة المحتوى/الخادم الخلفي -> خادم المزامنة الحية -> خادم التطبيق -> الواجهة الأمامية):
422
+
423
+ ![مخطط منطق المزامنة الحية](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
424
+
425
+ كيف يعمل:
426
+
427
+ ![مخطط تدفق المزامنة الحية نظام إدارة المحتوى/الخادم الخلفي/خادم المزامنة الحية/خادم التطبيق/الواجهة الأمامية](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
428
+
429
+ ### سير عمل التطوير (محلي)
430
+
431
+ - في بيئة التطوير، يتم جلب جميع القواميس البعيدة عند بدء تشغيل التطبيق، بحيث يمكنك اختبار التحديثات بسرعة.
432
+ - لاختبار المزامنة الحية محليًا مع Next.js، قم بتغليف خادم التطوير الخاص بك:
433
+
434
+ ```json5 fileName="package.json"
435
+ {
436
+ "scripts": {
437
+ // ... سكريبتات أخرى
438
+ "dev": "npx intlayer live --process 'next dev'",
439
+ // "dev": "npx intlayer live --process 'vite dev'", // لـ Vite
440
+ },
441
+ }
442
+ ```
443
+
444
+ قم بتمكين التحسين حتى يطبق Intlayer تحولات الاستيراد الحي أثناء التطوير:
445
+
446
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
447
+ import type { IntlayerConfig } from "intlayer";
448
+
449
+ const config: IntlayerConfig = {
450
+ editor: {
451
+ applicationURL: "http://localhost:5173",
452
+ liveSyncURL: "http://localhost:4000",
453
+ liveSync: true,
454
+ },
455
+ build: {
456
+ optimize: true,
457
+ importMode: "live",
458
+ },
459
+ };
460
+
461
+ export default config;
462
+ ```
463
+
464
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
465
+ /** @type {import('intlayer').IntlayerConfig} */
466
+ // تكوين Intlayer مع إعدادات المزامنة الحية
467
+ const config = {
468
+ editor: {
469
+ applicationURL: "http://localhost:5173",
470
+ liveSyncURL: "http://localhost:4000",
471
+ liveSync: true,
472
+ },
473
+ build: {
474
+ optimize: true,
475
+ importMode: "live",
476
+ },
477
+ };
478
+
479
+ export default config;
480
+ ```
481
+
482
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
483
+ /** @type {import('intlayer').IntlayerConfig} */
484
+ // تكوين Intlayer مع إعدادات المزامنة الحية
485
+ const config = {
486
+ editor: {
487
+ applicationURL: "http://localhost:5173",
488
+ liveSyncURL: "http://localhost:4000",
489
+ liveSync: true,
490
+ },
491
+ build: {
492
+ optimize: true,
493
+ importMode: "live",
325
494
  },
326
495
  };
327
496
 
328
497
  module.exports = config;
329
498
  ```
330
499
 
331
- إعادة التحميل الفوري تستبدل المحتوى على كلا الجانبين الخادم والعميل.
500
+ يقوم هذا الإعداد بتغليف خادم التطوير الخاص بك مع خادم المزامنة الحية، ويجلب القواميس البعيدة عند بدء التشغيل، ويقوم ببث التحديثات من نظام إدارة المحتوى عبر SSE. قم بتحديث الصفحة لرؤية التغييرات.
332
501
 
333
- - على جانب الخادم، يجب التأكد من أن عملية التطبيق لديها حق الوصول للكتابة إلى دليل `.intlayer/dictionaries`.
334
- - على جانب العميل، تتيح إعادة التحميل الفوري للتطبيق إعادة تحميل المحتوى في المتصفح دون الحاجة إلى إعادة تحميل الصفحة. ومع ذلك، هذه الميزة متاحة فقط لمكونات العملاء.
502
+ ملاحظات وقيود:
335
503
 
336
- > لأن إعادة التحميل الفوري تحتاج إلى اتصال مستمر بالخادم باستخدام `EventListener`، فهي متاحة فقط لعملاء خطة `enterprise`.
504
+ - أضف مصدر المزامنة الحية إلى سياسة أمان موقعك (CSP). تأكد من السماح بعنوان URL الخاص بالمزامنة الحية في `connect-src` `frame-ancestors` إذا كان ذلك مناسبًا).
505
+ - لا تعمل المزامنة الحية مع المخرجات الثابتة. بالنسبة لـ Next.js، يجب أن تكون الصفحة ديناميكية لتلقي التحديثات أثناء وقت التشغيل (على سبيل المثال، استخدم `generateStaticParams`، `generateMetadata`، `getServerSideProps`، أو `getStaticProps` بشكل مناسب لتجنب القيود الخاصة بالمحتوى الثابت فقط).
506
+ - في نظام إدارة المحتوى (CMS)، يحتوي كل قاموس على علامة `live`. يتم جلب القواميس التي تحمل العلامة `live=true` فقط عبر واجهة برمجة تطبيقات المزامنة الحية؛ أما القواميس الأخرى فتُستورد ديناميكيًا وتظل دون تغيير أثناء وقت التشغيل.
507
+ - يتم تقييم علامة `live` لكل قاموس أثناء وقت البناء. إذا لم يتم وسم المحتوى البعيد بعلامة `live=true` أثناء البناء، يجب عليك إعادة البناء لتمكين المزامنة الحية لذلك القاموس.
508
+ - يجب أن يكون خادم المزامنة الحية قادرًا على الكتابة إلى `.intlayer`. في الحاويات، تأكد من وجود صلاحية الكتابة إلى `/.intlayer`.
337
509
 
338
- ## التصحيح
510
+ ## تصحيح الأخطاء
339
511
 
340
- إذا واجهت أي مشاكل مع نظام إدارة المحتوى، تحقق من التالي:
512
+ إذا واجهت أي مشاكل مع نظام إدارة المحتوى (CMS)، تحقق من الأمور التالية:
341
513
 
342
514
  - التطبيق يعمل.
343
515
 
344
- - تم تعيين إعدادات [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) بشكل صحيح في ملف تكوين Intlayer الخاص بك.
516
+ - تم إعداد تكوين [`المحرر`](https://intlayer.org/doc/concept/configuration#editor-configuration) بشكل صحيح في ملف تكوين Intlayer الخاص بك.
345
517
  - الحقول المطلوبة:
346
- - يجب أن يتطابق عنوان URL للتطبيق مع الذي قمت بتعيينه في إعدادات المحرر (`applicationURL`).
347
- - عنوان URL لنظام إدارة المحتوى.
518
+ - يجب أن يتطابق عنوان URL الخاص بالتطبيق مع العنوان الذي قمت بتعيينه في تكوين المحرر (`applicationURL`).
519
+ - عنوان URL الخاص بنظام إدارة المحتوى (CMS)
348
520
 
349
- - تأكد من أن تكوين المشروع تم دفعه إلى نظام إدارة المحتوى Intlayer.
521
+ - تأكد من أن تكوين المشروع تم دفعه إلى نظام إدارة محتوى Intlayer.
350
522
 
351
- - يستخدم المحرر البصري إطار iframe لعرض موقعك. تأكد من أن سياسة أمان المحتوى (CSP) لموقعك تسمح بعنوان URL لنظام إدارة المحتوى كـ `frame-ancestors` ('https://intlayer.org' افتراضيًا). تحقق من وحدة تحكم المحرر لأي أخطاء.
523
+ - يستخدم المحرر المرئي إطار iframe لعرض موقعك الإلكتروني. تأكد من أن سياسة أمان المحتوى (CSP) لموقعك تسمح بعنوان URL الخاص بنظام إدارة المحتوى كـ `frame-ancestors` ('https://intlayer.org' بشكل افتراضي). تحقق من وحدة تحكم المحرر لأي أخطاء.
352
524
 
353
- ## سجل الوثائق
525
+ ## تاريخ الوثيقة
354
526
 
355
- - 5.5.10 - 2025-06-29: بداية السجل
527
+ | الإصدار | التاريخ | التغييرات |
528
+ | ------- | ---------- | ------------------------------------- |
529
+ | 6.0.1 | 2025-09-22 | إضافة توثيق المزامنة الحية |
530
+ | 6.0.0 | 2025-09-04 | استبدال حقل `hotReload` بـ `liveSync` |
531
+ | 5.5.10 | 2025-06-29 | بدء السجل |