تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] تعدد لغات برنامجك بطريقة سهلة
#1
السلام عليكم ورحمة الله وبركاته
اسهل طريقة لتطبيق هذه الفكرة اولا كلاس الفورم كامل :
كود :
Imports System.Xml

Public Class Form1
   Dim doc As XmlDocument
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       doc = New XmlDocument
       doc.Load("langs.txt")
       Dim nods As XmlNodeList = doc.DocumentElement.SelectNodes("//langs[@lang]")
       For r As Integer = 0 To nods.Count - 1
           ComboBox1.Items.Add(nods(r).Attributes("lang").Value)
       Next
       ComboBox1.SelectedIndex = 0
   End Sub

   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

       If ComboBox1.Items.Count = 0 Then Exit Sub
       If ComboBox1.Text.ToLower = "عربي" Then
           Me.RightToLeftLayout = True
           Me.RightToLeft = Windows.Forms.RightToLeft.Yes
       Else
           Me.RightToLeftLayout = False
           Me.RightToLeft = Windows.Forms.RightToLeft.No
       End If



       Dim words As XmlNodeList = doc.DocumentElement.SelectNodes("//langs[@lang='" & ComboBox1.Text & "']/h")
       For r As Integer = 0 To words.Count - 1
           Dim hn As String = words(r).Attributes("name").Value
           For Each h As Control In Me.Controls
               If h.Name = hn Then
                   h.Text = (words(r).InnerText)
               End If
           Next
       Next
   End Sub
End Class






ثانيا ملف نصي باي اسم وفيه:
كود :
<AllLangs>
<langs lang="En">
<h name="lblmain">welcome here</h>
<h name="lblname">Name</h>
<h name="lblage">Age</h>
</langs>
<langs lang="عربي">
<h name="lblmain">مرحبا بكم هنا</h>
<h name="lblname">الاسم</h>
<h name="lblage">العمر</h>
</langs>
</AllLangs>
ثم المشروع مرفق

نسيت اضيف تسمية selected language
نفس الطريقةSmile
تم التعديل


الملفات المرفقة
.zip   MultiLanguage_Custom_idea.zip (الحجم : 30.21 ك ب / التحميلات : 337)
}}}
#2
شكرا لك و جزاك الله كل خير ..
هذا ما كنت احتاجة بالظبط في هذا الموضوع
}}}
تم الشكر بواسطة: سعود , elgokr
#3
(30-06-18, 11:55 AM)YousefOkasha كتب : شكرا لك و جزاك الله كل خير ..
هذا ما كنت احتاجة بالظبط في هذا الموضوع

الحمدلله ....لقد اسعدتني بهذا.
}}}
تم الشكر بواسطة: elgokr , YousefOkasha , sendbad100
#4
سبقتنى اليوم اخى سعود
كنت ساعمل على عمل 
واجهة بطريق مختلفة لتعدد اللغات

لكن ما قمت انت به لخص الامور كلها فى بساطة الموضوع

لك منى +1

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
}}}
تم الشكر بواسطة: عبد العزيز البسكري , سعود , sendbad100
#5
(30-06-18, 10:47 AM)سعود كتب : السلام عليكم ورحمة الله وبركاته
اسهل طريقة لتطبيق هذه الفكرة اولا كلاس الفورم كامل :
كود :
Imports System.Xml

Public Class Form1
   Dim doc As XmlDocument
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       doc = New XmlDocument
       doc.Load("langs.txt")
       Dim nods As XmlNodeList = doc.DocumentElement.SelectNodes("//langs[@lang]")
       For r As Integer = 0 To nods.Count - 1
           ComboBox1.Items.Add(nods(r).Attributes("lang").Value)
       Next
       ComboBox1.SelectedIndex = 0
   End Sub

   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

       If ComboBox1.Items.Count = 0 Then Exit Sub
       If ComboBox1.Text.ToLower = "عربي" Then
           Me.RightToLeftLayout = True
           Me.RightToLeft = Windows.Forms.RightToLeft.Yes
       Else
           Me.RightToLeftLayout = False
           Me.RightToLeft = Windows.Forms.RightToLeft.No
       End If



       Dim words As XmlNodeList = doc.DocumentElement.SelectNodes("//langs[@lang='" & ComboBox1.Text & "']/h")
       For r As Integer = 0 To words.Count - 1
           Dim hn As String = words(r).Attributes("name").Value
           For Each h As Control In Me.Controls
               If h.Name = hn Then
                   h.Text = (words(r).InnerText)
               End If
           Next
       Next
   End Sub
End Class






