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

اعمل برنامجك بعدة لغات وببساطة

بدأه jjafferr في 30 يناير 2014 · 12 رد · 1,303 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :)

 

في بعض الاحيان نعمل برنامج بلغة معينة (العربية مثلاً) ، ثم لاحقا نريد هذا البرنامج لمستعملين بلغة اخرى (الانجليزية او الفرنسية مثلاً) ، مما يضطرنا ان نعمل نسخة اخرى من البرنامج :(

 

اضع بين يديكم طريقة عمل برنامج بعدة لغات ، والطريقة هي الاحتفاظ بالمعلومات المطلوبة (ولا اقصد البيانات) في جدول.

 

1. هذه هي البيانات بلغات 3 ، العربية والانجليزية والفرنسية (والكلمات تم ترجمتها من الانجليزية الى الفرنسية عن طريق Google Translation):

الخانات الموجودة بسيطة ومعرفة معناها لا يأخذ وقت ، اما تنسيق الحقل فهو:1. اسم الخط ، 2. حجم الخط ، 3. ثخانة الخط ، 4. منحني ، 5. تحته خط ، 6. لون الخط:

post-273849-0-13710500-1391029576_thumb.

 

 

2. النموذج الرئيسي ، به واجهة البرنامج (والتي سنراها على الجهة اليمنى من الشرائح التالية) ،

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

وعندما نطمئن لإختيارنا للخط ، يجب ان نحفظ هذا التنسيق ، وذللك للّغة التي نريدها:

post-273849-0-44695000-1391029604_thumb.

 

 

3. اما النتائج المرجوة من البرنامج ، فتظهر لنا في هذا النموذج:

باللغة العربية:

post-273849-0-90871600-1391029632_thumb.

 

 

باللغة الانجليزية:

post-273849-0-47469500-1391029660_thumb.

 

 

وباللغة الفرنسية:

post-273849-0-17017500-1391029689_thumb.

 

 

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

Private Sub Form_Load()
On Error GoTo err_Form_Load


    mySQL = "Select * From tbl_Controls_Properties"
    mySQL = mySQL & " WHERE Form_Name='" & Me.Name & "'"
    mySQL = mySQL & " AND Language='" & Forms!frm_Main!Lang & "'"
    

    Dim rst As DAO.Recordset
    Dim x() As String
    
    Set rst = CurrentDb.OpenRecordset(mySQL)
    rst.MoveLast: rst.MoveFirst
    
    iTwips = 576 '576 twips/cm , 1440 twips/inch
    For i = 1 To rst.RecordCount
     
        Me(rst!ctl_Name).Caption = rst!ctl_Caption
        Me(rst!ctl_Name).Left = rst!ctl_Left * iTwips
        
        If Len(rst!ctl_Style & "") <> 0 Then
        
            x = Split(rst!ctl_Style, "|")
            With Me(rst!ctl_Name)
                .FontName = x(0)
                .FontSize = x(1)
                .FontWeight = x(2)
                .FontItalic = x(3)
                .FontUnderline = x(4)
                .ForeColor = x(5)
                If rst!Language = "A" Then
                    '0=General
                    '1=Left
                    '2=Center
                    '3=Right
                    '4=Distribute
                    .TextAlign = 3
                Else
                    .TextAlign = 1
                End If
            End With
        
        End If
    
        rst.MoveNext
    Next i
    
    
Exit Sub
err_Form_Load:

    If Err.Number = 438 Or Err.Number = 13 Then
        'ignor,
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

وهذا الكود الذي يفتح لنا msgbox :

Public Function aRemark(N)
    
    'call the Arabic Remarks in Table tbl_Controls_Properties
    aRemark = DLookup("[Remark]", "tbl_Controls_Properties", "[Form_Name]='" & Me.Name & _
                                                             "' And [Language]='" & Forms!frm_Main!Lang & _
                                                             "' And [Remark_ID] = " & N)
    
End Function

هذا البرنامج برنامج بدائي ، والذي يمكن تطويره :)

 

