jjafferr قام بنشر مارس 16, 2015 قام بنشر مارس 16, 2015 السلام عليكم ورحمة الله وبركاته 🙂 في الواقع ، عرضت هذا الموضوع في منتدى الفريق العربي للبرمجة سابقا ، ولكني اعرضه هنا ، حتى تعم الفائدة ويستفيد منه الجميع. في بعض الاحيان نعمل برنامج بلغة معينة (العربية مثلاً) ، ثم لاحقا نريد هذا البرنامج لمستعملين بلغة اخرى (الانجليزية او الفرنسية مثلاً) ، مما يضطرنا ان نعمل نسخة اخرى من البرنامج 😞 اضع بين يديكم طريقة عمل برنامج بعدة لغات ، والطريقة هي الاحتفاظ بالمعلومات المطلوبة (ولا اقصد البيانات) في جدول. 1. هذه هي البيانات بلغات 3 ، العربية والانجليزية والفرنسية (والكلمات تم ترجمتها من الانجليزية الى الفرنسية عن طريق Google Translation): الخانات الموجودة بسيطة ومعرفة معناها لا يأخذ وقت ، اما تنسيق الحقل فهو:1. اسم الخط ، 2. حجم الخط ، 3. ثخانة الخط ، 4. منحني ، 5. تحته خط ، 6. لون الخط: 2. النموذج الرئيسي ، به واجهة البرنامج (والتي سنراها على الجهة اليمنى من الشرائح التالية) ، واول نموذج هو لعمل التغييرات على تنسيق الحقل ، وذلك بالنقر المزدوج في الحقل ، فتنفتح لنا نافذة اختيار الخط ، وعندما نطمئن لإختيارنا للخط ، يجب ان نحفظ هذا التنسيق ، وذللك للّغة التي نريدها: 3. اما النتائج المرجوة من البرنامج ، فتظهر لنا في هذا النموذج: باللغة العربية: باللغة الانجليزية: وباللغة الفرنسية: والكود الذي يقوم بجلب الكلمات والتنسيق هو التالي ، ولا يوجد حاجة الى تغيير الكود ، وانما العمل يكون بإضافة الخانات في الجدول: 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 5 2
ابو الآء قام بنشر مارس 16, 2015 قام بنشر مارس 16, 2015 السلام عليكم بارك الله فيك معلمنا الفاضل اتمنى منك التكرم بنقل المواضيع المهمه التى تكرمت بوضعها فى منتديات شقيقه لما تعلمه من ان بعض المنتديات تم تعطيلها او واجهتها مشكت فنيه ويتم وضعها هنا لسهوله الرجوع اليها ولتكن صدقه جاريه ارجوا ان يتقبل الله منا ومنك صالح الاعمال بارك الله فيك واسف على الاطاله 1
jjafferr قام بنشر مارس 16, 2015 الكاتب قام بنشر مارس 16, 2015 السلام عليكم بارك الله فيك معلمنا الفاضل اتمنى منك التكرم بنقل المواضيع المهمه التى تكرمت بوضعها فى منتديات شقيقه لما تعلمه من ان بعض المنتديات تم تعطيلها او واجهتها مشكت فنيه ويتم وضعها هنا لسهوله الرجوع اليها ولتكن صدقه جاريه ارجوا ان يتقبل الله منا ومنك صالح الاعمال بارك الله فيك واسف على الاطاله ان شاء الله باصداراتها التالية والمحسنة جعفر 1
محمد سلامة قام بنشر مارس 16, 2015 قام بنشر مارس 16, 2015 (معدل) بارك الله فيك استاذنا الجليل جعفر وأسال الله العلى العظيم ان يغفر جميع ذنوبك ما تقدم وما تاخر تم تعديل مارس 16, 2015 بواسطه soft.sample
jjafferr قام بنشر مارس 16, 2015 الكاتب قام بنشر مارس 16, 2015 بارك الله فيك استاذنا الجليل جعفر وغفر الله ذنبك هممم ، ياأخي انا عندي ذنوب مش ذنب واحد فقط يعني كم موضوع لازم اكتب علشان الله جل وعلا يغفر لي ذنوبي كلها حياك الله جعفر 1
سلمان الشهراني قام بنشر مارس 16, 2015 قام بنشر مارس 16, 2015 الله يعطيك العافيه اخي جعفر فعلا هذي استفدت منها كثيروقد اضفتها في برامج لي الف شكر لك ولله لايحرمك الاجر
ابو جودي قام بنشر يوليو 10, 2019 قام بنشر يوليو 10, 2019 استاذ جعفر @jjafferr بالرغم من روعتها الا انها طريقة قاتلة انظر الى هذا المثال المشابه MultiLingualSample.zip 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.