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