40
ج م را لب ا ب ي ر ع ت ات ي ن ق ت د ي م ح ل ا ان ري422002668 ود م ح ل له ا ل دا ي ع422005881 ان ي ل ع و ب لم ا ا6 ش ه422003903

تقنيات تعريب البرامج ريان الحميد 422002668 عبدالله الحمود 422005881 هشام البوعليان 422003903

  • View
    232

  • Download
    0

Embed Size (px)

Citation preview

البرامج تعريب تقنيات

422002668ريان الحميد 422005881عبدالله الحمود 422003903هشام البوعليان

مقدمة

) التقنيات ) الوسائل عن الحديث البحث هذا في سنتناولمميزاتها من 5 بعضا وتعداد البرامج لتعريب 5 حاليا المستخدمةتفصيلها, نريد التي التقنية عن بالحديث نتطرق ثم وعيوبها

تعريب بمهمة للقيام المثالية واألساليب الطرق ووضع. وجه أكمل على البرامج

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

. البرمجة لغة وقواعد أصول معرفة من للمترجم البد على يجب المعرب، البرنامج من جديدة نسخة صدور عند

. جديد من كلها الترجمة يعاود أن المترجم ضخما كونه عند البرنامج أجزاء بجميع المرور صعوبة

ومعقدا.

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

توفر عند البرامج بعض تعريب على أمثلةالمصدرية الشفرة

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

لغةVisual Basic .Net: … Me.Label1.Location = New System.Drawing.Point(64, 72) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(168, 16) Me.Label1.TabIndex = 0 Me.Label1.Text = "Enter Text Here" Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(16, 96) Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(264, 20) Me.TextBox1.TabIndex = 1 Me.TextBox1.Text = "" ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(120, 120) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(56, 24) Me.Button1.TabIndex = 2 Me.Button1.Text = "Enter“…….

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

عند الرغبة في الترجمة على المترجم أن يبحث عن كل مايظهر للمستخدم من رسائل وأسماء، فمثال لتعريب زر عليه أن يبحث عن الجزء الذي يحوي النص المعروض

ويعربه كما في السطر التالي :

….Text = "…." لعدم أهـمية المحاذاة في كل من بطاقة التعريف

واألزرار ونظرا لكبر حجم مربع النص نسبيا مقارنة بالمكونات األخرى فإن المحاذاة مهمة، ولذلك

نزيد عليها السطر :….RightToLeft = System.Windows.Forms.RightToLeft.Yes

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر حال في

حاليا المستخدمة (التقنيات المصدرية) الشفرة توفر عدم حال في

ذلك ويرجع ،5 أساسا المصدرية الشفرة توفر عدمتسرب من المطورين أو المبرمجين خوف إلى

وما العمل فريق نطاق خارج برامجهم عمل أسرارالمادية للفوائد ضياع من ذلك على يترتب

. ذلك من والمعنوية على البرنامج واعتمادية الروابط مراعاة يجب

يسبب قد مما معربة، غير تكون قد أخرى برامجوالبرامج البرنامج بين المعلومات تبادل عند 5 إشكاال

األخرى.

Resource Hackerبرنامج

ماهو برنامجResource Hacker ؟ Angus Johnson برنامج مجاني من تصميم

لعرض تعديل إعادة تسمية حذف استخراج مكونات الملفات التنفيذية التي تعمل ضمن منصة

.Windowsالعمل :يعمل هذا البرنامج على األنظمة التاليةWin95, Win98,

WinME, WinNT,Win2000,WinXP

Resource Hackerمميزات برنامج

( إمكانية تغير المؤشراتCursors.في البرنامج )( إمكانية تغير الصورBitmaps.في البرنامج )( إمكانية تغير األيقوناتIcons.في البرنامج ) إمكانية تغير الئحة القوائمMenus).في البرنامج ) ( إمكانية تغير صناديق الحوارDialogs.في البرنامج )( إمكانية تغير جميع النصوصStrings الموجودة في )

البرنامج. إمكانية التعديل الكامل في الواجهات وتغير مواقع بعض

صناديق الحوار أو األزرار وما شابهها.

Resource Hackerبرنامج

Resource Hackerبرنامج

Resource Hackerبرنامج

Resource Hackerعيوب برنامج

عدم إمكانية التعديل في البرامج المكتوبة بواسطة بيئةNet.العمل

يتطلب في حال إصدار نسخة جديدة من البرنامج المرادتعريبه أن يتم التعريب من نقطة الصفر.

