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

Slides:



Advertisements
Similar presentations
Conjunctions الروابـــــــــط.
Advertisements

تعريب لوحة المفاتيح والشاشة
منصور البصيلي خالد الزهراني
تعريب الحاسب - حسني المحتسب
نظام هال سوبر نوفا خالد العبدلله أقسام نظام هال سوبر نوفا قاريء الشاشة أنظمة إخراج: الناطق عدسة التكبير لغة برايل.
س : ما هو فيروس الكمبيوتر ؟
إمكانات الدعم العربي في البيئات الجديدة إعداد عمر بن محمد السحيباني عبدالله بن ابراهيم الغنيم إشراف د.عبد الملك السلمان.
أطاعن خيلا الشاعر المتنبي.
Prepared By: Manal Mobarez hotmail.com.
كتابة المعادلات الرياضيه لمحرر الرياضيات العربي Math Braille
التعرف الآلي على الكلام العربي
Introduction to Software
كيفية عرض المكونات Hit Counter: يجب تخزينها ونشرها على موقع الويب (الخادم) Hover Button: يجب تخزينها وعرضها من الأمر Preview on Browser من قائمة File.
مقارنة بين برنامجي IRIS وصخر للقراءة الآلية العربية
التعرف الآلي على الكلام المنطوق العربي
Mind Mapper. مقدمة تعرفنا في دروس سابقة على الخرائط الذهنية وكيفية تصميمها باستخدام برمجية الوورد ولكن اليوم سنقدم برمجية متخصصة في رسم الخرائط الذهنية.
مقارنة بين برنامجي Restrator Resource Hacker إعداد هاني سليم السليم
الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد، 26 رمضان، 1436الأحد،
محرك البحث الإدريسي غزوان البريكان
EMSA EXTERNAL MEASUREMENT of STUDENT ACHIEVEMENT.
بروتوكول الانترنت نظم تشغيل 1.
1-Oct-15 HTML Forms Form, Button, Checkbox, Text box, Combo box, List & Radio Button.
بعض نظم الأرشفة الإلكترونية تقديم د. جبريل العريشي A microfiche reader.
Creating Scenes A scene in flash contains one or more layers that show related objects, in the stage, that act and interact to deliver a certain idea.
JavaScript JavaScript Introduction. Q. What is JavaScript? Ans. JavaScript was designed to add interactivity to HTML pages. JavaScript is a scripting.
Review: Program Memory Addresses Program addresses are fixed at the time the source file is compiled and linked يتم إصلاحها عناوين البرنامج في الوقت يتم.
تقسيم الشبكات Subnetting
Alphabet game…. Think of a word – Your partner has to guess that word – you can give ONE word clues – no YES/NO responses allowed!!
Activity Diagram.
State Chart Diagrams.
Reuse.. To don’t reinvent the wheel
أهداف الدرس 1 ما هي محركات البحث ؟ Search engines
بسم الله الرحمن الرحيم برمجة الويب بلغة HTML 1.
تعريف تطبيقات واستخدامات نظم المعلومات الجغرافية المحتويات تعريف نظم المعلومات الجغرافية مكونات نظم المعلومات الجغرافية الاسئلة الخمسة التى تجيب عنها.
الفرق بين التصاميم التجريبية (التوزيع العشوائي) د. ظلال الصافتلي كلية الزراعة – جامعة حماه.
لنفرض أن هدف التجربة هو مقارنة نوعين من الأعلاف (A و B) لتغذية أبقار حلوب خلال 3 شهور. وتم اختيار عشرين بقرة متشابهة ( في الوزن / العمر / السلالة / الموسم.
لنفرض أن هدف التجربة هو مقارنة صنفين من السماد (A و B) من حيث كمية محصول نوع معين من القمح.
النشر الإلكتروني ELECTRONIC PUBLISHING
PSCJ 11/11/2018 المحور الرئيسي: أساسيات نظم وتقنيات المعلومات الموضوع الخامس: أنواع البرمجيات 23/4/2013 Mr Hashem Alaidaros.
تقنين برمجيات نظم المعلومات الجغرافية (GIS)
How to contact me Twitter Blog :-
PowerPoint Dr.Manal mobarez.
10 0× 1 = 4× 4 = (وحدات)4 10 1× = 5 50 = (عشرات)5
برمجة قواعد بيانات تطبيق مفهوم الحماية في النماذج
تابع :تطبيع البيانات.
تابع الفصل الثاني: مبادى البناء ونماذج العلاقات لقواعد البيانات
بناء صفحات الإنترنت برنامج FrontPage
1 أهلا وسهلا ... بطلاب المنح الدراسية بجامعة جازان
1.الدوال Function 2.الاجراءاتSub Procedure 3.وحده نمطيه Add Module
المخدم الرئيسي في الشبكات
مقدمة ASP.NET.
أمن وحماية المعلومات.
نظام التشغيل Windows xp.
سياسات واستراتيجيات البحث
الفصل الثالث حصر و ترتيب البيانات.
تدريب (3-1)- مكونات سطح المكتب لنظام التشغيل (Windows XP).
Programming -2 برمجة -2 المحاضرة-1 Lecture-1.
Electronic Payment Systems أنظمة الدفع الالكتروني
C++ Programming L4+5 . Functions kkkkkkkkkkkkkk
Windows Security Center
قواعد البيانات Databases
أ.إسراء الطريقي , 306 عال , المحاضره الثالثه
مقدمة في البرمجة.
3. Browsing the Web تصفح الانترنت
C++ Programming L11 . Classes(3) kkkkkkkkkkkkkk
شرح برنامج صانع الافلام Movie Maker (الموفي ميكر)
Gateway (بوابة العبور أو الاتصال)
User ID Symbol Description Site Engineer SE Office Engineer OE N/A SF
الوحدة الثانية: مكونات لغة الجافا
هيكلة نظم إدارة قواعد البيانات (DBMS Architecture)
Presentation transcript:

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

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

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

التقنيات المستخدمة حاليا (في حال توفر الشفرة المصدرية) أمثلة على تعريب بعض البرامج عند توفر الشفرة المصدرية

التقنيات المستخدمة حاليا (في حال توفر الشفرة المصدرية) لغة 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

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

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

برنامج 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) يسمح بتحرير موارد البرامج التنفيذية وملفات الربط الديناميكي (dll) و ملفات الموارد (res, dcr, rc). يسمح بتحرير الصور المضمنة داخل الملف التنفيذي. يمتاز بأنه يقوم بإنشاء ملف (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> <name>checkBox1</name> <text>True</text> </language>

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

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

مميزات لغة XML السهولة: في القراءة والتعامل. كونه مفتوح الاستخدام: حيث لا يجب الحصول على رخصة لاستخدامه سواءً من المطورين أو المستخدمين. قابليتها للتوسع: حيث أنها تقنية مثالية لوصف دفتر عناوين وفي نفس الوقت مثالية لوصف بيانات مشاريع عملاقة. فصل المحتوى عن البرامج: بحيث يتم تحرير المحتوى وجعله على هيئه تسهل التعامل معه من أي برنامج أو نظام دون الحاجة للتعديل.

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

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

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

البرامج المساعدة: برنامج النصوص برنامج النصوص: فتح ملف تنفيذي واستخراج النصوص إلى ملف XML. قراءة النصوص من ملف XML وكتابتها على الملف التنفيذي. ونظراً لضيق الوقت وضرورة البحث عن طرق فتح الملفات التنفيذية لم نستطع القيام ببرمجته ولكنه ممكن التنفيذ استنادناً على فكرة برنامج الـ Resource Hacker و غيرها...

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

البرامج المساعدة: برنامج المقارنة برنامج المقارنة: ترتكز فكرة هذا البرنامج على المقارنة بين ملفين –س1 معرب، س2 غير معرب ومطور ( يحوي على نصوص جديدة ) – يقوم البرنامج بالمقارنة وإخراج ملف جديد س3 يحوي نصوص الملف س1 مضافاً إليها نصوص الملف س2 الجديدة.

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

توظيف تقنية XML بتعاون المبرمجين إضافة الفئة ( Class ) المصممة مسبقاً إلى برنامج المبرمج والذي يسهل البحث داخل ملف الـXML وجلب النص المطلوب. إسناد جميع نصوص المكونات إلى الفئة التي تقوم بجلب النص من ملف الـ XML.

ملف الـ XML المستخدم <? xml version="1.0" ?> <language> <Component> <name>Component1.name</name> <text>Component1.text</name> </Component> <name>Component2.name</name> <text>Component2.text</name> <name>Component3.name</name> <text>Component3.text</name> </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); }

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

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

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

مثال تطبيقي

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