SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

تحميل

عولمة الصفحات النموذجية

نيسان (أبريل) 2004 — به روز آوري : نيسان (أبريل) 2012

كل اصدارات هذا المقال:

عولمة الصفحات النموذجية التي نتحدث عنها في هذا المقال، متوافرة من SPIP 1.7 او احدث.


لماذا انشاء صفحات نموذجية متعددة اللغات؟

لدى نشر المستندات في الموقع، يقوم SPIP بتكييف بعض المعلومات «الآلية» حسب اللغة المطلوبة. وبالاخص، يتم عرض التواريخ بلغة الموقع او المقال او القسم حيث تظهر وكذلك تُعرض الاستمارات باللغة المناسبة (مثل الواجهة الخاصة بإرسال مشاركات الى المنتديات)... كل ذلك قد تمت ترجمته في SPIP.

الا ان ذلك غير كاف: فيعمد عادة مطورو المواقع الى تزويد صفحاتهم النموذجية بعدد من المعلومات التي توضّح اساساً مبادئ تصفح الموقع. فمن الضروري مثلاً، عرض عناصر من نوع: «خريطة الموقع» او «التعقيب على هذا المقال» او «المقالات الاخرى لهذا المؤلف» او «المقالات الاخرى في هذا القسم»... وفي موقع احادي اللغة، يسهل ادخال هذه العناصر: فيتم ادخالها كما هي في رمرز HTML في الصفحات النموذجية. ولكن المشكلة تظهر عندما يكون الموقع متعدد اللغات: ففي اسفل مقال بالعربية نريد عرض عبارة «التعقيب على هذا المقال» ولكن في اسفل مقال في الانكليزية يجب عرض عبارة اخرى («comment on this article»).

يقدم [SPIP 1.7.2] ثلاث طرق للتحكم بهذه العناصر النصية المختلفة باختلاف اللغات:

— (١) تفرض الطريقة الاولى تخزين العناصر النصية في ملفات لغة (ملف مختلف لكل لغة مستخدمة في الموقع) مستقلة عن الصفحات النموذجية. هكذا تقوم صفحة نموذجية واحدة (مثلاً، article.html) بنداء هذه العناصر النصية بواسطة رموز يحددها المصمم، حسب اللغة المستخدمة. بهذه الطريقة، تقوم الصفحة النموذجية article.html نفسها آلياً بعرض عبارة «التعقيب على هذا المقال» او «comment on this article» حسب لغة المقال. ونشجع باستخدام هذه الطريقة لأنها توفر الكثير من المرونة وتسهّل عملية تحديث الصفحات النموذجية (لأننا نعمل هنا مع صفحة نموذجية واحدة تدير عدة لغات) وتفتح المجال في المستقبل لإضافة ادوات جديدة للنظام تسهّل عمل الترجمة الجماعي لواجهة الموقع (يمكن لعدة مدراء يتكلم كل منهم لغة مختلفة ترجمة واجهة الموقع نفسه في المجال الخاص دون الحاجة الى ادخال تعديلات على ملفات الصفحات النموذجية).

— (٢) اما الطريقة الثانية، فهي ابسط تقنياً وتعتمد على انشاء صفحات نموذجية مختلفة حسب اللغة. وتفرض هذه الطريقة انشاء ملف article.html لإدارة المقالات العربية وملف article.en.html لإدارة المقالات الانكليزية (ملاحظة: هنا في الحقيقة، يدير article.html كل المقالات عدى تلك الانكليزية). وتناسب هذه الطريقة التطوير السريع والبسيط لمواقع تحتوي لغات قليلة وتتميز ببنية قليلة التعقيد، الا انها لا تناسب المواقع التي تستخدم العديد من اللغات و\او التي تستخدم صفحات نموذجية مختلفة للاقسام. غير انه يفضل استبدال هذه الطريقة بالطريقة الثالثة التالية:

— (٣) طريقة «كتل تعدد اللغات» التي ادخلها [SPIP 1.7.2] والتي تعمل بفعاليها في الصفحات النموذجية كما في المحتوى. فيكفي ادخال البنية التالية في الصفحة النموذجية:

