@object-ui/i18n 17.2.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 +1817 -1
- package/README.md +26 -13
- package/dist/index.d.ts +3 -1
- package/dist/index.js +14 -1
- package/dist/locales/ar.d.ts +550 -107
- package/dist/locales/ar.js +646 -156
- package/dist/locales/de.d.ts +550 -107
- package/dist/locales/de.js +661 -178
- package/dist/locales/en.d.ts +586 -143
- package/dist/locales/en.js +851 -143
- package/dist/locales/es.d.ts +550 -107
- package/dist/locales/es.js +647 -160
- package/dist/locales/fr.d.ts +550 -107
- package/dist/locales/fr.js +640 -155
- package/dist/locales/index.d.ts +5587 -1157
- package/dist/locales/ja.d.ts +550 -107
- package/dist/locales/ja.js +632 -149
- package/dist/locales/ko.d.ts +550 -107
- package/dist/locales/ko.js +638 -156
- package/dist/locales/pt.d.ts +550 -107
- package/dist/locales/pt.js +639 -157
- package/dist/locales/ru.d.ts +550 -107
- package/dist/locales/ru.js +650 -156
- package/dist/locales/zh.d.ts +588 -145
- package/dist/locales/zh.js +629 -145
- package/dist/pickLocalized.d.ts +21 -0
- package/dist/pickLocalized.js +40 -7
- package/dist/provider.d.ts +125 -1
- package/dist/provider.js +380 -4
- 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 +67 -3
- 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 +5 -4
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,11 +113,20 @@ const ar = {
|
|
|
76
113
|
required: "مطلوب",
|
|
77
114
|
optional: "اختياري",
|
|
78
115
|
selectOption: "اختر خياراً",
|
|
79
|
-
select: "
|
|
116
|
+
select: "اختر…",
|
|
80
117
|
openChat: "فتح المحادثة",
|
|
81
118
|
closeChat: "إغلاق المحادثة",
|
|
119
|
+
closePanel: "إغلاق اللوحة",
|
|
120
|
+
resizeDrawer: "تغيير عرض اللوحة",
|
|
121
|
+
itemCount: "{{count}} عناصر",
|
|
122
|
+
itemCountOne: "{{count}} عنصر",
|
|
82
123
|
toggleSidebar: "تبديل الشريط الجانبي",
|
|
83
124
|
package: "الحزمة",
|
|
125
|
+
done: "تم",
|
|
126
|
+
editInStudio: "التعديل في Studio",
|
|
127
|
+
record: "سجل",
|
|
128
|
+
retry: "إعادة المحاولة",
|
|
129
|
+
printDialogHint: "يفتح مربع حوار الطباعة في المتصفح (ليس تصديرًا إلى PDF)",
|
|
84
130
|
},
|
|
85
131
|
actions: {
|
|
86
132
|
decisionOutput: {
|
|
@@ -103,6 +149,7 @@ const ar = {
|
|
|
103
149
|
url: "يرجى إدخال رابط صالح",
|
|
104
150
|
pattern: "صيغة {{field}} غير صالحة",
|
|
105
151
|
formInvalid: "يرجى التحقق من الحقول المميزة: {{fields}}",
|
|
152
|
+
formInvalidJoiner: "، ",
|
|
106
153
|
unique: "{{field}} يجب أن يكون فريداً",
|
|
107
154
|
type: "{{field}} يجب أن يكون {{type}} صالحاً",
|
|
108
155
|
},
|
|
@@ -111,6 +158,9 @@ const ar = {
|
|
|
111
158
|
submitFailed: "تعذّر الحفظ. يرجى المحاولة مرة أخرى.",
|
|
112
159
|
discardTitle: "تجاهل التغييرات؟",
|
|
113
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: "املأ حقول النموذج ثم أرسل أو ألغِ.",
|
|
114
164
|
keepEditing: "متابعة التحرير",
|
|
115
165
|
discard: "تجاهل",
|
|
116
166
|
conflictTitle: "تعارض في الحفظ",
|
|
@@ -127,12 +177,21 @@ const ar = {
|
|
|
127
177
|
stepOf: "الخطوة {{current}} من {{total}}",
|
|
128
178
|
createTitle: "إنشاء {{object}}",
|
|
129
179
|
editTitle: "تعديل {{object}}",
|
|
180
|
+
viewTitle: "عرض {{object}}",
|
|
181
|
+
createTargetOrg: "الإنشاء في {{org}}",
|
|
130
182
|
saveRecord: "حفظ السجل",
|
|
131
183
|
create: "إنشاء",
|
|
132
184
|
update: "تحديث",
|
|
133
185
|
createSuccess: "تم إنشاء {{object}}",
|
|
134
186
|
updateSuccess: "تم تحديث {{object}}",
|
|
135
187
|
deleteSuccess: "تم حذف {{object}}",
|
|
188
|
+
fullscreen: {
|
|
189
|
+
title: "تحرير النص",
|
|
190
|
+
description: "حرّر قيمة النص الكاملة، ثم احفظ التغييرات أو ألغِها.",
|
|
191
|
+
done: "تم",
|
|
192
|
+
toggle: "تحرير {{label}} بملء الشاشة",
|
|
193
|
+
textFallback: "النص",
|
|
194
|
+
},
|
|
136
195
|
},
|
|
137
196
|
fields: {
|
|
138
197
|
image: {
|
|
@@ -170,7 +229,11 @@ const ar = {
|
|
|
170
229
|
richText: {
|
|
171
230
|
format: "التنسيق: {{format}}",
|
|
172
231
|
basicEditorHint: "محرر النص الغني (أساسي)",
|
|
173
|
-
placeholder: "اكتب
|
|
232
|
+
placeholder: "اكتب شيئاً…",
|
|
233
|
+
},
|
|
234
|
+
options: {
|
|
235
|
+
empty: "لا توجد خيارات متاحة",
|
|
236
|
+
selectFirst: "اختر {{fields}} أولاً",
|
|
174
237
|
},
|
|
175
238
|
objectRef: {
|
|
176
239
|
loading: "جارٍ تحميل الكائنات…",
|
|
@@ -199,6 +262,13 @@ const ar = {
|
|
|
199
262
|
editAsJson: "التحرير بصيغة JSON",
|
|
200
263
|
useVisualBuilder: "استخدام المُنشئ المرئي",
|
|
201
264
|
},
|
|
265
|
+
tags: {
|
|
266
|
+
placeholder: "اكتب واضغط Enter للإضافة…",
|
|
267
|
+
},
|
|
268
|
+
textarea: {
|
|
269
|
+
characterCount: "عدد الأحرف: {{count}} من {{max}}",
|
|
270
|
+
charactersRemaining: "الأحرف المتبقية: {{count}}",
|
|
271
|
+
},
|
|
202
272
|
},
|
|
203
273
|
table: {
|
|
204
274
|
rowsPerPage: "صفوف في الصفحة",
|
|
@@ -225,7 +295,7 @@ const ar = {
|
|
|
225
295
|
saveAll: "حفظ الكل ({{count}})",
|
|
226
296
|
addRecord: "إضافة سجل",
|
|
227
297
|
open: "فتح",
|
|
228
|
-
search: "
|
|
298
|
+
search: "بحث…",
|
|
229
299
|
modified: "{{count}} صف(صفوف) معدّل(ة)",
|
|
230
300
|
saveFailed: 'فشل الحفظ',
|
|
231
301
|
selected: "{{count}} محدد(ة)",
|
|
@@ -269,7 +339,7 @@ const ar = {
|
|
|
269
339
|
delete: "حذف",
|
|
270
340
|
export: "تصدير",
|
|
271
341
|
exportAs: "تصدير كـ {{format}}",
|
|
272
|
-
loading: "جاري تحميل
|
|
342
|
+
loading: "جاري تحميل الشبكة…",
|
|
273
343
|
errorLoading: "خطأ في تحميل الشبكة",
|
|
274
344
|
pullToRefresh: "اسحب للتحديث",
|
|
275
345
|
refreshing: "جاري التحديث…",
|
|
@@ -280,6 +350,22 @@ const ar = {
|
|
|
280
350
|
yes: "نعم",
|
|
281
351
|
no: "لا",
|
|
282
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
|
+
},
|
|
283
369
|
toolbar: {
|
|
284
370
|
densityMode: "الكثافة",
|
|
285
371
|
densityCompact: "مضغوط",
|
|
@@ -393,12 +479,12 @@ const ar = {
|
|
|
393
479
|
templateName: "اسم القالب",
|
|
394
480
|
save: "حفظ",
|
|
395
481
|
deleteTemplate: "حذف القالب",
|
|
396
|
-
savedMapping: '
|
|
397
|
-
chooseSavedMapping: '
|
|
398
|
-
manualMapping: '—
|
|
399
|
-
transform: '
|
|
400
|
-
savedMappingHint: '
|
|
401
|
-
savedMappingPreviewNote: '
|
|
482
|
+
savedMapping: 'التعيين المحفوظ:',
|
|
483
|
+
chooseSavedMapping: 'اختر تعييناً محفوظاً…',
|
|
484
|
+
manualMapping: '— تعيين الأعمدة يدويًا —',
|
|
485
|
+
transform: 'التحويل',
|
|
486
|
+
savedMappingHint: 'يطبّق التعيين "{{name}}" إعادة التسمية + التحويلات + تحويل الأنواع على الخادم. تعيين الأعمدة للقراءة فقط.',
|
|
487
|
+
savedMappingPreviewNote: 'تعرض المعاينة الأعمدة المصدر لديك؛ وعند الاستيراد يطبّق التعيين "{{name}}" إعادة التسمية والتحويلات وتحويل الأنواع على الخادم.',
|
|
402
488
|
csvColumn: "العمود",
|
|
403
489
|
mapsTo: "يُعيَّن إلى",
|
|
404
490
|
typeMismatch: "يبدو أنه {{type}}",
|
|
@@ -458,6 +544,8 @@ const ar = {
|
|
|
458
544
|
loadErrorUnauthorizedMessage: "انتهت صلاحية جلستك أو تم تسجيل خروجك. سجّل الدخول مرة أخرى لعرض هذه السجلات.",
|
|
459
545
|
loadErrorRejectedTitle: "تم رفض استعلام طريقة العرض هذه",
|
|
460
546
|
loadErrorRejectedMessage: "تعذّر على الخادم معالجة عامل التصفية أو خيارات الاستعلام لطريقة العرض هذه. مسح عوامل التصفية يحل المشكلة عادةً؛ وإذا كانت طريقة العرض محفوظة بهذا الشكل، فيجب على المسؤول تصحيحها.",
|
|
547
|
+
loadErrorApiDisabledTitle: "هذا الكائن غير متاح عبر واجهة API",
|
|
548
|
+
loadErrorApiDisabledMessage: "لا يمكن لهذه الصفحة تحميل سجلاتها لأن الكائن غير معروض عبر واجهة API. هذا إعداد خاص بالكائن نفسه وليس صلاحية — يجب على المسؤول تفعيل الوصول عبر API حتى تعمل هذه الصفحة.",
|
|
461
549
|
retry: "إعادة المحاولة",
|
|
462
550
|
managedBy: {
|
|
463
551
|
system: {
|
|
@@ -482,7 +570,7 @@ const ar = {
|
|
|
482
570
|
},
|
|
483
571
|
},
|
|
484
572
|
refresh: "تحديث",
|
|
485
|
-
loading:
|
|
573
|
+
loading: "جارٍ تحميل السجلات…",
|
|
486
574
|
recordCount: "{{count}} سجلات",
|
|
487
575
|
recordCountOne: "{{count}} سجل",
|
|
488
576
|
addRecord: "إضافة سجل",
|
|
@@ -494,7 +582,8 @@ const ar = {
|
|
|
494
582
|
sort: "ترتيب",
|
|
495
583
|
sortRecords: "ترتيب السجلات",
|
|
496
584
|
sortByIdSuffix: "(حسب المعرّف)",
|
|
497
|
-
sortRelationalHint: "الأعمدة التي تشير إلى سجل آخر غير مدرجة هنا: يمكن ترتيبها حسب المعرّف المخزَّن فقط، وليس حسب الاسم الظاهر في الخلية. للترتيب حسب ذلك الاسم،
|
|
585
|
+
sortRelationalHint: "الأعمدة التي تشير إلى سجل آخر غير مدرجة هنا: يمكن ترتيبها حسب المعرّف المخزَّن فقط، وليس حسب الاسم الظاهر في الخلية. للترتيب حسب ذلك الاسم، أضِف الاسم إلى هذا الكائن نفسه (إلغاء التطبيع) كحقل مخزَّن يُكتب عند تغيّر المصدر، ثم رتّب حسبه. وليس حقل صيغة: فهو افتراضي، ولا يُخزَّن له أي عمود، ويرفض الخادم الترتيب حسبه.",
|
|
586
|
+
resetSortToDefault: "إعادة التعيين إلى الترتيب الافتراضي للعرض",
|
|
498
587
|
group: "تجميع",
|
|
499
588
|
groupBy: "تجميع حسب",
|
|
500
589
|
export: "تصدير",
|
|
@@ -552,13 +641,16 @@ const ar = {
|
|
|
552
641
|
},
|
|
553
642
|
kanban: {
|
|
554
643
|
uncategorized: "غير مصنّف",
|
|
644
|
+
columns: "أعمدة",
|
|
555
645
|
addCard: "إضافة بطاقة",
|
|
556
646
|
addColumn: "إضافة عمود",
|
|
557
647
|
moveCard: "نقل بطاقة",
|
|
558
648
|
deleteCard: "حذف بطاقة",
|
|
559
649
|
deleteColumn: "حذف عمود",
|
|
560
650
|
noCards: "لا بطاقات",
|
|
561
|
-
cardTitlePlaceholder: "أدخل عنوان
|
|
651
|
+
cardTitlePlaceholder: "أدخل عنوان البطاقة…",
|
|
652
|
+
requiredFieldsTitle: "أكمل الحقول المطلوبة",
|
|
653
|
+
requiredFieldsDescription: "يجعل هذا النقل الحقول أدناه مطلوبة. أكملها للمتابعة.",
|
|
562
654
|
},
|
|
563
655
|
timeline: {
|
|
564
656
|
bucket: {
|
|
@@ -571,6 +663,13 @@ const ar = {
|
|
|
571
663
|
noDate: "بدون تاريخ",
|
|
572
664
|
unassigned: "غير معين",
|
|
573
665
|
},
|
|
666
|
+
scale: {
|
|
667
|
+
week: "الأسبوع {{n}}",
|
|
668
|
+
quarter: "الربع {{quarter}} {{year}}",
|
|
669
|
+
},
|
|
670
|
+
gantt: {
|
|
671
|
+
rowLabel: "العناصر",
|
|
672
|
+
},
|
|
574
673
|
},
|
|
575
674
|
gantt: {
|
|
576
675
|
viewMode: {
|
|
@@ -617,6 +716,18 @@ const ar = {
|
|
|
617
716
|
ff: "نهاية → نهاية",
|
|
618
717
|
sf: "بداية → نهاية",
|
|
619
718
|
},
|
|
719
|
+
linkEnd: {
|
|
720
|
+
start: "بداية",
|
|
721
|
+
end: "نهاية",
|
|
722
|
+
},
|
|
723
|
+
link: {
|
|
724
|
+
rejected: {
|
|
725
|
+
self: "لا يمكن أن تعتمد المهمة على نفسها.",
|
|
726
|
+
locked: "هذا الصف مقفل ولا يمكنه استقبال تبعية جديدة.",
|
|
727
|
+
group: "لا يمكن لصف التلخيص استقبال تبعية — اربط إحدى مهامه بدلاً من ذلك.",
|
|
728
|
+
cycle: "هذا الرابط سينشئ تبعية دائرية.",
|
|
729
|
+
},
|
|
730
|
+
},
|
|
620
731
|
conflict: {
|
|
621
732
|
title: "تعارض في الجدولة",
|
|
622
733
|
body: "يتعارض هذا النقل مع قيود التبعية. هل تريد إعادة جدولة {{count}} من المهام المتأثرة تلقائيًا؟",
|
|
@@ -625,8 +736,8 @@ const ar = {
|
|
|
625
736
|
},
|
|
626
737
|
autoScheduleDlg: {
|
|
627
738
|
title: "الجدولة التلقائية",
|
|
628
|
-
body: "هل تريد تأخير {count} من المهام لتلبية روابط التبعية؟",
|
|
629
|
-
skipped: "{count} من المهام المقفلة تخالف الروابط أيضًا وقد تم تخطيها.",
|
|
739
|
+
body: "هل تريد تأخير {{count}} من المهام لتلبية روابط التبعية؟",
|
|
740
|
+
skipped: "{{count}} من المهام المقفلة تخالف الروابط أيضًا وقد تم تخطيها.",
|
|
630
741
|
confirm: "تطبيق",
|
|
631
742
|
cancel: "إلغاء",
|
|
632
743
|
none: "جميع التبعيات مستوفاة — لا شيء لإعادة جدولته.",
|
|
@@ -637,6 +748,12 @@ const ar = {
|
|
|
637
748
|
over: "محمّل بإفراط",
|
|
638
749
|
empty: "لا توجد مهام لتخصيصها.",
|
|
639
750
|
},
|
|
751
|
+
quickFilter: {
|
|
752
|
+
all: "الكل",
|
|
753
|
+
clear: "مسح عوامل التصفية",
|
|
754
|
+
empty: "لا توجد خيارات",
|
|
755
|
+
resultSummary: "عرض {shown} / {total} من المهام",
|
|
756
|
+
},
|
|
640
757
|
readOnly: "للقراءة فقط",
|
|
641
758
|
readOnlyHint: "التحرير معطّل في هذا العرض.",
|
|
642
759
|
lockedHint: "لا توجد صلاحية تحرير",
|
|
@@ -657,6 +774,7 @@ const ar = {
|
|
|
657
774
|
exportPng: "تصدير بصيغة PNG",
|
|
658
775
|
exportPdf: "تصدير PDF",
|
|
659
776
|
saveLayout: "حفظ التخطيط",
|
|
777
|
+
refresh: "تحديث",
|
|
660
778
|
undo: "تراجع",
|
|
661
779
|
redo: "إعادة",
|
|
662
780
|
prevPeriod: "الفترة السابقة",
|
|
@@ -697,11 +815,11 @@ const ar = {
|
|
|
697
815
|
defaultBadge: "افتراضي",
|
|
698
816
|
tabActionsFor: "إجراءات العرض لـ {{name}}",
|
|
699
817
|
readonlyAriaLabel: "عرض للقراءة فقط",
|
|
700
|
-
readonlyTooltip: "عرض النظام —
|
|
818
|
+
readonlyTooltip: "عرض النظام — معرَّف في الكود، للقراءة فقط.",
|
|
701
819
|
},
|
|
702
820
|
designer: {
|
|
703
|
-
undo:
|
|
704
|
-
redo:
|
|
821
|
+
undo: "تراجع",
|
|
822
|
+
redo: "إعادة",
|
|
705
823
|
},
|
|
706
824
|
detail: {
|
|
707
825
|
editInlineHint: "انقر نقرًا مزدوجًا للتحرير",
|
|
@@ -721,6 +839,15 @@ const ar = {
|
|
|
721
839
|
viewHistory: "عرض السجل",
|
|
722
840
|
delete: "حذف",
|
|
723
841
|
moreActions: "المزيد من الإجراءات",
|
|
842
|
+
addReaction: "إضافة تفاعل",
|
|
843
|
+
pageHeaderActions: "إجراءات رأس الصفحة",
|
|
844
|
+
emojiPicker: "منتقي الرموز التعبيرية",
|
|
845
|
+
reactionCount: "{{emoji}} {{count}} تفاعلات",
|
|
846
|
+
reactionCountOne: "{{emoji}} {{count}} تفاعل",
|
|
847
|
+
recordDetail: "تفاصيل السجل",
|
|
848
|
+
recordDetailWithLabel: "تفاصيل {{label}}",
|
|
849
|
+
openAsFullPage: "فتح كصفحة كاملة",
|
|
850
|
+
recordDetailOverlay: "طبقة تفاصيل السجل الخاصة بـ {{title}}.",
|
|
724
851
|
addToFavorites: "إضافة إلى المفضلة",
|
|
725
852
|
removeFromFavorites: "إزالة من المفضلة",
|
|
726
853
|
previousRecord: "السجل السابق",
|
|
@@ -734,13 +861,15 @@ const ar = {
|
|
|
734
861
|
relatedRecords: "{{count}} سجلات",
|
|
735
862
|
relatedRecordOne: "{{count}} سجل",
|
|
736
863
|
noRelatedRecords: "لا توجد سجلات ذات صلة",
|
|
737
|
-
loading: "جاري
|
|
864
|
+
loading: "جاري التحميل…",
|
|
738
865
|
copyToClipboard: "نسخ إلى الحافظة",
|
|
739
866
|
copied: "تم النسخ!",
|
|
740
867
|
deleteConfirmation: "هل أنت متأكد أنك تريد حذف هذا السجل؟",
|
|
868
|
+
deleted: "تم حذف السجل",
|
|
741
869
|
editRecord: "تحرير السجل",
|
|
742
870
|
viewAll: "عرض الكل",
|
|
743
871
|
new: "جديد",
|
|
872
|
+
add: "إضافة",
|
|
744
873
|
emptyValue: "—",
|
|
745
874
|
comments: "التعليقات",
|
|
746
875
|
searchComments: "البحث في التعليقات…",
|
|
@@ -805,6 +934,7 @@ const ar = {
|
|
|
805
934
|
loadMore: "تحميل المزيد",
|
|
806
935
|
edited: "(معدل)",
|
|
807
936
|
via: "عبر {{source}}",
|
|
937
|
+
viewSource: "عرض المصدر",
|
|
808
938
|
replyCount: "{{count}} رد",
|
|
809
939
|
replyCountPlural: "{{count}} ردود",
|
|
810
940
|
replyPlaceholder: "رد…",
|
|
@@ -817,14 +947,15 @@ const ar = {
|
|
|
817
947
|
saving: "جارٍ الحفظ…",
|
|
818
948
|
lockedByApproval: "مقفل للموافقة",
|
|
819
949
|
lockedTooltip: "يحتوي هذا السجل على طلب موافقة معلق؛ التعديل مقفل",
|
|
820
|
-
writeStrippedTitle: "
|
|
821
|
-
writeStrippedReadonly: "للقراءة فقط، لذلك لم
|
|
822
|
-
writeStrippedByState: "غير قابلة للتعديل في الحالة الحالية لهذا السجل، لذلك لم
|
|
950
|
+
writeStrippedTitle: "تم الحفظ، لكن بعض الحقول لم تُطبَّق",
|
|
951
|
+
writeStrippedReadonly: "للقراءة فقط، لذلك لم تُطبَّق: {{fields}}",
|
|
952
|
+
writeStrippedByState: "غير قابلة للتعديل في الحالة الحالية لهذا السجل، لذلك لم تُطبَّق: {{fields}}",
|
|
823
953
|
approvalPendingEditable: "قيد الموافقة · قابل للتعديل",
|
|
824
954
|
approvalPendingTooltip: "يحتوي هذا السجل على طلب موافقة معلق، لكن هذه الخطوة لا تزال تسمح بالتعديل",
|
|
825
955
|
approvalProgress: "الموافقات — {{got}} من {{need}}",
|
|
826
956
|
approvalProgressGroups: "التوقيعات — {{got}} من {{need}} مجموعات",
|
|
827
957
|
approvalProgressLabel: "تقدّم الموافقة",
|
|
958
|
+
approvalsPanelTitle: "الموافقات",
|
|
828
959
|
cancelApproval: "إلغاء الموافقة",
|
|
829
960
|
cancelApprovalInFlight: "جارٍ الإلغاء…",
|
|
830
961
|
cancelApprovalTooltip: "إلغاء طلب الموافقة المعلق لفتح قفل السجل",
|
|
@@ -845,9 +976,11 @@ const ar = {
|
|
|
845
976
|
concurrentUpdateReload: "تحميل النسخة الحالية",
|
|
846
977
|
concurrentUpdateOverwrite: "الكتابة فوقه على أي حال",
|
|
847
978
|
concurrentUpdateCancel: "إلغاء",
|
|
979
|
+
concurrentUpdateRecordLabel: "هذا السجل",
|
|
848
980
|
openInNewTab: "فتح في علامة تبويب جديدة",
|
|
849
981
|
activity: "النشاط",
|
|
850
982
|
history: "السجل",
|
|
983
|
+
historyEmpty: "لا يوجد سجل بعد",
|
|
851
984
|
editRow: "تعديل",
|
|
852
985
|
deleteRow: "حذف",
|
|
853
986
|
deleteRowConfirmation: "حذف هذا السجل؟",
|
|
@@ -857,10 +990,16 @@ const ar = {
|
|
|
857
990
|
nextPage: "التالي",
|
|
858
991
|
pageOf: "صفحة {{current}} من {{total}}",
|
|
859
992
|
sortBy: "ترتيب حسب",
|
|
860
|
-
filterPlaceholder: "
|
|
993
|
+
filterPlaceholder: "تصفية…",
|
|
861
994
|
highlightFields: "الحقول الرئيسية",
|
|
862
995
|
createdBy: "أنشأه",
|
|
863
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}} فارغ(فارغة)",
|
|
864
1003
|
showEmptyRelated_one: "+ {{count}} فارغ",
|
|
865
1004
|
showEmptyRelated_other: "+ {{count}} فارغة",
|
|
866
1005
|
copyEmail: "نسخ البريد الإلكتروني",
|
|
@@ -872,7 +1011,8 @@ const ar = {
|
|
|
872
1011
|
},
|
|
873
1012
|
chart: {
|
|
874
1013
|
noData: "لا تتوفر بيانات للرسم البياني",
|
|
875
|
-
loading: "جاري تحميل الرسم
|
|
1014
|
+
loading: "جاري تحميل الرسم البياني…",
|
|
1015
|
+
nullCategory: "(غير محدد)",
|
|
876
1016
|
},
|
|
877
1017
|
map: {
|
|
878
1018
|
searchLocations: "البحث عن المواقع…",
|
|
@@ -894,8 +1034,8 @@ const ar = {
|
|
|
894
1034
|
properties: "الخصائص",
|
|
895
1035
|
connections: "الاتصالات",
|
|
896
1036
|
quickConnect: "اتصال سريع",
|
|
897
|
-
fromPlaceholder: "
|
|
898
|
-
toPlaceholder: "
|
|
1037
|
+
fromPlaceholder: "من…",
|
|
1038
|
+
toPlaceholder: "إلى…",
|
|
899
1039
|
connect: "ربط",
|
|
900
1040
|
label: "التسمية",
|
|
901
1041
|
type: "النوع",
|
|
@@ -943,6 +1083,7 @@ const ar = {
|
|
|
943
1083
|
},
|
|
944
1084
|
dashboard: {
|
|
945
1085
|
noRows: "لا توجد صفوف",
|
|
1086
|
+
loading: "جارٍ التحميل…",
|
|
946
1087
|
pickMeasures: "اختر المقاييس (القيم) لأداة مجموعة البيانات هذه.",
|
|
947
1088
|
datasetUnsupported: "مصدر البيانات هذا لا يدعم استعلامات مجموعات البيانات.",
|
|
948
1089
|
details: "التفاصيل",
|
|
@@ -1036,7 +1177,7 @@ const ar = {
|
|
|
1036
1177
|
faviconUrl: "Favicon URL",
|
|
1037
1178
|
preview: "معاينة",
|
|
1038
1179
|
complete: "إكمال",
|
|
1039
|
-
snakeCaseHint: "
|
|
1180
|
+
snakeCaseHint: "يجب أن يكون بصيغة snake_case (مثل my_app)",
|
|
1040
1181
|
modeEdit: "تعديل",
|
|
1041
1182
|
modePreview: "معاينة",
|
|
1042
1183
|
modeCode: "كود",
|
|
@@ -1200,6 +1341,7 @@ const ar = {
|
|
|
1200
1341
|
},
|
|
1201
1342
|
},
|
|
1202
1343
|
console: {
|
|
1344
|
+
saveAdvisoryTitle: "تم الحفظ — أنتج فحص التأليف {{count}} ملاحظة إرشادية",
|
|
1203
1345
|
settingsHub: {
|
|
1204
1346
|
title: "الإعدادات",
|
|
1205
1347
|
subtitle: "اضبط مساحة العمل والتكاملات وأعلام الميزات.",
|
|
@@ -1266,7 +1408,7 @@ const ar = {
|
|
|
1266
1408
|
shareTitle: "مشاركة هذه المحادثة",
|
|
1267
1409
|
shareDisabledTitle: "ابدأ المحادثة لتفعيل المشاركة",
|
|
1268
1410
|
newChat: "جديدة",
|
|
1269
|
-
searchChats: "البحث في
|
|
1411
|
+
searchChats: "البحث في المحادثات…",
|
|
1270
1412
|
noChatsYet: "لا توجد محادثات بعد",
|
|
1271
1413
|
noChatsDescription: "ابدأ محادثة جديدة لتظهر هنا.",
|
|
1272
1414
|
noMatchingChats: "لا توجد محادثات مطابقة.",
|
|
@@ -1275,18 +1417,18 @@ const ar = {
|
|
|
1275
1417
|
deleteConversation: "حذف المحادثة",
|
|
1276
1418
|
saveRename: "حفظ الاسم",
|
|
1277
1419
|
cancelRename: "إلغاء إعادة التسمية",
|
|
1278
|
-
loadingHistory: "جارٍ تحميل سجل
|
|
1420
|
+
loadingHistory: "جارٍ تحميل سجل المحادثة…",
|
|
1279
1421
|
conversationReady: "المحادثة جاهزة",
|
|
1280
1422
|
preparingConversation: "جارٍ تجهيز محادثة جديدة",
|
|
1281
1423
|
offlineDemoMode: "وضع العرض دون اتصال — قائمة الوكلاء غير متاحة",
|
|
1282
1424
|
sendFailedRateLimited: "أنت ترسل الرسائل بسرعة كبيرة. رسالتك محفوظة بالأسفل — انتظر لحظة ثم أعد المحاولة.",
|
|
1283
1425
|
sendFailedGeneric: "تعذّر إرسال رسالتك. وهي محفوظة بالأسفل — يرجى إعادة المحاولة.",
|
|
1284
|
-
askAgent: "اسأل {{agent}}
|
|
1426
|
+
askAgent: "اسأل {{agent}}…",
|
|
1285
1427
|
assistant: "المساعد",
|
|
1286
1428
|
liveCanvas: "معاينة حية — {{app}} (مسودة)",
|
|
1287
1429
|
liveCanvasUnlisted: "تطبيق حي — {{app}} (غير مُدرج حتى النشر)",
|
|
1288
|
-
loadingAgents: "جارٍ تحميل
|
|
1289
|
-
askAnything: "اسأل عن أي
|
|
1430
|
+
loadingAgents: "جارٍ تحميل الوكلاء…",
|
|
1431
|
+
askAnything: "اسأل عن أي شيء…",
|
|
1290
1432
|
emptyTitle: "ابدأ محادثة",
|
|
1291
1433
|
emptyDescription: "اسأل عن أي شيء — يمكن للمساعد الاطلاع على سياق تطبيقك الحالي.",
|
|
1292
1434
|
switchAssistant: "تبديل المساعد",
|
|
@@ -1389,9 +1531,60 @@ const ar = {
|
|
|
1389
1531
|
createSeed: "إنشاء بيانات تجريبية",
|
|
1390
1532
|
createPackage: "إنشاء حزمة تطبيق",
|
|
1391
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
|
+
},
|
|
1392
1585
|
},
|
|
1393
1586
|
title: "وحدة تحكم ObjectStack",
|
|
1394
|
-
initializing: "جاري تهيئة
|
|
1587
|
+
initializing: "جاري تهيئة التطبيق…",
|
|
1395
1588
|
loadingHint: "قد يستغرق إعداد بيئة جديدة بعض الوقت.",
|
|
1396
1589
|
breadcrumb: {
|
|
1397
1590
|
dashboards: "لوحات المعلومات",
|
|
@@ -1399,6 +1592,31 @@ const ar = {
|
|
|
1399
1592
|
reports: "التقارير",
|
|
1400
1593
|
system: "النظام",
|
|
1401
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
|
+
},
|
|
1402
1620
|
loadingSteps: {
|
|
1403
1621
|
connecting: "جاري الاتصال بمصدر البيانات",
|
|
1404
1622
|
loadingConfig: "جاري تحميل الإعدادات",
|
|
@@ -1414,6 +1632,13 @@ const ar = {
|
|
|
1414
1632
|
retry: "إعادة المحاولة",
|
|
1415
1633
|
retrying: "جاري إعادة المحاولة…",
|
|
1416
1634
|
},
|
|
1635
|
+
serverAction: {
|
|
1636
|
+
openingTitle: "جارٍ الفتح…",
|
|
1637
|
+
openingBody: "جارٍ الفتح… قد يستغرق ذلك لحظة.",
|
|
1638
|
+
popupBlockedTitle: "تم حظر النافذة المنبثقة",
|
|
1639
|
+
popupBlockedDescription: "حظر المتصفح فتح علامة التبويب الجديدة.",
|
|
1640
|
+
popupBlockedAction: "فتح في علامة تبويب جديدة",
|
|
1641
|
+
},
|
|
1417
1642
|
shortcuts: {
|
|
1418
1643
|
title: "اختصارات لوحة المفاتيح",
|
|
1419
1644
|
description: "مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.",
|
|
@@ -1421,6 +1646,7 @@ const ar = {
|
|
|
1421
1646
|
general: "عام",
|
|
1422
1647
|
navigation: "التنقل",
|
|
1423
1648
|
dataViews: "عروض البيانات",
|
|
1649
|
+
aiChat: "مساعد الذكاء الاصطناعي",
|
|
1424
1650
|
preferences: "التفضيلات",
|
|
1425
1651
|
},
|
|
1426
1652
|
openCommandPalette: "فتح لوحة الأوامر",
|
|
@@ -1431,11 +1657,13 @@ const ar = {
|
|
|
1431
1657
|
createRecord: "إنشاء سجل جديد",
|
|
1432
1658
|
refreshData: "تحديث البيانات",
|
|
1433
1659
|
editRecord: "تعديل السجل المحدد",
|
|
1660
|
+
newChat: "محادثة جديدة",
|
|
1661
|
+
toggleChatsList: "تبديل قائمة المحادثات",
|
|
1434
1662
|
toggleDarkMode: "تبديل الوضع الداكن",
|
|
1435
1663
|
},
|
|
1436
1664
|
commandPalette: {
|
|
1437
1665
|
title: "لوحة الأوامر",
|
|
1438
|
-
placeholder: "اكتب أمراً أو
|
|
1666
|
+
placeholder: "اكتب أمراً أو ابحث…",
|
|
1439
1667
|
noResults: "لم يتم العثور على نتائج.",
|
|
1440
1668
|
objects: "الكائنات",
|
|
1441
1669
|
dashboards: "لوحات المعلومات",
|
|
@@ -1461,6 +1689,12 @@ const ar = {
|
|
|
1461
1689
|
goHome: "العودة للرئيسية",
|
|
1462
1690
|
errorDetails: "تفاصيل الخطأ (وضع التطوير فقط)",
|
|
1463
1691
|
},
|
|
1692
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1693
|
+
notFound: {
|
|
1694
|
+
title: "الصفحة غير موجودة",
|
|
1695
|
+
description: "الرابط الذي فتحته لا يطابق أي عرض في هذا التطبيق.",
|
|
1696
|
+
back: "رجوع",
|
|
1697
|
+
},
|
|
1464
1698
|
theme: {
|
|
1465
1699
|
toggle: "تبديل المظهر",
|
|
1466
1700
|
light: "فاتح",
|
|
@@ -1476,11 +1710,15 @@ const ar = {
|
|
|
1476
1710
|
viewNameHelp: "مفتاح برمجي (snake_case). يُملأ تلقائيًا من العنوان — عدّله إن أردت.",
|
|
1477
1711
|
viewNameRequired: "أدخل مفتاحًا (أحرف إنجليزية صغيرة وأرقام وشرطة سفلية). لا يُملأ تلقائيًا للعناوين غير اللاتينية.",
|
|
1478
1712
|
viewNameInvalid: "استخدم أحرفًا إنجليزية صغيرة وأرقامًا وشرطات سفلية؛ وابدأ بحرف أو شرطة سفلية.",
|
|
1479
|
-
systemViewReadonly:
|
|
1480
|
-
|
|
1713
|
+
systemViewReadonly: "عرض النظام معرَّف في الكود — للقراءة فقط.",
|
|
1714
|
+
cannotEditMetaView: "هذا عرض مدمج معرَّف في الكود — لا يمكن تعديله.",
|
|
1715
|
+
cannotDeleteMetaView: "هذا عرض مدمج معرَّف في الكود — لا يمكن حذفه.",
|
|
1716
|
+
expandToPage: "فتح كصفحة كاملة",
|
|
1481
1717
|
objectNotFound: "الكائن غير موجود",
|
|
1482
1718
|
objectNotFoundDescription: "الكائن \"{{objectName}}\" غير موجود في الإعدادات الحالية.",
|
|
1483
1719
|
objectNotFoundHint: "تحقق من إعدادات التنقل في تطبيقك أو اختر كائنًا آخر من الشريط الجانبي.",
|
|
1720
|
+
filterOrNotSavable: "يستخدم هذا الفلتر «أو» بين الشروط، وهو ما لا يمكن للعرض المحفوظ تخزينه بعد. لا يزال مطبقًا على هذه القائمة — أزل تجميع «أو» لحفظه في العرض.",
|
|
1721
|
+
filterNestedNotSavable: "يستخدم هذا الفلتر مجموعات شروط متداخلة لا يمكن للعرض المحفوظ تخزينها. حوّله إلى قائمة شروط واحدة لحفظه في العرض.",
|
|
1484
1722
|
allRecords: "جميع السجلات",
|
|
1485
1723
|
exitDesignMode: "الخروج من وضع التصميم",
|
|
1486
1724
|
enterDesignMode: "الدخول إلى وضع التصميم",
|
|
@@ -1507,7 +1745,7 @@ const ar = {
|
|
|
1507
1745
|
exportPrintHint: "صيغ التصدير والطباعة وعرض عدد السجلات",
|
|
1508
1746
|
showAllFields: "إظهار الكل",
|
|
1509
1747
|
hideAllFields: "إخفاء الكل",
|
|
1510
|
-
searchFields: "البحث في
|
|
1748
|
+
searchFields: "البحث في الحقول…",
|
|
1511
1749
|
title: "العنوان",
|
|
1512
1750
|
description: "الوصف",
|
|
1513
1751
|
data: "البيانات",
|
|
@@ -1546,7 +1784,7 @@ const ar = {
|
|
|
1546
1784
|
longitudeField: "حقل خط الطول",
|
|
1547
1785
|
imageField: "حقل الصورة",
|
|
1548
1786
|
dateField: "حقل التاريخ",
|
|
1549
|
-
selectField: "اختر
|
|
1787
|
+
selectField: "اختر حقلاً…",
|
|
1550
1788
|
gridOptionsHint: "يستخدم عرض الشبكة الأعمدة المكونة أعلاه.",
|
|
1551
1789
|
groupBy: "تجميع حسب",
|
|
1552
1790
|
prefixField: "حقل البادئة",
|
|
@@ -1609,7 +1847,7 @@ const ar = {
|
|
|
1609
1847
|
latitudeFieldHelp: "حقل يحتوي على خط العرض (حقول جغرافية فقط).",
|
|
1610
1848
|
longitudeFieldHelp: "حقل يحتوي على خط الطول (حقول جغرافية فقط).",
|
|
1611
1849
|
imageFieldHelp: "تأتي غلاف المعرض من هذا الحقل للصورة أو المرفق.",
|
|
1612
|
-
selectOption: "
|
|
1850
|
+
selectOption: "تحديد…",
|
|
1613
1851
|
noEligibleFieldForType: "لا يوجد حقل مؤهل من هذا النوع. أضف حقلاً إلى الكائن أولاً.",
|
|
1614
1852
|
viewTypeUnavailable: "لا يحتوي هذا الكائن على حقل يمكن أن يعمل كـ \"{{field}}\".",
|
|
1615
1853
|
viewTypeUnavailableShort: "غير مدعوم من هذا الكائن.",
|
|
@@ -1659,7 +1897,7 @@ const ar = {
|
|
|
1659
1897
|
ufDropdown: "قائمة منسدلة",
|
|
1660
1898
|
ufTabs: "علامات تبويب",
|
|
1661
1899
|
ufToggle: "تبديل",
|
|
1662
|
-
ufAddField: "+ إضافة حقل
|
|
1900
|
+
ufAddField: "+ إضافة حقل فلتر…",
|
|
1663
1901
|
ufNoFields: "لا حقول متاحة",
|
|
1664
1902
|
ufAddTab: "+ إضافة علامة تبويب",
|
|
1665
1903
|
ufTabLabel: "التسمية",
|
|
@@ -1719,7 +1957,7 @@ const ar = {
|
|
|
1719
1957
|
passwordPlaceholder: "أدخل كلمة المرور",
|
|
1720
1958
|
forgotPasswordText: "نسيت كلمة المرور؟",
|
|
1721
1959
|
submitButton: "تسجيل الدخول",
|
|
1722
|
-
submittingButton: "جارٍ تسجيل
|
|
1960
|
+
submittingButton: "جارٍ تسجيل الدخول…",
|
|
1723
1961
|
noAccountText: "ليس لديك حساب؟",
|
|
1724
1962
|
signUpText: "إنشاء حساب",
|
|
1725
1963
|
errors: {
|
|
@@ -1727,6 +1965,18 @@ const ar = {
|
|
|
1727
1965
|
invalidCredentials: "بريد إلكتروني أو كلمة مرور غير صحيحة. يرجى المحاولة مرة أخرى.",
|
|
1728
1966
|
emailNotVerified: "يرجى التحقق من بريدك الإلكتروني قبل تسجيل الدخول.",
|
|
1729
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: "تسجيل الدخول بكلمة المرور بدلاً من ذلك",
|
|
1730
1980
|
},
|
|
1731
1981
|
register: {
|
|
1732
1982
|
title: "إنشاء حساب",
|
|
@@ -1742,7 +1992,7 @@ const ar = {
|
|
|
1742
1992
|
passwordMismatchError: "كلمتا المرور غير متطابقتين",
|
|
1743
1993
|
passwordTooShortError: "يجب أن تتكون كلمة المرور من 8 أحرف على الأقل",
|
|
1744
1994
|
submitButton: "إنشاء حساب",
|
|
1745
|
-
submittingButton: "جارٍ إنشاء
|
|
1995
|
+
submittingButton: "جارٍ إنشاء الحساب…",
|
|
1746
1996
|
hasAccountText: "لديك حساب بالفعل؟",
|
|
1747
1997
|
signInText: "تسجيل الدخول",
|
|
1748
1998
|
errors: {
|
|
@@ -1763,12 +2013,26 @@ const ar = {
|
|
|
1763
2013
|
emailLabel: "البريد الإلكتروني",
|
|
1764
2014
|
emailPlaceholder: "name@example.com",
|
|
1765
2015
|
submitButton: "إرسال رابط إعادة التعيين",
|
|
1766
|
-
submittingButton: "جارٍ
|
|
2016
|
+
submittingButton: "جارٍ الإرسال…",
|
|
1767
2017
|
successTitle: "تحقق من بريدك الإلكتروني",
|
|
1768
2018
|
successDescription: "لقد أرسلنا رابط إعادة تعيين كلمة المرور إلى {{email}}. يرجى التحقق من بريدك الوارد.",
|
|
1769
2019
|
backToSignInText: "العودة إلى تسجيل الدخول",
|
|
1770
2020
|
rememberPasswordText: "تتذكر كلمة المرور؟",
|
|
1771
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: "تمت إعادة تعيين كلمة المرور. يمكنك الآن تسجيل الدخول بكلمة المرور الجديدة.",
|
|
1772
2036
|
},
|
|
1773
2037
|
resetPassword: {
|
|
1774
2038
|
title: "تعيين كلمة مرور جديدة",
|
|
@@ -1807,6 +2071,8 @@ const ar = {
|
|
|
1807
2071
|
backToLogin: "العودة إلى تسجيل الدخول",
|
|
1808
2072
|
checkSpam: "لم تستلم البريد؟ تحقق من مجلد البريد غير المرغوب أو تواصل مع الدعم.",
|
|
1809
2073
|
or: "أو",
|
|
2074
|
+
// objectui#3546 slice three.
|
|
2075
|
+
resendUnavailable: "قد يكون إرسال البريد الإلكتروني غير مُهيأ في هذه البيئة. تواصل مع الدعم إذا استمرت المشكلة.",
|
|
1810
2076
|
},
|
|
1811
2077
|
setup: {
|
|
1812
2078
|
welcomeTitle: "مرحباً بك في ObjectStack",
|
|
@@ -1845,6 +2111,9 @@ const ar = {
|
|
|
1845
2111
|
invalidDescription: "لم يتم تقديم رمز جهاز في URL.",
|
|
1846
2112
|
loading: "جارٍ التحميل…",
|
|
1847
2113
|
cancel: "إلغاء",
|
|
2114
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2115
|
+
disabledTitle: "تفويض الأجهزة غير مُمكَّن",
|
|
2116
|
+
disabledDescription: "لم يتم تمكين تفويض الأجهزة في هذا النشر، لذا لا يمكن الموافقة على هذا الجهاز هنا.",
|
|
1848
2117
|
},
|
|
1849
2118
|
shell: {
|
|
1850
2119
|
tenantHostHint: "تسجل الدخول إلى مساحة العمل هذه",
|
|
@@ -1884,6 +2153,29 @@ const ar = {
|
|
|
1884
2153
|
},
|
|
1885
2154
|
},
|
|
1886
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
|
+
},
|
|
1887
2179
|
profile: {
|
|
1888
2180
|
title: "الملف الشخصي",
|
|
1889
2181
|
subtitle: "إدارة إعدادات حسابك",
|
|
@@ -1945,6 +2237,8 @@ const ar = {
|
|
|
1945
2237
|
invite: "دعوة عضو",
|
|
1946
2238
|
members: "الأعضاء",
|
|
1947
2239
|
settings: "إعدادات مساحة العمل",
|
|
2240
|
+
multiOrgDisabled: "إنشاء مؤسسات جديدة معطّل في هذا النشر.",
|
|
2241
|
+
createFailed: 'تعذّر إنشاء مساحة العمل',
|
|
1948
2242
|
},
|
|
1949
2243
|
help: {
|
|
1950
2244
|
onThisPage: "في هذه الصفحة",
|
|
@@ -1955,7 +2249,7 @@ const ar = {
|
|
|
1955
2249
|
},
|
|
1956
2250
|
sidebar: {
|
|
1957
2251
|
packageManagement: "إدارة الحزم",
|
|
1958
|
-
searchNavigation: "البحث في
|
|
2252
|
+
searchNavigation: "البحث في التنقل…",
|
|
1959
2253
|
settings: "الإعدادات",
|
|
1960
2254
|
help: "المساعدة",
|
|
1961
2255
|
helpTooltip: "المساعدة والوثائق",
|
|
@@ -1979,8 +2273,8 @@ const ar = {
|
|
|
1979
2273
|
switchObject: "تبديل الكائن",
|
|
1980
2274
|
connection: {
|
|
1981
2275
|
connected: "متصل",
|
|
1982
|
-
connecting: "جارٍ
|
|
1983
|
-
reconnecting: "جارٍ إعادة
|
|
2276
|
+
connecting: "جارٍ الاتصال…",
|
|
2277
|
+
reconnecting: "جارٍ إعادة الاتصال…",
|
|
1984
2278
|
disconnected: "منقطع",
|
|
1985
2279
|
error: "خطأ في الاتصال",
|
|
1986
2280
|
},
|
|
@@ -2019,6 +2313,14 @@ const ar = {
|
|
|
2019
2313
|
publishing: "جارٍ النشر…",
|
|
2020
2314
|
published: "تم النشر! تغييراتك فعّالة الآن.",
|
|
2021
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}} مرجع(مراجع) قدرات لا تشير إلى شيء.",
|
|
2022
2324
|
},
|
|
2023
2325
|
title: "الرئيسية",
|
|
2024
2326
|
subtitle: "لوحة تحكم مساحة العمل",
|
|
@@ -2032,7 +2334,7 @@ const ar = {
|
|
|
2032
2334
|
title: "يتطلب انتباهك",
|
|
2033
2335
|
empty: "لقد أنجزت كل شيء",
|
|
2034
2336
|
},
|
|
2035
|
-
loading: "جارٍ تحميل مساحة
|
|
2337
|
+
loading: "جارٍ تحميل مساحة العمل…",
|
|
2036
2338
|
recent: "الأخيرة",
|
|
2037
2339
|
starred: "المميزة بنجمة",
|
|
2038
2340
|
welcome: "مرحباً بك في ObjectUI",
|
|
@@ -2093,6 +2395,9 @@ const ar = {
|
|
|
2093
2395
|
roles: "الأدوار",
|
|
2094
2396
|
configuration: "التهيئة",
|
|
2095
2397
|
createApp: "إنشاء تطبيق",
|
|
2398
|
+
administration: "الإدارة",
|
|
2399
|
+
datasources: "مصادر البيانات",
|
|
2400
|
+
documentation: "الوثائق",
|
|
2096
2401
|
},
|
|
2097
2402
|
appSwitcher: {
|
|
2098
2403
|
switchApplication: "تبديل التطبيق",
|
|
@@ -2132,7 +2437,7 @@ const ar = {
|
|
|
2132
2437
|
search: {
|
|
2133
2438
|
title: "بحث",
|
|
2134
2439
|
back: "رجوع",
|
|
2135
|
-
placeholder: "ابحث في الكائنات، لوحات التحكم، الصفحات،
|
|
2440
|
+
placeholder: "ابحث في الكائنات، لوحات التحكم، الصفحات، التقارير…",
|
|
2136
2441
|
inputAriaLabel: "ابحث في الكائنات، لوحات التحكم، الصفحات، التقارير",
|
|
2137
2442
|
resultsCount: "{{count}} نتيجة لـ \"{{query}}\"",
|
|
2138
2443
|
resultsCountPlural: "{{count}} نتيجة لـ \"{{query}}\"",
|
|
@@ -2151,6 +2456,7 @@ const ar = {
|
|
|
2151
2456
|
empty: {
|
|
2152
2457
|
objectNotFound: "الكائن غير موجود",
|
|
2153
2458
|
objectNotFoundDescription: "تعريف الكائن \"{{name}}\" مفقود. تحقق من الإعداد أو ارجع للخلف.",
|
|
2459
|
+
interfacePageSourceMissing: "تشير صفحة الواجهة هذه إلى \"{{name}}\"، وهو غير متاح.",
|
|
2154
2460
|
pageNotFound: "الصفحة غير موجودة",
|
|
2155
2461
|
pageNotFoundDescription: "الصفحة \"{{name}}\" غير موجودة. ربما تم إزالتها أو إعادة تسميتها.",
|
|
2156
2462
|
dashboardNotFound: "لوحة التحكم غير موجودة",
|
|
@@ -2159,6 +2465,11 @@ const ar = {
|
|
|
2159
2465
|
reportNotFoundDescription: "التقرير \"{{name}}\" غير موجود. ربما تم إزالته أو إعادة تسميته.",
|
|
2160
2466
|
noAppsConfigured: "لا تطبيقات مُهيأة",
|
|
2161
2467
|
noAppsConfiguredDescription: "لا تطبيقات مسجلة. أنشئ تطبيقك الأول أو زر إعدادات النظام.",
|
|
2468
|
+
appNotAvailable: "التطبيق غير متاح",
|
|
2469
|
+
appNotAvailableDescription: "هذا التطبيق غير متاح بعد — قد يكون النشر ما زال جارياً. أعد المحاولة بعد لحظات.",
|
|
2470
|
+
appAccessDenied: "ليس لديك حق الوصول إلى هذا التطبيق",
|
|
2471
|
+
appAccessDeniedDescription: "هذا التطبيق موجود، لكن حسابك غير مخوَّل بفتحه. اطلب من المسؤول منحك حق الوصول.",
|
|
2472
|
+
appAccessDeniedHome: "العودة إلى الرئيسية",
|
|
2162
2473
|
createFirstApp: "إنشاء أول تطبيق",
|
|
2163
2474
|
systemSettings: "إعدادات النظام",
|
|
2164
2475
|
back: "رجوع",
|
|
@@ -2230,7 +2541,7 @@ const ar = {
|
|
|
2230
2541
|
deleteFailed: "تعذر حذف العرض",
|
|
2231
2542
|
},
|
|
2232
2543
|
dashboardActions: {
|
|
2233
|
-
|
|
2544
|
+
printDialogOpening: "جارٍ فتح مربع حوار الطباعة في المتصفح (ليس تصديرًا إلى PDF)",
|
|
2234
2545
|
exportFailed: "فشل التصدير: {{message}}",
|
|
2235
2546
|
forecastSoon: "عرض التوقعات قادم قريباً",
|
|
2236
2547
|
},
|
|
@@ -2274,111 +2585,7 @@ const ar = {
|
|
|
2274
2585
|
first: "الأول",
|
|
2275
2586
|
},
|
|
2276
2587
|
editor: {
|
|
2277
|
-
|
|
2278
|
-
basic: "أساسي",
|
|
2279
|
-
title: "العنوان",
|
|
2280
|
-
titlePlaceholder: "مثال: المسار حسب الربع",
|
|
2281
|
-
description: "الوصف",
|
|
2282
|
-
descriptionPlaceholder: "ماذا يعرض هذا التقرير؟",
|
|
2283
|
-
type: "نوع التقرير",
|
|
2284
|
-
typeTabular: "جدولي — قائمة مسطّحة",
|
|
2285
|
-
typeSummary: "ملخص — مجمّع مع المجاميع",
|
|
2286
|
-
typeMatrix: "مصفوفة — محور صفوف × أعمدة",
|
|
2287
|
-
typeJoined: "مدمج — كتل متعددة",
|
|
2288
|
-
typeHelp: "اختر التخطيط الذي يطابق ما تريد رؤيته.",
|
|
2289
|
-
data: "البيانات",
|
|
2290
|
-
objectName: "مصدر البيانات",
|
|
2291
|
-
objectNamePlaceholder: "مثال: opportunity",
|
|
2292
|
-
objectNameHelp: "أي كائن يجب أن يستعلم عنه هذا التقرير؟",
|
|
2293
|
-
limit: "حد عدد الصفوف",
|
|
2294
|
-
limitPlaceholder: "مثال: 100",
|
|
2295
|
-
columns: "الأعمدة",
|
|
2296
|
-
columnsHint: "اختر الحقول التي ستظهر كأعمدة. أضف تجميعًا (مجموع، عدد…) في تقارير الملخص أو المصفوفة.",
|
|
2297
|
-
filters: "عوامل التصفية",
|
|
2298
|
-
filtersHint: "قيّد الصفوف التي تدخل في هذا التقرير.",
|
|
2299
|
-
filtersComplex: "يستخدم هذا التقرير عامل تصفية متقدّمًا لا يمكن تحريره هنا. سيُحتفظ به كما هو عند الحفظ.",
|
|
2300
|
-
groupBy: "التجميع حسب",
|
|
2301
|
-
groupByHint: "جمّع البيانات واحسب المجاميع الفرعية.",
|
|
2302
|
-
rows: "الصفوف",
|
|
2303
|
-
rowsHint: "جمّع الصفوف حسب هذه الحقول.",
|
|
2304
|
-
columnsAxis: "الأعمدة",
|
|
2305
|
-
columnsAxisHint: "اعرض هذه الحقول كمحور في الأعلى.",
|
|
2306
|
-
values: "القيم",
|
|
2307
|
-
valuesHint: "الأرقام التي تظهر في كل خلية. اختر حقلاً واحدًا أو أكثر وأضف تجميعًا (مجموع، عدد…).",
|
|
2308
|
-
grouping: "تجميع",
|
|
2309
|
-
addGrouping: "إضافة تجميع",
|
|
2310
|
-
dateGranularity: "دقة التاريخ",
|
|
2311
|
-
dateGranularityNone: "(استخدام القيمة الأصلية)",
|
|
2312
|
-
day: "يوم",
|
|
2313
|
-
week: "أسبوع",
|
|
2314
|
-
month: "شهر",
|
|
2315
|
-
quarter: "ربع",
|
|
2316
|
-
year: "سنة",
|
|
2317
|
-
sortAsc: "تصاعدي",
|
|
2318
|
-
sortDesc: "تنازلي",
|
|
2319
|
-
chart: "الرسم البياني",
|
|
2320
|
-
chartHint: "عرض مرئي اختياري بجانب الجدول.",
|
|
2321
|
-
chartType: "نوع الرسم",
|
|
2322
|
-
chartTitle: "عنوان الرسم",
|
|
2323
|
-
chartTitlePlaceholder: "افتراضيًا يستخدم عنوان التقرير",
|
|
2324
|
-
chartXAxis: "المحور السيني (الفئة)",
|
|
2325
|
-
chartYAxis: "المحور الصادي (القيمة)",
|
|
2326
|
-
chartShowLegend: "إظهار وسيلة الإيضاح",
|
|
2327
|
-
chartShowDataLabels: "إظهار تسميات البيانات",
|
|
2328
|
-
chartNone: "(بدون رسم)",
|
|
2329
|
-
chartBar: "أعمدة",
|
|
2330
|
-
chartLine: "خطي",
|
|
2331
|
-
chartArea: "منطقة",
|
|
2332
|
-
chartPie: "دائري",
|
|
2333
|
-
chartDonut: "حلقي",
|
|
2334
|
-
chartFunnel: "قمعي",
|
|
2335
|
-
validationNeedsObject: "اختر مصدر بيانات قبل إضافة الأعمدة.",
|
|
2336
|
-
validationMatrixNeedsRowsCols: "تتطلب تقارير المصفوفة صفًا وعمودًا واحدًا على الأقل.",
|
|
2337
|
-
validationSummaryNeedsRows: "تتطلب تقارير الملخص حقل تجميع واحدًا على الأقل.",
|
|
2338
|
-
blocks: "الكتل",
|
|
2339
|
-
blocksHint: "كل كتلة هي جدولها أو رسمها البياني الخاص. عوامل تصفية الكتلة تُدمج مع عامل تصفية التقرير بمنطق AND.",
|
|
2340
|
-
addBlock: "إضافة كتلة",
|
|
2341
|
-
removeBlock: "إزالة الكتلة",
|
|
2342
|
-
blockName: "اسم الكتلة",
|
|
2343
|
-
blockNamePlaceholder: "اسم_فريد_للكتلة",
|
|
2344
|
-
blockLabel: "التسمية المعروضة",
|
|
2345
|
-
blockLabelPlaceholder: "تُعرض فوق الكتلة",
|
|
2346
|
-
blockDescription: "الوصف",
|
|
2347
|
-
blockDescriptionPlaceholder: "سياق اختياري لهذه الكتلة",
|
|
2348
|
-
validationJoinedNeedsBlocks: "تتطلب التقارير المدمجة كتلة واحدة على الأقل.",
|
|
2349
|
-
validationBlockNameRequired: "يجب أن يكون لكل كتلة اسم غير فارغ.",
|
|
2350
|
-
validationBlockNameDuplicate: "يجب أن تكون أسماء الكتل فريدة داخل التقرير.",
|
|
2351
|
-
validationBlockNeedsColumns: "تحتاج كل كتلة إلى عمود واحد على الأقل.",
|
|
2352
|
-
noneOption: "(بلا)",
|
|
2353
|
-
addCondition: "إضافة شرط",
|
|
2354
|
-
combineLogic: "الدمج مع",
|
|
2355
|
-
opContains: "يحتوي على",
|
|
2356
|
-
opIsEmpty: "فارغ",
|
|
2357
|
-
opIsNotEmpty: "ليس فارغًا",
|
|
2358
|
-
formatAuto: "تلقائي",
|
|
2359
|
-
formatCurrency: "عملة",
|
|
2360
|
-
formatPercent: "نسبة مئوية",
|
|
2361
|
-
formatInteger: "عدد صحيح",
|
|
2362
|
-
formatDate: "تاريخ",
|
|
2363
|
-
formatDatetime: "تاريخ ووقت",
|
|
2364
|
-
columnLabelPlaceholder: "تجاوز التسمية",
|
|
2365
|
-
aggregateColumn: "تجميع",
|
|
2366
|
-
formatColumn: "تنسيق",
|
|
2367
|
-
addColumns: "إضافة أعمدة",
|
|
2368
|
-
searchFields: "البحث في الحقول…",
|
|
2369
|
-
noMatchingFields: "لا توجد حقول تطابق بحثك.",
|
|
2370
|
-
noFieldsAvailable: "لا توجد حقول متاحة.",
|
|
2371
|
-
columnsCount: "{n} عمود(أعمدة) محدد(ة)",
|
|
2372
|
-
columnsEmpty: "لم يتم تحديد أعمدة بعد.",
|
|
2373
|
-
fieldPickerTitle: "تحديد الحقول",
|
|
2374
|
-
fieldPickerDescription: "اختر حقلاً أو أكثر للإضافة. استخدم مربع البحث لتصفية القائمة.",
|
|
2375
|
-
fieldPickerChangeTitle: "تغيير الحقل",
|
|
2376
|
-
fieldPickerAddGroupingTitle: "إضافة تجميع",
|
|
2377
|
-
fieldPickerEmpty: "(تحديد حقل)",
|
|
2378
|
-
fieldPickerSelected: "{n} محدد(ة)",
|
|
2379
|
-
fieldPickerClear: "مسح التحديد",
|
|
2380
|
-
fieldPickerAdd: "إضافة",
|
|
2381
|
-
fieldPickerAddN: "إضافة {n}",
|
|
2588
|
+
panelTitle: "تعديل التقرير",
|
|
2382
2589
|
},
|
|
2383
2590
|
},
|
|
2384
2591
|
organizations: {
|
|
@@ -2395,6 +2602,140 @@ const ar = {
|
|
|
2395
2602
|
emptyDescription: "أنشئ مؤسستك الأولى للبدء.",
|
|
2396
2603
|
noMatches: "لا توجد مؤسسات تطابق بحثك.",
|
|
2397
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
|
+
},
|
|
2398
2739
|
notifications: {
|
|
2399
2740
|
regionLabel: "الإشعارات",
|
|
2400
2741
|
groupCount: "{{count}} من الإشعارات",
|
|
@@ -2408,6 +2749,9 @@ const ar = {
|
|
|
2408
2749
|
viewApprovals: "عرض الموافقات",
|
|
2409
2750
|
noPendingApprovals: "لا توجد موافقات معلقة",
|
|
2410
2751
|
openApprovalsInbox: "فتح صندوق الموافقات",
|
|
2752
|
+
badgeTotal: "{{total}} إجمالاً",
|
|
2753
|
+
badgeNotifications: "{{unread}} إشعارات",
|
|
2754
|
+
badgeApprovals: "{{approvals}} موافقات معلقة",
|
|
2411
2755
|
emptyUnread: "كل شيء مقروء",
|
|
2412
2756
|
filterUnread: "غير مقروء",
|
|
2413
2757
|
filterAll: "الكل",
|
|
@@ -2694,6 +3038,7 @@ const ar = {
|
|
|
2694
3038
|
dismiss: "رفض",
|
|
2695
3039
|
openOnCloud: "فتح في السحابة",
|
|
2696
3040
|
backHome: "العودة إلى الرئيسية",
|
|
3041
|
+
updateTo: "تحديث",
|
|
2697
3042
|
},
|
|
2698
3043
|
install: {
|
|
2699
3044
|
dialogTitle: "تثبيت {{name}}",
|
|
@@ -2710,6 +3055,37 @@ const ar = {
|
|
|
2710
3055
|
localManifestConflict: "{{message}}\nملاحظة: تطبيق محلي يمتلك بالفعل هذا المعرف. أزله أولاً من objectstack.config.ts.",
|
|
2711
3056
|
localUnauthorized: "سجل الدخول إلى هذا الوقت التشغيل أولاً.",
|
|
2712
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
|
+
},
|
|
2713
3089
|
},
|
|
2714
3090
|
uninstall: {
|
|
2715
3091
|
confirm: "إلغاء تثبيت {{manifestId}} v{{version}} من هذا الوقت التشغيل؟\n\nسيتم إزالة المانيفست المخزن مؤقتاً.",
|
|
@@ -2959,6 +3335,34 @@ const ar = {
|
|
|
2959
3335
|
confirmNote: 'النشر يُصدر كل المسودات المعلقة ({{count}}) لهذه الحزمة دفعة واحدة.',
|
|
2960
3336
|
publishConfirm: 'نشر الكل',
|
|
2961
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
|
+
},
|
|
2962
3366
|
},
|
|
2963
3367
|
filterBuilder: {
|
|
2964
3368
|
where: "حيث",
|
|
@@ -3003,5 +3407,91 @@ const ar = {
|
|
|
3003
3407
|
addSort: "إضافة ترتيب",
|
|
3004
3408
|
removeSort: "إزالة الترتيب",
|
|
3005
3409
|
},
|
|
3410
|
+
collaboration: {
|
|
3411
|
+
commentCount: "{{count}} تعليقات",
|
|
3412
|
+
commentCountOne: "{{count}} تعليق",
|
|
3413
|
+
resolvedSuffix: " · تم الحل",
|
|
3414
|
+
sortComments: "ترتيب التعليقات",
|
|
3415
|
+
sortOldest: "الأقدم أولاً",
|
|
3416
|
+
sortNewest: "الأحدث أولاً",
|
|
3417
|
+
resolve: "وضع علامة كمحلول",
|
|
3418
|
+
reopen: "إعادة الفتح",
|
|
3419
|
+
justNow: "الآن",
|
|
3420
|
+
minutesAgo: "قبل {{count}} دقيقة",
|
|
3421
|
+
hoursAgo: "قبل {{count}} ساعة",
|
|
3422
|
+
daysAgo: "قبل {{count}} يوم",
|
|
3423
|
+
edited: "(تم التعديل)",
|
|
3424
|
+
reactionCount: "{{count}} تفاعلات",
|
|
3425
|
+
reactionCountOne: "{{count}} تفاعل",
|
|
3426
|
+
addThumbsUp: "إضافة إعجاب",
|
|
3427
|
+
reply: "رد",
|
|
3428
|
+
reactThumbsUp: "التفاعل بإعجاب",
|
|
3429
|
+
reactHeart: "التفاعل بقلب",
|
|
3430
|
+
cancelReply: "إلغاء الرد",
|
|
3431
|
+
replyingTo: "الرد على {{name}}…",
|
|
3432
|
+
replyingToComment: "الرد على التعليق…",
|
|
3433
|
+
commentPlaceholder: "أضف تعليقًا… (استخدم @ للإشارة)",
|
|
3434
|
+
send: "إرسال",
|
|
3435
|
+
presentUserCount: "{{count}} مستخدمين متواجدين",
|
|
3436
|
+
presentUserCountOne: "{{count}} مستخدم متواجد",
|
|
3437
|
+
moreUserCount: "{{count}} مستخدمين آخرين",
|
|
3438
|
+
moreUserCountOne: "{{count}} مستخدم آخر",
|
|
3439
|
+
userStatusTitle: "{{name}} ({{status}})",
|
|
3440
|
+
statusActive: "نشط",
|
|
3441
|
+
statusIdle: "خامل",
|
|
3442
|
+
statusAway: "غائب",
|
|
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
|
+
},
|
|
3006
3496
|
};
|
|
3007
3497
|
export default ar;
|