واجهة المستخدم متعددة اللغات (MUI): دليل شامل

واجهة المستخدم متعددة اللغات (MUI)
تعد واجهة المستخدم متعددة اللغات (Multilingual User Interface - MUI) إطار عمل ديناميكي للتوطين يُستخدم في نظام التشغيل مايكروسوفت ويندوز، وويندوز فون، والبرامج المتوافقة معه. يهدف هذا النظام إلى جعل ملفات اللغة منفصلة عن منطق التطبيق، مما يسهل عملية تطوير ونشر البرمجيات الموطنة لعدة لغات.

مميزات تقنية MUI مقارنة بالتوطين التقليدي
توفر تقنية MUI عدة مزايا تجعلها تتفوق على طرق التوطين الساكنة التقليدية، ومن أبرزها:
- تخزين الموارد اللغوية في ملفات مخصصة: بدلاً من كتابة النصوص مباشرة داخل ملفات البرنامج الثنائية (Hardcoding)، يتم تخزينها في ملفات منفصلة، مما يسمح بتحديث اللغات أو الكود بشكل ديناميكي دون الحاجة إلى إعادة تجميع البرنامج (Recompilation).
- الاختيار التلقائي للغة: يقوم النظام باختيار اللغة بناءً على تفضيلات اللغة في ويندوز تلقائياً، بدلاً من مطالبة المستخدم باختيار اللغة عند تشغيل البرنامج.
- استخدام واجهة برمجة تطبيقات Win32 API: يتم تحميل الموارد من ملفات لغة MUI باستخدام واجهة برمجة تطبيقات Win32.
تطور تقنية MUI عبر إصدارات ويندوز
تم تقديم إطار عمل MUI وواجهة برمجة التطبيقات الخاصة به وملفات التوطين (التي تسمى حزم اللغات - Language Packs) في نظام ويندوز 2000. تم توسيع هذه الإمكانيات بشكل كبير في ويندوز فيستا، حيث سُمح للمطورين باستخدام MUI في برامجهم الخاصة. وفي ويندوز 7، تمت إضافة حزم واجهة اللغة (LIPs) لتكملة حزم اللغات، ثم استُبدلت هذه الأخيرة بحزم الخبرة المحلية (LXPs) في إصدار ويندوز 10 (بناء 1809).
نظرة عامة على آلية العمل
تتكامل تقنية MUI مباشرة في نظام ويندوز. يمكن للتطبيقات استخدامها عن طريق تخزين الموارد القابلة للتوطين في ملف لغة واستخدام واجهة برمجة تطبيقات MUI لتحميل هذه الموارد أثناء وقت التشغيل.
طرق التنفيذ في التطبيقات
يمكن تنفيذ MUI في التطبيق بطرق تتراوح من البساطة إلى التعقيد:
- التنفيذ البسيط: تخزين سلاسل النصوص لكل لغة في مورد جدول نصوص (string-table) داخل الملف الثنائي واستخدام دالة
LoadStringمن Win32 لتحميل النصوص. - التنفيذ المتقدم (اختياري):
- تخزين موارد كل لغة في ملف DLL منفصل لزيادة مرونة التثبيت والنشر.
- استخدام وظائف MUI المخصصة للتحكم بشكل أكبر في استهلاك الأصول الموطنة (مثل استخدام لغة تختلف عن تفضيلات النظام).
- تخزين الأصول الموطنة بتنسيقات أخرى غير الموارد التقليدية.
سيناريوهات النشر
يهدف تصميم MUI إلى توفير طريقة موحدة لتخزين معلومات توطين التطبيقات، مما يحل مشاكل التصميمات التقليدية التي كانت تدمج جميع اللغات في ملفات منطق التطبيق. وبفضل MUI، أصبح من الممكن:
- إضافة دعم للغة جديدة عن طريق تثبيت حزم اللغات فقط، دون تعديل منطق التطبيق أو ملفات اللغات الأخرى.
- إضافة ميزات جديدة أو إصلاح أخطاء عن طريق تثبيت ملفات منطق التطبيق فقط، دون الحاجة إلى تضمين النصوص الموطنة مجدداً.
المكونات التكنولوجية والمصطلحات
| المصطلح | الوصف |
|---|---|
| محايد لغوياً (Language-neutral - LN) | شيء ينقل المعنى بغض النظر عن لغة المشاهد، مثل صورة بدون نص أو عناصر غير قابلة للتوطين. |
| مورد محايد لغوياً (LN resource) | مورد مشترك يتم تثبيته لجميع الإصدارات اللغوية من التطبيق. |
| ملف محايد لغوياً (LN file) | ملف ثنائي في ويندوز يحتوي على منطق التطبيق والموارد المحايدة لغوياً. |
| محدد للغة (Language-specific - LS) | يصف شيئاً يتغير بشكل كبير حسب اللغة، مثل نصوص الواجهة أو الصور التي تحتوي على نصوص. |
| ملف مورد محدد للغة (LS resource file) | مجموعة من الموارد الموطنة للغة واحدة، ويسمى أيضاً ملف MUI. |
أسئلة شائعة
ما هي واجهة المستخدم متعددة اللغات (MUI)؟
هي إطار عمل للتوطين في أنظمة مايكروسوفت ويندوز يسمح بفصل النصوص والموارد اللغوية عن الكود البرمجي للتطبيق، مما يسهل دعم لغات متعددة.
ما الفرق بين ملفات LN وملفات LS في MUI؟
ملفات LN (المحايدة لغوياً) تحتوي على منطق التطبيق والموارد التي لا تتغير بتغير اللغة، بينما ملفات LS (المحددة للغة) تحتوي على النصوص والصور الموطنة للغة معينة.
كيف يستفيد المطورون من استخدام MUI؟
يستفيد المطورون من خلال القدرة على إضافة لغات جديدة أو تحديث ميزات البرنامج دون الحاجة إلى إعادة بناء التطبيق بالكامل لكل لغة.