@adminiumjs/i18n 0.1.0-rc.1

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 (234) hide show
  1. package/LICENSE +661 -0
  2. package/dist/create-i18n.d.ts +48 -0
  3. package/dist/create-i18n.d.ts.map +1 -0
  4. package/dist/create-i18n.js +98 -0
  5. package/dist/create-i18n.js.map +1 -0
  6. package/dist/format/index.d.ts +70 -0
  7. package/dist/format/index.d.ts.map +1 -0
  8. package/dist/format/index.js +217 -0
  9. package/dist/format/index.js.map +1 -0
  10. package/dist/icu-format.d.ts +17 -0
  11. package/dist/icu-format.d.ts.map +1 -0
  12. package/dist/icu-format.js +52 -0
  13. package/dist/icu-format.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +12 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/locales.d.ts +99 -0
  19. package/dist/locales.d.ts.map +1 -0
  20. package/dist/locales.js +55 -0
  21. package/dist/locales.js.map +1 -0
  22. package/dist/react.d.ts +26 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +61 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/resources/ar-eg/common.d.ts +1964 -0
  27. package/dist/resources/ar-eg/common.d.ts.map +1 -0
  28. package/dist/resources/ar-eg/common.js +1963 -0
  29. package/dist/resources/ar-eg/common.js.map +1 -0
  30. package/dist/resources/ar-eg/errors.d.ts +45 -0
  31. package/dist/resources/ar-eg/errors.d.ts.map +1 -0
  32. package/dist/resources/ar-eg/errors.js +44 -0
  33. package/dist/resources/ar-eg/errors.js.map +1 -0
  34. package/dist/resources/ar-eg/generated.d.ts +20 -0
  35. package/dist/resources/ar-eg/generated.d.ts.map +1 -0
  36. package/dist/resources/ar-eg/generated.js +19 -0
  37. package/dist/resources/ar-eg/generated.js.map +1 -0
  38. package/dist/resources/ar-eg/studio.d.ts +18 -0
  39. package/dist/resources/ar-eg/studio.d.ts.map +1 -0
  40. package/dist/resources/ar-eg/studio.js +17 -0
  41. package/dist/resources/ar-eg/studio.js.map +1 -0
  42. package/dist/resources/ar-eg/ui.d.ts +996 -0
  43. package/dist/resources/ar-eg/ui.d.ts.map +1 -0
  44. package/dist/resources/ar-eg/ui.js +995 -0
  45. package/dist/resources/ar-eg/ui.js.map +1 -0
  46. package/dist/resources/cs-cz/common.d.ts +1964 -0
  47. package/dist/resources/cs-cz/common.d.ts.map +1 -0
  48. package/dist/resources/cs-cz/common.js +1963 -0
  49. package/dist/resources/cs-cz/common.js.map +1 -0
  50. package/dist/resources/cs-cz/errors.d.ts +45 -0
  51. package/dist/resources/cs-cz/errors.d.ts.map +1 -0
  52. package/dist/resources/cs-cz/errors.js +44 -0
  53. package/dist/resources/cs-cz/errors.js.map +1 -0
  54. package/dist/resources/cs-cz/generated.d.ts +20 -0
  55. package/dist/resources/cs-cz/generated.d.ts.map +1 -0
  56. package/dist/resources/cs-cz/generated.js +19 -0
  57. package/dist/resources/cs-cz/generated.js.map +1 -0
  58. package/dist/resources/cs-cz/studio.d.ts +18 -0
  59. package/dist/resources/cs-cz/studio.d.ts.map +1 -0
  60. package/dist/resources/cs-cz/studio.js +17 -0
  61. package/dist/resources/cs-cz/studio.js.map +1 -0
  62. package/dist/resources/cs-cz/ui.d.ts +996 -0
  63. package/dist/resources/cs-cz/ui.d.ts.map +1 -0
  64. package/dist/resources/cs-cz/ui.js +995 -0
  65. package/dist/resources/cs-cz/ui.js.map +1 -0
  66. package/dist/resources/da-dk/common.d.ts +1964 -0
  67. package/dist/resources/da-dk/common.d.ts.map +1 -0
  68. package/dist/resources/da-dk/common.js +1963 -0
  69. package/dist/resources/da-dk/common.js.map +1 -0
  70. package/dist/resources/da-dk/errors.d.ts +45 -0
  71. package/dist/resources/da-dk/errors.d.ts.map +1 -0
  72. package/dist/resources/da-dk/errors.js +44 -0
  73. package/dist/resources/da-dk/errors.js.map +1 -0
  74. package/dist/resources/da-dk/generated.d.ts +20 -0
  75. package/dist/resources/da-dk/generated.d.ts.map +1 -0
  76. package/dist/resources/da-dk/generated.js +19 -0
  77. package/dist/resources/da-dk/generated.js.map +1 -0
  78. package/dist/resources/da-dk/studio.d.ts +18 -0
  79. package/dist/resources/da-dk/studio.d.ts.map +1 -0
  80. package/dist/resources/da-dk/studio.js +17 -0
  81. package/dist/resources/da-dk/studio.js.map +1 -0
  82. package/dist/resources/da-dk/ui.d.ts +996 -0
  83. package/dist/resources/da-dk/ui.d.ts.map +1 -0
  84. package/dist/resources/da-dk/ui.js +995 -0
  85. package/dist/resources/da-dk/ui.js.map +1 -0
  86. package/dist/resources/de-de/common.d.ts +1964 -0
  87. package/dist/resources/de-de/common.d.ts.map +1 -0
  88. package/dist/resources/de-de/common.js +1963 -0
  89. package/dist/resources/de-de/common.js.map +1 -0
  90. package/dist/resources/de-de/errors.d.ts +45 -0
  91. package/dist/resources/de-de/errors.d.ts.map +1 -0
  92. package/dist/resources/de-de/errors.js +44 -0
  93. package/dist/resources/de-de/errors.js.map +1 -0
  94. package/dist/resources/de-de/generated.d.ts +20 -0
  95. package/dist/resources/de-de/generated.d.ts.map +1 -0
  96. package/dist/resources/de-de/generated.js +19 -0
  97. package/dist/resources/de-de/generated.js.map +1 -0
  98. package/dist/resources/de-de/studio.d.ts +18 -0
  99. package/dist/resources/de-de/studio.d.ts.map +1 -0
  100. package/dist/resources/de-de/studio.js +17 -0
  101. package/dist/resources/de-de/studio.js.map +1 -0
  102. package/dist/resources/de-de/ui.d.ts +996 -0
  103. package/dist/resources/de-de/ui.d.ts.map +1 -0
  104. package/dist/resources/de-de/ui.js +995 -0
  105. package/dist/resources/de-de/ui.js.map +1 -0
  106. package/dist/resources/en-us/common.d.ts +1964 -0
  107. package/dist/resources/en-us/common.d.ts.map +1 -0
  108. package/dist/resources/en-us/common.js +1963 -0
  109. package/dist/resources/en-us/common.js.map +1 -0
  110. package/dist/resources/en-us/errors.d.ts +45 -0
  111. package/dist/resources/en-us/errors.d.ts.map +1 -0
  112. package/dist/resources/en-us/errors.js +44 -0
  113. package/dist/resources/en-us/errors.js.map +1 -0
  114. package/dist/resources/en-us/generated.d.ts +20 -0
  115. package/dist/resources/en-us/generated.d.ts.map +1 -0
  116. package/dist/resources/en-us/generated.js +19 -0
  117. package/dist/resources/en-us/generated.js.map +1 -0
  118. package/dist/resources/en-us/studio.d.ts +18 -0
  119. package/dist/resources/en-us/studio.d.ts.map +1 -0
  120. package/dist/resources/en-us/studio.js +17 -0
  121. package/dist/resources/en-us/studio.js.map +1 -0
  122. package/dist/resources/en-us/ui.d.ts +996 -0
  123. package/dist/resources/en-us/ui.d.ts.map +1 -0
  124. package/dist/resources/en-us/ui.js +995 -0
  125. package/dist/resources/en-us/ui.js.map +1 -0
  126. package/dist/resources/fr-fr/common.d.ts +1964 -0
  127. package/dist/resources/fr-fr/common.d.ts.map +1 -0
  128. package/dist/resources/fr-fr/common.js +1963 -0
  129. package/dist/resources/fr-fr/common.js.map +1 -0
  130. package/dist/resources/fr-fr/errors.d.ts +45 -0
  131. package/dist/resources/fr-fr/errors.d.ts.map +1 -0
  132. package/dist/resources/fr-fr/errors.js +44 -0
  133. package/dist/resources/fr-fr/errors.js.map +1 -0
  134. package/dist/resources/fr-fr/generated.d.ts +20 -0
  135. package/dist/resources/fr-fr/generated.d.ts.map +1 -0
  136. package/dist/resources/fr-fr/generated.js +19 -0
  137. package/dist/resources/fr-fr/generated.js.map +1 -0
  138. package/dist/resources/fr-fr/studio.d.ts +18 -0
  139. package/dist/resources/fr-fr/studio.d.ts.map +1 -0
  140. package/dist/resources/fr-fr/studio.js +17 -0
  141. package/dist/resources/fr-fr/studio.js.map +1 -0
  142. package/dist/resources/fr-fr/ui.d.ts +996 -0
  143. package/dist/resources/fr-fr/ui.d.ts.map +1 -0
  144. package/dist/resources/fr-fr/ui.js +995 -0
  145. package/dist/resources/fr-fr/ui.js.map +1 -0
  146. package/dist/resources/index.d.ts +8 -0
  147. package/dist/resources/index.d.ts.map +1 -0
  148. package/dist/resources/index.js +21 -0
  149. package/dist/resources/index.js.map +1 -0
  150. package/dist/resources/lazy.d.ts +20 -0
  151. package/dist/resources/lazy.d.ts.map +1 -0
  152. package/dist/resources/lazy.js +49 -0
  153. package/dist/resources/lazy.js.map +1 -0
  154. package/dist/resources/zh-cn/common.d.ts +1964 -0
  155. package/dist/resources/zh-cn/common.d.ts.map +1 -0
  156. package/dist/resources/zh-cn/common.js +1963 -0
  157. package/dist/resources/zh-cn/common.js.map +1 -0
  158. package/dist/resources/zh-cn/errors.d.ts +45 -0
  159. package/dist/resources/zh-cn/errors.d.ts.map +1 -0
  160. package/dist/resources/zh-cn/errors.js +44 -0
  161. package/dist/resources/zh-cn/errors.js.map +1 -0
  162. package/dist/resources/zh-cn/generated.d.ts +20 -0
  163. package/dist/resources/zh-cn/generated.d.ts.map +1 -0
  164. package/dist/resources/zh-cn/generated.js +19 -0
  165. package/dist/resources/zh-cn/generated.js.map +1 -0
  166. package/dist/resources/zh-cn/studio.d.ts +18 -0
  167. package/dist/resources/zh-cn/studio.d.ts.map +1 -0
  168. package/dist/resources/zh-cn/studio.js +17 -0
  169. package/dist/resources/zh-cn/studio.js.map +1 -0
  170. package/dist/resources/zh-cn/ui.d.ts +996 -0
  171. package/dist/resources/zh-cn/ui.d.ts.map +1 -0
  172. package/dist/resources/zh-cn/ui.js +995 -0
  173. package/dist/resources/zh-cn/ui.js.map +1 -0
  174. package/dist/resources/zh-tw/common.d.ts +1964 -0
  175. package/dist/resources/zh-tw/common.d.ts.map +1 -0
  176. package/dist/resources/zh-tw/common.js +1963 -0
  177. package/dist/resources/zh-tw/common.js.map +1 -0
  178. package/dist/resources/zh-tw/errors.d.ts +45 -0
  179. package/dist/resources/zh-tw/errors.d.ts.map +1 -0
  180. package/dist/resources/zh-tw/errors.js +44 -0
  181. package/dist/resources/zh-tw/errors.js.map +1 -0
  182. package/dist/resources/zh-tw/generated.d.ts +20 -0
  183. package/dist/resources/zh-tw/generated.d.ts.map +1 -0
  184. package/dist/resources/zh-tw/generated.js +19 -0
  185. package/dist/resources/zh-tw/generated.js.map +1 -0
  186. package/dist/resources/zh-tw/studio.d.ts +18 -0
  187. package/dist/resources/zh-tw/studio.d.ts.map +1 -0
  188. package/dist/resources/zh-tw/studio.js +17 -0
  189. package/dist/resources/zh-tw/studio.js.map +1 -0
  190. package/dist/resources/zh-tw/ui.d.ts +996 -0
  191. package/dist/resources/zh-tw/ui.d.ts.map +1 -0
  192. package/dist/resources/zh-tw/ui.js +995 -0
  193. package/dist/resources/zh-tw/ui.js.map +1 -0
  194. package/locales/ar-EG/common.json +1954 -0
  195. package/locales/ar-EG/errors.json +35 -0
  196. package/locales/ar-EG/generated.json +10 -0
  197. package/locales/ar-EG/studio.json +8 -0
  198. package/locales/ar-EG/ui.json +986 -0
  199. package/locales/cs-CZ/common.json +1954 -0
  200. package/locales/cs-CZ/errors.json +35 -0
  201. package/locales/cs-CZ/generated.json +10 -0
  202. package/locales/cs-CZ/studio.json +8 -0
  203. package/locales/cs-CZ/ui.json +986 -0
  204. package/locales/da-DK/common.json +1954 -0
  205. package/locales/da-DK/errors.json +35 -0
  206. package/locales/da-DK/generated.json +10 -0
  207. package/locales/da-DK/studio.json +8 -0
  208. package/locales/da-DK/ui.json +986 -0
  209. package/locales/de-DE/common.json +1954 -0
  210. package/locales/de-DE/errors.json +35 -0
  211. package/locales/de-DE/generated.json +10 -0
  212. package/locales/de-DE/studio.json +8 -0
  213. package/locales/de-DE/ui.json +986 -0
  214. package/locales/en-US/common.json +1954 -0
  215. package/locales/en-US/errors.json +35 -0
  216. package/locales/en-US/generated.json +10 -0
  217. package/locales/en-US/studio.json +8 -0
  218. package/locales/en-US/ui.json +986 -0
  219. package/locales/fr-FR/common.json +1954 -0
  220. package/locales/fr-FR/errors.json +35 -0
  221. package/locales/fr-FR/generated.json +10 -0
  222. package/locales/fr-FR/studio.json +8 -0
  223. package/locales/fr-FR/ui.json +986 -0
  224. package/locales/zh-CN/common.json +1954 -0
  225. package/locales/zh-CN/errors.json +35 -0
  226. package/locales/zh-CN/generated.json +10 -0
  227. package/locales/zh-CN/studio.json +8 -0
  228. package/locales/zh-CN/ui.json +986 -0
  229. package/locales/zh-TW/common.json +1954 -0
  230. package/locales/zh-TW/errors.json +35 -0
  231. package/locales/zh-TW/generated.json +10 -0
  232. package/locales/zh-TW/studio.json +8 -0
  233. package/locales/zh-TW/ui.json +986 -0
  234. package/package.json +51 -0
