«صيغ المعدود»: الفرق بين المراجعتين

من ويكي عربآيز
اذهب إلى: تصفح، ابحث
(الصيغة)
سطر 5: سطر 5:
 
من بين الخصائص العيدة التي يوفرها gettext خاصية صيغ '''المعدود'''، تتلخص وظيفتها في السماح بإمكانية تغيير النص المترجم تبعا لقيمة المعدود، بعبارة أخرى تعطي إمكانية ترجمة عبارة مثل "there is X files" (حيث X تساوي أي عدد) إلى "لا توجد ملفات"، "يوجد ملف واحد"، "يوجد ملفين"، "يوجد 15 ملفا"، "يوجد 10050 ملف" الخ.
 
من بين الخصائص العيدة التي يوفرها gettext خاصية صيغ '''المعدود'''، تتلخص وظيفتها في السماح بإمكانية تغيير النص المترجم تبعا لقيمة المعدود، بعبارة أخرى تعطي إمكانية ترجمة عبارة مثل "there is X files" (حيث X تساوي أي عدد) إلى "لا توجد ملفات"، "يوجد ملف واحد"، "يوجد ملفين"، "يوجد 15 ملفا"، "يوجد 10050 ملف" الخ.
   
  +
==الجموع==
==طريقة استعمالها==
 
  +
يستعمل كيدي الآن صيغة جموع بست صيغ:
  +
* الصيغة الأولى: للعدد 0
  +
* الصيغة الثانية: للعدد 1
  +
* الصيغة الثالثة للمثنى (2)
  +
* الصيغة الرابعة للأعداد التي تنتهي بعدد محصور بين 3 و10 (مثلا: 103, 1405, 23409)
  +
* الصيغة الخامسة للأعداد التي تنتهي بعدد محصور بين 11 و99 (مثلا: 1099, 278)
  +
* الصيغة السادسة للأعداد الأكبر من مائة المنتهية ب01 أو 02 أو 00.
  +
===ماذا يعني هذا للمترجم؟===
  +
* في حالة وجود رسالة بها جمع، سيفتح محرر ملفات ''PO'' ستة ألسن، كل لسان يطابق صيغة من الصيغ المذكورة، على سبيل المثال لترجمة العبارة:
   
  +
<pre dir=ltr>"1 item"
===الصيغة===
 
  +
"%1 items"</pre>
 
  +
على المترجم أن يكتب في كل لسان:
* في ''Gettext'':
 
  +
* ''في الصيغ الثلاثة الأولى لا حاجة لكتابة المتغير (''%1'')، لأنها تعكس كل منها عدد واحدا فقط:''
القاعدة التالية تصف ست حالات للمعدود، و تحدد كل حالة منها بنطاق من الأعداد:
 
  +
لا عناصر
  +
عنصر واحد
  +
عنصران
  +
* ''في الصيغة الرابعة، يكون المعدود جمعا مجرورا، لا تنس كتابة المتغير (''%1'')
  +
%1 عناصر
  +
* ''في الصيغة الخامسة، يكون المعدود جمعا منصوبا، لا تنس كتابة المتغير (''%1'')
  +
%1 عنصرا
  +
* ''في الصيغة السادسة والأخيرة، يكون المعدود مفردا مجرورا، لا تنس كتابة المتغير (''%1'')
  +
%1 عنصر
   
  +
=== ما الفائدة من هذه الصيغ؟ ===
  +
الهدف هو إظهار رسائل عربية سليمة من الأخطاء (مثلا، 2 ملفات، 11 ملفات، 100 ملفات، أخطاء فادحة، المعدود يتغير حسب العدد في العربية)
  +
=== لم لم يتحول كيدي إلى هذه الصيغة من قبل؟ ===
  +
لأنه لم يوجد اتفاق على الصيغة المراد استعمالها، انظر: [[صيغ المعدود]] و[[آراء حول صيغ المعدود]]
  +
  +
===كيف أضبط بابل ك لدعم هذه الصيغ؟===
  +
* أنشئ مشروعا جديدا
  +