وسيتم عرض هذه العبارة باللغة المطلوبة [1]. ومع ان هذه الطريقة مرنة للغاية الا انها تصبح غير فعالية اذا كثرت لغات الموقع واذا اردنا ان يشارك العديد من المترجمين في الموقع (والحال، فيجب ان يتمكنوا من تعديل الصفحات النموذجية مما توفره طريقة ملفات اللغة).

١. طريقة ملفات اللغات

يفرض مبدأ ملفات اللغات على صفحة نموذجية وحيدة ان تحتوي رمزاً يناسب، في كل لغة، عنصراً نصياً (اي سلسلة نصية). ولا يتغير الرمز بتغير اللغات الا ان النص نفسه الذي يمثله يتغير او بالاحرى يترجم بلغة الصفحة.

على سبيل المثال، قد نقرر ان الرمز downloading يناسب:
— سلسلة «تحميل هذا الملف» بالعربية
— سلسلة «download this file» بالانكليزية
— سلسلة «télécharger ce fichier» بالفرنسية
— سلسلة «descargar este archivo» بالاسبانية
— الخ.

وفي صفحة المقالات النموذجية (ملف واحد يدير كل اللغات) article.html، يكفي ادخال الرمز (انتبه الى كتابته):

ولدى عرض المقال، يتم استبدال هذا الرمز بالترجمة المناسبة للغة المقال. على سبيل المثال، في الصفحة النموذجية article.html، نقوم بإدخال الرمز التالي في حلقة تعرض المستندات المرفقة بالمقال:

واذا كان المقال بالعربية، نحصل على التالي:

<a href="/IMG/jpg/mydocument.jpg">تحميل هذا الملف</a>

اما اذا كان المقال بالانكليزية، فنحصل على:

<a href=”/IMG/jpg/mydocument.jpg”>download this file</a>

وهكذا دواليك. فتعرض صفحة نموذجية وحيدة تحتوي على رمز وحيد نصاً مترجماً بكل اللغات التي يستخدمها الموقع.

- استخدام نصوص مترجمة

من اجل تسهيل عمل مطوري المواقع، يقدم SPIP مجموعة من السلاسل النصية المترجمة مسبقاً (من قبل مترجمي SPIP). وباستخدام هذه السلاسل التي تناسب عناصر نصية كثيرة الاستخدام في المواقع، يتمكن المطور من انشاء واجهة تعمل بلغات مختلفة (حتى اللغات التي لا يتكلمها هو) بسرعة وسهولة.

ويمكنك عرض السلاسل المتاحة في المجال الخاص: فاذهب الى صفحة «إدارة اللغات» في القسم «إعداد الموقع» ثم انقر على اللسان «ملفات اللغة». ولا يبقى الا ان تغرف من هنا الرموز التي تناسبك لإنشاء صفحاتك النموذجية.

ملفات اللغة في المجال الخاص

مثال: ينوي احد المطورين، انشاء موقع بالعربية والفرنسية والاسبانية الا انه لا يتكلم الفرنسية او الاسبانية. فبإدخال الرموز الموزعة مع SPIP في صفحاته النموذجية لا يهتم بالحصول على ترجمات فرنسية او اسبانية لأن عمل الترجمة قد تم تنفيذه مسبقاً من قبل مترجمي SPIP. وهكذا، لدى تطويره واجهة الموقع بالعربية باستخدام الرموز التي يوفرها SPIP، يعرف ان صفحاته ستُعرض مباشرة بالفرنسية والاسبانية.

واذا قرر مسؤول الموقع في ما بعد اضافة مقالات بالبولندية، ستُعرض مباشرة مع العناصر النصية المترجمة الى البولندية دون اي تدخل من المطور.

ونذكر من الفوائد الاخرى لهذه الطريقة انها تسهّل انشاء صفحات نموذجية «للتوزيع» تكون جاهزة لتعدد اللغات. فالصفحات الناتجة عن هذه الطريقة تكون جاهزة للاستخدام مباشرة بكل اللغات التي تمت ترجمة SPIP اليها.

من الناحية التقنية، تم تخزين العناصر النصية التي تأتي مع SPIP في ملفات اللغة «public» في الدليل:
— /ecrire/lang/public_ar.php يحتوي على السلاسل العربية
— /ecrire/lang/public_en.php يحتوي على السلاسل الانكليزية
— الخ.


- انشاء رموز شخصية

من الممكن ايضاً انشاء رموز شخصية تناسب سلاسل نصية يحتاج المطور لإضافتها بنفسه.

يجب هنا انشاء ملفات لغة شخصية على نمط الملفات public.... لإنشاء ملفات شخصية، يجب تخزينها في دليل squelettes/lang يتم إنشاؤه اذا اقتضى الأمر:

لمحة تاريخية: في الاصدارات التي سبقت [SPIP 1.8]، كان يتم حفظ ملفات اللغات الشخصية في الدليل /ecrire/lang.

— local_ar.php للسلاسل العربية
— local_en.php للسلاسل الاكليزية
— ...

على سبيل المثال يمكن انشاء السلسلتين التاليتين:
— downloading لعرض عبارة «تحميل آخر اصدار»
— whatsnew لعرض عبارة «احدث التغييرات».

وباتباع هذه الطريقة، نقوم بإدخال الرمزين <:downloading:> و<:whatsnew:> في الصفحات النموذجية لتظهر العبارتان المناسبتان باللغات المناسبة كما هي محددة في ملفات local_...php. لاستخدام متطور يمكن ادخال متغيرات في هذه الرموز <:whatsnew:{fichier=news.txt}:> (انظر التفاصيل في موقع برمجة SPIP).

تجدر الاشارة الى ان الرموز كيفية: فأنت هو الذي يختارها. ننصح بالطبع باختيار رموز يمكن تذكرها بسهولة (بدلاً من ارقام مثلاً).

تحذير: لا يجوز استخدام غير الأحرف اللاتينية الصغيرة دون علامات نظقية والأرقام من صفر الى تسعة والخط المنخفض (underscore) في اسماء الرموز. بمعنى آخر، فإن 'download' => 'تحميل الملف.' هي كتابة صحيحة بينما 'Download' => 'تحميل الملف.' او 'téléchargement' => 'تحميل الملف.' فليستا صحيحتان.

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

تحذير:
لا يجوز ان تحتوي اسماء ملفات اللغة الخط المنخفض «_» (اي underscore) الا للدلالة على الفصل بين اسم الملف ورمز اللغة التي يحتويها (ar او en ...). فالملف «myfile_ar.php» سليم بينما الملف «my_file_ar.php» لا يصلح.

فتحوي هذه الملفات مثلاً:

- النسخة العربية:

- النسخة القطالونية:

اما بناء الملف فهو كالتالي:

— في اول الملف:

— وفي آخر الملف:

— اما القسم الذي يجب تزويده بالعناصر، فيتكون من عدة اسطر من التعريفات على الشكل التالي:

ملاحظة: كل سطر من التعريفات ينتهي بفاصلة الا السطر الاخير.

ملاحظة: يجب تحويل نصوص السلاسل المترجمة الى رموز HTML (فحركات الحروف مثلاً تأخد الشكل &eacute;) او الى القيمة العشرية اذا كانت الحروف غير لاتينية (فحرف «أ» يأخذ القيمة أ).

اما الفاصلة العليا «’» اذا وجدت داخل السلاسل فيجب ان يطبق عليها الفرار اي ان يسبقها رمز «\». فعلى سبيل المثال، يجب كتابة السلسلة «What’s new» بالشكل التالي: What\'s new.

تذكير: في المستقبل، من المتوقع ان تنضم الى النظام اداة تسمح بإنشاء ملفات اللغة الشخصية وإدارتها دون الحاجة الى تعديل ملفات PHP «يدوياً». اضافة الى ذلك سوف تسهّل هذه الاداة استخدام الحروف «الخاصة» (اي الحروف المحركة والحروف المطبق عليها الفرار وغيرها) ومشاركة عدة اشخاص في عملية ترجمة واجهة الموقع العمومي.

في الوقت الحاضر، لا توزع الاداة التي تتيح ادارة الترجمة مع SPIP مباشرة واستخدامها الشامل (نستخدمها لترجمة كل واجهة SPIP وليس فقط ملفات اللغة من نوع local...php) يجعلها معقدة بالنسبة الى هذه المهمة البسيطة. هذه الاداة «spip_trad»، التي نستخدمها لترجمة نظام SPIP وموقع spip.net الخ. هي نفسها متاحة بالترخيص العام (GNU/GPL) الا انها ليست مدمجة بنظام SPIP. يمكنك تحميلها لاستخدامها لموقعك او لأي تطبيق آخر. واذا قمت بتحسينها او لديك افكار لتحويلها فنرحب بك لمناقشة ذلك في قائمة المترجمين البريدية، spip-trad، لأن ليس لها حالياً اي كيان مستقل عن مشروع SPIP.

٢. صفحات نموذجية مختلفة لكل لغة

اما الطريقة الثانية، وهي في متناول مطوري المواقع المبتدئين، فتفرض انشاء صفحات نموذجية مختلفة لكل لغة. ويشبه ذلك مبدأ انشاء صفحات نموذجية مخصصة لأقسام معينة للحصول على واجهات مختلفة حسب الاقسام.

لنفرض اننا نريد تطوير موقع بالعربية (اللغة الافتراضية) والانكليزية والاسبانية. نقوم اذاً بإنشاء ثلاثة ملفات مختلفة للصفحات النموذجية:
— article.html للغة العربية (وهو في الحقيقة لكل اللغات التي لا تملك ملف خاص بها مثل اللغتين التاليتين)
— article.en.html للغة الانكليزية
— article.es.html للغة الاسبانية.

(ملاحظة: اذا قمنا بنشر مقال بالفارسية بينما لا يوجد في الموقع ملف صفحة نموذجية article.fa.html، سيستخدم هذا المقال ملف article.html).

مهم: لكي يتم التعرف على الصفحات النموذجية حسب اللغة، اي تلك التي تظهر .lang في آخر اسمها، يجب بالضرورة ان يكون هناك نسخة افتراضية من ملف الصفحة النموذجية في الموقع.

بمعنى آخر، اذا لم يكن هناك ملف اسمه article.html، وهو النسخة الافتراضية لن يتمكن النظام من التعرف على الملفات الخاصة بالانكليزية والاسبانية.

يمكن تركيب هذا النوع من التسمية مع نظام تسمية الاقسام ليصبح الترتيب هكذا:
— article=8.es.html (الصفحة النموذجية للغة الاسبانية الخاصة بمقالات القسم رقم ٨ ولكن ليس بمقالات اقسامه الفرعية).
— article=8.html (الصفحة النموذجية الخاصة بمقالات القسم رقم ٨ ولكن ليس بمقالات اقسامه الفرعية).
— article-2.es.html (الصفحة النموذجية للغة الاسبانية الخاصة بمقالات القسم رقم ٢ واقسامه الفرعية).
— article-2.html (الصفحة النموذجية الخاصة بمقالات القسم رقم ٢ واقسامه الفرعية).
— article.es.html (الصفحة النموذجية للمقالات الاسبانية).
— article.html (الصفحة النموذجية الخاصة بالمقالات).
— article-dist.html (الصفحة النموذجية الخاصة بالمقالات والتي تأتي مع SPIP).