Restorator (1997-2005)برنامج

يسمح بتحرير موارد البرامج التنفيذية وملفات الربط(.res, dcr, rc( و ملفات الموارد )dllالديناميكي )

.يسمح بتحرير الصور المضمنة داخل الملف التنفيذي( يمتاز بأنه يقوم بإنشاء ملفPatch.) يقوم البرنامج بتقسيم الموارد الى مجموعات, ما يهمنا

لتعريب واجهات البرامج هو:( المجموعةMenu)( المجموعةDialog)( ٍالمجموعةString)

XMLالتعريب بتوظيف تقنية

ترتكز هذه الفكرة على أن النصوص المستـخدمة فيالبرنامج تكون في ملفات خارجية.

أسباب اختيارXMLلتنسيق الملفات .التنظيم.دعم العديد من لغات البرمجة لها لمرونتها حيث أنها غير مرتبطة بمنصة عمل معينة

ويمكن نقلها بين أكثر من منصة عمل و االستفادة منها دون الحاجة للتعديل عليها.

XMLشرح تقنية

لغةXML( هي لغة نصيه تعتمد على الوسوم Tags كبنية ) بسطر التعريف )اختياري( XMLأساسية لها, يبدأ ملف

التالي:?<xml version="1.0>? "" توجد عدة خصائصAttributes إضافية للوسم السابق "

وفي حال "encoding"منها الترميز المستخدم لكتابة النص لم يتم تعريف هذه الخاصية فإن الترميز االفتراضي هو

Unicode .

XMLشرح تقنية

يقوم المطور بعمل الوسوم الخاصة به حسب حاجته ويقوم بتحديدمع مراعاة الشروط إذا دعت الحاجة لذلك, tagالخصائص لكل

التالية:بحرف التيني أو شرطة سفلية) _ ( وال يمكن أن يبدأ وسميبدأ ال

برقم أو رمز. جميع الحروف عدا الحرف األول يمكن أن تكون حرف أو رقم

أو شرطة سفلية ) _ ( أو نقطة ).( .ال يسمح بوجود فراغات بين أحرف الوسم. ال يسمح للوسم بأن يبدأ بالكلمةXML سواء بأحرف كبيرة أو

صغيرة. ( والحرف األول >بداية الوسم )ال يسمح بوجود فراغ بين رمز

من الوسم.

XMLمثال لملف <?xml version="1.0" standalone="yes"?><language>

<Component> <name>button1</name> <text>Change Language</text> </ Component > < Component > <name>label1</name> <text>Welcome</text> </ Component > < Component > <name>checkBox1</name> <text>True</text> </ Component ></language>

XMLمثال لملف

التالي بالشكل السابق الملف تخيل يمكن

LanguageLanguage

elementelementelementelement

namename texttext namename

…..

…..

Change Language

button1

…..

استخداماتها

تستخدم لغةXML ,لوصف و تخزين البيانات بشكل منظم 5 على سبيل المثال ومن استخداماتها العملية المنتشرة أيضا

ال الحصرتطوير خدمات الويب

.مواقع األخبار.المنتديات

التوثيق.كتب التعليمات المرفقة مع البرامج.توثيق دفتر العناوين

النشر االليكتروني.الجداول االليكترونية.العروض التقديمية

XML لغة مميزات

.السهولة: في القراءة والتعامل كونه مفتوح االستخدام: حيث ال يجب الحصول على رخصة

الستخدامه سواء5 من المطورين أو المستخدمين. قابليتها للتوسع: حيث أنها تقنية مثالية لوصف دفتر عناوين

وفي نفس الوقت مثالية لوصف بيانات مشاريع عمالقة. فصل المحتوى عن البرامج: بحيث يتم تحرير المحتوى

وجعله على هيئه تسهل التعامل معه من أي برنامج أو نظام دون الحاجة للتعديل.

: المعرب برنامج المساعدة البرامج

برنامج التعريب: قراءة ملفات الـXML.وعرضها بشكل منظم ( اعادة تسمية المكوناتComponent2.text.).اضافة مكونات جديدة الكتابة إلى ملفXML.آخر

: المعرب برنامج المساعدة البرامج

XML File

: المعرب برنامج المساعدة البرامج

: النصوص برنامج المساعدة البرامج

برنامج النصوص: فتح ملف تنفيذي واستخراج النصوص إلى ملفXML. قراءة النصوص من ملفXML وكتابتها على الملف

التنفيذي.

5 لضيق الوقت وضرورة البحث عن طرق فتح الملفات ونظراالتنفيذية لم نستطع القيام ببرمجته ولكنه ممكن التنفيذ

5 على فكرة برنامج الـ و Resource Hackerاستنادنا غيرها...

: النصوص برنامج المساعدة البرامج

XML File

Str

ings

Code

: المقارنة برنامج المساعدة البرامج

:برنامج المقارنة 1ترتكز فكرة هذا البرنامج على المقارنة بين ملفين –س

غير معرب ومطور ) يحوي على نصوص 2معرب، سجديدة ( – يقوم البرنامج بالمقارنة وإخراج ملف جديد

5 إليها نصوص 1 يحوي نصوص الملف س3س مضافا الجديدة.2الملف س

: المقارنة برنامج المساعدة البرامج

2+--------------------+| item1 | string1 || item2 | string2 || item3 | string3 || item4 | string4 || item5 | string5 |+--------------------+

1+--------------------+| item1 | 1 || item2 | 2 || item3 | 3 |+--------------------+

Compare ProgramXMLNew Strings

3+--------------------+| item1 | 1 || item2 | 2 || item3 | 3 || item4 | string4 || item5 | string5 |+--------------------+

XM

L

بتعاون المبرمجينXMLتوظيف تقنية

والذي يحوي على جميع العناصر XMLإنشاء ملف الـ 1.الموجودة في البرنامج وذلك باستخدام برنامج المعرب.

5 إلى برنامج Classإضافة الفئة ) 2. ( المصممة مسبقا وجلب XMLالمبرمج والذي يسهل البحث داخل ملف الـ

النص المطلوب.إسناد جميع نصوص المكونات إلى الفئة التي تقوم بجلب 3.

.XMLالنص من ملف الـ

المستخدمXMLملف الـ <? xml version="1.0" ?><language>

<Component><name>Component1.name</name><text>Component1.text</name>

</Component><Component>

<name>Component2.name</name><text>Component2.text</name>

</Component><Component>

<name>Component3.name</name><text>Component3.text</name>

</Component></language>

public class Loc{

public string GetString(string ItemName, string XmlFileName){

XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(XmlFileName.ToString());XmlNodeList XmlNod =

xmlDoc.GetElementsByTagName("Component");

for(int i=0;i<XmlNod.Count;i++){

if(XmlNod[i].FirstChild.InnerText.ToString()== ItemName.ToString())return

XmlNod[i].LastChild.InnerText.ToString();}return null;

}}

private void lang(string Path){

//Create an Object of the Class Loc Loc lan = new Loc();

//Bring Every Component's text form XML File //which lan.GetString will return the string.

button1.Text = lan.GetString("button1",Path);label1.Text = lan.GetString("label1",Path);checkBox1.Text = lan.GetString("checkBox1",Path);menuItem1.Text = lan.GetString("menuItem1",Path);

}

في حال إصدار نسخه جديدة من البرنامج

المبرمج تعاون بدون

Code

) XML (

XMLXML

من جديدة نسخه إصدار حال فيالبرنامج

v5XML String File For v5

+--------------------+| item1 | string1 || item2 | string2 || item3 | string3 || item4 | string4 || item5 | string5 |+--------------------+

v4XML String File For v4

+--------------------+| item1 | 1 || item2 | 2 || item3 | 3 |+--------------------+

Code

Compare ProgramXML v4New Strings

v5XML String File For v5

After Compare+--------------------+| item1 | 1 || item2 | 2 || item3 | 3 || item4 | string4 || item5 | string5 |+--------------------+

XML Translator

v5XML String File For v5

After Translate+--------------------+| item1 | 1 || item2 | 2 || item3 | 3 || item4 | 4 || item5 | 5 |+--------------------+

XM

L v5

XML Code v5

v5

تطبيقي مثال

الخاتمة

الصعوبة أو المستحيلة بالمهمة ليس البرامج تعريبوأهـمها, ذكره سبق كما السلبيات بعض تعتريه ولكن البالغةجديد إصدار صدر حال في التعريب عملية إلعادة الحاجة هو

. والجهد الوقت يضيع ما وهو البرنامج من تعدد ميزة إلضافة فعالة تقنية إيجاد من تمكنا الله بحمد

, المساعدة البرامج بتقديم قمنا و كما برنامج ألي اللغات. العملية لهذه