14-10-12, 02:19 PM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .التعريب في فيجوال بيسك .
إن برنامج فيجوال بيسك هو في الأصل مصمم للبرمجة بأغلب اللغات المشهورة ، ولكن طرق العرض تظل باللغة الانجليزية أو الضبط بأسلوب عرض البيانات من اليسار إلى اليمين .
في الاصدارات الأخيرة من VB تمت اضافة خاصية جميلة لأغلب الأدوات ، وهي RightToLeft ، والتي تحتوي على قيمتين منطقيتين True,False ، وذلك لتحويل نسق الكتابة في تلك الأدوات إلى النسق العربي - اليمين إلى اليسار لمزيد من الدقة حيث أن هناك لغات أخرى تكتب من اليمين إلى اليسار - ، والذي يضع علامات الترميز على يسار النص ، وليس اليمين كما هو الحال مع اللغة الانجليزية .
وبنفس الطريقة ، فسوف تتحول أشرطة التمرير إلى الجهة المقابلة ، ولكن ورغم تطبيق هذه الخاصية على الفورم Form فسيظل صندوق الأدوات ( خروج - تكبير - تصغير ) في موقعه السابق في اللغة الانجليزية .
وهذا مثال بسيط على قصور خاصية RightToLeft ، اضافة إلى أنها غير مدعومة في بعض الأدوات ، ولذا توجد حلول بديلة أخرى منها تقنية المرآة Mirroring والتي ظهرت منذ نظام التشغيل 98 ، وهي ببساطة إحدى دوال API التابعة لويندوز .
تقوم هذه التقنية بفعل المرآة تماماً ، حيث ينعكس اتجاه الأشياء ، وينعكس كل ما يترتب عليها ، فمثلاً ستتناقص الاحداثيات x,y عند التحرك إلى اليمين والأسفل على عكس السابق .
وهناك بعض الخصائص الخاصة بمثل هذا الأمر والتي تمنع عكس النصوص وغيرها .
ولكن في برنامج صغير ، فلا أتوقع انه من المجدي تكبد هذا العناء ... ولكن يمكن استخدام خاصية RightToLeft كبديل ناجح إلى حد بعيد .
عمل رسائل Msgbox عربية .
لا تحتوي ال Msgbox على خاصية RightToLeft بالصورة الطبيعية ، بل تحتوي على قيمتين تؤديان إلى تعريب الرسالة ، وهما 524288 و 1048576 .
ويقابلهما الثابتان :
vbMsgBoxRight و vbMsgBoxRtlReading
بهذا نكتب أمر الرسالة بالشكل التالي :
كود :
MsgBox "أحمد جمال .", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading,"اللغة العربية"
لمزيد من الاختصار . لن نضطر في كل مرة لاظهار رسالة أن نكتب الثابتين السابقين أو الرقمين .لذا فإن بامكاننا تعريف Enum وذلك لاعطاء هذين الثابتين اسماً آخر ، وذلك بالشكل التالي :
كود :
Public Enum Ahmed
arabic = vbMsgBoxRight + vbMsgBoxRtlReading
End Enum
ويمكننا أن نقوم بكتابة الأمر السابق في موديول وذلك لاستخدامه في جميع الشاشات .
لاحقاً . يمكن استخدام كلمة arabic لتقوم بالمهمة مباشرة .
لذا تصبح الرسالة التي تظهر كلمة المرور والتي وضعناها في الدرس السابق بالشكل التالي :
MsgBox "أحمد جمال .", vbInformation + arabic,"اللغة العربية"
*** شكر خاص جداً لأخي رغيد الطيب من vb4arab حيث أنني استفدت من فكرة عمل Enum للرسائل العربية من أحد برامجه .
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .