@object-ui/i18n 17.3.0 → 17.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1295 -1
- package/README.md +0 -13
- package/dist/index.d.ts +3 -1
- package/dist/index.js +11 -1
- package/dist/locales/ar.d.ts +466 -107
- package/dist/locales/ar.js +559 -153
- package/dist/locales/de.d.ts +466 -107
- package/dist/locales/de.js +574 -175
- package/dist/locales/en.d.ts +502 -143
- package/dist/locales/en.js +678 -145
- package/dist/locales/es.d.ts +466 -107
- package/dist/locales/es.js +553 -155
- package/dist/locales/fr.d.ts +466 -107
- package/dist/locales/fr.js +553 -152
- package/dist/locales/index.d.ts +4734 -1144
- package/dist/locales/ja.d.ts +466 -107
- package/dist/locales/ja.js +545 -146
- package/dist/locales/ko.d.ts +466 -107
- package/dist/locales/ko.js +551 -153
- package/dist/locales/pt.d.ts +466 -107
- package/dist/locales/pt.js +552 -154
- package/dist/locales/ru.d.ts +466 -107
- package/dist/locales/ru.js +563 -153
- package/dist/locales/zh.d.ts +501 -142
- package/dist/locales/zh.js +542 -142
- package/dist/pickLocalized.d.ts +21 -0
- package/dist/pickLocalized.js +40 -7
- package/dist/provider.d.ts +83 -1
- package/dist/provider.js +303 -29
- package/dist/useDisplayLocale.d.ts +49 -0
- package/dist/useDisplayLocale.js +55 -0
- package/dist/useObjectLabel.d.ts +8 -2
- package/dist/useObjectLabel.js +28 -8
- package/dist/useSafeTranslation.js +50 -2
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/number-display.d.ts +32 -0
- package/dist/utils/number-display.js +32 -0
- package/dist/utils/spec-formatters.d.ts +39 -13
- package/dist/utils/spec-formatters.js +3 -3
- package/package.json +4 -3
package/dist/locales/ar.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
const ar = {
|
|
2
|
+
// objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
|
|
3
|
+
// Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
|
|
4
|
+
// BOTH parties because the audit trail attributes the work to the impersonated
|
|
5
|
+
// user, and the exit states its own failure rather than appearing to succeed.
|
|
6
|
+
impersonation: {
|
|
7
|
+
banner: {
|
|
8
|
+
message: 'أنت تنتحل هوية {{user}} — يُسجَّل كل إجراء باسمه.',
|
|
9
|
+
startedBy: 'بدأها المسؤول {{admin}}.',
|
|
10
|
+
stop: 'إنهاء انتحال الهوية',
|
|
11
|
+
stopping: 'جارٍ الإنهاء…',
|
|
12
|
+
stopFailed: 'تعذّر إنهاء انتحال الهوية: {{reason}}',
|
|
13
|
+
notRestored: 'قبل الخادم الطلب لكنه لم يستعد جلسة المسؤول — ما زلت تنتحل هوية {{user}}. سجّل الخروج ثم الدخول مرة أخرى لإنهائها.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
2
16
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
17
|
capability: {
|
|
4
18
|
label: {
|
|
@@ -16,6 +30,30 @@ const ar = {
|
|
|
16
30
|
other: 'أخرى',
|
|
17
31
|
},
|
|
18
32
|
},
|
|
33
|
+
// objectui#3546 slice six — ملخص للقراءة فقط لأوجه التخويل الستة في
|
|
34
|
+
// PermissionFacetLink، مع رابط التصميم في Studio.
|
|
35
|
+
//
|
|
36
|
+
// صيغة العدد تتبع نمط الحزمة نفسه: «{{count}} مفرد(جمع)» كما في
|
|
37
|
+
// appDesigner.objectManager.fieldCount و table.modified. المفتاح الأساسي هو
|
|
38
|
+
// ما تلجأ إليه فئات two/few/many/zero غير المعرّفة، فيظل النص عربيًا.
|
|
39
|
+
// لا نعكس سهم روابط الإجراء: يبقى كما في en، مثل marketplace.browseLink.
|
|
40
|
+
perm: {
|
|
41
|
+
facet: {
|
|
42
|
+
none: "لا شيء",
|
|
43
|
+
more: "+{{count}} المزيد",
|
|
44
|
+
objects: "{{count}} كائن(كائنات)",
|
|
45
|
+
objects_one: "{{count}} كائن",
|
|
46
|
+
fields: "{{count}} قاعدة(قواعد) حقول",
|
|
47
|
+
fields_one: "{{count}} قاعدة حقول",
|
|
48
|
+
rls: "{{count}} سياسة(سياسات) RLS",
|
|
49
|
+
rls_one: "{{count}} سياسة RLS",
|
|
50
|
+
tabs: "{{count}} قاعدة(قواعد) تبويب",
|
|
51
|
+
tabs_one: "{{count}} قاعدة تبويب",
|
|
52
|
+
adminScope: "تم تكوين الإدارة المفوَّضة",
|
|
53
|
+
designInStudio: "التصميم في Studio →",
|
|
54
|
+
designInStudioHint: "التصميم في Studio",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
19
57
|
lookup: {
|
|
20
58
|
recentlyUsed: 'المستخدمة مؤخرًا',
|
|
21
59
|
allResults: 'كل النتائج',
|
|
@@ -46,13 +84,12 @@ const ar = {
|
|
|
46
84
|
common: {
|
|
47
85
|
addToFavorites: "إضافة إلى المفضلة",
|
|
48
86
|
removeFromFavorites: "إزالة من المفضلة",
|
|
49
|
-
loading: "جاري
|
|
87
|
+
loading: "جاري التحميل…",
|
|
50
88
|
save: "حفظ",
|
|
51
89
|
cancel: "إلغاء",
|
|
52
90
|
delete: "حذف",
|
|
53
91
|
edit: "تعديل",
|
|
54
92
|
create: "إنشاء",
|
|
55
|
-
search: "بحث",
|
|
56
93
|
filter: "تصفية",
|
|
57
94
|
reset: "إعادة تعيين",
|
|
58
95
|
confirm: "تأكيد",
|
|
@@ -76,7 +113,7 @@ const ar = {
|
|
|
76
113
|
required: "مطلوب",
|
|
77
114
|
optional: "اختياري",
|
|
78
115
|
selectOption: "اختر خياراً",
|
|
79
|
-
select: "
|
|
116
|
+
select: "اختر…",
|
|
80
117
|
openChat: "فتح المحادثة",
|
|
81
118
|
closeChat: "إغلاق المحادثة",
|
|
82
119
|
closePanel: "إغلاق اللوحة",
|
|
@@ -85,6 +122,11 @@ const ar = {
|
|
|
85
122
|
itemCountOne: "{{count}} عنصر",
|
|
86
123
|
toggleSidebar: "تبديل الشريط الجانبي",
|
|
87
124
|
package: "الحزمة",
|
|
125
|
+
done: "تم",
|
|
126
|
+
editInStudio: "التعديل في Studio",
|
|
127
|
+
record: "سجل",
|
|
128
|
+
retry: "إعادة المحاولة",
|
|
129
|
+
printDialogHint: "يفتح مربع حوار الطباعة في المتصفح (ليس تصديرًا إلى PDF)",
|
|
88
130
|
},
|
|
89
131
|
actions: {
|
|
90
132
|
decisionOutput: {
|
|
@@ -116,6 +158,9 @@ const ar = {
|
|
|
116
158
|
submitFailed: "تعذّر الحفظ. يرجى المحاولة مرة أخرى.",
|
|
117
159
|
discardTitle: "تجاهل التغييرات؟",
|
|
118
160
|
discardMessage: "لديك تغييرات غير محفوظة. إذا أغلقت هذا النموذج الآن، ستفقد تعديلاتك.",
|
|
161
|
+
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
162
|
+
// description, used when the form declares no `description` of its own.
|
|
163
|
+
dialogDescriptionFallback: "املأ حقول النموذج ثم أرسل أو ألغِ.",
|
|
119
164
|
keepEditing: "متابعة التحرير",
|
|
120
165
|
discard: "تجاهل",
|
|
121
166
|
conflictTitle: "تعارض في الحفظ",
|
|
@@ -184,7 +229,7 @@ const ar = {
|
|
|
184
229
|
richText: {
|
|
185
230
|
format: "التنسيق: {{format}}",
|
|
186
231
|
basicEditorHint: "محرر النص الغني (أساسي)",
|
|
187
|
-
placeholder: "اكتب
|
|
232
|
+
placeholder: "اكتب شيئاً…",
|
|
188
233
|
},
|
|
189
234
|
options: {
|
|
190
235
|
empty: "لا توجد خيارات متاحة",
|
|
@@ -250,7 +295,7 @@ const ar = {
|
|
|
250
295
|
saveAll: "حفظ الكل ({{count}})",
|
|
251
296
|
addRecord: "إضافة سجل",
|
|
252
297
|
open: "فتح",
|
|
253
|
-
search: "
|
|
298
|
+
search: "بحث…",
|
|
254
299
|
modified: "{{count}} صف(صفوف) معدّل(ة)",
|
|
255
300
|
saveFailed: 'فشل الحفظ',
|
|
256
301
|
selected: "{{count}} محدد(ة)",
|
|
@@ -294,7 +339,7 @@ const ar = {
|
|
|
294
339
|
delete: "حذف",
|
|
295
340
|
export: "تصدير",
|
|
296
341
|
exportAs: "تصدير كـ {{format}}",
|
|
297
|
-
loading: "جاري تحميل
|
|
342
|
+
loading: "جاري تحميل الشبكة…",
|
|
298
343
|
errorLoading: "خطأ في تحميل الشبكة",
|
|
299
344
|
pullToRefresh: "اسحب للتحديث",
|
|
300
345
|
refreshing: "جاري التحديث…",
|
|
@@ -305,6 +350,22 @@ const ar = {
|
|
|
305
350
|
yes: "نعم",
|
|
306
351
|
no: "لا",
|
|
307
352
|
systemFields: "النظام",
|
|
353
|
+
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
354
|
+
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
355
|
+
// pack controls its own separator and word order.
|
|
356
|
+
summary: {
|
|
357
|
+
pattern: "{{label}}: {{value}}",
|
|
358
|
+
count: "العدد",
|
|
359
|
+
countEmpty: "فارغة",
|
|
360
|
+
countFilled: "ممتلئة",
|
|
361
|
+
countUnique: "فريدة",
|
|
362
|
+
percentEmpty: "فارغة",
|
|
363
|
+
percentFilled: "ممتلئة",
|
|
364
|
+
sum: "المجموع",
|
|
365
|
+
avg: "المتوسط",
|
|
366
|
+
min: "الأدنى",
|
|
367
|
+
max: "الأعلى",
|
|
368
|
+
},
|
|
308
369
|
toolbar: {
|
|
309
370
|
densityMode: "الكثافة",
|
|
310
371
|
densityCompact: "مضغوط",
|
|
@@ -418,12 +479,12 @@ const ar = {
|
|
|
418
479
|
templateName: "اسم القالب",
|
|
419
480
|
save: "حفظ",
|
|
420
481
|
deleteTemplate: "حذف القالب",
|
|
421
|
-
savedMapping: '
|
|
422
|
-
chooseSavedMapping: '
|
|
423
|
-
manualMapping: '—
|
|
424
|
-
transform: '
|
|
425
|
-
savedMappingHint: '
|
|
426
|
-
savedMappingPreviewNote: '
|
|
482
|
+
savedMapping: 'التعيين المحفوظ:',
|
|
483
|
+
chooseSavedMapping: 'اختر تعييناً محفوظاً…',
|
|
484
|
+
manualMapping: '— تعيين الأعمدة يدويًا —',
|
|
485
|
+
transform: 'التحويل',
|
|
486
|
+
savedMappingHint: 'يطبّق التعيين "{{name}}" إعادة التسمية + التحويلات + تحويل الأنواع على الخادم. تعيين الأعمدة للقراءة فقط.',
|
|
487
|
+
savedMappingPreviewNote: 'تعرض المعاينة الأعمدة المصدر لديك؛ وعند الاستيراد يطبّق التعيين "{{name}}" إعادة التسمية والتحويلات وتحويل الأنواع على الخادم.',
|
|
427
488
|
csvColumn: "العمود",
|
|
428
489
|
mapsTo: "يُعيَّن إلى",
|
|
429
490
|
typeMismatch: "يبدو أنه {{type}}",
|
|
@@ -483,6 +544,8 @@ const ar = {
|
|
|
483
544
|
loadErrorUnauthorizedMessage: "انتهت صلاحية جلستك أو تم تسجيل خروجك. سجّل الدخول مرة أخرى لعرض هذه السجلات.",
|
|
484
545
|
loadErrorRejectedTitle: "تم رفض استعلام طريقة العرض هذه",
|
|
485
546
|
loadErrorRejectedMessage: "تعذّر على الخادم معالجة عامل التصفية أو خيارات الاستعلام لطريقة العرض هذه. مسح عوامل التصفية يحل المشكلة عادةً؛ وإذا كانت طريقة العرض محفوظة بهذا الشكل، فيجب على المسؤول تصحيحها.",
|
|
547
|
+
loadErrorApiDisabledTitle: "هذا الكائن غير متاح عبر واجهة API",
|
|
548
|
+
loadErrorApiDisabledMessage: "لا يمكن لهذه الصفحة تحميل سجلاتها لأن الكائن غير معروض عبر واجهة API. هذا إعداد خاص بالكائن نفسه وليس صلاحية — يجب على المسؤول تفعيل الوصول عبر API حتى تعمل هذه الصفحة.",
|
|
486
549
|
retry: "إعادة المحاولة",
|
|
487
550
|
managedBy: {
|
|
488
551
|
system: {
|
|
@@ -507,7 +570,7 @@ const ar = {
|
|
|
507
570
|
},
|
|
508
571
|
},
|
|
509
572
|
refresh: "تحديث",
|
|
510
|
-
loading:
|
|
573
|
+
loading: "جارٍ تحميل السجلات…",
|
|
511
574
|
recordCount: "{{count}} سجلات",
|
|
512
575
|
recordCountOne: "{{count}} سجل",
|
|
513
576
|
addRecord: "إضافة سجل",
|
|
@@ -519,7 +582,8 @@ const ar = {
|
|
|
519
582
|
sort: "ترتيب",
|
|
520
583
|
sortRecords: "ترتيب السجلات",
|
|
521
584
|
sortByIdSuffix: "(حسب المعرّف)",
|
|
522
|
-
sortRelationalHint: "الأعمدة التي تشير إلى سجل آخر غير مدرجة هنا: يمكن ترتيبها حسب المعرّف المخزَّن فقط، وليس حسب الاسم الظاهر في الخلية. للترتيب حسب ذلك الاسم،
|
|
585
|
+
sortRelationalHint: "الأعمدة التي تشير إلى سجل آخر غير مدرجة هنا: يمكن ترتيبها حسب المعرّف المخزَّن فقط، وليس حسب الاسم الظاهر في الخلية. للترتيب حسب ذلك الاسم، أضِف الاسم إلى هذا الكائن نفسه (إلغاء التطبيع) كحقل مخزَّن يُكتب عند تغيّر المصدر، ثم رتّب حسبه. وليس حقل صيغة: فهو افتراضي، ولا يُخزَّن له أي عمود، ويرفض الخادم الترتيب حسبه.",
|
|
586
|
+
resetSortToDefault: "إعادة التعيين إلى الترتيب الافتراضي للعرض",
|
|
523
587
|
group: "تجميع",
|
|
524
588
|
groupBy: "تجميع حسب",
|
|
525
589
|
export: "تصدير",
|
|
@@ -577,13 +641,16 @@ const ar = {
|
|
|
577
641
|
},
|
|
578
642
|
kanban: {
|
|
579
643
|
uncategorized: "غير مصنّف",
|
|
644
|
+
columns: "أعمدة",
|
|
580
645
|
addCard: "إضافة بطاقة",
|
|
581
646
|
addColumn: "إضافة عمود",
|
|
582
647
|
moveCard: "نقل بطاقة",
|
|
583
648
|
deleteCard: "حذف بطاقة",
|
|
584
649
|
deleteColumn: "حذف عمود",
|
|
585
650
|
noCards: "لا بطاقات",
|
|
586
|
-
cardTitlePlaceholder: "أدخل عنوان
|
|
651
|
+
cardTitlePlaceholder: "أدخل عنوان البطاقة…",
|
|
652
|
+
requiredFieldsTitle: "أكمل الحقول المطلوبة",
|
|
653
|
+
requiredFieldsDescription: "يجعل هذا النقل الحقول أدناه مطلوبة. أكملها للمتابعة.",
|
|
587
654
|
},
|
|
588
655
|
timeline: {
|
|
589
656
|
bucket: {
|
|
@@ -596,6 +663,13 @@ const ar = {
|
|
|
596
663
|
noDate: "بدون تاريخ",
|
|
597
664
|
unassigned: "غير معين",
|
|
598
665
|
},
|
|
666
|
+
scale: {
|
|
667
|
+
week: "الأسبوع {{n}}",
|
|
668
|
+
quarter: "الربع {{quarter}} {{year}}",
|
|
669
|
+
},
|
|
670
|
+
gantt: {
|
|
671
|
+
rowLabel: "العناصر",
|
|
672
|
+
},
|
|
599
673
|
},
|
|
600
674
|
gantt: {
|
|
601
675
|
viewMode: {
|
|
@@ -642,6 +716,18 @@ const ar = {
|
|
|
642
716
|
ff: "نهاية → نهاية",
|
|
643
717
|
sf: "بداية → نهاية",
|
|
644
718
|
},
|
|
719
|
+
linkEnd: {
|
|
720
|
+
start: "بداية",
|
|
721
|
+
end: "نهاية",
|
|
722
|
+
},
|
|
723
|
+
link: {
|
|
724
|
+
rejected: {
|
|
725
|
+
self: "لا يمكن أن تعتمد المهمة على نفسها.",
|
|
726
|
+
locked: "هذا الصف مقفل ولا يمكنه استقبال تبعية جديدة.",
|
|
727
|
+
group: "لا يمكن لصف التلخيص استقبال تبعية — اربط إحدى مهامه بدلاً من ذلك.",
|
|
728
|
+
cycle: "هذا الرابط سينشئ تبعية دائرية.",
|
|
729
|
+
},
|
|
730
|
+
},
|
|
645
731
|
conflict: {
|
|
646
732
|
title: "تعارض في الجدولة",
|
|
647
733
|
body: "يتعارض هذا النقل مع قيود التبعية. هل تريد إعادة جدولة {{count}} من المهام المتأثرة تلقائيًا؟",
|
|
@@ -650,8 +736,8 @@ const ar = {
|
|
|
650
736
|
},
|
|
651
737
|
autoScheduleDlg: {
|
|
652
738
|
title: "الجدولة التلقائية",
|
|
653
|
-
body: "هل تريد تأخير {count} من المهام لتلبية روابط التبعية؟",
|
|
654
|
-
skipped: "{count} من المهام المقفلة تخالف الروابط أيضًا وقد تم تخطيها.",
|
|
739
|
+
body: "هل تريد تأخير {{count}} من المهام لتلبية روابط التبعية؟",
|
|
740
|
+
skipped: "{{count}} من المهام المقفلة تخالف الروابط أيضًا وقد تم تخطيها.",
|
|
655
741
|
confirm: "تطبيق",
|
|
656
742
|
cancel: "إلغاء",
|
|
657
743
|
none: "جميع التبعيات مستوفاة — لا شيء لإعادة جدولته.",
|
|
@@ -688,6 +774,7 @@ const ar = {
|
|
|
688
774
|
exportPng: "تصدير بصيغة PNG",
|
|
689
775
|
exportPdf: "تصدير PDF",
|
|
690
776
|
saveLayout: "حفظ التخطيط",
|
|
777
|
+
refresh: "تحديث",
|
|
691
778
|
undo: "تراجع",
|
|
692
779
|
redo: "إعادة",
|
|
693
780
|
prevPeriod: "الفترة السابقة",
|
|
@@ -728,11 +815,11 @@ const ar = {
|
|
|
728
815
|
defaultBadge: "افتراضي",
|
|
729
816
|
tabActionsFor: "إجراءات العرض لـ {{name}}",
|
|
730
817
|
readonlyAriaLabel: "عرض للقراءة فقط",
|
|
731
|
-
readonlyTooltip: "عرض النظام —
|
|
818
|
+
readonlyTooltip: "عرض النظام — معرَّف في الكود، للقراءة فقط.",
|
|
732
819
|
},
|
|
733
820
|
designer: {
|
|
734
|
-
undo:
|
|
735
|
-
redo:
|
|
821
|
+
undo: "تراجع",
|
|
822
|
+
redo: "إعادة",
|
|
736
823
|
},
|
|
737
824
|
detail: {
|
|
738
825
|
editInlineHint: "انقر نقرًا مزدوجًا للتحرير",
|
|
@@ -774,13 +861,15 @@ const ar = {
|
|
|
774
861
|
relatedRecords: "{{count}} سجلات",
|
|
775
862
|
relatedRecordOne: "{{count}} سجل",
|
|
776
863
|
noRelatedRecords: "لا توجد سجلات ذات صلة",
|
|
777
|
-
loading: "جاري
|
|
864
|
+
loading: "جاري التحميل…",
|
|
778
865
|
copyToClipboard: "نسخ إلى الحافظة",
|
|
779
866
|
copied: "تم النسخ!",
|
|
780
867
|
deleteConfirmation: "هل أنت متأكد أنك تريد حذف هذا السجل؟",
|
|
868
|
+
deleted: "تم حذف السجل",
|
|
781
869
|
editRecord: "تحرير السجل",
|
|
782
870
|
viewAll: "عرض الكل",
|
|
783
871
|
new: "جديد",
|
|
872
|
+
add: "إضافة",
|
|
784
873
|
emptyValue: "—",
|
|
785
874
|
comments: "التعليقات",
|
|
786
875
|
searchComments: "البحث في التعليقات…",
|
|
@@ -845,6 +934,7 @@ const ar = {
|
|
|
845
934
|
loadMore: "تحميل المزيد",
|
|
846
935
|
edited: "(معدل)",
|
|
847
936
|
via: "عبر {{source}}",
|
|
937
|
+
viewSource: "عرض المصدر",
|
|
848
938
|
replyCount: "{{count}} رد",
|
|
849
939
|
replyCountPlural: "{{count}} ردود",
|
|
850
940
|
replyPlaceholder: "رد…",
|
|
@@ -886,9 +976,11 @@ const ar = {
|
|
|
886
976
|
concurrentUpdateReload: "تحميل النسخة الحالية",
|
|
887
977
|
concurrentUpdateOverwrite: "الكتابة فوقه على أي حال",
|
|
888
978
|
concurrentUpdateCancel: "إلغاء",
|
|
979
|
+
concurrentUpdateRecordLabel: "هذا السجل",
|
|
889
980
|
openInNewTab: "فتح في علامة تبويب جديدة",
|
|
890
981
|
activity: "النشاط",
|
|
891
982
|
history: "السجل",
|
|
983
|
+
historyEmpty: "لا يوجد سجل بعد",
|
|
892
984
|
editRow: "تعديل",
|
|
893
985
|
deleteRow: "حذف",
|
|
894
986
|
deleteRowConfirmation: "حذف هذا السجل؟",
|
|
@@ -898,10 +990,16 @@ const ar = {
|
|
|
898
990
|
nextPage: "التالي",
|
|
899
991
|
pageOf: "صفحة {{current}} من {{total}}",
|
|
900
992
|
sortBy: "ترتيب حسب",
|
|
901
|
-
filterPlaceholder: "
|
|
993
|
+
filterPlaceholder: "تصفية…",
|
|
902
994
|
highlightFields: "الحقول الرئيسية",
|
|
903
995
|
createdBy: "أنشأه",
|
|
904
996
|
updatedBy: "حدّثه",
|
|
997
|
+
// objectui#3863 — base key, and in ar this is the slot users actually hit: `zero`,
|
|
998
|
+
// `two` (2), `few` (3-10) and `many` (11-99) are unenumerated, so before this key
|
|
999
|
+
// those counts rendered ENGLISH. It uses the «{{count}} مفرد(جمع)» marker this
|
|
1000
|
+
// pack writes throughout (perm.facet.objects, and the sibling toggle
|
|
1001
|
+
// showEmptyFields below), which reads correctly for every count.
|
|
1002
|
+
showEmptyRelated: "+ {{count}} فارغ(فارغة)",
|
|
905
1003
|
showEmptyRelated_one: "+ {{count}} فارغ",
|
|
906
1004
|
showEmptyRelated_other: "+ {{count}} فارغة",
|
|
907
1005
|
copyEmail: "نسخ البريد الإلكتروني",
|
|
@@ -913,7 +1011,8 @@ const ar = {
|
|
|
913
1011
|
},
|
|
914
1012
|
chart: {
|
|
915
1013
|
noData: "لا تتوفر بيانات للرسم البياني",
|
|
916
|
-
loading: "جاري تحميل الرسم
|
|
1014
|
+
loading: "جاري تحميل الرسم البياني…",
|
|
1015
|
+
nullCategory: "(غير محدد)",
|
|
917
1016
|
},
|
|
918
1017
|
map: {
|
|
919
1018
|
searchLocations: "البحث عن المواقع…",
|
|
@@ -935,8 +1034,8 @@ const ar = {
|
|
|
935
1034
|
properties: "الخصائص",
|
|
936
1035
|
connections: "الاتصالات",
|
|
937
1036
|
quickConnect: "اتصال سريع",
|
|
938
|
-
fromPlaceholder: "
|
|
939
|
-
toPlaceholder: "
|
|
1037
|
+
fromPlaceholder: "من…",
|
|
1038
|
+
toPlaceholder: "إلى…",
|
|
940
1039
|
connect: "ربط",
|
|
941
1040
|
label: "التسمية",
|
|
942
1041
|
type: "النوع",
|
|
@@ -984,6 +1083,7 @@ const ar = {
|
|
|
984
1083
|
},
|
|
985
1084
|
dashboard: {
|
|
986
1085
|
noRows: "لا توجد صفوف",
|
|
1086
|
+
loading: "جارٍ التحميل…",
|
|
987
1087
|
pickMeasures: "اختر المقاييس (القيم) لأداة مجموعة البيانات هذه.",
|
|
988
1088
|
datasetUnsupported: "مصدر البيانات هذا لا يدعم استعلامات مجموعات البيانات.",
|
|
989
1089
|
details: "التفاصيل",
|
|
@@ -1077,7 +1177,7 @@ const ar = {
|
|
|
1077
1177
|
faviconUrl: "Favicon URL",
|
|
1078
1178
|
preview: "معاينة",
|
|
1079
1179
|
complete: "إكمال",
|
|
1080
|
-
snakeCaseHint: "
|
|
1180
|
+
snakeCaseHint: "يجب أن يكون بصيغة snake_case (مثل my_app)",
|
|
1081
1181
|
modeEdit: "تعديل",
|
|
1082
1182
|
modePreview: "معاينة",
|
|
1083
1183
|
modeCode: "كود",
|
|
@@ -1241,6 +1341,7 @@ const ar = {
|
|
|
1241
1341
|
},
|
|
1242
1342
|
},
|
|
1243
1343
|
console: {
|
|
1344
|
+
saveAdvisoryTitle: "تم الحفظ — أنتج فحص التأليف {{count}} ملاحظة إرشادية",
|
|
1244
1345
|
settingsHub: {
|
|
1245
1346
|
title: "الإعدادات",
|
|
1246
1347
|
subtitle: "اضبط مساحة العمل والتكاملات وأعلام الميزات.",
|
|
@@ -1307,7 +1408,7 @@ const ar = {
|
|
|
1307
1408
|
shareTitle: "مشاركة هذه المحادثة",
|
|
1308
1409
|
shareDisabledTitle: "ابدأ المحادثة لتفعيل المشاركة",
|
|
1309
1410
|
newChat: "جديدة",
|
|
1310
|
-
searchChats: "البحث في
|
|
1411
|
+
searchChats: "البحث في المحادثات…",
|
|
1311
1412
|
noChatsYet: "لا توجد محادثات بعد",
|
|
1312
1413
|
noChatsDescription: "ابدأ محادثة جديدة لتظهر هنا.",
|
|
1313
1414
|
noMatchingChats: "لا توجد محادثات مطابقة.",
|
|
@@ -1316,18 +1417,18 @@ const ar = {
|
|
|
1316
1417
|
deleteConversation: "حذف المحادثة",
|
|
1317
1418
|
saveRename: "حفظ الاسم",
|
|
1318
1419
|
cancelRename: "إلغاء إعادة التسمية",
|
|
1319
|
-
loadingHistory: "جارٍ تحميل سجل
|
|
1420
|
+
loadingHistory: "جارٍ تحميل سجل المحادثة…",
|
|
1320
1421
|
conversationReady: "المحادثة جاهزة",
|
|
1321
1422
|
preparingConversation: "جارٍ تجهيز محادثة جديدة",
|
|
1322
1423
|
offlineDemoMode: "وضع العرض دون اتصال — قائمة الوكلاء غير متاحة",
|
|
1323
1424
|
sendFailedRateLimited: "أنت ترسل الرسائل بسرعة كبيرة. رسالتك محفوظة بالأسفل — انتظر لحظة ثم أعد المحاولة.",
|
|
1324
1425
|
sendFailedGeneric: "تعذّر إرسال رسالتك. وهي محفوظة بالأسفل — يرجى إعادة المحاولة.",
|
|
1325
|
-
askAgent: "اسأل {{agent}}
|
|
1426
|
+
askAgent: "اسأل {{agent}}…",
|
|
1326
1427
|
assistant: "المساعد",
|
|
1327
1428
|
liveCanvas: "معاينة حية — {{app}} (مسودة)",
|
|
1328
1429
|
liveCanvasUnlisted: "تطبيق حي — {{app}} (غير مُدرج حتى النشر)",
|
|
1329
|
-
loadingAgents: "جارٍ تحميل
|
|
1330
|
-
askAnything: "اسأل عن أي
|
|
1430
|
+
loadingAgents: "جارٍ تحميل الوكلاء…",
|
|
1431
|
+
askAnything: "اسأل عن أي شيء…",
|
|
1331
1432
|
emptyTitle: "ابدأ محادثة",
|
|
1332
1433
|
emptyDescription: "اسأل عن أي شيء — يمكن للمساعد الاطلاع على سياق تطبيقك الحالي.",
|
|
1333
1434
|
switchAssistant: "تبديل المساعد",
|
|
@@ -1430,9 +1531,60 @@ const ar = {
|
|
|
1430
1531
|
createSeed: "إنشاء بيانات تجريبية",
|
|
1431
1532
|
createPackage: "إنشاء حزمة تطبيق",
|
|
1432
1533
|
},
|
|
1534
|
+
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
1535
|
+
// connection banner and plan/publish cards, the ChatDock chrome, and the
|
|
1536
|
+
// conversation-list date buckets. `group.*` is the template-key family
|
|
1537
|
+
// `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
|
|
1538
|
+
// ConversationGroupKey union — all five members, no wildcard.
|
|
1539
|
+
collapseToDock: "طيّ إلى اللوحة الجانبية",
|
|
1540
|
+
switchApp: "تبديل التطبيق",
|
|
1541
|
+
switchAppLabel: "محادثات الإنشاء حسب التطبيق",
|
|
1542
|
+
newApp: "تطبيق جديد",
|
|
1543
|
+
connectionWaiting: "في انتظار الخادم…",
|
|
1544
|
+
connectionStalled: "لا يزال العمل جاريًا…",
|
|
1545
|
+
connectionOffline: "انقطع الاتصال — جارٍ إعادة الاتصال…",
|
|
1546
|
+
designingPlan: "جارٍ تصميم تطبيقك…",
|
|
1547
|
+
designingPlanHint: {
|
|
1548
|
+
data: "جارٍ تحديد البيانات التي ستتابعها…",
|
|
1549
|
+
objects: "جارٍ تشكيل الكائنات وحقولها…",
|
|
1550
|
+
relations: "جارٍ ربط السجلات ذات الصلة…",
|
|
1551
|
+
lookups: "جارٍ إعداد العلاقات وحقول البحث…",
|
|
1552
|
+
views: "جارٍ التخطيط للشاشات والعروض…",
|
|
1553
|
+
forms: "جارٍ تنسيق النماذج والقوائم…",
|
|
1554
|
+
defaults: "جارٍ إضافة قيم افتراضية ومعايير تحقّق منطقية…",
|
|
1555
|
+
dashboard: "جارٍ رسم لوحة معلومات للمتابعة…",
|
|
1556
|
+
review: "جارٍ التحقّق من تماسك البنية…",
|
|
1557
|
+
finalize: "جارٍ تجميع الخطة…",
|
|
1558
|
+
},
|
|
1559
|
+
planBuilding: "جارٍ الإنشاء…",
|
|
1560
|
+
planBuilt: "تم الإنشاء",
|
|
1561
|
+
planDeferred: "لم يُنشأ بعد",
|
|
1562
|
+
planReady: "الخطة جاهزة. ابدأ الإنشاء الآن، أو أخبرني بما تريد تعديله.",
|
|
1563
|
+
published: "تم النشر",
|
|
1564
|
+
publishFailed: "فشل النشر",
|
|
1565
|
+
unavailableTitle: "مساعد الذكاء الاصطناعي غير متاح",
|
|
1566
|
+
unavailableDescription: "لم يتم تمكين مساعد الذكاء الاصطناعي في هذا النشر. وكل شيء آخر يعمل كالمعتاد.",
|
|
1567
|
+
unavailableError: "تعذّر الوصول إلى خدمة الذكاء الاصطناعي. قد تكون غير متصلة مؤقتًا — أعد المحاولة أو عد إلى الرئيسية.",
|
|
1568
|
+
unavailableRetry: "إعادة المحاولة",
|
|
1569
|
+
unavailableHome: "العودة إلى الرئيسية",
|
|
1570
|
+
dock: {
|
|
1571
|
+
title: "المساعد",
|
|
1572
|
+
description: "محادثة مساعد الذكاء الاصطناعي",
|
|
1573
|
+
resize: "تغيير حجم المحادثة",
|
|
1574
|
+
collapse: "طي المحادثة",
|
|
1575
|
+
maximize: "فتح كصفحة كاملة",
|
|
1576
|
+
open: "فتح المساعد",
|
|
1577
|
+
},
|
|
1578
|
+
group: {
|
|
1579
|
+
today: "اليوم",
|
|
1580
|
+
yesterday: "أمس",
|
|
1581
|
+
previous7Days: "آخر 7 أيام",
|
|
1582
|
+
previous30Days: "آخر 30 يومًا",
|
|
1583
|
+
older: "أقدم",
|
|
1584
|
+
},
|
|
1433
1585
|
},
|
|
1434
1586
|
title: "وحدة تحكم ObjectStack",
|
|
1435
|
-
initializing: "جاري تهيئة
|
|
1587
|
+
initializing: "جاري تهيئة التطبيق…",
|
|
1436
1588
|
loadingHint: "قد يستغرق إعداد بيئة جديدة بعض الوقت.",
|
|
1437
1589
|
breadcrumb: {
|
|
1438
1590
|
dashboards: "لوحات المعلومات",
|
|
@@ -1440,6 +1592,31 @@ const ar = {
|
|
|
1440
1592
|
reports: "التقارير",
|
|
1441
1593
|
system: "النظام",
|
|
1442
1594
|
},
|
|
1595
|
+
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1596
|
+
// `settingsHub` above already resolved through this pack; the view was the
|
|
1597
|
+
// one file still carrying English literals.
|
|
1598
|
+
settingsView: {
|
|
1599
|
+
backToHub: "جميع الإعدادات",
|
|
1600
|
+
back: "رجوع",
|
|
1601
|
+
noNamespace: "لم يتم تحديد أي مساحة اسم.",
|
|
1602
|
+
loadError: "تعذّر تحميل الإعدادات",
|
|
1603
|
+
saved: "تم حفظ الإعدادات",
|
|
1604
|
+
saveFailed: "فشل في الحفظ",
|
|
1605
|
+
lockedByEnv: "مقفل بواسطة البيئة: {{key}}",
|
|
1606
|
+
lockedByEnvNoKey: "مقفل بواسطة البيئة",
|
|
1607
|
+
actionSucceeded: "نجح الإجراء",
|
|
1608
|
+
actionFailed: "فشل الإجراء",
|
|
1609
|
+
discard: "تجاهل",
|
|
1610
|
+
saveChanges: "حفظ التغييرات",
|
|
1611
|
+
unsavedCount: "{{count}} تغيير(تغييرات) غير محفوظ",
|
|
1612
|
+
unsavedCount_one: "{{count}} تغيير غير محفوظ",
|
|
1613
|
+
unsavedCount_other: "{{count}} تغييرات غير محفوظة",
|
|
1614
|
+
cryptoRefusalTitle: "لا يمكن لهذا النشر تشفير الأسرار",
|
|
1615
|
+
cryptoRefusalSubjectSuffix: "معلن كمشفَّر، لذلك لم تتم كتابة أي شيء.",
|
|
1616
|
+
cryptoRefusalNoSubject: "تم رفض القيمة المعلنة كمشفَّرة، لذلك لم تتم كتابة أي شيء.",
|
|
1617
|
+
cryptoRefusalToast: "تعذّر تشفير الأسرار: {{subject}}",
|
|
1618
|
+
cryptoRefusalToastNoSubject: "تعذّر تشفير الأسرار",
|
|
1619
|
+
},
|
|
1443
1620
|
loadingSteps: {
|
|
1444
1621
|
connecting: "جاري الاتصال بمصدر البيانات",
|
|
1445
1622
|
loadingConfig: "جاري تحميل الإعدادات",
|
|
@@ -1469,6 +1646,7 @@ const ar = {
|
|
|
1469
1646
|
general: "عام",
|
|
1470
1647
|
navigation: "التنقل",
|
|
1471
1648
|
dataViews: "عروض البيانات",
|
|
1649
|
+
aiChat: "مساعد الذكاء الاصطناعي",
|
|
1472
1650
|
preferences: "التفضيلات",
|
|
1473
1651
|
},
|
|
1474
1652
|
openCommandPalette: "فتح لوحة الأوامر",
|
|
@@ -1479,11 +1657,13 @@ const ar = {
|
|
|
1479
1657
|
createRecord: "إنشاء سجل جديد",
|
|
1480
1658
|
refreshData: "تحديث البيانات",
|
|
1481
1659
|
editRecord: "تعديل السجل المحدد",
|
|
1660
|
+
newChat: "محادثة جديدة",
|
|
1661
|
+
toggleChatsList: "تبديل قائمة المحادثات",
|
|
1482
1662
|
toggleDarkMode: "تبديل الوضع الداكن",
|
|
1483
1663
|
},
|
|
1484
1664
|
commandPalette: {
|
|
1485
1665
|
title: "لوحة الأوامر",
|
|
1486
|
-
placeholder: "اكتب أمراً أو
|
|
1666
|
+
placeholder: "اكتب أمراً أو ابحث…",
|
|
1487
1667
|
noResults: "لم يتم العثور على نتائج.",
|
|
1488
1668
|
objects: "الكائنات",
|
|
1489
1669
|
dashboards: "لوحات المعلومات",
|
|
@@ -1509,6 +1689,12 @@ const ar = {
|
|
|
1509
1689
|
goHome: "العودة للرئيسية",
|
|
1510
1690
|
errorDetails: "تفاصيل الخطأ (وضع التطوير فقط)",
|
|
1511
1691
|
},
|
|
1692
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1693
|
+
notFound: {
|
|
1694
|
+
title: "الصفحة غير موجودة",
|
|
1695
|
+
description: "الرابط الذي فتحته لا يطابق أي عرض في هذا التطبيق.",
|
|
1696
|
+
back: "رجوع",
|
|
1697
|
+
},
|
|
1512
1698
|
theme: {
|
|
1513
1699
|
toggle: "تبديل المظهر",
|
|
1514
1700
|
light: "فاتح",
|
|
@@ -1524,8 +1710,10 @@ const ar = {
|
|
|
1524
1710
|
viewNameHelp: "مفتاح برمجي (snake_case). يُملأ تلقائيًا من العنوان — عدّله إن أردت.",
|
|
1525
1711
|
viewNameRequired: "أدخل مفتاحًا (أحرف إنجليزية صغيرة وأرقام وشرطة سفلية). لا يُملأ تلقائيًا للعناوين غير اللاتينية.",
|
|
1526
1712
|
viewNameInvalid: "استخدم أحرفًا إنجليزية صغيرة وأرقامًا وشرطات سفلية؛ وابدأ بحرف أو شرطة سفلية.",
|
|
1527
|
-
systemViewReadonly:
|
|
1528
|
-
|
|
1713
|
+
systemViewReadonly: "عرض النظام معرَّف في الكود — للقراءة فقط.",
|
|
1714
|
+
cannotEditMetaView: "هذا عرض مدمج معرَّف في الكود — لا يمكن تعديله.",
|
|
1715
|
+
cannotDeleteMetaView: "هذا عرض مدمج معرَّف في الكود — لا يمكن حذفه.",
|
|
1716
|
+
expandToPage: "فتح كصفحة كاملة",
|
|
1529
1717
|
objectNotFound: "الكائن غير موجود",
|
|
1530
1718
|
objectNotFoundDescription: "الكائن \"{{objectName}}\" غير موجود في الإعدادات الحالية.",
|
|
1531
1719
|
objectNotFoundHint: "تحقق من إعدادات التنقل في تطبيقك أو اختر كائنًا آخر من الشريط الجانبي.",
|
|
@@ -1557,7 +1745,7 @@ const ar = {
|
|
|
1557
1745
|
exportPrintHint: "صيغ التصدير والطباعة وعرض عدد السجلات",
|
|
1558
1746
|
showAllFields: "إظهار الكل",
|
|
1559
1747
|
hideAllFields: "إخفاء الكل",
|
|
1560
|
-
searchFields: "البحث في
|
|
1748
|
+
searchFields: "البحث في الحقول…",
|
|
1561
1749
|
title: "العنوان",
|
|
1562
1750
|
description: "الوصف",
|
|
1563
1751
|
data: "البيانات",
|
|
@@ -1596,7 +1784,7 @@ const ar = {
|
|
|
1596
1784
|
longitudeField: "حقل خط الطول",
|
|
1597
1785
|
imageField: "حقل الصورة",
|
|
1598
1786
|
dateField: "حقل التاريخ",
|
|
1599
|
-
selectField: "اختر
|
|
1787
|
+
selectField: "اختر حقلاً…",
|
|
1600
1788
|
gridOptionsHint: "يستخدم عرض الشبكة الأعمدة المكونة أعلاه.",
|
|
1601
1789
|
groupBy: "تجميع حسب",
|
|
1602
1790
|
prefixField: "حقل البادئة",
|
|
@@ -1659,7 +1847,7 @@ const ar = {
|
|
|
1659
1847
|
latitudeFieldHelp: "حقل يحتوي على خط العرض (حقول جغرافية فقط).",
|
|
1660
1848
|
longitudeFieldHelp: "حقل يحتوي على خط الطول (حقول جغرافية فقط).",
|
|
1661
1849
|
imageFieldHelp: "تأتي غلاف المعرض من هذا الحقل للصورة أو المرفق.",
|
|
1662
|
-
selectOption: "
|
|
1850
|
+
selectOption: "تحديد…",
|
|
1663
1851
|
noEligibleFieldForType: "لا يوجد حقل مؤهل من هذا النوع. أضف حقلاً إلى الكائن أولاً.",
|
|
1664
1852
|
viewTypeUnavailable: "لا يحتوي هذا الكائن على حقل يمكن أن يعمل كـ \"{{field}}\".",
|
|
1665
1853
|
viewTypeUnavailableShort: "غير مدعوم من هذا الكائن.",
|
|
@@ -1709,7 +1897,7 @@ const ar = {
|
|
|
1709
1897
|
ufDropdown: "قائمة منسدلة",
|
|
1710
1898
|
ufTabs: "علامات تبويب",
|
|
1711
1899
|
ufToggle: "تبديل",
|
|
1712
|
-
ufAddField: "+ إضافة حقل
|
|
1900
|
+
ufAddField: "+ إضافة حقل فلتر…",
|
|
1713
1901
|
ufNoFields: "لا حقول متاحة",
|
|
1714
1902
|
ufAddTab: "+ إضافة علامة تبويب",
|
|
1715
1903
|
ufTabLabel: "التسمية",
|
|
@@ -1769,7 +1957,7 @@ const ar = {
|
|
|
1769
1957
|
passwordPlaceholder: "أدخل كلمة المرور",
|
|
1770
1958
|
forgotPasswordText: "نسيت كلمة المرور؟",
|
|
1771
1959
|
submitButton: "تسجيل الدخول",
|
|
1772
|
-
submittingButton: "جارٍ تسجيل
|
|
1960
|
+
submittingButton: "جارٍ تسجيل الدخول…",
|
|
1773
1961
|
noAccountText: "ليس لديك حساب؟",
|
|
1774
1962
|
signUpText: "إنشاء حساب",
|
|
1775
1963
|
errors: {
|
|
@@ -1777,6 +1965,18 @@ const ar = {
|
|
|
1777
1965
|
invalidCredentials: "بريد إلكتروني أو كلمة مرور غير صحيحة. يرجى المحاولة مرة أخرى.",
|
|
1778
1966
|
emailNotVerified: "يرجى التحقق من بريدك الإلكتروني قبل تسجيل الدخول.",
|
|
1779
1967
|
},
|
|
1968
|
+
// objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
|
|
1969
|
+
// literal `.replace()` hole, not i18next interpolation: keep the single braces.
|
|
1970
|
+
emailOrPhoneLabel: "البريد الإلكتروني أو رقم الهاتف",
|
|
1971
|
+
emailOrPhonePlaceholder: "name@example.com أو +1 555 000 0000",
|
|
1972
|
+
phoneLabel: "رقم الهاتف",
|
|
1973
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
1974
|
+
otpCodeLabel: "رمز التحقق",
|
|
1975
|
+
otpCodePlaceholder: "رمز مكوّن من 6 أرقام",
|
|
1976
|
+
sendOtpButton: "الحصول على رمز",
|
|
1977
|
+
resendOtpCountdownText: "إعادة الإرسال بعد {seconds} ثانية",
|
|
1978
|
+
usePhoneOtpText: "تسجيل الدخول برمز التحقق",
|
|
1979
|
+
usePasswordSignInText: "تسجيل الدخول بكلمة المرور بدلاً من ذلك",
|
|
1780
1980
|
},
|
|
1781
1981
|
register: {
|
|
1782
1982
|
title: "إنشاء حساب",
|
|
@@ -1792,7 +1992,7 @@ const ar = {
|
|
|
1792
1992
|
passwordMismatchError: "كلمتا المرور غير متطابقتين",
|
|
1793
1993
|
passwordTooShortError: "يجب أن تتكون كلمة المرور من 8 أحرف على الأقل",
|
|
1794
1994
|
submitButton: "إنشاء حساب",
|
|
1795
|
-
submittingButton: "جارٍ إنشاء
|
|
1995
|
+
submittingButton: "جارٍ إنشاء الحساب…",
|
|
1796
1996
|
hasAccountText: "لديك حساب بالفعل؟",
|
|
1797
1997
|
signInText: "تسجيل الدخول",
|
|
1798
1998
|
errors: {
|
|
@@ -1813,12 +2013,26 @@ const ar = {
|
|
|
1813
2013
|
emailLabel: "البريد الإلكتروني",
|
|
1814
2014
|
emailPlaceholder: "name@example.com",
|
|
1815
2015
|
submitButton: "إرسال رابط إعادة التعيين",
|
|
1816
|
-
submittingButton: "جارٍ
|
|
2016
|
+
submittingButton: "جارٍ الإرسال…",
|
|
1817
2017
|
successTitle: "تحقق من بريدك الإلكتروني",
|
|
1818
2018
|
successDescription: "لقد أرسلنا رابط إعادة تعيين كلمة المرور إلى {{email}}. يرجى التحقق من بريدك الوارد.",
|
|
1819
2019
|
backToSignInText: "العودة إلى تسجيل الدخول",
|
|
1820
2020
|
rememberPasswordText: "تتذكر كلمة المرور؟",
|
|
1821
2021
|
signInText: "تسجيل الدخول",
|
|
2022
|
+
// objectui#3546 slice three — the SMS reset branch of the same form.
|
|
2023
|
+
phoneLabel: "رقم الهاتف",
|
|
2024
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
2025
|
+
otpCodeLabel: "رمز التحقق",
|
|
2026
|
+
otpCodePlaceholder: "رمز مكوّن من 6 أرقام",
|
|
2027
|
+
sendOtpButton: "الحصول على رمز",
|
|
2028
|
+
resendOtpCountdownText: "إعادة الإرسال بعد {seconds} ثانية",
|
|
2029
|
+
newPasswordLabel: "كلمة المرور الجديدة",
|
|
2030
|
+
newPasswordPlaceholder: "أدخل كلمة مرور جديدة",
|
|
2031
|
+
resetButton: "إعادة تعيين كلمة المرور",
|
|
2032
|
+
usePhoneResetText: "إعادة التعيين برمز SMS",
|
|
2033
|
+
useEmailResetText: "إعادة التعيين بالبريد الإلكتروني بدلاً من ذلك",
|
|
2034
|
+
phoneSuccessTitle: "تمت إعادة تعيين كلمة المرور",
|
|
2035
|
+
phoneSuccessDescription: "تمت إعادة تعيين كلمة المرور. يمكنك الآن تسجيل الدخول بكلمة المرور الجديدة.",
|
|
1822
2036
|
},
|
|
1823
2037
|
resetPassword: {
|
|
1824
2038
|
title: "تعيين كلمة مرور جديدة",
|
|
@@ -1857,6 +2071,8 @@ const ar = {
|
|
|
1857
2071
|
backToLogin: "العودة إلى تسجيل الدخول",
|
|
1858
2072
|
checkSpam: "لم تستلم البريد؟ تحقق من مجلد البريد غير المرغوب أو تواصل مع الدعم.",
|
|
1859
2073
|
or: "أو",
|
|
2074
|
+
// objectui#3546 slice three.
|
|
2075
|
+
resendUnavailable: "قد يكون إرسال البريد الإلكتروني غير مُهيأ في هذه البيئة. تواصل مع الدعم إذا استمرت المشكلة.",
|
|
1860
2076
|
},
|
|
1861
2077
|
setup: {
|
|
1862
2078
|
welcomeTitle: "مرحباً بك في ObjectStack",
|
|
@@ -1895,6 +2111,9 @@ const ar = {
|
|
|
1895
2111
|
invalidDescription: "لم يتم تقديم رمز جهاز في URL.",
|
|
1896
2112
|
loading: "جارٍ التحميل…",
|
|
1897
2113
|
cancel: "إلغاء",
|
|
2114
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2115
|
+
disabledTitle: "تفويض الأجهزة غير مُمكَّن",
|
|
2116
|
+
disabledDescription: "لم يتم تمكين تفويض الأجهزة في هذا النشر، لذا لا يمكن الموافقة على هذا الجهاز هنا.",
|
|
1898
2117
|
},
|
|
1899
2118
|
shell: {
|
|
1900
2119
|
tenantHostHint: "تسجل الدخول إلى مساحة العمل هذه",
|
|
@@ -1934,6 +2153,29 @@ const ar = {
|
|
|
1934
2153
|
},
|
|
1935
2154
|
},
|
|
1936
2155
|
},
|
|
2156
|
+
// objectui#3546 slice three — the /oauth/consent screen.
|
|
2157
|
+
oauth: {
|
|
2158
|
+
consent: {
|
|
2159
|
+
title: "يطلب {{appName}} الوصول إلى حسابك",
|
|
2160
|
+
request: "يطلب {{appName}} الإذن{{suffix}}.",
|
|
2161
|
+
unknownApp: "تطبيق ما",
|
|
2162
|
+
willAllow: "سيتمكن هذا التطبيق من:",
|
|
2163
|
+
scope: {
|
|
2164
|
+
openid: "تأكيد هويتك",
|
|
2165
|
+
profile: "قراءة ملفك الشخصي الأساسي (الاسم، الصورة)",
|
|
2166
|
+
email: "قراءة عنوان بريدك الإلكتروني",
|
|
2167
|
+
offlineAccess: "البقاء مسجّلاً للدخول (تحديث الوصول)",
|
|
2168
|
+
},
|
|
2169
|
+
deny: "رفض",
|
|
2170
|
+
authorize: "تفويض",
|
|
2171
|
+
submitting: "جارٍ التفويض…",
|
|
2172
|
+
granted: "تم منح الوصول",
|
|
2173
|
+
denied: "تم رفض الوصول",
|
|
2174
|
+
noRedirect: "لم يُرجع الخادم أي عنوان URL لإعادة التوجيه.",
|
|
2175
|
+
failed: "فشلت الموافقة",
|
|
2176
|
+
footer: "يمكنك إلغاء الوصول في أي وقت من إعدادات حسابك.",
|
|
2177
|
+
},
|
|
2178
|
+
},
|
|
1937
2179
|
profile: {
|
|
1938
2180
|
title: "الملف الشخصي",
|
|
1939
2181
|
subtitle: "إدارة إعدادات حسابك",
|
|
@@ -1995,6 +2237,8 @@ const ar = {
|
|
|
1995
2237
|
invite: "دعوة عضو",
|
|
1996
2238
|
members: "الأعضاء",
|
|
1997
2239
|
settings: "إعدادات مساحة العمل",
|
|
2240
|
+
multiOrgDisabled: "إنشاء مؤسسات جديدة معطّل في هذا النشر.",
|
|
2241
|
+
createFailed: 'تعذّر إنشاء مساحة العمل',
|
|
1998
2242
|
},
|
|
1999
2243
|
help: {
|
|
2000
2244
|
onThisPage: "في هذه الصفحة",
|
|
@@ -2005,7 +2249,7 @@ const ar = {
|
|
|
2005
2249
|
},
|
|
2006
2250
|
sidebar: {
|
|
2007
2251
|
packageManagement: "إدارة الحزم",
|
|
2008
|
-
searchNavigation: "البحث في
|
|
2252
|
+
searchNavigation: "البحث في التنقل…",
|
|
2009
2253
|
settings: "الإعدادات",
|
|
2010
2254
|
help: "المساعدة",
|
|
2011
2255
|
helpTooltip: "المساعدة والوثائق",
|
|
@@ -2029,8 +2273,8 @@ const ar = {
|
|
|
2029
2273
|
switchObject: "تبديل الكائن",
|
|
2030
2274
|
connection: {
|
|
2031
2275
|
connected: "متصل",
|
|
2032
|
-
connecting: "جارٍ
|
|
2033
|
-
reconnecting: "جارٍ إعادة
|
|
2276
|
+
connecting: "جارٍ الاتصال…",
|
|
2277
|
+
reconnecting: "جارٍ إعادة الاتصال…",
|
|
2034
2278
|
disconnected: "منقطع",
|
|
2035
2279
|
error: "خطأ في الاتصال",
|
|
2036
2280
|
},
|
|
@@ -2069,6 +2313,14 @@ const ar = {
|
|
|
2069
2313
|
publishing: "جارٍ النشر…",
|
|
2070
2314
|
published: "تم النشر! تغييراتك فعّالة الآن.",
|
|
2071
2315
|
publishFailed: "فشل النشر",
|
|
2316
|
+
// objectui#3546 slice six — seedWarn له النص الإنجليزي نفسه الذي في
|
|
2317
|
+
// console.ai.seedWarn، فنعيد استخدام الترجمة ذاتها. علامة «(جمع)» تتبع
|
|
2318
|
+
// grid.import.rowsWithErrors في هذه الحزمة.
|
|
2319
|
+
nothing: "لا شيء للنشر.",
|
|
2320
|
+
probeWarn: "تم النشر، لكن التحقق وجد مشكلات.",
|
|
2321
|
+
seedWarn: "تم النشر، لكن تعذّر تحميل بعض البيانات التجريبية.",
|
|
2322
|
+
publishedVerified: "تم النشر والتحقق — {{count}} صف(صفوف) من البيانات التجريبية فعّالة الآن.",
|
|
2323
|
+
capabilityWarn: "فحص التأليف: {{count}} مرجع(مراجع) قدرات لا تشير إلى شيء.",
|
|
2072
2324
|
},
|
|
2073
2325
|
title: "الرئيسية",
|
|
2074
2326
|
subtitle: "لوحة تحكم مساحة العمل",
|
|
@@ -2082,7 +2334,7 @@ const ar = {
|
|
|
2082
2334
|
title: "يتطلب انتباهك",
|
|
2083
2335
|
empty: "لقد أنجزت كل شيء",
|
|
2084
2336
|
},
|
|
2085
|
-
loading: "جارٍ تحميل مساحة
|
|
2337
|
+
loading: "جارٍ تحميل مساحة العمل…",
|
|
2086
2338
|
recent: "الأخيرة",
|
|
2087
2339
|
starred: "المميزة بنجمة",
|
|
2088
2340
|
welcome: "مرحباً بك في ObjectUI",
|
|
@@ -2143,6 +2395,9 @@ const ar = {
|
|
|
2143
2395
|
roles: "الأدوار",
|
|
2144
2396
|
configuration: "التهيئة",
|
|
2145
2397
|
createApp: "إنشاء تطبيق",
|
|
2398
|
+
administration: "الإدارة",
|
|
2399
|
+
datasources: "مصادر البيانات",
|
|
2400
|
+
documentation: "الوثائق",
|
|
2146
2401
|
},
|
|
2147
2402
|
appSwitcher: {
|
|
2148
2403
|
switchApplication: "تبديل التطبيق",
|
|
@@ -2182,7 +2437,7 @@ const ar = {
|
|
|
2182
2437
|
search: {
|
|
2183
2438
|
title: "بحث",
|
|
2184
2439
|
back: "رجوع",
|
|
2185
|
-
placeholder: "ابحث في الكائنات، لوحات التحكم، الصفحات،
|
|
2440
|
+
placeholder: "ابحث في الكائنات، لوحات التحكم، الصفحات، التقارير…",
|
|
2186
2441
|
inputAriaLabel: "ابحث في الكائنات، لوحات التحكم، الصفحات، التقارير",
|
|
2187
2442
|
resultsCount: "{{count}} نتيجة لـ \"{{query}}\"",
|
|
2188
2443
|
resultsCountPlural: "{{count}} نتيجة لـ \"{{query}}\"",
|
|
@@ -2201,6 +2456,7 @@ const ar = {
|
|
|
2201
2456
|
empty: {
|
|
2202
2457
|
objectNotFound: "الكائن غير موجود",
|
|
2203
2458
|
objectNotFoundDescription: "تعريف الكائن \"{{name}}\" مفقود. تحقق من الإعداد أو ارجع للخلف.",
|
|
2459
|
+
interfacePageSourceMissing: "تشير صفحة الواجهة هذه إلى \"{{name}}\"، وهو غير متاح.",
|
|
2204
2460
|
pageNotFound: "الصفحة غير موجودة",
|
|
2205
2461
|
pageNotFoundDescription: "الصفحة \"{{name}}\" غير موجودة. ربما تم إزالتها أو إعادة تسميتها.",
|
|
2206
2462
|
dashboardNotFound: "لوحة التحكم غير موجودة",
|
|
@@ -2209,6 +2465,11 @@ const ar = {
|
|
|
2209
2465
|
reportNotFoundDescription: "التقرير \"{{name}}\" غير موجود. ربما تم إزالته أو إعادة تسميته.",
|
|
2210
2466
|
noAppsConfigured: "لا تطبيقات مُهيأة",
|
|
2211
2467
|
noAppsConfiguredDescription: "لا تطبيقات مسجلة. أنشئ تطبيقك الأول أو زر إعدادات النظام.",
|
|
2468
|
+
appNotAvailable: "التطبيق غير متاح",
|
|
2469
|
+
appNotAvailableDescription: "هذا التطبيق غير متاح بعد — قد يكون النشر ما زال جارياً. أعد المحاولة بعد لحظات.",
|
|
2470
|
+
appAccessDenied: "ليس لديك حق الوصول إلى هذا التطبيق",
|
|
2471
|
+
appAccessDeniedDescription: "هذا التطبيق موجود، لكن حسابك غير مخوَّل بفتحه. اطلب من المسؤول منحك حق الوصول.",
|
|
2472
|
+
appAccessDeniedHome: "العودة إلى الرئيسية",
|
|
2212
2473
|
createFirstApp: "إنشاء أول تطبيق",
|
|
2213
2474
|
systemSettings: "إعدادات النظام",
|
|
2214
2475
|
back: "رجوع",
|
|
@@ -2280,7 +2541,7 @@ const ar = {
|
|
|
2280
2541
|
deleteFailed: "تعذر حذف العرض",
|
|
2281
2542
|
},
|
|
2282
2543
|
dashboardActions: {
|
|
2283
|
-
|
|
2544
|
+
printDialogOpening: "جارٍ فتح مربع حوار الطباعة في المتصفح (ليس تصديرًا إلى PDF)",
|
|
2284
2545
|
exportFailed: "فشل التصدير: {{message}}",
|
|
2285
2546
|
forecastSoon: "عرض التوقعات قادم قريباً",
|
|
2286
2547
|
},
|
|
@@ -2324,111 +2585,7 @@ const ar = {
|
|
|
2324
2585
|
first: "الأول",
|
|
2325
2586
|
},
|
|
2326
2587
|
editor: {
|
|
2327
|
-
|
|
2328
|
-
basic: "أساسي",
|
|
2329
|
-
title: "العنوان",
|
|
2330
|
-
titlePlaceholder: "مثال: المسار حسب الربع",
|
|
2331
|
-
description: "الوصف",
|
|
2332
|
-
descriptionPlaceholder: "ماذا يعرض هذا التقرير؟",
|
|
2333
|
-
type: "نوع التقرير",
|
|
2334
|
-
typeTabular: "جدولي — قائمة مسطّحة",
|
|
2335
|
-
typeSummary: "ملخص — مجمّع مع المجاميع",
|
|
2336
|
-
typeMatrix: "مصفوفة — محور صفوف × أعمدة",
|
|
2337
|
-
typeJoined: "مدمج — كتل متعددة",
|
|
2338
|
-
typeHelp: "اختر التخطيط الذي يطابق ما تريد رؤيته.",
|
|
2339
|
-
data: "البيانات",
|
|
2340
|
-
objectName: "مصدر البيانات",
|
|
2341
|
-
objectNamePlaceholder: "مثال: opportunity",
|
|
2342
|
-
objectNameHelp: "أي كائن يجب أن يستعلم عنه هذا التقرير؟",
|
|
2343
|
-
limit: "حد عدد الصفوف",
|
|
2344
|
-
limitPlaceholder: "مثال: 100",
|
|
2345
|
-
columns: "الأعمدة",
|
|
2346
|
-
columnsHint: "اختر الحقول التي ستظهر كأعمدة. أضف تجميعًا (مجموع، عدد…) في تقارير الملخص أو المصفوفة.",
|
|
2347
|
-
filters: "عوامل التصفية",
|
|
2348
|
-
filtersHint: "قيّد الصفوف التي تدخل في هذا التقرير.",
|
|
2349
|
-
filtersComplex: "يستخدم هذا التقرير عامل تصفية متقدّمًا لا يمكن تحريره هنا. سيُحتفظ به كما هو عند الحفظ.",
|
|
2350
|
-
groupBy: "التجميع حسب",
|
|
2351
|
-
groupByHint: "جمّع البيانات واحسب المجاميع الفرعية.",
|
|
2352
|
-
rows: "الصفوف",
|
|
2353
|
-
rowsHint: "جمّع الصفوف حسب هذه الحقول.",
|
|
2354
|
-
columnsAxis: "الأعمدة",
|
|
2355
|
-
columnsAxisHint: "اعرض هذه الحقول كمحور في الأعلى.",
|
|
2356
|
-
values: "القيم",
|
|
2357
|
-
valuesHint: "الأرقام التي تظهر في كل خلية. اختر حقلاً واحدًا أو أكثر وأضف تجميعًا (مجموع، عدد…).",
|
|
2358
|
-
grouping: "تجميع",
|
|
2359
|
-
addGrouping: "إضافة تجميع",
|
|
2360
|
-
dateGranularity: "دقة التاريخ",
|
|
2361
|
-
dateGranularityNone: "(استخدام القيمة الأصلية)",
|
|
2362
|
-
day: "يوم",
|
|
2363
|
-
week: "أسبوع",
|
|
2364
|
-
month: "شهر",
|
|
2365
|
-
quarter: "ربع",
|
|
2366
|
-
year: "سنة",
|
|
2367
|
-
sortAsc: "تصاعدي",
|
|
2368
|
-
sortDesc: "تنازلي",
|
|
2369
|
-
chart: "الرسم البياني",
|
|
2370
|
-
chartHint: "عرض مرئي اختياري بجانب الجدول.",
|
|
2371
|
-
chartType: "نوع الرسم",
|
|
2372
|
-
chartTitle: "عنوان الرسم",
|
|
2373
|
-
chartTitlePlaceholder: "افتراضيًا يستخدم عنوان التقرير",
|
|
2374
|
-
chartXAxis: "المحور السيني (الفئة)",
|
|
2375
|
-
chartYAxis: "المحور الصادي (القيمة)",
|
|
2376
|
-
chartShowLegend: "إظهار وسيلة الإيضاح",
|
|
2377
|
-
chartShowDataLabels: "إظهار تسميات البيانات",
|
|
2378
|
-
chartNone: "(بدون رسم)",
|
|
2379
|
-
chartBar: "أعمدة",
|
|
2380
|
-
chartLine: "خطي",
|
|
2381
|
-
chartArea: "منطقة",
|
|
2382
|
-
chartPie: "دائري",
|
|
2383
|
-
chartDonut: "حلقي",
|
|
2384
|
-
chartFunnel: "قمعي",
|
|
2385
|
-
validationNeedsObject: "اختر مصدر بيانات قبل إضافة الأعمدة.",
|
|
2386
|
-
validationMatrixNeedsRowsCols: "تتطلب تقارير المصفوفة صفًا وعمودًا واحدًا على الأقل.",
|
|
2387
|
-
validationSummaryNeedsRows: "تتطلب تقارير الملخص حقل تجميع واحدًا على الأقل.",
|
|
2388
|
-
blocks: "الكتل",
|
|
2389
|
-
blocksHint: "كل كتلة هي جدولها أو رسمها البياني الخاص. عوامل تصفية الكتلة تُدمج مع عامل تصفية التقرير بمنطق AND.",
|
|
2390
|
-
addBlock: "إضافة كتلة",
|
|
2391
|
-
removeBlock: "إزالة الكتلة",
|
|
2392
|
-
blockName: "اسم الكتلة",
|
|
2393
|
-
blockNamePlaceholder: "اسم_فريد_للكتلة",
|
|
2394
|
-
blockLabel: "التسمية المعروضة",
|
|
2395
|
-
blockLabelPlaceholder: "تُعرض فوق الكتلة",
|
|
2396
|
-
blockDescription: "الوصف",
|
|
2397
|
-
blockDescriptionPlaceholder: "سياق اختياري لهذه الكتلة",
|
|
2398
|
-
validationJoinedNeedsBlocks: "تتطلب التقارير المدمجة كتلة واحدة على الأقل.",
|
|
2399
|
-
validationBlockNameRequired: "يجب أن يكون لكل كتلة اسم غير فارغ.",
|
|
2400
|
-
validationBlockNameDuplicate: "يجب أن تكون أسماء الكتل فريدة داخل التقرير.",
|
|
2401
|
-
validationBlockNeedsColumns: "تحتاج كل كتلة إلى عمود واحد على الأقل.",
|
|
2402
|
-
noneOption: "(بلا)",
|
|
2403
|
-
addCondition: "إضافة شرط",
|
|
2404
|
-
combineLogic: "الدمج مع",
|
|
2405
|
-
opContains: "يحتوي على",
|
|
2406
|
-
opIsEmpty: "فارغ",
|
|
2407
|
-
opIsNotEmpty: "ليس فارغًا",
|
|
2408
|
-
formatAuto: "تلقائي",
|
|
2409
|
-
formatCurrency: "عملة",
|
|
2410
|
-
formatPercent: "نسبة مئوية",
|
|
2411
|
-
formatInteger: "عدد صحيح",
|
|
2412
|
-
formatDate: "تاريخ",
|
|
2413
|
-
formatDatetime: "تاريخ ووقت",
|
|
2414
|
-
columnLabelPlaceholder: "تجاوز التسمية",
|
|
2415
|
-
aggregateColumn: "تجميع",
|
|
2416
|
-
formatColumn: "تنسيق",
|
|
2417
|
-
addColumns: "إضافة أعمدة",
|
|
2418
|
-
searchFields: "البحث في الحقول…",
|
|
2419
|
-
noMatchingFields: "لا توجد حقول تطابق بحثك.",
|
|
2420
|
-
noFieldsAvailable: "لا توجد حقول متاحة.",
|
|
2421
|
-
columnsCount: "{n} عمود(أعمدة) محدد(ة)",
|
|
2422
|
-
columnsEmpty: "لم يتم تحديد أعمدة بعد.",
|
|
2423
|
-
fieldPickerTitle: "تحديد الحقول",
|
|
2424
|
-
fieldPickerDescription: "اختر حقلاً أو أكثر للإضافة. استخدم مربع البحث لتصفية القائمة.",
|
|
2425
|
-
fieldPickerChangeTitle: "تغيير الحقل",
|
|
2426
|
-
fieldPickerAddGroupingTitle: "إضافة تجميع",
|
|
2427
|
-
fieldPickerEmpty: "(تحديد حقل)",
|
|
2428
|
-
fieldPickerSelected: "{n} محدد(ة)",
|
|
2429
|
-
fieldPickerClear: "مسح التحديد",
|
|
2430
|
-
fieldPickerAdd: "إضافة",
|
|
2431
|
-
fieldPickerAddN: "إضافة {n}",
|
|
2588
|
+
panelTitle: "تعديل التقرير",
|
|
2432
2589
|
},
|
|
2433
2590
|
},
|
|
2434
2591
|
organizations: {
|
|
@@ -2445,6 +2602,140 @@ const ar = {
|
|
|
2445
2602
|
emptyDescription: "أنشئ مؤسستك الأولى للبدء.",
|
|
2446
2603
|
noMatches: "لا توجد مؤسسات تطابق بحثك.",
|
|
2447
2604
|
},
|
|
2605
|
+
organization: {
|
|
2606
|
+
roles: {
|
|
2607
|
+
owner: 'المالك',
|
|
2608
|
+
admin: 'المسؤول',
|
|
2609
|
+
delegatedAdmin: 'مسؤول مفوَّض',
|
|
2610
|
+
member: 'عضو',
|
|
2611
|
+
},
|
|
2612
|
+
errors: {
|
|
2613
|
+
notAllowedToInvite: 'لا يُسمح لك بدعوة مستخدمين إلى هذه المؤسسة.',
|
|
2614
|
+
notAllowedToInviteWithRole: 'لا يُسمح لك بدعوة مستخدم بهذا الدور.',
|
|
2615
|
+
alreadyInvited: 'تمت دعوة هذا المستخدم إلى هذه المؤسسة بالفعل.',
|
|
2616
|
+
organizationExists: 'هذه المؤسسة موجودة بالفعل.',
|
|
2617
|
+
slugTaken: 'هذا المُعرِّف مستخدَم بالفعل.',
|
|
2618
|
+
notAllowedToCreate: 'لا يُسمح لك بإنشاء مؤسسة جديدة.',
|
|
2619
|
+
notTheRecipient: 'لست المستلم المقصود بهذه الدعوة.',
|
|
2620
|
+
invitationNotFound: 'لم تعد هذه الدعوة موجودة أو أنها منتهية الصلاحية.',
|
|
2621
|
+
unknown: 'حدث خطأ ما. يرجى المحاولة مرة أخرى.',
|
|
2622
|
+
},
|
|
2623
|
+
backToList: "العودة إلى المؤسسات",
|
|
2624
|
+
notFound: "المؤسسة غير موجودة",
|
|
2625
|
+
notFoundDescription: "هذه المؤسسة غير موجودة أو ليس لديك صلاحية الوصول إليها.",
|
|
2626
|
+
tabs: {
|
|
2627
|
+
members: "الأعضاء",
|
|
2628
|
+
invitations: "الدعوات",
|
|
2629
|
+
settings: "الإعدادات",
|
|
2630
|
+
},
|
|
2631
|
+
members: {
|
|
2632
|
+
title: "الأعضاء",
|
|
2633
|
+
inviteMember: "دعوة عضو",
|
|
2634
|
+
inviteRestrictedNote: "لا يمكن دعوة الأعضاء إلا لمسؤولي المؤسسة.",
|
|
2635
|
+
removeMember: "إزالة العضو",
|
|
2636
|
+
removeConfirmTitle: "إزالة العضو؟",
|
|
2637
|
+
removeConfirmDescription: "سيؤدي ذلك إلى إزالة {{name}} من المؤسسة، وسيفقد صلاحية الوصول فورًا.",
|
|
2638
|
+
removeConfirmAction: "إزالة",
|
|
2639
|
+
memberRemoved: "تمت إزالة العضو",
|
|
2640
|
+
removeFailed: "فشل إزالة العضو",
|
|
2641
|
+
roleUpdated: "تم تحديث الدور",
|
|
2642
|
+
roleUpdateFailed: "فشل تحديث الدور",
|
|
2643
|
+
memberActions: 'إجراءات العضو',
|
|
2644
|
+
loadFailed: 'تعذّر تحميل الأعضاء',
|
|
2645
|
+
},
|
|
2646
|
+
invitations: {
|
|
2647
|
+
title: "الدعوات",
|
|
2648
|
+
empty: "لا توجد دعوات.",
|
|
2649
|
+
expiresAt: "تنتهي في",
|
|
2650
|
+
linkCopied: "تم نسخ رابط الدعوة",
|
|
2651
|
+
copyFailed: "فشل نسخ الرابط",
|
|
2652
|
+
canceled: "تم إلغاء الدعوة",
|
|
2653
|
+
cancelFailed: "فشل إلغاء الدعوة",
|
|
2654
|
+
cancelTitle: "إلغاء الدعوة؟",
|
|
2655
|
+
cancelDescription: "سيتم إبطال الدعوة المرسلة إلى {{email}}.",
|
|
2656
|
+
cancelAction: "إلغاء الدعوة",
|
|
2657
|
+
inviteTitle: "دعوة عضو",
|
|
2658
|
+
inviteDescription: "سيتلقى دعوة للانضمام إلى هذه المؤسسة.",
|
|
2659
|
+
emailLabel: "البريد الإلكتروني",
|
|
2660
|
+
roleLabel: "الدور",
|
|
2661
|
+
placementLabel: "التعيين (اختياري)",
|
|
2662
|
+
placementDescription: "يُطبَّق عند قبول الدعوة. تُعرض فقط الوحدات والمناصب التي يمكنك تفويضها.",
|
|
2663
|
+
businessUnitLabel: "وحدة العمل",
|
|
2664
|
+
businessUnitPlaceholder: "بدون تعيين",
|
|
2665
|
+
positionsLabel: "المناصب",
|
|
2666
|
+
sendInvite: "إرسال الدعوة",
|
|
2667
|
+
sentTitle: "تم إنشاء الدعوة",
|
|
2668
|
+
sentDescription: "شارك الرابط أدناه مع المدعوّ. سيحتاج إلى تسجيل الدخول للقبول.",
|
|
2669
|
+
linkLabel: "رابط القبول",
|
|
2670
|
+
invitedAs: "تمت دعوة {{email}} بصفة {{role}}",
|
|
2671
|
+
copyLinkLabel: 'نسخ رابط الدعوة',
|
|
2672
|
+
loadFailed: 'تعذّر تحميل الدعوات',
|
|
2673
|
+
inviteFailed: 'تعذّرت دعوة العضو',
|
|
2674
|
+
status: {
|
|
2675
|
+
all: "الكل",
|
|
2676
|
+
pending: "قيد الانتظار",
|
|
2677
|
+
accepted: "مقبولة",
|
|
2678
|
+
rejected: "مرفوضة",
|
|
2679
|
+
canceled: "ملغاة",
|
|
2680
|
+
},
|
|
2681
|
+
},
|
|
2682
|
+
settings: {
|
|
2683
|
+
generalTitle: "عام",
|
|
2684
|
+
generalDescription: "حدّث معلومات مؤسستك.",
|
|
2685
|
+
readOnlyNote: "يمكن للمالكين فقط تغيير الإعدادات.",
|
|
2686
|
+
nameLabel: "اسم المؤسسة",
|
|
2687
|
+
slugLabel: "المعرف",
|
|
2688
|
+
logoLabel: "الشعار",
|
|
2689
|
+
logoUpload: "رفع",
|
|
2690
|
+
logoReplace: "استبدال",
|
|
2691
|
+
logoClear: "إزالة",
|
|
2692
|
+
logoUploaded: "تم رفع الشعار — احفظ لتطبيقه",
|
|
2693
|
+
logoUploadFailed: "فشل رفع الشعار",
|
|
2694
|
+
save: "حفظ التغييرات",
|
|
2695
|
+
saved: "تم حفظ الإعدادات",
|
|
2696
|
+
saveFailed: "فشل حفظ الإعدادات",
|
|
2697
|
+
leaveTitle: "مغادرة المؤسسة",
|
|
2698
|
+
leaveDescription: "ستفقد صلاحية الوصول إلى هذه المؤسسة.",
|
|
2699
|
+
leaveAction: "مغادرة",
|
|
2700
|
+
leaveConfirmTitle: "مغادرة المؤسسة؟",
|
|
2701
|
+
leaveConfirmDescription: "هل أنت متأكد أنك تريد مغادرة {{name}}؟ ستفقد صلاحية الوصول فورًا.",
|
|
2702
|
+
leaveConfirmAction: "مغادرة",
|
|
2703
|
+
leftOrg: "لقد غادرت المؤسسة",
|
|
2704
|
+
leaveFailed: "فشلت مغادرة المؤسسة",
|
|
2705
|
+
dangerZone: "منطقة الخطر",
|
|
2706
|
+
deleteTitle: "حذف المؤسسة",
|
|
2707
|
+
deleteDescription: "احذف هذه المؤسسة وجميع بياناتها نهائيًا.",
|
|
2708
|
+
deleteAction: "حذف",
|
|
2709
|
+
deleteConfirmTitle: "حذف المؤسسة؟",
|
|
2710
|
+
deleteConfirmDescription: "هذا الإجراء لا يمكن التراجع عنه. ستُحذف جميع البيانات نهائيًا. اكتب معرف المؤسسة للتأكيد.",
|
|
2711
|
+
deleteConfirmSlugLabel: "اكتب \"{{slug}}\" للتأكيد",
|
|
2712
|
+
deleteConfirmAction: "حذف المؤسسة",
|
|
2713
|
+
deleted: "تم حذف المؤسسة",
|
|
2714
|
+
deleteFailed: "فشل حذف المؤسسة",
|
|
2715
|
+
},
|
|
2716
|
+
accept: {
|
|
2717
|
+
title: "لقد تلقيت دعوة",
|
|
2718
|
+
description: "تمت دعوتك للانضمام إلى {{orgName}} بصفة {{role}}.",
|
|
2719
|
+
errorTitle: "الدعوة غير متاحة",
|
|
2720
|
+
goToOrgs: "الانتقال إلى المؤسسات",
|
|
2721
|
+
loading: "جارٍ تحميل الدعوة…",
|
|
2722
|
+
organization: "المؤسسة",
|
|
2723
|
+
role: "الدور",
|
|
2724
|
+
expiresAt: "تنتهي في",
|
|
2725
|
+
accept: "قبول الدعوة",
|
|
2726
|
+
accepted: "تم قبول الدعوة",
|
|
2727
|
+
acceptFailed: "فشل قبول الدعوة",
|
|
2728
|
+
decline: "رفض",
|
|
2729
|
+
declined: "تم رفض الدعوة",
|
|
2730
|
+
declineFailed: "فشل رفض الدعوة",
|
|
2731
|
+
},
|
|
2732
|
+
switcher: {
|
|
2733
|
+
label: "تبديل المؤسسة",
|
|
2734
|
+
groupLabel: "مؤسسة العمل",
|
|
2735
|
+
groupHint: "تُنشأ السجلات الجديدة هنا. تعرض العروض بيانات من جميع مؤسساتك.",
|
|
2736
|
+
manageMembers: "إدارة الأعضاء",
|
|
2737
|
+
},
|
|
2738
|
+
},
|
|
2448
2739
|
notifications: {
|
|
2449
2740
|
regionLabel: "الإشعارات",
|
|
2450
2741
|
groupCount: "{{count}} من الإشعارات",
|
|
@@ -2458,6 +2749,9 @@ const ar = {
|
|
|
2458
2749
|
viewApprovals: "عرض الموافقات",
|
|
2459
2750
|
noPendingApprovals: "لا توجد موافقات معلقة",
|
|
2460
2751
|
openApprovalsInbox: "فتح صندوق الموافقات",
|
|
2752
|
+
badgeTotal: "{{total}} إجمالاً",
|
|
2753
|
+
badgeNotifications: "{{unread}} إشعارات",
|
|
2754
|
+
badgeApprovals: "{{approvals}} موافقات معلقة",
|
|
2461
2755
|
emptyUnread: "كل شيء مقروء",
|
|
2462
2756
|
filterUnread: "غير مقروء",
|
|
2463
2757
|
filterAll: "الكل",
|
|
@@ -2744,6 +3038,7 @@ const ar = {
|
|
|
2744
3038
|
dismiss: "رفض",
|
|
2745
3039
|
openOnCloud: "فتح في السحابة",
|
|
2746
3040
|
backHome: "العودة إلى الرئيسية",
|
|
3041
|
+
updateTo: "تحديث",
|
|
2747
3042
|
},
|
|
2748
3043
|
install: {
|
|
2749
3044
|
dialogTitle: "تثبيت {{name}}",
|
|
@@ -2760,6 +3055,37 @@ const ar = {
|
|
|
2760
3055
|
localManifestConflict: "{{message}}\nملاحظة: تطبيق محلي يمتلك بالفعل هذا المعرف. أزله أولاً من objectstack.config.ts.",
|
|
2761
3056
|
localUnauthorized: "سجل الدخول إلى هذا الوقت التشغيل أولاً.",
|
|
2762
3057
|
localMarketplaceUnavailable: "هذا الوقت التشغيل لا يحتوي على OS_CLOUD_URL مُهيأ.",
|
|
3058
|
+
updateTo: "تحديث → v{{version}}",
|
|
3059
|
+
installedVersion: "مثبت v{{version}}",
|
|
3060
|
+
},
|
|
3061
|
+
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
3062
|
+
org: {
|
|
3063
|
+
heading: "مؤسستك",
|
|
3064
|
+
install: "تثبيت",
|
|
3065
|
+
installed: "تم تثبيت {{name}}",
|
|
3066
|
+
installedBadge: "مثبت",
|
|
3067
|
+
installing: "جارٍ التثبيت…",
|
|
3068
|
+
},
|
|
3069
|
+
// ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
|
|
3070
|
+
// (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
|
|
3071
|
+
// PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
|
|
3072
|
+
disclosure: {
|
|
3073
|
+
containsCode: "تحتوي هذه الحزمة على تعليمات برمجية",
|
|
3074
|
+
reviewed: "تمت المراجعة والموافقة",
|
|
3075
|
+
unreviewed: "لم تتم المراجعة بعد",
|
|
3076
|
+
signed: "موقَّع",
|
|
3077
|
+
grantsIntro: "عند التثبيت، ستُمنح هذه الحزمة:",
|
|
3078
|
+
services: "خدمات المنصة",
|
|
3079
|
+
hooks: "خطافات دورة الحياة",
|
|
3080
|
+
network: "الوصول إلى الشبكة",
|
|
3081
|
+
fs: "الوصول إلى نظام الملفات",
|
|
3082
|
+
noPermissions: "لا تطلب أي أذونات خاصة.",
|
|
3083
|
+
acknowledge: "أفهم أن هذه الحزمة تنفّذ تعليمات برمجية وتحصل على الأذونات المذكورة أعلاه.",
|
|
3084
|
+
runtime: {
|
|
3085
|
+
node: "داخل العملية · ثقة كاملة",
|
|
3086
|
+
sandbox: "في بيئة معزولة",
|
|
3087
|
+
worker: "خارج العملية",
|
|
3088
|
+
},
|
|
2763
3089
|
},
|
|
2764
3090
|
uninstall: {
|
|
2765
3091
|
confirm: "إلغاء تثبيت {{manifestId}} v{{version}} من هذا الوقت التشغيل؟\n\nسيتم إزالة المانيفست المخزن مؤقتاً.",
|
|
@@ -3009,6 +3335,34 @@ const ar = {
|
|
|
3009
3335
|
confirmNote: 'النشر يُصدر كل المسودات المعلقة ({{count}}) لهذه الحزمة دفعة واحدة.',
|
|
3010
3336
|
publishConfirm: 'نشر الكل',
|
|
3011
3337
|
},
|
|
3338
|
+
// ADR-0045 — the materialized-but-unlisted app banner
|
|
3339
|
+
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
3340
|
+
unpublishedBar: {
|
|
3341
|
+
message: 'تطبيق غير منشور — يعمل بالكامل، لكن لا يراه سوى المنشئين. انشره ليصبح مرئياً لمستخدميك.',
|
|
3342
|
+
publish: 'نشر',
|
|
3343
|
+
publishing: 'جارٍ النشر…',
|
|
3344
|
+
published: 'تم النشر! التطبيق مرئي الآن لمستخدميك.',
|
|
3345
|
+
publishFailed: 'فشل النشر',
|
|
3346
|
+
},
|
|
3347
|
+
// ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
|
|
3348
|
+
// `button` is the banner's entry point into it.
|
|
3349
|
+
history: {
|
|
3350
|
+
button: 'السجل',
|
|
3351
|
+
title: 'سجل البناء',
|
|
3352
|
+
description: 'كل تغيير في هذا التطبيق، الأحدث أولاً. تراجع عن أي خطوة لإلغائها — لا حاجة لتأكيد النشر.',
|
|
3353
|
+
loadFailed: 'تعذر تحميل السجل:',
|
|
3354
|
+
loadFailedUnavailable: 'يتعذّر الوصول مؤقتًا إلى مخزن الإيداعات — لم تتم هذه القراءة، لذلك لا يُعرض أي سجل. أعد المحاولة بعد قليل.',
|
|
3355
|
+
loading: 'جارٍ تحميل السجل…',
|
|
3356
|
+
empty: 'لا يوجد سجل لهذا التطبيق بعد.',
|
|
3357
|
+
revertLabel: 'تم التراجع عن تغيير',
|
|
3358
|
+
applyLabel: 'تغيير من البناء',
|
|
3359
|
+
revert: 'تراجع',
|
|
3360
|
+
items: 'عناصر',
|
|
3361
|
+
revertAction: 'تراجع',
|
|
3362
|
+
reverted: 'تم التراجع — أُلغي التغيير.',
|
|
3363
|
+
revertFailed: 'فشل التراجع',
|
|
3364
|
+
revertUnavailable: 'يتعذّر الوصول مؤقتًا إلى مخزن الإيداعات — قد لا يكون التراجع قد طُبِّق. أعد فتح هذا السجل للتحقق قبل إعادة المحاولة.',
|
|
3365
|
+
},
|
|
3012
3366
|
},
|
|
3013
3367
|
filterBuilder: {
|
|
3014
3368
|
where: "حيث",
|
|
@@ -3087,5 +3441,57 @@ const ar = {
|
|
|
3087
3441
|
statusIdle: "خامل",
|
|
3088
3442
|
statusAway: "غائب",
|
|
3089
3443
|
},
|
|
3444
|
+
wizard: {
|
|
3445
|
+
missingRequired: "يرجى إكمال الحقول المطلوبة: {{fields}}",
|
|
3446
|
+
},
|
|
3447
|
+
appManagement: {
|
|
3448
|
+
title: "التطبيقات",
|
|
3449
|
+
subtitle: "إدارة جميع التطبيقات المُعدّة",
|
|
3450
|
+
newApp: "تطبيق جديد",
|
|
3451
|
+
searchLabel: "البحث في التطبيقات",
|
|
3452
|
+
searchPlaceholder: "البحث في التطبيقات…",
|
|
3453
|
+
selectedCount: "{{n}} محدد",
|
|
3454
|
+
bulkEnable: "تفعيل",
|
|
3455
|
+
bulkDisable: "تعطيل",
|
|
3456
|
+
selectAll: "تحديد الكل ({{n}})",
|
|
3457
|
+
empty: "لم يتم العثور على تطبيقات.",
|
|
3458
|
+
defaultBadge: "افتراضي",
|
|
3459
|
+
active: "نشط",
|
|
3460
|
+
inactive: "غير نشط",
|
|
3461
|
+
selectApp: "تحديد {{name}}",
|
|
3462
|
+
openApp: "فتح التطبيق",
|
|
3463
|
+
openAppNamed: "فتح {{name}}",
|
|
3464
|
+
editApp: "تعديل التطبيق",
|
|
3465
|
+
editAppNamed: "تعديل {{name}}",
|
|
3466
|
+
editWithAi: "التعديل بالذكاء الاصطناعي",
|
|
3467
|
+
editWithAiNamed: "تعديل {{name}} بالذكاء الاصطناعي",
|
|
3468
|
+
enableApp: "تفعيل التطبيق",
|
|
3469
|
+
disableApp: "تعطيل التطبيق",
|
|
3470
|
+
enableAppNamed: "تفعيل {{name}}",
|
|
3471
|
+
disableAppNamed: "تعطيل {{name}}",
|
|
3472
|
+
setDefault: "تعيين كافتراضي",
|
|
3473
|
+
setDefaultNamed: "تعيين {{name}} كافتراضي",
|
|
3474
|
+
deleteApp: "حذف التطبيق",
|
|
3475
|
+
deleteAppNamed: "حذف {{name}}",
|
|
3476
|
+
confirmDelete: "انقر مرة أخرى لتأكيد الحذف",
|
|
3477
|
+
confirmDeleteNamed: "تأكيد حذف {{name}}",
|
|
3478
|
+
toast: {
|
|
3479
|
+
noClient: "تعذّر الوصول إلى خدمة البيانات الوصفية",
|
|
3480
|
+
unknownError: "خطأ غير معروف",
|
|
3481
|
+
appEnabled: "تم تفعيل {{name}}",
|
|
3482
|
+
appDisabled: "تم تعطيل {{name}}",
|
|
3483
|
+
toggleFailed: "فشل تغيير حالة التطبيق: {{reason}}",
|
|
3484
|
+
setDefaultDone: "تم تعيين {{name}} كافتراضي",
|
|
3485
|
+
setDefaultFailed: "فشل تعيين التطبيق الافتراضي: {{reason}}",
|
|
3486
|
+
appDeleted: "تم حذف {{name}}",
|
|
3487
|
+
deleteFailed: "فشل حذف التطبيق: {{reason}}",
|
|
3488
|
+
bulkEnabled: "تم تفعيل {{n}} تطبيقات",
|
|
3489
|
+
bulkDisabled: "تم تعطيل {{n}} تطبيقات",
|
|
3490
|
+
bulkFailed: "فشل لـ {{n}}: {{details}}",
|
|
3491
|
+
bulkFailureEntry: "{{name}} ({{reason}})",
|
|
3492
|
+
bulkFailureJoiner: "؛ ",
|
|
3493
|
+
bulkOperationFailed: "فشلت العملية الجماعية: {{reason}}",
|
|
3494
|
+
},
|
|
3495
|
+
},
|
|
3090
3496
|
};
|
|
3091
3497
|
export default ar;
|