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

من ويكي عربآيز
اذهب إلى: تصفح، ابحث
(شكرا على المدح (أعرف أن تحطم رديئة، لكن لم أجد غيرها وقتها) لكن فعليا التطبيق سينهار (crash))
سطر 7: سطر 7:
   
 
==الجموع==
 
==الجموع==
  +
 
نستعمل الآن صيغة جموع بست صيغ:
 
نستعمل الآن صيغة جموع بست صيغ:
 
* الصيغة الأولى: للعدد 0
 
* الصيغة الأولى: للعدد 0
سطر 16: سطر 17:
   
 
==المعادلة==
 
==المعادلة==
  +
 
هذه هي المعادلة المطلوبة لاستخدام الصيغة السابقة:
 
هذه هي المعادلة المطلوبة لاستخدام الصيغة السابقة:
   
سطر 23: سطر 25:
   
 
===ماذا يعني هذا للمترجم؟===
 
===ماذا يعني هذا للمترجم؟===
  +
 
* في حالة وجود رسالة بها جمع، سيفتح محرر ملفات ''PO'' ستة ألسن، كل لسان يطابق صيغة من الصيغ المذكورة، على سبيل المثال لترجمة العبارة:
 
* في حالة وجود رسالة بها جمع، سيفتح محرر ملفات ''PO'' ستة ألسن، كل لسان يطابق صيغة من الصيغ المذكورة، على سبيل المثال لترجمة العبارة:
   
 
<pre dir=ltr>"1 item"
 
<pre dir=ltr>"1 item"
 
"%1 items"</pre>
 
"%1 items"</pre>
  +
 
على المترجم أن يكتب في كل لسان:
 
على المترجم أن يكتب في كل لسان:
 
* ''في الصيغ الثلاثة الأولى لا حاجة لكتابة المتغير (''%1'')، لأنها تعكس كل منها عدد واحدا فقط:''
 
* ''في الصيغ الثلاثة الأولى لا حاجة لكتابة المتغير (''%1'')، لأنها تعكس كل منها عدد واحدا فقط:''
سطر 40: سطر 44:
   
 
=== ما الفائدة من هذه الصيغ؟ ===
 
=== ما الفائدة من هذه الصيغ؟ ===
  +
 
الهدف هو إظهار رسائل عربية سليمة من الأخطاء (مثلا، 2 ملفات، 11 ملفات، 100 ملفات، أخطاء فادحة، المعدود يتغير حسب العدد في العربية)
 
الهدف هو إظهار رسائل عربية سليمة من الأخطاء (مثلا، 2 ملفات، 11 ملفات، 100 ملفات، أخطاء فادحة، المعدود يتغير حسب العدد في العربية)
  +
 
=== لم لم يتحول إلى هذه الصيغة من قبل؟ ===
 
=== لم لم يتحول إلى هذه الصيغة من قبل؟ ===
  +
 
لأنه لم يوجد اتفاق على الصيغة المراد استعمالها، انظر: [[صيغ المعدود]] و[[آراء حول صيغ المعدود]]
 
لأنه لم يوجد اتفاق على الصيغة المراد استعمالها، انظر: [[صيغ المعدود]] و[[آراء حول صيغ المعدود]]
   
 
===كيف أضبط بابل ك ( Kbabel ) لدعم هذه الصيغ؟===
 
===كيف أضبط بابل ك ( Kbabel ) لدعم هذه الصيغ؟===
  +
 
* أنشئ مشروعا جديدا
 
* أنشئ مشروعا جديدا
 
* ادخل إلى حوار الضبط عن طريق '''مشروع''' >> ثم '''اضبط'''
 
* ادخل إلى حوار الضبط عن طريق '''مشروع''' >> ثم '''اضبط'''
سطر 56: سطر 64:
   
 
=== أحرر الملفات في محرر نصوص مجردة، كيف أتعامل مع الصيغ؟===
 
=== أحرر الملفات في محرر نصوص مجردة، كيف أتعامل مع الصيغ؟===
  +
 
هكذا:
 
هكذا:
 
<pre dir="ltr">
 
<pre dir="ltr">
سطر 69: سطر 78:
   
 
===المشاريع التي تستخدم هذه الصيغة===
 
===المشاريع التي تستخدم هذه الصيغة===
  +
 
* [[كدي]]
 
* [[كدي]]
 
* [[جنوم]]
 
* [[جنوم]]
  +
* بوتل
  +
* لنشباد
  +
   
 
==تعدد المعاملات==
 
==تعدد المعاملات==
  +
 
يجب ملاحظة أنه في حال تعدد المعاملات في نص الترجمة، فإن إزالة أحدها سيؤدي إلى انهيار البرمجية أثناء التشغيل، كما في جملة مثل:
 
يجب ملاحظة أنه في حال تعدد المعاملات في نص الترجمة، فإن إزالة أحدها سيؤدي إلى انهيار البرمجية أثناء التشغيل، كما في جملة مثل:
 
<pre dir=ltr>"%d items of %s type</pre>
 
<pre dir=ltr>"%d items of %s type</pre>

نسخة 12:27، 2 أغسطس 2008

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

This page is in English under Plural Forms

Arabic.png

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

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

الجموع

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

  • الصيغة الأولى: للعدد 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‬"

خطأ برمجيا، لتفادي هذا فإننا نستخدم المعاملات المرقمة بإضافة رقم ترتيب المعامل -من حيث الظهور في الجملة الأصلية- متبوعا ب $ هكذا:

"عنصر واحد من النوع ‪%2$s‬"