استخدام اللغة العربية في دلفي
أضافه Issam Ali في أربعاء, 07/23/2008 - 11:31
بما أن مطوري دلفي يعيشون هذه الأيام زمن التغيير، و الإنتقال إلى Unicode ، إذ خرج Nick Hodges مدير مشروع دلفي ليفتتح الحديث عن نسخة دلفي الجديدة المسماة Tiburon ، و التي من أهم مميزاتها الجديدة دعمها الكامل للـ Unicode ، وكان هذا الأمر موضع تسائل من أحد الأصدقاء، كما سألني أيضاً عن إمكانية الوصول إلى يوم يكون لدينا فيه لغة برمجة عربية الترميز ، بمعنى أن نكتب النص المصدري للبرنامج كاملاً بللغة العربية!، بالنسبة لهذا الموضوع أعتقد أنه من الطبيعي أن يحب الإنسان لغته الأم، ولكن يجب أن لا يتحول هذا الحب إلى نوع من "التعصب اللغوي" ، فاللغة الإنكليزية تتمتع بمواصفات كثيرة جعلت منها اللغة الرسمية للثورة العلمية الحديثة، وخصوصاً الثورة المعلوماتية، واللجوء إلى أي لغة أخرى لا تتمتع بهذه الميزات لن يكون خياراً مثالياً حتى وإن كانت لغتنا الأم، فإن كانت اللغة العربية هي لغة للشعر و الأدب بامتياز، فلا أعتقد أنها كذلك بالنسبة للبرمجة، هذه وجهة نظري، على أي حال فأن دلفي بدعمها للـ Unicode قدمت خيارات كثيرة للمولعين بـ "أقلمة" كل شيء مثل صديقي هذا، فأنت في CodeGear RAD Studio تستطيع تعريف متحولات وأغراض باللغة العربية فأنت مثلاً تستطيع كتابة الكود التالي:
Var
س1,س2,ع : Integer;
ليس هذا وحسب بل يمكنك أيضاً تعريف أنوع جديدة Types باللغة العربية، وهنا خطرت لي فكرة و أنا أكتب هذا المقال، أن يكون هناك وحدة جديدة تحوي تعريباً للأنواع الرئيسية في دلفي، وبالتالي يمكن لمحبي التعريب (أنا لست منهم) أن يستخدمونها ضمن برامجهم و بالتالي يمكنهم زيادة نسبة التعريب بشكل أكبر، إذ يمكن كتابة (س : طبيعي) بدلاً من (س : Integer) مثلاً، وقد بدأت كتابة هذه الوحدة و أسميتها ArabicTypes و قد اقتصرت على تعريب بعض الأنواع الأساسية (هي مجرد بداية صغيرة) و يمكن لمن تعجبه الفكرة أن يتابع تعريب بقية ألأنواع و أن يضيف أي شيء آخر يجده مناسباً، و لكن أقترح أن يتم مراسلتي بأي تعديلات متخذة ليتم تحديث النسخة الموجودة لدي و التي ستكون متاحة للتحميل للجميع.
unit ArabicTypes;
interface
uses
Controls;
type
طبيعي = Integer;
أساسي = Cardinal;
منطقي = Boolean;
حقيقي = Real;
مفرد = single;
مزدوج = double;
موسع = extended;
حسابي = comp;
محرف = Char;
نص = String;
نص_قصير = shortstring;
نص_آنسي = ansistring;
نص_واسع = widestring;
تاريخ = TDate;
وقت = TTime;
implementation
end.
يمكنكم تحميل الوحدة من الرابط ArabicTypes.pas
ولتوضيح كيفية استخدام هذه الوحدة، واستخدام العربية ضمن دلفي إليكم المثال التالي:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
ArabicTypes in 'ArabicTypes.pas';
type
الموظف = Class
الاسم : نص;
الكنية : نص;
تاريخ_الميلاد : تاريخ;
أيام_العمل_الفعلي : طبيعي;
أجرة_اليوم : طبيعي;
Constructor إنشاء;
Destructor تدمير ;
Function الاسم_الكامل : نص;
Function الراتب : طبيعي;
End;
var
موظف1 : الموظف;
{ الموظف }
function الموظف.الاسم_الكامل: نص;
begin
result := الاسم + ' ' + الكنية;
end;
function الموظف.الراتب: طبيعي;
begin
result := أيام_العمل_الفعلي * أجرة_اليوم;
end;
destructor الموظف.تدمير;
begin
inherited Destroy;
end;
constructor الموظف.إنشاء;
begin
inherited Create;
end;
begin
موظف1 := الموظف.إنشاء;
try
موظف1.الاسم := 'عصام';
موظف1.الكنية := 'علي';
موظف1.أيام_العمل_الفعلي := 27;
موظف1.أجرة_اليوم := 500;
Writeln(موظف1.الاسم_الكامل + ': ' + IntToStr(موظف1.الراتب));
finally
موظف1.تدمير;
end;
Readln;
end.