@@ -0,0 +1,1964 @@
1
+ /**
2
+ * GENERATED MIRROR of ../../../locales/ar-EG/common.json — do not edit by hand.
3
+ * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
4
+ * this TS mirror exists so the runtime bundles en-US resources (and chunk-splits
5
+ * the other locales) without JSON import attributes (browser + NodeNext safe).
6
+ * Parity is enforced by src/resources/parity.test.ts. Regenerate with
7
+ * scripts/gen-resources.mjs.
8
+ */
9
+ declare const _default: {
10
+ readonly common: {
11
+ readonly dismiss: "إغلاق";
12
+ readonly notifications: "الإشعارات";
13
+ readonly retry: "إعادة المحاولة";
14
+ readonly undo: "تراجع";
15
+ readonly close: "إغلاق";
16
+ readonly cancel: "إلغاء";
17
+ readonly back: "رجوع";
18
+ readonly loading: "جارٍ التحميل";
19
+ readonly clearSearch: "مسح البحث";
20
+ readonly clear: "مسح";
21
+ readonly save: "حفظ";
22
+ };
23
+ readonly auth: {
24
+ readonly headline: "حوِّل أي قاعدة بيانات إلى لوحة معلومات.";
25
+ readonly trust: "نواة AGPL · استضافة ذاتية · بياناتك تبقى ملكك";
26
+ readonly signIn: {
27
+ readonly title: "مرحبًا بعودتك";
28
+ readonly subtitle: "سجِّل الدخول إلى مساحة عمل Adminium الخاصة بك.";
29
+ readonly email: "البريد الإلكتروني";
30
+ readonly emailInvalid: "أدخل عنوان بريد إلكتروني صالحًا.";
31
+ readonly password: "كلمة المرور";
32
+ readonly passwordRequired: "أدخل كلمة المرور.";
33
+ readonly showPassword: "إظهار كلمة المرور";
34
+ readonly hidePassword: "إخفاء كلمة المرور";
35
+ readonly remember: "إبقائي مسجَّل الدخول";
36
+ readonly forgot: "نسيتها؟";
37
+ readonly submit: "تسجيل الدخول";
38
+ readonly invalid: "البريد الإلكتروني أو كلمة المرور غير صحيحة.";
39
+ readonly rateLimited: "محاولات كثيرة جدًا — حاول مجددًا بعد دقيقة.";
40
+ readonly failed: "فشل تسجيل الدخول. تحقق من اتصالك وحاول مجددًا.";
41
+ };
42
+ readonly forgot: {
43
+ readonly title: "إعادة تعيين كلمة المرور";
44
+ readonly email: "البريد الإلكتروني";
45
+ readonly emailInvalid: "أدخل عنوان بريد إلكتروني صالحًا.";
46
+ readonly submit: "إرسال رابط إعادة التعيين";
47
+ readonly sentTitle: "تحقق من بريدك الإلكتروني";
48
+ readonly resend: "إعادة الإرسال";
49
+ readonly back: "العودة إلى تسجيل الدخول";
50
+ readonly done: "العودة إلى تسجيل الدخول";
51
+ readonly rateLimited: "طلبات كثيرة جدًا — حاول مجددًا لاحقًا.";
52
+ readonly failed: "حدث خطأ ما. حاول مجددًا.";
53
+ readonly smtpUnconfigured: "لا يوجد خادم بريد مُهيّأ في نسخة Adminium هذه، لذا لا يمكنها إرسال رابط إعادة التعيين. اطلب من المسؤول إعادة تعيين كلمة المرور نيابةً عنك.";
54
+ };
55
+ readonly reset: {
56
+ readonly title: "تعيين كلمة مرور جديدة";
57
+ readonly subtitle: "يجب ألا تقل عن 8 أحرف.";
58
+ readonly password: "كلمة المرور الجديدة";
59
+ readonly confirm: "تأكيد كلمة المرور";
60
+ readonly showPassword: "إظهار كلمة المرور";
61
+ readonly hidePassword: "إخفاء كلمة المرور";
62
+ readonly strength: "قوة كلمة المرور";
63
+ readonly weak: "ضعيفة";
64
+ readonly fair: "مقبولة";
65
+ readonly good: "جيدة";
66
+ readonly strong: "قوية";
67
+ readonly tooShort: "استخدم 8 أحرف على الأقل.";
68
+ readonly submit: "إعادة تعيين كلمة المرور";
69
+ readonly failed: "فشلت إعادة التعيين. حاول مجددًا.";
70
+ };
71
+ readonly otp: {
72
+ readonly title: "المصادقة الثنائية";
73
+ readonly subtitle: "أدخل الرمز المكوَّن من 6 أرقام من تطبيق المصادقة.";
74
+ readonly code: "رمز لمرة واحدة";
75
+ readonly recoveryCode: "رمز الاسترداد";
76
+ readonly useRecovery: "فقدت جهازك؟ استخدم رمز استرداد";
77
+ readonly useAuthenticator: "استخدم تطبيق المصادقة بدلًا من ذلك";
78
+ readonly submit: "تحقق";
79
+ readonly invalid: "هذا الرمز لم يعمل. حاول مجددًا.";
80
+ readonly failed: "فشل التحقق. تحقق من اتصالك وحاول مجددًا.";
81
+ };
82
+ };
83
+ readonly nav: {
84
+ readonly home: "الرئيسية";
85
+ readonly primary: "الأساسية";
86
+ readonly account: "الحساب";
87
+ readonly signOut: "تسجيل الخروج";
88
+ readonly empty: "ستظهر الصفحات هنا بمجرد توصيل قاعدة بيانات.";
89
+ readonly connection: {
90
+ readonly shared: "مشترك";
91
+ readonly unnamed: "اتصال";
92
+ };
93
+ readonly imports: "استيراد البيانات";
94
+ readonly exports: "عمليات تصدير البيانات";
95
+ readonly emailTemplates: "قوالب البريد الإلكتروني";
96
+ readonly notificationSettings: "إعدادات الإشعارات";
97
+ readonly scheduledReports: "التقارير المجدولة";
98
+ readonly group: {
99
+ readonly workspace: "مساحة العمل";
100
+ readonly library: "المكتبة";
101
+ readonly planning: "التخطيط";
102
+ readonly people: "الأشخاص";
103
+ readonly account: "الحساب";
104
+ };
105
+ };
106
+ readonly topbar: {
107
+ readonly search: "بحث…";
108
+ readonly notifications: "الإشعارات";
109
+ readonly notificationsLoading: "جارٍ تحميل الإشعارات";
110
+ readonly notificationsError: "تعذّر تحميل الإشعارات.";
111
+ readonly notificationsEmpty: "لا إشعارات جديدة.";
112
+ readonly theme: "التبديل بين الفاتح / الداكن";
113
+ readonly userMenu: "قائمة الحساب";
114
+ readonly profile: "الملف الشخصي";
115
+ readonly preferences: "التفضيلات";
116
+ readonly signOut: "تسجيل الخروج";
117
+ };
118
+ readonly palette: {
119
+ readonly dialog: "لوحة الأوامر";
120
+ readonly placeholder: "اكتب أمرًا أو ابحث…";
121
+ readonly navigate: "التنقل";
122
+ readonly actions: "إجراءات";
123
+ readonly askAi: "اسأل الذكاء الاصطناعي";
124
+ readonly shortcuts: "اختصارات لوحة المفاتيح";
125
+ readonly signOut: "تسجيل الخروج";
126
+ readonly themeDark: "التبديل إلى السمة الداكنة";
127
+ readonly themeLight: "التبديل إلى السمة الفاتحة";
128
+ readonly footerNavigate: "تنقّل";
129
+ readonly footerOpen: "اختيار";
130
+ readonly footerClose: "إغلاق";
131
+ };
132
+ readonly shortcuts: {
133
+ readonly title: "اختصارات لوحة المفاتيح";
134
+ readonly subtitle: "اعمل أسرع في كل أنحاء Adminium";
135
+ readonly close: "إغلاق";
136
+ readonly dismiss: "إغلاق أو صرف";
137
+ readonly palette: "فتح لوحة الأوامر";
138
+ readonly panel: "إظهار لوحة الاختصارات";
139
+ readonly search: "التركيز على البحث";
140
+ readonly sidebar: "إظهار/إخفاء الشريط الجانبي";
141
+ readonly theme: "التبديل بين الفاتح / الداكن";
142
+ readonly then: "ثم";
143
+ readonly footerPre: "اضغط";
144
+ readonly footerPost: "في أي وقت لفتح هذه اللوحة.";
145
+ };
146
+ readonly states: {
147
+ readonly checked: "آخر فحص قبل 8 ثوانٍ";
148
+ readonly diagnostics: "التشخيصات";
149
+ };
150
+ readonly notFound: {
151
+ readonly title: "هذه الصفحة مفقودة";
152
+ readonly errorLine: "خطأ 404";
153
+ readonly searchPlaceholder: "ابحث عن صفحة…";
154
+ readonly matches: "صفحات مطابقة";
155
+ readonly popular: "وجهات شائعة";
156
+ readonly goBack: "رجوع";
157
+ readonly backToDashboard: "العودة إلى لوحة المعلومات";
158
+ };
159
+ readonly page: {
160
+ readonly invalid: {
161
+ readonly title: "إعدادات هذه الصفحة غير صالحة";
162
+ readonly body: "مستند الصفحة المخزَّن لم يجتز التحقق ولا يمكن عرضه.";
163
+ };
164
+ readonly renderError: {
165
+ readonly title: "تعذَّر عرض هذه الصفحة";
166
+ };
167
+ readonly tooNew: {
168
+ readonly title: "تحتاج هذه الصفحة إلى إصدار أحدث من Adminium";
169
+ };
170
+ readonly unknownTemplate: {
171
+ readonly title: "قالب صفحة غير معروف";
172
+ };
173
+ };
174
+ readonly mutation: {
175
+ readonly created: "تم إنشاء السجل";
176
+ readonly updated: "تم تحديث السجل";
177
+ readonly deleted: "تم حذف السجل";
178
+ };
179
+ readonly undo: {
180
+ readonly done: "تم التراجع عن التغيير";
181
+ readonly failed: "تعذَّر التراجع عن هذا التغيير";
182
+ };
183
+ readonly prefs: {
184
+ readonly theme: {
185
+ readonly label: "السمة";
186
+ readonly light: "فاتحة";
187
+ readonly dark: "داكنة";
188
+ readonly system: "حسب النظام";
189
+ };
190
+ readonly accent: {
191
+ readonly label: "لون التمييز";
192
+ readonly indigo: "نيلي";
193
+ readonly blue: "أزرق";
194
+ readonly teal: "أزرق مخضرّ";
195
+ readonly violet: "بنفسجي";
196
+ readonly rose: "وردي";
197
+ readonly red: "أحمر";
198
+ readonly orange: "برتقالي";
199
+ readonly black: "أسود";
200
+ };
201
+ readonly density: {
202
+ readonly label: "الكثافة";
203
+ readonly comfortable: "مريحة";
204
+ readonly compact: "مضغوطة";
205
+ };
206
+ readonly locale: {
207
+ readonly label: "اللغة";
208
+ readonly directionNote: "اتجاه النص: من اليمين إلى اليسار (يُضبط تلقائيًا حسب اللغة)";
209
+ };
210
+ };
211
+ readonly account: {
212
+ readonly title: "الحساب";
213
+ readonly subtitle: "هوية جلستك الحالية. يمكنك إدارة تفضيلات العرض وإعدادات الإشعارات من صفحاتها المخصصة.";
214
+ readonly preferencesLink: "التفضيلات";
215
+ readonly notificationsLink: "إعدادات الإشعارات";
216
+ readonly name: "الاسم";
217
+ readonly email: "البريد الإلكتروني";
218
+ readonly roles: "الأدوار";
219
+ readonly twoFactor: "المصادقة الثنائية";
220
+ readonly on: "مفعَّلة";
221
+ readonly off: "متوقفة";
222
+ readonly preferences: {
223
+ readonly title: "التفضيلات";
224
+ readonly subtitle: "كيف يبدو Adminium ويُقرأ بالنسبة لك — على هذا الجهاز وكل جهاز تسجّل الدخول منه.";
225
+ readonly workspaceDefault: "افتراضي مساحة العمل";
226
+ readonly personal: "شخصي";
227
+ readonly usingDefault: "يُستخدم افتراضي مساحة العمل ({value})";
228
+ readonly reset: "إعادة التعيين إلى افتراضي مساحة العمل";
229
+ readonly resetFailed: "تعذَّرت إعادة تعيين هذا التفضيل. حاول مجددًا.";
230
+ readonly appliesInstantly: "تسري التغييرات فورًا وتُحفظ في ملفك الشخصي.";
231
+ };
232
+ };
233
+ readonly settings: {
234
+ readonly defaults: {
235
+ readonly title: "الإعدادات الافتراضية العامة";
236
+ readonly subtitle: "إعدادات المظهر واللغة الافتراضية على مستوى مساحة العمل.";
237
+ readonly explainer: "تسري هذه الإعدادات الافتراضية على جميع المستخدمين ما لم يتجاوزوها. يمكن لأي شخص ضبط تفضيله الخاص من الملف الشخصي ← التفضيلات — التفضيلات الشخصية لها الأولوية دائمًا لذلك المستخدم.";
238
+ readonly appearanceHeading: "افتراضيات المظهر";
239
+ readonly languageHeading: "افتراضيات اللغة والمنطقة";
240
+ readonly adoption: "يتبع هذا الإعداد الافتراضي {following, number} من أصل {total, plural, zero {# مستخدم} one {مستخدم واحد} two {مستخدمَين} few {# مستخدمين} many {# مستخدمًا} other {# مستخدم}}.";
241
+ readonly weekStartNote: "بداية الأسبوع وتنسيقات الأرقام تتبع اللغة.";
242
+ readonly save: "حفظ الإعدادات الافتراضية";
243
+ readonly saved: "تم تحديث افتراضيات مساحة العمل";
244
+ readonly saveFailed: "تعذَّر حفظ افتراضيات مساحة العمل. حاول مجددًا.";
245
+ readonly liveNote: "عند الحفظ يُبث التغيير مباشرة — فيراه المستخدمون المسجَّلون الذين يتبعون الإعداد الافتراضي دون إعادة تحميل.";
246
+ };
247
+ readonly notifications: {
248
+ readonly subtitle: "اختر ما تريد أن يصلك من إشعارات وكيفية وصولها";
249
+ readonly matrixLabel: "إشعاري بشأن";
250
+ readonly rowHeader: "الحدث";
251
+ readonly saving: "جارٍ الحفظ…";
252
+ readonly saved: "تم الحفظ";
253
+ readonly unavailable: "غير متاح بعد";
254
+ readonly loading: "جارٍ تحميل التفضيلات";
255
+ readonly errorTitle: "تعذّر تحميل هذه الإعدادات";
256
+ readonly emptyTitle: "لا يوجد ما يمكن ضبطه بعد";
257
+ readonly emptyBody: "تظهر أحداث الإشعارات هنا مع توفر مصادرها.";
258
+ readonly saveFailed: "تعذّر حفظ هذا التغيير.";
259
+ };
260
+ };
261
+ readonly studio: {
262
+ readonly source: {
263
+ readonly engine: {
264
+ readonly label: "محرّك قاعدة البيانات";
265
+ readonly postgres: "PostgreSQL";
266
+ readonly mysql: "MySQL / MariaDB";
267
+ readonly sqlite: "SQLite";
268
+ };
269
+ readonly format: {
270
+ readonly label: "تنسيق المخطط";
271
+ readonly helper: "اترك الاكتشاف التلقائي مفعّلًا ما لم يخطئ في التعرّف.";
272
+ readonly auto: "اكتشاف تلقائي";
273
+ readonly sql: "SQL DDL / pg_dump";
274
+ readonly prisma: "مخطط Prisma";
275
+ readonly drizzle: "Drizzle ORM";
276
+ readonly typeorm: "كيانات TypeORM";
277
+ readonly sequelize: "نماذج Sequelize";
278
+ readonly rails: "Rails schema.rb";
279
+ readonly django: "Django models.py";
280
+ readonly json: "Adminium JSON";
281
+ };
282
+ readonly sqlite: {
283
+ readonly file: "مسار ملف قاعدة البيانات";
284
+ readonly helper: "SQLite ملف وليس خادمًا — أدخل المسار المطلق على الجهاز الذي يشغّل Adminium.";
285
+ };
286
+ readonly file: {
287
+ readonly detectedAs: "تم اكتشاف: {format}";
288
+ readonly moreWarnings: "+{count} تحذيرات إضافية — تظهر القائمة الكاملة في خطوة التحليل.";
289
+ readonly dropTitle: "أسقط ملف المخطط هنا، أو تصفّح";
290
+ readonly dropHint: "SQL DDL / pg_dump وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON";
291
+ readonly pitch: "لا حاجة إلى اتصال بقاعدة البيانات — نحلّل ملف المخطط ونبني اللوحات نفسها.";
292
+ readonly parsing: "جارٍ قراءة ملف المخطط المرفوع…";
293
+ readonly tables: "جداول";
294
+ readonly columns: "أعمدة";
295
+ readonly warnings: "تحذيرات";
296
+ readonly errorTitle: "تعذّر تحليل الملف";
297
+ readonly parseFailed: "تعذّر تحليل هذا الملف. إذا أخطأ الاكتشاف التلقائي، فاختر التنسيق صراحةً وأعد المحاولة.";
298
+ readonly unsupported: "تنسيق غير معروف — المدعوم: SQL DDL وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON. اختر واحدًا صراحةً وأعد المحاولة.";
299
+ readonly requestFailed: "فشل الرفع — تحقّق من اتصالك وأعد المحاولة.";
300
+ };
301
+ readonly title: "اربط قاعدة بياناتك";
302
+ readonly subtitle: "وجّه Adminium إلى قاعدة بيانات وسننشئ لوحة إدارة من مخططها.";
303
+ readonly name: "اسم الاتصال";
304
+ readonly namePlaceholder: "Postgres للإنتاج";
305
+ readonly modeLabel: "وضع إدخال المصدر";
306
+ readonly mode: {
307
+ readonly dsn: "سلسلة الاتصال";
308
+ readonly fields: "حقول منفصلة";
309
+ readonly file: "ملف المخطط";
310
+ };
311
+ readonly dsn: {
312
+ readonly label: "سلسلة الاتصال";
313
+ readonly helper: "postgres://user:password@host:5432/database — يعمل أيضًا mysql:// وsqlite:.";
314
+ readonly incomplete: "أضف المضيف وقاعدة البيانات، مثل postgres://user@host:5432/db";
315
+ readonly invalidScheme: "مخطط غير معروف — المتوقع postgres:// أو mysql:// أو mariadb:// أو sqlite:";
316
+ readonly quickFill: "تعبئة سريعة:";
317
+ };
318
+ readonly fields: {
319
+ readonly host: "المضيف";
320
+ readonly port: "المنفذ";
321
+ readonly database: "قاعدة البيانات";
322
+ readonly user: "المستخدم";
323
+ readonly password: "كلمة المرور";
324
+ readonly ssl: "وضع SSL";
325
+ readonly preview: "معاينة سلسلة الاتصال:";
326
+ };
327
+ readonly readOnlyRole: {
328
+ readonly title: "استخدم دورًا للقراءة فقط";
329
+ readonly body: "لا يكتب Adminium أبدًا في قاعدة بياناتك — يستخدم الإعداد بيانات المخطط الوصفية فقط. نوصي بمستخدم مخصّص بصلاحيات SELECT فقط؛ ويمكنك تحديد مكان جداول Adminium الخاصة في خطوة تخزين البيانات الوصفية.";
330
+ };
331
+ };
332
+ readonly capability: {
333
+ readonly mysqlApproxRows: "أعداد الصفوف في MySQL تقديرات من محرّك التخزين (قد تنحرف حتى ±40%) — تُعرض مع ≈.";
334
+ readonly mysqlFkEnum: "البيانات الوصفية للمفاتيح الخارجية والتعدادات في MySQL أضعف: جداول MyISAM لا تعلن مفاتيح خارجية، والتعدادات أنواع enum(…) على مستوى العمود، وقيود CHECK تتطلب MySQL 8.0.16+ / MariaDB 10.2+.";
335
+ readonly sqliteCheckEnums: "لا يملك SQLite نوع تعداد أصليًا — تُركَّب التعدادات من قيود CHECK (col IN (…)).";
336
+ readonly sqliteNoComments: "لا يدعم SQLite تعليقات الأعمدة — استخدم محرّر إعادة تعيين المخطط لإضافة التسميات.";
337
+ readonly importNoRowCounts: "ملفات المخطط لا تحمل أعداد صفوف — تعرض قائمة الجداول — بدلًا من أرقام مختلَقة.";
338
+ readonly importNoLiveHealth: "لا يوجد اتصال مباشر بقاعدة بيانات — فحوصات الصحة واكتشاف انحراف المخطط غير متاحة لهذا المصدر.";
339
+ readonly rowsUnavailable: "ملفات المخطط بلا قاعدة بيانات مباشرة — تظل أعداد الصفوف مجهولة حتى توصيل واحدة.";
340
+ readonly rowsRunAnalyze: "لا يوجد تقدير بعد — شغّل ANALYZE على قاعدة البيانات للحصول على أعداد الصفوف.";
341
+ readonly rowsNoEstimate: "لم يبلّغ المحرّك عن أي تقدير لهذا الجدول.";
342
+ readonly rowsApproximate: "تقدير من محرّك التخزين — قد ينحرف حتى ±40% على InnoDB.";
343
+ };
344
+ readonly test: {
345
+ readonly log: {
346
+ readonly moreWarnings: "+{count} تحذيرات إضافية من المحلّل";
347
+ readonly connecting: "جارٍ إنشاء اتصال آمن…";
348
+ readonly connected: "متصل ({latency} م.ث) · استبطان للقراءة فقط";
349
+ readonly connectFailed: "فشل الاتصال.";
350
+ readonly readingSchema: "جارٍ قراءة المخطط: public";
351
+ readonly readingFile: "جارٍ قراءة ملف المخطط المرفوع…";
352
+ readonly parsingFile: "جارٍ تحليل {file}…";
353
+ readonly detected: "تم اكتشاف {tables} جدولًا · {columns} عمودًا";
354
+ readonly found: "تم العثور على {tables} جدولًا · {columns} عمودًا";
355
+ readonly mapping: "جارٍ ربط أنواع الأعمدة ← عناصر الإدخال";
356
+ readonly relations: "جارٍ اكتشاف العلاقات…";
357
+ readonly piiScan: "جارٍ البحث عن أعمدة البيانات الشخصية…";
358
+ readonly piiDone: "اكتمل فحص البيانات الشخصية — تم إخفاء {count} عمودًا افتراضيًا";
359
+ readonly piiDoneUnknown: "اكتمل فحص البيانات الشخصية";
360
+ readonly jobFailed: "فشل الاستبطان.";
361
+ readonly networkFailed: "فشل الطلب — تحقّق من اتصالك وأعد المحاولة.";
362
+ readonly ready: "جاهز";
363
+ };
364
+ readonly title: "جارٍ تحليل مخططك";
365
+ readonly subtitle: "جارٍ استبطان الجداول والأعمدة والعلاقات. يستغرق ذلك بضع ثوانٍ.";
366
+ readonly trust: "نقرأ مخططك وبياناتك فقط. لا يتم تعديل أي شيء.";
367
+ readonly errorTitle: "فشل الاتصال";
368
+ readonly retry: "إعادة المحاولة";
369
+ readonly logLabel: "سجل الاستبطان";
370
+ readonly hint: {
371
+ readonly auth: "فشلت المصادقة — تحقّق من اسم المستخدم وكلمة المرور في DSN.";
372
+ readonly hostUnreachable: "تعذّر الوصول إلى المضيف — تحقّق من اسم المضيف والمنفذ، ومن أن قاعدة البيانات تقبل الاتصالات من هذا الجهاز (أضف عناوين IP الخاصة بنا إلى قائمة السماح).";
373
+ readonly metaPlacement: "لا يمكن لهذا المصدر استضافة جداول Adminium الوصفية — تابع بقاعدة بيانات وصفية منفصلة.";
374
+ readonly permission: "اتصل الدور لكنه يفتقر إلى صلاحيات قراءة المخطط — امنح دور الاستبطان صلاحية USAGE على المخطط.";
375
+ readonly timeout: "لم تُجب قاعدة البيانات في الوقت المناسب — تحقّق من مسار الشبكة والحمل ثم أعد المحاولة.";
376
+ readonly tls: "فشل تفاوض TLS — جرّب sslmode=require، أو ارفع شهادة CA التي يتوقعها خادمك.";
377
+ readonly unknown: "فشل الاتصال — تحقّق من DSN وأعد المحاولة.";
378
+ };
379
+ };
380
+ readonly tables: {
381
+ readonly importNoCounts: "ملفات المخطط لا تحمل أعداد صفوف — يعرض العمود — حتى يتم توصيل قاعدة بيانات مباشرة.";
382
+ readonly title: "اختر جداولك";
383
+ readonly subtitle: "اختر ما تريد تضمينه. يمكنك تغيير ذلك في أي وقت.";
384
+ readonly search: "تصفية الجداول…";
385
+ readonly listLabel: "الجداول القابلة للتضمين";
386
+ readonly emptyFilter: "لا توجد جداول مطابقة لعامل التصفية.";
387
+ readonly pii: "PII";
388
+ readonly highVolume: "حجم كبير";
389
+ readonly highVolumeNote: "الجداول التي تتجاوز 100,000 صف تبدأ غير محددة — نادرًا ما تنتمي جداول التشغيل إلى لوحة معلومات.";
390
+ readonly joinHidden: "تم إخفاء {count} من جداول الربط/النظام مسبقًا — لكنها لا تزال تشغّل علاقات متعدد-إلى-متعدد.";
391
+ };
392
+ readonly hub: {
393
+ readonly title: "اتصالات البيانات";
394
+ readonly subtitle: "{healthy, number} من {total, plural, one {اتصال واحد} two {اتصالين} few {# اتصالات} many {# اتصالًا} other {# اتصال}} بحالة سليمة";
395
+ readonly connectNew: "اتصال جديد";
396
+ readonly stats: {
397
+ readonly connections: "الاتصالات";
398
+ readonly healthy: "سليمة";
399
+ readonly tables: "الجداول المضمّنة";
400
+ readonly pages: "الصفحات المولّدة";
401
+ };
402
+ readonly status: {
403
+ readonly connected: "متصل";
404
+ readonly error: "خطأ";
405
+ readonly unconfigured: "مسودة";
406
+ readonly testing: "جارٍ الاختبار…";
407
+ };
408
+ readonly card: {
409
+ readonly readOnly: "للقراءة فقط";
410
+ readonly tables: "الجداول";
411
+ readonly pages: "الصفحات";
412
+ readonly latency: "زمن الاستجابة";
413
+ readonly latencyMs: "{latency, number} م.ث";
414
+ readonly lastIntrospected: "آخر فحص للمخطط";
415
+ readonly never: "أبدًا";
416
+ };
417
+ readonly action: {
418
+ readonly test: "اختبار";
419
+ readonly reintrospect: "إعادة فحص المخطط";
420
+ readonly reintrospectFile: "مصادر ملفات المخطط لا تملك قاعدة بيانات حيّة — أعد رفع الملف بدلًا من ذلك.";
421
+ readonly remap: "إعادة تعيين المخطط";
422
+ readonly delete: "حذف";
423
+ };
424
+ readonly test: {
425
+ readonly ok: "الاتصال سليم · {latency, number} م.ث";
426
+ readonly failed: "فشل اختبار الاتصال";
427
+ };
428
+ readonly introspect: {
429
+ readonly noChanges: "المخطط دون تغيير — لا لقطة جديدة.";
430
+ readonly updated: "أُعيد فحص المخطط";
431
+ readonly masksProposed: "{count, plural, one {عمود واحد مقترح} two {عمودان مقترحان} few {# أعمدة مقترحة} many {# عمودًا مقترحًا} other {# عمود مقترح}} للإخفاء — راجعها في محرر إعادة التعيين.";
432
+ readonly failed: "فشل فحص المخطط. حاول مرة أخرى.";
433
+ };
434
+ readonly delete: {
435
+ readonly title: "حذف الاتصال";
436
+ readonly body: "سيؤدي هذا إلى حذف «{name}» وصفحاته المولّدة. لن تُمسّ قاعدة بياناتك نفسها أبدًا.";
437
+ readonly prompt: "اكتب {name} للتأكيد";
438
+ readonly confirm: "حذف الاتصال";
439
+ readonly cancel: "إلغاء";
440
+ readonly close: "إغلاق";
441
+ readonly success: "حُذف الاتصال «{name}»";
442
+ readonly failed: "تعذّر حذف الاتصال. حاول مرة أخرى.";
443
+ };
444
+ readonly empty: {
445
+ readonly title: "لا مصادر بيانات بعد";
446
+ readonly body: "اربط قاعدة بيانات وسيولّد Adminium لوحة الإدارة من مخططها.";
447
+ readonly cta: "ربط قاعدة بيانات";
448
+ };
449
+ };
450
+ readonly settingsHub: {
451
+ readonly title: "إعدادات مساحة العمل";
452
+ readonly subtitle: "الهوية والأمان والإجراءات الخطرة لمساحة العمل هذه.";
453
+ readonly save: "حفظ التغييرات";
454
+ readonly saved: "تم تحديث إعدادات مساحة العمل";
455
+ readonly saveFailed: "تعذّر حفظ إعدادات مساحة العمل. حاول مرة أخرى.";
456
+ readonly superAdminOnlyTitle: "يتطلب مشرفًا أعلى";
457
+ readonly superAdminOnly: "لا يمكن تغيير هوية مساحة العمل وإعدادات الأمان إلا لمشرف أعلى.";
458
+ readonly identity: {
459
+ readonly heading: "هوية مساحة العمل";
460
+ readonly appName: {
461
+ readonly label: "اسم التطبيق";
462
+ readonly helper: "يظهر في الشريط الجانبي وعنوان المتصفح ورسائل البريد الإلكتروني.";
463
+ readonly error: "أدخل اسمًا لا يتجاوز 60 حرفًا.";
464
+ };
465
+ };
466
+ readonly security: {
467
+ readonly heading: "الأمان";
468
+ readonly require2fa: {
469
+ readonly label: "فرض المصادقة الثنائية";
470
+ readonly desc: "يجب على كل عضو تفعيل المصادقة الثنائية لتسجيل الدخول.";
471
+ };
472
+ readonly allowSignup: {
473
+ readonly label: "السماح بالتسجيل الذاتي";
474
+ readonly desc: "يمكن لأي شخص إنشاء حساب — عند الإيقاف تبقى مساحة العمل بالدعوة فقط.";
475
+ };
476
+ readonly sessionTtl: {
477
+ readonly label: "مدة الجلسة (بالساعات)";
478
+ readonly error: "بين {min, number} و{max, number} ساعة.";
479
+ };
480
+ readonly passwordMin: {
481
+ readonly label: "الحد الأدنى لطول كلمة المرور";
482
+ readonly error: "بين {min, number} و{max, number} حرفًا.";
483
+ };
484
+ };
485
+ readonly review: {
486
+ readonly title: "حفظ إعدادات مساحة العمل";
487
+ readonly subtitle: "راجع تغييراتك قبل الحفظ.";
488
+ readonly confirm: "حفظ التغييرات";
489
+ readonly cancel: "إلغاء";
490
+ readonly close: "إغلاق";
491
+ readonly on: "مفعّل";
492
+ readonly off: "متوقف";
493
+ readonly change: "{before} → {after}";
494
+ };
495
+ readonly defaultsCard: {
496
+ readonly heading: "الإعدادات الافتراضية للمظهر واللغة";
497
+ readonly body: "إعدادات السمة ولون التمييز والكثافة واللغة على مستوى مساحة العمل موجودة ضمن الإعدادات الافتراضية العامة.";
498
+ readonly cta: "فتح الإعدادات الافتراضية العامة";
499
+ };
500
+ readonly danger: {
501
+ readonly heading: "منطقة الخطر";
502
+ readonly subtitle: "إجراءات لا يمكن التراجع عنها.";
503
+ readonly empty: "لا شيء للحذف — لا اتصالات بعد.";
504
+ readonly deleteDesc: "يحذف الاتصال والصفحات المولّدة منه. لن تُمسّ قاعدة بياناتك. لا يمكن التراجع عن هذا الإجراء.";
505
+ readonly deleteCta: "حذف الاتصال";
506
+ };
507
+ readonly aiCard: {
508
+ readonly heading: "الإثراء بالذكاء الاصطناعي";
509
+ readonly body: "هيّئ مزوّد ذكاء اصطناعي (أو رحلة النسخ واللصق) لإثراء التسميات والمجموعات والعلاقات.";
510
+ readonly cta: "فتح إعدادات الذكاء الاصطناعي";
511
+ };
512
+ };
513
+ readonly settingsAi: {
514
+ readonly title: "الإثراء بالذكاء الاصطناعي";
515
+ readonly subtitle: "اربط نموذجًا ليقترح Adminium التسميات والمجموعات والعلاقات والمزيد — تُراجَع دائمًا كفرق قبل تطبيق أي شيء.";
516
+ readonly saved: "تم حفظ مزوّد الذكاء الاصطناعي";
517
+ readonly saveFailed: "تعذّر حفظ مزوّد الذكاء الاصطناعي. حاول مرة أخرى.";
518
+ readonly save: "حفظ المزوّد";
519
+ readonly test: "اختبار الاتصال";
520
+ readonly testHintDirty: "احفظ تغييراتك قبل الاختبار.";
521
+ readonly testing: "جارٍ التواصل مع المزوّد…";
522
+ readonly testError: "فشل الاختبار";
523
+ readonly testErrorBody: "تعذّر الوصول إلى المزوّد. تحقق من المفتاح وعنوان URL الأساسي.";
524
+ readonly testOk: "تم الاتصال بـ {model} خلال {latency} مللي ثانية";
525
+ readonly testUnknownModel: "المزوّد";
526
+ readonly provider: {
527
+ readonly heading: "مزوّد الذكاء الاصطناعي";
528
+ readonly subtitle: "اختر كيف يصل Adminium إلى نموذج لإثراء مخططك. تُخزَّن المفاتيح مشفّرة ولا تُعرض مرة أخرى أبدًا.";
529
+ readonly active: "نشط";
530
+ readonly anthropic: {
531
+ readonly label: "Anthropic";
532
+ readonly desc: "نماذج Claude عبر واجهة Anthropic البرمجية.";
533
+ };
534
+ readonly openai: {
535
+ readonly label: "OpenAI";
536
+ readonly desc: "نماذج GPT عبر واجهة OpenAI البرمجية.";
537
+ };
538
+ readonly openaiCompatible: {
539
+ readonly label: "متوافق مع OpenAI";
540
+ readonly desc: "أي نقطة نهاية تتحدث بتنسيق OpenAI — Groq وTogether وvLLM وLM Studio.";
541
+ };
542
+ readonly ollama: {
543
+ readonly label: "Ollama (محلي)";
544
+ readonly desc: "نماذج تعمل محليًا عبر Ollama — بدون مفتاح وبدون سحابة.";
545
+ };
546
+ readonly requiresNetwork: "يتطلب اتصالاً بالإنترنت ومفتاح API";
547
+ readonly networkDisabledTitle: "مزوّدو الذكاء الاصطناعي المباشرون معطَّلون في هذا التثبيت";
548
+ readonly networkDisabledBody: "تم إعداد نسخة Adminium هذه دون وصول صادر إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم دورة النسخ واللصق أدناه — لا تحتاج إلى مفتاح ولا إلى شبكة.";
549
+ };
550
+ readonly configure: {
551
+ readonly heading: "تهيئة {provider}";
552
+ };
553
+ readonly field: {
554
+ readonly baseUrl: "عنوان URL الأساسي";
555
+ readonly baseUrlOptional: "اتركه كما هو ما لم يكن Ollama يعمل على مضيف آخر.";
556
+ readonly baseUrlHelper: "جذر نقطة النهاية الذي يخدم ‎/chat/completions.";
557
+ readonly model: "النموذج";
558
+ readonly modelFreeText: "أدخل معرّف النموذج الدقيق الذي تخدمه نقطة النهاية لديك.";
559
+ readonly modelLive: "تم التحميل مباشرة من المزوّد.";
560
+ readonly modelStatic: "قائمة موثوقة؛ اكتب معرّفًا مخصصًا بعد الحفظ لتحديثها.";
561
+ readonly modelLoading: "جارٍ التحميل…";
562
+ readonly modelPlaceholder: "اختر نموذجًا…";
563
+ readonly key: "مفتاح API";
564
+ readonly keyStored: "مخزَّن مشفّرًا. استبدله لاستخدام مفتاح مختلف.";
565
+ readonly keyMask: "sk-…{last4}";
566
+ readonly keyReplace: "استبدال المفتاح";
567
+ readonly keyOptional: "اختياري — بعض نقاط النهاية لا تحتاج إلى مفتاح.";
568
+ readonly keyWriteOnly: "للكتابة فقط: بمجرد حفظه لا يُعرض مرة أخرى أبدًا.";
569
+ readonly noKeyTitle: "لا حاجة إلى مفتاح API";
570
+ readonly noKeyBody: "يعمل Ollama محليًا، لذا لا يغادر أي شيء هذا الجهاز.";
571
+ };
572
+ readonly runStatus: {
573
+ readonly draft: "مسودة";
574
+ readonly running: "قيد التشغيل";
575
+ readonly awaitingResponse: "في انتظار الرد";
576
+ readonly validated: "تم التحقق";
577
+ readonly applied: "مطبَّق";
578
+ readonly partiallyApplied: "مطبَّق جزئيًا";
579
+ readonly failed: "فشل";
580
+ readonly discarded: "مُهمَل";
581
+ };
582
+ readonly byo: {
583
+ readonly heading: "لا مفتاح؟ استخدم أداة الذكاء الاصطناعي الخاصة بك";
584
+ readonly subtitle: "رحلة النسخ واللصق — لا يغادر أي شيء هذا الجهاز.";
585
+ readonly body: "يستطيع Studio توليد مطالبة مكتفية ذاتيًا من مخططك. شغّلها في Claude Code أو ChatGPT أو أي أداة تفضّلها، ثم الصق JSON الذي تعيده في معالج الاتصال. نفس التحقق ونفس المراجعة ونفس النتيجة كالمسار المباشر.";
586
+ readonly guaranteeTitle: "ضمان الخلو من القياس عن بُعد";
587
+ readonly guarantee1: "تحمل المطالبة مخططك والإحصاءات المجمّعة فقط — ولا تحمل بيانات الصفوف افتراضيًا أبدًا.";
588
+ readonly guarantee2: "لا تُضمَّن أي بيانات اعتماد أو عنوان URL للنسخة أو معرّفات.";
589
+ readonly guarantee3: "عمليات BYO لا تُجري أي اتصالات شبكية.";
590
+ readonly promptVersion: "المطالبة {version}";
591
+ readonly schemaVersion: "المخطط {version}";
592
+ readonly headingRecommended: "استخدم أداة الذكاء الاصطناعي الخاصة بك — دون الحاجة إلى مفتاح";
593
+ readonly recommended: "موصى به";
594
+ };
595
+ readonly history: {
596
+ readonly heading: "سجل العمليات";
597
+ readonly subtitle: "عمليات الإثراء السابقة. افتح إحداها لمراجعة اقتراحاتها.";
598
+ readonly tableLabel: "عمليات الإثراء";
599
+ readonly colDate: "التاريخ";
600
+ readonly colSource: "المصدر";
601
+ readonly colStatus: "الحالة";
602
+ readonly colChunks: "الأجزاء";
603
+ readonly openReview: "افتح مراجعة العملية بتاريخ {date}";
604
+ readonly connection: "الاتصال";
605
+ readonly empty: "لا توجد عمليات إثراء بعد. أثرِ مخططًا من معالج الاتصال لعرض السجل هنا.";
606
+ readonly errorTitle: "تعذّر تحميل العمليات";
607
+ readonly errorBody: "أعد تحميل الصفحة للمحاولة مرة أخرى.";
608
+ readonly noConnections: "اربط قاعدة بيانات أولًا — تُسجَّل عمليات الإثراء لكل اتصال على حدة.";
609
+ readonly byo: "BYO";
610
+ readonly directPath: "مباشر";
611
+ };
612
+ };
613
+ readonly enrich: {
614
+ readonly title: "الإثراء بالذكاء الاصطناعي";
615
+ readonly subtitle: "يمكنك اختياريًا تحسين التسميات والمجموعات والتعدادات ولوحات المعلومات المُولّدة باستخدام نموذج لغوي كبير. يعمل الأساس الاستدلالي بدونه — وهذا يضيف فقط اقتراحات تراجعها قبل تطبيق أي شيء.";
616
+ readonly intentLabel: "كيف تريد الإثراء؟";
617
+ readonly sectionsLegend: "ما الذي ينبغي للذكاء الاصطناعي أن يقرره؟";
618
+ readonly localesLegend: "ترجمة التسميات إلى";
619
+ readonly localeLocked: "(مطلوب)";
620
+ readonly samplingTitle: "تضمين قيم عينة";
621
+ readonly samplingHint: "يضمّن ما يصل إلى 20 قيمة حقيقية لكل عمود غير حاوٍ على بيانات شخصية في المُوجّه.";
622
+ readonly samplingPreviewTitle: "ما الذي يغادر هذا الجهاز";
623
+ readonly samplingPreviewBody: "ما يصل إلى 20 قيمة من الأكثر شيوعًا لكل عمود غير حاوٍ على بيانات شخصية، إضافةً إلى الحد الأدنى/الأقصى للأعمدة الرقمية والتاريخية. لا تُؤخذ عينات من الأعمدة المُعلَّمة كبيانات شخصية أبدًا. يبقى كل ما عداها مُجمَّعًا فقط. راجع المُوجّه الدقيق قبل النسخ (BYO) — لا يُرسَل أي شيء دون إجراء منك.";
624
+ readonly noSections: "اختر مجموعة قرار واحدة على الأقل للإثراء.";
625
+ readonly generatePrompt: "إنشاء المُوجّه";
626
+ readonly startProvider: "بدء الإثراء";
627
+ readonly startOver: "البدء من جديد";
628
+ readonly copied: "تم النسخ";
629
+ readonly createFailed: "تعذّر إنشاء مُوجّه الإثراء — أعد المحاولة.";
630
+ readonly createFailedTitle: "تعذّر البدء";
631
+ readonly providerFallback: "مزوّد الذكاء الاصطناعي الخاص بك";
632
+ readonly fileTitle: "يتطلّب الإثراء بالذكاء الاصطناعي قاعدة بيانات حيّة";
633
+ readonly fileBody: "لا تملك مصادر ملفات المخطط لقطة للإثراء بعد. اتصل بقاعدة بيانات حيّة لاستخدام الإثراء بالذكاء الاصطناعي، أو تابع — فالأساس الاستدلالي يُولّد تطبيقًا كاملًا رغم ذلك.";
634
+ readonly section: {
635
+ readonly labels: "التسميات والأوصاف";
636
+ readonly groups: "مجموعات التنقّل";
637
+ readonly enums: "دلالات التعداد";
638
+ readonly relations: "العلاقات";
639
+ readonly keys: "الأعمدة المفتاحية";
640
+ readonly templates: "قوالب الصفحات";
641
+ readonly widgets: "أدوات لوحة المعلومات";
642
+ readonly pii: "البيانات الشخصية والإخفاء";
643
+ readonly icons: "الأيقونات";
644
+ readonly microcopy: "النصوص الدقيقة";
645
+ };
646
+ readonly provider: {
647
+ readonly title: "استخدام مزوّد الذكاء الاصطناعي الخاص بي";
648
+ readonly description: "شغّل الإثراء الآن باستخدام مزوّدك المُهيّأ. تراجع كل اقتراح على هيئة فرق.";
649
+ readonly unconfigured: "لم يُهيّأ أي مزوّد ذكاء اصطناعي بعد — انسخ مُوجّهًا إلى أداتك الخاصة أدناه، أو هيّئ مزوّدًا أولًا.";
650
+ readonly settingsHint: "هل تريد تشغيله مباشرةً؟";
651
+ readonly settingsLink: "هيّئ مزوّدًا في الإعدادات ← الذكاء الاصطناعي";
652
+ readonly networkDisabled: "لا تملك نسخة Adminium هذه وصولاً صادرًا إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم بدلاً من ذلك دورة النسخ واللصق — الموجّه نفسه والمراجعة نفسها.";
653
+ };
654
+ readonly byo: {
655
+ readonly cardTitle: "نسخ مُوجّه إلى أداة الذكاء الاصطناعي الخاصة بي";
656
+ readonly cardDescription: "انسخ مُوجّهًا مكتفيًا بذاته إلى Claude Code أو ChatGPT أو أي أداة — ثم الصق JSON مرة أخرى. لا حاجة إلى مفتاح، ولا يغادر أي شيء هذا الجهاز تلقائيًا.";
657
+ readonly guidance: "شغّل هذا في أي أداة ذكاء اصطناعي — Claude Code أو ChatGPT أو غيرها. الصق JSON الذي تُعيده أدناه.";
658
+ readonly promptLabel: "مُوجّه الإثراء";
659
+ readonly promptLabelN: "مُوجّه الإثراء {index} من {total}";
660
+ readonly tokenChip: "≈ {tokens} رمزًا";
661
+ readonly copyPrompt: "نسخ المُوجّه";
662
+ readonly copyPromptDone: "تم نسخ المُوجّه";
663
+ readonly download: "تنزيل .md";
664
+ readonly chunkTabs: "أجزاء المُوجّه";
665
+ readonly chunkTab: "المُوجّه {index}";
666
+ readonly chunkValid: "تم التحقّق من الجزء {index}";
667
+ readonly pasteLabel: "الصق استجابة JSON";
668
+ readonly pastePlaceholder: "الصق استجابة JSON هنا…";
669
+ readonly validate: "تحقّق";
670
+ readonly valid: "تم التحقّق من الاستجابة";
671
+ readonly mergedTitle: "تم التحقّق من كل الأجزاء البالغة {count} ودمجها";
672
+ readonly mergedTitleSingle: "تم التحقّق من الاستجابة";
673
+ readonly mergedBody: "الاقتراحات جاهزة للمراجعة مقابل الأساس الاستدلالي.";
674
+ readonly errorsTitle: "عثر التحقّق على {count} مشكلة";
675
+ readonly copyErrors: "نسخ الأخطاء لأداة الذكاء الاصطناعي";
676
+ readonly copyErrorsDone: "تم نسخ الأخطاء";
677
+ readonly copyErrorsHint: "الصق هذا مجددًا في أداة الذكاء الاصطناعي للحصول على استجابة مُصحّحة.";
678
+ readonly droppedItems: "أُسقِط {count} اقتراح أثناء التحقّق — تعرض المراجعة البقية.";
679
+ readonly pendingTitle: "تحقّق من كل مُوجّه للمتابعة";
680
+ readonly pendingBody: "الصق استجابة JSON أعلاه وتحقّق منها للمتابعة إلى المراجعة.";
681
+ readonly pendingBodyChunked: "يجب التحقّق من كل جزء قبل دمج الاقتراحات. الصق كل مُوجّه أعلاه وتحقّق منه.";
682
+ readonly requestFailed: "تعذّر الوصول إلى الخادم للتحقّق — أعد المحاولة.";
683
+ readonly continueReview: "المتابعة إلى المراجعة";
684
+ readonly wholeDocument: "المستند بأكمله";
685
+ readonly cardTitleRecommended: "انسخ موجّهًا إلى أداة الذكاء الاصطناعي الخاصة بي — موصى به";
686
+ };
687
+ readonly direct: {
688
+ readonly title: "الإثراء بالذكاء الاصطناعي";
689
+ readonly subtitle: "يجري إرسال مخططك إلى";
690
+ readonly building: "يجري إنشاء المُوجّه…";
691
+ readonly logLabel: "سجلّ الإثراء";
692
+ readonly cancel: "إلغاء";
693
+ readonly back: "العودة إلى الخيارات";
694
+ readonly retry: "إعادة المحاولة";
695
+ readonly done: "اكتمل الإثراء — راجع الاقتراحات.";
696
+ readonly continueReview: "المتابعة إلى المراجعة";
697
+ readonly failed: "فشل تشغيل المزوّد. تحقّق من إعدادات الذكاء الاصطناعي وأعد المحاولة.";
698
+ readonly jobFailed: "لم يكتمل تشغيل الإثراء.";
699
+ readonly startFailed: "تعذّر بدء التشغيل — أعد المحاولة.";
700
+ readonly errorTitle: "فشل الإثراء";
701
+ };
702
+ readonly skip: {
703
+ readonly title: "تخطٍّ — استخدام الاستدلال فقط";
704
+ readonly description: "التوليد من الأساس الاستدلالي. يمكنك الإثراء لاحقًا من الإعدادات ← الذكاء الاصطناعي — لا يُعاقَب التخطّي أبدًا.";
705
+ readonly confirmTitle: "المتابعة بالاستدلال";
706
+ readonly confirmBody: "سيستخدم التطبيق المُولّد التسميات والمجموعات ولوحات المعلومات الاستدلالية. تابع للتوليد — يمكنك تشغيل الإثراء بالذكاء الاصطناعي في أي وقت من الإعدادات ← الذكاء الاصطناعي.";
707
+ };
708
+ };
709
+ readonly review: {
710
+ readonly unavailableTitle: "شاشة المراجعة غير متوفرة";
711
+ readonly unavailableBody: "لا يتضمّن هذا الإصدار شاشة مراجعة الإثراء بعد (06-T14). ستصل مع تدفق الفرق والتطبيق.";
712
+ };
713
+ readonly llmRuns: {
714
+ readonly review: {
715
+ readonly header: {
716
+ readonly title: "مراجعة اقتراحات الذكاء الاصطناعي";
717
+ readonly model: "النموذج";
718
+ readonly snapshot: "لقطة";
719
+ readonly byo: "مفتاحك الخاص";
720
+ readonly pathDirect: "واجهة مباشرة";
721
+ readonly pathByo: "نسخ ولصق";
722
+ readonly agree: "{n} متوافقة";
723
+ readonly conflict: "{n} متعارضة";
724
+ readonly new: "{n} جديدة";
725
+ readonly rejects: "{n} مرفوضة";
726
+ readonly countsAria: "أعداد الاقتراحات";
727
+ };
728
+ readonly bulk: {
729
+ readonly thresholdLabel: "حد الثقة";
730
+ readonly thresholdAria: "حد الثقة لخيار «قبول الكل»";
731
+ readonly acceptAll: "قبول الكل ≥ {pct}%";
732
+ readonly clear: "مسح التحديد";
733
+ };
734
+ readonly section: {
735
+ readonly selectAllAria: "تحديد الكل في {group}";
736
+ readonly acceptedCount: "{n} مقبولة";
737
+ };
738
+ readonly group: {
739
+ readonly labels: "التسميات والترجمات";
740
+ readonly navigation: "التنقل والمجالات";
741
+ readonly enums: "دلالات التعدادات";
742
+ readonly relations: "العلاقات";
743
+ readonly keys: "الأعمدة المفتاحية";
744
+ readonly templates: "قوالب الصفحات";
745
+ readonly dashboards: "لوحات المعلومات والأدوات";
746
+ readonly pii: "البيانات الشخصية والإخفاء";
747
+ readonly icons: "الأيقونات";
748
+ readonly microcopy: "النصوص المصغّرة";
749
+ };
750
+ readonly status: {
751
+ readonly agree: "متوافق";
752
+ readonly conflict: "تعارض";
753
+ readonly new: "جديد";
754
+ readonly heuristicOnly: "إرشادي فقط";
755
+ readonly rejects: "يرفض الإرشادي";
756
+ readonly locked: "مقفل";
757
+ };
758
+ readonly row: {
759
+ readonly acceptAria: "قبول اقتراح {noun} لـ {target}";
760
+ readonly keptEdited: "محتفَظ به — عدّلته بنفسك";
761
+ readonly rejectsCallout: "يرفض الذكاء الاصطناعي قرارًا إرشاديًا — أكِّد قبل القبول.";
762
+ readonly showTranslations: "عرض الترجمات";
763
+ readonly hideTranslations: "إخفاء الترجمات";
764
+ readonly confidenceAria: "الثقة {pct}%";
765
+ readonly noAi: "لا يوجد اقتراح من الذكاء الاصطناعي";
766
+ };
767
+ readonly value: {
768
+ readonly none: "لا قيمة";
769
+ readonly absent: "لا شيء";
770
+ readonly dash: "—";
771
+ readonly display: "العرض";
772
+ readonly key: "المفتاح";
773
+ readonly rank: "الترتيب {n}";
774
+ readonly span: "العرض {n}";
775
+ readonly tableCount: "{n} جداول";
776
+ readonly widgetCount: "{n} أدوات";
777
+ readonly enumWorkflow: "سير عمل";
778
+ readonly enumCategory: "فئة";
779
+ readonly notPii: "ليست بيانات شخصية";
780
+ readonly label: "التسمية";
781
+ readonly description: "الوصف";
782
+ readonly subtitle: "العنوان الفرعي للصفحة";
783
+ readonly headline: "عنوان الحالة الفارغة";
784
+ readonly guidance: "إرشاد الحالة الفارغة";
785
+ };
786
+ readonly apply: {
787
+ readonly title: "تطبيق {n} اقتراحات";
788
+ readonly subtitle: "تُكتب هذه التغييرات في معاملة واحدة ويمكن التراجع عنها.";
789
+ readonly empty: "لم يتم تحديد شيء للتطبيق.";
790
+ readonly confirm: "تطبيق التغييرات";
791
+ };
792
+ readonly footer: {
793
+ readonly count: "تم تحديد {n} اقتراحات";
794
+ readonly apply: "تطبيق {n} اقتراحات مقبولة";
795
+ readonly failed: "فشل التطبيق";
796
+ };
797
+ readonly toast: {
798
+ readonly applied: "تم تطبيق {n} اقتراحات";
799
+ readonly appliedPartial: "تم تطبيق {n} اقتراحات (تم تخطي بعضها)";
800
+ readonly applyFailed: "تعذّر تطبيق الاقتراحات";
801
+ readonly undoFailed: "تعذّر التراجع عن هذا التغيير";
802
+ };
803
+ readonly error: {
804
+ readonly title: "تعذّر تحميل هذا التشغيل";
805
+ };
806
+ readonly notReady: {
807
+ readonly title: "لا يحتوي هذا التشغيل على اقتراحات للمراجعة بعد";
808
+ readonly body: "يجب التحقق من التشغيل قبل إمكانية مراجعة اقتراحاته. أنشئ استجابة أو الصقها أولًا.";
809
+ };
810
+ readonly applied: {
811
+ readonly title: "تم تطبيق هذا التشغيل";
812
+ readonly body: "الاقتراحات المقبولة أدناه للقراءة فقط.";
813
+ };
814
+ readonly empty: {
815
+ readonly title: "لا اقتراحات";
816
+ readonly body: "لم يُنتج هذا التشغيل أي اقتراحات للمراجعة.";
817
+ };
818
+ readonly cat: {
819
+ readonly label: "تسمية";
820
+ readonly key: "أعمدة مفتاحية";
821
+ readonly enum: "تعداد";
822
+ readonly relation: "علاقة";
823
+ readonly pii: "بيانات شخصية";
824
+ readonly template: "قالب صفحة";
825
+ readonly group: "مجموعة تنقل";
826
+ readonly dashboard: "لوحة معلومات";
827
+ readonly widget: "أداة";
828
+ readonly copy: "نص مصغّر";
829
+ };
830
+ };
831
+ };
832
+ readonly wizard: {
833
+ readonly title: "اتصال جديد";
834
+ readonly back: "رجوع";
835
+ readonly continue: "متابعة";
836
+ readonly progress: "تقدّم الإعداد";
837
+ readonly persistFailed: "تعذّر حفظ اختيار الجداول — أعد المحاولة.";
838
+ readonly persistFailedTitle: "فشل الحفظ";
839
+ readonly step: {
840
+ readonly source: "المصدر";
841
+ readonly test: "تحليل";
842
+ readonly tables: "الجداول";
843
+ readonly meta: "تخزين البيانات الوصفية";
844
+ readonly intent: "الغرض";
845
+ readonly enrich: "إثراء";
846
+ readonly generate: "توليد";
847
+ };
848
+ };
849
+ readonly meta: {
850
+ readonly title: "أين يجب أن يحتفظ Adminium بجداوله الخاصة؟";
851
+ readonly subtitle: "تُخزَّن الصفحات والأدوار وسجل التدقيق والإعدادات في جداول تبدأ بـ adminium_ — ولا تُخلط أبدًا ببياناتك.";
852
+ readonly sameDb: {
853
+ readonly title: "قاعدة البيانات نفسها";
854
+ readonly description: "تُنشأ جداول adminium_* بجانب جداول المصدر. أبسط إعداد — يتطلب دورًا بصلاحيات الكتابة وCREATE TABLE.";
855
+ readonly disabledReadOnly: "دورك للقراءة فقط — لا يكتب Adminium أبدًا في هذه القاعدة. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
856
+ readonly disabledNoDdl: "لا يمكن لهذا الدور تنفيذ DDL — تحتاج ترحيلات Adminium إلى CREATE TABLE. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
857
+ readonly disabledFile: "ملف المخطط ليس له قاعدة بيانات حيّة — اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
858
+ };
859
+ readonly separate: {
860
+ readonly title: "قاعدة بيانات منفصلة";
861
+ readonly description: "يحتفظ Adminium بجداوله في قاعدة بيانات مختلفة. يبقى مصدرك كما هو — وهذا مطلوب للمصادر ذات القراءة فقط.";
862
+ readonly dsn: "سلسلة اتصال قاعدة البيانات الوصفية";
863
+ readonly helper: "يتطلب صلاحيات الكتابة وDDL — يشغّل Adminium ترحيلاته الخاصة هناك.";
864
+ readonly test: "اختبار الاتصال";
865
+ readonly ok: "متوافق — كتابة ✓ · DDL ✓";
866
+ readonly insufficient: "لا يمكن لهذا الدور استضافة المخزن الوصفي — يحتاج Adminium هناك إلى صلاحيات الكتابة وCREATE TABLE.";
867
+ readonly errorTitle: "مخزن البيانات الوصفية غير متوافق";
868
+ };
869
+ readonly testFailed: "فشل الاتصال.";
870
+ readonly v1Note: {
871
+ readonly title: "حول هذا التثبيت";
872
+ readonly body: "اختار هذا الخادم مخزنه الوصفي عند أول تشغيل. تتحقق هذه الخطوة من توافق اختيارك مع هذا الاتصال وتسجّله — ويفرض الخادم القاعدة نفسها بشكل مستقل (409 META_PLACEMENT_INVALID). نقل مخزن وصفي قائم مهمة تشغيلية (M10).";
873
+ };
874
+ };
875
+ readonly intent: {
876
+ readonly title: "ما الذي تحتاجه؟";
877
+ readonly subtitle: "يحدد الغرض الصفحات التي سيتم توليدها. يمكنك تغييره لاحقًا — تغييره يقترح إعادة توليد، ولا يعيد الكتابة بصمت أبدًا.";
878
+ readonly trust: "نقرأ مخططك فقط — ولا نقرأ بيانات صفوفك أبدًا أثناء الإعداد.";
879
+ readonly fullAdmin: {
880
+ readonly title: "لوحة إدارة كاملة";
881
+ readonly description: "لوحات معلومات وصفحات CRUD وبحث واستيراد وتصدير — كل ما يدعمه مخططك.";
882
+ };
883
+ readonly analytics: {
884
+ readonly title: "تحليلات للقراءة فقط";
885
+ readonly description: "لوحات معلومات ورسوم بيانية وجداول للقراءة فقط. لا نماذج ولا كتابة — كل دور محدود بمشاهد.";
886
+ };
887
+ readonly crud: {
888
+ readonly title: "جداول CRUD";
889
+ readonly description: "صفحة تحرير واحدة لكل جدول مع البحث والاستيراد/التصدير — صفحة رئيسية بسيطة، دون لوحات معلومات.";
890
+ };
891
+ readonly support: {
892
+ readonly title: "وحدة تحكم الدعم";
893
+ readonly description: "قوائم الانتظار وصفحات التذاكر وتفاصيل العملاء أولًا. الحذف معطّل افتراضيًا. (تصل قوالب قوائم الانتظار في M7 — مجموعة صفحات v1 تطابق لوحة الإدارة الكاملة.)";
894
+ };
895
+ };
896
+ readonly generate: {
897
+ readonly title: "ولّد تطبيقك";
898
+ readonly subtitle: "صفحة لكل جدول مضمّن مع لوحات معلومات لكل مجال — الغرض:";
899
+ readonly run: "توليد لوحة المعلومات";
900
+ readonly openApp: "افتح تطبيقك";
901
+ readonly logLabel: "سجل التوليد";
902
+ readonly log: {
903
+ readonly classifying: "جارٍ تصنيف المخطط…";
904
+ readonly composing: "جارٍ تركيب القوالب…";
905
+ readonly writing: "جارٍ كتابة الصفحات…";
906
+ readonly done: "تم توليد {pages} صفحة عبر {groups} مجموعات تنقّل";
907
+ };
908
+ readonly successTitle: "لوحة معلوماتك جاهزة";
909
+ readonly successBody: "{pages} صفحة عبر {groups} مجموعات تنقّل — وُلّدت من مخططك، وقابلة للتحرير في الاستوديو.";
910
+ readonly errorTitle: "فشل التوليد";
911
+ readonly failed: "فشل التوليد — أعد المحاولة، أو أعد تشغيل الاستبطان أولًا.";
912
+ readonly fileTitle: "تم تحليل ملف المخطط — يحتاج التوليد إلى قاعدة بيانات حيّة";
913
+ readonly fileBody: "تم تحليل مخططك بنجاح والمعاينة أعلاه حقيقية. توليد تطبيق يعمل مباشرةً من ملف مخطط (بصفوف بديلة) غير متاح بعد — اربط قاعدة بيانات حيّة للتوليد اليوم.";
914
+ };
915
+ readonly remap: {
916
+ readonly column: {
917
+ readonly nullable: "يقبل NULL";
918
+ readonly labelOverride: "تسمية العرض";
919
+ readonly labelHelper: "المستنتج: {name}";
920
+ readonly logicalType: "النوع المنطقي";
921
+ readonly logicalTypeHelper: "المستنتج: {type} (من {dbType}) — يربطه المهايئ؛ ولا يمكن تجاوزه في v1.";
922
+ readonly semantic: "النوع الدلالي";
923
+ readonly unclassified: "لم يُصنَّف بعد.";
924
+ readonly semanticHelper: "المصنِّف: {tag} · الثقة {confidence}% · المصدر: {source}";
925
+ readonly semanticInferred: "المستنتج: {tag}";
926
+ readonly currency: "العملة";
927
+ readonly currencyHelper: "رمز ISO 4217 المطبَّق على تنسيق المبالغ المالية.";
928
+ readonly pii: "الإخفاء افتراضيًا";
929
+ readonly piiHelper: "تُعرض القيم المخفية محجوبة؛ ويتطلب كشفها صلاحية data.unmask_pii ويُسجَّل في سجل التدقيق.";
930
+ readonly enum: "دلالات التعداد";
931
+ readonly enumKind: "نوع التعداد";
932
+ readonly enumWorkflow: "سير عمل";
933
+ readonly enumCategory: "فئة";
934
+ readonly enumLabelFor: "تسمية {value}";
935
+ readonly enumToneFor: "درجة لون {value}";
936
+ readonly enumToneAuto: "تلقائي";
937
+ readonly enumHelper: "تعدادات سير العمل تُشغّل شارات الحالة وأعمدة اللوحات؛ وتربط درجات الألوان القيم بمقياس التظليل الدلالي.";
938
+ };
939
+ readonly diff: {
940
+ readonly one: "تغيير واحد";
941
+ readonly count: "{count} تغييرات";
942
+ readonly saved: "تم حفظ التجاوزات.";
943
+ readonly revertOne: "التراجع عن {change}";
944
+ readonly regenerate: "إعادة توليد الصفحات";
945
+ readonly revertAll: "التراجع عن الكل";
946
+ readonly save: "حفظ التجاوزات";
947
+ };
948
+ readonly table: {
949
+ readonly iconPicker: "أيقونة الجدول";
950
+ readonly system: "نظام";
951
+ readonly labelOverride: "تسمية العرض";
952
+ readonly labelHelper: "المستنتج: {name}";
953
+ readonly icon: "الأيقونة";
954
+ readonly navGroup: "مجموعة التنقل";
955
+ readonly navGroupHelper: "يقرر المولِّد موضع التنقل — تجاوز table.navGroup ليس ضمن مفردات v1.";
956
+ readonly include: "التضمين في التطبيق المولَّد";
957
+ readonly includeHelper: "الجداول المستبعدة لا تحصل على صفحات وتختفي من التنقل.";
958
+ readonly shape: "شكل الجدول (مصنَّف)";
959
+ readonly role: "الدور";
960
+ readonly unclassified: "غير مصنَّف";
961
+ readonly kind: "النوع";
962
+ readonly hierarchy: "التسلسل الهرمي";
963
+ readonly selfFk: "مرجع ذاتي عبر {column}";
964
+ readonly polymorphic: "أزواج متعددة الأشكال";
965
+ readonly rows: "تقدير عدد الصفوف";
966
+ readonly shapeHelper: "يُعاد حساب التصنيف مع كل استبطان؛ وتُطبَّق التجاوزات فوقه وتبقى بعد إعادة التوليد.";
967
+ };
968
+ readonly relations: {
969
+ readonly declared: "المفاتيح الخارجية المعلنة";
970
+ readonly noneDeclared: "لا توجد مفاتيح خارجية معلنة تمسّ هذا الجدول.";
971
+ readonly inferred: "العلاقات المستنتجة";
972
+ readonly noneInferred: "لا شيء مستنتج لهذا الجدول.";
973
+ readonly confidence: "مستنتجة · {pct}%";
974
+ readonly accepted: "مقبولة";
975
+ readonly suppressed: "مستبعدة";
976
+ readonly accept: "قبول";
977
+ readonly suppress: "استبعاد";
978
+ readonly overrides: "علاقات التجاوز (المطبَّقة)";
979
+ readonly overrideBadge: "تجاوز";
980
+ readonly add: "إضافة علاقة افتراضية";
981
+ readonly fromColumn: "من العمود";
982
+ readonly noColumns: "لا يوجد عمود مطابق";
983
+ readonly fromPlaceholder: "customer_id";
984
+ readonly toTable: "إلى الجدول";
985
+ readonly noTables: "لا يوجد جدول مطابق";
986
+ readonly toColumn: "إلى العمود";
987
+ readonly cardinality: "التعددية";
988
+ readonly addButton: "إضافة علاقة";
989
+ };
990
+ readonly toast: {
991
+ readonly saved: "تم حفظ تجاوزات المخطط";
992
+ readonly savedDetail: "يعكس المخطط المطبَّق أدناه تغييراتك.";
993
+ readonly regenerated: "{created} أُنشئت · {updated} حُدّثت · {unchanged} لم تتغير";
994
+ readonly regeneratedDetail: "تُحفظ الصفحات التي حرّرتها يدويًا — لم يُعَد التوليد في مكانه إلا للصفحات التي بقي generated_hash الخاص بها دون تعديل.";
995
+ readonly regenerateFailed: "فشلت إعادة التوليد";
996
+ };
997
+ readonly title: "إعادة تعيين المخطط";
998
+ readonly subtitle: "{tables} جدولًا · {applied} تجاوزًا مطبَّقًا";
999
+ readonly saveFailed: "فشل الحفظ: {message}";
1000
+ readonly loadFailed: "تعذّر تحميل المخطط لهذا الاتصال.";
1001
+ readonly inspector: "الفاحص";
1002
+ readonly empty: {
1003
+ readonly title: "اختر جدولًا أو عمودًا";
1004
+ readonly description: "حدد عنصرًا في شجرة المخطط لإعادة تعيين تسميته أو نوعه أو علاقاته أو إخفائه.";
1005
+ };
1006
+ readonly tabs: {
1007
+ readonly details: "التفاصيل";
1008
+ readonly relations: "العلاقات";
1009
+ };
1010
+ readonly tree: {
1011
+ readonly label: "المخطط";
1012
+ readonly search: "البحث في الجداول والأعمدة";
1013
+ readonly searchPlaceholder: "ابحث في الجداول…";
1014
+ readonly noMatches: "لا توجد جداول تطابق بحثك.";
1015
+ readonly collapse: "طي الجدول";
1016
+ readonly expand: "توسيع الجدول";
1017
+ readonly unsaved: "تغيير غير محفوظ";
1018
+ readonly excluded: "مستبعد";
1019
+ };
1020
+ readonly badge: {
1021
+ readonly pk: "PK";
1022
+ readonly fk: "FK";
1023
+ readonly unique: "UNIQUE";
1024
+ readonly pii: "بيانات شخصية";
1025
+ readonly masked: "مخفي";
1026
+ };
1027
+ };
1028
+ };
1029
+ readonly onboarding: {
1030
+ readonly title: "البدء";
1031
+ readonly subtitle: "بضع خطوات لتجهيز مساحة العمل الخاصة بك.";
1032
+ readonly loading: "جارٍ تحميل قائمة الإعداد…";
1033
+ readonly welcome: "مرحبًا بك في Adminium، {name} 👋";
1034
+ readonly progressBody: "لقد أكملت {done} من {total} خطوات الإعداد. أكمل الباقي لفتح مساحة العمل بالكامل.";
1035
+ readonly completeBody: "كل شيء جاهز — تم إعداد مساحة عملك بالكامل.";
1036
+ readonly ringLabel: "اكتملت {done} من {total} خطوات";
1037
+ readonly done: "تم";
1038
+ readonly skip: "تخطٍّ الآن";
1039
+ readonly goToWorkspace: "الانتقال إلى مساحة العمل";
1040
+ readonly help: {
1041
+ readonly title: "تحتاج مساعدة؟";
1042
+ readonly body: "نحن هنا لمساعدتك على الإعداد بسرعة.";
1043
+ };
1044
+ readonly steps: {
1045
+ readonly connectDatabase: {
1046
+ readonly title: "توصيل قاعدة بيانات";
1047
+ readonly desc: "وجّه Adminium إلى قاعدة بيانات Postgres أو MySQL أو SQLite — يكفي دور للقراءة فقط.";
1048
+ readonly time: "5 دقائق";
1049
+ readonly action: "توصيل";
1050
+ };
1051
+ readonly chooseTables: {
1052
+ readonly title: "اختر جداولك";
1053
+ readonly desc: "اختر الجداول التي ستصبح صفحات — يتم إخفاء البيانات الشخصية افتراضيًا.";
1054
+ readonly time: "دقيقتان";
1055
+ readonly action: "اختيار";
1056
+ };
1057
+ readonly inviteTeammates: {
1058
+ readonly title: "دعوة زملاء الفريق";
1059
+ readonly desc: "اجلب فريقك للاستكشاف والتعاون.";
1060
+ readonly time: "دقيقتان";
1061
+ readonly action: "دعوة";
1062
+ };
1063
+ readonly workspaceDefaults: {
1064
+ readonly title: "تعيين الإعدادات الافتراضية";
1065
+ readonly desc: "السمة واللون المميز والكثافة واللغة للجميع.";
1066
+ readonly time: "دقيقة واحدة";
1067
+ readonly action: "تعيين";
1068
+ };
1069
+ };
1070
+ readonly entry: {
1071
+ readonly wayBack: "البدء · {done}/{total}";
1072
+ readonly dismiss: "إخفاء قائمة الإعداد";
1073
+ readonly continue: "متابعة الإعداد";
1074
+ readonly banner: "أكمل إعداد مساحة عملك — تم {done} من {total} خطوات.";
1075
+ };
1076
+ };
1077
+ readonly views: {
1078
+ readonly baseView: "كل السجلات";
1079
+ readonly menuLabel: "طرق العرض المحفوظة";
1080
+ readonly saveAs: "حفظ الحالي كطريقة عرض…";
1081
+ readonly updateActive: "تحديث «{name}»";
1082
+ readonly rename: "إعادة تسمية…";
1083
+ readonly setDefault: "تعيين كافتراضي";
1084
+ readonly delete: "حذف…";
1085
+ readonly saveTitle: "حفظ طريقة العرض";
1086
+ readonly save: "حفظ طريقة العرض";
1087
+ readonly renameTitle: "إعادة تسمية طريقة العرض";
1088
+ readonly saveName: "حفظ الاسم";
1089
+ readonly nameLabel: "اسم طريقة العرض";
1090
+ readonly namePlaceholder: "مثال: النشطون هذا الشهر";
1091
+ readonly nameRequired: "أدخل اسمًا لطريقة العرض هذه.";
1092
+ readonly saveFailed: "تعذّر حفظ طريقة العرض.";
1093
+ readonly deleteTitle: "حذف طريقة العرض";
1094
+ readonly deleteBody: "يؤدي هذا إلى إزالة طريقة العرض المحفوظة. لن تتأثر بياناتك.";
1095
+ readonly deletePrompt: "اكتب اسم طريقة العرض للتأكيد";
1096
+ readonly deleteConfirm: "حذف طريقة العرض";
1097
+ readonly savedToast: "تم حفظ طريقة العرض «{name}».";
1098
+ readonly updatedToast: "تم تحديث طريقة العرض «{name}».";
1099
+ readonly defaultToast: "«{name}» أصبحت الآن طريقة العرض الافتراضية.";
1100
+ readonly deletedToast: "تم حذف طريقة العرض «{name}».";
1101
+ };
1102
+ readonly builder: {
1103
+ readonly view: "عرض";
1104
+ readonly edit: "تحرير";
1105
+ readonly done: "تم";
1106
+ readonly addWidget: "إضافة عنصر واجهة";
1107
+ readonly saveLayout: "حفظ التخطيط";
1108
+ readonly saving: "جارٍ الحفظ…";
1109
+ readonly savedShort: "تم الحفظ";
1110
+ readonly options: "خيارات لوحة المعلومات";
1111
+ readonly resetLayout: "إعادة تعيين التخطيط";
1112
+ readonly resetTitle: "إعادة التعيين إلى التخطيط المشترك؟";
1113
+ readonly resetBody: "يؤدي هذا إلى إزالة تغييراتك الشخصية واستعادة لوحة المعلومات التي يراها الجميع. لن تتأثر بياناتك.";
1114
+ readonly resetConfirm: "إعادة تعيين التخطيط";
1115
+ readonly resetDone: "تمت إعادة تعيين التخطيط إلى الوضع الافتراضي المشترك.";
1116
+ readonly sharedNote: "أنت تحرر لوحة المعلومات المشتركة التي يراها الجميع.";
1117
+ readonly personalNote: "أنت تحرر تخطيطك الشخصي — أنت وحدك من يرى هذه التغييرات.";
1118
+ readonly savedShared: "تم حفظ لوحة المعلومات لكل من لديه صلاحية الوصول.";
1119
+ readonly empty: "لا تحتوي لوحة المعلومات هذه على أي عناصر واجهة بعد.";
1120
+ readonly emptyAction: "إضافة عنصر واجهة";
1121
+ readonly palette: {
1122
+ readonly title: "إضافة عنصر واجهة";
1123
+ readonly count: "{count} عنصر واجهة";
1124
+ readonly searchLabel: "البحث في عناصر الواجهة";
1125
+ readonly searchPlaceholder: "البحث في عناصر الواجهة…";
1126
+ readonly clear: "مسح البحث";
1127
+ readonly noResults: "لا توجد عناصر واجهة تطابق ”{query}“.";
1128
+ readonly add: "إضافة {name}";
1129
+ readonly added: "تمت إضافة {name}.";
1130
+ };
1131
+ readonly inspector: {
1132
+ readonly title: "تكوين عنصر الواجهة";
1133
+ readonly empty: "لا يحتوي عنصر الواجهة هذا على خيارات للتكوين.";
1134
+ readonly locked: "مقفل";
1135
+ readonly lockedHint: "يتم تعيين هذا الحقل بواسطة المصدر ولا يمكن تحريره هنا.";
1136
+ readonly selectPlaceholder: "اختر…";
1137
+ readonly increment: "زيادة";
1138
+ readonly decrement: "إنقاص";
1139
+ readonly done: "تم";
1140
+ };
1141
+ readonly item: {
1142
+ readonly configure: "تكوين {name}";
1143
+ readonly duplicate: "تكرار {name}";
1144
+ readonly remove: "إزالة {name}";
1145
+ readonly removed: "تمت إزالة {name}.";
1146
+ readonly duplicated: "تم تكرار {name}.";
1147
+ };
1148
+ readonly families: {
1149
+ readonly kpi: "المؤشرات";
1150
+ readonly charts: "الرسوم البيانية";
1151
+ readonly tables: "الجداول";
1152
+ readonly feeds: "الموجزات";
1153
+ readonly calendar: "التقويم";
1154
+ readonly boards: "اللوحات";
1155
+ readonly geo: "الخرائط";
1156
+ readonly media: "الوسائط";
1157
+ readonly communication: "التواصل";
1158
+ readonly forms: "النماذج";
1159
+ readonly chrome: "التنقل";
1160
+ readonly system: "النظام";
1161
+ readonly domain: "المجال";
1162
+ };
1163
+ readonly versions: "الإصدارات";
1164
+ readonly versionsEmpty: "لا توجد إصدارات محفوظة بعد";
1165
+ readonly saveAsVersion: "حفظ كإصدار";
1166
+ readonly saveVersionTitle: "حفظ إصدار";
1167
+ readonly saveVersionBody: "يلتقط نسخة من المستند الحالي. يمكنك استعادتها في أي وقت من الإصدارات.";
1168
+ readonly versionName: "اسم الإصدار";
1169
+ readonly versionNamePlaceholder: "مثل: قبل تغيير أسعار الربع الثالث";
1170
+ };
1171
+ readonly setup: {
1172
+ readonly title: "إعداد Adminium";
1173
+ readonly subtitle: "أنشئ أول مسؤول. يحدث هذا مرة واحدة فقط.";
1174
+ readonly progress: "تقدُّم الإعداد";
1175
+ readonly steps: {
1176
+ readonly account: "حساب المسؤول";
1177
+ readonly consent: "الخصوصية";
1178
+ };
1179
+ readonly account: {
1180
+ readonly name: "اسمك";
1181
+ readonly email: "البريد الإلكتروني";
1182
+ readonly emailInvalid: "أدخل عنوان بريد إلكتروني صالحًا.";
1183
+ readonly password: "كلمة المرور";
1184
+ readonly passwordHelper: "{min} أحرف على الأقل.";
1185
+ readonly passwordTooShort: "استخدم {min} أحرف على الأقل.";
1186
+ readonly confirm: "تأكيد كلمة المرور";
1187
+ readonly passwordMismatch: "كلمتا المرور غير متطابقتين.";
1188
+ readonly continue: "متابعة";
1189
+ readonly strength: "قوة كلمة المرور";
1190
+ readonly strengthLevels: {
1191
+ readonly weak: "ضعيفة";
1192
+ readonly fair: "مقبولة";
1193
+ readonly good: "جيدة";
1194
+ readonly strong: "قوية";
1195
+ };
1196
+ };
1197
+ readonly consent: {
1198
+ readonly telemetry: {
1199
+ readonly title: "مشاركة بيانات استخدام مجهولة المصدر";
1200
+ readonly description: "تساعدنا على معرفة محركات قواعد البيانات التي ينبغي إعطاؤها الأولوية. مُعطَّلة ما لم تُفعِّلها.";
1201
+ };
1202
+ readonly updates: {
1203
+ readonly title: "التحقق من الإصدارات الجديدة";
1204
+ readonly description: "يعرض تنبيهًا عند توفر إصدار جديد — بما في ذلك إصلاحات الأمان. يستعلم هذا من GitHub عن أحدث إصدار، مما يكشف لـ GitHub عن عنوان IP لهذه النسخة وإصدارها. ولا يُرسَل أي شيء آخر.";
1205
+ };
1206
+ readonly sentTitle: "هذا بالضبط ما يُرسَل:";
1207
+ readonly sent: {
1208
+ readonly instanceId: "معرِّف نسخة عشوائي (UUID يُولَّد هنا؛ وليس مشتقًا من اسمك أو مضيفك أو قاعدة بياناتك)";
1209
+ readonly version: "إصدار Adminium الذي تعمل به هذه النسخة";
1210
+ readonly engines: "أنواع محركات قواعد البيانات المتصلة (مثل «postgres») — الأنواع فقط";
1211
+ };
1212
+ readonly neverTitle: "لا يُرسَل أبدًا:";
1213
+ readonly never: {
1214
+ readonly schema: "مخطط بياناتك — لا أسماء جداول ولا أعمدة ولا تعدادات";
1215
+ readonly rows: "بياناتك — ولا صف واحد، أبدًا";
1216
+ readonly connections: "سلاسل الاتصال أو أسماء المضيفين أو بيانات الاعتماد";
1217
+ readonly people: "عناوين البريد الإلكتروني للمستخدمين أو أسماؤهم أو معرِّفاتهم";
1218
+ readonly llm: "مُوجَّهات الذكاء الاصطناعي أو محتويات عمليات التشغيل";
1219
+ };
1220
+ readonly reversible: "كلاهما مُعطَّل افتراضيًا، ويمكنك تغيير أيٍّ منهما لاحقًا من الإعدادات.";
1221
+ readonly back: "رجوع";
1222
+ readonly finish: "إنشاء حساب المسؤول";
1223
+ };
1224
+ readonly error: {
1225
+ readonly alreadyCompleted: "سبق إعداد هذه النسخة. سجِّل الدخول باستخدام حساب المسؤول الحالي.";
1226
+ readonly rejected: "رفض الخادم هذه البيانات. تحقق من البريد الإلكتروني وكلمة المرور ثم حاول مجددًا.";
1227
+ readonly failed: "فشل الإعداد. تحقق من اتصالك وحاول مجددًا.";
1228
+ };
1229
+ };
1230
+ readonly about: {
1231
+ readonly title: "حول Adminium";
1232
+ readonly subtitle: "الإصدار والترخيص وموضع الشفرة المصدرية لهذه النسخة.";
1233
+ readonly version: "الإصدار";
1234
+ readonly license: "الترخيص";
1235
+ readonly metaStore: "مخزن البيانات الوصفية";
1236
+ readonly node: "Node.js";
1237
+ readonly engine: {
1238
+ readonly postgres: "PostgreSQL";
1239
+ readonly mysql: "MySQL / MariaDB";
1240
+ readonly sqlite: "SQLite";
1241
+ };
1242
+ readonly licenseCard: {
1243
+ readonly title: "حر ومفتوح المصدر";
1244
+ readonly body: "يخضع Adminium لرخصة جنو أفيرو العمومية العامة الإصدار 3.0. لك حرية تشغيله ودراسته وتعديله ومشاركته. وإذا قدَّمت نسخة معدَّلة للآخرين عبر شبكة، فإن رخصة AGPL تطالبك بأن تقدِّم لهم شفرتها المصدرية أيضًا.";
1245
+ };
1246
+ readonly viewLicense: "قراءة الترخيص";
1247
+ readonly viewSource: "الحصول على الشفرة المصدرية";
1248
+ readonly updates: {
1249
+ readonly title: "التحديثات";
1250
+ readonly description: "ما إذا كانت هذه النسخة تتحقق من الإصدارات الجديدة.";
1251
+ };
1252
+ readonly update: {
1253
+ readonly disabled: "التحقق من التحديثات مُعطَّل، لذا لا تتصل هذه النسخة بـ GitHub إطلاقًا. فعِّله من الإعدادات لتعرف بالإصدارات الجديدة.";
1254
+ readonly current: "أنت تستخدم أحدث إصدار.";
1255
+ readonly available: "الإصدار {version} من Adminium متاح";
1256
+ readonly availableBody: "أنت تستخدم حاليًا {version}.";
1257
+ readonly viewRelease: "عرض ملاحظات الإصدار";
1258
+ };
1259
+ readonly desktop: {
1260
+ readonly unknown: "غير معروف";
1261
+ readonly appVersion: "إصدار التطبيق";
1262
+ readonly serverVersion: "إصدار الخادم";
1263
+ readonly migration: "ترحيل مخزن البيانات الوصفية";
1264
+ readonly electron: "Electron";
1265
+ readonly chromium: "Chromium";
1266
+ readonly runtimeNode: "بيئة تشغيل Node";
1267
+ readonly system: {
1268
+ readonly title: "النظام";
1269
+ };
1270
+ readonly dataDir: "دليل البيانات";
1271
+ readonly reveal: "إظهار في المجلد";
1272
+ readonly secret: {
1273
+ readonly title: "تخزين السرّ";
1274
+ readonly safe: "مُشفَّر بواسطة نظام التشغيل لديك";
1275
+ readonly plainWarning: "لا تتوفر سلسلة مفاتيح للنظام على هذا الحاسوب، لذا يُخزَّن سرّ Adminium غير مُشفَّر على القرص. يمكن لأي شخص يستطيع قراءة ملفات هذا الجهاز قراءته. أعِدّ سلسلة مفاتيح تسجيل الدخول (أو خدمة أسرار في لينكس) وأعِد تشغيل Adminium لحمايته.";
1276
+ };
1277
+ readonly updates: {
1278
+ readonly title: "التحديثات";
1279
+ readonly mode: {
1280
+ readonly notify: "أعلِمني بالإصدارات الجديدة";
1281
+ readonly manual: "فقط عند التحقق";
1282
+ readonly disabled: "مُعطَّل (بلا اتصال)";
1283
+ };
1284
+ readonly disabledBody: "التحديثات التلقائية مُعطَّلة (بلا اتصال). ثبِّت الإصدارات الجديدة يدويًا.";
1285
+ readonly check: "التحقق من التحديثات";
1286
+ readonly checking: "جارٍ التحقق…";
1287
+ readonly lastChecked: "آخر تحقق {when}";
1288
+ readonly available: "الإصدار {version} متوفر";
1289
+ readonly none: "أنت على أحدث إصدار.";
1290
+ readonly unavailable: "التحديثات مُعطَّلة في هذا التثبيت.";
1291
+ readonly error: "تعذّر التحقق من التحديثات.";
1292
+ readonly download: "تنزيل التحديث";
1293
+ readonly downloading: "جارٍ التنزيل… {percent}٪";
1294
+ readonly downloaded: "الإصدار {version} جاهز للتثبيت";
1295
+ readonly restart: "أعد التشغيل للتثبيت";
1296
+ readonly downloadError: "لم يكتمل التنزيل. يمكنك المحاولة مرة أخرى.";
1297
+ readonly toast: {
1298
+ readonly available: "يتوفّر إصدار جديد من Adminium";
1299
+ readonly view: "عرض";
1300
+ readonly downloaded: "التحديث جاهز للتثبيت";
1301
+ readonly restart: "أعد التشغيل الآن";
1302
+ };
1303
+ };
1304
+ readonly legal: {
1305
+ readonly title: "التراخيص";
1306
+ readonly agpl: "Adminium Desktop برنامج حر بموجب رخصة GNU Affero General Public License v3.0.";
1307
+ readonly viewLicense: "عرض الترخيص";
1308
+ readonly licenseTitle: "GNU Affero General Public License v3.0";
1309
+ readonly licenseUnavailable: "ملف الترخيص المُضمَّن غير متوفر في هذه النسخة.";
1310
+ readonly viewNotices: "تراخيص الأطراف الثالثة";
1311
+ readonly noticesTitle: "إشعارات الأطراف الثالثة";
1312
+ readonly noticesUnavailable: "تُنشأ إشعارات الأطراف الثالثة عند تحزيم التطبيق وهي غير متوفرة في هذه النسخة.";
1313
+ readonly source: "الشيفرة المصدرية";
1314
+ readonly close: "إغلاق";
1315
+ };
1316
+ readonly telemetry: {
1317
+ readonly title: "بيانات استخدام مجهولة";
1318
+ readonly label: "مشاركة بيانات استخدام مجهولة";
1319
+ readonly description: "يساعدنا على تحديد محركات قواعد البيانات ذات الأولوية. مُعطَّل ما لم تُفعِّله؛ ولا يُرسَل أبدًا أي مخطط أو بيانات أو معلومات شخصية.";
1320
+ readonly saveFailed: "تعذّر حفظ هذا الإعداد. حاوِل مرة أخرى.";
1321
+ };
1322
+ readonly diagnostics: {
1323
+ readonly title: "التشخيص";
1324
+ readonly description: "تفاصيل تساعد عند الإبلاغ عن مشكلة. لا تتضمّن أي مخطط أو بيانات.";
1325
+ readonly copy: "نسخ معلومات التشخيص";
1326
+ readonly copied: "تم النسخ";
1327
+ readonly showLogs: "عرض السجلات";
1328
+ readonly dataSize: "حجم البيانات: {size}";
1329
+ };
1330
+ };
1331
+ };
1332
+ readonly apiKeys: {
1333
+ readonly title: "مفاتيح API والرموز";
1334
+ readonly subtitle: "تحكَّم في الوصول البرمجي إلى مساحة عملك.";
1335
+ readonly createButton: "إنشاء مفتاح";
1336
+ readonly copy: "نسخ";
1337
+ readonly copied: "تم النسخ";
1338
+ readonly revoke: "إبطال المفتاح";
1339
+ readonly neverUsed: "لم يُستخدم قط";
1340
+ readonly lastUsed: "آخر استخدام {since}";
1341
+ readonly scopesOverflow: "و{count} أخرى";
1342
+ readonly status: {
1343
+ readonly active: "نشط";
1344
+ readonly revoked: "مُبطَل";
1345
+ readonly expired: "منتهي الصلاحية";
1346
+ };
1347
+ readonly list: {
1348
+ readonly title: "المفاتيح";
1349
+ readonly activeCount: "{count, plural, zero {لا مفاتيح نشطة} one {مفتاح نشط واحد} two {مفتاحان نشطان} few {# مفاتيح نشطة} many {# مفتاحًا نشطًا} other {# مفتاح نشط}}";
1350
+ };
1351
+ readonly empty: {
1352
+ readonly title: "لا توجد مفاتيح API بعد";
1353
+ readonly body: "أنشئ مفتاحًا لاستدعاء واجهة Adminium من شفرتك الخاصة.";
1354
+ };
1355
+ readonly revealed: {
1356
+ readonly title: "تم إنشاء مفتاح جديد";
1357
+ readonly body: "انسخه الآن — لن تتمكن من رؤيته مرة أخرى.";
1358
+ };
1359
+ readonly rolesUnavailable: {
1360
+ readonly title: "الأدوار غير ظاهرة لك";
1361
+ readonly body: "إنشاء مفتاح يعني اختيار الدور الذي يعمل به، وحسابك لا يستطيع قراءة قائمة الأدوار. اطلب من المسؤول صلاحية “إدارة الأدوار”.";
1362
+ };
1363
+ readonly quickStart: {
1364
+ readonly title: "بداية سريعة";
1365
+ readonly body: "وثِّق طلباتك بوضع المفتاح في ترويسة Authorization.";
1366
+ };
1367
+ readonly create: {
1368
+ readonly title: "إنشاء مفتاح API";
1369
+ readonly description: "يعمل المفتاح بصلاحيات الدور الذي تختاره.";
1370
+ readonly name: "الاسم";
1371
+ readonly namePlaceholder: "مثال: خط بيانات التحليلات";
1372
+ readonly role: "الدور";
1373
+ readonly roleHelper: "اختر أقل الأدوار صلاحيةً مما يفي بالغرض.";
1374
+ readonly expires: "ينتهي في";
1375
+ readonly expiresHelper: "اتركه فارغًا لمفتاح لا تنتهي صلاحيته.";
1376
+ readonly submit: "إنشاء المفتاح";
1377
+ readonly failed: "تعذَّر إنشاء المفتاح";
1378
+ };
1379
+ readonly revokeConfirm: {
1380
+ readonly title: "إبطال مفتاح API";
1381
+ readonly body: "أي شفرة ما زالت تستدعي الواجهة بـ “{name}” ستفشل فورًا. لا يمكن التراجع عن ذلك.";
1382
+ readonly prompt: "اكتب “{name}” للتأكيد";
1383
+ readonly confirm: "إبطال المفتاح";
1384
+ };
1385
+ };
1386
+ readonly changelog: {
1387
+ readonly title: "سجل التغييرات";
1388
+ readonly subtitle: "تحديثات المنتج والإصدارات.";
1389
+ readonly allReleases: "كل الإصدارات";
1390
+ readonly tag: {
1391
+ readonly new: "جديد";
1392
+ readonly improved: "تحسين";
1393
+ readonly fixed: "إصلاح";
1394
+ readonly security: "أمان";
1395
+ };
1396
+ readonly filter: {
1397
+ readonly all: "الكل";
1398
+ readonly label: "تصفية التغييرات حسب النوع";
1399
+ };
1400
+ readonly empty: {
1401
+ readonly title: "لا شيء ضمن هذه التصفية";
1402
+ readonly body: "لم يحمل أي إصدار تغييرًا من هذا النوع بعد.";
1403
+ readonly clear: "عرض كل التغييرات";
1404
+ };
1405
+ };
1406
+ readonly kb: {
1407
+ readonly title: "قاعدة المعرفة";
1408
+ readonly subtitle: "{count, plural, zero {لا أدلة} one {دليل واحد} two {دليلان} few {# أدلة} many {# دليلًا} other {# دليل}} · التوثيق الكامل على docs.adminium.dev";
1409
+ readonly openDocs: "فتح التوثيق";
1410
+ readonly browse: "تصفَّح حسب الموضوع";
1411
+ readonly hero: {
1412
+ readonly title: "كيف يمكننا المساعدة؟";
1413
+ readonly subtitle: "ابحث في الأدلة وتوثيق الواجهة وحل المشكلات.";
1414
+ readonly placeholder: "ابحث في قاعدة المعرفة…";
1415
+ readonly label: "ابحث في قاعدة المعرفة";
1416
+ readonly clear: "مسح البحث";
1417
+ };
1418
+ readonly category: {
1419
+ readonly start: "البداية";
1420
+ readonly connect: "توصيل البيانات";
1421
+ readonly api: "الواجهة والمطورون";
1422
+ readonly security: "الأمان والوصول";
1423
+ readonly selfhost: "الاستضافة الذاتية";
1424
+ readonly trouble: "حل المشكلات";
1425
+ readonly count: "{count, plural, zero {لا مقالات} one {مقال واحد} two {مقالان} few {# مقالات} many {# مقالًا} other {# مقال}}";
1426
+ readonly selected: "قيد التصفية";
1427
+ };
1428
+ readonly list: {
1429
+ readonly all: "كل الأدلة";
1430
+ readonly clear: "مسح التصفية";
1431
+ };
1432
+ readonly empty: {
1433
+ readonly title: "لا يوجد دليل يطابق بحثك";
1434
+ readonly body: "جرِّب كلمة أخرى، أو ابحث في التوثيق الكامل على docs.adminium.dev.";
1435
+ readonly openDocs: "فتح التوثيق";
1436
+ };
1437
+ readonly article: {
1438
+ readonly install: {
1439
+ readonly title: "تثبيت Adminium";
1440
+ readonly excerpt: "شغِّل من نسخة المصدر أو عبر docker run، وستصل إلى معالج التشغيل الأول خلال دقيقة.";
1441
+ };
1442
+ readonly firstAdmin: {
1443
+ readonly title: "إنشاء أول مسؤول أعلى";
1444
+ readonly excerpt: "ما يطلبه معالج التشغيل الأول، ولماذا لا يعمل إلا مرة واحدة.";
1445
+ };
1446
+ readonly connectDb: {
1447
+ readonly title: "توصيل قاعدة بياناتك الأولى";
1448
+ readonly excerpt: "وجِّه Adminium إلى PostgreSQL أو MySQL أو SQLite وولِّد تطبيق إدارة.";
1449
+ };
1450
+ readonly schemaFile: {
1451
+ readonly title: "التوليد من ملف مخطط";
1452
+ readonly excerpt: "ارفع مخطط Prisma أو models.py من Django أو schema.rb من Rails أو ملف .sql — دون أي اتصال.";
1453
+ };
1454
+ readonly readOnly: {
1455
+ readonly title: "استخدام دور للقراءة فقط";
1456
+ readonly excerpt: "الاستكشاف يقرأ بيانات المخطط الوصفية فقط. امنح Adminium أقل صلاحية ممكنة.";
1457
+ };
1458
+ readonly apiKeys: {
1459
+ readonly title: "التوثيق بمفاتيح API";
1460
+ readonly excerpt: "إنشاء المفاتيح وإبطالها، ولماذا يُعرض المفتاح عليك مرة واحدة فقط.";
1461
+ };
1462
+ readonly rest: {
1463
+ readonly title: "مرجع واجهة REST";
1464
+ readonly excerpt: "كل نقطة نهاية يوفرها التطبيق المولَّد، بأشكال الطلب والاستجابة.";
1465
+ };
1466
+ readonly manifest: {
1467
+ readonly title: "بيان الصفحة";
1468
+ readonly excerpt: "كيف تُوصف الصفحة كإعدادات، وكيف تحررها يدويًا.";
1469
+ };
1470
+ readonly roles: {
1471
+ readonly title: "الأدوار والصلاحيات";
1472
+ readonly excerpt: "عيِّن أدوار المشاهد والمحرر والمسؤول، وابنِ أدوارك من مصفوفة الصلاحيات.";
1473
+ };
1474
+ readonly audit: {
1475
+ readonly title: "قراءة سجل التدقيق";
1476
+ readonly excerpt: "من غيَّر ماذا، ومتى، ومن أين.";
1477
+ };
1478
+ readonly secrets: {
1479
+ readonly title: "كيف يحفظ Adminium أسرارك";
1480
+ readonly excerpt: "تُشفَّر بيانات الاتصال أثناء التخزين بـ ADMINIUM_SECRET، وتُجزَّأ مفاتيح API.";
1481
+ };
1482
+ readonly docker: {
1483
+ readonly title: "الاستضافة الذاتية عبر Docker";
1484
+ readonly excerpt: "الصورة الرسمية وdocker-compose وتشغيل قاعدة بيانات وصفية منفصلة.";
1485
+ };
1486
+ readonly backup: {
1487
+ readonly title: "نسخ نسخة احتياطية ونقل النسخة";
1488
+ readonly excerpt: "يجمع export-zip إعدادات خادمك؛ واستيراده يعيد التهيئة نفسها في مكان آخر.";
1489
+ };
1490
+ readonly telemetry: {
1491
+ readonly title: "القياس عن بُعد وفحص التحديثات";
1492
+ readonly excerpt: "كلاهما اختياري ومعطَّل افتراضيًا. وما الذي يُرسَل إن فعَّلتهما.";
1493
+ };
1494
+ readonly connectionFails: {
1495
+ readonly title: "فشل الاتصال بقاعدة البيانات";
1496
+ readonly excerpt: "اقرأ بطاقة التشخيص: المضيف والمنفذ وTLS وعنوان IP الذي يجب أن تسمح به قاعدتك.";
1497
+ };
1498
+ readonly missingTables: {
1499
+ readonly title: "جداول ناقصة بعد الاستكشاف";
1500
+ readonly excerpt: "ظهور المخطط، والجداول المستبعدة، وإعادة تشغيل التوليد.";
1501
+ };
1502
+ };
1503
+ };
1504
+ readonly desktop: {
1505
+ readonly menu: {
1506
+ readonly file: "ملف";
1507
+ readonly fileNewDatabase: "قاعدة بيانات محلية جديدة…";
1508
+ readonly fileOpenSqlite: "فتح ملف SQLite…";
1509
+ readonly fileBackupNow: "النسخ الاحتياطي الآن…";
1510
+ readonly fileRestore: "الاستعادة من نسخة احتياطية…";
1511
+ readonly edit: "تحرير";
1512
+ readonly view: "عرض";
1513
+ readonly window: "نافذة";
1514
+ readonly help: "مساعدة";
1515
+ readonly helpDocs: "مستندات Adminium";
1516
+ readonly helpShortcuts: "اختصارات لوحة المفاتيح";
1517
+ readonly helpLogs: "عرض السجلات";
1518
+ readonly helpCheckForUpdates: "التحقق من وجود تحديثات…";
1519
+ readonly helpAbout: "حول Adminium";
1520
+ };
1521
+ readonly settings: {
1522
+ readonly explainer: "تنطبق هذه الإعدادات على تطبيق Adminium على هذا الكمبيوتر فقط، وتُحفَظ على هذا الجهاز لا في مساحة العمل.";
1523
+ };
1524
+ readonly security: {
1525
+ readonly heading: "تسجيل الدخول";
1526
+ };
1527
+ readonly requireLogin: {
1528
+ readonly label: "طلب تسجيل الدخول على هذا الجهاز";
1529
+ readonly description: "يسجّل Adminium دخولك تلقائيًا على هذا الكمبيوتر عادةً. فعّل هذا الخيار ليطلب كلمة المرور عند كل تشغيل — وهو مفيد إذا كان بإمكان أشخاص آخرين استخدام هذا الجهاز. يسري التغيير عند فتح Adminium في المرة القادمة.";
1530
+ readonly savedOn: "سيُطلب تسجيل الدخول عند التشغيل القادم";
1531
+ readonly savedOff: "سيتخطى Adminium تسجيل الدخول على هذا الكمبيوتر";
1532
+ readonly saveFailed: "تعذّر حفظ هذا الإعداد. حاول مرة أخرى.";
1533
+ };
1534
+ readonly chip: {
1535
+ readonly local: "محلي";
1536
+ readonly lanShare: "محلي · مشارَك على الشبكة";
1537
+ readonly remoteDb: "محلي + قاعدة بيانات بعيدة";
1538
+ readonly remoteDbOffline: "قاعدة البيانات البعيدة غير متصلة";
1539
+ readonly remoteDbOfflineDetail: "تعذّر الوصول إلى {names}. صفحات هذه الاتصالات تعرض حالة إعادة الاتصال.";
1540
+ };
1541
+ readonly lan: {
1542
+ readonly heading: "المشاركة على الشبكة المحلية";
1543
+ readonly label: "السماح للأجهزة الأخرى على هذه الشبكة باستخدام Adminium";
1544
+ readonly description: "يمكن لأجهزة الكمبيوتر والأجهزة اللوحية والهواتف الموجودة على الشبكة نفسها فتح Adminium في المتصفح وتسجيل الدخول بحساباتها الخاصة. يجب أن يظل Adminium مفتوحًا على هذا الكمبيوتر حتى تتمكن من الوصول إليه.";
1545
+ readonly savedOn: "تتم المشاركة على شبكتك المحلية";
1546
+ readonly savedOff: "توقفت المشاركة — عاد Adminium إلى هذا الكمبيوتر فقط";
1547
+ readonly saveFailed: "تعذّر تغيير مشاركة الشبكة";
1548
+ readonly noUsers: "أنت الشخص الوحيد الذي لديه حساب، لذا لا يمكن لأي شخص آخر تسجيل الدخول بعد. المشاركة تعمل رغم ذلك — ستحتاج فقط إلى دعوة أشخاص قبل أن يتمكنوا من استخدامها.";
1549
+ readonly usersUnknown: "تعذّر على Adminium التحقق ممن لديه حساب آخر على هذا الكمبيوتر. لا تزال المشاركة تعمل، ويمكن لأي شخص لديه حساب تسجيل الدخول — هذا التحقق وحده هو ما فشل.";
1550
+ readonly acknowledge: "فهمت — سأدعو أشخاصًا لاحقًا";
1551
+ readonly port: "المنفذ";
1552
+ readonly portHelper: "الافتراضي {port}";
1553
+ readonly portInvalid: "استخدم رقمًا بين 1024 و65535.";
1554
+ readonly applyPort: "تغيير المنفذ";
1555
+ readonly portInUse: "المنفذ {port} مستخدم بالفعل بواسطة برنامج آخر.";
1556
+ readonly portInUseHint: "لم يتغيّر شيء — المشاركة ما زالت متوقفة.";
1557
+ readonly portInUseNoSuggestion: "لم يتغيّر شيء. جرّب منفذًا آخر.";
1558
+ readonly tryPort: "جرّب {port}";
1559
+ readonly urlsHeading: "افتح هذا على جهاز آخر";
1560
+ readonly noUrls: "هذا الكمبيوتر غير متصل بشبكة حاليًا، لذا لا يوجد عنوان للمشاركة. اتصل بشبكة Wi-Fi أو وصّل كابلًا وستمتلئ هذه القائمة.";
1561
+ readonly copyUrl: "نسخ";
1562
+ readonly sessions: "{count, plural, =0 {لا توجد أجهزة مسجّلة الدخول من هذه الشبكة} one {# جهاز مسجّل الدخول من هذه الشبكة} two {جهازان مسجّلان الدخول من هذه الشبكة} few {# أجهزة مسجّلة الدخول من هذه الشبكة} many {# جهازًا مسجّلًا الدخول من هذه الشبكة} other {# جهاز مسجّل الدخول من هذه الشبكة}}";
1563
+ readonly sessionsUnknown: "جارٍ التحقق ممّن هو متصل…";
1564
+ readonly pending: "جارٍ بدء المشاركة…";
1565
+ readonly mismatch: "ما زال الوصول إلى Adminium ممكنًا على هذه الشبكة";
1566
+ readonly mismatchBody: "المشاركة متوقفة، لكن الخادم لم يحرّر الشبكة بعد. أعد تشغيل Adminium لإغلاقها.";
1567
+ readonly transportTitle: "حركة البيانات على شبكتك المحلية غير مشفّرة.";
1568
+ readonly transportBody: "شارك فقط على الشبكات التي تثق بها. للوصول عن بُعد، استخدم استضافة Adminium الذاتية خلف HTTPS.";
1569
+ readonly firewall: "في أول مرة تشارك فيها، سيسألك نظام التشغيل عمّا إذا كان يسمح بالاتصالات الواردة — اختر السماح، وإلا لن تتمكن الأجهزة الأخرى من الوصول إلى Adminium.";
1570
+ };
1571
+ readonly setup: {
1572
+ readonly title: "مرحبًا بك في Adminium";
1573
+ readonly subtitle: "أربع خطوات قصيرة ويكون Adminium قد بنى تطبيق إدارة من قاعدة بياناتك. كل شيء يبقى على هذا الكمبيوتر.";
1574
+ readonly progress: "تقدّم الإعداد";
1575
+ readonly back: "رجوع";
1576
+ readonly continue: "متابعة";
1577
+ readonly createAccount: "إنشاء الحساب والمتابعة";
1578
+ readonly step: {
1579
+ readonly location: "مرحبًا";
1580
+ readonly database: "قاعدة بياناتك الأولى";
1581
+ readonly account: "حسابك";
1582
+ readonly generate: "إنشاء";
1583
+ };
1584
+ readonly dataDir: {
1585
+ readonly heading: "أين ينبغي أن يحتفظ Adminium ببياناتك؟";
1586
+ readonly description: "قواعد بياناتك وإعداداتك ونسخك الاحتياطية كلها موجودة في هذا المجلد. كل شيء يبقى على هذا الكمبيوتر — ولا يُرفع أي شيء إلى أي مكان.";
1587
+ readonly label: "مجلد البيانات";
1588
+ readonly loading: "جارٍ قراءة الموقع الحالي…";
1589
+ readonly pending: "يُعيد Adminium التشغيل عند المتابعة حتى ينتقل إلى هذا المجلد.";
1590
+ readonly change: "تغيير…";
1591
+ readonly revert: "تراجع";
1592
+ readonly dialogTitle: "اختر المكان الذي يحتفظ فيه Adminium ببياناتك";
1593
+ readonly cloudSyncTitle: "تتم مزامنة هذا المجلد مع السحابة";
1594
+ readonly cloudSyncWarning: "يخزّن Adminium بياناته في ملفات SQLite. يقوم {provider} بمزامنة الملفات في «{folder}» عن طريق نسخها في الخلفية، ما قد يُتلف قاعدة بيانات مفتوحة — ويفقد البيانات دون أي تحذير. اختر مجلدًا خارج {provider}.";
1595
+ readonly chooseAnother: "اختيار مجلد آخر";
1596
+ readonly useAnyway: "استخدامه على أي حال — أقبل المخاطرة";
1597
+ readonly unusableTitle: "لا يستطيع Adminium استخدام هذا المجلد";
1598
+ readonly failed: "تعذّر على Adminium استخدام هذا المجلد.";
1599
+ };
1600
+ readonly source: {
1601
+ readonly heading: "ممّ ينبغي أن يبني Adminium؟";
1602
+ readonly description: "يقرأ Adminium مخطط قاعدة البيانات ويُنشئ منه تطبيق إدارة. يمكنك إضافة قواعد بيانات أخرى لاحقًا.";
1603
+ readonly groupLabel: "مصدر قاعدة البيانات";
1604
+ readonly local: {
1605
+ readonly title: "إنشاء قاعدة بيانات محلية جديدة";
1606
+ readonly description: "ابدأ من الصفر، أو من ملف مخطط لديك بالفعل. تُنشأ قاعدة البيانات داخل مجلد بياناتك.";
1607
+ readonly name: "اسم قاعدة البيانات";
1608
+ readonly namePlaceholder: "العمليات";
1609
+ readonly nameUnusable: "استخدم حرفًا أو رقمًا واحدًا على الأقل — يُبنى اسم الملف من هذا.";
1610
+ readonly fileHelper: "يُنشئ {file}";
1611
+ readonly schemaLabel: "البدء من";
1612
+ readonly blank: "فارغة";
1613
+ readonly fromFile: "ملف مخطط";
1614
+ readonly schemaFile: "ملف المخطط";
1615
+ readonly schemaFileHelper: ".sql أو pg_dump أو Prisma أو Drizzle أو TypeORM أو Sequelize أو schema.rb أو Django أو JSON الخاص بـ Adminium. يترجمه Adminium إلى SQLite.";
1616
+ readonly placeholder: "إنشاء مدخلات نائبة تلقائيًا";
1617
+ readonly placeholderHelper: "لقد استوردت مخططًا بلا صفوف. املأ كل جدول ببيانات نموذجية واقعية لتظهر لوحاتك ورسومك البيانية على الفور.";
1618
+ };
1619
+ readonly openSqlite: {
1620
+ readonly title: "فتح ملف SQLite موجود";
1621
+ readonly description: "وجّه Adminium إلى ملف ‎.sqlite على هذا الكمبيوتر. يُفتح في مكانه — ولا يُنسخ أو يُنقل أي شيء.";
1622
+ readonly browse: "اختر ملف ‎.sqlite…";
1623
+ readonly change: "اختر ملفًا آخر…";
1624
+ readonly networkTitle: "هذا الملف على مشاركة شبكية";
1625
+ readonly networkBody: "آلية القفل في SQLite غير موثوقة عبر مشاركات الملفات الشبكية، وانقطاع الاتصال أثناء الكتابة قد يُتلف قاعدة البيانات. الأكثر أمانًا هو نسخة على قرص هذا الكمبيوتر نفسه.";
1626
+ };
1627
+ readonly remote: {
1628
+ readonly title: "الاتصال بقاعدة بيانات على خادم";
1629
+ readonly description: "PostgreSQL أو MySQL. يتطلب قاعدة بيانات يمكن الوصول إليها عبر الشبكة؛ ومع ذلك تبقى جداول Adminium الخاصة على هذا الكمبيوتر.";
1630
+ readonly networkNote: "يتطلب قاعدة بيانات يمكن الوصول إليها عبر الشبكة";
1631
+ readonly metaNote: "جداول Adminium الخاصة — صفحاتك وإعداداتك وتسجيل دخولك — تبقى في مجلد البيانات على هذا الكمبيوتر في كل الأحوال.";
1632
+ readonly engine: "المحرّك";
1633
+ readonly name: "اسم الاتصال";
1634
+ readonly namePlaceholder: "الإنتاج";
1635
+ readonly dsn: "سلسلة الاتصال";
1636
+ readonly dsnHelper: "يختبرها Adminium عند الاتصال. استخدم دورًا للقراءة فقط إذا كنت تريد لوحات المعلومات فحسب.";
1637
+ };
1638
+ readonly demo: {
1639
+ readonly title: "استكشاف قاعدة البيانات التجريبية";
1640
+ readonly description: "قاعدة بيانات جاهزة لعمليات فريق، لترى ما الذي يبنيه Adminium قبل توجيهه إلى بياناتك الخاصة. احذفها متى شئت.";
1641
+ readonly unavailable: "لا تتضمن هذه النسخة البيانات التجريبية، لذا لا يوجد ما يُحمَّل. اختر أحد الخيارات أعلاه.";
1642
+ };
1643
+ };
1644
+ readonly account: {
1645
+ readonly heading: "أنشئ حسابك";
1646
+ readonly description: "هذا هو حساب المسؤول لهذه النسخة من Adminium. تحمي كلمة المرور نسخك الاحتياطية وكل من تشاركهم على شبكتك — ولن يُطلب منك إدخالها عند كل تشغيل.";
1647
+ readonly name: "اسمك";
1648
+ readonly email: "البريد الإلكتروني";
1649
+ readonly password: "كلمة المرور";
1650
+ readonly passwordHelper: "‏{min} أحرف على الأقل.";
1651
+ readonly confirm: "تأكيد كلمة المرور";
1652
+ readonly strength: "قوة كلمة المرور";
1653
+ readonly strengthLevels: {
1654
+ readonly weak: "ضعيفة";
1655
+ readonly fair: "مقبولة";
1656
+ readonly good: "جيدة";
1657
+ readonly strong: "قوية";
1658
+ };
1659
+ readonly singleUser: "تخطّي تسجيل الدخول على هذا الكمبيوتر";
1660
+ readonly singleUserHelper: "يسجّل Adminium دخولك تلقائيًا عند فتحه هنا. أوقف هذا إذا كان أشخاص آخرون يستخدمون هذا الجهاز. يمكنك تغييره لاحقًا من الإعدادات ← سطح المكتب.";
1661
+ readonly locale: "اللغة";
1662
+ readonly theme: "المظهر";
1663
+ readonly alreadyExists: "هذه النسخة من Adminium لديها حساب بالفعل. سجّل الدخول به بدلًا من ذلك.";
1664
+ readonly failed: "تعذّر على Adminium إنشاء هذا الحساب.";
1665
+ };
1666
+ readonly generate: {
1667
+ readonly creating: "جارٍ إعداد قاعدة بياناتك…";
1668
+ readonly introspecting: "جارٍ قراءة مخططك — الجداول والأعمدة والعلاقات…";
1669
+ readonly working: "جارٍ العمل…";
1670
+ readonly offlineNote: "كل هذا يحدث على هذا الكمبيوتر.";
1671
+ readonly failedTitle: "تعذّر على Adminium إعداد قاعدة البيانات هذه";
1672
+ readonly failedBody: "حدث خطأ ما. حاول مرة أخرى.";
1673
+ readonly retry: "إعادة المحاولة";
1674
+ };
1675
+ };
1676
+ };
1677
+ readonly capabilities: {
1678
+ readonly heading: "أذونات التطبيقات";
1679
+ readonly description: "يمكن للتطبيقات التي تثبّتها أن تطلب استخدام أجهزة هذا الكمبيوتر. أنت توافق على كل تطبيق، ويمكنك إلغاء الوصول في أي وقت.";
1680
+ readonly grantedTo: "مسموح لـ {app}";
1681
+ readonly status: {
1682
+ readonly available: "متاح";
1683
+ readonly stub: "غير متاح بعد";
1684
+ readonly unavailable: "غير متاح";
1685
+ };
1686
+ readonly allow: {
1687
+ readonly action: "السماح…";
1688
+ };
1689
+ readonly revoke: {
1690
+ readonly action: "إلغاء";
1691
+ readonly saved: "تم إلغاء الوصول";
1692
+ readonly failed: "تعذّر إلغاء الوصول. حاول مرة أخرى.";
1693
+ };
1694
+ readonly grant: {
1695
+ readonly saved: "تم السماح بالوصول";
1696
+ readonly failed: "تعذّر السماح بالوصول. حاول مرة أخرى.";
1697
+ };
1698
+ readonly catalog: {
1699
+ readonly printerEscpos: {
1700
+ readonly name: "طابعة الإيصالات (ESC/POS)";
1701
+ readonly scope: "الطباعة على طابعات الإيصالات وفتح درج النقود المتصل";
1702
+ };
1703
+ };
1704
+ readonly consent: {
1705
+ readonly title: "السماح لـ {app}؟";
1706
+ readonly subtitle: "يطلب {app} استخدام أجهزة هذا الكمبيوتر.";
1707
+ readonly willAllow: "سيسمح هذا لـ {app} بما يلي:";
1708
+ readonly revokeNote: "يمكنك إلغاء ذلك في أي وقت من الإعدادات ← سطح المكتب. اسمح فقط للتطبيقات التي تثق بها.";
1709
+ readonly deny: "ليس الآن";
1710
+ readonly approve: "السماح";
1711
+ };
1712
+ };
1713
+ readonly emailTemplates: {
1714
+ readonly title: "قوالب البريد الإلكتروني";
1715
+ readonly subtitle: "رسائل المعاملات ودورة الحياة التي ترسلها مساحة العمل.";
1716
+ readonly search: "البحث في القوالب…";
1717
+ readonly loadFailed: "تعذّر تحميل القوالب";
1718
+ readonly empty: "لا توجد قوالب بريد إلكتروني بعد";
1719
+ readonly emptyBody: "تظهر القوالب هنا بمجرد أن يُنشئها الخادم أو تُنشئها بنفسك.";
1720
+ readonly noMatches: "لا توجد قوالب مطابقة";
1721
+ readonly noMatchesBody: "جرّب بحثًا مختلفًا.";
1722
+ readonly live: "مفعّل";
1723
+ readonly disabled: "معطّل";
1724
+ readonly name: "اسم القالب";
1725
+ readonly subject: "الموضوع";
1726
+ readonly enabled: "مفعّل";
1727
+ };
1728
+ readonly board: {
1729
+ readonly addCard: "إضافة بطاقة";
1730
+ readonly compose: {
1731
+ readonly placeholder: "عنوان البطاقة…";
1732
+ readonly add: "إضافة";
1733
+ readonly cancel: "إلغاء";
1734
+ };
1735
+ readonly empty: {
1736
+ readonly title: "لا توجد أعمدة للوحة";
1737
+ readonly body: "أضف حقل حالة لتجميع البطاقات في أعمدة.";
1738
+ };
1739
+ };
1740
+ readonly calendar: {
1741
+ readonly dateRange: "نطاق التاريخ";
1742
+ readonly compose: {
1743
+ readonly placeholder: "عنوان الحدث…";
1744
+ readonly add: "إضافة";
1745
+ readonly cancel: "إلغاء";
1746
+ readonly open: "إضافة حدث";
1747
+ };
1748
+ readonly agenda: {
1749
+ readonly empty: "لا يوجد شيء مجدول";
1750
+ };
1751
+ };
1752
+ readonly scheduler: {
1753
+ readonly prevWeek: "الأسبوع السابق";
1754
+ readonly nextWeek: "الأسبوع التالي";
1755
+ readonly week: "أسبوع";
1756
+ readonly month: "شهر";
1757
+ readonly resource: "المورد";
1758
+ readonly coverage: "التغطية";
1759
+ readonly addShift: "إضافة وردية";
1760
+ readonly shiftCount: "{n} وردية";
1761
+ };
1762
+ readonly planning: {
1763
+ readonly drawer: {
1764
+ readonly close: "إغلاق";
1765
+ readonly loading: "جارٍ تحميل السجل";
1766
+ readonly error: "تعذّر تحميل هذا السجل.";
1767
+ };
1768
+ };
1769
+ readonly files: {
1770
+ readonly uploadsUnavailable: "رفع الملفات غير متاح في هذه الصفحة بعد.";
1771
+ };
1772
+ readonly chat: {
1773
+ readonly messageSent: "تم إرسال الرسالة";
1774
+ readonly sendFailed: "تعذّر إرسال الرسالة.";
1775
+ };
1776
+ readonly templates: {
1777
+ readonly crud: {
1778
+ readonly title: "السجلات";
1779
+ };
1780
+ readonly dashboard: {
1781
+ readonly title: "لوحة المعلومات";
1782
+ };
1783
+ readonly board: {
1784
+ readonly title: "اللوحة";
1785
+ };
1786
+ readonly calendar: {
1787
+ readonly title: "التقويم";
1788
+ };
1789
+ readonly scheduler: {
1790
+ readonly title: "جدول المناوبات";
1791
+ };
1792
+ readonly logViewer: {
1793
+ readonly title: "سجلات الأحداث";
1794
+ };
1795
+ readonly files: {
1796
+ readonly title: "الملفات";
1797
+ };
1798
+ readonly chat: {
1799
+ readonly title: "الدردشة";
1800
+ };
1801
+ readonly builder: {
1802
+ readonly title: "المنشئ";
1803
+ };
1804
+ readonly wizard: {
1805
+ readonly title: "المعالج";
1806
+ };
1807
+ readonly settings: {
1808
+ readonly title: "الإعدادات";
1809
+ };
1810
+ readonly directory: {
1811
+ readonly title: "الدليل";
1812
+ readonly searchPlaceholder: "البحث عن الأشخاص…";
1813
+ readonly allFilter: "الكل";
1814
+ readonly clearFilters: "مسح عوامل التصفية";
1815
+ readonly detailTitle: "الشخص";
1816
+ readonly emptyTitle: "لا يوجد أشخاص بعد";
1817
+ readonly emptyBody: "يظهر الأشخاص هنا كلما وصلت صفوف إلى الجدول.";
1818
+ readonly noMatchesTitle: "لا يوجد أشخاص مطابقون";
1819
+ readonly noMatchesBody: "جرّب بحثًا مختلفًا أو أزل أحد عوامل التصفية.";
1820
+ readonly errorTitle: "تعذّر تحميل هذا الدليل";
1821
+ readonly loading: "جارٍ تحميل الأشخاص";
1822
+ readonly memberCount: "{count} شخص";
1823
+ };
1824
+ readonly masterDetail: {
1825
+ readonly title: "قائمة وتفاصيل";
1826
+ readonly allFilter: "الكل";
1827
+ readonly clearFilters: "مسح عوامل التصفية";
1828
+ readonly emptyTitle: "لا يوجد شيء هنا بعد";
1829
+ readonly emptyBody: "تظهر السجلات هنا كلما وصلت صفوف إلى الجدول.";
1830
+ readonly noMatchesTitle: "لا توجد سجلات مطابقة";
1831
+ readonly noMatchesBody: "جرّب إزالة أحد عوامل التصفية.";
1832
+ readonly errorTitle: "تعذّر تحميل هذه القائمة";
1833
+ readonly loading: "جارٍ تحميل السجلات";
1834
+ readonly selectPrompt: "اختر سجلًا";
1835
+ };
1836
+ readonly queueInbox: {
1837
+ readonly title: "قائمة الانتظار";
1838
+ readonly approve: "موافقة";
1839
+ readonly reject: "رفض";
1840
+ readonly allSegment: "الكل";
1841
+ readonly approvedToast: "تمت الموافقة على {count}.";
1842
+ readonly rejectedToast: "تم رفض {count}.";
1843
+ readonly undoneToast: "تم التراجع عن القرار.";
1844
+ readonly failedToast: "فشل تنفيذ القرار.";
1845
+ readonly bulkFailed: "تعذّر تحديث {failed} من {total} من الصفوف المحددة.";
1846
+ readonly undoFailedToast: "تعذّر التراجع عن هذا القرار.";
1847
+ readonly rejectTitle: "رفض الطلبات";
1848
+ readonly rejectCount: "المحدد · {count}";
1849
+ readonly rejectNote: "سيتم إشعار مقدم الطلب مع ملاحظتك.";
1850
+ readonly rejectPlaceholder: "أضف ملاحظة لمقدم الطلب…";
1851
+ readonly rejectConfirm: "رفض";
1852
+ readonly emptyTitle: "لا يوجد شيء في قائمة الانتظار";
1853
+ readonly emptyBody: "تظهر الطلبات الجديدة هنا فور وصولها.";
1854
+ readonly caughtUpTitle: "لقد أنجزت كل شيء";
1855
+ readonly caughtUpBody: "لا توجد طلبات في علامة التبويب هذه حاليًا.";
1856
+ readonly errorTitle: "تعذّر تحميل قائمة الانتظار هذه";
1857
+ readonly loading: "جارٍ تحميل قائمة الانتظار";
1858
+ readonly selectPrompt: "اختر طلبًا";
1859
+ readonly daysUnit: "{count} يوم";
1860
+ };
1861
+ };
1862
+ readonly dataio: {
1863
+ readonly back: "رجوع";
1864
+ readonly import: {
1865
+ readonly title: "استيراد البيانات";
1866
+ readonly stepUpload: "رفع";
1867
+ readonly stepMap: "مطابقة الأعمدة";
1868
+ readonly stepValidate: "التحقق";
1869
+ readonly stepRun: "الاستيراد والمراجعة";
1870
+ readonly targetLabel: "الجدول الهدف";
1871
+ readonly targetPlaceholder: "اختر صفحة جدول…";
1872
+ readonly notATable: "هذه الصفحة ليست جدولًا — اختر صفحة جدول للاستيراد إليها.";
1873
+ readonly dropTitle: "أسقط ملف CSV للاستيراد";
1874
+ readonly dropHint: "ملف CSV حتى 32 ميغابايت — يجب أن يكون الصف الأول هو صف العناوين";
1875
+ readonly skipTarget: "عدم الاستيراد";
1876
+ readonly mapHint: "{count} صفوف بيانات في {file} — اختر هدفًا لكل عمود.";
1877
+ readonly validating: "جارٍ التحقق…";
1878
+ readonly toValidate: "التحقق";
1879
+ readonly validateFailed: "فشل التحقق.";
1880
+ readonly validationSummary: "{valid} من {total} صفًا جاهزة للاستيراد — سيتم تخطي {invalid}.";
1881
+ readonly allValid: "اجتازت جميع الصفوف التحقق";
1882
+ readonly run: "تشغيل الاستيراد";
1883
+ readonly runSkipping: "استيراد {valid} صفًا (تخطي {invalid})";
1884
+ readonly progressLabel: "تقدم الاستيراد";
1885
+ readonly running: "جارٍ الاستيراد…";
1886
+ readonly kpiTotal: "صفوف الملف";
1887
+ readonly kpiCreated: "تم إنشاؤها";
1888
+ readonly kpiUpdated: "تم تحديثها";
1889
+ readonly kpiSkipped: "تم تخطيها";
1890
+ readonly inconsistent: "أرقام الاستيراد غير متسقة — يجب أن يساوي الإجمالي مجموع ما تم إنشاؤه وتحديثه وتخطيه.";
1891
+ readonly downloadErrors: "تنزيل تقرير الصفوف المتخطاة (CSV)";
1892
+ readonly runFailed: "فشل الاستيراد.";
1893
+ };
1894
+ readonly exports: {
1895
+ readonly title: "عمليات تصدير البيانات";
1896
+ readonly tableLabel: "الجدول";
1897
+ readonly tablePlaceholder: "اختر جدولًا…";
1898
+ readonly notATable: "هذه الصفحة ليست جدولًا — اختر صفحة جدول لتصديرها.";
1899
+ readonly formatLabel: "التنسيق";
1900
+ readonly create: "تصدير";
1901
+ readonly createFailed: "تعذّر طلب التصدير.";
1902
+ readonly retention: "تُحفظ عمليات التصدير لمدة 30 يومًا ثم تنتهي صلاحيتها.";
1903
+ readonly statusProcessing: "جارٍ المعالجة…";
1904
+ readonly statusReady: "جاهز — {rows} صفًا · انقر للتنزيل";
1905
+ readonly statusFailed: "فشل — {error}";
1906
+ readonly statusCancelled: "أُلغي";
1907
+ readonly statusExpired: "منتهي الصلاحية";
1908
+ readonly emptyTitle: "لا توجد عمليات تصدير بعد";
1909
+ readonly emptyBody: "اطلب واحدة أعلاه — تظهر الملفات الناتجة هنا مع حالتها.";
1910
+ };
1911
+ };
1912
+ readonly reports: {
1913
+ readonly title: "التقارير المجدولة";
1914
+ readonly subtitle: "لقطات بيانات دورية لصفحة ما تصلك كإشعارات داخل التطبيق.";
1915
+ readonly new: "تقرير جديد";
1916
+ readonly loadFailed: "تعذّر تحميل التقارير المجدولة.";
1917
+ readonly saveFailed: "تعذّر حفظ هذا التقرير.";
1918
+ readonly nextRun: "التشغيل التالي";
1919
+ readonly emptyTitle: "لا توجد تقارير مجدولة بعد";
1920
+ readonly emptyBody: "أنشئ تقريرًا للحصول على لقطة بيانات دورية لأي صفحة جدول.";
1921
+ readonly createTitle: "تقرير مجدول جديد";
1922
+ readonly editTitle: "تعديل التقرير المجدول";
1923
+ readonly nameLabel: "الاسم";
1924
+ readonly namePlaceholder: "مثل: الإيرادات الأسبوعية";
1925
+ readonly pageLabel: "الصفحة";
1926
+ readonly pagePlaceholder: "اختر صفحة…";
1927
+ readonly frequencyLabel: "التكرار";
1928
+ readonly frequency: {
1929
+ readonly daily: "يوميًا";
1930
+ readonly weekly: "أسبوعيًا";
1931
+ readonly monthly: "شهريًا";
1932
+ };
1933
+ readonly dayOfWeekLabel: "اليوم";
1934
+ readonly dayOfMonthLabel: "اليوم من الشهر";
1935
+ readonly timeLabel: "الوقت";
1936
+ readonly timezoneLabel: "المنطقة الزمنية";
1937
+ readonly formatLabel: "التسليم";
1938
+ readonly formatHint: "لقطة بيانات (سيتوفر إخراج PDF/PNG في إصدار لاحق) — ينتج عن كل تشغيل لقطة CSV وإشعار داخل التطبيق.";
1939
+ readonly recipientsLabel: "المستلمون";
1940
+ readonly recipientsHint: "تُحفظ مع التقرير. سيتوفر التسليم عبر البريد الإلكتروني في إصدار لاحق — حتى ذلك الحين ستصلك إشعارات داخل التطبيق.";
1941
+ readonly deliveryBadge: "لقطة CSV";
1942
+ readonly delete: "حذف";
1943
+ readonly create: "إنشاء";
1944
+ readonly cadence: {
1945
+ readonly daily: "يوميًا في {time} ({zone})";
1946
+ readonly weekly: "أسبوعيًا · {day} في {time} ({zone})";
1947
+ readonly monthly: "شهريًا · اليوم {day} في {time} ({zone})";
1948
+ };
1949
+ };
1950
+ readonly notifications: {
1951
+ readonly channel: {
1952
+ readonly inApp: "داخل التطبيق";
1953
+ readonly email: "البريد الإلكتروني";
1954
+ readonly push: "إشعارات فورية";
1955
+ };
1956
+ readonly event: {
1957
+ readonly reportReady: "التقرير المجدول جاهز";
1958
+ readonly reportFailed: "فشل التقرير المجدول";
1959
+ readonly backupCompleted: "اكتمل النسخ الاحتياطي";
1960
+ };
1961
+ };
1962
+ };
1963
+ export default _default;
1964
+ //# sourceMappingURL=common.d.ts.map