25

برمجة موقع متعدد اللغات

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

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

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...

تحياتي..

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

12

جميل. أضيف على ذلك:

من يعتمد على حفظ اللغة المختارة في الكعكات (cookies) أو الجلسات (session) فإنه سيواجه مشكلة أرشفة رابط واحد بعدة لغات

وهذا ما يربك محرك البحث ويؤثر على النتائج، لذا أنصح دائما (هي نصائح غوغل في الحقيقة D: ) أن يتم تخصيص لكل لغة رابط مخصص ويكون حسب هذه الطرق:

أن يكون رابط كل لغة في ملجد فرعي مثلا:

www.mysite.com/ar

www.mysite.com/en

أن يكون رابط كل لغة في دومين فرعي مثلا:

ar.mysite.com

en.mysite.com

أن يكون لكل لغة دومين خاص مثلا:

www.mysite.dz للعربية

www.mysite.us للإنغليزية

هذه تجربتي، أتمنى أن تكونو استفتدم

شكرا على المعلومات.

لقد حاولت ترجمة القوالب من قبل باستخدام ااجزئية الاولى. وقد قمت بترجمة ملفات اللغة فيما سبق على موقع خمسات لاكثر من زبون.

وبذلك اعتقد ينقصنى فهم اعمق وتدريب اكثر على البرمجة لتطوير مواقع متعددة اللغات.

احساس جميل ان تجد انك تستطيع الامساك بخيوط اللعبة واحدا تلو الاخر مع مرور الوقت....

اكرر شكرى :)

أنصحك بمتابعة مجتمع صفحي https://arabia.io/sfhati ففي المجله التي سيتم شرحها يوجد نظام الترجمه وتغيير اللغه ولك أن ترى كيفيه برمجتها والتعديل على الشيفرة الأساسيه فنحن سنقوم بشرح ما تم إنجازه ونطلب من المبرمجين وغيرهم من الهواه أن يمدونا بالأفكار الجديده لتطوير المجله التي أتحدث عنها , في هذا الرابط

https://arabia.io/go/16914

تم كتابته قبل ساعات يوجد شرح أكثر

اطر العمل الحديثة توفر لك امكانية عمل ملف لكل لغة,

مثلا errorMessages.en و errorMessages.ar .. الخ

من الامثلة عليها JSF و Grails لمطوري ال JavaEE ولا ادري ان كانوا يستخدمون Gettext داخلياً او لا.

بالنسبة للاتجاه استخدم start و end للإشارة للإتجاهات

من الأشياء المهمة أن تتمكن من استخراج العبارات المراد ترجمتها من القوالب وإضافتها إلى ملفات الترجمة وتحديثها مثلا ملفات pot وملفات po

وأن تتمكن أيضا من تحويلها إلى صورة صديقة بالويب مثل json أو ملف js

هذا المثال يستخدم قوالب handlebars

http://muayyad-alsadi.githu...

يجلب العبارات إلى ملفات pot و po

ويحولها إلى ملف js

بالنسبة لي أعتمد على لمتغيرات

ويكون هناك ملف لغة منفصل لكل لغة

ويحتوي كل ملف على الاتجاهات ونصوص اللغة

بذلك لا ابذل مجهود في اعادة كتابة الكود من جديد

موضوع جميل جداً أخي ولكن أتمنى لو أنك تجد الوقت الكافي أن تقوم بطرح موضوع يشرح كيفية استخدام هذا النظام ليسهل الأمر على المبتدئين وتكون أعطيتهم دواء مع طريقة استعماله =D

هذه واحدة من مشاريعي التي عملت عليها و وصلت للنسخة الرابعة منه بإسم: Omega Content Management System for Multiple Languages Websites...المشروع كاملاً على صفحتي الشخصية من هنا:

في واقع الأمر هو ليس معروض للبيع, هو فقط لزبائني الذين بحاجة لأنظمة إدارة محتوى متعددة لغات قابلة للتعديل عليها وليست جاهزة كوورد بريس أو غيرها, لذلك أخذ من وقتي ما أخذ!

الفكرة الرئيسية هنا بوجود لغة رئيسية للموقع, واللغات الأخرى تعتبر لغات ثانوية تخزن بقاعدة البيانات على أنها JSON, بالطبع هذا المشروع غير مخصص للمقالات الطويلة جداً بلغات متعددة, بل من صغيرة الى متوسطة للحفاظ على سرعة الآداء.

بعيدا عن التدقيق اللغوي للغة الجديدة المراد اضافتها ( مثلا موقع عربي للغة جديدة وهي انجليزي ) . هل يتطلب الأمر من المبرمج الكثير لكي يطالب بمبلغ كذا ؟ ام انها امر بسيط ؟

بالنسبه لتحويل استايل الموقع ان كنت تستخدم css لكامل الموقع يمكن بسهوله ان وُجد ملف خارجي يحتوي على كل الخصائص ان تحول كل هذه الخصائص بأداه واحده و تنتهي من تحويل كل شكل الموقع من (اليمين لليسار) او من(اليسار لليمين) و تسمى gulp-css-flip ولكن هذه الاضافة تحتاج لـ node مثبته على الجهاز .

-1

انا بالنسبة لي لا ادخل بشيئ من التعقيد في هذه الحال .. واخذ المزيد من الوقت للانجاز وووو ...

فانا اولا اصمم وابرمج العربي مثلا .. ثم انسخ فولدر العربي مجلد اخر وابدا احول واصمم وابرمج من اليسار ووو ... ثم النسخ النهائية تكون مجلدين عند الضغط مثلا على ايقونة اختيار لغة الموقع يذهب لمجلد اخر تماما ك www.ex.com/en

!! ... هذه طريقتي واعتقد انها الاسهل "في نظري " ...