@adminiumjs/i18n 0.2.2-rc.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +218 -4
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/editing.d.ts +1 -1
  6. package/dist/editing.js +1 -1
  7. package/dist/resources/ar-eg/common.d.ts +166 -0
  8. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  9. package/dist/resources/ar-eg/common.js +170 -4
  10. package/dist/resources/ar-eg/common.js.map +1 -1
  11. package/dist/resources/ar-eg/ui.d.ts +9 -0
  12. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  13. package/dist/resources/ar-eg/ui.js +17 -8
  14. package/dist/resources/ar-eg/ui.js.map +1 -1
  15. package/dist/resources/cs-cz/common.d.ts +166 -0
  16. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  17. package/dist/resources/cs-cz/common.js +170 -4
  18. package/dist/resources/cs-cz/common.js.map +1 -1
  19. package/dist/resources/cs-cz/ui.d.ts +9 -0
  20. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  21. package/dist/resources/cs-cz/ui.js +17 -8
  22. package/dist/resources/cs-cz/ui.js.map +1 -1
  23. package/dist/resources/da-dk/common.d.ts +166 -0
  24. package/dist/resources/da-dk/common.d.ts.map +1 -1
  25. package/dist/resources/da-dk/common.js +170 -4
  26. package/dist/resources/da-dk/common.js.map +1 -1
  27. package/dist/resources/da-dk/ui.d.ts +9 -0
  28. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  29. package/dist/resources/da-dk/ui.js +17 -8
  30. package/dist/resources/da-dk/ui.js.map +1 -1
  31. package/dist/resources/de-de/common.d.ts +166 -0
  32. package/dist/resources/de-de/common.d.ts.map +1 -1
  33. package/dist/resources/de-de/common.js +170 -4
  34. package/dist/resources/de-de/common.js.map +1 -1
  35. package/dist/resources/de-de/ui.d.ts +9 -0
  36. package/dist/resources/de-de/ui.d.ts.map +1 -1
  37. package/dist/resources/de-de/ui.js +17 -8
  38. package/dist/resources/de-de/ui.js.map +1 -1
  39. package/dist/resources/en-us/common.d.ts +166 -0
  40. package/dist/resources/en-us/common.d.ts.map +1 -1
  41. package/dist/resources/en-us/common.js +170 -4
  42. package/dist/resources/en-us/common.js.map +1 -1
  43. package/dist/resources/en-us/ui.d.ts +9 -0
  44. package/dist/resources/en-us/ui.d.ts.map +1 -1
  45. package/dist/resources/en-us/ui.js +17 -8
  46. package/dist/resources/en-us/ui.js.map +1 -1
  47. package/dist/resources/fr-fr/common.d.ts +166 -0
  48. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  49. package/dist/resources/fr-fr/common.js +170 -4
  50. package/dist/resources/fr-fr/common.js.map +1 -1
  51. package/dist/resources/fr-fr/ui.d.ts +9 -0
  52. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  53. package/dist/resources/fr-fr/ui.js +17 -8
  54. package/dist/resources/fr-fr/ui.js.map +1 -1
  55. package/dist/resources/zh-cn/common.d.ts +166 -0
  56. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  57. package/dist/resources/zh-cn/common.js +170 -4
  58. package/dist/resources/zh-cn/common.js.map +1 -1
  59. package/dist/resources/zh-cn/ui.d.ts +9 -0
  60. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  61. package/dist/resources/zh-cn/ui.js +17 -8
  62. package/dist/resources/zh-cn/ui.js.map +1 -1
  63. package/dist/resources/zh-tw/common.d.ts +166 -0
  64. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  65. package/dist/resources/zh-tw/common.js +170 -4
  66. package/dist/resources/zh-tw/common.js.map +1 -1
  67. package/dist/resources/zh-tw/ui.d.ts +9 -0
  68. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  69. package/dist/resources/zh-tw/ui.js +17 -8
  70. package/dist/resources/zh-tw/ui.js.map +1 -1
  71. package/dist/review-status.js +7 -7
  72. package/locales/ar-EG/.meta.json +597 -73
  73. package/locales/ar-EG/common.json +170 -4
  74. package/locales/ar-EG/ui.json +17 -8
  75. package/locales/cs-CZ/.meta.json +657 -133
  76. package/locales/cs-CZ/common.json +170 -4
  77. package/locales/cs-CZ/ui.json +17 -8
  78. package/locales/da-DK/.meta.json +751 -227
  79. package/locales/da-DK/common.json +170 -4
  80. package/locales/da-DK/ui.json +17 -8
  81. package/locales/de-DE/.meta.json +742 -218
  82. package/locales/de-DE/common.json +170 -4
  83. package/locales/de-DE/ui.json +17 -8
  84. package/locales/en-US/common.json +170 -4
  85. package/locales/en-US/ui.json +17 -8
  86. package/locales/fr-FR/.meta.json +784 -260
  87. package/locales/fr-FR/common.json +170 -4
  88. package/locales/fr-FR/ui.json +17 -8
  89. package/locales/zh-CN/.meta.json +591 -67
  90. package/locales/zh-CN/common.json +170 -4
  91. package/locales/zh-CN/ui.json +17 -8
  92. package/locales/zh-TW/.meta.json +599 -75
  93. package/locales/zh-TW/common.json +170 -4
  94. package/locales/zh-TW/ui.json +17 -8
  95. package/package.json +1 -1
