@adminiumjs/i18n 0.2.2 → 0.2.3

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 (227) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +319 -224
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/create-i18n.d.ts +16 -6
  6. package/dist/create-i18n.d.ts.map +1 -1
  7. package/dist/create-i18n.js +23 -9
  8. package/dist/create-i18n.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +19 -8
  12. package/dist/index.js.map +1 -1
  13. package/dist/keys.d.ts +6 -4
  14. package/dist/keys.d.ts.map +1 -1
  15. package/dist/keys.js +6 -4
  16. package/dist/keys.js.map +1 -1
  17. package/dist/overrides.d.ts +1 -1
  18. package/dist/overrides.d.ts.map +1 -1
  19. package/dist/resources/ar-eg/common.d.ts +31 -1071
  20. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  21. package/dist/resources/ar-eg/common.js +31 -1071
  22. package/dist/resources/ar-eg/common.js.map +1 -1
  23. package/dist/resources/ar-eg/errors.d.ts +3 -2
  24. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  25. package/dist/resources/ar-eg/errors.js +3 -2
  26. package/dist/resources/ar-eg/errors.js.map +1 -1
  27. package/dist/resources/ar-eg/generated.d.ts +3 -2
  28. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  29. package/dist/resources/ar-eg/generated.js +3 -2
  30. package/dist/resources/ar-eg/generated.js.map +1 -1
  31. package/dist/resources/ar-eg/studio.d.ts +1282 -2
  32. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  33. package/dist/resources/ar-eg/studio.js +1282 -2
  34. package/dist/resources/ar-eg/studio.js.map +1 -1
  35. package/dist/resources/ar-eg/ui.d.ts +51 -2
  36. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  37. package/dist/resources/ar-eg/ui.js +55 -6
  38. package/dist/resources/ar-eg/ui.js.map +1 -1
  39. package/dist/resources/cs-cz/common.d.ts +31 -1071
  40. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  41. package/dist/resources/cs-cz/common.js +31 -1071
  42. package/dist/resources/cs-cz/common.js.map +1 -1
  43. package/dist/resources/cs-cz/errors.d.ts +3 -2
  44. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  45. package/dist/resources/cs-cz/errors.js +3 -2
  46. package/dist/resources/cs-cz/errors.js.map +1 -1
  47. package/dist/resources/cs-cz/generated.d.ts +3 -2
  48. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  49. package/dist/resources/cs-cz/generated.js +3 -2
  50. package/dist/resources/cs-cz/generated.js.map +1 -1
  51. package/dist/resources/cs-cz/studio.d.ts +1282 -2
  52. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  53. package/dist/resources/cs-cz/studio.js +1282 -2
  54. package/dist/resources/cs-cz/studio.js.map +1 -1
  55. package/dist/resources/cs-cz/ui.d.ts +51 -2
  56. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  57. package/dist/resources/cs-cz/ui.js +55 -6
  58. package/dist/resources/cs-cz/ui.js.map +1 -1
  59. package/dist/resources/da-dk/common.d.ts +31 -1071
  60. package/dist/resources/da-dk/common.d.ts.map +1 -1
  61. package/dist/resources/da-dk/common.js +31 -1071
  62. package/dist/resources/da-dk/common.js.map +1 -1
  63. package/dist/resources/da-dk/errors.d.ts +3 -2
  64. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  65. package/dist/resources/da-dk/errors.js +3 -2
  66. package/dist/resources/da-dk/errors.js.map +1 -1
  67. package/dist/resources/da-dk/generated.d.ts +3 -2
  68. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  69. package/dist/resources/da-dk/generated.js +3 -2
  70. package/dist/resources/da-dk/generated.js.map +1 -1
  71. package/dist/resources/da-dk/studio.d.ts +1282 -2
  72. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  73. package/dist/resources/da-dk/studio.js +1282 -2
  74. package/dist/resources/da-dk/studio.js.map +1 -1
  75. package/dist/resources/da-dk/ui.d.ts +51 -2
  76. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  77. package/dist/resources/da-dk/ui.js +55 -6
  78. package/dist/resources/da-dk/ui.js.map +1 -1
  79. package/dist/resources/de-de/common.d.ts +31 -1071
  80. package/dist/resources/de-de/common.d.ts.map +1 -1
  81. package/dist/resources/de-de/common.js +31 -1071
  82. package/dist/resources/de-de/common.js.map +1 -1
  83. package/dist/resources/de-de/errors.d.ts +3 -2
  84. package/dist/resources/de-de/errors.d.ts.map +1 -1
  85. package/dist/resources/de-de/errors.js +3 -2
  86. package/dist/resources/de-de/errors.js.map +1 -1
  87. package/dist/resources/de-de/generated.d.ts +3 -2
  88. package/dist/resources/de-de/generated.d.ts.map +1 -1
  89. package/dist/resources/de-de/generated.js +3 -2
  90. package/dist/resources/de-de/generated.js.map +1 -1
  91. package/dist/resources/de-de/studio.d.ts +1282 -2
  92. package/dist/resources/de-de/studio.d.ts.map +1 -1
  93. package/dist/resources/de-de/studio.js +1282 -2
  94. package/dist/resources/de-de/studio.js.map +1 -1
  95. package/dist/resources/de-de/ui.d.ts +51 -2
  96. package/dist/resources/de-de/ui.d.ts.map +1 -1
  97. package/dist/resources/de-de/ui.js +55 -6
  98. package/dist/resources/de-de/ui.js.map +1 -1
  99. package/dist/resources/eager.d.ts +3 -0
  100. package/dist/resources/eager.d.ts.map +1 -0
  101. package/dist/resources/eager.js +25 -0
  102. package/dist/resources/eager.js.map +1 -0
  103. package/dist/resources/en-us/common.d.ts +31 -1071
  104. package/dist/resources/en-us/common.d.ts.map +1 -1
  105. package/dist/resources/en-us/common.js +31 -1071
  106. package/dist/resources/en-us/common.js.map +1 -1
  107. package/dist/resources/en-us/errors.d.ts +3 -2
  108. package/dist/resources/en-us/errors.d.ts.map +1 -1
  109. package/dist/resources/en-us/errors.js +3 -2
  110. package/dist/resources/en-us/errors.js.map +1 -1
  111. package/dist/resources/en-us/generated.d.ts +3 -2
  112. package/dist/resources/en-us/generated.d.ts.map +1 -1
  113. package/dist/resources/en-us/generated.js +3 -2
  114. package/dist/resources/en-us/generated.js.map +1 -1
  115. package/dist/resources/en-us/studio.d.ts +1282 -2
  116. package/dist/resources/en-us/studio.d.ts.map +1 -1
  117. package/dist/resources/en-us/studio.js +1282 -2
  118. package/dist/resources/en-us/studio.js.map +1 -1
  119. package/dist/resources/en-us/ui.d.ts +51 -2
  120. package/dist/resources/en-us/ui.d.ts.map +1 -1
  121. package/dist/resources/en-us/ui.js +55 -6
  122. package/dist/resources/en-us/ui.js.map +1 -1
  123. package/dist/resources/fr-fr/common.d.ts +31 -1071
  124. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  125. package/dist/resources/fr-fr/common.js +31 -1071
  126. package/dist/resources/fr-fr/common.js.map +1 -1
  127. package/dist/resources/fr-fr/errors.d.ts +3 -2
  128. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  129. package/dist/resources/fr-fr/errors.js +3 -2
  130. package/dist/resources/fr-fr/errors.js.map +1 -1
  131. package/dist/resources/fr-fr/generated.d.ts +3 -2
  132. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  133. package/dist/resources/fr-fr/generated.js +3 -2
  134. package/dist/resources/fr-fr/generated.js.map +1 -1
  135. package/dist/resources/fr-fr/studio.d.ts +1282 -2
  136. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  137. package/dist/resources/fr-fr/studio.js +1282 -2
  138. package/dist/resources/fr-fr/studio.js.map +1 -1
  139. package/dist/resources/fr-fr/ui.d.ts +51 -2
  140. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  141. package/dist/resources/fr-fr/ui.js +55 -6
  142. package/dist/resources/fr-fr/ui.js.map +1 -1
  143. package/dist/resources/index.d.ts +3 -6
  144. package/dist/resources/index.d.ts.map +1 -1
  145. package/dist/resources/index.js +15 -14
  146. package/dist/resources/index.js.map +1 -1
  147. package/dist/resources/lazy.d.ts +19 -9
  148. package/dist/resources/lazy.d.ts.map +1 -1
  149. package/dist/resources/lazy.js +4 -2
  150. package/dist/resources/lazy.js.map +1 -1
  151. package/dist/resources/namespaces.d.ts +43 -0
  152. package/dist/resources/namespaces.d.ts.map +1 -0
  153. package/dist/resources/namespaces.js +37 -0
  154. package/dist/resources/namespaces.js.map +1 -0
  155. package/dist/resources/zh-cn/common.d.ts +31 -1071
  156. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  157. package/dist/resources/zh-cn/common.js +31 -1071
  158. package/dist/resources/zh-cn/common.js.map +1 -1
  159. package/dist/resources/zh-cn/errors.d.ts +3 -2
  160. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  161. package/dist/resources/zh-cn/errors.js +3 -2
  162. package/dist/resources/zh-cn/errors.js.map +1 -1
  163. package/dist/resources/zh-cn/generated.d.ts +3 -2
  164. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  165. package/dist/resources/zh-cn/generated.js +3 -2
  166. package/dist/resources/zh-cn/generated.js.map +1 -1
  167. package/dist/resources/zh-cn/studio.d.ts +1282 -2
  168. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  169. package/dist/resources/zh-cn/studio.js +1282 -2
  170. package/dist/resources/zh-cn/studio.js.map +1 -1
  171. package/dist/resources/zh-cn/ui.d.ts +51 -2
  172. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  173. package/dist/resources/zh-cn/ui.js +55 -6
  174. package/dist/resources/zh-cn/ui.js.map +1 -1
  175. package/dist/resources/zh-tw/common.d.ts +31 -1071
  176. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  177. package/dist/resources/zh-tw/common.js +31 -1071
  178. package/dist/resources/zh-tw/common.js.map +1 -1
  179. package/dist/resources/zh-tw/errors.d.ts +3 -2
  180. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  181. package/dist/resources/zh-tw/errors.js +3 -2
  182. package/dist/resources/zh-tw/errors.js.map +1 -1
  183. package/dist/resources/zh-tw/generated.d.ts +3 -2
  184. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  185. package/dist/resources/zh-tw/generated.js +3 -2
  186. package/dist/resources/zh-tw/generated.js.map +1 -1
  187. package/dist/resources/zh-tw/studio.d.ts +1282 -2
  188. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  189. package/dist/resources/zh-tw/studio.js +1282 -2
  190. package/dist/resources/zh-tw/studio.js.map +1 -1
  191. package/dist/resources/zh-tw/ui.d.ts +51 -2
  192. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  193. package/dist/resources/zh-tw/ui.js +55 -6
  194. package/dist/resources/zh-tw/ui.js.map +1 -1
  195. package/dist/review-status.js +7 -7
  196. package/locales/ar-EG/.meta.json +3187 -2267
  197. package/locales/ar-EG/common.json +28 -1069
  198. package/locales/ar-EG/studio.json +1279 -0
  199. package/locales/ar-EG/ui.json +52 -4
  200. package/locales/cs-CZ/.meta.json +3203 -2283
  201. package/locales/cs-CZ/common.json +28 -1069
  202. package/locales/cs-CZ/studio.json +1279 -0
  203. package/locales/cs-CZ/ui.json +52 -4
  204. package/locales/da-DK/.meta.json +3208 -2288
  205. package/locales/da-DK/common.json +28 -1069
  206. package/locales/da-DK/studio.json +1279 -0
  207. package/locales/da-DK/ui.json +52 -4
  208. package/locales/de-DE/.meta.json +3201 -2281
  209. package/locales/de-DE/common.json +28 -1069
  210. package/locales/de-DE/studio.json +1279 -0
  211. package/locales/de-DE/ui.json +52 -4
  212. package/locales/en-US/common.json +28 -1069
  213. package/locales/en-US/studio.json +1279 -0
  214. package/locales/en-US/ui.json +52 -4
  215. package/locales/fr-FR/.meta.json +3205 -2285
  216. package/locales/fr-FR/common.json +28 -1069
  217. package/locales/fr-FR/studio.json +1279 -0
  218. package/locales/fr-FR/ui.json +52 -4
  219. package/locales/zh-CN/.meta.json +3185 -2265
  220. package/locales/zh-CN/common.json +28 -1069
  221. package/locales/zh-CN/studio.json +1279 -0
  222. package/locales/zh-CN/ui.json +52 -4
  223. package/locales/zh-TW/.meta.json +3188 -2268
  224. package/locales/zh-TW/common.json +28 -1069
  225. package/locales/zh-TW/studio.json +1279 -0
  226. package/locales/zh-TW/ui.json +52 -4
  227. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * GENERATED MIRROR of ../../../locales/ar-EG/studio.json — do not edit by hand.
