inicontent 1.0.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 (205) hide show
  1. package/.github/pull_request.yml +18 -0
  2. package/CONTRIBUTING.md +67 -0
  3. package/LICENSE +21 -0
  4. package/README.md +142 -0
  5. package/app/app.vue +106 -0
  6. package/app/assets/main.css +974 -0
  7. package/app/components/Api/EndpointCard.vue +169 -0
  8. package/app/components/Api/SchemaDocsTable.vue +208 -0
  9. package/app/components/Asset/Card.vue +1363 -0
  10. package/app/components/Asset/Grid.vue +295 -0
  11. package/app/components/Asset/Icon.vue +38 -0
  12. package/app/components/Asset/Preview.vue +486 -0
  13. package/app/components/Asset/Scanner.vue +700 -0
  14. package/app/components/Asset/Thumb.vue +708 -0
  15. package/app/components/Auth/Reset.vue +99 -0
  16. package/app/components/Auth/index.vue +346 -0
  17. package/app/components/ChatInterface.vue +2326 -0
  18. package/app/components/ChatPagePreview.vue +34 -0
  19. package/app/components/Column/Array.vue +29 -0
  20. package/app/components/Column/Asset.vue +21 -0
  21. package/app/components/Column/Boolean.vue +12 -0
  22. package/app/components/Column/Color.vue +9 -0
  23. package/app/components/Column/Date.vue +57 -0
  24. package/app/components/Column/Edit.vue +215 -0
  25. package/app/components/Column/Email.vue +9 -0
  26. package/app/components/Column/Html.vue +27 -0
  27. package/app/components/Column/Id.vue +20 -0
  28. package/app/components/Column/Locale.vue +32 -0
  29. package/app/components/Column/Object.vue +18 -0
  30. package/app/components/Column/Password.vue +7 -0
  31. package/app/components/Column/Role.vue +15 -0
  32. package/app/components/Column/S.vue +14 -0
  33. package/app/components/Column/Table/Single.vue +49 -0
  34. package/app/components/Column/Table/index.vue +42 -0
  35. package/app/components/Column/Tags.vue +31 -0
  36. package/app/components/Column/Text.vue +9 -0
  37. package/app/components/Column/Url.vue +9 -0
  38. package/app/components/Column/index.vue +41 -0
  39. package/app/components/Dashboard/Editor.vue +221 -0
  40. package/app/components/Dashboard/Grid.vue +270 -0
  41. package/app/components/Dashboard/View.vue +131 -0
  42. package/app/components/Dashboard/Widget/BarChart.vue +73 -0
  43. package/app/components/Dashboard/Widget/Counter.vue +51 -0
  44. package/app/components/Dashboard/Widget/LineChart.vue +76 -0
  45. package/app/components/Dashboard/Widget/PieChart.vue +75 -0
  46. package/app/components/Dashboard/Widget/Table.vue +94 -0
  47. package/app/components/Dashboard/WidgetEditor.vue +274 -0
  48. package/app/components/Data/Array.vue +102 -0
  49. package/app/components/Data/Html.vue +9 -0
  50. package/app/components/Data/Icon.vue +9 -0
  51. package/app/components/Data/Object.vue +10 -0
  52. package/app/components/Data/S.vue +16 -0
  53. package/app/components/Data/Table.vue +53 -0
  54. package/app/components/Data/Value.vue +34 -0
  55. package/app/components/Data/index.vue +14 -0
  56. package/app/components/Field/Array.vue +324 -0
  57. package/app/components/Field/Asset/Actions.vue +97 -0
  58. package/app/components/Field/Asset/index.vue +639 -0
  59. package/app/components/Field/Boolean.vue +26 -0
  60. package/app/components/Field/Checkbox.vue +48 -0
  61. package/app/components/Field/Color.vue +27 -0
  62. package/app/components/Field/Date.vue +30 -0
  63. package/app/components/Field/Email.vue +51 -0
  64. package/app/components/Field/EmailTemplate.vue +420 -0
  65. package/app/components/Field/Html/ColorPicker.vue +127 -0
  66. package/app/components/Field/Html/Editor.vue +544 -0
  67. package/app/components/Field/Html/index.vue +25 -0
  68. package/app/components/Field/Icon.vue +114 -0
  69. package/app/components/Field/JSON.vue +113 -0
  70. package/app/components/Field/Mention.vue +36 -0
  71. package/app/components/Field/Number.vue +27 -0
  72. package/app/components/Field/Object.vue +92 -0
  73. package/app/components/Field/Password.vue +55 -0
  74. package/app/components/Field/Radio.vue +47 -0
  75. package/app/components/Field/S.vue +44 -0
  76. package/app/components/Field/Select.vue +49 -0
  77. package/app/components/Field/Table.vue +348 -0
  78. package/app/components/Field/Tags.vue +113 -0
  79. package/app/components/Field/Text.vue +31 -0
  80. package/app/components/Field/Textarea.vue +33 -0
  81. package/app/components/Field/Url.vue +40 -0
  82. package/app/components/Field/Wrapper.vue +128 -0
  83. package/app/components/Field/index.vue +68 -0
  84. package/app/components/FloatingChatbot.vue +73 -0
  85. package/app/components/Form/Card.vue +151 -0
  86. package/app/components/Form/Drawer.vue +195 -0
  87. package/app/components/Form/index.vue +621 -0
  88. package/app/components/Header.vue +328 -0
  89. package/app/components/Offline/ConflictModal.vue +200 -0
  90. package/app/components/Offline/SyncStatus.vue +249 -0
  91. package/app/components/PlatformFeatureLanding.vue +65 -0
  92. package/app/components/Table/Backups.vue +638 -0
  93. package/app/components/Table/Flows.vue +814 -0
  94. package/app/components/Table/Grid.vue +296 -0
  95. package/app/components/Table/Icon.vue +36 -0
  96. package/app/components/Table/Logs.vue +181 -0
  97. package/app/components/Table/Schedules.vue +722 -0
  98. package/app/components/Table/Search/Button.vue +256 -0
  99. package/app/components/Table/Search/Items.vue +286 -0
  100. package/app/components/Table/Search/index.vue +87 -0
  101. package/app/components/Table/Settings/Schema.vue +801 -0
  102. package/app/components/Table/Settings/index.vue +631 -0
  103. package/app/components/Table/TranslateDrawer.vue +526 -0
  104. package/app/components/Table/Views/Kanban.vue +289 -0
  105. package/app/components/Table/Views/Table.vue +1273 -0
  106. package/app/components/Table/index.vue +890 -0
  107. package/app/composables/Translation/define.ts +41 -0
  108. package/app/composables/Translation/fetch.ts +107 -0
  109. package/app/composables/Translation/languages.ts +1 -0
  110. package/app/composables/Translation/loadCoreTranslations.ts +38 -0
  111. package/app/composables/Translation/translate.ts +250 -0
  112. package/app/composables/databaseCookies.ts +79 -0
  113. package/app/composables/fieldValidator.ts +72 -0
  114. package/app/composables/fieldsList.ts +301 -0
  115. package/app/composables/formatDatabase.ts +101 -0
  116. package/app/composables/index.ts +444 -0
  117. package/app/composables/openDrawer.ts +118 -0
  118. package/app/composables/optimizeFile.ts +287 -0
  119. package/app/composables/renderLabel.ts +88 -0
  120. package/app/composables/schemaClipboard.ts +95 -0
  121. package/app/composables/search.ts +353 -0
  122. package/app/composables/setThemeConfig.ts +48 -0
  123. package/app/composables/translationValue.ts +169 -0
  124. package/app/composables/useAssetPreview.ts +84 -0
  125. package/app/composables/useAssetUploader.ts +56 -0
  126. package/app/composables/useDashboardData.ts +310 -0
  127. package/app/composables/useDocumentThumbnail.ts +351 -0
  128. package/app/composables/useEcharts.ts +33 -0
  129. package/app/composables/useLocalDatabaseConfig.ts +51 -0
  130. package/app/composables/useOcr.ts +300 -0
  131. package/app/composables/useOfflineFetch.ts +194 -0
  132. package/app/composables/useOfflineItem.ts +107 -0
  133. package/app/composables/useOfflineQueue.ts +302 -0
  134. package/app/composables/useOfflineSync.ts +235 -0
  135. package/app/composables/usePasskeyAuth.ts +156 -0
  136. package/app/composables/usePdfCompressor.ts +180 -0
  137. package/app/composables/usePlatformRedirect.ts +72 -0
  138. package/app/composables/useRealtimeSync.ts +233 -0
  139. package/app/composables/useReferencedItems.ts +180 -0
  140. package/app/composables/useScanner.ts +664 -0
  141. package/app/composables/useSubscription.ts +650 -0
  142. package/app/composables/useThumbnailCache.ts +136 -0
  143. package/app/composables/useVideoCompressor.ts +194 -0
  144. package/app/error.vue +112 -0
  145. package/app/layouts/api.vue +188 -0
  146. package/app/layouts/dashboard.vue +91 -0
  147. package/app/layouts/default.vue +228 -0
  148. package/app/layouts/table.vue +471 -0
  149. package/app/locales/ar.ts +996 -0
  150. package/app/locales/en.ts +655 -0
  151. package/app/locales/es.ts +996 -0
  152. package/app/locales/fr.ts +997 -0
  153. package/app/middleware/dashboard.ts +33 -0
  154. package/app/middleware/database.ts +83 -0
  155. package/app/middleware/global.ts +1 -0
  156. package/app/middleware/sid-ingest.global.ts +29 -0
  157. package/app/middleware/table.ts +54 -0
  158. package/app/middleware/user.ts +26 -0
  159. package/app/pages/[[database]]/admin/api/auth/index.vue +306 -0
  160. package/app/pages/[[database]]/admin/api/index.vue +18 -0
  161. package/app/pages/[[database]]/admin/api/tables/[table]/index.vue +497 -0
  162. package/app/pages/[[database]]/admin/api/tables/index.vue +87 -0
  163. package/app/pages/[[database]]/admin/billing/index.vue +16 -0
  164. package/app/pages/[[database]]/admin/dashboards/[id]/edit.vue +66 -0
  165. package/app/pages/[[database]]/admin/dashboards/[id]/index.vue +117 -0
  166. package/app/pages/[[database]]/admin/dashboards/index.vue +20 -0
  167. package/app/pages/[[database]]/admin/index.vue +28 -0
  168. package/app/pages/[[database]]/admin/settings.vue +526 -0
  169. package/app/pages/[[database]]/admin/tables/[table]/[id]/edit.vue +143 -0
  170. package/app/pages/[[database]]/admin/tables/[table]/[id]/index.vue +146 -0
  171. package/app/pages/[[database]]/admin/tables/[table]/flows.vue +10 -0
  172. package/app/pages/[[database]]/admin/tables/[table]/index.vue +10 -0
  173. package/app/pages/[[database]]/admin/tables/[table]/new.vue +12 -0
  174. package/app/pages/[[database]]/admin/tables/[table]/schedules.vue +10 -0
  175. package/app/pages/[[database]]/admin/tables/[table]/settings.vue +30 -0
  176. package/app/pages/[[database]]/admin/tables/assets/[...path].vue +24 -0
  177. package/app/pages/[[database]]/admin/tables/assets/flows.vue +10 -0
  178. package/app/pages/[[database]]/admin/tables/backups/index.vue +10 -0
  179. package/app/pages/[[database]]/admin/tables/blocks/index.vue +16 -0
  180. package/app/pages/[[database]]/admin/tables/index.vue +20 -0
  181. package/app/pages/[[database]]/admin/tables/pages/index.vue +16 -0
  182. package/app/pages/[[database]]/admin/tables/templates/index.vue +16 -0
  183. package/app/pages/[[database]]/api/index.vue +120 -0
  184. package/app/pages/[[database]]/auth/index.vue +12 -0
  185. package/app/pages/[[database]]/auth/reset.vue +10 -0
  186. package/app/pages/[[database]]/index.vue +10 -0
  187. package/app/plugins/offline-warmup.client.ts +53 -0
  188. package/app/plugins/template-globals.ts +9 -0
  189. package/app/spa-loading-template.html +93 -0
  190. package/biome.json +53 -0
  191. package/index.d.ts +380 -0
  192. package/modules/naiveui.ts +41 -0
  193. package/nuxt.config.ts +269 -0
  194. package/package.json +56 -0
  195. package/pnpm-workspace.yaml +5 -0
  196. package/public/apple-touch-icon.png +0 -0
  197. package/public/favicon-16x16.png +0 -0
  198. package/public/favicon-32x32.png +0 -0
  199. package/public/favicon.ico +0 -0
  200. package/public/pwa-192x192.png +0 -0
  201. package/public/pwa-512x512.png +0 -0
  202. package/public/pwa-maskable-192x192.png +0 -0
  203. package/public/pwa-maskable-512x512.png +0 -0
  204. package/public/vendor/opencv.js +48 -0
  205. package/tsconfig.json +9 -0