@@ -14,6 +14,7 @@
14
14
  },
15
15
  "auth": {
16
16
  "headline": "حوِّل أي قاعدة بيانات إلى لوحة معلومات.",
17
+ "description": "اربط PostgreSQL ليولّد Adminium تطبيق إدارة قابلًا للتنسيق ومدركًا للصلاحيات — دون كتابة أي كود.",
17
18
  "trust": "نواة AGPL · استضافة ذاتية · بياناتك تبقى ملكك",
18
19
  "signIn": {
19
20
  "title": "مرحبًا بعودتك",
@@ -235,6 +236,7 @@
235
236
  },
236
237
  "notFound": {
237
238
  "title": "هذه الصفحة مفقودة",
239
+ "body": "الصفحة التي تبحث عنها غير موجودة أو تم نقلها. تحقق من العنوان، أو عد إلى لوحة معلوماتك.",
238
240
  "errorLine": "خطأ 404",
239
241
  "searchPlaceholder": "ابحث عن صفحة…",
240
242
  "matches": "صفحات مطابقة",
@@ -252,10 +254,12 @@
252
254
  "title": "تعذَّر عرض هذه الصفحة"
253
255
  },
254
256
  "tooNew": {
255
- "title": "تحتاج هذه الصفحة إلى إصدار أحدث من Adminium"
257
+ "title": "تحتاج هذه الصفحة إلى إصدار أحدث من Adminium",
258
+ "body": "حُفظت هذه الصفحة بإصدار الإعدادات {version}، بينما لا يفهم هذا الإصدار سوى الإصدار {latest} كحد أقصى. حدّث Adminium لفتحها."
256
259
  },
257
260
  "unknownTemplate": {
258
- "title": "قالب صفحة غير معروف"
261
+ "title": "قالب صفحة غير معروف",
262
+ "body": "تستخدم هذه الصفحة قالبًا لا يعرفه هذا الإصدار. ربما يأتي من إصدار أحدث من Adminium أو من امتداد غير مثبّت."
259
263
  }
260
264
  },
