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

استخدام اللغتين العربية والانجليزية في الصفحة

مغلق
بدأه omar_sabha في 24 يناير 2007 · 6 رد · 1,141 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو تزويدنا بشرح كافي وشامل لكيفيه استخدام اللغتين العربيه والانجليزية في نفس الصفحة ، اي باستخدام كبسة معينه تتحول الصفحة من اللغة الانجليزية الى اللغة العربية وبالعكس ايضا .

وسؤال اخر ارجو اعطاءنا شرح عن كيفية استخدام الاستعلام في ال ASP.net 2005

ولكم جزيل الشكر

#2

هل من مساعده يا اخوان

#3

أخي الفاضل

أولا لا بد ان تراعي طبيعة اللغات من حيث الأتجاه وطبعا لا بد من استخدام أوامر html - rtl and ltr

مع ضرورة أن تكون كل الكلمات في الصفحة تؤخد من قاموس من خلال قاعدة بيانات أو أي طريقة أخرى بحيث تظهر الكلمات حسب الصفحة النشطة فإذا كانت الصفحة عربي ، تظهر الكلمات العربي والعكس ، وهناك أمثلة كثيرة في هذا المنتدى ، عموم الموضوع بسيط ولكن يحتاج إلى بعض الدقة والتركيز

#4

دعم أكثر من لغة في ASP.NET 2005 سهل وقوي جداً ... اتبع الخطوات التالية:

1 - بفرض لدينا صفحة اسمها user.aspx.

2 - أنشئ مجلد اسمه App_LocalResources.

3 - انقر بالزير الأيمن على المجلد App_LocalResources وأضف صفحة Resource سمها user.aspx.resx.

4 - انقر بالزير الأيمن على المجلد App_LocalResources وأضف صفحة Resource سمها user.aspx.en.resx.

5 - أضف الكود التالي إلى الصفحة user.aspx:

<asp:Label ID="lblTest" meta:resourcekey="lblTest" runat="server" />

6 - في الصفحتين 4 - 5 أضف ما يلي:

Name: lblTest.Text 
Value: تجربة العربي

للغة الانكليزية:

Name: lblTest.Text 
Value: English Test

الآن تم إكمال الخطوات الأولى, والآن طريقة تحويل لغة الموقع.

1 - أضف مايلي إلى الصفحة user.aspx:

<asp:DropDownList Width="70" AutoPostBack="true" ID="ddlLangs" runat="server">
<asp:ListItem Value="ar-sy" Text="عربي" />
<asp:ListItem Value="en-us" Text="English" />
</asp:DropDownList>

في الكود اكتب ما يلي:

Protected Sub ddlLangs_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlLangs.SelectedIndexChanged

		Session("Lang") = ddlLangs.SelectedValue
		Response.Redirect(Request.Url.AbsoluteUri, True)

End Sub

Protected Overrides Sub InitializeCulture()

		ChangeCulture()
		MyBase.InitializeCulture()

	End Sub

	Private Sub ChangeCulture()

		if Session("Lang") is Nothing Then
			 Session("Lang") = "ar-sy"
		End If
		Dim ci As New CultureInfo(Session("Lang").ToString())

		System.Threading.Thread.CurrentThread.CurrentCulture = ci
		System.Threading.Thread.CurrentThread.CurrentUICulture = ci

End Sub

هذه الطريقة الأبسط والأسهل في ASP.NET 2005, طبعاً هذا مثال بسيط جداً, في حال وجود أي سؤال إن شاء الله نحن جاهزون

#5

السلام عليكم جميعاً

إسماعيل عنجريني احيك على هذه الطريقة الرائعة

لدي بعض الاسئلة اتمنى ان تساعدني في إجاد الحل الامثل لها :

1 - بالنسبة للمثال لاحظت اثناء تجربتي لهذه الطريقة انه لكل صفحة ASPX نحتاج إلى ملفين resx الاول للغة العربية والثاني للغة الإنجليزية

بمعنى لو كان عندي 50 صفحة في الموقع فأحتاج إلى 100 ملف resx للغة وهذي شاقة نوعاً ما !

هل هناك طريقةاسهل بحيث يصبح ملف اللغة عبارة عن ملفين فقط الاول للعربي و الثاني للإنجليزي لكامل الموقع بحيث عند الانتهاء من تصميم احد الملفين نقوم بالترجمة للملف الاخر ... وعملياً سيكون اسهل للتحديث ؟؟

2 - بالنسبة للتصميم الصفحة و واتجهات الحقول ltr و rtl ... الخ هل يفضل ان تكون صفحة واحدة بوضع قيود حسب اللغة او صفحتين

3 - بالنسبة للمحتوى و العبارات والرسائل الصادرة من الموقع هل ستكون بنفس الطريقة ... اقصد بإستخدام resx

4 - لو كان النظام CMS نظام إدارة محتوى هل هذه الطريقة مناسبة وخصوصاً انه يمكن إضافة صفحات جديدة من خلال لوحة التحكم ؟؟

------------------------------------------

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

طبعاً هذا الحل سيكون بطيء إذا كانت قاعدة البيانات ضخمة وعليها ضغط بحيث عند فتح اي صفحة يتم الاتصال بقاعدة البيانات وجلب كمية من البيانات منها ولكن ...

اعتقد انو عملي واسهل في التحديث والتعديل والسيطرة على الموقع ... ما رأيك ؟؟

طريقة حماية الصفحة بالصورة العشاوائية Captcha

/index.php?showtopic=117870

#6

بالنسبة للسؤال الأول:

تستطيع إضافة المجلد App_GlobalResources وتضيف إليه ملفين:

1 - Resource.resx

2 - Resource.en.resx

وتستطيع استدعاء المتحولات من خلال التعليمة التالية:

Dim Title as String = GetGlobalResourceObject("Resource", "YourVariable")

وعلى فكرة في مكتبات MSDN يوجد شرح كافي عن الموضوع.

-------------------------------------------------------------------------

السؤال الثاني:

في 2005 يوجد شيء جديد اسمه Theme حيث تستطيع بناء theme خاص بكل لغة, يعني:

1 - أضف مجلد جديد اسمه App_Themes.

2 - في المجلد أضف مجلد آخر اسمه ar.

3 - في المجلد أضف مجلد آخر اسمه en.

في كل من المجلدين 2 و 3 تستطيع إضافة ملفين آخرين:

1-2: ar.css

2-2: ar.skin.

ونفس الأمر بالنسبة للغة الإنكليزية.

بالنسبة لمسألة rtl, ltr تستطيع أن تكتب في الملف ar.css:

html
{
	direction: rtl;
}

وبالإنكليزية:

html
{
	direction: ltr;
}

طبعاً هنا كل ماعليك القيام به هو إنشاء classes في ملف الـ CSS العربي والإنكليزي بنفس الأسماء طبعاً وتخصيص الخاصية CssClass للعناصر التي تستخدمها في مشروعك ... عند تغير اللغة من العربي إلى اللغة الإنكليزية يجب علينا إخبار الصفحات بأن تتعامل مع الـ Theme الإنكليزي أي مع en.css وهذه بسيطة وذلك بتنفيذ التعليمة التالية في الحدث PreInit للصفحة:

Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit

		If Not Session("ThemeName") Is Nothing Then
			Page.Theme = Session("ThemeName").ToString()
		End If

End Sub

طبعاً المتحول Session("ThemeName") يجب إسناد القيمة المناسبة له التي تعبر عن اسم الـ Theme عند عملية تغيير اللغة.

----------------------------------------------------------------------------------

السؤال الثالث:

الجواب نعم

---------------------------------------------------------------------------------------

السؤال الرابع:

هنا بدأنا نتحدث عن موضوع آخر تماماً فنظام الـ CMS نظام معقد ويحتاج إلى جهد وشرح طويل, واذعرني ليس لدي الوقت الكافي, لكن ماقلته أنت هو اقتراح جيد لمثل هذه الحالات, وإذا اطلعت على Dotnetnuke ستجد بعض الأفكار المفيدة, أما بالنسبة للغة فنعم باستخدام resx.

تم تعديل هذه المشاركة بواسطة إسماعيل عنجريني في 27 يناير 2007 في 10:11

#7

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

سأجرب ماذكرت وخصوصاً استخدام ال Thems

طبعاً الله يكون فعونك :D حرجعلك لو واجهتني اي مشكلة

طريقة حماية الصفحة بالصورة العشاوائية Captcha

/index.php?showtopic=117870

هذا الموضوع مغلق.

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

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

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

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

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