اذهب الي المحتوي
أوفيسنا

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

قام بنشر

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

 

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

 

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

 

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

 

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...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information