من الامور التي لابد ان يتعامل معها اي مطور ويب في مشواره العملي هي برمجة موقع متعدد اللغات !!

حسنا موضوع برمجة موقع متعدد اللغات يعتمد على جزئيتين اساسية وهي :

1- اتجاه اللغة من اليمين الى اليسار او العكس.

2- ترجمة الكلمات والجمل.

بالنسبة للجزئية الاولى وهي أتجاه اللغة، فهذه الجزئية مرتبطة بطريقة هيكلة الموقع وتعتمد على لغتي HTML - CSS بشكل اساسي، فإذا كانت اللغة الافتراضية للموقع اتجاهها من اليسار الى اليمين فيتم إنشاء ملف css جديد بنفس محتويات ملف css الافتراضي ويحذف منه الخصائص المشتركة في الاتجاهين مع تغيير قيم بعض الخصائص من اليمين الى اليسار او العكس ومن أشهر الخصائص التي يتم تغيير قيمها في الغالب هي :

float - text-align - margin - text-decoration

اذا كانت right تحول الى left او العكس وكما ذكرت سابقا خصائص css المشتركة تكون على الملف الافتراضي فقط.

ثم في حالة قام الزائر بإختيار لغة معينه يتم تنفيذ خوارزمية مهمتها التحقق من اتجاه اللغة التي اختارها الزائر، اذا كان اتجاهها يختلف عن اتجاه اللغة الافتراضيه فيتم استدعاء ملف css الذي تم إنشاءه في كود الـ HTML واذا كانت اللغة بنفس اتجاه اللغة الافتراضية فلايتم أستدعاء الملف.

اذا كنت تعمل في شركة كبيرة فهذه الجزئية لن تكون من اختصاصك كمطور ويب وسيهتم فيه الـ Web Designer.

اما بالنسبة للجزئية الثانية المتعلقة بترجمة الكلمات والجمل فيتم استخدام معها عدة طرق مثل المصفوفات، لكن الطريقة الافضل هي بإستخدام معيار عالمي مشهور ومتعارف عليه مثل نظام Gettext، فهذا النظام مجاني ومفتوح المصدر تحت رخصة GNU، نظام ذو شهره وشعبية واسعه ويمكن استخدامه للمبرمجين ولغير المبرمجين مثل اصحاب الترجمة وغيرهم، فهو يساعد المبرمجين على جعل برامجهم تدعم عدة لغات بمعايير قياسية مما يساعد على انتشار استخدام برامجهم بشكل اكبر، ويستخدم هذا النظام في كثير من البرامج مفتوحة المصدر مثل Wordpress، وتعتمد فكرته على انشاء ملف مستقل لكل لغة دون الاحتكاك في اكواد البرنامج، يكون مثل القاموس خاص بمشروعك ويتم استخدام ادوات مثل poedit و gted لترجمة الكلمات والجمل مما يتيح لك الاستعانة بشخص أخر ( ربما لايفهم في البرمجة شيئ ) لترجمة الجمل والكلمات بدون المساس بكود البرنامج.

يمكنك الاطلاع أكثر على هذا النظام من الصفحة الرسمية له في هذا الرابط :

https://www.gnu.org/softwar...

وبالنسبة لمبرمجي PHP يمكنك الاطلاع على تفاصيل اكثر حول كيفية استخدام هذا النظام من الرابط التالي :

http://php.net/manual/en/bo...

تحياتي..