261
265
  "mutation": {
@@ -344,6 +348,70 @@
344
348
  "emptyTitle": "لا يوجد ما يمكن ضبطه بعد",
345
349
  "emptyBody": "تظهر أحداث الإشعارات هنا مع توفر مصادرها.",
346
350
  "saveFailed": "تعذّر حفظ هذا التغيير."
351
+ },
352
+ "translations": {
353
+ "title": "اللغات والترجمات",
354
+ "subtitle": "غيّر أي صياغة في Adminium، واختر اللغات المتاحة للناس، وأضف لغاتك الخاصة.",
355
+ "warning": "رسائل الخطأ ونصوص تسجيل الدخول قابلة للتعديل أيضًا. هذه تحديدًا ما يقرأه الناس عندما يحدث خطأ، فغيّرها بعناية.",
356
+ "editor": {
357
+ "heading": "تحرير الترجمات"
358
+ },
359
+ "localeLabel": "اللغة",
360
+ "groupLabel": "المجال",
361
+ "allAreas": "كل المجالات",
362
+ "stateLabel": "إظهار",
363
+ "state": {
364
+ "all": "كل شيء",
365
+ "overridden": "المخصّصة فقط",
366
+ "untranslated": "غير المترجمة فقط",
367
+ "stale": "تغيّر النص الإنجليزي بعدها"
368
+ },
369
+ "searchLabel": "بحث",
370
+ "searchPlaceholder": "المفتاح أو النص الإنجليزي",
371
+ "loading": "جارٍ تحميل النصوص…",
372
+ "noMatches": "لا توجد نصوص تطابق عوامل التصفية هذه.",
373
+ "count": "{total, plural, zero {# نص} one {نص واحد} two {نصان} few {# نصوص} many {# نصًا} other {# نص}}",
374
+ "badge": {
375
+ "custom": "مخصّص",
376
+ "stale": "تغيّر النص الإنجليزي",
377
+ "a11y": "اسم لإمكانية الوصول"
378
+ },
379
+ "sourceLabel": "الأصل الإنجليزي",
380
+ "valueLabel": "الترجمة",
381
+ "save": "حفظ",
382
+ "saved": "تم حفظ الترجمة",
383
+ "resetAction": "استعادة النص المدمج",
384
+ "reset": "تمت الاستعادة إلى النص المدمج",
385
+ "locales": {
386
+ "heading": "اللغات المتاحة",
387
+ "help": "أوقف لغةً لإزالتها من كل قوائم اختيار اللغة. ومن يستخدمها بالفعل يحتفظ بها حتى يختار غيرها."
388
+ },
389
+ "locale": {
390
+ "builtin": "مدمجة",
391
+ "custom": "مخصّصة",
392
+ "overrides": "{count, plural, =0 {لا يوجد نص مخصّص} one {نص مخصّص واحد} two {نصان مخصّصان} few {# نصوص مخصّصة} many {# نصًا مخصّصًا} other {# نص مخصّص}}",
393
+ "enable": "تشغيل",
394
+ "disable": "إيقاف",
395
+ "delete": "حذف",
396
+ "deleted": "تمت إزالة اللغة",
397
+ "deletedDetail": "أُعيد {users, plural, zero {# شخص} one {شخص واحد} two {شخصان} few {# أشخاص} many {# شخصًا} other {# شخص}} إلى اللغة الافتراضية لمساحة العمل، وحُذفت {strings, plural, zero {# ترجمة} one {ترجمة واحدة} two {ترجمتان} few {# ترجمات} many {# ترجمة} other {# ترجمة}}.",
398
+ "deleteFailed": "تعذّرت إزالة هذه اللغة",
399
+ "add": "إضافة لغة",
400
+ "added": "تمت إضافة اللغة",
401
+ "create": "أضف اللغة",
402
+ "id": "رمز اللغة",
403
+ "intlTag": "قواعد التنسيق مأخوذة من",
404
+ "native": "الاسم بلغتها الأصلية",
405
+ "english": "الاسم بالإنجليزية",
406
+ "dir": "اتجاه النص",
407
+ "ltr": "من اليسار إلى اليمين",
408
+ "rtl": "من اليمين إلى اليسار",
409
+ "font": "نظام الكتابة",
410
+ "latin": "لاتيني",
411
+ "arabic": "عربي",
412
+ "cjk": "صيني / ياباني / كوري",
413
+ "intlHelp": "قواعد التنسيق تحدّد كيف تُعرض الأرقام والتواريخ وصيغ الجمع. اختر أقرب لغة تمتلكها بالفعل — لا يلزم أن تطابق رمز لغتك."
414
+ }
347
415
  }
348
416
  },