ثانيا ملف نصي باي اسم وفيه:
كود :
<AllLangs>
<langs lang="En">
<h name="lblmain">welcome here</h>
<h name="lblname">Name</h>
<h name="lblage">Age</h>
</langs>
<langs lang="عربي">
<h name="lblmain">مرحبا بكم هنا</h>
<h name="lblname">الاسم</h>
<h name="lblage">العمر</h>
</langs>
</AllLangs>
ثم المشروع مرفق

نسيت اضيف تسمية selected language
نفس الطريقةSmile
تم التعديل

احسنت بارك الله فيك
}}}
تم الشكر بواسطة: elgokr , سعود
#6
ماشاء الله عبقري جزاك الله خيرا
}}}
تم الشكر بواسطة: elgokr , elgokr , سعود , moosa_alabri
#7
سؤال هل هذة الطريقة تناسب الى جميع الفورمات ؟؟

اذا كان عندي اكثر من فور وحدة
}}}
تم الشكر بواسطة: سعود
#8
(03-07-18, 07:09 PM)0theghost0 كتب : سؤال هل هذة الطريقة تناسب الى جميع الفورمات ؟؟

اذا كان عندي اكثر من فور وحدة


بكل تاكيد اخى الحبيب

ما قدمه الاخ سعود هى كا فكرة

وكل ما هو مطلوب التعامل مع الكود
من تعديلات تناسب كل فورم ومن حيث الملف اللغة سيكون واحد
وبها جميع النصوص المطلوب طباعتها فى الفورم حسب الاستدعاء القيمة من ملف اللغة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
}}}
تم الشكر بواسطة: سعود , sendbad100
#9
(03-07-18, 07:09 PM)0theghost0 كتب : سؤال هل هذة الطريقة تناسب الى جميع الفورمات ؟؟

اذا كان عندي اكثر من فور وحدة

الشكر كل الشكر للاخ  Heart  سعود   Heart  دائما مبدع ويحب الخير للجميع

يمكنك الاستغناء عن الملف النصي 

واستخدام جدول في قاعدة البينات قاعدة بيانات اخرى اكسس

وتضع فيها  حتى ترجمة رسائل التنبية 


سيكون اسهل   بالذات اذا لديك الكثير من الفورمات والرسائل 


   |   ID       |       AR       |     EN     |
}}}
تم الشكر بواسطة: elgokr , عبد العزيز البسكري , سعود
#10
بارك الله فيكم جميعا وشكر لكم .
كنت اريد استخدام ملفات تعريب منتديات  vbulletin جاهز لكن قلت اجعلها ملف نصي بسيط.
ميزة الملف النصي هي السرعة.
}}}
تم الشكر بواسطة: sendbad100 , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة سهلة للاتصال بقاعدة بيانات SQL مع اضافة ايقونات للتحكم في تدفق البيانات ggtt17121985 0 541 06-11-23, 10:16 AM
آخر رد: ggtt17121985
  مشروع تعدد لغات للبرنامج من قاعدة بيانات MsAccess asemshahen5 6 3,652 18-05-23, 03:39 AM
آخر رد: mohamed gida
  [كورس] معرفة عدد مستخدمين برنامجك dasktop 2 1,144 14-05-22, 02:47 AM
آخر رد: dasktop
Rainbow كيفية عمل الشجرة المحاسبية بطريقة احترافية asemshahen5 38 22,772 03-01-22, 12:30 AM
آخر رد: sayyad
  [VB.NET] الطريقة الصحيحة لجعل برنامجك متعدد اللغات سعود الشامان 6 5,875 04-02-21, 11:22 PM
آخر رد: ibra9009
  [مشروع] اجعل برنامجك يحذف نفسه عند او عدم تحقق شرط سعود 0 1,686 07-12-20, 03:33 AM
آخر رد: سعود
  [درس فيديو] التحكم الكامل في إدارة المستخدمين وإنشاء صلاحياتهم في برنامجك من خلال SQL SERVER 2016 عبدالله الدوسري 10 49,926 13-10-20, 04:48 PM
آخر رد: tanmia
Video [درس فيديو] طريقة تشغيل برنامجك عند تشغيل جهاز الكمبيوتر ahmadpal 0 1,428 06-06-20, 03:41 AM
آخر رد: ahmadpal
Video [درس فيديو] مشروع تشفير وفك تشفير النصوص بطريقة سهله وبسيطة ahmadpal 0 1,949 06-06-20, 03:39 AM
آخر رد: ahmadpal
  البرمجة بالتركيب - انظر للبرمجة بطريقة جديدة معاند الحظ 0 1,282 30-05-20, 10:50 PM
آخر رد: معاند الحظ

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم