تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة فى عمل البرنامج متعدد اللغات
#9
(28-07-16, 12:24 AM)silverlight كتب : شكرا با أخي سعود بارك الله فيك و في مجهودك في الموقع .......  أخجلتم تواضعا

لكن الأمر أصبح مثل مصيبة كبيرة في الموقع حاليا لأن الناس لا تهتم بقراءة ما يسأل عنه الأخرين ولا حتي تهتم بقراءة ما يتم كتابته في المنتدي من أفكار وكل انسان يريد حل لمشكلته فقط لا غير و بطريقته و أسلوبه هو ..... و بالتالي تكررت الأسئلة و تضيع جهود من يرد علي اسئلة الناس هباء و المصيبة الأكبر أن البعض لا يهتم حتي بكتابة سؤاله بشكل لائق و بلغة عربية جيدة
وبسبب كل ذلك انا توقفت تقريبا عن الرد علي اسئلة الناس

بعتذر جدا على عدم تنسيقى للسؤال

ملحوظة اخى الكريم

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

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

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

واصبح كل شخص يعتمد على نفسه فى حل مشاكله ماذا سيحدث ساعتها بالتاكيد لن استطيع حل اى مشكلة

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

اتمنى تكون فهمت وجهة نظرى

وشكرا لمرورك الكريم على سؤالى

ولا تحرمنى من رؤية ردودك اى اسئلتى فهذا شرف ليا انا اتعلم منك ومن الجميع

(27-07-16, 11:56 PM)silverlight كتب : الأخ مسعد

البرامج الكبيرة و المبرمجين بشكل عام توقفوا عن استخدام دوال API المذكورة في الكود الخاص بك
ولو فعلا الأمر له علاقة بالترجمة فهناك اساليب كثيرة لتخزين البيانات المراد ترجمتها

فعلي سبيل المثال لا الحصر أصبح الأمر كالتالي: -  

الفكرة الأولي
1- تقوم ببناء كلاس يعبر عن المتغييرات أو البيانات المراد تخزينها و هذا سيتيح لك امكانية التحكم في المدخلات و أيضا سيتيح لك إمكانية تشفير البيانات قبل حفظها في ملف امتداده ini او أي امتداد اخر تحده مناسبا لك أ
نفس المنطق ينطبق علي تخزين المعلومات في ملف من النوع   xml وهنا سيختلف فقط اسلوب استرداد المعلومات من ملف  xml  لا غير  
2- تستخدم BinaryWriter  و BinaryReader في حفظ البيانات الي الملف و قراءة البيانات من الملف علي التوالي

الفكرة الثانية
تخزين المعلومات كما يحدث في  تخزين البيانات باستخدام الاكسس أو SQL و بالتالي تحفظها و تقرأها كما تقرأ أي بيانات

الفكرة الثالثة
تخزين البيانات المراد ترجمتها داخل كلاسات في البرنامج وغالبا هي ستكون عبارة عن String تتغير قيمته مع تغيير نوعية اللغة التي يختارها المستخدم

الفكرة الرابعة
تخزين المعلومات في البرنامج داخل Generic collection أو داخل Generic Dictionary و تسترد البيانات عند الحاجة الي تغيير اللغة

الفكرة الخامسة
تستخدم اسلوب مايكروسوفت و تترجم كل فورم علي حدة طبقا لنوع اللغة المستخدمة و علي ما أتذكر هنا البيانات سيتم تخزينها بشكل اتوماتيكي في Resources المشروع علي هيئة ملفات xml


طبعا بعض الأفكار المذكورة أعلاه قد تحتاج وقت لكتابة الكود الخاص بها و بعض الأفكار الأخري قد لا يحتاج إلا إلي وقت أقل و الأمر متروك لك لتختار الطريقة المناسبة طبقا لخبراتك البرمجية

السلام عليكم

اولا بعتذر جدا عن اى تقصير فى كتابة السؤال

واعتذر عن لغتى وطريقتى فى الكتابة فقط تذكر ان اللغات العربية تختلف فى بعض الاشياء مثلا المصرية غير العراقية غير الاردنية الخ

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

ولكن لا حرج عليك وعلى باقى الاعضاء الذين ليسوا بمصرين

فهذا فعلا خطئى فى المرة القادمة راح اكتب باللغة العربية وليس المصرية

ثانيا

انا استخدمت من قبل الطريقة الخامسة الخاصة بميكروسوفت وتقيمى لها 0% نظرا لما واجهته منها هذا رئيي فقط على حسب تجربتى لها

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

وبصراحة انا حاولت استخدام طريقة ini
لانها ستكون مريحة بعض الشئ فى اضافة ترجمات لاى لغة جديدة او تعديل اى لغة من قبلى او من قبل اى مطور او مستخدم عادى لبرنامجى

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

وحاليا صديق لى مدنى بحل اخر وهو هذا الكود

كود :
Imports System.Text.RegularExpressions

Module Module1
  Dim _login, _start
  Sub getlang(lang As String)
  Dim _lib_ = FileIO.FileSystem.ReadAllText("\lang\" & lang & ".ini")
  _login = getval(_lib_, "001")
  setlang()
  End Sub
  Sub setlang()
  Form1.TextBox1.Text = _login
  End Sub
  Function getval(_lib_, _key_)
  Return Regex.Matches(_lib_, String.Format("(?<=" & _key_ & "=\s*"").+?(?=""[\r\n]*)"), RegexOptions.IgnoreCase).Item(0).Value
  End Function
End Module

سوف اجربه ولى رجعة لكم باذن الله

وبعتذر مرة تانية عن اى تقصير فى كتابة السؤال
الرد }}}
تم الشكر بواسطة: الوادي


الردود في هذا الموضوع
RE: مشكلة فى عمل البرنامج متعدد اللغات - بواسطة الماجيك مسعد - 28-07-16, 04:24 AM


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


يقوم بقرائة الموضوع: