اصطلاح — مفاتيح i18n للواجهة الخلفية
ما هو
مخطط تسمية مفاتيح سلاسل-موارد الواجهة الخلفية في ErrorMessages.resx / ErrorMessages.ar.resx. تتبع رسائل الخطأ والتحقّق شكل مفاتيح هرميًا لكل كيان بحيث تتألّف رسائل حجب-الحذف وصف-النظام على نحو متوقَّع وتبقى بالتوازي إنجليزي/عربي. مقفول في MIQ-132 (قرار رقم 42) ومُمرَّر عبر MIQ-133.
متى يُستخدم
كلما أضفت رسالة واجهة خلفية مُوطَّنة لكيان CRUD بيانات مرجعية — جسم حجب-بمرجع، أو حارس صف-نظام، أو رسالة تحقّق.
مخطط المفاتيح
لكيان <Entity>:
| Key | Used for |
|---|---|
<Entity>.IsSystem.Body |
رسالة حماية صف-النظام (SystemRowProtectedException<T>). |
<Entity>.Referenced.Header |
السطر الأول من رسالة محجوب-بمفتاح-أجنبي للحذف. |
<Entity>.Referenced.Intro |
مقدّمة "This … is referenced by:". |
<Entity>.Referenced.Surface.<Table> |
سطر واحد لكل جدول مُشير (مثلًا .Surface.Employees)، يُصدَر فقط حين يكون عدّاده غير صفري. |
<Entity>.Referenced.Footer |
سطر معالجة ختامي ("Reassign these…, then retry."). |
<Entity>.Validation.<Rule> |
رسالة FluentValidation (مثلًا Terminal.Validation.TimeZoneIdInvalid). |
مفاتيح حقيقية من ErrorMessages.resx:
Grade.Referenced.Header = "Cannot delete {0}."
Grade.Referenced.Intro = "This grade is referenced by:"
Grade.Referenced.Surface.Employees = "• {0} employees"
Grade.Referenced.Footer = "Reassign these employees to other grades, then retry."
Grade.IsSystem.Body = "This grade is a system row and cannot be modified or deleted."
Terminal.Validation.TimeZoneIdInvalid = "TimeZoneId must be a valid IANA timezone identifier (e.g. Asia/Riyadh)."
تؤلّف الخدمة جسم "referenced by" الكامل من الأعلى إلى الأسفل (Header → Intro → سطر Surface واحد لكل مفتاح أجنبي غير صفري → Footer) عبر IStringLocalizer<ErrorMessages>. انظر الاستثناءات لكيفية وصول الجسم المُؤلَّف إلى استجابة 409.
مزالق / قيود
- كلا اللغتين بالتوازي. كل مفتاح يُضاف إلى
ErrorMessages.resxيجب أن يوجد أيضًا فيErrorMessages.ar.resx. يؤكّد اختبار عرض أمامي تكافؤen.json/ar.jsonعلى جانب الواجهة الأمامية؛ أبقِ زوج resx للواجهة الخلفية متوازيًا بالقدر نفسه. - ألّف في الخدمة. تُستعلَم المفاتيح وتُجمَّع في الخدمة (حيث يُحقَن
IStringLocalizer)، لا في المتحكّم ولا في الاستثناء. - مفتاح
Surface.<Table>واحد لكل مفتاح أجنبي مُشير — لدى Terminal 8 أسطح، ولدى Grade سطح واحد. سمّها حسب الجدول المُشير. - هذا i18n منتج للواجهة الخلفية — متميّز عن انقسام resx-مقابل-i18next المُغطّى في التدويل، ومتميّز مجدّدًا عن مسار الترجمة العربية الخاص بالويكي.
حالة البناء
Available — المخطط حيّ عبر مدخلات resx للكيانات السبعة للبيانات المرجعية (MIQ-132 قرار رقم 42؛ MIQ-133 قرار رقم 42).
ذات صلة
- الاستثناءات — الرسائل التي يسمّيها هذا المخطط.
- التدويل — بنية i18n الكلية.
- قالب CRUD للبيانات المرجعية
- المصدر: تقارير MIQ-132 / MIQ-133 (
manpoweriq/docs/)؛Application/Resources/ErrorMessages*.resx.