* ادخل إلى حوار الضبط عن طريق '''مشروع''' >> ثم '''اضبط'''
  +
* ضع '''6''' في '''عدد صيغ المفرد/الجمع:'''
  +
* لا تختر '''تطلب معاملات صيغ الجمع فى الترجمة'''
  +
* أدخل:
 
<pre dir=ltr>
 
<pre dir=ltr>
"Plural-Forms: 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;
+
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;
 
</pre>
 
</pre>
  +
في ''ترويسة صيغة جمع &GNU:''
   
  +
=== أحرر الملفات في محرر نصوص مجردة، كيف أتعامل مع الصيغ؟===
ملحوظة: قسمنا القاعدة على سطرين لقصور تقني ليس أكثر، و يفضل دمجهما في سطر واحد.
 
  +
هكذا:
 
  +
<pre dir="ltr">
بسبب بقة|علة ما في الإصدارة الحالية من gettext يتوجب تلافي وضع القاعدة الصفرية في البداية، لذا نتحايل بوضعها بعد ''الواحد''.
 
  +
msgid "1 Item"
 
  +
msgid_plural "%1 Items"
أمثلة على ما تخرجه لنا القاعدة السابقة في gettext (بافتراض أن الجزء الثابت السابق للعدد من العبارة هو مثلا 'تم بنجاح حذف ''':
 
  +
msgstr[0] "لا عنصر"
 
  +
msgstr[1] "عنصر واحد"
{| border="1"
 
  +
msgstr[2] "عنصران"
|+
 
  +
msgstr[3] "%1 عناصر"
|الحالة||العدد||أمثلة
 
  +
msgstr[4] "%1 عنصرا"
|-
 
  +
msgstr[5] "%1 عنصر"
| 0 || 1 || مستخدم واحد، ملف واحد
 
  +
</pre>
|-
 
| 1 || 0 || لا مستخدمِين، لا ملفات
 
|-
 
| 2 || 2 || مستخدمَين، ملفَّيَن
 
|-
 
| 3 || 3[100] - 10[100] || 6 مستخدمين، 707 ملفات
 
|-
 
| 4 || 11[100] - 99[100] || 69 مستخدما، 666 ملفا
 
|-
 
| 5 || غير ذلك || 100 مستخدمٍ، 9000 ملف
 
|}
 
 
الصيغة الفعلية للتمييز تعتمد على الكلمة ذاتها، و نمط جمعها.
 
 
حلول اصطلاحية:
 
 
* قد تختلف صيغة المعدود حسب ما إذا كُنت تقرأ العدد بدءا بالمنزلة الأقل أوالأكبر (مثلا: "ثلاثة و أربعين ملفا" مقابل "أربعين و ثلاث ملفات"، و كذلك: "مئة و واحد ملفا" مقابل "واحد و مئة ملف")، أو بالأسلوب الشائع حاضرا الذي يقدم قراءة المنازل الأكبر من الآحاد و العشرات ثم يعود ليبدأ بالآحاد ثم العشرات، مثل "مئة و ثلاثة و أربعين ملفا"، مقابل "مئة و أربعين و ثلاث ملفات" أو "ثلاث و أربعين و مئة ملف".
 
: و هذه من المشاكل غير المحلولة تقنيا. لذلك اصطلحنا على أنه فيما يتعلق بالأعداد المكتوبة بالأرقام فإن القاعدة توضع استنادا إلى أن قراءتها تكون بدءا بالآحاد لما يقل عن المئة، و بالأسلوب المختلط السابق ذكره لما يزيد عليها.
 
 
* كذلك فإن الصيغة العربية المتوارثة للأعداد من رتبة المئات مع المفرد و المثنى هي: '''مئة و ''معدود''''' و '''مئة و ''معدودان''''' مثل "مئة و مستخدم" و "مئة و مستخدمان"؛ إلا أننا اصطلحنا على قراءة الرقم كما باقي الأعداد.
 
 
من أشكال القصور الأخرى في التقنية الحالية:
 
 
* الصيغة الصفرية بهذا الشكل لا تستقيم لغويا، حيث الأصح في العربية أن يتم نفي الفعل إن لم يقع على أي مفعول، أو من أي فاعل، مثل "لم تحذف أية ملفات|لم يحذف اي ملف"، و "لم يُفلت أي مستخدم". هذه مشكلة غير محلولة لأنها تتطلب إعادة هيكلة العبارة بأكملها و هو ما قد لا يكون متاحا دائما إذا ما عمد المصمم إلى تقطيع العبارات عند حدود الأعداد، و حسب تقنية البرمجة و العولمة(i18n) المستخدمة.
 
   
  +
===المشاريع التي تستخدم هذه الصيغة===
* قد تتطلب الصياغة الصحيحة لبعض العبارات تغيير تصريف الفعل من حيث التأنيث و التذكير "حُذفت 6 ملفات" مقابل "حُذف 666 ملفا" لكن يمكن التحايل على ذلك باستخدام فعل مساعد مثل "تم" و إلحاقه بمصدر الفعل الأصلي، مثل: "تم حذف..." (و هي صيغة أكثر توكيدا و تقريرية فيما يتعلق بالإبلاغ عن نتائج الأعمال و رسائل السجلات. طالع [[صيغ محبذة في رسائل واجهة المستخدم]])
 
  +
* [[كدي]]
   
   

نسخة 14:38، 17 يناير 2008

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

تستخدم أغلب مشاريع البرمجيات الحرة أدوات GNU gettext كبنية لآلية الترجمة.

من بين الخصائص العيدة التي يوفرها gettext خاصية صيغ المعدود، تتلخص وظيفتها في السماح بإمكانية تغيير النص المترجم تبعا لقيمة المعدود، بعبارة أخرى تعطي إمكانية ترجمة عبارة مثل "there is X files" (حيث X تساوي أي عدد) إلى "لا توجد ملفات"، "يوجد ملف واحد"، "يوجد ملفين"، "يوجد 15 ملفا"، "يوجد 10050 ملف" الخ.

الجموع

يستعمل كيدي الآن صيغة جموع بست صيغ:

  • الصيغة الأولى: للعدد 0
  • الصيغة الثانية: للعدد 1
  • الصيغة الثالثة للمثنى (2)
  • الصيغة الرابعة للأعداد التي تنتهي بعدد محصور بين 3 و10 (مثلا: 103, 1405, 23409)
  • الصيغة الخامسة للأعداد التي تنتهي بعدد محصور بين 11 و99 (مثلا: 1099, 278)
  • الصيغة السادسة للأعداد الأكبر من مائة المنتهية ب01 أو 02 أو 00.

ماذا يعني هذا للمترجم؟

  • في حالة وجود رسالة بها جمع، سيفتح محرر ملفات PO ستة ألسن، كل لسان يطابق صيغة من الصيغ المذكورة، على سبيل المثال لترجمة العبارة:
"1 item"
 "%1 items"

على المترجم أن يكتب في كل لسان:

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

ما الفائدة من هذه الصيغ؟

الهدف هو إظهار رسائل عربية سليمة من الأخطاء (مثلا، 2 ملفات، 11 ملفات، 100 ملفات، أخطاء فادحة، المعدود يتغير حسب العدد في العربية)

لم لم يتحول كيدي إلى هذه الصيغة من قبل؟

لأنه لم يوجد اتفاق على الصيغة المراد استعمالها، انظر: صيغ المعدود وآراء حول صيغ المعدود

كيف أضبط بابل ك لدعم هذه الصيغ؟

  • أنشئ مشروعا جديدا
  • ادخل إلى حوار الضبط عن طريق مشروع >> ثم اضبط
  • ضع 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 "%1 Items"
 msgstr[0] "لا عنصر"
 msgstr[1] "عنصر واحد"
 msgstr[2] "عنصران"
 msgstr[3] "%1 عناصر"
 msgstr[4] "%1 عنصرا"
 msgstr[5] "%1 عنصر"

المشاريع التي تستخدم هذه الصيغة