انتقل إلى المحتوى

العولمة

الموقع قيد الإنشاء

لا تزال هذه الصفحة قيد الإنشاء. زر الموقع بشكل دوريّ من أجل رؤية آخر التعديلات والتحديثات.

العولمة في مجال البرمجيات هي العملية التي يتم خلالها تحويل وتطوير البرمجيات والمكتبات لتتناسب مع متطلبات أفراد من دول وثقافات مختلفة حول العالم. العولمة تنصب البنية التحتية اللازمة لعملية التوطين.

توجد العديد من الأدوات المختصة بالعولمة، وسنسرد هنا أهمها وما يجب تذكره من موطِّني البرمجيات.

الترميز الموحد\يونيكود «Unicode»

أهم أجزاء العولمة هي القدرة على كتابة النصوص والرموز من لغات وثقافات مختلفة، وهذا ما يتيحه يونيكود. يونيكود هو ترميز نصِّي يستطيع تمثيل الرموز والأحرف في كل اللغات الشائعة ومنها العربية. يتضمن يونيكود عدة أنواع للترميز تختلف حسب الحجم التمثيلي الأصغر لكل رمز، ولكن الترميز UTF-8 «بايت أو أكثر لكل حرف» هو الأكثر شيوعًا. يمكنك الإطلاع على كل الرموز المتاحة في يونيكود في هذا الرابط.

الغالبية العظمى من البرمجيات تدعم ترميز يونيكود للنصوص، وهذا يجعل فهمه مهم لكل المهتمين بالتوطين. في ما يلي بعض المفاهيم المهمة في يونيكود:

خوارزمية الاتجاه المزدوج للنص

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

الاتجاه الأساسي

لكل عنصر يحوي نصًا اتجاه أساسي للنص يحدد الاتجاه المبدئي عند التصيير دون وجود أي علامات أو رموز خاصة داخل النص. هذا الاتجاه لا يعتمد على محتويات النص وعادة يورث من البرمجية أو صفحة الوِب أو قد يُصرَّح به من المطور. تكمن أهمية هذا الاتجاه في تقليل استعمال أحرف الاتجاه الخاصة وتحديد اتجاه مبدئي.

اتجاه الأحرف

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

هناك أيضا أحرف باتجاه محايد، مثل المسافات وعلامات الترقيم. الأحرف المحايدة الواقعة بين أحرف باتجاه قوي تتبع اتجاهها. المسافة الواقعة بين أحرف عربية على سبيل المثال ستتبع نفس الاتجاه «من اليمين لليسار»، ومثلها علامات الترقيم. إذا وقعت الأحرف المحايدة بين حرفين باتِّجاهين قويين مختلفين فسيطغى أحدهما. في حال غياب الأحرف الخاصة، فإن الاتجاه الذي يطغى في مثل هذه الحالة هو الاتجاه الأساسي للنص.

حروف تنسيق الاتجاه

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

من حروف تنسيق الاتجاه الشائعة: علامة اليسار لليمين «Right to Left Mark»، وعلامة اليمين لليسار «Arabic Letter Mark»، وعلامة الحرف العربي «Left to Right Mark».

ترجمة النصوص

تترجم أغلب النصوص بتغيير السلاسل النصية داخل البرنامج تبعا للغة أو المحلية الموجودة وقت تشغيل البرنامج. توجد عدة برمجيات يمكن أن يستعملها المطور لمعالجة النصوص المترجمة وأهمها هو gettext.

لدى هذه الأدوات عدة ميزات وهنا نسرد أهمها بالنسبة للموطنين وأكثرها شيوعًا.

صيغ المعدود

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

  • 0 (صفر): لا كتاب.
  • 1 (مفرد): كتاب واحد.
  • 2 (مثنى): كتابين.
  • 3-10 (الخانتين الأولتين بين 03 و 10): 3 كتب.
  • 11-19 (الخانتين الأولتين بين 11 و 19): 11 كتابًا.
  • ما تبقى (الخانتين الأولتين تكونان 20 فأكثر، أو 00 أو 01 أو 02 عند زيادة العدد على مئة) 20 كتاب، 101 كتاب، 1002 كتاب، إلخ...

يجب ملاحظة ما يلي فيما يتعلق بصيغ الجمع:

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

التعويض بالمتغيرات في النصوص المترجمة

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

التعويض بالمتغيرات الاعتيادية

تستخدم علامات محددة داخل النصوص لتحديد أنواع أو أماكن المتغيرات في النص الناتج. النصوص التالية أمثلة على تعويض سلسلة نصية ثم تعويض رقم صحيح، فلاحظ الرمز المستعمل لكل مثال.

‪"%s wants to access your pictures."

"حذف %d ملف"

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

‪"Application %1$s has encountered an error: %2$s"

لاحظ هنا أن «1$» تحدد أي من المتغيرات المسرودة التي سوف يعوَّض بها بتحديد رقمها حسب ترتيبها من المتغيرات المسرودة من مطور التطبيق.