معالجة ترجمات رسائل النظام في ServiceNow
نُشر في ٧ فبراير ٢٠١٨ · 1 دقائق قراءة
إذا كانت نسخة ServiceNow ستُستخدم بعدة لغات، تحتاج إلى التفكير مرتين قبل تضمين أي رسائل بشكل مباشر في الكود — سواء لمستخدمي الواجهة الخلفية أو مستخدمي Service Portal.
مشكلة الرسائل المُضمَّنة مباشرة
الرسائل المُضمَّنة مباشرة (النصوص المكتوبة مباشرة في السكريبتات أو UI Policies أو Client Scripts) لا تُترجم تلقائياً حين يغيّر المستخدم تفضيل اللغة. إذا كتبت "يرجى ملء هذا الحقل" مباشرة في سكريبت، سيرى المستخدمون الذين يعملون بالإنجليزية أو الفرنسية الرسالة كما هي.
الحل: جدول sys_ui_message
تتيح ServiceNow جدول sys_ui_message تحديداً لهذا الغرض. يخزّن الجدول:
- رسالتك الأصلية (عادةً بالإنجليزية)
- ترجمات لكل لغة تريد دعمها
يتعامل الجدول مع الرسائل الإعلامية ورسائل التأكيد ورسائل الأخطاء وغيرها من رسائل النظام.
كيفية الاستخدام
الخطوة الأولى: انتقل إلى System UI > Messages أو مباشرة إلى جدول sys_ui_message.
الخطوة الثانية: أنشئ سجلاً جديداً يحتوي على:
- المفتاح (Key): معرّف فريد لرسالتك (مثال:
fill_required_field) - الرسالة (Message): النص الإنجليزي
- اللغة (Language): English
الخطوة الثالثة: أنشئ سجلات إضافية بنفس المفتاح لكنها بقيم لغة مختلفة لكل ترجمة.
الخطوة الرابعة: في سكريبتك، استدعِ الرسالة باستخدام:
gs.getMessage('fill_required_field')
أو في سكريبت العميل:
getMessage('fill_required_field')
ستُعيد ServiceNow تلقائياً الترجمة الصحيحة بناءً على اللغة النشطة للمستخدم.
الانضباط المطلوب
اجعله معياراً للفريق: أي رسالة ستظهر للمستخدمين النهائيين تمر عبر sys_ui_message. هذا الانضباط البسيط يُبسّط تدويل النظام بشكل كبير ويجعل نسختك متعددة اللغات فعلاً.