الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعريب الرسائل

بدأه Rema في 22 أبريل 2003 · 11 رد · 2,733 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل هناك امكانية في تعريب الرسائل في الدلفي

أقص الأزرار OK نعم Camcel الغاء NO لا

و هكذا

لأنه مو معقول برنامج كله عربي و الرسائل تطلع له بالانجليزي

شكرا للجميع

#2

طبع يمكنك ذلك

لقد كتبت بالتفصيل سابقا عن الموضوع

وهناك وحدة للاستاذ كفاح نجم بهذا الخصوص

تجدينها في موقع المطورين العرب

http://www.arabdevelopers.com/

إذا بتستهويك الامور التقنية لتعريب المعالمات سأكون مسورا بمناقشتها سويا

لك تحياتي

أخوك رضا(f)

#3

هاهي الوحدة

13_adialogs_d5.zip

#4

شكرا لك أخي reda

كيف أعمل بهذا الملف وكيف يعمل مع البرنامج

#5

للاستفادة من هذه الوحد عليك بالاتي:

اولا عليك بفك ضغط الملف في مجلد الدلفي تحت مجلد Bin

ثم عندما تريدن استخدام صناديق الحوار العربية في برنامج اتبعي الخطوات التالية:

1- عرفي الوحدة التالية(ADialogs) في USES الفورم

2- عند كتابة رسالة مثلا نكتب:

ArabShowMessage('شكرا لاستخدامك برنامجنا.......!!');

وباقي صناديق الحوار مثلها فقط نضيف كلمة Arab

تحياتي

#6

شكرا جزيلا يا ابو احمد الله يحفظك

#7

الوحدة التي قام بعملها الاستاذ كفاح نجم هي عملية لتعريب اوامر الرسائل في الدلفي

فتستطيعين ا ستدعاء الرسائل مع تعريب لصناديق الحوار والازرارلكن تكتبين بدلا من messagedlg

arabmessagedlg

بإمكانك الاطلاع على الاوامر الاوامر الموجودة داخل الوحدة

فهي ظريفة جدا ومفيدة

#8

السلام عليكم

الرجاء ممن يملك الكمبوننت ADialogs إرفاقه لأنه كان عندى والهارد راح منى

#9

السلام عليكم

الأخ reda حاولت تحميل الوحدة لكن يبدو أنه قد تم حذفها أو لا أعرف ما المشكلة

أرجو منك إعادة وضعها مرة أخرى لو تكرمت و شكرا

و السلام ختام

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#10

السلام عليكم...

بخصوص تعريب الرسائل فإنه يمكن أيضاً استخدام دالة كالدالة التالية، و هي تغليف للمنهج MessageBox التابع للكائن Application:

function MsgBox(Text: string; Flags: LongInt = MB_OK; Caption: string = ''; RTLOrder: Boolean = True): Integer;
const
	MB_ARABIC = MB_RIGHT or MB_RTLREADING;

var
	TheFlags: LongInt;
begin
	if RTLOrder then
		TheFlags := Flags or MB_ARABIC
	else
		TheFlags := Flags and (not MB_ARABIC);
	if Caption = '' then
		Result := Application.MessageBox(PAnsiChar(Text), PAnsiChar(Application.Title), TheFlags)
	else
		Result := Application.MessageBox(PAnsiChar(Text), PAnsiChar(Caption), TheFlags);
end;

مع ملاحظة أن البارامتر Flags يمكن أن يساوي واحداً أو أكثر من القيم التالية (يمكن ضم أكثر من قيمة باستعمال العامل OR) علماً بأن هذه الثوابت معرفة في الوحدة Windows:

1. بالنسبة إلى الأزرار:

MB_OK للزر موافق

MB_OKCANCEL للزرين موافق - إلغاء الأمر

MB_ABORTRETRYIGNORE للأزار إحباط - إعادة المحاولة - تجاهل

MB_YESNOCANCEL للأزار نعم - لا - إلغاء الأمر

MB_YESNO للزرين نعم - لا

MB_RETRYCANCEL للزرين إعادة المحاولة - إلغاء الأمر

2. بالنسبة إلى الرموز:

MB_ICONQUESTION رمز السؤال

MB_ICONEXCLAMATION رمز علامة التعجب

MB_ICONSTOP رمز حدوث خطأ

MB_ICONINFORMATION رمز عرض المعلومات

2. القيم التي تعيدها الدالة:

IDOK المستخدم اختار الزر (موافق)

IDCANCEL المستخدم اختار الزر (إلغاء الأمر)

IDABORT المستخدم اختار الزر (إحباط)

IDRETRY المستخدم اختار الزر (إعادة المحاولة)

IDIGNORE المستخدم اختار الزر (تجاهل)

IDYES المستخدم اختار الزر (نعم)

IDNO المستخدم اختار الزر (لا)

نلاحظ أن البارامتر الثالث في الدالة MsgBox أي البارامتر RTLOrder هو بارامتر اختياري و قيمته الافتراضية هي True أي الرسالة ستكون من اليمين إلى اليسار (عربية)، و إذا أردناها رسالة أجنبية فيجب ضبط هذا البارامتر على False عند استدعاء الدالة.

ميزة أخرى في هذه الدالة أن عناوين الأزرار تعتمد على واجهة نظام التشغيل، فهي تكون معربة (موافق، نعم، لا، ... إلخ) إذا كانت واجهة Windows عربية، و تكون غير معربة (OK, Yes, No، ... إلخ) إذا كانت واجهة Windows إنجليزية.

أنا شخصياً قمت بكتابة وحدة برمجية تحتوي على العديد من الدوال التي أستخدمها بكثرة و أقوم بتضمينها في كل برامجي، و هي تحتوي على هذه الدالة و غيرها (بما في ذلك دوال تعريب نوافذ حوار ويندوز - حفظ ملف، فتح ملف، طباعة، اختيار لون، اختيار خط) و قد قمت في مشاركة سابقة بوضع النسخة المترجمة من تلك الوحدة في هذا المنتدى، و هي باسم DNSDGen.dcu

أرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#11

أخي الكريم

حاولت استخدام الوحدة DNSDGen علي دلفي 2009 ولكن دون جدوي لأنها مصممة للعمل علي دلفي 7

فهل من مساعدة

شكرا لك

خيركم من تعلم القرآن وعلمه

#12

السلام عليكم ورحمة الله وبركاته

الأخ najy_zl

انا أريد ان يظهر العربي حتى لو كان المستخدم الويندوز عنده انجليزي واعداداته انجليزية فما دام الويندوز يدعم العربي فأريد البرنامج يظهر العربي في كل مكان والدالة التي وضعت اظهرت لي الرسائل من اليمين الى اليسار لكن لم يظهر لي العربي (موافق , إلغاء , الخ...) علما انني استخدم delphi 2007 والويندوز xp انجليزي أيضا DNSDGen لم يعمل معي يبدو انه لا يدعم 2007

انتظر ردك

شكرا لكم

مواضيع مشابهة