صيغ المعدود
This page is in English under Plural Forms |
تستخدم أغلب مشروعات البرمجيات الحرة أدوات GNU gettext كبنية لآلية الترجمة.
من بين الخصائص العديدة التي يوفرها gettext خاصية صيغ المعدود، وهي تتيح تغيير النص المترجم اللاحق للتعدادات -المعدود- تبعًا لقيمته. بعبارة أخرى تتيح إمكانية ترجمة عبارة مثل "there is N files" (حيث N تساوي أي عدد) إلى "لا توجد ملفات"، "يوجد ملف واحد"، "يوجد ملفان"، "يوجد 15 ملفا"، "يوجد 100 ملف" إلخ.
محتويات
الجموع
نستعمل الآن صيغة جموع بست صيغ:
- الصيغة الأولى: للعدد 0
- الصيغة الثانية: للعدد 1
- الصيغة الثالثة: للمثنى (2)
- الصيغة الرابعة: للأعداد التي تنتهي بعدد محصور بين 3 و10 (مثلا: 103، 1405، 23409)
- الصيغة الخامسة: للأعداد التي تنتهي بعدد محصور بين 11 و99 (مثلا: 1099، 278)
- الصيغة السادسة: للأعداد الأكبر من مائة المنتهية ب01 أو 02 أو 00.
المعادلة
هذه هي المعادلة المطلوبة لاستخدام الصيغة السابقة:
nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;
ماذا يعني هذا للمترجم؟
- عندما تنتقل لرسالة بها جمع، سيفتح محرر ملفات PO ستة ألسن أمامك، كل لسان يطابق صيغة من الصيغ المذكورة. فعلى سبيل المثال؛ لترجمة العبارة:
"1 item" "%1 items"
على المترجم أن يكتب في كل لسان:
- في الصيغ الثلاثة الأولى لا حاجة لكتابة المتغير (%1)، لأنَّها ستكون صيغة نصية:
لا عناصر عنصر واحد عنصران
- في الصيغة الرابعة، يكون المعدود جمعًا مجرورًا، مثال: 3 عناصر. لا تنسَ كتابة المتغير (%1).
%1 عناصر
- في الصيغة الخامسة، يكون المعدود مفردًا منصوبًا (تمييز)، مثال: 1099 عنصرا. لا تنسَ كتابة المتغير (%1).
%1 عنصرا
- في الصيغة السادسة والأخيرة، يكون المعدود مفردًا مجرورًا، مثال: 202 عنصر. لا تنسَ كتابة المتغير (%1).
%1 عنصر
ما الفائدة من هذه الصيغ؟
الهدف هو إظهار رسائل عربية أنيقة وسليمة من الأخطاء (مثلا، 2 ملفات، 11 ملفات، 100 ملفات...إلخ. كلها أخطاء فادحة، فالمعدود يتغير حسب العدد في العربية)
لم لم يتحول إلى هذه الصيغة من قبل؟
لاختلاف وجهات النَّظر، لم يُتَّفق على الصيغة المراد استعمالها. انظر: صيغ المعدود وآراء حول صيغ المعدود
كيف أضبط بابل ك ( Kbabel ) لدعم هذه الصيغ؟
- أنشئ مشروعًا جديدًا
- ادخل إلى حوار الضبط عن طريق مشروع >> ثم اضبط
- ضع 6 في عدد صيغ المفرد/الجمع:
- لا تختر تطلب معاملات صيغ الجمع فى الترجمة
- أدخل:
nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;
في ترويسة صيغة جمع &GNU:
أحرر الملفات في محرر نصوص مجردة، كيف أتعامل مع الصيغ؟
هكذا:
msgid "1 Item" msgid_plural "%d Items" msgstr[0] "لا عناصر" msgstr[1] "عنصر واحد" msgstr[2] "عنصران" msgstr[3] "%d عناصر" msgstr[4] "%d عنصرا" msgstr[5] "%d عنصر"