@@ -0,0 +1,996 @@
1
+ export default {
2
+ ar: {
3
+ // Actions
4
+ edit: "تعديل",
5
+ create: "إنشاء",
6
+ cancel: "إلغاء",
7
+ save: "حفظ",
8
+ submit: "إرسال",
9
+ update: "تحديث",
10
+ search: "بحث",
11
+ filter: "تصفية",
12
+ reset: "إعادة تعيين",
13
+ close: "إغلاق",
14
+ confirm: "تأكيد",
15
+ add: "إضافة",
16
+ remove: "إزالة",
17
+ upload: "رفع",
18
+ download: "تنزيل",
19
+ export: "تصدير",
20
+ import: "إستيراد",
21
+ refresh: "تحديث",
22
+ set: "تعيين",
23
+ unset: "إفراغ",
24
+ replace: "إستبدال",
25
+ rename: "تغيير الإسم",
26
+ new: "جديد",
27
+ flows: "تدفقات",
28
+ actions: "أوامر",
29
+ createFromClipboard: "إنشاء من الحافظة",
30
+ view: "عرض",
31
+ rightClickToEdit: "إضغط يمين للتعديل",
32
+ pressAndHoldToEdit: "إضغط مطولاً للتعديل",
33
+ copyItem: "نسخ العنصر",
34
+ pasteItem: "لصق العنصر",
35
+ copyFields: "نسخ الحقول",
36
+ pasteFields: "لصق الحقول من الحافظة",
37
+ noFieldsInClipboard: "لا توجد حقول في الحافظة",
38
+ noFieldsToCopy: "لا توجد حقول للنسخ",
39
+ cutSuccessfully: "تم القص بنجاح",
40
+ clipboardItemIsNotCorrect: "عنصر الحافظة غير صحيح",
41
+ publish: "نشر",
42
+ selectAll: "تحديد الكل",
43
+ clearAll: "إلغاء تحديد الكل",
44
+
45
+ // Status messages
46
+ success: "نجح",
47
+ error: "خطأ",
48
+ warning: "تحذير",
49
+ info: "معلومة",
50
+ loading: "جاري التحميل",
51
+
52
+ // Common nouns
53
+ name: "الإسم",
54
+ slug: "المعرّف النصّي",
55
+ description: "الوصف",
56
+ title: "العنوان",
57
+ content: "المحتوى",
58
+ type: "النوع",
59
+ status: "الحالة",
60
+ date: "التاريخ",
61
+ time: "الوقت",
62
+ size: "الحجم",
63
+ link: "الرابط",
64
+ label: "النص",
65
+ icon: "الأيقونة",
66
+ username: "إسم المستخدم",
67
+ email: "البريد الإلكتروني",
68
+ password: "كلمة المرور",
69
+ role: "الصلاحية",
70
+ item: "عنصر",
71
+ anItem: "عنصر",
72
+
73
+ // Navigation
74
+ home: "الرئيسية",
75
+ back: "رجوع",
76
+ next: "التالي",
77
+ previous: "السابق",
78
+
79
+ // Validation messages
80
+ isRequired: "إجباري",
81
+ required: "إلزامي",
82
+ optional: "اختياري",
83
+ isInvalidFormat: "صيغة غير صحيحة",
84
+ isNotValid: "غير صالح",
85
+ inputsAreInvalid: "المُدخلات غير صحيحة",
86
+
87
+ // Confirmation messages
88
+ theFollowingActionIsIrreversible: "الإجراء التالي لا رجعة فيه",
89
+ areYouSure: "هل أنت متأكد؟",
90
+ deleteSelectedAssetsConfirm:
91
+ "حذف {count} عنصر محدد؟ لا يمكن التراجع عن هذا الإجراء.",
92
+ deleteAssetConfirm: "حذف هذا الملف؟ لا يمكن التراجع عن هذا الإجراء.",
93
+ deleteFolderConfirm:
94
+ 'حذف مجلد "{name}" وكل ما بداخله؟ لا يمكن التراجع عن هذا الإجراء.',
95
+ deletedSuccessfully: "تم الحذف بنجاح",
96
+ savedSuccessfully: "تم الحفظ بنجاح",
97
+ updatedSuccessfully: "تم التحديث بنجاح",
98
+ createdSuccessfully: "تم الإنشاء بنجاح",
99
+ uploadFailed: "فشل الرفع",
100
+ folderCreatedSuccessfully: "تم إنشاء المجلد بنجاح",
101
+ folderNameRequired: "إسم المجلد مطلوب",
102
+ filterSavedSuccessfully: "تم حفظ المرشح بنجاح",
103
+ filterDeletedSuccessfully: "تم حذف المرشح بنجاح",
104
+ filterLoaded: "تم تحميل المرشح",
105
+
106
+ // Methods
107
+ get: "عرض",
108
+ post: "إنشاء",
109
+ put: "تعديل",
110
+ delete: "حذف",
111
+ deleteSelectedItems: "حذف العناصر المحددة",
112
+
113
+ // API
114
+ apiDocumentation: "دليل الواجهة البرمجية",
115
+ apiDocs: {
116
+ availableMethods: "العمليات المتاحة",
117
+ sessionNoticeTitle: "اعتماد الجلسة",
118
+ sessionNoticeDescription:
119
+ "يمكنك تمرير معرف الجلسة عبر الوسيط {param} سواءً كمعلَمة استعلام أو كملف تعريف ارتباط.",
120
+ sessionAsQuery: "كمعلَمة في رابط الطلب:",
121
+ sessionAsCookie: "أو كملف تعريف ارتباط يُرسل مع كل طلب.",
122
+ sessionAuthLinkPrefix: "للحصول على معرف جلسة، اطّلع على",
123
+ viewAuthDocs: "إرشادات المصادقة",
124
+ schemaTitle: "حقول المخطط",
125
+ assetsUploadTitle: "إرشادات رفع الملفات",
126
+ assetsUploadIntro:
127
+ "أرسل طلب POST إلى ‎/assets أو ‎/assets/<folder> متضمناً كائناً أو مصفوفة كائنات تصف الملفات المطلوب رفعها.",
128
+ assetsUploadStep1:
129
+ "يجب أن يحتوي كل كائن على الحقول name و size و type و extension، ويمكن إرسال مصفوفة عند رفع عدة ملفات.",
130
+ assetsUploadStep2:
131
+ "يعيد الرد نفس الحقول بالإضافة إلى id و createdAt و publicURL و uploadURL.",
132
+ assetsUploadStep3:
133
+ "بعد ذلك أرسل الملف الثنائي إلى عنوان uploadURL عبر طلب POST.",
134
+ assetsUploadCustomEndpoint:
135
+ "إذا استخدمت نقطة رفع مخصّصة فأرفق publicURL في أول طلب إلى ‎/assets، ولن يتم إرجاع حقل uploadURL.",
136
+ noSchemaFields: "لا توجد حقول معرفة لهذا الجدول.",
137
+ tableNotFoundTitle: "لم يتم العثور على الجدول",
138
+ tableNotFoundDescription: "تحقق من المعرّف أو اختر جدولاً آخر من القائمة.",
139
+ backToTables: "العودة إلى قوائم الواجهة البرمجية",
140
+ auth: {
141
+ title: "نهايات المصادقة",
142
+ description:
143
+ "استخدم هذه النهايات لإنشاء الجلسات وتمرير الوسيط {param}.",
144
+ signinDescription:
145
+ "يصدق مستخدماً موجوداً؛ تنشئ POST جلسة جديدة بينما تحدّث PUT الجلسة الحالية.",
146
+ usernameField: "username — اسم المستخدم الفريد",
147
+ passwordField: "password — كلمة المرور (يتم تشفيرها على الخادم)",
148
+ signupDescription:
149
+ "ينشئ مستخدماً جديداً وفق مخطط جدول users الموضح أدناه.",
150
+ currentDescription: "يعيد بيانات المستخدم المرتبطة بالرمز {param}.",
151
+ signoutDescription:
152
+ "ينهي الجلسة النشطة ويمسح ملف تعريف الارتباط المتعلق بها.",
153
+ signupSchemaTitle: "مخطط جدول المستخدمين",
154
+ cookieHint:
155
+ "بعد تسجيل الدخول يُخزَّن معرف الجلسة في ملف تعريف الارتباط {param}، ويمكنك أيضاً تمريره يدوياً عند الحاجة.",
156
+ },
157
+ },
158
+
159
+ // Units
160
+ units: {
161
+ kB: "ك.ب",
162
+ MB: "م.ب",
163
+ GB: "ج.ب",
164
+ TB: "ت.ب",
165
+ },
166
+
167
+ // Plural examples
168
+ items: {
169
+ zero: "لا توجد عناصر",
170
+ one: "عنصر واحد",
171
+ two: "عنصران",
172
+ few: "{{count}} عناصر",
173
+ many: "{{count}} عنصر",
174
+ other: "{{count}} عنصر",
175
+ },
176
+
177
+ compression: {
178
+ label: "ضغط البيانات",
179
+ videoLarge:
180
+ "تم اكتشاف فيديو كبير ({size}). سنقوم بتحسينه محلياً قبل الرفع.",
181
+ videoHuge:
182
+ "تم اكتشاف فيديو ضخم ({size}). تتم عملية الضغط محلياً وقد تستغرق بعض الوقت.",
183
+ pdfLarge:
184
+ "تم اكتشاف ملف PDF كبير ({size}). سنعيد بناءه في متصفحك قبل الرفع.",
185
+ pdfHuge:
186
+ "تم اكتشاف ملف PDF ضخم ({size}). قد يستغرق عرض الصفحات محلياً بعض الوقت.",
187
+ },
188
+
189
+ // Dashboard
190
+ settings: "الإعدادات",
191
+ toggleTheme: "تغيير الوضع",
192
+ adminPanel: "لوحة التحكم",
193
+ allRightsReserved: "جميع الحقوق محفوظة",
194
+ logout: "تسجيل الخروج",
195
+ profile: "تعديل الحساب",
196
+ sessions: "سِجل الدخول",
197
+ blocks: "أجزاء الصفحات",
198
+ pages: "الصفحات",
199
+ users: "المستخدمين",
200
+ admin: "مدير",
201
+ user: "مستخدم",
202
+ guest: "زائر",
203
+ translations: "الترجمة",
204
+ assets: "الملفات",
205
+ databases: "قواعد البيانات",
206
+ createDatabase: "إنشاء قاعدة بيانات",
207
+ basicInformation: "المعلومات الأساسية",
208
+ basicInformationDescription: "حدد تفاصيل قاعدة البيانات واللغة الافتراضية.",
209
+ buildTables: "إنشاء الجداول",
210
+ buildTablesDescription: "صف الجداول المطلوبة وسننشئ لك مخططاً أولياً.",
211
+ tables: "الجداول",
212
+ table: "جدول",
213
+ totalDatabaseSize: "حجم قاعدة البيانات",
214
+ showAll: "أظهر الكل",
215
+ roles: "الأدوار",
216
+ primaryLanguage: "اللغة الأساسية",
217
+ secondaryLanguages: "اللغات الثانوية",
218
+ languages: {
219
+ ar: "العربية",
220
+ en: "الإنجليزية",
221
+ fr: "الفرنسية",
222
+ es: "الإسبانية",
223
+ },
224
+ tableSettings: "إعدادات الجدول",
225
+ primaryColor: "اللون الأساسي",
226
+ primaryDarkColor: "اللون الأساسي في الوضع الليلي",
227
+ auth: "تسجيل الدخول",
228
+ createdAt: "تاريخ الإنشاء",
229
+ updatedAt: "تاريخ التحديث",
230
+ createdBy: "أُنشأ من قبل",
231
+ id: "المعرف",
232
+ copiedSuccessfully: "تم النسخ بنجاح",
233
+ skipCompression: "تخطي الضغط",
234
+ print: "طباعة",
235
+
236
+ // Auth
237
+ signin: "تسجيل الدخول",
238
+ signup: "إنشاء حساب",
239
+ authentication: "صفحة الدخول",
240
+ forgotPassword: "هل نسيت كلمة المرور؟",
241
+ sendResetLink: "إرسال رابط إعادة التعيين",
242
+ resetPassword: "إعادة تعيين كلمة المرور",
243
+ newPassword: "كلمة المرور الجديدة",
244
+ confirmPassword: "تأكيد كلمة المرور",
245
+ passwordMinimumLength: "يجب ألا تقل كلمة المرور عن 8 أحرف.",
246
+ passwordsDoNotMatch: "كلمتا المرور غير متطابقتين.",
247
+ invalidResetLink:
248
+ "رابط إعادة تعيين كلمة المرور غير صالح أو منتهي الصلاحية.",
249
+ backToSignIn: "العودة إلى تسجيل الدخول",
250
+
251
+ // Table actions
252
+ tools: "الأدوات",
253
+ clearTable: "إفراغ الجدول",
254
+ exportCurrentData: "تصدير البيانات الحالية",
255
+ exportAllData: "تصدير كل البيانات",
256
+ databaseExport: "تصدير قاعدة البيانات",
257
+ databaseExportDescription:
258
+ "إنشاء أرشيف خاص لجميع المخططات والسجلات. ملفات الأصول غير مضمنة.",
259
+ startDatabaseExport: "إنشاء التصدير",
260
+ databaseExportFailed: "فشل تصدير قاعدة البيانات",
261
+ databaseExportExpires: "متاح حتى {date}",
262
+ databaseExportState: {
263
+ queued: "تم وضع التصدير في قائمة الانتظار",
264
+ running: "جاري تصدير قاعدة البيانات",
265
+ completed: "التصدير جاهز",
266
+ failed: "فشل التصدير",
267
+ expired: "انتهت صلاحية التصدير",
268
+ },
269
+ columns: "الأعمدة",
270
+ an_export_job_is_running_in_background: "هناك عملية تصدير جارية",
271
+ an_export_job_is_done: "عملية التصدير إنتهت",
272
+ uploadingImportFile: "جاري رفع ملف الاستيراد",
273
+ an_import_job_is_running_in_background: "هناك عملية استيراد جارية",
274
+ an_import_job_is_done: "اكتملت عملية الاستيراد",
275
+ an_import_job_failed: "فشلت عملية الاستيراد",
276
+ importedRows: "تم استيراد {count} عنصر",
277
+ kanban: "كانبان",
278
+ small: "صغير",
279
+ medium: "متوسط",
280
+ large: "كبير",
281
+ newTable: "جدول جديد",
282
+ newItem: "عنصر جديد",
283
+ schedules: "الجدولات",
284
+ tableSchedules: "جدولات الجدول",
285
+ runNow: "تشغيل الآن",
286
+ runAllActiveSchedules: "تشغيل جميع الجدولات النشطة",
287
+ noActiveSchedules: "لا توجد جدولات نشطة للتشغيل",
288
+ allActiveSchedulesRan: "تم تشغيل جميع الجدولات النشطة بنجاح",
289
+ someSchedulesFailed: "فشل تشغيل {count} جدولة",
290
+ tableSlug: "إسم الجدول",
291
+ quickSettings: "إعدادات سريعة",
292
+ makeItPrivate: "اجعله خاصًا",
293
+ read: "قراءة",
294
+ clickToToggleDate: "إضغط لتغيير التاريخ",
295
+
296
+ // Table settings
297
+ generalSettings: "إعدادات عامة",
298
+ schemaSettings: "إعدادات الأعمدة",
299
+ changeOrder: "تغيير الترتيب",
300
+ deleteTable: "حذف الجدول",
301
+ defaultSearchableColumns: "الأعمدة الإفتراضية للبحث",
302
+ disableIdEncryption: "إلغاء تشفير المعرف, وإعتماد الأرقام",
303
+ decodeID: "إلغاء تشفير المعرف",
304
+ prepend: "إضافة مقدمة",
305
+ recentItemsAppearAtTheTop: "العناصر الحديثة تظهر في الأعلى",
306
+ cache: "التخزين المؤقت",
307
+ clearCache: "حذف الكاش",
308
+ log: "سجل التتبع",
309
+ enableActivityLog: "تفعيل سجل عمليات الجدول",
310
+ realtime: "المزامنة الفورية",
311
+ enableRealtimeSync: "تفعيل المزامنة الفورية للبيانات",
312
+ realtimeEnabled: "المزامنة الفورية مفعلة",
313
+ connectingToRealtime: "جاري الاتصال بالمزامنة الفورية...",
314
+ defaultTableColumns: "الأعمدة الإفتراضية للجدول",
315
+ displayAs: "إظهار كـ",
316
+ tableItemLabel: "تسمية عناصر الجدول",
317
+ cards: "بطاقات",
318
+ list: "قائمة",
319
+ urlSuffix: "لاحقة الرابط",
320
+ config: "الإعدادات",
321
+
322
+ // Schema fields
323
+ fieldName: "إسم الحقل",
324
+ fieldDescription: "وصف الحقل",
325
+ allowedFiles: "الملفات المسموح بها",
326
+ options: "الخيارات",
327
+ valuesType: "نوع القيم",
328
+ tableName: "إسم الجدول",
329
+ expandByDefault: "توسيع بشكل افتراضي",
330
+ dragToMove: "اسحب للتحريك",
331
+ fileType: {
332
+ image: "صورة",
333
+ video: "فيديو",
334
+ audio: "صوت",
335
+ document: "نص",
336
+ archive: "أرشيف",
337
+ },
338
+ allowCustomValues: "السماح بإدخال قيم جديدة",
339
+ unique: "فريد",
340
+ uniqueGroup: "مجموعة فريدة",
341
+ regex: "التعبير النمطي",
342
+ uploadParams: "إعدادات الرفع",
343
+ minimumItems: "الحد الأدنى للعناصر",
344
+ maximumItems: "الحد الأقصى للعناصر",
345
+ ie: "على سبيل المثال",
346
+ useInison: "إستعمل Inison",
347
+ extendWhere: "توسيع البحث",
348
+ labelsColoring: "تفعيل الألوان",
349
+ optionLabel: "إسم الخيار",
350
+ optionColor: "لون الخيار",
351
+ optimizeAssets: "تحسين الملفات",
352
+ optimizeAssetsDescription: "ضغط وتحسين الملفات المرفوعة تلقائياً لأداء أفضل",
353
+ fieldTypeNotExisting: "نوع الحقل غير موجود",
354
+
355
+ // Activity log
356
+ latestActivities: "أخر العمليات",
357
+ updated: "قام بتعديل",
358
+ deleted: "قام بحذف",
359
+ removed: "محذوف",
360
+ created: "قام بإنشاء",
361
+ asFollow: "كالأتي",
362
+ in: "في",
363
+ to: "إلى",
364
+ from: "من",
365
+ as: "كـ",
366
+
367
+ // Assets
368
+ uploadFiles: "رفع ملفات",
369
+ uploadFolder: "رفع مجلد",
370
+ createFolder: "إنشاء مجلد",
371
+ dropFilesHere: "أسقط الملفات هنا",
372
+ folderName: "إسم المجلد",
373
+ image: "صورة",
374
+ video: "فيديو",
375
+ gallery: "قائمة الملفات",
376
+ assetLink: "رابط الملف",
377
+
378
+ // Search / Filters
379
+ convert_to_and_group: "تحويل إلى مجموعة و",
380
+ convert_to_or_group: "تحويل إلى مجموعة أو",
381
+ andGroup: "مجموعة و",
382
+ orGroup: "مجموعة أو",
383
+ favoriteFilters: "المرشحات المفضلة",
384
+ filterName: "اسم المرشح",
385
+ filterNameCannotBeEmpty: "اسم المرشح لا يمكن أن يكون فارغاً",
386
+ filterNameAlreadyExists: "اسم المرشح موجود بالفعل",
387
+ noFavoriteFilters: "لا توجد مرشحات مفضلة محفوظة",
388
+ relativeGroup: "نسبي",
389
+ relativePlaceholder: "مثال: قبل 3 أيام",
390
+ day: "يوم",
391
+ days: "أيام",
392
+ week: "أسبوع",
393
+ weeks: "أسابيع",
394
+ month: "شهر",
395
+ months: "شهور",
396
+ year: "سنة",
397
+ years: "سنوات",
398
+ ago: "مضت",
399
+ now: "الآن",
400
+ yesterday: "أمس",
401
+ tomorrow: "غدًا",
402
+ "last week": "الأسبوع الماضي",
403
+ "last month": "الشهر الماضي",
404
+ "last year": "السنة الماضية",
405
+ "next week": "الأسبوع القادم",
406
+ "next month": "الشهر القادم",
407
+ "next year": "السنة القادمة",
408
+
409
+ // Comparison operators
410
+ ComparisonOperator: {
411
+ equalTo: "يساوي",
412
+ notEqualTo: "لا يساوي",
413
+ greaterThan: "أكبر من",
414
+ greaterOrEqualTo: "أكبر من او يساوي",
415
+ lessThan: "أصغر من",
416
+ lessOrEqualTo: "أصغر من او يساوي",
417
+ contains: "يحتوي",
418
+ doesNotContain: "لا يحتوي",
419
+ isOneOf: "يضم",
420
+ isNotOneOf: "لا يضم",
421
+ },
422
+
423
+ // Field types
424
+ fields: {
425
+ string: "نص",
426
+ shortText: "نص قصير",
427
+ longText: "نص طويل",
428
+ html: "محرر نصوص",
429
+ number: "رقم",
430
+ password: "كلمة مرور",
431
+ link: "رابط",
432
+ email: "بريد",
433
+ color: "لون",
434
+ asset: "ملحق",
435
+ assets: "ملحقات",
436
+ tags: "وسوم",
437
+ date: "تاريخ",
438
+ dateTime: "تاريخ ووقت",
439
+ dateRange: "نطاق تاريخ",
440
+ dateTimeRange: "نطاق تاريخ ووقت",
441
+ month: "شهر",
442
+ monthRange: "نطاق أشهر",
443
+ year: "سنة",
444
+ yearRange: "نطاق سنوات",
445
+ quarter: "ربع سنة",
446
+ quarterRange: "نطاق أرباع السنة",
447
+ week: "أسبوع",
448
+ toggle: "سحب",
449
+ select: "قائمة",
450
+ checkbox: "خانة اختيار",
451
+ radio: "زر اختيار",
452
+ array: "مصفوفة",
453
+ object: "كائن",
454
+ objects: "مجموعة كوائن",
455
+ table: "جدول",
456
+ tableItems: "عناصر من جدول",
457
+ role: "دور",
458
+ mention: "نصوص جاهزة",
459
+ id: "معرف",
460
+ multiple: "متعدد",
461
+ range: "مجال",
462
+ slider: "شريط",
463
+ ip: "عنوان IP",
464
+ json: "JSON",
465
+ custom: "مخصص",
466
+ },
467
+
468
+ // Email settings
469
+ emailSettings: "إعدادات البريد الإلكتروني",
470
+ emailConfig: {
471
+ use_custom_smtp: "استخدام SMTP مخصص",
472
+ from_email: "بريد المُرسِل",
473
+ from_name: "اسم المُرسِل",
474
+ smtp_host: "خادم SMTP",
475
+ smtp_port: "منفذ SMTP",
476
+ smtp_user: "اسم مستخدم SMTP",
477
+ smtp_pass: "كلمة مرور SMTP",
478
+ smtp_secure: "اتصال آمن (TLS)",
479
+ },
480
+ smtpPasswordUnchanged: "اتركه فارغًا للاحتفاظ بكلمة المرور الحالية",
481
+ testEmailRecipient: "البريد الإلكتروني لمستلم الاختبار",
482
+ sendTestEmail: "إرسال بريد تجريبي",
483
+ emailSendFailed: "تعذر إرسال البريد الإلكتروني. تحقق من إعدادات البريد.",
484
+
485
+ // Email template editor
486
+ emailTemplates: {
487
+ variables: "المتغيرات",
488
+ variableName: "اسم المتغير (مثال: booking_date)",
489
+ add: "إضافة",
490
+ contentPlaceholder:
491
+ "ترميز <mjml>…</mjml> (أو نص عادي) — يتم استبدال المتغيرات مثل {{@user.email}} و {{@data.field}} عند الإرسال.",
492
+ preview: "معاينة ببيانات تجريبية",
493
+ previewLoading: "جارٍ إنشاء المعاينة…",
494
+ previewSubject: "الموضوع",
495
+ previewEmpty: "ابدأ بالكتابة لرؤية المعاينة.",
496
+ recordFieldsHint:
497
+ "جميع حقول السجل الذي يُفعّل البريد متاحة كـ {{field}} أو {{@data.field}}؛ والمستخدم الحالي كـ {{@user.field}}.",
498
+ sendTest: "إرسال تجريبي",
499
+ sendTestHint:
500
+ "يرسل القالب الحالي (حتى لو لم يُحفظ) إلى عنوان البريد أدناه.",
501
+ testRecipient: "بريد المستلم",
502
+ },
503
+
504
+ // Database settings
505
+ translationSettings: "إعدادات الترجمة",
506
+ deleteDatabase: "حذف قاعدة البيانات",
507
+
508
+ // Tables
509
+ templates: "قوالب البريد الإلكتروني",
510
+
511
+ // Flows
512
+ accessDenied: "لا توجد صلاحيات كافية",
513
+ throwError: "خطأ",
514
+ if: "إذا",
515
+ or: "أو",
516
+ newCard: "بطاقة جديدة",
517
+ onRequest: "عند الطلب",
518
+ onResponse: "عند العرض",
519
+ condition: "شرط",
520
+ addSchedule: "إضافة جدولة",
521
+ editSchedule: "تعديل الجدولة",
522
+ cronExpression: "تعبير كرون",
523
+ payloadTemplate: "قالب الحمولة",
524
+ nextRunAt: "التنفيذ القادم",
525
+ lastRunAt: "آخر تنفيذ",
526
+ lastError: "آخر خطأ",
527
+ active: "نشط",
528
+ inactive: "غير نشط",
529
+ preset: "إعداد مسبق",
530
+ excludeDays: "استثناء أيام",
531
+ excludeDaysHelp:
532
+ "لن تعمل الجدولة في الأيام المحددة حتى لو طابقها تعبير كرون.",
533
+ excludedDays: "الأيام المستثناة",
534
+ noExcludedDays: "لا يوجد",
535
+ payloadHelp:
536
+ "استخدم كائناً بصيغة JSON أو كائناً مُحوّلاً إلى نص بواسطة Inison للصف الذي تريد إنشاءه.",
537
+ payloadTemplateVariablesHelp:
538
+ "القوالب: {{ now }}، {{ now + 2h }}، {{ now|iso }}، {{ today|date }}، {{ schedule.id }}، {{ database.slug }}، {{ table.slug }}، {{ run.iso }}.",
539
+ previewResolvedPayload: "معاينة الحمولة بعد الحل",
540
+ resolvedPayloadPreview: "معاينة الحمولة النهائية",
541
+ formatJSON: "تحويل وتنسيق JSON",
542
+ fillExample: "ملء مثال",
543
+ customCronHint: "استخدم تعبير كرون مكوناً من 5 أجزاء بتوقيت UTC.",
544
+ presetDescriptionHourly: "يعمل مرة كل ساعة.",
545
+ presetDescriptionDaily: "يعمل يومياً عند منتصف الليل UTC.",
546
+ presetDescriptionWeekly: "يعمل كل يوم اثنين عند منتصف الليل UTC.",
547
+ presetDescriptionMonthly: "يعمل في أول يوم من كل شهر عند منتصف الليل UTC.",
548
+ presetDescriptionCustom: "استخدم تعبير كرون خاصاً للحصول على جدولة متقدمة.",
549
+ scheduleSummaryNoExcluded: "ستعمل هذه الجدولة في كل الأيام المطابقة.",
550
+ scheduleSummaryWithExcluded: "ستتجاوز هذه الجدولة: {days}.",
551
+ sunday: "الأحد",
552
+ monday: "الاثنين",
553
+ tuesday: "الثلاثاء",
554
+ wednesday: "الأربعاء",
555
+ thursday: "الخميس",
556
+ friday: "الجمعة",
557
+ saturday: "السبت",
558
+ hourly: "كل ساعة",
559
+ daily: "يومي",
560
+ weekly: "أسبوعي",
561
+ monthly: "شهري",
562
+ custom: "مخصص",
563
+
564
+ // AI Chatbot
565
+ chatbot: "المساعد الذكي",
566
+ chatWelcomeDefault:
567
+ "مرحباً! يمكنني مساعدتك في إنشاء جداول قاعدة بيانات جديدة أو تعديل الجداول الموجودة. صف ما تحتاجه وسأقوم بإنشاء المخططات لك.",
568
+ chatWelcomeScopedDatabase:
569
+ "مرحباً! يمكنني مساعدتك في إنشاء الجداول وتحديثها داخل قاعدة البيانات الحالية. لإنشاء قاعدة بيانات جديدة، استخدم مساحة قاعدة بيانات Inicontent.",
570
+ chatWelcomeTables:
571
+ "أنا جاهز لمساعدتك في تصميم وإدارة جداول قاعدة البيانات. يمكنك طلب إنشاء جداول جديدة أو تعديل الموجودة.",
572
+ chatWelcomePages:
573
+ "يمكنني مساعدتك في بناء صفحات الموقع. صف الصفحة التي تريدها وسأقوم بإنشاء الهيكل.",
574
+ chatPlaceholder: "صف قاعدة البيانات التي تريد بناءها...",
575
+ chatPlaceholderScopedDatabase:
576
+ "صف الجداول التي تريد إنشاءها أو تحديثها في قاعدة البيانات الحالية...",
577
+ chatPlaceholderShort: "اكتب رسالة...",
578
+ chatPaidPlanRequired: "هذا المساعد الذكي متاح فقط مع خطة مدفوعة نشطة.",
579
+ continue: "متابعة",
580
+ continued: "تمت المتابعة",
581
+ dataPreview: "معاينة البيانات",
582
+ generatingMoreTables: "جارٍ إنشاء الجداول المتبقية...",
583
+ homePage: "الصفحة الرئيسية",
584
+ namesUpdated: "تم تحديث الأسماء",
585
+ newChat: "محادثة جديدة",
586
+ pagePreviewUnavailable:
587
+ "تتوفر معاينة الصفحة الحية في منشئ مواقع Inicontent.",
588
+ applyChanges: "تطبيق التغييرات",
589
+ skipAiHelp: "تخطي مساعدة الذكاء الاصطناعي",
590
+ applied: "تم التطبيق",
591
+ publishData: "نشر البيانات",
592
+ published: "تم النشر",
593
+ translateData: "ترجمة",
594
+ translated: "تمت الترجمة",
595
+ tableDemo: "معاينة الجدول",
596
+ billing: "الفوترة",
597
+ reorderFlows: "إعادة ترتيب التدفقات",
598
+ reorderFields: "إعادة ترتيب الحقول",
599
+
600
+ billingUi: {
601
+ title: "الفوترة والاشتراك",
602
+ subtitle: "إدارة الخطة والفواتير وإعدادات الدفع.",
603
+ tabs: {
604
+ subscription: "الاشتراك",
605
+ invoices: "الفواتير",
606
+ settings: "الإعدادات",
607
+ },
608
+ noSubscriptionTitle: "لا يوجد اشتراك نشط",
609
+ noSubscriptionBody: "اختر خطة لتفعيل الفوترة وفتح ميزات التخزين.",
610
+ choosePlanTitle: "اختر خطتك",
611
+ currentPlanTitle: "الخطة الحالية",
612
+ planType: "نوع الخطة",
613
+ planTypes: {
614
+ base: "أساسية",
615
+ enterprise: "مؤسسية",
616
+ },
617
+ status: "الحالة",
618
+ statusLabels: {
619
+ active: "نشط",
620
+ canceled: "ملغي",
621
+ past_due: "متأخر",
622
+ paid: "مدفوع",
623
+ open: "مفتوح",
624
+ void: "ملغى",
625
+ uncollectible: "غير قابل للتحصيل",
626
+ unknown: "غير معروف",
627
+ },
628
+ databaseStorage: "تخزين قاعدة البيانات",
629
+ assetStorage: "تخزين الملفات",
630
+ changePlan: "تغيير الخطة",
631
+ hidePlanPicker: "إخفاء اختيار الخطة",
632
+ cancelSubscription: "إلغاء الاشتراك",
633
+ upgradePlanTitle: "ترقية الخطة أو تغييرها",
634
+ storageUsageTitle: "استخدام التخزين",
635
+ storageLimitExceededTitle: "تجاوز حد التخزين",
636
+ storageLimitExceededBody:
637
+ "لقد تجاوزت حد التخزين. فكر في ترقية خطتك أو حذف البيانات غير المستخدمة.",
638
+ invoicesEmpty: "لا توجد فواتير بعد.",
639
+ paymentSettingsTitle: "إعدادات الدفع",
640
+ paymentMethodTitle: "طريقة الدفع",
641
+ paymentMethodSubtitle: "إدارة طريقة الدفع عبر باي بال",
642
+ managePayment: "إدارة الدفع",
643
+ billingEmailTitle: "البريد الإلكتروني للفوترة",
644
+ updateEmail: "تحديث البريد",
645
+ autoRenewalTitle: "التجديد التلقائي",
646
+ autoRenewalMessage: "{{status}} - سيتم {{action}} في نهاية فترة الفوترة.",
647
+ autoRenew: {
648
+ enabled: "مفعل",
649
+ disabled: "معطل",
650
+ renew: "التجديد تلقائيا",
651
+ notRenew: "عدم التجديد",
652
+ enable: "تفعيل التجديد التلقائي",
653
+ disable: "تعطيل التجديد التلقائي",
654
+ },
655
+ cancelModalTitle: "إلغاء الاشتراك",
656
+ cancelModalBody:
657
+ "هل أنت متأكد من إلغاء الاشتراك؟ ستفقد الوصول إلى الميزات المدفوعة في نهاية فترة الفوترة الحالية.",
658
+ cancelModalKeep: "الاحتفاظ بالاشتراك",
659
+ cancelModalConfirm: "نعم، إلغاء",
660
+ invoiceId: "معرف المعاملة",
661
+ period: "الفترة",
662
+ description: "الوصف",
663
+ date: "التاريخ",
664
+ amount: "المبلغ",
665
+ invoice: "الفاتورة",
666
+ downloadPdf: "تنزيل PDF",
667
+ checkoutSuccess: {
668
+ processingPayment: "جار معالجة الدفع...",
669
+ paymentFailed: "فشل الدفع",
670
+ returnToBilling: "العودة إلى الفوترة",
671
+ subscriptionActivated: "تم تفعيل الاشتراك!",
672
+ thankYou: "شكرا لاختيارك Inicontent.",
673
+ goToDashboard: "الانتقال إلى لوحة التحكم",
674
+ viewBillingDetails: "عرض تفاصيل الفوترة",
675
+ subscriptionStatus: "حالة الاشتراك",
676
+ active: "نشط",
677
+ orderId: "معرف الطلب",
678
+ databaseStorage: "تخزين قاعدة البيانات",
679
+ assetStorage: "تخزين الملفات",
680
+ validUntil: "صالح حتى",
681
+ nextSteps: "الخطوات التالية",
682
+ firstProject: "يمكنك الآن إنشاء أول مشروع لك.",
683
+ confirmationEmail:
684
+ "تم إرسال رسالة تأكيد إلى بريدك الإلكتروني في باي بال. للبدء، توجه إلى لوحة التحكم وأنشئ أول قاعدة بيانات CMS.",
685
+ errors: {
686
+ noPaymentToken:
687
+ "لم يتم العثور على رمز الدفع. يرجى المحاولة مرة أخرى.",
688
+ failedToProcess: "تعذر معالجة الدفع. يرجى التواصل مع الدعم.",
689
+ paymentProcessingFailed: "فشلت معالجة الدفع",
690
+ },
691
+ },
692
+ checkoutCanceled: {
693
+ title: "تم إلغاء الدفع",
694
+ description: "لم يكتمل اشتراكك. لم يتم تحصيل أي رسوم.",
695
+ returnToBilling: "العودة إلى الفوترة",
696
+ backToHome: "العودة إلى الرئيسية",
697
+ supportMessage:
698
+ "إذا واجهت أي مشكلة أثناء الدفع، يرجى التواصل مع فريق الدعم لدينا:",
699
+ },
700
+ credit: {
701
+ balance: "رصيد الحساب",
702
+ balanceSubtitle: "رصيدك المستخدم لتسديد الرسوم الشهرية.",
703
+ addCredit: "إضافة رصيد",
704
+ requestBankTransfer: "طلب تحويل بنكي",
705
+ topupTitle: "شحن رصيد الحساب",
706
+ topupDescription:
707
+ "أضف رصيداً عبر PayPal. سيُستخدم رصيدك تلقائياً لتسديد الرسوم الشهرية.",
708
+ amount: "المبلغ (دولار)",
709
+ amountPlaceholder: "أدخل المبلغ",
710
+ youWillAdd: "ستضيف",
711
+ payWithPayPal: "الدفع عبر PayPal",
712
+ amountTooLow: "الحد الأدنى للمبلغ هو 1$",
713
+ amountTooHigh: "الحد الأقصى للمبلغ هو 1,000$",
714
+ topupFailed: "فشل في بدء الشحن. يرجى المحاولة مرة أخرى.",
715
+ topupSuccess: "تمت إضافة الرصيد بنجاح",
716
+ topupSuccessDescription: "تم تحديث رصيد حسابك.",
717
+ topupCanceled: "تم إلغاء الشحن",
718
+ topupCanceledDescription:
719
+ "تم إلغاء دفعتك عبر PayPal. لم يتم تحصيل أي رسوم.",
720
+ processingTopup: "جاري معالجة دفعتك…",
721
+ orderId: "رقم الطلب",
722
+ amountAdded: "المبلغ المضاف",
723
+ newBalance: "الرصيد الجديد",
724
+ requestTitle: "طلب رصيد بتحويل بنكي",
725
+ requestDescription:
726
+ "أرسل طلب تحويل بنكي. سيقوم المسؤول بالتحقق منه وتطبيق الرصيد على حسابك.",
727
+ note: "مرجع التحويل / ملاحظة",
728
+ notePlaceholder: "مرجع التحويل البنكي أو ملاحظات إضافية",
729
+ noteRequired: "يرجى تقديم مرجع التحويل أو ملاحظة",
730
+ submitRequest: "إرسال الطلب",
731
+ requestSubmitted: "تم إرسال طلب الرصيد. سيراجعه المسؤول قريباً.",
732
+ requestFailed: "فشل في إرسال الطلب. يرجى المحاولة مرة أخرى.",
733
+ pendingRequests: "طلبات الرصيد المعلقة",
734
+ noPendingRequests: "لا توجد طلبات معلقة",
735
+ refreshRequests: "تحديث",
736
+ approve: "موافقة",
737
+ reject: "رفض",
738
+ requestUser: "المستخدم",
739
+ requestAmount: "المبلغ",
740
+ requestNote: "الملاحظة",
741
+ requestStatus: "الحالة",
742
+ graceWarning:
743
+ "اشتراكك في فترة السماح. يرجى إضافة رصيد قبل انتهائها لتجنب التعليق.",
744
+ },
745
+ autoCharge: {
746
+ title: "خصم تلقائي عبر PayPal",
747
+ subtitle: "خصم حساب PayPal تلقائياً عندما يكون الرصيد غير كافٍ.",
748
+ statusEnabled: "مفعّل",
749
+ enable: "تفعيل الخصم التلقائي",
750
+ disable: "تعطيل الخصم التلقائي",
751
+ activating: "جاري تفعيل الخصم التلقائي…",
752
+ activatedTitle: "تم تفعيل الخصم التلقائي",
753
+ activatedDescription:
754
+ "تم حفظ حساب PayPal الخاص بك. سيتم خصم الرسوم الشهرية تلقائياً.",
755
+ activationFailed: "فشل تفعيل الخصم التلقائي",
756
+ missingApprovalSession: "جلسة الموافقة مفقودة. يرجى المحاولة مرة أخرى.",
757
+ setupCanceled: "تم إلغاء الإعداد",
758
+ setupCanceledDescription:
759
+ "لقد ألغيت تفويض PayPal. لم يتم تفعيل الخصم التلقائي.",
760
+ },
761
+ },
762
+
763
+ pricingUi: {
764
+ title: "اختر خطتك",
765
+ subtitle: "أسعار بسيطة وواضحة بلا رسوم خفية.",
766
+ databaseStorageLabel: "تخزين قاعدة البيانات (GB)",
767
+ assetStorageLabel: "تخزين الملفات (GB)",
768
+ basePlan: "الخطة الأساسية",
769
+ additionalStorage: "تخزين إضافي",
770
+ totalMonthly: "الإجمالي الشهري",
771
+ subscribeNow: "اشترك الآن",
772
+ upgradePlan: "ترقية الخطة",
773
+ requestQuote: "طلب عرض سعر",
774
+ currentUsage: "استخدام التخزين الحالي",
775
+ usageWarning: "لقد تجاوزت حد التخزين. فكر في ترقية خطتك.",
776
+ faqTitle: "الأسئلة الشائعة",
777
+ faq: {
778
+ changePlanTitle: "هل يمكنني تغيير خطة التخزين في أي وقت؟",
779
+ changePlanBody:
780
+ "نعم. يمكنك ترقية أو خفض خطة التخزين في أي وقت. تسري التغييرات في دورة الفوترة التالية.",
781
+ exceedQuotaTitle: "ماذا يحدث إذا تجاوزت حد التخزين؟",
782
+ exceedQuotaBody:
783
+ "سيتم إشعارك عند الاقتراب من الحد. إذا تجاوزته فسنقوم بفوترة التخزين الإضافي وفق أسعارنا.",
784
+ contractTitle: "هل هناك عقد طويل الأجل؟",
785
+ contractBody:
786
+ "لا. جميع الخطط شهرية بدون التزام طويل. يمكنك الإلغاء في أي وقت.",
787
+ annualDiscountTitle: "هل تقدمون خصومات سنوية؟",
788
+ annualDiscountBody:
789
+ "تواصل مع فريق المبيعات للحصول على أسعار مؤسسية مخصصة وخصومات حجم.",
790
+ },
791
+ },
792
+
793
+ pricingPageUi: {
794
+ headerTitle: "خطط الأسعار",
795
+ headerSubtitle:
796
+ "أسعار بسيطة وشفافة بلا رسوم خفية. ادفع فقط مقابل ما تستخدمه.",
797
+ ctaTitle: "جاهز للبدء؟",
798
+ ctaSubtitle:
799
+ "انضم إلى آلاف المطورين الذين يستخدمون Inicontent لإدارة محتواهم.",
800
+ viewSubscription: "عرض اشتراكك",
801
+ },
802
+
803
+ // JSON Field
804
+ format: "تنسيق",
805
+ invalidJSON: "JSON غير صحيح",
806
+
807
+ // Dashboards
808
+ dashboards: "لوحات المعلومات",
809
+ dashboard: "لوحة المعلومات",
810
+ dashboardName: "اسم لوحة المعلومات",
811
+ dashboardSettings: "إعدادات لوحة المعلومات",
812
+ editDashboard: "تعديل لوحة المعلومات",
813
+ createDashboard: "إنشاء لوحة معلومات",
814
+ widgets: "الأدوات",
815
+ widget: "أداة",
816
+ addWidget: "إضافة أداة",
817
+ editWidget: "تعديل الأداة",
818
+ widgetTitle: "عنوان الأداة",
819
+ untitledWidget: "أداة بدون عنوان",
820
+ noWidgets: "لا توجد أدوات بعد. أضف واحدة للبدء.",
821
+ widgetCount: {
822
+ zero: "لا توجد أدوات",
823
+ one: "أداة واحدة",
824
+ two: "أداتان",
825
+ few: "{count} أدوات",
826
+ many: "{count} أداة",
827
+ other: "{count} أداة",
828
+ },
829
+ counter: "عداد",
830
+ line: "رسم بياني خطي",
831
+ bar: "رسم بياني شريطي",
832
+ pie: "رسم بياني دائري",
833
+ lineChart: "رسم بياني خطي",
834
+ barChart: "رسم بياني شريطي",
835
+ pieChart: "رسم بياني دائري",
836
+ sourceTable: "الجدول المصدر",
837
+ selectTable: "اختر جدول",
838
+ selectField: "اختر حقل",
839
+ selectType: "اختر نوع",
840
+ operation: "العملية",
841
+ count: "عدد",
842
+ sum: "مجموع",
843
+ max: "أقصى",
844
+ min: "أدنى",
845
+ groupBy: "تجميع حسب",
846
+ dateField: "حقل التاريخ",
847
+ dateRange: "نطاق التاريخ",
848
+ last7Days: "آخر 7 أيام",
849
+ last30Days: "آخر 30 يوم",
850
+ last90Days: "آخر 90 يوم",
851
+ lastYear: "السنة الماضية",
852
+ allTime: "كل الوقت",
853
+ limit: "الحد",
854
+ noData: "لا توجد بيانات",
855
+ columnsToDisplay: "الأعمدة المعروضة",
856
+ sortField: "ترتيب حسب",
857
+ sortOrder: "اتجاه الترتيب",
858
+ asc: "تصاعدي",
859
+ desc: "تنازلي",
860
+
861
+ // Translation drawer
862
+ translateItem: "ترجمة العنصر",
863
+ original: "النص الأصلي",
864
+ noSecondaryLanguages: "لا توجد لغات ثانوية مُعدَّة لهذه قاعدة البيانات.",
865
+ noTranslatableFields: "لا توجد حقول نصية قابلة للترجمة في هذا الجدول.",
866
+ translationPlaceholder: "أدخل الترجمة…",
867
+ translationsSaved: "تم حفظ الترجمات",
868
+ translationCount: "{count} ترجمة",
869
+
870
+ passkey: {
871
+ securityTitle: "أمان مفتاح المرور",
872
+ description: "سجّل مفتاح مرور لتسجيل الدخول باستخدام التحقق من جهازك.",
873
+ register: "تسجيل مفتاح مرور",
874
+ enrollmentTitle: "إعداد مفتاح مرور",
875
+ enrollmentPrompt:
876
+ "هل ترغب في إعداد مفتاح مرور لتسجيل دخول أسرع وأكثر أمانًا على هذا الجهاز؟",
877
+ notNow: "ليس الآن",
878
+ notSupported: "هذا المتصفح لا يدعم مفاتيح المرور.",
879
+ hint: "يمكنك استخدام Face ID أو Touch ID أو مفتاح أمان بعد التسجيل.",
880
+ registeredSuccessfully: "تم تسجيل مفتاح المرور بنجاح.",
881
+ registrationFailed: "فشل تسجيل مفتاح المرور.",
882
+ signin: "تسجيل الدخول بمفتاح المرور",
883
+ signinHintUsername:
884
+ "أدخل اسم المستخدم أو البريد الإلكتروني ثم تابع باستخدام مفتاح المرور.",
885
+ signinHintDevice:
886
+ "استخدم التحقق من جهازك (Face ID أو Touch ID أو مفتاح أمان).",
887
+ signinFailed: "فشل تسجيل الدخول بمفتاح المرور.",
888
+ },
889
+
890
+ // Offline / sync
891
+ online: "متصل",
892
+ offline: "غير متصل",
893
+ onlineTooltip: "متصل بالخادم",
894
+ offlineTooltip:
895
+ "أنت غير متصل. يمكنك مواصلة العرض والتحرير — تُحفظ التغييرات محليًا وتُزامن عند إعادة الاتصال.",
896
+ syncingPending: "جارٍ المزامنة…",
897
+ pendingChanges: "{count} تغيير معلق",
898
+ syncNow: "زامن الآن",
899
+ conflictsPending: "{count} تعارض بحاجة إلى حل",
900
+ updateAvailable: "يتوفر تحديث",
901
+ installApp: "تثبيت التطبيق",
902
+ resolveConflicts: "حل التعارضات",
903
+ conflictModalIntro:
904
+ "تغييرك دون اتصال يتعارض مع نسخة أحدث على الخادم. اختر النسخة التي تريد الاحتفاظ بها.",
905
+ noConflicts: "لا توجد تعارضات لحلها",
906
+ discardAll: "تجاهل الكل",
907
+ localVersion: "نسختك",
908
+ serverVersion: "نسخة الخادم",
909
+ keepLocal: "الاحتفاظ بنسختي",
910
+ keepServer: "الاحتفاظ بنسخة الخادم",
911
+ changeQueuedForSync: "تمت إضافة التغيير إلى قائمة المزامنة",
912
+ localChangeDiscarded: "تم تجاهل التغيير المحلي",
913
+ allLocalChangesDiscarded: "تم تجاهل جميع التغييرات المحلية",
914
+ queuedOfflineToast:
915
+ "أنت غير متصل — تم حفظ تغييرك محليًا وسيتم مزامنته عند عودتك للاتصال.",
916
+ createFailed: "تعذر إنشاء العنصر.",
917
+ updateFailed: "تعذر تحديث العنصر.",
918
+ deleteFailed: "تعذر حذف العنصر.",
919
+ errorFetchingSchema: "تعذر جلب مخطط الجدول.",
920
+
921
+ // Document scanner
922
+ documentScanner: "ماسح المستندات",
923
+ camera: "الكاميرا",
924
+ uploadImage: "رفع صورة",
925
+ openCamera: "فتح الكاميرا",
926
+ capture: "التقاط",
927
+ retake: "إعادة",
928
+ cameraUnavailable: "الكاميرا غير متاحة",
929
+ loadingScanner: "جارٍ تحميل ماسح المستندات",
930
+ retry: "إعادة المحاولة",
931
+ dropImageOrClick: "أسقط صورة هنا أو انقر للتصفح",
932
+ preview: "معاينة",
933
+ extractingDocument: "جارٍ استخراج المستند",
934
+ ocr: "OCR",
935
+ language: "اللغة",
936
+ extractedText: "النص المستخرج",
937
+ copy: "نسخ",
938
+ insertAsText: "إدراج كنص",
939
+ insertAsImage: "إدراج كصورة",
940
+ useThisScan: "استخدام هذا المسح",
941
+ documentNotDetected: "لم يتم اكتشاف المستند",
942
+ adjustCorners: "ضبط الزوايا",
943
+ dragHandlesToAdjust: "اسحب المقابض الخضراء لتحديد البطاقة ثم طبّق.",
944
+ applyCrop: "تطبيق القص",
945
+ scanDocument: "مسح مستند",
946
+
947
+ // مساحات عمل المنصة (الصفحات، الكتل، القوالب، الفوترة)
948
+ openInPlatform: "فتح في إينيكونتينت",
949
+ platformFeatureIntro: "مساحة عمل {{feature}} جزء من منصة إينيكونتينت.",
950
+ platformFeatureAt: "افتحها على:",
951
+ platformFeatureHint: "سيتم تسجيل دخولك تلقائيًا بجلستك الحالية.",
952
+
953
+ // النسخ الاحتياطية
954
+ backups: "النسخ الاحتياطية",
955
+ backupsAdminOnly: "فقط مالك القاعدة (المدير) يمكنه إدارة النسخ الاحتياطية.",
956
+ createBackup: "إنشاء نسخة احتياطية",
957
+ backupName: "اسم النسخة",
958
+ backupNamePlaceholder: "مثال: قبل الإطلاق",
959
+ backupNameHelp: "اتركه فارغاً لتوليد اسم تلقائي بالتاريخ والوقت.",
960
+ backupType: "نوع النسخة",
961
+ fullBackup: "القاعدة كاملة",
962
+ tableBackup: "جدول",
963
+ fullBackupHelp:
964
+ "لقطة لمجلد القاعدة بالكامل (الجداول والبيانات الوصفية) كأرشيف خام.",
965
+ tableBackupHelp: "لقطة لمجلد جدول واحد كأرشيف خام.",
966
+ backupCreatedSuccessfully: "بدأت النسخة. ستظهر هنا عند اكتمالها.",
967
+ backupDeletedSuccessfully: "تم حذف النسخة",
968
+ backupOrigin: "المصدر",
969
+ automaticBackup: "تلقائي",
970
+ manualBackup: "يدوي",
971
+ backupSize: "الحجم",
972
+ backupState: "الحالة",
973
+ queued: "في الانتظار",
974
+ running: "قيد التنفيذ",
975
+ completed: "مكتملة",
976
+ failed: "فاشلة",
977
+ restoring: "جارٍ الاستعادة",
978
+ restoreBackup: "استعادة النسخة",
979
+ restoreScope: "نطاق الاستعادة",
980
+ restoreWarning:
981
+ "الاستعادة تستبدل البيانات الموجودة بمحتوى هذه النسخة. لا يمكن التراجع عن هذا الإجراء.",
982
+ restoreConfirmation: "تأكيد",
983
+ restoreConfirmationHelp: "أفهم أن هذا سيستبدل البيانات الموجودة.",
984
+ restoreStarted: "بدأت الاستعادة. سيتم إشعارك عند اكتمالها.",
985
+ restore: "استعادة",
986
+ backupScopeTable: "جدول (المجلد كاملاً)",
987
+ backupScopeTableSchema: "مخطط الجدول فقط",
988
+ backupScopeTableData: "بيانات الجدول فقط",
989
+ backupScopeDatabaseSchema: "مخططات جميع الجداول",
990
+ backupScopeDatabaseData: "بيانات جميع الجداول",
991
+ backupScopeDatabaseFull: "القاعدة كاملة (المخططات + البيانات)",
992
+ folder: "مجلد",
993
+ deleteBackupConfirm:
994
+ 'حذف النسخة الاحتياطية "{name}"؟ لا يمكن التراجع عن هذا الإجراء.',
995
+ },
996
+ } as const;