اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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


jjafferr

الردود الموصى بها

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

 

في الواقع ، عرضت هذا الموضوع في منتدى الفريق العربي للبرمجة سابقا ، ولكني اعرضه هنا ، حتى تعم الفائدة ويستفيد منه الجميع.

 

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

 

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

 

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

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

 

Clipboard02.jpg.3f11a1de5adfdbce7cebd9652cc7d207.jpg

 

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

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

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

Clipboard03.jpg.97f23817bf3f7d331712c6c4dd619910.jpg

 

 

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

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

Clipboard04.jpg.a44c05edc63e930c2894f93d5678d77a.jpg

 

 


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

Clipboard05.jpg.78fb356b92588809de6d95116f183e06.jpg

 

 

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

Clipboard06.jpg.2c29f24f0525c01e25332b0db8f2940d.jpg

 

 

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

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

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

 

 

جعفر

MultiLanguage2.zip

  • Like 5
  • Thanks 2
رابط هذا التعليق
شارك

السلام عليكم

:fff:  :fff:  :fff:

بارك الله فيك معلمنا الفاضل

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

لما تعلمه من ان بعض المنتديات تم تعطيلها او واجهتها مشكت فنيه

ويتم وضعها هنا لسهوله الرجوع اليها ولتكن صدقه جاريه 

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

بارك الله فيك واسف على الاطاله

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

:fff:  :fff:  :fff:

بارك الله فيك معلمنا الفاضل

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

لما تعلمه من ان بعض المنتديات تم تعطيلها او واجهتها مشكت فنيه

ويتم وضعها هنا لسهوله الرجوع اليها ولتكن صدقه جاريه 

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

بارك الله فيك واسف على الاطاله

 

ان شاء الله باصداراتها التالية والمحسنة  :smile:

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

بارك الله فيك استاذنا الجليل جعفر

وأسال الله العلى العظيم ان يغفر جميع ذنوبك ما تقدم وما تاخر

تم تعديل بواسطه soft.sample
رابط هذا التعليق
شارك

بارك الله فيك استاذنا الجليل جعفر

وغفر الله ذنبك

 

هممم ، ياأخي انا عندي ذنوب مش ذنب واحد فقط   :eek2:

يعني كم موضوع لازم اكتب علشان الله جل وعلا يغفر لي ذنوبي كلها  :smile:

 

حياك الله  :smile:

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

  • 10 months later...
  • 3 years later...

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information