«صيغ المعدود»: الفرق بين المراجعتين
ط |
|||
سطر 84: | سطر 84: | ||
* لنشباد |
* لنشباد |
||
+ | |||
− | <!-- |
||
==تعدد المعاملات== |
==تعدد المعاملات== |
||
سطر 91: | سطر 91: | ||
فترجمتها في حالة المفرد هكذا: |
فترجمتها في حالة المفرد هكذا: |
||
"عنصر واحد من النوع ‪%s‬" |
"عنصر واحد من النوع ‪%s‬" |
||
− | خطأ برمجيا، |
+ | خطأ برمجيا، ولتفادي هذا فبدلا من المعامل العددي "‪%d‬" نضع المعامل ‪%.0s‬ الذي لن يظهر في الترجمة لكنه سيمنع الخطأ البرمجي: |
− | "عنصر واحد من النوع ‪% |
+ | "عنصر واحد‪%.0s‬ من النوع ‪%s‬" |
+ | |||
− | --> |
||
[[تصنيف:معايير]] |
[[تصنيف:معايير]] |
||
[[تصنيف:ترجمة]] |
[[تصنيف:ترجمة]] |
نسخة 14:14، 19 أكتوبر 2008
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 عنصر"
المشاريع التي تستخدم هذه الصيغة
تعدد المعاملات
يجب ملاحظة أنه في حال تعدد المعاملات في نص الترجمة، فإن إزالة أحدها سيؤدي إلى انهيار البرمجية أثناء التشغيل، كما في جملة مثل:
"%d items of %s type
فترجمتها في حالة المفرد هكذا:
"عنصر واحد من النوع %s"
خطأ برمجيا، ولتفادي هذا فبدلا من المعامل العددي "%d" نضع المعامل %.0s الذي لن يظهر في الترجمة لكنه سيمنع الخطأ البرمجي:
"عنصر واحد%.0s من النوع %s"