3
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).
4
+ * this TS mirror exists so the runtime can bundle a namespace (en-US's eager
5
+ * ones) or chunk-split it (every other locale, and en-US's deferred `studio`)
6
+ * without JSON import attributes (browser + NodeNext safe).
6
7
  * Parity is enforced by src/resources/parity.test.ts. Regenerate with
7
8
  * scripts/gen-resources.mjs.
8
9
  */
@@ -13,6 +14,1285 @@ declare const _default: {
13
14
  readonly workspaceSection: "مساحة العمل";
14
15
  readonly globalDefaultsNav: "الإعدادات الافتراضية العامة";
15
16
  };
17
+ readonly source: {
18
+ readonly engine: {
19
+ readonly label: "محرّك قاعدة البيانات";
20
+ readonly postgres: "PostgreSQL";
21
+ readonly mysql: "MySQL / MariaDB";
22
+ readonly sqlite: "SQLite";
23
+ };
24
+ readonly format: {
25
+ readonly label: "تنسيق المخطط";
26
+ readonly helper: "اترك الاكتشاف التلقائي مفعّلًا ما لم يخطئ في التعرّف.";
27
+ readonly auto: "اكتشاف تلقائي";
28
+ readonly sql: "SQL DDL / pg_dump";
29
+ readonly prisma: "مخطط Prisma";
30
+ readonly drizzle: "Drizzle ORM";
31
+ readonly typeorm: "كيانات TypeORM";
32
+ readonly sequelize: "نماذج Sequelize";
33
+ readonly rails: "Rails schema.rb";
34
+ readonly django: "Django models.py";
35
+ readonly json: "Adminium JSON";
36
+ };
37
+ readonly sqlite: {
38
+ readonly file: "مسار ملف قاعدة البيانات";
39
+ readonly helper: "SQLite ملف وليس خادمًا — أدخل المسار المطلق على الجهاز الذي يشغّل Adminium.";
40
+ };
41
+ readonly file: {
42
+ readonly detectedAs: "تم اكتشاف: {format}";
43
+ readonly moreWarnings: "+{count} تحذيرات إضافية — تظهر القائمة الكاملة في خطوة التحليل.";
44
+ readonly dropTitle: "أسقط ملف المخطط هنا، أو تصفّح";
45
+ readonly dropHint: "SQL DDL / pg_dump وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON";
46
+ readonly pitch: "لا حاجة إلى اتصال بقاعدة البيانات — نحلّل ملف المخطط ونبني اللوحات نفسها.";
47
+ readonly parsing: "جارٍ قراءة ملف المخطط المرفوع…";
48
+ readonly tables: "جداول";
49
+ readonly columns: "أعمدة";
50
+ readonly warnings: "تحذيرات";
51
+ readonly errorTitle: "تعذّر تحليل الملف";
52
+ readonly parseFailed: "تعذّر تحليل هذا الملف. إذا أخطأ الاكتشاف التلقائي، فاختر التنسيق صراحةً وأعد المحاولة.";
53
+ readonly unsupported: "تنسيق غير معروف — المدعوم: SQL DDL وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON. اختر واحدًا صراحةً وأعد المحاولة.";
54
+ readonly requestFailed: "فشل الرفع — تحقّق من اتصالك وأعد المحاولة.";
55
+ };
56
+ readonly title: "اربط قاعدة بياناتك";
57
+ readonly subtitle: "وجّه Adminium إلى قاعدة بيانات وسننشئ لوحة إدارة من مخططها.";
58
+ readonly name: "اسم الاتصال";
59
+ readonly namePlaceholder: "Postgres للإنتاج";
60
+ readonly modeLabel: "وضع إدخال المصدر";
61
+ readonly mode: {
62
+ readonly dsn: "سلسلة الاتصال";
63
+ readonly fields: "حقول منفصلة";
64
+ readonly file: "ملف المخطط";
65
+ };
66
+ readonly dsn: {
67
+ readonly label: "سلسلة الاتصال";
68
+ readonly helper: "postgres://user:password@host:5432/database — يعمل أيضًا mysql:// وsqlite:.";
69
+ readonly incomplete: "أضف المضيف وقاعدة البيانات، مثل postgres://user@host:5432/db";
70
+ readonly invalidScheme: "مخطط غير معروف — المتوقع postgres:// أو mysql:// أو mariadb:// أو sqlite:";
71
+ readonly quickFill: "تعبئة سريعة:";
72
+ };
73
+ readonly fields: {
74
+ readonly host: "المضيف";
75
+ readonly port: "المنفذ";
76
+ readonly database: "قاعدة البيانات";
77
+ readonly user: "المستخدم";
78
+ readonly password: "كلمة المرور";
79
+ readonly ssl: "وضع SSL";
80
+ readonly preview: "معاينة سلسلة الاتصال:";
81
+ };
82
+ readonly readOnlyRole: {
83
+ readonly title: "استخدم دورًا للقراءة فقط";
84
+ readonly body: "لا يكتب Adminium أبدًا في قاعدة بياناتك — يستخدم الإعداد بيانات المخطط الوصفية فقط. نوصي بمستخدم مخصّص بصلاحيات SELECT فقط؛ ويمكنك تحديد مكان جداول Adminium الخاصة في خطوة تخزين البيانات الوصفية.";
85
+ };
86
+ };
87
+ readonly capability: {
88
+ readonly mysqlApproxRows: "أعداد الصفوف في MySQL تقديرات من محرّك التخزين (قد تنحرف حتى ±40%) — تُعرض مع ≈.";
89
+ readonly mysqlFkEnum: "البيانات الوصفية للمفاتيح الخارجية والتعدادات في MySQL أضعف: جداول MyISAM لا تعلن مفاتيح خارجية، والتعدادات أنواع enum(…) على مستوى العمود، وقيود CHECK تتطلب MySQL 8.0.16+ / MariaDB 10.2+.";
90
+ readonly sqliteCheckEnums: "لا يملك SQLite نوع تعداد أصليًا — تُركَّب التعدادات من قيود CHECK (col IN (…)).";
91
+ readonly sqliteNoComments: "لا يدعم SQLite تعليقات الأعمدة — استخدم محرّر إعادة تعيين المخطط لإضافة التسميات.";
92
+ readonly importNoRowCounts: "ملفات المخطط لا تحمل أعداد صفوف — تعرض قائمة الجداول — بدلًا من أرقام مختلَقة.";
93
+ readonly importNoLiveHealth: "لا يوجد اتصال مباشر بقاعدة بيانات — فحوصات الصحة واكتشاف انحراف المخطط غير متاحة لهذا المصدر.";
94
+ readonly rowsUnavailable: "ملفات المخطط بلا قاعدة بيانات مباشرة — تظل أعداد الصفوف مجهولة حتى توصيل واحدة.";
95
+ readonly rowsRunAnalyze: "لا يوجد تقدير بعد — شغّل ANALYZE على قاعدة البيانات للحصول على أعداد الصفوف.";
96
+ readonly rowsNoEstimate: "لم يبلّغ المحرّك عن أي تقدير لهذا الجدول.";
97
+ readonly rowsApproximate: "تقدير من محرّك التخزين — قد ينحرف حتى ±40% على InnoDB.";
98
+ };
99
+ readonly test: {
100
+ readonly log: {
101
+ readonly moreWarnings: "+{count} تحذيرات إضافية من المحلّل";
102
+ readonly connecting: "جارٍ إنشاء اتصال آمن…";
103
+ readonly connected: "متصل ({latency} م.ث) · استبطان للقراءة فقط";
104
+ readonly connectFailed: "فشل الاتصال.";
105
+ readonly readingSchema: "جارٍ قراءة المخطط: public";
106
+ readonly readingFile: "جارٍ قراءة ملف المخطط المرفوع…";
107
+ readonly parsingFile: "جارٍ تحليل {file}…";
108
+ readonly detected: "تم اكتشاف {tables} جدولًا · {columns} عمودًا";
109
+ readonly found: "تم العثور على {tables} جدولًا · {columns} عمودًا";
110
+ readonly mapping: "جارٍ ربط أنواع الأعمدة ← عناصر الإدخال";
111
+ readonly relations: "جارٍ اكتشاف العلاقات…";
112
+ readonly piiScan: "جارٍ البحث عن أعمدة البيانات الشخصية…";
113
+ readonly piiDone: "اكتمل فحص البيانات الشخصية — تم إخفاء {count} عمودًا افتراضيًا";
114
+ readonly piiDoneUnknown: "اكتمل فحص البيانات الشخصية";
115
+ readonly jobFailed: "فشل الاستبطان.";
116
+ readonly networkFailed: "فشل الطلب — تحقّق من اتصالك وأعد المحاولة.";
117
+ readonly ready: "جاهز";
118
+ };
119
+ readonly title: "جارٍ تحليل مخططك";
120
+ readonly subtitle: "جارٍ استبطان الجداول والأعمدة والعلاقات. يستغرق ذلك بضع ثوانٍ.";
121
+ readonly trust: "نقرأ مخططك وبياناتك فقط. لا يتم تعديل أي شيء.";
122
+ readonly errorTitle: "فشل الاتصال";
123
+ readonly retry: "إعادة المحاولة";
124
+ readonly logLabel: "سجل الاستبطان";
125
+ readonly hint: {
126
+ readonly auth: "فشلت المصادقة — تحقّق من اسم المستخدم وكلمة المرور في DSN.";
127
+ readonly hostUnreachable: "تعذّر الوصول إلى المضيف — تحقّق من اسم المضيف والمنفذ، ومن أن قاعدة البيانات تقبل الاتصالات من هذا الجهاز (أضف عناوين IP الخاصة بنا إلى قائمة السماح).";
128
+ readonly metaPlacement: "لا يمكن لهذا المصدر استضافة جداول Adminium الوصفية — تابع بقاعدة بيانات وصفية منفصلة.";
129
+ readonly permission: "اتصل الدور لكنه يفتقر إلى صلاحيات قراءة المخطط — امنح دور الاستبطان صلاحية USAGE على المخطط.";
130
+ readonly timeout: "لم تُجب قاعدة البيانات في الوقت المناسب — تحقّق من مسار الشبكة والحمل ثم أعد المحاولة.";
131
+ readonly tls: "فشل تفاوض TLS — جرّب sslmode=require، أو ارفع شهادة CA التي يتوقعها خادمك.";
132
+ readonly unknown: "فشل الاتصال — تحقّق من DSN وأعد المحاولة.";
133
+ };
134
+ };
135
+ readonly tables: {
136
+ readonly importNoCounts: "ملفات المخطط لا تحمل أعداد صفوف — يعرض العمود — حتى يتم توصيل قاعدة بيانات مباشرة.";
137
+ readonly title: "اختر جداولك";
138
+ readonly subtitle: "اختر ما تريد تضمينه. يمكنك تغيير ذلك في أي وقت.";
139
+ readonly search: "تصفية الجداول…";
140
+ readonly listLabel: "الجداول القابلة للتضمين";
141
+ readonly emptyFilter: "لا توجد جداول مطابقة لعامل التصفية.";
142
+ readonly pii: "PII";
143
+ readonly highVolume: "حجم كبير";
144
+ readonly highVolumeNote: "الجداول التي تتجاوز 100,000 صف تبدأ غير محددة — نادرًا ما تنتمي جداول التشغيل إلى لوحة معلومات.";
145
+ readonly joinHidden: "تم إخفاء {count} من جداول الربط/النظام مسبقًا — لكنها لا تزال تشغّل علاقات متعدد-إلى-متعدد.";
146
+ };
147
+ readonly hub: {
148
+ readonly title: "اتصالات البيانات";
149
+ readonly subtitle: "{healthy, number} من {total, plural, one {اتصال واحد} two {اتصالين} few {# اتصالات} many {# اتصالًا} other {# اتصال}} بحالة سليمة";
150
+ readonly connectNew: "اتصال جديد";
151
+ readonly stats: {
152
+ readonly connections: "الاتصالات";
153
+ readonly healthy: "سليمة";
154
+ readonly tables: "الجداول المضمّنة";
155
+ readonly pages: "الصفحات المولّدة";
156
+ };
157
+ readonly status: {
158
+ readonly connected: "متصل";
159
+ readonly error: "خطأ";
160
+ readonly unconfigured: "مسودة";
161
+ readonly testing: "جارٍ الاختبار…";
162
+ readonly paused: "متوقّف مؤقتًا";
163
+ };
164
+ readonly card: {
165
+ readonly readOnly: "للقراءة فقط";
166
+ readonly tables: "الجداول";
167
+ readonly pages: "الصفحات";
168
+ readonly latency: "زمن الاستجابة";
169
+ readonly latencyMs: "{latency, number} م.ث";
170
+ readonly lastIntrospected: "آخر فحص للمخطط";
171
+ readonly never: "أبدًا";
172
+ readonly timezone: "المنطقة الزمنية";
173
+ readonly timezoneGuessed: "من هذا الخادم";
174
+ readonly paused: "لا يتصل Adminium بقاعدة البيانات هذه. ستُحمَّل صفحاتها من جديد بمجرد استئنافها.";
175
+ readonly pausedSince: "متوقّف مؤقتًا {when} — لا يتصل Adminium بقاعدة البيانات هذه. ستُحمَّل صفحاتها من جديد بمجرد استئنافها.";
176
+ };
177
+ readonly action: {
178
+ readonly test: "اختبار";
179
+ readonly reintrospect: "إعادة فحص المخطط";
180
+ readonly reintrospectFile: "مصادر ملفات المخطط لا تملك قاعدة بيانات حيّة — أعد رفع الملف بدلًا من ذلك.";
181
+ readonly remap: "إعادة تعيين المخطط";
182
+ readonly delete: "حذف";
183
+ readonly regional: "الإعدادات الإقليمية";
184
+ readonly pause: "إيقاف مؤقت";
185
+ readonly resume: "استئناف";
186
+ readonly pausedHint: "هذا الاتصال متوقّف مؤقتًا — استأنفه للوصول إلى قاعدة البيانات.";
187
+ readonly rename: "إعادة تسمية";
188
+ };
189
+ readonly regional: {
190
+ readonly title: "الإعدادات الإقليمية";
191
+ readonly intro: "تصف هذه الإعدادات النشاط التجاري الذي تنتمي إليه قاعدة البيانات، لا الشخص الذي يقرؤها. والتطبيقات التي يقدّمها Adminium تقرؤها من هنا.";
192
+ readonly timezone: "المنطقة الزمنية";
193
+ readonly timezoneHelper: "تُعرض التواريخ والأوقات بهذه المنطقة الزمنية. وبدونها تعود التطبيقات المستضافة على Adminium إلى توقيت UTC وتوضّح ذلك على الشاشة.";
194
+ readonly guessedTitle: "هذه المنطقة الزمنية جاءت من الخادم";
195
+ readonly guessedBody: "أخذها Adminium من الجهاز الذي يعمل عليه، ولم يخترها أحد هنا. احفظ لتأكيدها، أو اختر المنطقة الزمنية التي يعمل بها هذا النشاط التجاري فعليًا.";
196
+ readonly timezonePlaceholder: "المنطقة/المدينة";
197
+ readonly currency: "العملة";
198
+ readonly currencyHelper: "تُستخدم لتنسيق المبالغ. اختيارية — وتركها فارغة يؤثّر في التنسيق فقط.";
199
+ readonly currencyPlaceholder: "رمز ISO-4217";
200
+ readonly notSet: "غير محدَّد";
201
+ readonly noMatch: "لا توجد منطقة مطابقة";
202
+ readonly noMatchCurrency: "لا توجد عملة مطابقة";
203
+ readonly save: "حفظ";
204
+ readonly failed: "تعذّر حفظ الإعدادات الإقليمية";
205
+ readonly saved: "تم تحديث الإعدادات الإقليمية";
206
+ };
207
+ readonly test: {
208
+ readonly ok: "الاتصال سليم · {latency, number} م.ث";
209
+ readonly failed: "فشل اختبار الاتصال";
210
+ };
211
+ readonly introspect: {
212
+ readonly noChanges: "المخطط دون تغيير — لا لقطة جديدة.";
213
+ readonly updated: "أُعيد فحص المخطط";
214
+ readonly masksProposed: "{count, plural, one {عمود واحد مقترح} two {عمودان مقترحان} few {# أعمدة مقترحة} many {# عمودًا مقترحًا} other {# عمود مقترح}} للإخفاء — راجعها في محرر إعادة التعيين.";
215
+ readonly failed: "فشل فحص المخطط. حاول مرة أخرى.";
216
+ };
217
+ readonly delete: {
218
+ readonly title: "حذف الاتصال";
219
+ readonly body: "سيؤدي هذا إلى حذف «{name}» وصفحاته المولّدة. لن تُمسّ قاعدة بياناتك نفسها أبدًا.";
220
+ readonly prompt: "اكتب {name} للتأكيد";
221
+ readonly confirm: "حذف الاتصال";
222
+ readonly cancel: "إلغاء";
223
+ readonly close: "إغلاق";
224
+ readonly success: "حُذف الاتصال «{name}»";
225
+ readonly failed: "تعذّر حذف الاتصال. حاول مرة أخرى.";
226
+ };
227
+ readonly empty: {
228
+ readonly title: "لا مصادر بيانات بعد";
229
+ readonly body: "اربط قاعدة بيانات وسيولّد Adminium لوحة الإدارة من مخططها.";
230
+ readonly cta: "ربط قاعدة بيانات";
231
+ };
232
+ readonly hostedApps: "التطبيقات المستضافة";
233
+ readonly subtitlePaused: "{healthy, number} من {total, plural, one {اتصال واحد} two {اتصالين} few {# اتصالات} many {# اتصالًا} other {# اتصال}} بحالة سليمة · {paused, number} متوقّف مؤقتًا";
234
+ readonly pause: {
235
+ readonly title: "إيقاف هذا الاتصال مؤقتًا؟";
236
+ readonly body: "يتوقّف Adminium عن فتح أي اتصال بـ «{name}». {pages, plural, other {صفحاته البالغ عددها #}} والتقارير المجدولة والتطبيقات المستضافة ستتوقّف عن تحميل البيانات حتى تستأنفه.";
237
+ readonly keeps: "لا يُحذف أي شيء — يبقى الاتصال ومخططه {pages, plural, other {وصفحاته البالغ عددها #}}، وتعود جميعها بنقرة واحدة.";
238
+ readonly confirm: "إيقاف الاتصال مؤقتًا";
239
+ readonly pausedToast: "تم إيقاف الاتصال «{name}» مؤقتًا";
240
+ readonly resumedToast: "تم استئناف الاتصال «{name}»";
241
+ readonly pauseFailed: "تعذّر إيقاف الاتصال مؤقتًا. حاول مرة أخرى.";
242
+ readonly resumeFailed: "تعذّر استئناف الاتصال. حاول مرة أخرى.";
243
+ };
244
+ readonly rename: {
245
+ readonly title: "إعادة تسمية الاتصال";
246
+ readonly label: "الاسم";
247
+ readonly helper: "اسم قاعدة البيانات هذه في Adminium كله — البطاقة، ومجموعة الشريط الجانبي فوق صفحاتها، وكل قائمة اختيار تعرضها. أما قاعدة البيانات نفسها فلا يُعاد تسميتها.";
248
+ readonly save: "إعادة التسمية";
249
+ readonly saved: "تمت إعادة تسمية الاتصال";
250
+ readonly failed: "تعذّرت إعادة تسمية الاتصال";
251
+ };
252
+ };
253
+ readonly settingsHub: {
254
+ readonly title: "إعدادات مساحة العمل";
255
+ readonly subtitle: "الهوية والأمان والإجراءات الخطرة لمساحة العمل هذه.";
256
+ readonly save: "حفظ التغييرات";
257
+ readonly saved: "تم تحديث إعدادات مساحة العمل";
258
+ readonly saveFailed: "تعذّر حفظ إعدادات مساحة العمل. حاول مرة أخرى.";
259
+ readonly superAdminOnlyTitle: "يتطلب مشرفًا أعلى";
260
+ readonly superAdminOnly: "لا يمكن تغيير هوية مساحة العمل وإعدادات الأمان إلا لمشرف أعلى.";
261
+ readonly identity: {
262
+ readonly heading: "هوية مساحة العمل";
263
+ readonly appName: {
264
+ readonly label: "اسم التطبيق";
265
+ readonly helper: "يظهر في الشريط الجانبي وعنوان المتصفح ورسائل البريد الإلكتروني.";
266
+ readonly error: "أدخل اسمًا لا يتجاوز 60 حرفًا.";
267
+ };
268
+ readonly logo: {
269
+ readonly label: "الشعار";
270
+ readonly drop: "أفلِت صورة هنا";
271
+ readonly helper: "PNG أو JPEG أو WebP أو GIF أو SVG بحجم أقصاه 1 ميغابايت. يحل محل العلامة المدمجة في كل مكان.";
272
+ readonly upload: "رفع شعار";
273
+ readonly replace: "استبدال الشعار";
274
+ readonly remove: "إزالة";
275
+ readonly uploaded: "تم تحديث الشعار";
276
+ readonly removed: "تمت إزالة الشعار";
277
+ readonly tooLarge: "حجم الصورة أكبر من 1 ميغابايت.";
278
+ readonly badType: "اختر صورة PNG أو JPEG أو WebP أو GIF أو SVG.";
279
+ readonly undo: "تراجع";
280
+ };
281
+ readonly showVersion: {
282
+ readonly label: "الإصدار في الشريط الجانبي";
283
+ readonly helper: "رقم الإصدار بجوار الشعار. إيقافه يخفي الإصدار الذي تشغّله.";
284
+ };
285
+ };
286
+ readonly security: {
287
+ readonly heading: "الأمان";
288
+ readonly require2fa: {
289
+ readonly label: "فرض المصادقة الثنائية";
290
+ readonly desc: "يجب على كل عضو تفعيل المصادقة الثنائية لتسجيل الدخول.";
291
+ readonly note: "إرشادي وليس مانعًا: يُوجَّه الأعضاء بلا مصادقة ثنائية إلى إعدادها ولا يمكنهم إيقافها بعد ذلك، لكن تسجيل دخولهم لا يُمنع أبدًا، ومفاتيح API غير متأثرة.";
292
+ };
293
+ readonly allowSignup: {
294
+ readonly label: "السماح بالتسجيل الذاتي";
295
+ readonly desc: "يمكن لأي شخص إنشاء حساب — عند الإيقاف تبقى مساحة العمل بالدعوة فقط.";
296
+ };
297
+ readonly sessionTtl: {
298
+ readonly label: "مدة الجلسة (بالساعات)";
299
+ readonly error: "بين {min, number} و{max, number} ساعة.";
300
+ };
301
+ readonly passwordMin: {
302
+ readonly label: "الحد الأدنى لطول كلمة المرور";
303
+ readonly error: "بين {min, number} و{max, number} حرفًا.";
304
+ };
305
+ };
306
+ readonly email: {
307
+ readonly heading: "البريد الإلكتروني (SMTP)";
308
+ readonly unconfigured: "لا يوجد خادم بريد مُعدّ، لذلك لا يستطيع Adminium إرسال إعادة تعيين كلمات المرور أو دعوات المستخدمين أو التقارير المجدولة.";
309
+ readonly host: {
310
+ readonly label: "مضيف SMTP";
311
+ readonly error: "اسم مضيف أو عنوان IP فقط — بدون بروتوكول أو منفذ أو بيانات اعتماد.";
312
+ };
313
+ readonly port: {
314
+ readonly label: "المنفذ";
315
+ readonly error: "بين {min, number} و{max, number}.";
316
+ };
317
+ readonly user: {
318
+ readonly label: "اسم المستخدم";
319
+ readonly helper: "اتركه فارغًا إذا كان المُرحِّل لا يطلب مصادقة.";
320
+ };
321
+ readonly pass: {
322
+ readonly label: "كلمة المرور";
323
+ readonly helper: "تُخزَّن مشفَّرة ولا تُعرض مرة أخرى. اتركها فارغة للإبقاء على الحالية.";
324
+ readonly error: "اسم المستخدم هذا يحتاج إلى كلمة مرور.";
325
+ };
326
+ readonly from: {
327
+ readonly label: "عنوان المُرسِل";
328
+ readonly helper: "العنوان وحده، أو اسم معروض قبله.";
329
+ readonly error: "أدخل عنوان بريد إلكتروني.";
330
+ };
331
+ readonly secure: {
332
+ readonly label: "TLS ضمني";
333
+ readonly helper: "مُفعَّل للمنفذ 465. عند الإيقاف يبدأ الاتصال بنص واضح ثم يُرقَّى عبر STARTTLS، وهو ما يتوقعه المنفذ 587.";
334
+ };
335
+ readonly remove: "إزالة خادم البريد";
336
+ readonly review: {
337
+ readonly removed: "أُزيل";
338
+ readonly password: "استُبدلت";
339
+ };
340
+ };
341
+ readonly review: {
342
+ readonly title: "حفظ إعدادات مساحة العمل";
343
+ readonly subtitle: "راجع تغييراتك قبل الحفظ.";
344
+ readonly confirm: "حفظ التغييرات";
345
+ readonly cancel: "إلغاء";
346
+ readonly close: "إغلاق";
347
+ readonly on: "مفعّل";
348
+ readonly off: "متوقف";
349
+ readonly shown: "ظاهر";
350
+ readonly hidden: "مخفي";
351
+ readonly change: "{before} → {after}";
352
+ };
353
+ readonly defaultsCard: {
354
+ readonly heading: "الإعدادات الافتراضية للمظهر واللغة";
355
+ readonly body: "إعدادات السمة ولون التمييز والكثافة واللغة على مستوى مساحة العمل موجودة ضمن الإعدادات الافتراضية العامة.";
356
+ readonly cta: "فتح الإعدادات الافتراضية العامة";
357
+ };
358
+ readonly danger: {
359
+ readonly heading: "منطقة الخطر";
360
+ readonly subtitle: "إجراءات لا يمكن التراجع عنها.";
361
+ readonly empty: "لا شيء للحذف — لا اتصالات بعد.";
362
+ readonly deleteDesc: "يحذف الاتصال والصفحات المولّدة منه. لن تُمسّ قاعدة بياناتك. لا يمكن التراجع عن هذا الإجراء.";
363
+ readonly deleteCta: "حذف الاتصال";
364
+ };
365
+ readonly aiCard: {
366
+ readonly heading: "الإثراء بالذكاء الاصطناعي";
367
+ readonly body: "هيّئ مزوّد ذكاء اصطناعي (أو رحلة النسخ واللصق) لإثراء التسميات والمجموعات والعلاقات.";
368
+ readonly cta: "فتح إعدادات الذكاء الاصطناعي";
369
+ };
370
+ readonly pagesCard: {
371
+ readonly heading: "الصفحات";
372
+ readonly body: "أضف الصفحات وحرّرها واحذفها، وغيّر ما تعرضه كل صفحة، وأعد ترتيب الشريط الجانبي.";
373
+ readonly cta: "إدارة الصفحات";
374
+ };
375
+ readonly translationsCard: {
376
+ readonly heading: "اللغات والترجمات";
377
+ readonly body: "أعد صياغة أي نص في Adminium، واختر اللغات المتاحة للناس، وأضف لغاتك الخاصة.";
378
+ readonly cta: "فتح الترجمات";
379
+ };
380
+ };
381
+ readonly settingsAi: {
382
+ readonly title: "الإثراء بالذكاء الاصطناعي";
383
+ readonly subtitle: "اربط نموذجًا ليقترح Adminium التسميات والمجموعات والعلاقات والمزيد — تُراجَع دائمًا كفرق قبل تطبيق أي شيء.";
384
+ readonly saved: "تم حفظ مزوّد الذكاء الاصطناعي";
385
+ readonly saveFailed: "تعذّر حفظ مزوّد الذكاء الاصطناعي. حاول مرة أخرى.";
386
+ readonly save: "حفظ المزوّد";
387
+ readonly test: "اختبار الاتصال";
388
+ readonly testHintDirty: "احفظ تغييراتك قبل الاختبار.";
389
+ readonly testing: "جارٍ التواصل مع المزوّد…";
390
+ readonly testError: "فشل الاختبار";
391
+ readonly testErrorBody: "تعذّر الوصول إلى المزوّد. تحقق من المفتاح وعنوان URL الأساسي.";
392
+ readonly testOk: "تم الاتصال بـ {model} خلال {latency} مللي ثانية";
393
+ readonly testUnknownModel: "المزوّد";
394
+ readonly provider: {
395
+ readonly heading: "مزوّد الذكاء الاصطناعي";
396
+ readonly subtitle: "اختر كيف يصل Adminium إلى نموذج لإثراء مخططك. تُخزَّن المفاتيح مشفّرة ولا تُعرض مرة أخرى أبدًا.";
397
+ readonly active: "نشط";
398
+ readonly anthropic: {
399
+ readonly label: "Anthropic";
400
+ readonly desc: "نماذج Claude عبر واجهة Anthropic البرمجية.";
401
+ };
402
+ readonly openai: {
403
+ readonly label: "OpenAI";
404
+ readonly desc: "نماذج GPT عبر واجهة OpenAI البرمجية.";
405
+ };
406
+ readonly openaiCompatible: {
407
+ readonly label: "متوافق مع OpenAI";
408
+ readonly desc: "أي نقطة نهاية تتحدث بتنسيق OpenAI — Groq وTogether وvLLM وLM Studio.";
409
+ };
410
+ readonly ollama: {
411
+ readonly label: "Ollama (محلي)";
412
+ readonly desc: "نماذج تعمل محليًا عبر Ollama — بدون مفتاح وبدون سحابة.";
413
+ };
414
+ readonly requiresNetwork: "يتطلب اتصالاً بالإنترنت ومفتاح API";
415
+ readonly networkDisabledTitle: "مزوّدو الذكاء الاصطناعي المباشرون معطَّلون في هذا التثبيت";
416
+ readonly networkDisabledBody: "تم إعداد نسخة Adminium هذه دون وصول صادر إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم دورة النسخ واللصق أدناه — لا تحتاج إلى مفتاح ولا إلى شبكة.";
417
+ };
418
+ readonly configure: {
419
+ readonly heading: "تهيئة {provider}";
420
+ };
421
+ readonly field: {
422
+ readonly baseUrl: "عنوان URL الأساسي";
423
+ readonly baseUrlOptional: "اتركه كما هو ما لم يكن Ollama يعمل على مضيف آخر.";
424
+ readonly baseUrlHelper: "جذر نقطة النهاية الذي يخدم ‎/chat/completions.";
425
+ readonly model: "النموذج";
426
+ readonly modelFreeText: "أدخل معرّف النموذج الدقيق الذي تخدمه نقطة النهاية لديك.";
427
+ readonly modelLive: "تم التحميل مباشرة من المزوّد.";
428
+ readonly modelStatic: "قائمة موثوقة؛ اكتب معرّفًا مخصصًا بعد الحفظ لتحديثها.";
429
+ readonly modelLoading: "جارٍ التحميل…";
430
+ readonly modelPlaceholder: "اختر نموذجًا…";
431
+ readonly key: "مفتاح API";
432
+ readonly keyStored: "مخزَّن مشفّرًا. استبدله لاستخدام مفتاح مختلف.";
433
+ readonly keyMask: "sk-…{last4}";
434
+ readonly keyReplace: "استبدال المفتاح";
435
+ readonly keyOptional: "اختياري — بعض نقاط النهاية لا تحتاج إلى مفتاح.";
436
+ readonly keyWriteOnly: "للكتابة فقط: بمجرد حفظه لا يُعرض مرة أخرى أبدًا.";
437
+ readonly noKeyTitle: "لا حاجة إلى مفتاح API";
438
+ readonly noKeyBody: "يعمل Ollama محليًا، لذا لا يغادر أي شيء هذا الجهاز.";
439
+ };
440
+ readonly runStatus: {
441
+ readonly draft: "مسودة";
442
+ readonly running: "قيد التشغيل";
443
+ readonly awaitingResponse: "في انتظار الرد";
444
+ readonly validated: "تم التحقق";
445
+ readonly applied: "مطبَّق";
446
+ readonly partiallyApplied: "مطبَّق جزئيًا";
447
+ readonly failed: "فشل";
448
+ readonly discarded: "مُهمَل";
449
+ };
450
+ readonly byo: {
451
+ readonly heading: "لا مفتاح؟ استخدم أداة الذكاء الاصطناعي الخاصة بك";
452
+ readonly subtitle: "رحلة النسخ واللصق — لا يغادر أي شيء هذا الجهاز.";
453
+ readonly body: "يستطيع Studio توليد مطالبة مكتفية ذاتيًا من مخططك. شغّلها في Claude Code أو ChatGPT أو أي أداة تفضّلها، ثم الصق JSON الذي تعيده في معالج الاتصال. نفس التحقق ونفس المراجعة ونفس النتيجة كالمسار المباشر.";
454
+ readonly guaranteeTitle: "ضمان الخلو من القياس عن بُعد";
455
+ readonly guarantee1: "تحمل المطالبة مخططك والإحصاءات المجمّعة فقط — ولا تحمل بيانات الصفوف افتراضيًا أبدًا.";
456
+ readonly guarantee2: "لا تُضمَّن أي بيانات اعتماد أو عنوان URL للنسخة أو معرّفات.";
457
+ readonly guarantee3: "عمليات BYO لا تُجري أي اتصالات شبكية.";
458
+ readonly promptVersion: "المطالبة {version}";
459
+ readonly schemaVersion: "المخطط {version}";
460
+ readonly headingRecommended: "استخدم أداة الذكاء الاصطناعي الخاصة بك — دون الحاجة إلى مفتاح";
461
+ readonly recommended: "موصى به";
462
+ };
463
+ readonly history: {
464
+ readonly heading: "سجل العمليات";
465
+ readonly subtitle: "عمليات الإثراء السابقة. افتح إحداها لمراجعة اقتراحاتها.";
466
+ readonly tableLabel: "عمليات الإثراء";
467
+ readonly colDate: "التاريخ";
468
+ readonly colSource: "المصدر";
469
+ readonly colStatus: "الحالة";
470
+ readonly colChunks: "الأجزاء";
471
+ readonly openReview: "افتح مراجعة العملية بتاريخ {date}";
472
+ readonly connection: "الاتصال";
473
+ readonly empty: "لا توجد عمليات إثراء بعد. أثرِ مخططًا من معالج الاتصال لعرض السجل هنا.";
474
+ readonly errorTitle: "تعذّر تحميل العمليات";
475
+ readonly errorBody: "أعد تحميل الصفحة للمحاولة مرة أخرى.";
476
+ readonly noConnections: "اربط قاعدة بيانات أولًا — تُسجَّل عمليات الإثراء لكل اتصال على حدة.";
477
+ readonly byo: "BYO";
478
+ readonly directPath: "مباشر";
479
+ };
480
+ };
481
+ readonly enrich: {
482
+ readonly title: "الإثراء بالذكاء الاصطناعي";
483
+ readonly subtitle: "يمكنك اختياريًا تحسين التسميات والمجموعات والتعدادات ولوحات المعلومات المُولّدة باستخدام نموذج لغوي كبير. يعمل الأساس الاستدلالي بدونه — وهذا يضيف فقط اقتراحات تراجعها قبل تطبيق أي شيء.";
484
+ readonly intentLabel: "كيف تريد الإثراء؟";
485
+ readonly sectionsLegend: "ما الذي ينبغي للذكاء الاصطناعي أن يقرره؟";
486
+ readonly localesLegend: "ترجمة التسميات إلى";
487
+ readonly localeLocked: "(مطلوب)";
488
+ readonly samplingTitle: "تضمين قيم عينة";
489
+ readonly samplingHint: "يضمّن ما يصل إلى 20 قيمة حقيقية لكل عمود غير حاوٍ على بيانات شخصية في المُوجّه.";
490
+ readonly samplingPreviewTitle: "ما الذي يغادر هذا الجهاز";
491
+ readonly samplingPreviewBody: "ما يصل إلى 20 قيمة من الأكثر شيوعًا لكل عمود غير حاوٍ على بيانات شخصية، إضافةً إلى الحد الأدنى/الأقصى للأعمدة الرقمية والتاريخية. لا تُؤخذ عينات من الأعمدة المُعلَّمة كبيانات شخصية أبدًا. يبقى كل ما عداها مُجمَّعًا فقط. راجع المُوجّه الدقيق قبل النسخ (BYO) — لا يُرسَل أي شيء دون إجراء منك.";
492
+ readonly noSections: "اختر مجموعة قرار واحدة على الأقل للإثراء.";
493
+ readonly generatePrompt: "إنشاء المُوجّه";
494
+ readonly startProvider: "بدء الإثراء";
495
+ readonly startOver: "البدء من جديد";
496
+ readonly copied: "تم النسخ";
497
+ readonly createFailed: "تعذّر إنشاء مُوجّه الإثراء — أعد المحاولة.";
498
+ readonly createFailedTitle: "تعذّر البدء";
499
+ readonly providerFallback: "مزوّد الذكاء الاصطناعي الخاص بك";
500
+ readonly fileTitle: "يتطلّب الإثراء بالذكاء الاصطناعي قاعدة بيانات حيّة";
501
+ readonly fileBody: "لا تملك مصادر ملفات المخطط لقطة للإثراء بعد. اتصل بقاعدة بيانات حيّة لاستخدام الإثراء بالذكاء الاصطناعي، أو تابع — فالأساس الاستدلالي يُولّد تطبيقًا كاملًا رغم ذلك.";
502
+ readonly section: {
503
+ readonly labels: "التسميات والأوصاف";
504
+ readonly groups: "مجموعات التنقّل";
505
+ readonly enums: "دلالات التعداد";
506
+ readonly relations: "العلاقات";
507
+ readonly keys: "الأعمدة المفتاحية";
508
+ readonly templates: "قوالب الصفحات";
509
+ readonly widgets: "أدوات لوحة المعلومات";
510
+ readonly pii: "البيانات الشخصية والإخفاء";
511
+ readonly icons: "الأيقونات";
512
+ readonly microcopy: "النصوص الدقيقة";
513
+ };
514
+ readonly provider: {
515
+ readonly title: "استخدام مزوّد الذكاء الاصطناعي الخاص بي";
516
+ readonly description: "شغّل الإثراء الآن باستخدام مزوّدك المُهيّأ. تراجع كل اقتراح على هيئة فرق.";
517
+ readonly unconfigured: "لم يُهيّأ أي مزوّد ذكاء اصطناعي بعد — انسخ مُوجّهًا إلى أداتك الخاصة أدناه، أو هيّئ مزوّدًا أولًا.";
518
+ readonly settingsHint: "هل تريد تشغيله مباشرةً؟";
519
+ readonly settingsLink: "هيّئ مزوّدًا في الإعدادات ← الذكاء الاصطناعي";
520
+ readonly networkDisabled: "لا تملك نسخة Adminium هذه وصولاً صادرًا إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم بدلاً من ذلك دورة النسخ واللصق — الموجّه نفسه والمراجعة نفسها.";
521
+ };
522
+ readonly byo: {
523
+ readonly cardTitle: "نسخ مُوجّه إلى أداة الذكاء الاصطناعي الخاصة بي";
524
+ readonly cardDescription: "انسخ مُوجّهًا مكتفيًا بذاته إلى Claude Code أو ChatGPT أو أي أداة — ثم الصق JSON مرة أخرى. لا حاجة إلى مفتاح، ولا يغادر أي شيء هذا الجهاز تلقائيًا.";
525
+ readonly guidance: "شغّل هذا في أي أداة ذكاء اصطناعي — Claude Code أو ChatGPT أو غيرها. الصق JSON الذي تُعيده أدناه.";
526
+ readonly promptLabel: "مُوجّه الإثراء";
527
+ readonly promptLabelN: "مُوجّه الإثراء {index} من {total}";
528
+ readonly tokenChip: "≈ {tokens} رمزًا";
529
+ readonly copyPrompt: "نسخ المُوجّه";
530
+ readonly copyPromptDone: "تم نسخ المُوجّه";
531
+ readonly download: "تنزيل .md";
532
+ readonly chunkTabs: "أجزاء المُوجّه";
533
+ readonly chunkTab: "المُوجّه {index}";
534
+ readonly chunkValid: "تم التحقّق من الجزء {index}";
535
+ readonly pasteLabel: "الصق استجابة JSON";
536
+ readonly pastePlaceholder: "الصق استجابة JSON هنا…";
537
+ readonly validate: "تحقّق";
538
+ readonly valid: "تم التحقّق من الاستجابة";
539
+ readonly mergedTitle: "تم التحقّق من كل الأجزاء البالغة {count} ودمجها";
540
+ readonly mergedTitleSingle: "تم التحقّق من الاستجابة";
541
+ readonly mergedBody: "الاقتراحات جاهزة للمراجعة مقابل الأساس الاستدلالي.";
542
+ readonly errorsTitle: "عثر التحقّق على {count} مشكلة";
543
+ readonly copyErrors: "نسخ الأخطاء لأداة الذكاء الاصطناعي";
544
+ readonly copyErrorsDone: "تم نسخ الأخطاء";
545
+ readonly copyErrorsHint: "الصق هذا مجددًا في أداة الذكاء الاصطناعي للحصول على استجابة مُصحّحة.";
546
+ readonly droppedItems: "أُسقِط {count} اقتراح أثناء التحقّق — تعرض المراجعة البقية.";
547
+ readonly pendingTitle: "تحقّق من كل مُوجّه للمتابعة";
548
+ readonly pendingBody: "الصق استجابة JSON أعلاه وتحقّق منها للمتابعة إلى المراجعة.";
549
+ readonly pendingBodyChunked: "يجب التحقّق من كل جزء قبل دمج الاقتراحات. الصق كل مُوجّه أعلاه وتحقّق منه.";
550
+ readonly requestFailed: "تعذّر الوصول إلى الخادم للتحقّق — أعد المحاولة.";
551
+ readonly continueReview: "المتابعة إلى المراجعة";
552
+ readonly wholeDocument: "المستند بأكمله";
553
+ readonly cardTitleRecommended: "انسخ موجّهًا إلى أداة الذكاء الاصطناعي الخاصة بي — موصى به";
554
+ };
555
+ readonly direct: {
556
+ readonly title: "الإثراء بالذكاء الاصطناعي";
557
+ readonly subtitle: "يجري إرسال مخططك إلى";
558
+ readonly building: "يجري إنشاء المُوجّه…";
559
+ readonly logLabel: "سجلّ الإثراء";
560
+ readonly cancel: "إلغاء";
561
+ readonly back: "العودة إلى الخيارات";
562
+ readonly retry: "إعادة المحاولة";
563
+ readonly done: "اكتمل الإثراء — راجع الاقتراحات.";
564
+ readonly continueReview: "المتابعة إلى المراجعة";
565
+ readonly failed: "فشل تشغيل المزوّد. تحقّق من إعدادات الذكاء الاصطناعي وأعد المحاولة.";
566
+ readonly jobFailed: "لم يكتمل تشغيل الإثراء.";
567
+ readonly startFailed: "تعذّر بدء التشغيل — أعد المحاولة.";
568
+ readonly errorTitle: "فشل الإثراء";
569
+ };
570
+ readonly skip: {
571
+ readonly title: "تخطٍّ — استخدام الاستدلال فقط";
572
+ readonly description: "التوليد من الأساس الاستدلالي. يمكنك الإثراء لاحقًا من الإعدادات ← الذكاء الاصطناعي — لا يُعاقَب التخطّي أبدًا.";
573
+ readonly confirmTitle: "المتابعة بالاستدلال";
574
+ readonly confirmBody: "سيستخدم التطبيق المُولّد التسميات والمجموعات ولوحات المعلومات الاستدلالية. تابع للتوليد — يمكنك تشغيل الإثراء بالذكاء الاصطناعي في أي وقت من الإعدادات ← الذكاء الاصطناعي.";
575
+ };
576
+ };
577
+ readonly review: {
578
+ readonly unavailableTitle: "شاشة المراجعة غير متوفرة";
579
+ readonly unavailableBody: "لا يتضمّن هذا الإصدار شاشة مراجعة الإثراء بعد (06-T14). ستصل مع تدفق الفرق والتطبيق.";
580
+ };
581
+ readonly llmRuns: {
582
+ readonly review: {
583
+ readonly header: {
584
+ readonly title: "مراجعة اقتراحات الذكاء الاصطناعي";
585
+ readonly model: "النموذج";
586
+ readonly snapshot: "لقطة";
587
+ readonly byo: "مفتاحك الخاص";
588
+ readonly pathDirect: "واجهة مباشرة";
589
+ readonly pathByo: "نسخ ولصق";
590
+ readonly agree: "{n} متوافقة";
591
+ readonly conflict: "{n} متعارضة";
592
+ readonly new: "{n} جديدة";
593
+ readonly rejects: "{n} مرفوضة";
594
+ readonly countsAria: "أعداد الاقتراحات";
595
+ };
596
+ readonly bulk: {
597
+ readonly thresholdLabel: "حد الثقة";
598
+ readonly thresholdAria: "حد الثقة لخيار «قبول الكل»";
599
+ readonly acceptAll: "قبول الكل ≥ {pct}%";
600
+ readonly clear: "مسح التحديد";
601
+ };
602
+ readonly section: {
603
+ readonly selectAllAria: "تحديد الكل في {group}";
604
+ readonly acceptedCount: "{n} مقبولة";
605
+ };
606
+ readonly group: {
607
+ readonly labels: "التسميات والترجمات";
608
+ readonly navigation: "التنقل والمجالات";
609
+ readonly enums: "دلالات التعدادات";
610
+ readonly relations: "العلاقات";
611
+ readonly keys: "الأعمدة المفتاحية";
612
+ readonly templates: "قوالب الصفحات";
613
+ readonly dashboards: "لوحات المعلومات والأدوات";
614
+ readonly pii: "البيانات الشخصية والإخفاء";
615
+ readonly icons: "الأيقونات";
616
+ readonly microcopy: "النصوص المصغّرة";
617
+ };
618
+ readonly status: {
619
+ readonly agree: "متوافق";
620
+ readonly conflict: "تعارض";
621
+ readonly new: "جديد";
622
+ readonly heuristicOnly: "إرشادي فقط";
623
+ readonly rejects: "يرفض الإرشادي";
624
+ readonly locked: "مقفل";
625
+ };
626
+ readonly row: {
627
+ readonly acceptAria: "قبول اقتراح {noun} لـ {target}";
628
+ readonly keptEdited: "محتفَظ به — عدّلته بنفسك";
629
+ readonly rejectsCallout: "يرفض الذكاء الاصطناعي قرارًا إرشاديًا — أكِّد قبل القبول.";
630
+ readonly showTranslations: "عرض الترجمات";
631
+ readonly hideTranslations: "إخفاء الترجمات";
632
+ readonly confidenceAria: "الثقة {pct}%";
633
+ readonly noAi: "لا يوجد اقتراح من الذكاء الاصطناعي";
634
+ };
635
+ readonly value: {
636
+ readonly none: "لا قيمة";
637
+ readonly absent: "لا شيء";
638
+ readonly dash: "—";
639
+ readonly display: "العرض";
640
+ readonly key: "المفتاح";
641
+ readonly rank: "الترتيب {n}";
642
+ readonly span: "العرض {n}";
643
+ readonly tableCount: "{n} جداول";
644
+ readonly widgetCount: "{n} أدوات";
645
+ readonly enumWorkflow: "سير عمل";
646
+ readonly enumCategory: "فئة";
647
+ readonly notPii: "ليست بيانات شخصية";
648
+ readonly label: "التسمية";
649
+ readonly description: "الوصف";
650
+ readonly subtitle: "العنوان الفرعي للصفحة";
651
+ readonly headline: "عنوان الحالة الفارغة";
652
+ readonly guidance: "إرشاد الحالة الفارغة";
653
+ };
654
+ readonly apply: {
655
+ readonly title: "تطبيق {n} اقتراحات";
656
+ readonly subtitle: "تُكتب هذه التغييرات في معاملة واحدة ويمكن التراجع عنها.";
657
+ readonly empty: "لم يتم تحديد شيء للتطبيق.";
658
+ readonly confirm: "تطبيق التغييرات";
659
+ };
660
+ readonly footer: {
661
+ readonly count: "تم تحديد {n} اقتراحات";
662
+ readonly apply: "تطبيق {n} اقتراحات مقبولة";
663
+ readonly failed: "فشل التطبيق";
664
+ };
665
+ readonly toast: {
666
+ readonly applied: "تم تطبيق {n} اقتراحات";
667
+ readonly appliedPartial: "تم تطبيق {n} اقتراحات (تم تخطي بعضها)";
668
+ readonly applyFailed: "تعذّر تطبيق الاقتراحات";
669
+ readonly undoFailed: "تعذّر التراجع عن هذا التغيير";
670
+ };
671
+ readonly error: {
672
+ readonly title: "تعذّر تحميل هذا التشغيل";
673
+ };
674
+ readonly notReady: {
675
+ readonly title: "لا يحتوي هذا التشغيل على اقتراحات للمراجعة بعد";
676
+ readonly body: "يجب التحقق من التشغيل قبل إمكانية مراجعة اقتراحاته. أنشئ استجابة أو الصقها أولًا.";
677
+ };
678
+ readonly applied: {
679
+ readonly title: "تم تطبيق هذا التشغيل";
680
+ readonly body: "الاقتراحات المقبولة أدناه للقراءة فقط.";
681
+ };
682
+ readonly empty: {
683
+ readonly title: "لا اقتراحات";
684
+ readonly body: "لم يُنتج هذا التشغيل أي اقتراحات للمراجعة.";
685
+ };
686
+ readonly cat: {
687
+ readonly label: "تسمية";
688
+ readonly key: "أعمدة مفتاحية";
689
+ readonly enum: "تعداد";
690
+ readonly relation: "علاقة";
691
+ readonly pii: "بيانات شخصية";
692
+ readonly template: "قالب صفحة";
693
+ readonly group: "مجموعة تنقل";
694
+ readonly dashboard: "لوحة معلومات";
695
+ readonly widget: "أداة";
696
+ readonly copy: "نص مصغّر";
697
+ };
698
+ };
699
+ };
700
+ readonly wizard: {
701
+ readonly title: "اتصال جديد";
702
+ readonly back: "رجوع";
703
+ readonly continue: "متابعة";
704
+ readonly progress: "تقدّم الإعداد";
705
+ readonly persistFailed: "تعذّر حفظ اختيار الجداول — أعد المحاولة.";
706
+ readonly persistFailedTitle: "فشل الحفظ";
707
+ readonly bridgeAppliedTitle: "تم استلام سلسلة الاتصال";
708
+ readonly bridgeAppliedBody: "سلّمها متصفحك من adminium.dev — وصلت مباشرةً إلى هذا الجهاز ولم تُرفع إلى أي خادم. راجعها بالأسفل ثم تابع.";
709
+ readonly bridgeFailedTitle: "تعذّر استخدام عملية التسليم هذه";
710
+ readonly bridgeFailedBody: "إمّا أنها استُخدمت من قبل أو انتهت صلاحيتها. الصق سلسلة الاتصال بالأسفل بدلاً من ذلك.";
711
+ readonly step: {
712
+ readonly source: "المصدر";
713
+ readonly test: "تحليل";
714
+ readonly tables: "الجداول";
715
+ readonly meta: "تخزين البيانات الوصفية";
716
+ readonly intent: "الغرض";
717
+ readonly enrich: "إثراء";
718
+ readonly generate: "توليد";
719
+ };
720
+ };
721
+ readonly meta: {
722
+ readonly title: "أين يجب أن يحتفظ Adminium بجداوله الخاصة؟";
723
+ readonly subtitle: "تُخزَّن الصفحات والأدوار وسجل التدقيق والإعدادات في جداول تبدأ بـ adminium_ — ولا تُخلط أبدًا ببياناتك.";
724
+ readonly sameDb: {
725
+ readonly title: "قاعدة البيانات نفسها";
726
+ readonly description: "تُنشأ جداول adminium_* بجانب جداول المصدر. أبسط إعداد — يتطلب دورًا بصلاحيات الكتابة وCREATE TABLE.";
727
+ readonly disabledReadOnly: "دورك للقراءة فقط — لا يكتب Adminium أبدًا في هذه القاعدة. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
728
+ readonly disabledNoDdl: "لا يمكن لهذا الدور تنفيذ DDL — تحتاج ترحيلات Adminium إلى CREATE TABLE. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
729
+ readonly disabledFile: "ملف المخطط ليس له قاعدة بيانات حيّة — اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.";
730
+ };
731
+ readonly separate: {
732
+ readonly title: "قاعدة بيانات منفصلة";
733
+ readonly description: "يحتفظ Adminium بجداوله في قاعدة بيانات مختلفة. يبقى مصدرك كما هو — وهذا مطلوب للمصادر ذات القراءة فقط.";
734
+ readonly dsn: "سلسلة اتصال قاعدة البيانات الوصفية";
735
+ readonly helper: "يتطلب صلاحيات الكتابة وDDL — يشغّل Adminium ترحيلاته الخاصة هناك.";
736
+ readonly test: "اختبار الاتصال";
737
+ readonly ok: "متوافق — كتابة ✓ · DDL ✓";
738
+ readonly insufficient: "لا يمكن لهذا الدور استضافة المخزن الوصفي — يحتاج Adminium هناك إلى صلاحيات الكتابة وCREATE TABLE.";
739
+ readonly errorTitle: "مخزن البيانات الوصفية غير متوافق";
740
+ };
741
+ readonly testFailed: "فشل الاتصال.";
742
+ readonly v1Note: {
743
+ readonly title: "حول هذا التثبيت";
744
+ readonly body: "يحتفظ هذا الخادم بجداوله الخاصة في قاعدة بيانات مُعدّة مسبقًا، وهذه الخطوة لا تنقلها. إنها تتحقق من توافق اختيارك مع هذا الاتصال — ويطبّق الخادم القاعدة نفسها بشكل مستقل (409 META_PLACEMENT_INVALID).";
745
+ };
746
+ readonly move: {
747
+ readonly title: "جارٍ نقل جداول Adminium";
748
+ readonly copying: "جارٍ نقل جداول Adminium…";
749
+ readonly restarting: "جارٍ إعادة التشغيل…";
750
+ readonly copyingBody: "يجري نسخ كل جدول adminium_ إلى قاعدة البيانات الجديدة. لا تُمس بياناتك المصدرية، ولا يتم التبديل قبل التحقق من النسخة.";
751
+ readonly restartingBody: "اكتمل النسخ. يعيد Adminium التشغيل على قاعدة البيانات الجديدة — ستتابع هذه الصفحة تلقائيًا خلال ثوانٍ.";
752
+ readonly failed: "تعذّر نقل جداول Adminium — أعد المحاولة.";
753
+ readonly timeout: "نقل Adminium جداوله لكنه لم يعد بعد. بياناتك آمنة في قاعدة البيانات الجديدة — أعد تحميل هذه الصفحة بعد قليل.";
754
+ };
755
+ readonly willMove: {
756
+ readonly title: "سيؤدي هذا إلى نقل جداول Adminium";
757
+ readonly body: "يستخدم Adminium حاليًا مخزن SQLite المدمج. يؤدي «متابعة» إلى نسخ هذا المخزن إلى قاعدة البيانات التي اخترتها وإعادة التشغيل عليها — تنتقل معه الحسابات والصفحات والإعدادات، فتظل مسجّل الدخول.";
758
+ };
759
+ };
760
+ readonly intent: {
761
+ readonly title: "ما الذي تحتاجه؟";
762
+ readonly subtitle: "يحدد الغرض الصفحات التي سيتم توليدها. يمكنك تغييره لاحقًا — تغييره يقترح إعادة توليد، ولا يعيد الكتابة بصمت أبدًا.";
763
+ readonly trust: "نقرأ مخططك فقط — ولا نقرأ بيانات صفوفك أبدًا أثناء الإعداد.";
764
+ readonly fullAdmin: {
765
+ readonly title: "لوحة إدارة كاملة";
766
+ readonly description: "لوحات معلومات وصفحات CRUD وبحث واستيراد وتصدير — كل ما يدعمه مخططك.";
767
+ };
768
+ readonly analytics: {
769
+ readonly title: "تحليلات للقراءة فقط";
770
+ readonly description: "لوحات معلومات ورسوم بيانية وجداول للقراءة فقط. لا نماذج ولا كتابة — كل دور محدود بمشاهد.";
771
+ };
772
+ readonly crud: {
773
+ readonly title: "جداول CRUD";
774
+ readonly description: "صفحة تحرير واحدة لكل جدول مع البحث والاستيراد/التصدير — صفحة رئيسية بسيطة، دون لوحات معلومات.";
775
+ };
776
+ readonly support: {
777
+ readonly title: "وحدة تحكم الدعم";
778
+ readonly description: "قوائم الانتظار وصفحات التذاكر وتفاصيل العملاء أولًا. الحذف معطّل افتراضيًا. (تصل قوالب قوائم الانتظار في M7 — مجموعة صفحات v1 تطابق لوحة الإدارة الكاملة.)";
779
+ };
780
+ };
781
+ readonly generate: {
782
+ readonly title: "ولّد تطبيقك";
783
+ readonly subtitle: "صفحة لكل جدول مضمّن مع لوحات معلومات لكل مجال — الغرض:";
784
+ readonly run: "توليد لوحة المعلومات";
785
+ readonly openApp: "افتح تطبيقك";
786
+ readonly logLabel: "سجل التوليد";
787
+ readonly log: {
788
+ readonly classifying: "جارٍ تصنيف المخطط…";
789
+ readonly composing: "جارٍ تركيب القوالب…";
790
+ readonly writing: "جارٍ كتابة الصفحات…";
791
+ readonly done: "تم توليد {pages} صفحة عبر {groups} مجموعات تنقّل";
792
+ };
793
+ readonly successTitle: "لوحة معلوماتك جاهزة";
794
+ readonly successBody: "{pages} صفحة عبر {groups} مجموعات تنقّل — وُلّدت من مخططك، وقابلة للتحرير في الاستوديو.";
795
+ readonly errorTitle: "فشل التوليد";
796
+ readonly failed: "فشل التوليد — أعد المحاولة، أو أعد تشغيل الاستبطان أولًا.";
797
+ readonly fileTitle: "تم تحليل ملف المخطط — يحتاج التوليد إلى قاعدة بيانات حيّة";
798
+ readonly fileBody: "تم تحليل مخططك بنجاح والمعاينة أعلاه حقيقية. توليد تطبيق يعمل مباشرةً من ملف مخطط (بصفوف بديلة) غير متاح بعد — اربط قاعدة بيانات حيّة للتوليد اليوم.";
799
+ };
800
+ readonly remap: {
801
+ readonly column: {
802
+ readonly nullable: "يقبل NULL";
803
+ readonly labelOverride: "تسمية العرض";
804
+ readonly labelHelper: "المستنتج: {name}";
805
+ readonly logicalType: "النوع المنطقي";
806
+ readonly logicalTypeHelper: "المستنتج: {type} (من {dbType}) — يربطه المهايئ؛ ولا يمكن تجاوزه في v1.";
807
+ readonly semantic: "النوع الدلالي";
808
+ readonly unclassified: "لم يُصنَّف بعد.";
809
+ readonly semanticHelper: "المصنِّف: {tag} · الثقة {confidence}% · المصدر: {source}";
810
+ readonly semanticInferred: "المستنتج: {tag}";
811
+ readonly currency: "العملة";
812
+ readonly currencyHelper: "رمز ISO 4217 المطبَّق على تنسيق المبالغ المالية.";
813
+ readonly pii: "الإخفاء افتراضيًا";
814
+ readonly piiHelper: "تُعرض القيم المخفية محجوبة؛ ويتطلب كشفها صلاحية data.unmask_pii ويُسجَّل في سجل التدقيق.";
815
+ readonly enum: "دلالات التعداد";
816
+ readonly enumKind: "نوع التعداد";
817
+ readonly enumWorkflow: "سير عمل";
818
+ readonly enumCategory: "فئة";
819
+ readonly enumLabelFor: "تسمية {value}";
820
+ readonly enumToneFor: "درجة لون {value}";
821
+ readonly enumToneAuto: "تلقائي";
822
+ readonly enumHelper: "تعدادات سير العمل تُشغّل شارات الحالة وأعمدة اللوحات؛ وتربط درجات الألوان القيم بمقياس التظليل الدلالي.";
823
+ };
824
+ readonly diff: {
825
+ readonly one: "تغيير واحد";
826
+ readonly count: "{count} تغييرات";
827
+ readonly saved: "تم حفظ التجاوزات.";
828
+ readonly revertOne: "التراجع عن {change}";
829
+ readonly regenerate: "إعادة توليد الصفحات";
830
+ readonly revertAll: "التراجع عن الكل";
831
+ readonly save: "حفظ التجاوزات";
832
+ };
833
+ readonly table: {
834
+ readonly iconPicker: "أيقونة الجدول";
835
+ readonly system: "نظام";
836
+ readonly labelOverride: "تسمية العرض";
837
+ readonly labelHelper: "المستنتج: {name}";
838
+ readonly icon: "الأيقونة";
839
+ readonly navGroup: "مجموعة التنقل";
840
+ readonly navGroupHelper: "يقرر المولِّد موضع التنقل — تجاوز table.navGroup ليس ضمن مفردات v1.";
841
+ readonly include: "التضمين في التطبيق المولَّد";
842
+ readonly includeHelper: "الجداول المستبعدة لا تحصل على صفحات وتختفي من التنقل.";
843
+ readonly shape: "شكل الجدول (مصنَّف)";
844
+ readonly role: "الدور";
845
+ readonly unclassified: "غير مصنَّف";
846
+ readonly kind: "النوع";
847
+ readonly hierarchy: "التسلسل الهرمي";
848
+ readonly selfFk: "مرجع ذاتي عبر {column}";
849
+ readonly polymorphic: "أزواج متعددة الأشكال";
850
+ readonly rows: "تقدير عدد الصفوف";
851
+ readonly shapeHelper: "يُعاد حساب التصنيف مع كل استبطان؛ وتُطبَّق التجاوزات فوقه وتبقى بعد إعادة التوليد.";
852
+ };
853
+ readonly relations: {
854
+ readonly declared: "المفاتيح الخارجية المعلنة";
855
+ readonly noneDeclared: "لا توجد مفاتيح خارجية معلنة تمسّ هذا الجدول.";
856
+ readonly inferred: "العلاقات المستنتجة";
857
+ readonly noneInferred: "لا شيء مستنتج لهذا الجدول.";
858
+ readonly confidence: "مستنتجة · {pct}%";
859
+ readonly accepted: "مقبولة";
860
+ readonly suppressed: "مستبعدة";
861
+ readonly accept: "قبول";
862
+ readonly suppress: "استبعاد";
863
+ readonly overrides: "علاقات التجاوز (المطبَّقة)";
864
+ readonly overrideBadge: "تجاوز";
865
+ readonly add: "إضافة علاقة افتراضية";
866
+ readonly fromColumn: "من العمود";
867
+ readonly noColumns: "لا يوجد عمود مطابق";
868
+ readonly fromPlaceholder: "customer_id";
869
+ readonly toTable: "إلى الجدول";
870
+ readonly noTables: "لا يوجد جدول مطابق";
871
+ readonly toColumn: "إلى العمود";
872
+ readonly cardinality: "التعددية";
873
+ readonly addButton: "إضافة علاقة";
874
+ };
875
+ readonly toast: {
876
+ readonly saved: "تم حفظ تجاوزات المخطط";
877
+ readonly savedDetail: "يعكس المخطط المطبَّق أدناه تغييراتك.";
878
+ readonly regenerated: "{created} أُنشئت · {updated} حُدّثت · {unchanged} لم تتغير";
879
+ readonly regeneratedDetail: "تُحفظ الصفحات التي حرّرتها يدويًا — لم يُعَد التوليد في مكانه إلا للصفحات التي بقي generated_hash الخاص بها دون تعديل.";
880
+ readonly regenerateFailed: "فشلت إعادة التوليد";
881
+ };
882
+ readonly title: "إعادة تعيين المخطط";
883
+ readonly subtitle: "{tables} جدولًا · {applied} تجاوزًا مطبَّقًا";
884
+ readonly saveFailed: "فشل الحفظ: {message}";
885
+ readonly loadFailed: "تعذّر تحميل المخطط لهذا الاتصال.";
886
+ readonly inspector: "الفاحص";
887
+ readonly empty: {
888
+ readonly title: "اختر جدولًا أو عمودًا";
889
+ readonly description: "حدد عنصرًا في شجرة المخطط لإعادة تعيين تسميته أو نوعه أو علاقاته أو إخفائه.";
890
+ };
891
+ readonly tabs: {
892
+ readonly details: "التفاصيل";
893
+ readonly relations: "العلاقات";
894
+ };
895
+ readonly tree: {
896
+ readonly label: "المخطط";
897
+ readonly search: "البحث في الجداول والأعمدة";
898
+ readonly searchPlaceholder: "ابحث في الجداول…";
899
+ readonly noMatches: "لا توجد جداول تطابق بحثك.";
900
+ readonly collapse: "طي الجدول";
901
+ readonly expand: "توسيع الجدول";
902
+ readonly unsaved: "تغيير غير محفوظ";
903
+ readonly excluded: "مستبعد";
904
+ };
905
+ readonly badge: {
906
+ readonly pk: "PK";
907
+ readonly fk: "FK";
908
+ readonly unique: "UNIQUE";
909
+ readonly pii: "بيانات شخصية";
910
+ readonly masked: "مخفي";
911
+ };
912
+ readonly unavailableTitle: "محرّر إعادة تعيين المخطط غير متوفر";
913
+ readonly unavailableBody: "لا يتضمّن هذا الإصدار محرّر إعادة التعيين بعد (09-T12). أعد تشغيل التوليد بعد وصوله لإعادة تعيين التسميات والأنواع والعلاقات.";
914
+ };
915
+ readonly publicApi: {
916
+ readonly error: "Something went wrong";
917
+ readonly scopes: {
918
+ readonly deleteTitle: "Delete this scope";
919
+ readonly deleteBody: "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.";
920
+ readonly deletePrompt: "Type the scope name to confirm";
921
+ readonly deleteConfirm: "Delete scope";
922
+ readonly issuesTitle: "This scope did not compile";
923
+ readonly title: "Scopes";
924
+ readonly subtitle: "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.";
925
+ readonly emptyTitle: "No scopes yet";
926
+ readonly emptyBody: "Create one below. It is checked against your live schema before it is saved.";
927
+ readonly keyCount: "{count, plural, =0 {no keys} one {# key} other {# keys}}";
928
+ readonly delete: "Delete";
929
+ readonly nameLabel: "Name";
930
+ readonly connectionLabel: "Connection ID";
931
+ readonly documentLabel: "Scope document";
932
+ readonly documentHint: "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else.";
933
+ readonly create: "Create scope";
934
+ readonly formLabel: "Create a scope";
935
+ };
936
+ readonly cancel: "Cancel";
937
+ readonly close: "Close";
938
+ readonly title: "Public API";
939
+ readonly subtitle: "Let your own customer- or staff-facing pages read this database, through a scope you define.";
940
+ readonly notRegistered: {
941
+ readonly title: "Not enabled on this server";
942
+ readonly body: "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all.";
943
+ };
944
+ readonly toggle: {
945
+ readonly label: "Serve the public API";
946
+ readonly hint: "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive.";
947
+ };
948
+ readonly origins: {
949
+ readonly label: "Origins allowed to call it";
950
+ };
951
+ readonly keys: {
952
+ readonly title: "Keys";
953
+ readonly subtitle: "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.";
954
+ readonly emptyTitle: "No keys yet";
955
+ readonly emptyBody: "Create a scope first, then mint a key for it.";
956
+ readonly reveal: "Show key";
957
+ readonly rotate: "Rotate";
958
+ readonly revoke: "Revoke";
959
+ readonly nameLabel: "Name";
960
+ readonly scopeLabel: "Scope";
961
+ readonly scopePlaceholder: "Choose a scope";
962
+ readonly create: "Create key";
963
+ readonly formLabel: "Create a key";
964
+ readonly scopeIsAuthTitle: "The scope is the only permission";
965
+ readonly scopeIsAuthBody: "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API.";
966
+ readonly appLabel: "اربطه بواجهة تطبيق مستضافة (اختياري)";
967
+ readonly appHint: "تقدّم واجهة العملاء في التطبيق هذا المفتاح بنفسها — وتدويره لا يحتاج إعادة بناء.";
968
+ readonly appNone: "غير مرتبط";
969
+ };
970
+ readonly status: {
971
+ readonly heading: "Status";
972
+ };
973
+ };
974
+ readonly hostedApps: {
975
+ readonly title: "التطبيقات المستضافة";
976
+ readonly subtitle: "واجهات التطبيقات التي يقدّمها هذا الخادم — أين تظهر كلٌّ منها، والنطاقات الموجّهة إليها.";
977
+ readonly error: "حدث خطأ ما";
978
+ readonly emptyTitle: "لا تُقدَّم أي واجهات تطبيقات";
979
+ readonly emptyBody: "وجّه ADMINIUM_SURFACES_DIR إلى مجلد يضم الواجهات المبنية — مجلد لكل تطبيق وجهة، وبداخله index.html — ثم أعد التشغيل. تُقدَّم بعدها تحت ‎/apps/‎ وتظهر هنا.";
980
+ readonly surfaces: {
981
+ readonly title: "الواجهات";
982
+ readonly subtitle: "واجهة الموظفين يمكن أن تندمج في الشريط الجانبي لهذه اللوحة أو تبقى مستقلة؛ وواجهة العملاء عامة وتقرأ عبر مفتاحها المرتبط.";
983
+ readonly staff: "الموظفون";
984
+ readonly customer: "العملاء";
985
+ readonly noNav: "الدمج الداخلي غير متاح — أعد بناء هذه الواجهة بأحدث أدوات البناء حتى تُصدر surface.json.";
986
+ readonly noKey: "لا يوجد مفتاح مرتبط — لا يمكن لهذه الواجهة قراءة البيانات حتى يُنشأ لها مفتاح.";
987
+ readonly mintLink: "أنشئ واحدًا من واجهة برمجة التطبيقات العامة";
988
+ readonly boundKey: "تقدّم المفتاح";
989
+ readonly placementLabel: "الموضع";
990
+ readonly placementInternal: "في الشريط الجانبي (مدمجة)";
991
+ readonly placementExternal: "خارجية (عنوانها الخاص فقط)";
992
+ readonly connectionLabel: "يقرأ من";
993
+ readonly connectionUnset: "أي اتصال يعمل";
994
+ };
995
+ readonly domains: {
996
+ readonly title: "النطاقات";
997
+ readonly subtitle: "وجّه DNS النطاق إلى الخادم الوسيط لديك، ومرّر ترويسة Host إلى Adminium، ثم أرفقه هنا — فيقدّم هذا المضيف الواجهة بدل هذه اللوحة. تبقى الشهادات على الخادم الوسيط.";
998
+ readonly issuesTitle: "رُفضت خريطة النطاقات";
999
+ readonly savedTitle: "تم الحفظ";
1000
+ readonly savedBody: "تسري الارتباطات خلال ثوانٍ قليلة. لا يستجيب المضيف إلا عندما يصل DNS الخاص به وخادمك الوسيط فعلًا إلى هذا الخادم.";
1001
+ readonly none: "لا توجد نطاقات مرفقة.";
1002
+ readonly hostLabel: "المضيف";
1003
+ readonly surfaceLabel: "الواجهة";
1004
+ readonly remove: "إزالة";
1005
+ readonly add: "إرفاق نطاق";
1006
+ readonly save: "حفظ النطاقات";
1007
+ readonly instanceLabel: "النسخة";
1008
+ readonly instanceOwn: "التطبيق نفسه";
1009
+ };
1010
+ readonly instances: {
1011
+ readonly title: "النسخ";
1012
+ readonly body: "قدّم التطبيق نفسه على أكثر من قاعدة بيانات. كل نسخة متاحة على /apps/<app>/<segment>/<side>/ ولا تقرأ سوى الاتصال الذي تحدّده لها.";
1013
+ readonly appLabel: "التطبيق";
1014
+ readonly slugLabel: "مقطع الرابط";
1015
+ readonly readsLabel: "يقرأ من";
1016
+ readonly add: "إضافة نسخة";
1017
+ readonly save: "حفظ النسخ";
1018
+ readonly remove: "إزالة";
1019
+ readonly empty: "لا توجد نسخ إضافية.";
1020
+ readonly failed: "تعذّر حفظ النسخ";
1021
+ };
1022
+ };
1023
+ readonly addOns: {
1024
+ readonly plan: {
1025
+ readonly blocked: "This cannot be installed here";
1026
+ readonly needsColumns: "This add-on needs columns you do not have";
1027
+ readonly needsColumnsBody: "Adminium will not add columns to tables you already own. Add them yourself, then install.";
1028
+ readonly willCreate: "This will create tables in your database";
1029
+ readonly willCreateBody: "Installing creates these tables. Uninstalling later leaves them, and their data, alone.";
1030
+ readonly noData: "This add-on reads and writes no tables of its own.";
1031
+ readonly reuse: "This add-on will use tables you already have:";
1032
+ };
1033
+ readonly consent: {
1034
+ readonly title: "Install {name}";
1035
+ readonly subtitle: "What this add-on will do, before it can do it.";
1036
+ readonly close: "Close";
1037
+ readonly loading: "Working out what this would do…";
1038
+ readonly hosts: "Attach to";
1039
+ readonly cancel: "Cancel";
1040
+ readonly confirm: "Install";
1041
+ };
1042
+ readonly connect: {
1043
+ readonly apiKey: "API key";
1044
+ readonly submit: "Connect";
1045
+ };
1046
+ readonly title: "Add-ons";
1047
+ readonly subtitle: "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.";
1048
+ readonly error: "Something went wrong";
1049
+ readonly browse: {
1050
+ readonly title: "Available";
1051
+ readonly online: "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.";
1052
+ readonly offline: "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.";
1053
+ readonly refresh: "Check for newer";
1054
+ readonly emptyTitle: "No add-ons available";
1055
+ readonly emptyBody: "This build shipped none, and the online catalogue is off.";
1056
+ readonly bundled: "Included";
1057
+ readonly upgrade: "v{version} available";
1058
+ readonly download: "Download";
1059
+ readonly install: "Install";
1060
+ readonly discard: "Discard";
1061
+ readonly upgradeAction: "Upgrade";
1062
+ readonly toggle: "Browse the online catalogue";
1063
+ };
1064
+ readonly installed: {
1065
+ readonly title: "Installed";
1066
+ readonly emptyTitle: "Nothing installed yet";
1067
+ readonly emptyBody: "Install an add-on above and it will appear here with its hosts and connection.";
1068
+ readonly connected: "Connected";
1069
+ readonly notConnected: "Not connected";
1070
+ readonly egress: "May contact: {hosts}";
1071
+ readonly on: "on";
1072
+ readonly off: "off";
1073
+ readonly disconnect: "Disconnect";
1074
+ readonly uninstall: "Uninstall";
1075
+ };
1076
+ readonly confirm: {
1077
+ readonly close: "Close";
1078
+ readonly disconnectTitle: "Disconnect this add-on";
1079
+ readonly uninstallTitle: "Uninstall this add-on";
1080
+ readonly discardTitle: "Discard this download";
1081
+ readonly disconnectBody: "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.";
1082
+ readonly uninstallBody: "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.";
1083
+ readonly discardBody: "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.";
1084
+ readonly cancel: "Cancel";
1085
+ readonly disconnect: "Disconnect";
1086
+ readonly uninstall: "Uninstall";
1087
+ readonly discard: "Discard";
1088
+ };
1089
+ readonly upgradeNote: "Upgrading keeps the hosts an add-on is attached to and the connection it already has.";
1090
+ readonly job: {
1091
+ readonly title: "Downloading";
1092
+ readonly body: "Fetching and verifying. Nothing is installed until you say so.";
1093
+ readonly failed: "The download did not finish. Nothing was installed.";
1094
+ };
1095
+ readonly veto: {
1096
+ readonly title: "This deployment cannot browse online";
1097
+ readonly body: "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself.";
1098
+ };
1099
+ readonly sideload: {
1100
+ readonly title: "Upload a package";
1101
+ readonly hint: "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.";
1102
+ readonly file: "Package file (.tgz)";
1103
+ readonly key: "Add-on key";
1104
+ readonly version: "Version";
1105
+ readonly sha: "Integrity (sha512-…)";
1106
+ readonly shaHint: "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.";
1107
+ readonly submit: "Upload";
1108
+ };
1109
+ };
1110
+ readonly pages: {
1111
+ readonly title: "الصفحات";
1112
+ readonly subtitle: "أضف صفحات تطبيقك وحرّرها ونظّمها، وكذلك ترتيب ظهورها في الشريط الجانبي.";
1113
+ readonly createButton: "صفحة جديدة";
1114
+ readonly loadFailed: {
1115
+ readonly title: "تعذّر تحميل الصفحات";
1116
+ readonly body: "تتطلب إدارة الصفحات صلاحية «إدارة الصفحات». اطلب من أحد المسؤولين منحها لأحد أدوارك.";
1117
+ };
1118
+ readonly tab: {
1119
+ readonly pages: "كل الصفحات";
1120
+ readonly sidebar: "ترتيب الشريط الجانبي";
1121
+ };
1122
+ readonly list: {
1123
+ readonly title: "الصفحات";
1124
+ readonly count: "{count, plural, zero {لا صفحات} one {صفحة واحدة} two {صفحتان} few {# صفحات} many {# صفحة} other {# صفحة}}";
1125
+ };
1126
+ readonly empty: {
1127
+ readonly title: "لا توجد صفحات بعد";
1128
+ readonly body: "اربط قاعدة بيانات لتوليد الصفحات تلقائيًا، أو أنشئ صفحة يدويًا.";
1129
+ };
1130
+ readonly status: {
1131
+ readonly live: "مفعّلة";
1132
+ readonly hidden: "مخفية";
1133
+ };
1134
+ readonly origin: {
1135
+ readonly generated: "مولّدة";
1136
+ readonly manifest: "إضافة";
1137
+ readonly llm: "المساعد";
1138
+ readonly system: "النظام";
1139
+ readonly user: "مخصّصة";
1140
+ };
1141
+ readonly row: {
1142
+ readonly menu: "إجراءات {title}";
1143
+ };
1144
+ readonly action: {
1145
+ readonly edit: "تحرير الصفحة";
1146
+ readonly duplicate: "تكرار";
1147
+ readonly hide: "إخفاء من الشريط الجانبي";
1148
+ readonly show: "إظهار في الشريط الجانبي";
1149
+ readonly delete: "حذف الصفحة";
1150
+ };
1151
+ readonly create: {
1152
+ readonly title: "صفحة جديدة";
1153
+ readonly failed: "تعذّر إنشاء الصفحة";
1154
+ readonly submit: "إنشاء الصفحة";
1155
+ readonly subtitle: "اختر ما تعرضه هذه الصفحة وكيف تبدو. المعاينة تتبع اختياراتك.";
1156
+ };
1157
+ readonly duplicate: {
1158
+ readonly title: "تكرار الصفحة";
1159
+ readonly failed: "تعذّر تكرار الصفحة";
1160
+ readonly submit: "تكرار";
1161
+ };
1162
+ readonly delete: {
1163
+ readonly title: "هل تريد حذف هذه الصفحة؟";
1164
+ readonly body: "لا يمكن التراجع عن ذلك. ستُحذف العروض المحفوظة والتخطيطات الشخصية لهذه الصفحة لدى الجميع.";
1165
+ readonly bodyGenerated: "أُنشئت هذه الصفحة عبر توليد المخطّط، لذا ستعود في المرة التالية التي تعيد فيها التوليد. وستُحذف العروض المحفوظة والتخطيطات الشخصية لدى الجميع.";
1166
+ readonly prompt: "اكتب {slug} للتأكيد";
1167
+ readonly confirm: "حذف الصفحة";
1168
+ };
1169
+ readonly field: {
1170
+ readonly title: "العنوان";
1171
+ readonly titleHint: "يظهر في الشريط الجانبي وفي ترويسة الصفحة.";
1172
+ readonly slug: "مسار الصفحة";
1173
+ readonly slugHint: "أحرف إنجليزية صغيرة وأرقام وشرطات. الجزء الأخير من المسار فقط — يُضاف الباقي تلقائيًا.";
1174
+ readonly slugTaken: "يستخدم هذا المسار صفحة أخرى بالفعل.";
1175
+ readonly slugWarning: "تغيير المسار يُبطل الروابط والإشارات المرجعية الحالية إلى هذه الصفحة.";
1176
+ readonly template: "القالب";
1177
+ readonly templateHint: "يحدّد ما يمكن أن تحتويه الصفحة. يمكنك تغييره لاحقًا.";
1178
+ readonly group: "مجموعة الشريط الجانبي";
1179
+ readonly groupHint: "القسم الذي تظهر فيه ضمن الشريط الجانبي.";
1180
+ readonly icon: "الأيقونة";
1181
+ readonly iconHint: "تظهر بجوار اسم الصفحة في الشريط الجانبي.";
1182
+ readonly visible: "إظهار في الشريط الجانبي";
1183
+ readonly visibleHint: "تبقى الصفحة المخفية متاحة عبر رابطها لكل من يملك الرابط.";
1184
+ readonly table: "الجدول";
1185
+ readonly tableCreateHint: "الجدول الذي تقرأ منه هذه الصفحة. اختر واحدًا الآن لتصبح الصفحة جاهزة للاستخدام، أو اتركه فارغًا لربطه لاحقًا.";
1186
+ readonly tableNone: "غير مرتبط";
1187
+ readonly tableNeedsConnection: "اختر مصدر بيانات أولًا.";
1188
+ readonly connection: "مصدر البيانات";
1189
+ readonly connectionNone: "بدون";
1190
+ readonly iconPick: "اختر أيقونة الصفحة";
1191
+ readonly padding: "حشو الصفحة";
1192
+ readonly width: "عرض المحتوى";
1193
+ readonly widthHint: "إلى أي مدى يتّسع عمود محتوى الصفحة على الشاشات الكبيرة.";
1194
+ };
1195
+ readonly editor: {
1196
+ readonly title: "تحرير الصفحة";
1197
+ readonly save: "حفظ التغييرات";
1198
+ readonly saveFailed: "تعذّر حفظ التغييرات";
1199
+ readonly openPage: "فتح الصفحة";
1200
+ readonly generated: {
1201
+ readonly title: "وُلِّدت هذه الصفحة من مخطّط قاعدة بياناتك";
1202
+ readonly body: "تُحفظ تعديلاتك عند إعادة التوليد، إذ تُعلَّم الصفحة بأنها محرَّرة وتُترك كما هي. أما الحذف فلا يدوم إلا حتى تُعيد عملية التوليد التالية إنشاءها.";
1203
+ };
1204
+ readonly contentUnavailable: "تعذّر تحميل محتوى الصفحة";
1205
+ readonly contentUnavailableBody: "لا يزال بإمكانك حفظ البيانات أعلاه.";
1206
+ readonly contentInvalid: "تعذّرت قراءة إعدادات هذه الصفحة";
1207
+ readonly contentInvalidBody: "كُتبت بإصدار أحدث، أو أنها تالفة. أعد توليد الصفحة أو احذفها.";
1208
+ readonly data: "البيانات";
1209
+ readonly schemaFailed: "تعذّر عرض الجداول";
1210
+ readonly schemaFailedBody: "قد لا يكون هذا الاتصال قد خضع للتحليل بعد. شغّل الفحص من الاستوديو ← اتصالات البيانات.";
1211
+ readonly notBindable: "هذا القالب غير مرتبط بجدول واحد";
1212
+ readonly notBindableBody: "يُبنى محتواه عنصرًا تلو الآخر. افتح الصفحة واستخدم «تحرير» لإضافتها.";
1213
+ readonly recompose: "ستُعاد بناء هذه الصفحة";
1214
+ readonly recomposeBody: "الحفظ يستبدل محتواها بتخطيط جديد للقالب والجدول أعلاه. ستفقد تعديلات الأعمدة وتغييرات العناصر في هذه الصفحة.";
1215
+ readonly missing: "لم تعد هذه الصفحة موجودة";
1216
+ readonly missingBody: "ربما حُذفت، أو أزالتها عملية توليد.";
1217
+ readonly details: "التفاصيل";
1218
+ readonly itemsPending: "احفظ التغيير أعلاه أولًا — سيُعاد بناء محتوى الصفحة من القالب والجدول الجديدين.";
1219
+ readonly columns: "الأعمدة";
1220
+ readonly appearance: "المظهر";
1221
+ };
1222
+ readonly sidebar: {
1223
+ readonly help: "أعد ترتيب الصفحات داخل المجموعة، أو انقل إحداها إلى مجموعة أخرى. تسري التغييرات على الجميع.";
1224
+ readonly discard: "تجاهل";
1225
+ readonly save: "حفظ الترتيب";
1226
+ readonly saveFailed: "تعذّر حفظ الترتيب الجديد";
1227
+ readonly emptyGroup: "لا توجد صفحات في هذه المجموعة.";
1228
+ readonly moveUp: "تحريك {title} لأعلى";
1229
+ readonly moveDown: "تحريك {title} لأسفل";
1230
+ readonly moveTo: "نقل {title} إلى مجموعة";
1231
+ readonly ungrouped: {
1232
+ readonly title: "بعض الصفحات لا تنتمي إلى أي مجموعة";
1233
+ readonly body: "تعمل هذه الصفحات عبر روابطها لكنها لا تظهر في الشريط الجانبي. افتح كلًا منها واختر لها مجموعة.";
1234
+ };
1235
+ };
1236
+ readonly columns: {
1237
+ readonly help: "اسحب لإعادة ترتيب الأعمدة، وغيّر أسماء عناوينها، واختر ما يظهر منها في الجدول.";
1238
+ readonly empty: "لا توجد أعمدة بعد — أضفها أدناه.";
1239
+ readonly pk: "مفتاح";
1240
+ readonly pii: "بيانات شخصية";
1241
+ readonly header: "عنوان العمود {name}";
1242
+ readonly shown: "ظاهر";
1243
+ readonly toggle: "إظهار {name} في الجدول";
1244
+ readonly dragHandle: "إعادة ترتيب {name}";
1245
+ readonly remove: "إزالة {name}";
1246
+ readonly addOpen: "إضافة عمود";
1247
+ readonly addTitle: "إضافة عمود";
1248
+ readonly addSearch: "البحث في الأعمدة…";
1249
+ readonly addFromTable: "من {table}";
1250
+ readonly addFromLinked: "من الجداول المرتبطة";
1251
+ readonly addLinkedHelp: "اعرض قيمة من الجدول الذي يشير إليه عمود الربط.";
1252
+ readonly addVia: "عبر {column}";
1253
+ readonly addNoMatches: "لا توجد أعمدة تطابق ”{query}“.";
1254
+ readonly followColumn: "تتبّع {name}";
1255
+ readonly addLinkedFrom: "جداول ترتبط بهذا الجدول";
1256
+ readonly addLinkedFromHelp: "أضِف عدد الصفوف التي تشير إلى كل سجل.";
1257
+ readonly countBadge: "العدد";
1258
+ readonly lookupBadge: "مرتبط";
1259
+ readonly lookupBack: "رجوع";
1260
+ readonly lookupBrowse: "اختر ما يُعرض من {table}";
1261
+ readonly lookupBroken: "تعذّر تحليل هذا الارتباط";
1262
+ readonly lookupBrokenBody: "تغيّر المخطط أثناء التصفح. ابدأ الارتباط من جديد.";
1263
+ readonly schemaUnavailable: "تعذّر سرد أعمدة قاعدة البيانات، لذا لا يمكن إضافة الأعمدة هنا.";
1264
+ readonly none: {
1265
+ readonly title: "لا تحتوي هذه الصفحة على أعمدة بعد";
1266
+ readonly body: "تُقرأ الأعمدة من الجدول عند توليد الصفحة. اربط هذه الصفحة بجدول ثم أعد التوليد لملئها.";
1267
+ };
1268
+ };
1269
+ readonly icon: {
1270
+ readonly none: "اختر أيقونة";
1271
+ readonly search: "ابحث عن أيقونة";
1272
+ readonly noMatches: "لا توجد أيقونات تطابق هذا البحث.";
1273
+ };
1274
+ readonly preview: {
1275
+ readonly untitled: "صفحة بلا عنوان";
1276
+ readonly note: "رسم توضيحي للتخطيط، لا لبياناتك. تمتلئ الصفحة الحقيقية بعد الحفظ.";
1277
+ };
1278
+ readonly padding: {
1279
+ readonly default: "الافتراضي لهذا القالب";
1280
+ readonly none: "بدون";
1281
+ readonly standard: "قياسي (28 × 24)";
1282
+ readonly custom: "مخصص…";
1283
+ readonly x: "الجانبان (بكسل)";
1284
+ readonly y: "أعلى وأسفل (بكسل)";
1285
+ };
1286
+ readonly width: {
1287
+ readonly default: "الافتراضي لهذا القالب";
1288
+ readonly narrow: "ضيّق (720 بكسل)";
1289
+ readonly content: "محتوى (900 بكسل)";
1290
+ readonly page: "صفحة (1080 بكسل)";
1291
+ readonly dash: "لوحة معلومات (1320 بكسل)";
1292
+ readonly wide: "عريض (1800 بكسل)";
1293
+ readonly full: "عرض كامل (بلا حد)";
1294
+ };
1295
+ };
16
1296
  };
17
1297
  export default _default;
18
1298
  //# sourceMappingURL=studio.d.ts.map