ومرفق البرنامج اعلاه :)

 

 

جعفر

MultiLanguage.zip

8
#2

يعجز اللسان عن الشكر ..................

 

         بــــــــــــــــــــــارك الله به اخى الكريـــــــــــــــــــم

+1

هناك من يراقبك فى كل وقت (الله) فكن حذراً من المعاصى B) 


 


ان اكبر عائق يمنع النجاح هو الخوف من الفشل و الاخفاق B) 

#3

يعجز اللسان عن الشكر ..................

 

         بــــــــــــــــــــــارك الله به اخى الكريـــــــــــــــــــم

+1

هناك من يراقبك فى كل وقت (الله) فكن حذراً من المعاصى B) 


 


ان اكبر عائق يمنع النجاح هو الخوف من الفشل و الاخفاق B) 

#4

رائع اخي الكريم جعفر ،،، 

 

جعله الله في ميزان حسناتك

 

+1

اذا دعتـــك قدرتك على ظلـــم الناس   فتذكر قدرة الله عليــــــك

#5

الله يوفقك استاذي الفاضل جعفر وجزاك الله خير الجزاء 

#6

استاذنا الفاضل : جعفر  ( ابو حسين )

 

بارك الله بك وجزاك الله كل خير

 

مشاركة رائعة من استاذ اروع

 

 

ولكني اريد النسخة تكون بلغة صينية   :) 

 

 

بالتوفيق

#7

جزاك الله خيرا رائع

#8

حياكم الله جميعا :)

أما ردي ﻷختنا الفاضلة الدكتورة أم عهود ، فانتي خليتيني افكر في الخطوة التالية للبرنامج ، واضافة جميع اللغات اللي تريديها ، وكتابة ترجمة الكائنات في النموذج أو التقرير ، كل هذا بعد اختيارك ﻹسم النموذج او التقرير من combobox ، ويرى المستخدم كل شئ امامه وببساطة :)

ولكني لن استطيع عمل هذا اﻻن ﻷني مسافر غدا ، فإن شاء الله في وقت رجوعي :)

واعتز واتشرف بمرورك اختنا الفاضلة :)

جعفر

#9

فكرة  اكثر  من  رائعة  جزاك  الله  كل خير 

 

بس  كان  في  عندي  استفسار  :  هل  من  الممكن  ربط  البرنامج  بترجمة  جوجل  مباشرة 

 

بحيث  اختار  اي  لغة  و  تتم عملية  الترجمة  مباشرة  لكل  الادوات  من  دون  الحاجة  لحفظ   المعلومات  ؟

 

انا  عارف  انه  ممكن  يكون فيه  مشكلة  في  تعديل  شكل  البرنامج    <_<  

للإطلاع  على جديد  الكتب من تأليفي


 


الطريق لاحتراف تطوير المواقع   ج1 | ج2 | ج3 | ج4


 


                    4Colors | Break Out | Classic Snake | لعبة السودوكو - 2014  |  لعبة  XO                      


 


Help Dodo


 


^_^


 

#10

برنامج أكثر من رائع وفكرة  اكثر  من  رائعة  وهو من البرامج البسيطة في محتواها وكبيرة في مضمونها جزاك  الله  كل خير 

#12

عمل رائع 

وفكرة طيبة 

+1

حسابي على الفيسبوك

 

حسابي على التويتـــر

 

صفحتي الشخصية في منتدى أوفيسنا

 

اعذروني ففي الفترة القادمة سيكون تواجدي في المنتدى ضيق جداً وذلك للانشغال في دورة لمدة 6 شهور بعد الدوام

#13

سلمت يداك أخي جعفر وبارك الله فيك اللهم آمييييييييييييييين

[يمين]

إذا كـان تـرك الـدين يعــنــي تقــدمــاً

فـيا نفــس مـوتــي قبــل أن تتقـدمــي

[/يمين]

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