السلام عليكــم ورحمـة الله وبركاتــه ،،
أيها الأخوه الأعزاء
سأحاول أن أطرح مثال مبسط عن file Resource
وأحدى أستخداماته وهي تحويل اللغه من الأنجليزي ألى العربي
localization
وقد قمت بعمل مثال بسيط في محاوله لتجريبه لأول مره
وعذرا أني لم أقم بتغيره أوحتى بتتطويره ليرقى ليكون درس
وقد قررت أن أعرضه كما هو
أظنه سيكون مفيدا كأبداية
بداية شرح المثال
المثال عباره عن تحويل اليبل من محتوي أنجليزي ألى عربي
وقد رقمة اليبل
one ---> واحد
وهكذا حتى تسعة
بعد فتح مشروع جديد
نضيف 9 Label
في form
وبعد ذلك
نُضيف مادة جديده
من نوع Resource
ونسميه
R1.resx
وهو سيكون مخزن القيم الأفتراضيه ( يعني عند تشغيل الصفحة يتم تحميل القيم الموجوده داخل الملف)
نفتح الملف
ونقوم بتعبيئة عمودين هما name و value
Button1 Arabic
Button2 English
Label1 One
Label2 Two
Label3 three
Label4 four
Label5 five
Label6 six
Label7 seven
Label8 eight
Label9 nine
******
name هو أسم label
أما
value
هو القيمة المعطاه لي label أي text
ومن ثم ننشأ ملفين أخرين
نسميهن
R1.en.resx للغة الإنجليزيه
و R1.ar.resx للغة العربية (هنا نحول ال value ألى أحرف عربية )
عذرا لم أستتطع أرفاق الصور
***************************
المرحله الثانيه
في السورس كود
نعطي label قيم من Resource file
هكذا
Text="<%$ Resources:R1, Label %>"
وسيكون الكود هكذا
<table style="width:100%;">
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="<%$ Resources:R1, Label1 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text="<%$ Resources:R1, Label2 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label3" runat="server" Text="<%$ Resources:R1, Label3 %>"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label4" runat="server" Text="<%$ Resources:R1, Label4 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label5" runat="server" Text="<%$ Resources:R1, Label5 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label6" runat="server" Text="<%$ Resources:R1, Label6 %>"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label7" runat="server" Text="<%$ Resources:R1, Label7 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label8" runat="server" Text="<%$ Resources:R1, Label8 %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label9" runat="server" Text="<%$ Resources:R1, Label9 %>"></asp:Label>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Button ID="Button1" runat="server" Width="141px"
Text="<%$ Resources:R1,Button1 %>" onclick="Button1_Click"/>
</td>
<td>
<asp:Button ID="Button2" runat="server" Width="141px"
Text="<%$ Resources:R1,Button2 %>" onclick="Button2_Click"/>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>الأن ننتقل ألى behind code
نضيف function InitializeCulture
protected override void InitializeCulture()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
base.InitializeCulture();
}لكن ماذا أذا أردنا عمل زر للغة العربية وأخر للغة الإنجليزية
نضيف session ونعطيه القيمة الأفتراضيه en-US أي لغة الأنجليزية الأمريكية
وعند ضغطنا على زر اللغة العربية نعطي session قيمة ar-OM أي لغة عربية
وسيكون الكود هكذا
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System.Threading;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void InitializeCulture()
{
if (Session["ln"]==null)
{
Session["ln"] = "en-US";
}
string cult = Session["ln"].ToString();
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cult);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
base.InitializeCulture();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["ln"] = "ar-OM";
Server.Transfer(Request.Path);
}
protected void Button2_Click(object sender, EventArgs e)
{
Session["ln"] = "en-US";
Server.Transfer(Request.Path);
}
}
وهذا المثال كاملا
وهذه بعض الوصلات ذات العلاقة
و
وأخيرا أرجوا أن أكون قد وفقت
وأن أخطأت فمن نفسي وأن أصبت فهذا توفيق من الله
والسلام عليكم