بسم الله الرحمن الرحيم
لدينا موقع محتوياته باللغة العربية ونريد أن نصنع منه نسخة باللغة الإنجليزية .. وربما نسخا بالفرنسية ولغات أخرى ..
الصعوبات
1- اتجاه الصفحة ككل سيكون مختلفا عند التحويل من أو إلى اللغة العربية .. 2- يجب تغيير كل المحتويات النصية وإتاحتها لتظهر باللغات الأخرى عن طلبها .. 3- استايلات الصفحات من أنواع الخطوط وأحجامها لا يصلح كما هو لكل اللغات ويحتاج إلى تعديل يناسب كل لغة .. 4- إذا كانت هناك أوامر طباعة محتويات باستخدام لغة برمجة (مثلا echo في لغة PHP) فيجب تغيير المحتويات المطبوعة أيضا .. 5- يجب أن يتذكر الموقع اللغة التي اختارها الزائر لتكون هي اللغة الأساسية له في كل الصفحات ..
المعلومات المستخدمة
1- معلومات عادية عن HTML ويهمنا جدا منها:
لدينا موقع محتوياته باللغة العربية ونريد أن نصنع منه نسخة باللغة الإنجليزية .. وربما نسخا بالفرنسية ولغات أخرى ..
الصعوبات
1- اتجاه الصفحة ككل سيكون مختلفا عند التحويل من أو إلى اللغة العربية .. 2- يجب تغيير كل المحتويات النصية وإتاحتها لتظهر باللغات الأخرى عن طلبها .. 3- استايلات الصفحات من أنواع الخطوط وأحجامها لا يصلح كما هو لكل اللغات ويحتاج إلى تعديل يناسب كل لغة .. 4- إذا كانت هناك أوامر طباعة محتويات باستخدام لغة برمجة (مثلا echo في لغة PHP) فيجب تغيير المحتويات المطبوعة أيضا .. 5- يجب أن يتذكر الموقع اللغة التي اختارها الزائر لتكون هي اللغة الأساسية له في كل الصفحات ..
المعلومات المستخدمة
1- معلومات عادية عن HTML ويهمنا جدا منها:
|
$a = "Hello"; |
p, td {font-family: Tahoma; font-size: 12px; color: #000000} |
تعتمد الطريقة على تخزين كل المحتويات النصية الموجودة بالموقع (الكتابات) من محتويات عادية معروضة للزوار أو مختفية مثل الستايل ووسم الهتمل الخاصة باتجاه الصفحة - تخزين كل هذه المتغيرات في متغير من نوع المصفوفة المزدوجة متعددة العناصر (يمكن الكلام صعب بس الطريقة سهلة إن شاء الله) .. وهكذا فبمجرد طلب الزائر للصفحة بلغة ما نستدعي المتغير الذي حدد على أنه خاص للغة التي طلبها الزائر ..
أما من ناحية تذكر الموقع للغة التي اختارها الزائر فسنستخدم الكوكيز ..
ملاحظات
1- الطريقة هنا سوف تكون على مراحل .. فإذا كنت تنوي أن تستفيد من هذه الطريقة فافتح برنامج التصميم الذي تستخدمه وابدأ في تنفيذ الأمثلة واحدا واحدا .. لأن المقصود هو الشرح وليس وضع الطريقة مرة واحدة .. 2- لا تأخذ الأمثلة نسخ ولصق .. اكتبها من جديد لأنه ممكن تكون هنا أخطاء إملائية ..
المثال
لنفترض أن لدينا صفحة هكذا:
Welcome to my website. I am glad you are here . Click here to visit the other page. |
هذا الكود سنجعله يوضع في أعلى الصفحة قبل أي محتويات أخرى بما فيها الهتمل:1- تحويل كل محتويات الصفحة إلى مصفوفة
// سنقوم بوضع محتويات الصفحة المطلوبة كما هي في مصفوفة |
هنا سوف نضع قبل الكود السابق سطرا يخبر الصفحة بأن اللغة المطلوبة هي الإنجليزية (ليس لدينا غيرها للمحتويات حاليا):
$lang = "en"; |
ونبدأ في تغيير الصفحة .. بدلا من كل محتوى سوف نضع المتغير الخاص بهذا المحتوى .. إذن مكان العنوان الخاص بالصفحة سنستخدم:
$a[1][$lang] |
echo $a[0][$lang]; ?>"> echo $a[3][$lang]; ?>echo $a[5][$lang]; ?> |
عايزين نضيف اللغة العربية .. طيب نرمز لها باي حروف؟ ar? أوكي .. فاكر الكود الأول اللي عملناه ووضعنا فيه كل المحتويات؟ خذ منه نسخة (copy) والصقها بعد نهاية المصفوفة الخاصة باللغة الإنجليزية .. وغير كل حروف en فيها إلى ar .. يعني يكون عندنا نسختين من المصفوفة الآن واحدة en وواحدة ar .. 3- إضافة اللغات الأخرى
غير محتويات المصفوفة الجديدة إلى الكلمات العربية المقابلة لها .. يعني ح يكون عندنا بعد كود أول خطوة:
$a[0]['ar'] = "rtl"; |
الآن جرب شيئا صغيرا .. فاكر في الخطوة رقم 2 لما وضعنا متغير اسمه lang وقلنا قيمته en? غيره إلى قيمة تانية وهي ar .. الآن الصفحة تعرض بالعربية ومن اليمين للشمال وبخط تاهوما وكله تمام
الآن يمكننا عرض الصفحة بلغة من اللغتين .. لكن يجب أن نحددها من الأول طبعا .. وده مش صح .. المفروض الزائر يختار .. يبقى أولا نضع وصلات لتغيير اللغة ولتكن في كود الصفحة نفسها .. في أي مكان بالصفحة بعد رسالة الترحيب مثلا ضع:4- معرفة اللغة التي يريدها الزائر
<a href="?lang=ar">1a> |
بس برضو احنا محددين من الاول في الكود اللي اعلى الصفحة ان lang يساوي قيمة محددة .. الحل هو أننا نشيل السطر اللي فيه
$lang = "ar"; // أو en |
if(isset($_GET['lang'])) $lang = $_GET['lang']; |
فاضل حاجة؟ ايوه .. ان الموقع كله يفتكر اختيار الزائر! بس لأنها مش مضمونة فأنا بافضل اني ارسل قيمة lang من كل صفحة للصفحة التانية مباشرة من غير تسجيل كوكيز .. لأنه بعض الناس الكوكيز عندهم مش شغالة كويس .. انما اذا احتجتها ف ح نغير الكود اللي لسه عاملينه في الخطوة السابقة ليكون:
if(isset($_GET['lang'])) {
$lang = $_GET['lang'];
setcookie("lang", $lang);
}
elseif(isset($_COOKIE['lang'])) $lang = $_COOKIE['lang'];
else $lang = "ar";
?>
5- تذكر اختيار الزائرالمصدر