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

في سبيل ان تكون برامجنا عالمية

مغلق
بدأه Mohammed-Saeed في 17 مارس 2005 · 22 رد · 9,311 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

بعد احر التحيات و اشد الاشواق :)

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

و لعدم تمكني من الرد آنذاك ، بسبب الدراسة ، و عدم وجود خط انترنت لدي ، لم استطع المشاركة ، و قد بحثت عن الموضوع و لم اجده ... عموما ،،،

سبق و ان بحثت حول الموضوع ، و ذلك لان برامجي عادة تكون من عدة لغات ، و وجدت افضل طريقة هي استخدام ملف INI و ذلك لعدة اسباب هي :

* - سهولة تحرير هذه الملفات بواسطة المستخدم ، مما يساعد على الحصول على ترجمات اخرى للبرنامج ، مثل برنامج Crazy Browser على سبيل المثال .

* - عدم زيادة حجم البرنامج ، حيث ان طريقة قاعدة البيانات مثلا تحتاج الى ملفات ربط اضافية ، بينما في هذه الطريقة يمكننا ان نستخدم فيها ال API ، و التي تكون ملفاتها موجودةمع الوندوز مسبقا .

* - تعتبر هذه الطريقة سهلة ، سريعة ، و لا تحتاج للكثير من البرمجة ، و بهذا يمكننا تجنب اكبر قدر من الاخطاء البرمجية ....

عموما ، البرنامج االذي سبق و ان اعددته مرفق مع المشاركة ، مع مثال بسيط ، و لدي حوله عدة ملاحظات :

* - البرنامج من نوع Add-in خاص بالفيجوال بيسيك 6 ، و يمكنك اعادة ترجمته Compile كي يتم تسجيله في جهازك ، و يمكنك الوصول اليه من VB > Add-Ins > Add-in Manager ، و اسمه VB Language Maker .

* - يقوم البرنامج بالمرور على جميع الادوات الموجودة في ال Form ، و يقوم بتخزين قيم الخواص Caption و ToolTipText في ملف ، و سيعتبر الملف الرئيسي للبرنامج ، و يمكنك اضافة ملفات اللغات الاخرى ، ثم ترجمتها ( او استخدام قاعدة البيانات فيما بعد ) .

* - البرنامج غير مكتمل تماما ، و لذا فهو لا يدعم كل الادوات ( الغير قياسية ) ، كما انه يجب عمل Make ini’s لكل نافذة في المشروع .

ملاحظات :

* - طريقة استخدام البرنامج موجودة ضمن ملفات المصادر .

* - انا على اتم الاستعداد للتعاون في اكمال المشروع ، و نشره باسم الفريق العربي للبرمجة .

* - لدي عدة ترجمات لعدة برامج ، مثل الترجمة العربية لبرنامج Setup Factory 6.0 ، و ساضعه قريبا في المنتدى .

VB_LM_1.0.zip

#2

شكرا لك اخي العزيز ...

وايضا توجد طريقة اخرى من غير ملفات ini و قواعد البيانات وهي استخدام محرر المصادر الموجود في فيجوال بيسك ....

لك تحياتي

#3

بعد التحية

يعيب ملف المصادر التالي :

1 - زيادة حجم البرنامج التنفيذي ، لان ملفات اللغات الغير مستخدمة ايضا يجب ان تكون داخل البرنامج ، مما يؤدي الى استهلاك قدر اكبر من الذاكرة مسببا بطء تشغيل البرنامج ،،، و لا سيما اذا كان عدد اللغات كثير .

2- لا يمكن الا للمبرمج اضافة لغات جديدة للبرنامج ، و بينما في طريقة ال ini يمكن لاي كان ترجمة ملف اللغة لاي لغة ، مما يؤدي الى زيادة الترجمات ( في حال كان البرنامج مطلوب ) ، و لذا تستخدمه معظم البرامج العالمية ، مثل ال Setup Factory و Crazy Browser و غیرها کثیر ....

3- تعتمد طريقة ملف المصادر على رقم مُعرف للنص ID ، و هذا ما لا يمكن للمبرمج حفظه ، و ستكون واجهة البرنامج اثناء التصميم مجرد ارقام لا تسمن و لا تغني من جوع ، بينما في طريقة ال ini سنعتمد على اسم الاداة للدلالة على النص المطلوب ... فمثلا :

101=File

102=Edit

103=View

104=X

بينما في طريقة ال ini

mnuFile.Caption=File

mnuEdit.Caption=Edit

mnuView.Caption=View

الى آخره ....

