الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه _- محمد نور -_ في 26 مارس 2010 · 9 رد · 1,510 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

حياكم الله

أريد أن أجعل المستخم يكون قادرا على تغيير لغة واجهة البرنامج بأسلوب إحترافى

يعنى أريد واجهة البرنامج عربى و إنجليزى و فرنسى و لغات أخرى و هو يختار أى لغة يشاء لكى تكون واجهة البرنامج بها

المشكلة أننى لم أقم بفعل هذا من قبل قط و لا أدرى كيف أبدأ

أيضا أريد أن أضع ملفات اللغة فى مكان منفصل عن الكود بحيث كلما قمت بوضع لغة جديدة للبرنامج

فقط أضع ملف اللغة الجديدة فى مجلد اللغات فتظهر فى قائمة اللغات المدعمة

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#2

السلام عليكم اخي محمد

هذا رابط لشرح الموضوع علي Code project:

http://www.codeproject.com/KB/dotnet/Localization.aspx

و هذا مشروع علي code project

http://www.codeproject.com/KB/aspnet/localizationByVivekTakur.aspx

[يمين]في زمان كل شئ فيه يتحرك بسرعة ... كونك ثابتا يعني انك تتحرك للوراء...

[/يمين]

#3

أخى محمد يوجد مثال فى هذه الصفحه

/index.php?showtopic=193506

وتستطيع ترجمة ملفات ال (.resx file) الى اللغه تحتاجها عن طريق هذا البرنامج

http://www.codeproject.com/KB/locale/DotNet_Resx_Translator.aspx

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#4

جزاكم الله خيرا جميعا

و لكنى أريد أن أفعل هذا أثناء وقت تشغيل البرنامج

بمعنى أننى أريد أن أمكن المستخدم من إضافة لغات جديدة

بهذه الطريقة لابد و أن يتم وضع كافة اللغات قبل عمل ترجمة للبرنامج !

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#5

أعتقد أن الفكره صعبه شويه

أفضل طريقه لهذا أن تبحث عن برنامج به هذه الخاصيه وتحاول التطبيق مثله

مكن تستعين بالأدوات فى هذه الصفحه وتضيفها للبرنامج ان أمكن

http://guysmithferrier.com/post/2009/09/Automatically-Translating-resx-Files-Using-Microsoft-Translator.aspx

اتبع الخطوات فى الصفحه لترجمة ال source code الذى ستحمله

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#6

أخي حاول استخدام ملفات XML لحفض اللعات ، حيث ضع لكل لغة ملف XMl خاصا بها ، بعدها يمكن تحرير اللغة يدويا كما نفعل مع منتديات vBulletin

لا خيــــــــــر في كاتــــــــــم العلــــــــــم

سأل الممكن المستحيل ، قال أين تسكن ، فال أسكن في عقول العاجزين

#7

بسم الله الرحمن الرحيم

أولاً : ما يُهمنا من اللُغة هو المُفردات المطلوبة - اتجاه الكتابة .

ثانياً : نقوم بعمل ملف نصي يحوي على الكلمات المطلوبة و اتجاه النص.

ثالثاً : نقوم بوضوع ComboBox حيث يتم البحث في المُجلد عن الملفات النصية ( يُمكن مع المُستقبل جعله يتأكد حتى من صحة الملفات ) ثُم يُظهر خيارات اللُغة .

رابعاً : عند إختيار اللُغة تقوم بتغير النُصوص و إتجاه النص وفق المُستند النصي.

مُلاحظة : يجب أن تكون هُنالك لُغة إفتراضية يتعامل معها البرنامج بالإضافة إلى وجود ملف يُحدد اللُغة الحالية للبرنامج .

مُلاحظة2: يجب أن يكون البرنامج يتعامل مع الملف النصي مُباشرة أو يقوم بتحميل معلومات الملف النصي مُباشرة على بُنية غرضية مُعينة ( إياً كانت البُنية) .

لم أُجرب هذه الطريقة لكن واثق من عملها إن شاء الله .

أتمنى أن أكون قد أفدت

أخوكُم في الله : سامر

إن كلماتنا ستبقى ميتة أعراساً من الشموع لا حراك فيها جامدة ، حتى إذا متنا من أجلها انتفضت حية وعاشت بين الأحياء ، كل كلمة عاشت كانت قد اقتاتت قلب إنسان حي ، فعاشت بين الأحياء ، والأحياء لا يتبنون الأموات

الليل ولى وجاء دورك يا صباح سفينة الإيمان سارت لا تبالي بالرياح

ولا تنسوني من دعائكم

#8

بمعنى آخر تريد ان يقوم المستخدم بترجمة البرنامج بأدراج لغة جديدة ويقوم هو بترجمة الشاشة للغة التي يريدها او يعدل على الكلمات؟

اممممممم

ببالي حاليا فكرة ،،

عليك ان تنشيء جدول للغات،،

وجدول آخر للكلمات المترجمة ،،

عليك ان تعبئ هذا الجدول بأسماء الـ Labels الموجودة بالبرنامج

وعليك ان تعبئ ترجمة هذه الـ labels يعني اللغة الافتراضية

وعليك ان تقوم بأضافة شاشة جديدة يكون للترجمة

فيقوم المستخدم بترجمة باضافة لغة جديدة وترجمتها عن طريق الشاشة الجديدة،،

أتمنى ان تكون فكرتي صحيحة ووصلت اليك،،

تحتاج جهد كبير ،، ولكن ستكون فكرة قوية واضافة قوية لبرنامجك طبعاً ،،

حسب ما فهمت طبعاً

تحياتي لكـ

_- محمد نور -_ كتب:

جزاكم الله خيرا جميعا

و لكنى أريد أن أفعل هذا أثناء وقت تشغيل البرنامج

بمعنى أننى أريد أن أمكن المستخدم من إضافة لغات جديدة

بهذه الطريقة لابد و أن يتم وضع كافة اللغات قبل عمل ترجمة للبرنامج !

52gv0m.gif
#9
ofnet كتب:

أخي حاول استخدام ملفات XML لحفض اللعات ، حيث ضع لكل لغة ملف XMl خاصا بها ، بعدها يمكن تحرير اللغة يدويا كما نفعل مع منتديات vBulletin

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

تحتاج إلى فورم أب يورث لجميع فورمات التطبيق وفي دالة بناء الفورم أضف كود تحميل قيم النصوص من ملف XML للغة الحالية

وأثناء تصميم النوافذ أكتب مفاتيح النصوص ولا تكتب النصوص بأي لغة

مثلاً مربع نص يطلب إدخال أسم المستخدم , أثناء التصميم أكتب قيمة Text على الليبل username

وفي ملف XML للغة العربية مثلاً تكون العقدة بهذا الشكل :

<StringNode Key="username" Value="إسم المستخدم" />

وفي ملف اللغة الإنجليزية :

<StringNode Key="username" Value="User Name" />

وهكذا لجميع اللغات ,

ويكون كود تحميل النصوص بعد دالة InitializeComponent();

            foreach (Control ctl in this.Controls)
                ctl.Text = FetchString(ctl.Text);

حيث FetchString هي دالة عامة -تكتبها أنت- تأخذ المفتاح و ترجع النص المقابل من ملف XML للغة الحالية

..

#10

يمكنك إستخدام Localization

لمعلومات أكثر يمكنكم زيارة مدونتى التقنيه

http://samehmarzok.wordpress.com

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…