طريقة عمل موقع بأكثر من لغة عربي انجليزي وأي لغة أخري
السلام عليكم ورحمة الله وبركاته,
في البداية, لاحظت أن الكثير من المبرمجين الجدد يسألون عن كيفية عمل موقع يدعم العديد من اللغات على الرغم من بساطة الطريقة وسهولتها.
إلا أنه في الواقع توجد العديد من العقبات تواجههم وهي عقبات تستحق إفراد موضوع خاص بها, وذلك لأن اللغة العربية اتجاه الكتابة بها من اليمين إلى اليسار وباقي اللغات من اليسار إلى اليمين.
يعني لو كان الأمر طريقة عمل موقع يدعم اللغة الانجليزية والفرنسية والألمانية ووو , لما كانت مشكلة.
على العموم هذا الموضوع سيثير عدة تساؤلات:-
1- ماهي الطريقة لكي أجعل موقعي يدعم العديد من اللغات وبالأخص العربية ؟
2- كيف يمكن جعل الصفحات حينما تكون باللغة العربية تظهر من اليمين لليسار, وتعديلها مرة أخرى عند الرجوع إلى اللغة الانجليزية؟
3- كيف يمكن الحفاظ على التنسيق الخاص بالصفحات إذا كانت الصفحة مرة ستكون dir="rtl" ومرة dir="ltr" ؟
4- أين يمكن معالجة التنقل بين اللغات, هل داخل الماستر بيج أم داخل جميع الفورم ؟
5- كيف يمكن تغيير اللغة من أي صفحة وليس شرطا الرجوع للصفحة الرئيسية أو صفحة معينة لتغييرها ؟
6- كيف يمكن ضبط باقي الـ Component المستوردة من الخارج مثل Ajax ToolKit مع اللغة العربية مرة ومع باقي اللغات مرة أخرى ؟
7- كيف يمكن تغير لغة الرسائل التي تظهر للمستخدم مثل الرسائل التنبيهية, وما هي أفضل طريقة لعمل الترجمة ؟
تعالوا سويا لنر الموضوع خطوة بخطوة:-
1- صمم موقع جديد بالدوت نت (2014 أو 2014- VB أو C#) وصمم صفحة MasterPage وصفحة Default وصفحة أخري للتجريب WebForm1, سأرفق المشروع في النهاية لا تقلق.
2- ضع في كل صفحة داخل التاج الخاص بالـ @Page السطر التالي Culture="en-US" UICulture="en-US" ليكون على الشكل التالي:
رمز Code:
<%@ Page Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="AboutUs.aspx.cs" Inherits="MultiLanguageTest.AboutUs" Title="Untitled Page" Culture="en-US" UICulture="en-US" %>
ولا تضع هذا التاج في الماستر بيج وإلا سيسبب خطأ.
3- بعد الانتهاء من تصميم صفحاتك, اذهب على كل صفحة ثم اجعل الصفحة في وضع Design ثم اذهب إلى قائمة Tools واختر Generate Local Resources كما في الصورة
4- ستجد ظهور مجلد جديد داخل مشروعك اسمه App_LocalResources وستجد بداخله ملف الريسورس, قم بنسخه والصقه مرة أخري داخل نفس المجلد وعدل الاسم ليكون بالشكل التالي:-
5- افتح الملف الذي عدلته باللغة العربية واكتب النصوص داخله بالعربي كما في الشكل التالي:
6- اذهب إلى صفحة الماستر بيج وعدل السطر الخاص بالـ Body ليكون على الشكل التالي:
رمز Code:
<body id="MasterBody" runat="server" dir="ltr" style="padding: 0px; margin: 0px;">
هذا السطر مهم للغاية لكي نستطيع قلب الصفحة لتكون مرة من اليمين لليسار مع العربي ومرة العكس مع الإنجليزي
7- ضع زر لتغيير اللغة إلى العربي, وزر لتغيير اللغة إلى الإنجليزي
رمز Code:
Master.png
8- إذهب إلى الحدث الخاص ببدء الـ Session وضع الأتي
رمز Code:
protected void Session_Start(object sender, EventArgs e) { Session["SelectedLanguage"] = "English"; }
هذه السيشن مهمة لكي نستطيع قلب الصفحة ديناميكيا
9- اذهب إلى الماستر بيج وضع هذه الأوامر داخل حدث
رمز Code:
PageLoad protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Session["SelectedLanguage"].ToString() == "Arabic"

{ MasterBody.Attributes["dir"] = "rtl"; } else { MasterBody.Attributes["dir"] = "ltr"; } } }
10- اذهب لجميع الشاشات ما عد الماستر بيج, وضع الأوامر التالية:-
رمز Code:
using System.Threading; using System.Globalization; protected override void InitializeCulture() { if (Session["SelectedLanguage"].ToString() == "English"

{ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"

; Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"

; } else if (HttpContext.Current.Session["SelectedLanguage"].ToString() == "Arabic"

{ Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SA"

; Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-SA"

; } }
11- كل ما سبق كان التحضير لهذه الخطوة, والأن حان دور تغيير اللغة فعلياً, اذهب إلى الازرار التي صنعتها لكي تغير اللغة وضع هذه الأكواد عند الضغط عليها
رمز Code:
protected void btnEnglish_Click(object sender, EventArgs e) { Session["SelectedLanguage"] = "English"; Server.Transfer(Request.Url.PathAndQuery); } protected void btnArabic_Click(object sender, EventArgs e) { Session["SelectedLanguage"] = "Arabic"; Server.Transfer(Request.Url.PathAndQuery); }
12- والآن تستطيع تجريب هذا البرنامج, البرنامج مرفق
أسأل الله العظيم أن يتقبل منا ومنكم وأن يجعل هذا العمل خالصاً لوجهه الكريم
جزاكم الله خيراً