ملاحظة: عدى عن بعض الاستثناءات، يجب هنا استخدام رمز اللغة ذا الحرفين القياسي من منظمة المقاييس العالمية ISO، مثل «es». يمكن الاطلاع على القائمة الكاملة في موقع مكتبة الكونغرس في الولايات المتحدة (اي نعم!). ولتوفير الحد الاقصى من التوافقية، يجب تفضيل استخدام رموز ISO بالحرفين («iso 639-1»)، اذا وجدت. اما لتسمية اكثر دقة لتعريف لغة خاصة داخل مجموعتها اللغوية، يتم استخدام رموز ISO بالثلاثة حروف («iso 639-2 T»). فعلى سبيل المثال، يتم تعريف الالمانية بالرمز «de». لكن رموز ISO لا تعرّف الا ١٨٢ لغة من اصل الـ ٥٠٠٠ الى ٧٠٠٠ لغة محكية في العالم. وللغات التي لا يوجد لها تعريف في ISO يمكن الرجوع الى الدليل الذي يقدمه موقع ethnologue.com. ولمزيد من التفاصيل نرحب بك في قائمة spip-trad البريدية.
لتسهيل الامور: هناك طريقة تنظيم بسيطة جداً يوفرها SPIP لإدارة موقع متعدد اللغات، وهي تخصيص اللغات مباشرة بالاقسام (وليس بكل مقال على حدة). هكذا في حال تم جمع كل المقالات المحررة باللغة نفسها بقسم واحد (او حتى بقسم اساسي واحد)، يمكن الاكتفاء بإنشاء صفحات نموذجية حسب اللغة لكل قسم ودون الحاجة لاستخدام اسماء الملفات المعتمدة على اللغات.

بهذه الطريقة، اذا تم جمع كل المقالات الاسبانية في القسم ٨ (واقسامه الفرعية)، يمكن الاكتفاء بتسمية الملف المخصص للاسبانية rubrique-8.html بدلاً من rubrique.es.html.

يمكن ان نرى المشاكل التي قد تنجم عن هذه الطريقة:
— فالملف article-2.html يجب ان يكون موجوداً ليمكن التعرف على article-2.es.html.
— لا يمكن التقرير في المقابل، ان article.es.html يجب ان يُستخدم بدلاً من article-2.html اذا كان article-2.es.html غير موجود: فالتعرف حسب القسم له دائماً الاسبقية على التعرف حسب اللغة.
— اي تغيير في تصميم صفحة نموذجية يفرض ادخال التغيير نفسه في كل النسخات الاخرى من الصفحة.
— يجب ان ندخل بأنفسنا عناصر نصية في ملفات الصفحات النموذجية مع اننا قد لا نفهم اللغة (فتصور انك تصمم صفحة نموذجية بالفيتنامية مع انك تتكلم قليلاً من العربية الدارجة وبضع كلمات من الفرنسية).

اذاً، فهذه الطريقة تناسب العمل السريع على مواقع قليلة التعقيد (اي بقليل من الصفحات النموذجية المخصصة للاقسام او بدونها) و\او يحتوي على القليل من اللغات المختلفة. بمجرد ما يصبح مشروعك المتعدد اللغات اكثر طموحاً، ننصحك بالاعتماد على الطريقة الاولى التي تفرض ملفات اللغة.

٣. كتل تعدد اللغات

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

ولا شك ان هذه الطريقة هي افضل طريقة للمباشرة بالتحكم بسرعة بموقع متعدد اللغات لأنها سهلة الاستخدام وفعالة. ثم بعد تمتين الموقع، اذا رغبت في تحسين الصفحات النموذجية (لفتحها على لغات اضافية مثلاً او لتوزيعها على شكل مساهمة او حتى لجعلها صفحات مهنية يمكن توزيعها)، يمكنك تحويل كتل التعدد الى ملفات لغة.

حواشي

[1تحذير:
اذا استخدمت كتلة تعدد لغات في الجزء الاختياري من علامة ما يجب استخدام الأقواس المجدولة {} بدلاً من الأقواس المعقوفة [] للدلالة على رموز اللغة.
مثال: [<multi>{ar}التعليق على المقال{en}Comment on this article</multi>(#tag)]


عرض الصفحة النموذجية لهذه الصفحة موقع صمم بنظام SPIP | جاي ترجمه | المجال الخاص