349
417
  "studio": {
@@ -572,7 +640,8 @@
572
640
  "heading": "الأمان",
573
641
  "require2fa": {
574
642
  "label": "فرض المصادقة الثنائية",
575
- "desc": "يجب على كل عضو تفعيل المصادقة الثنائية لتسجيل الدخول."
643
+ "desc": "يجب على كل عضو تفعيل المصادقة الثنائية لتسجيل الدخول.",
644
+ "note": "إرشادي وليس مانعًا: يُوجَّه الأعضاء بلا مصادقة ثنائية إلى إعدادها ولا يمكنهم إيقافها بعد ذلك، لكن تسجيل دخولهم لا يُمنع أبدًا، ومفاتيح API غير متأثرة."
576
645
  },
577
646
  "allowSignup": {
578
647
  "label": "السماح بالتسجيل الذاتي",
@@ -587,6 +656,41 @@
587
656
  "error": "بين {min, number} و{max, number} حرفًا."
588
657
  }
589
658
  },
659
+ "email": {
660
+ "heading": "البريد الإلكتروني (SMTP)",
661
+ "unconfigured": "لا يوجد خادم بريد مُعدّ، لذلك لا يستطيع Adminium إرسال إعادة تعيين كلمات المرور أو دعوات المستخدمين أو التقارير المجدولة.",
662
+ "host": {
663
+ "label": "مضيف SMTP",
664
+ "error": "اسم مضيف أو عنوان IP فقط — بدون بروتوكول أو منفذ أو بيانات اعتماد."
665
+ },
666
+ "port": {
667
+ "label": "المنفذ",
668
+ "error": "بين {min, number} و{max, number}."
669
+ },
670
+ "user": {
671
+ "label": "اسم المستخدم",
672
+ "helper": "اتركه فارغًا إذا كان المُرحِّل لا يطلب مصادقة."
673
+ },
674
+ "pass": {
675
+ "label": "كلمة المرور",
676
+ "helper": "تُخزَّن مشفَّرة ولا تُعرض مرة أخرى. اتركها فارغة للإبقاء على الحالية.",
677
+ "error": "اسم المستخدم هذا يحتاج إلى كلمة مرور."
678
+ },
679
+ "from": {
680
+ "label": "عنوان المُرسِل",
681
+ "helper": "العنوان وحده، أو اسم معروض قبله.",
682
+ "error": "أدخل عنوان بريد إلكتروني."
683
+ },
684
+ "secure": {
685
+ "label": "TLS ضمني",
686
+ "helper": "مُفعَّل للمنفذ 465. عند الإيقاف يبدأ الاتصال بنص واضح ثم يُرقَّى عبر STARTTLS، وهو ما يتوقعه المنفذ 587."
687
+ },
688
+ "remove": "إزالة خادم البريد",
689
+ "review": {
690
+ "removed": "أُزيل",
691
+ "password": "استُبدلت"
692
+ }
693
+ },
590
694
  "review": {
591
695
  "title": "حفظ إعدادات مساحة العمل",
592
696
  "subtitle": "راجع تغييراتك قبل الحفظ.",
@@ -620,6 +724,11 @@
620
724
  "heading": "الصفحات",
621
725
  "body": "أضف الصفحات وحرّرها واحذفها، وغيّر ما تعرضه كل صفحة، وأعد ترتيب الشريط الجانبي.",
622
726
  "cta": "إدارة الصفحات"
727
+ },
728
+ "translationsCard": {
729
+ "heading": "اللغات والترجمات",
730
+ "body": "أعد صياغة أي نص في Adminium، واختر اللغات المتاحة للناس، وأضف لغاتك الخاصة.",
731
+ "cta": "فتح الترجمات"
623
732
  }
624
733
  },
625
734
  "settingsAi": {
@@ -1153,7 +1262,64 @@
1153
1262
  "pii": "بيانات شخصية",
1154
1263
  "masked": "مخفي"
1155
1264
  },