4- تخيل انك صممت برنامج ، كانت قائمة الملف به تحتوي على س قائمة فرعية ، و انشأت لها ملف مصادر ... ستكون الارقام من 1 الى س ،،، و من س +1 الى ص للقائمة تحرير .... ، ماذا يحدث لو اردت اضافة قائمة فرعية اخرى للقائمة ملف .... ستجبر على استخدام آخر رقم اي ص+1 ، و بهذا لن تراعي حتى التسلسل المنطقي للارقام بالنسبة للادوات الموجودة على النافذة ... و هذا سيسبب لخبطة كبيرة للمبرمج ، و اضاعة وقت كثير في الترجمة للغات اخرى ....

#4

يا حبذا من الاخوة الذين حملوا البرنامج ، ابداء تعليقاتهم .... و ابراز عيوب البرنامج ...

و لهم مني و للجميع جميع الامتنان :)

#5

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

Public Sub AlignToRight(frm As Form)

On Error Resume Next

Dim i As Control
Dim TempVal As String

    frm.RightToLeft = Not frm.RightToLeft
    
    For Each i In frm.Controls
        If i.Tag <> "-1" Then
            If i.Alignment = 0 Then
                i.Alignment = 1
            Else
                i.Alignment = 0
            End If
            i.RightToLeft = Not i.RightToLeft
            
            If i.Tag <> "" Then
                TempVal = i.Caption
                i.Caption = i.Tag
                i.Tag = TempVal
            End If

            If TypeName(i.Container) = "Frame" Then
                i.Left = i.Container.Width - i.Width - i.Left
            Else
                i.Left = frm.ScaleWidth - i.Width - i.Left
            End If
        End If
    Next
        
End Sub

واليكم هذا الكود كمثال لكيفية القلب مباشرة

ChangeLanguage.zip

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#6

شكرا لك اخي العزيز على الرد وتوضيح عيوب طريقة محرر المصادر ...

#7

قضية المحاذاة موجودة في مثالي ...

لان الكثير من اللغات تحتاج الى ( يمين لليسار ) مثل العربية و الفارسية و العبرية و ......................

عموما ... اعتقد ان افكار برنامجي شبه كاملة ... و ان لم اكن قد وفقت برمجيا لطرحها ..

بالنسبة لتخزين القيم في ال Tag فهي جيدة للغة ثانية للبرنامج فقط ، اما اذا اردت ان يكون عدد اللغات غير محدد ، فستحتاج لاستخدام الملفات ... و هنا تاتي اهمية مشروعي :)

شكرا جزيلا

#8

بعد التحية ...

16 مرة حُمل البرنامج ، و لا انتقاد ؟؟؟

عجيب ... هل هو كامل لهذه الدرجة ؟؟؟ و الكمال لله وحده !!!

ام انه لا يستحق حتى القاء نظرة ... فضلا عن ابداء الراي .....

غريب ...

#9

لقدت القيت عليه نظرة سريعة وهو جيد

ولكن لو جعلت برنامجك يقوم بتعريب مشروع كامل اعتقد يكون افضل

لانة يجب ان افتح فورم فورم لكى اعمل له ملف تعريب ثم الفورم الاخر وهكذا

لكن برنامجك جميل ويستحق الاهتمام

وَقُل رَّبِّ زِدْنِي عِلْماً

#10

بعد التحية ...

ما ذكرت سهل ... فقط حلقة تكرار واحدة ، تدور على الفورم ز ، و تنفذ الاوامر ....

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

#11

بسم الله الرحمن الرحيم

بعد التحية

تعتبر عملية تثبيت البرنامج Setup اهم عملية لدى المستخدم ، ذلك انه تعتبر النظرة الاولى له على البرنامج ، و منها يقتبس الكثير من احساساته تجاه البرنامج ,,,

اليكم في المرفق تعريب نوافذ و رسائل البرنامج المعروف Setup Factory 6.0

* التعريب شبه كامل ، عدا بعض الجمل .

Setup_Factory_6.0.zip

Setup_Factory_6.0.zip

Setup_Factory_6.0.zip

#12

بعد التحية ...

الى الذين حملوا ترجمة ال Setup Factory ، هل واجهتكم مشكلة ؟؟؟

حيث ان الملف المضغوط كان واحد ، و لا اعلم ماذا فعل به برنامج المنتدى !!!

شكرا

#13

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

هناك طريقة أخرى لا أدرى لماذا يتجاهلها الكل رغم انها من أيسر وأسرع وأأمن الطرق ألا وهى ملفات الديل (DLL)

