تقييم الموضوع :
  • 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 ك ب / التحميلات : 231)

نصيحة للتخفيف على قاعدة بيانات المنتدى  لا تخزن الصور الخاصة بالسؤال في قاعدة بيانات المنتدى

#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 , سعود
#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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Video [درس فيديو] طريقة تشغيل برنامجك عند تشغيل جهاز الكمبيوتر ahmadpal 0 97 06-06-20, 03:41 AM
آخر رد: ahmadpal
Video [درس فيديو] مشروع تشفير وفك تشفير النصوص بطريقة سهله وبسيطة ahmadpal 0 92 06-06-20, 03:39 AM
آخر رد: ahmadpal
  البرمجة بالتركيب - انظر للبرمجة بطريقة جديدة معاند الحظ 0 106 30-05-20, 10:50 PM
آخر رد: معاند الحظ
Video [درس فيديو] مشروع رسالة تنبثق من جانب الساعة بطريقة سهله ahmadpal 0 133 13-05-20, 04:15 PM
آخر رد: ahmadpal
  [مشروع] مشرع لغات متعددة للمشروع + شرح الكيفية Codack 0 145 26-04-20, 06:10 PM
آخر رد: Codack
  مشروع تعدد لغات للبرنامج من قاعدة بيانات MsAccess asemshahen5 2 739 30-03-20, 05:20 PM
آخر رد: Hanyvedio
  [درس فيديو] التحكم الكامل في إدارة المستخدمين وإنشاء صلاحياتهم في برنامجك من خلال SQL SERVER 2016 عبدالله الدوسري 9 7,952 26-03-20, 02:45 PM
آخر رد: solbi
  خطوة خطوة - ازاي تحول برنامجك لملف exe يتم تسطيبه على اي كمبيوتر بجميع ملفاته ggtt17121985 3 879 11-02-20, 12:02 AM
آخر رد: ggtt17121985
Tongue [مشروع] تصميم فورم تسجيل دخول فلات بطريقة جديدة ahmadpal 3 952 24-09-19, 11:07 PM
آخر رد: ahmadpal
  تعليم الاطفال جدول ضرب الرقم تسعة بطريقة سهلة viv 3 576 06-09-19, 04:08 AM
آخر رد: أمجد وضاح

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


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