1156
- "unavailableTitle": "محرّر إعادة تعيين المخطط غير متوفر"
1265
+ "unavailableTitle": "محرّر إعادة تعيين المخطط غير متوفر",
1266
+ "unavailableBody": "لا يتضمّن هذا الإصدار محرّر إعادة التعيين بعد (09-T12). أعد تشغيل التوليد بعد وصوله لإعادة تعيين التسميات والأنواع والعلاقات."
1267
+ },
1268
+ "publicApi": {
1269
+ "error": "Something went wrong",
1270
+ "scopes": {
1271
+ "deleteTitle": "Delete this scope",
1272
+ "deleteBody": "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.",
1273
+ "deletePrompt": "Type the scope name to confirm",
1274
+ "deleteConfirm": "Delete scope",
1275
+ "issuesTitle": "This scope did not compile",
1276
+ "title": "Scopes",
1277
+ "subtitle": "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.",
1278
+ "emptyTitle": "No scopes yet",
1279
+ "emptyBody": "Create one below. It is checked against your live schema before it is saved.",
1280
+ "keyCount": "{count, plural, =0 {no keys} one {# key} other {# keys}}",
1281
+ "delete": "Delete",
1282
+ "nameLabel": "Name",
1283
+ "connectionLabel": "Connection ID",
1284
+ "documentLabel": "Scope document",
1285
+ "documentHint": "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else.",
1286
+ "create": "Create scope",
1287
+ "formLabel": "Create a scope"
1288
+ },
1289
+ "cancel": "Cancel",
1290
+ "close": "Close",
1291
+ "title": "Public API",
1292
+ "subtitle": "Let your own customer- or staff-facing pages read this database, through a scope you define.",
1293
+ "notRegistered": {
1294
+ "title": "Not enabled on this server",
1295
+ "body": "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all."
1296
+ },
1297
+ "toggle": {
1298
+ "label": "Serve the public API",
1299
+ "hint": "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive."
1300
+ },
1301
+ "origins": {
1302
+ "label": "Origins allowed to call it"
1303
+ },
1304
+ "keys": {
1305
+ "title": "Keys",
1306
+ "subtitle": "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.",
1307
+ "emptyTitle": "No keys yet",
1308
+ "emptyBody": "Create a scope first, then mint a key for it.",
1309
+ "reveal": "Show key",
1310
+ "rotate": "Rotate",
1311
+ "revoke": "Revoke",
1312
+ "nameLabel": "Name",
1313
+ "scopeLabel": "Scope",
1314
+ "scopePlaceholder": "Choose a scope",
1315
+ "create": "Create key",
1316
+ "formLabel": "Create a key",
1317
+ "scopeIsAuthTitle": "The scope is the only permission",
1318
+ "scopeIsAuthBody": "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API."
1319
+ },
1320
+ "status": {
1321
+ "heading": "Status"
1322
+ }
1157
1323
  }
1158
1324
  },
1159
1325
  "onboarding": {
@@ -291,17 +291,20 @@
291
291
  },
292
292
  "cohortMatrix": {
293
293
  "chartLabel": "احتفاظ الأفواج",
294
- "description": "صفوف الأفواج مقابل أعمدة الفترات، وتُظلَّل كل خلية حسب الاحتفاظ أو الإيراد."
294
+ "description": "صفوف الأفواج مقابل أعمدة الفترات، وتُظلَّل كل خلية حسب الاحتفاظ أو الإيراد.",
295
+ "regionLabel": "Cohort matrix"
295
296
  },
296
297
  "heatmapCalendar": {
297
298
  "chartLabel": "تقويم النشاط",
298
299
  "legendLessLabel": "أقل",
299
300
  "legendMoreLabel": "أكثر",
300
- "description": "سنة من النشاط اليومي كشبكة أسابيع وأيام مظلَّلة حسب الكثافة."
301
+ "description": "سنة من النشاط اليومي كشبكة أسابيع وأيام مظلَّلة حسب الكثافة.",
302
+ "regionLabel": "Activity calendar"
301
303
  },
302
304
  "heatMonth": {
303
305
  "chartLabel": "النشاط الشهري",
304
- "description": "شهر تقويمي واحد كشبكة أيام مظلَّلة حسب قيمة كل يوم."
306
+ "description": "شهر تقويمي واحد كشبكة أيام مظلَّلة حسب قيمة كل يوم.",
307
+ "regionLabel": "Monthly heat map"
305
308
  },
306
309
  "choroplethGrid": {
307
310
  "chartLabel": "التفصيل حسب المنطقة",
@@ -416,12 +419,14 @@
416
419
  "description": "فئات الأحداث مع أعدادها؛ التبديل يصفّي التقويم المجاور.",
417
420
  "emptyTitle": "لا توجد فئات بعد",
418
421
  "emptyBody": "ستظهر فئات الأحداث هنا بمجرد وجود أحداث.",
419
- "uncategorizedLabel": "بدون فئة"
422
+ "uncategorizedLabel": "بدون فئة",
423
+ "listLabel": "Categories"
420
424
  },
421
425
  "upcomingEventsList": {
422
426
  "description": "الأحداث القادمة مرتّبة حسب التاريخ، مع المسؤول والحالة.",
423
427
  "emptyTitle": "لا يوجد شيء قادم",
424
- "emptyBody": "ستظهر الأحداث المجدولة هنا عند التخطيط لها."
428
+ "emptyBody": "ستظهر الأحداث المجدولة هنا عند التخطيط لها.",
429
+ "listLabel": "Upcoming events"
425
430
  },
426
431
  "dateRangePicker": {
427
432
  "description": "نطاق تاريخ مع اختيارات سريعة يصفّي بقية الصفحة.",
@@ -443,7 +448,8 @@
443
448
  "emptyBody": "ستظهر التقارير وعمليات التصدير المتكررة هنا بمجرد جدولتها.",
444
449
  "nextRunLabel": "التشغيل التالي",
445
450
  "toggleLabel": "تفعيل الجدولة",
446
- "recipientsLabel": "المستلمون"
451
+ "recipientsLabel": "المستلمون",
452
+ "listLabel": "Scheduled jobs"
447
453
  }
448
454
  },
449
455
  "tables": {
@@ -618,7 +624,8 @@
618
624
  "sendLabel": "إرسال",
619
625
  "attachLabel": "إضافة مرفق",
620
626
  "typingLabel": "يكتب…",
621
- "composerLabel": "الرسالة"
627
+ "composerLabel": "الرسالة",
628
+ "transcriptLabel": "Conversation"
622
629
  },
623
630
  "aiChatPanel": {
624
631
  "description": "لوحة مساعد لطرح الأسئلة حول مخطط قاعدة بياناتك وبياناتك.",
@@ -631,7 +638,8 @@
631
638
  "configureBody": "أضف مفتاح Anthropic أو OpenAI — أو وجّه Adminium إلى نقطة النهاية الخاصة بك — لطرح الأسئلة حول مخططك.",
632
639
  "configureCtaLabel": "إعداد مزوّد",
633
640
  "assistantLabel": "المساعد",
634
- "composerLabel": "اطرح سؤالًا"
641
+ "composerLabel": "اطرح سؤالًا",
642
+ "transcriptLabel": "Assistant transcript"
635
643
  },
636
644
  "typingIndicator": {
637
645
  "description": "صورة رمزية وسطر مائل ”يكتب…“ مرتبط بقيمة منطقية حية لكل محادثة.",
@@ -1444,6 +1452,7 @@
1444
1452
  "deleteFailed": "فشل الحذف.",
1445
1453
  "bulkDeleted": "{count, plural, zero {تم حذف {n} صف.} one {تم حذف صف واحد.} two {تم حذف صفين.} few {تم حذف {n} صفوف.} many {تم حذف {n} صفًا.} other {تم حذف {n} صف.}}",
1446
1454
  "bulkDeleteFailed": "فشل الحذف الجماعي.",
1455
+ "exportIncomplete": "تم تصدير {written, number} من أصل {selected, number} صفًا محددًا — أعد التحميل وحاول مرة أخرى.",
1447
1456
  "undone": "تم التراجع عن التغيير.",
1448
1457
  "undoFailed": "فشل التراجع."
1449
1458
  },