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