أمان واسرع و قابلية للتحديث وضمان عدم العبث من قبل المستخدم لذا أرجوا الإهتمام بها جيدا حيث ان الإهتمام بالملف التنفيذى فقط هو دليل على فشل المبرمج لأن المحترفين يعتبرونها ملفات ربط فقط وتحتوى على القليل جدا من الأكواد ولننظر إلى ملفات الألعاب هل يتصور أو يتوقع أحد ان لعبة فيفا بكل مافيها ملفها التنفيذى 2MB

{يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عَظِيمٌ }الحج1

#14

بعد التحية ...

ملفات الربط فكرة جيدة ، و قد استخدمتها سابقا ،،، و لكن ، ماذا لو اردنا ان يتمكن مستخدم ما من ترجمة برنامجنا للغة المنغولية ؟؟؟؟

لن يتمكن من هذا ، لانه لا يستطيع تحرير النصوص ، لذا ، تمكن المستخدم من التلاعب بالترجمة لن تضرني ، بل ربما تسبب انتشار اوسع للبرنامج ....

هناك الكثير من البرامج المعروفة التي تثق بالمستخدم ، و تجعل ملفاتها قابلة للتحرير ... و قد ذكرت آنفا عدة امثلة ، و ان شئت ، زودتك بالمزيد ...

#15

الاخ الفاضل shearer

بما انك تفضلت ولمحت حول استخدام ملفات DLL فى برامجنا لانها أأمن وافضل

ممكن لو تشرح لنا كيف يتم استخدام ملف DLL مع برنامجى؟؟

السؤال بطريقة اخرى :

ما هو الكود الذى يكنب داخل ملف مصنوع من DLL

وكيف استدعى ما بداخل DLL لبرنامجى ؟؟؟

ارجو ان يكون شرح ذلك فى شكل مثال يبين ذلك

لانى لم اتطرق لهذة الملفات فى برامجى من قبل

وشكرا لكم مرة اخرى

:)

وَقُل رَّبِّ زِدْنِي عِلْماً

#16
arafa كتب:
الاخ الفاضل shearer

بما انك تفضلت ولمحت حول استخدام ملفات DLL فى برامجنا لانها أأمن وافضل

ممكن لو تشرح لنا كيف يتم استخدام ملف DLL مع برنامجى؟؟

السؤال بطريقة اخرى :

ما هو الكود الذى يكنب داخل ملف مصنوع من DLL

وكيف استدعى ما بداخل DLL لبرنامجى ؟؟؟

ارجو ان يكون شرح ذلك فى شكل مثال يبين ذلك

لانى لم اتطرق لهذة الملفات فى برامجى من قبل

وشكرا لكم مرة اخرى

:)

للرفع

ياليت احد يرد علينا

كما اشكر الأخ محمد كاتب الموضوع على الأفكار النيره

#17

بعد التحية ...

لقد بحثت عن رابط الموضوع ، فوجدت سؤالكم ...

اعتذر عن كل هذا التاخير ... حيث لم ار مشاركتكم ...

ساعد المثال قريبا :)

اكرر اعتذاري

#19

الي صاحب الموضوع

برنامجك رهييب واشتغل ولكن

كيف أطبق الموضوع علي برنامج أخر عندي؟؟؟؟

+

منتظرين النسخة الكاملة اللي تجيب كل الفورم ز.. !

::::التوقيع::::

موقع ممتاز

وان شاء الله يفيد الجميع

وشكرا

؟؟لماذا لا يصل الايميل المرسل من صفحتي الي الهوتميل؟؟

مستوي الجدية في المواضيع المطروحة

لا اله الا الله محمد رسول الله

#21

بعد التحية ...

قمت بعدة تطويرات للبرنامج ... و لكن ضيق الوقت ، و كثرة المشاغل تمنعني من الاكمال ...

ساحاول ذلك في اقرب فرصة :)

شكرا

#22

ممكن اخى تعيد ارفاق البرنامج بعد اذنك ؟

#23

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

هذي أول مشاركة لي في هذا المنتدى و من دون إطالة أخوكم مبتدئ في البرمجة و عملت مشروع لكن عندي مشكلتين :

أولهما أنه كيف أقدر أدخل أكثر من قيمة من خلال تكست واحد مش واضح الكلام صح

بمعنى

مثلا :عندي زبون يشتري بظاعة كل يوم و نبي نحط هذي القيم للمشتريات تحت أسم هذا الزبون في قاعدة البيانات وعند طباعة التقرير النهائي تطلع تابعة لأسمه

ثانيهما :

أني عندما أحول المشروع كله كصيغة exe يعطي أنه لم يجد بعض الفورم و يتجاهلها و يطلع المشروع ناقص

باللهعليكم الي عنده حل يبعثلي على إيميلي

adam_ms2003@yahoo.com

هذا الموضوع مغلق.

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