FreeToGenerate.com

الإنجليزيةُ أقلُّ هذه اللغات الخمس صيغَ جمعٍ وأكثرُها صيغَ ترتيب. والعربيةُ عكسُها تمامًا. ولا يُرفع شيء.

جرّب

جرّب 0: ثلاثٌ من هذه اللغات الخمس تخالف الإنجليزية فيه. ثم جرّب 1000000.

ما يقوله متصفحك

الإنجليزيةotherالصيغةُ العامّة. تملكها كلُّ لغة، وبعضُ اللغات لا تملك سواها.
الإسبانيةotherالصيغةُ العامّة. تملكها كلُّ لغة، وبعضُ اللغات لا تملك سواها.
البرتغاليةoneالمفرد، وإن كانت الأعدادُ التي تُعَدُّ مفردًا ليست واحدةً في كلّ مكان.
الفرنسيةoneالمفرد، وإن كانت الأعدادُ التي تُعَدُّ مفردًا ليست واحدةً في كلّ مكان.
العربيةzeroصيغةٌ للعدم، ولا تملكها أكثرُ اللغات.

محسوبٌ هنا والآن بمتصفحك أنت. وهو الجوابُ الوحيدُ الذي يمكن أن يؤثّر في شفرتك.

منإلى

الجزءُ من الواجهة الذي يكاد لا يعرف أحدٌ بوجوده. ففي الإنجليزية مدًى من 1 إلى 1 ليس مفردًا.

السؤالُ نفسُه عن مدًى

الإنجليزيةother
الإسبانيةother
البرتغاليةone
الفرنسيةone
العربيةother

كلُّ فئةٍ تستعملها كلُّ لغة

الإنجليزيةالعدُّ (ملفٌّ واحد، ملفّان)oneother2 فئات
الترتيب (الأول، الثاني، الثالث)onetwofewother4 فئات
الإسبانيةالعدُّ (ملفٌّ واحد، ملفّان)onemanyother3 فئات
الترتيب (الأول، الثاني، الثالث)other1 فئات
البرتغاليةالعدُّ (ملفٌّ واحد، ملفّان)onemanyother3 فئات
الترتيب (الأول، الثاني، الثالث)other1 فئات
الفرنسيةالعدُّ (ملفٌّ واحد، ملفّان)onemanyother3 فئات
الترتيب (الأول، الثاني، الثالث)oneother2 فئات
العربيةالعدُّ (ملفٌّ واحد، ملفّان)zeroonetwofewmanyother6 فئات
الترتيب (الأول، الثاني، الثالث)other1 فئات

حُسبت هذه الجداولُ وقتَ بناء الصفحة. فإن خالفت المربّعَ في الأعلى فمعنى ذلك أنّ بيانات CLDR في متصفحك مختلفة، وهذا في ذاته جديرٌ بالمعرفة.

أيُّ الأعداد يقع في أيّ فئة

الإنجليزية
one1
other0, 2, 3, 4
الإسبانية
one1
many1,000,000, 2,000,000, 10,000,000, 1,000,000,000
other0, 2, 3, 4
البرتغالية
one0, 1, 0.5, 1.5
many1,000,000, 2,000,000, 10,000,000, 1,000,000,000
other2, 3, 4, 5
الفرنسية
one0, 1, 0.5, 1.5
many1,000,000, 2,000,000, 10,000,000, 1,000,000,000
other2, 3, 4, 5
العربية
zero0
one1
two2
few3, 4, 5, 6
many11, 12, 13, 14
other100, 101, 102, 200

متوفر أيضًا بلغات أخرى: English · Español · Português · Français

قواعد الجمع في CLDR

تبيّن في أيّ فئةِ جمعٍ يقع أيُّ عدد، في خمس لغاتٍ معًا، بالبيانات نفسِها التي يستعملها متصفحك.

ما قواعد الجمع؟

إن سبق أن كتبتَ «حُذف 1 ملف(ات)» فقد لقيتَ المشكلة التي تحلّها هذه القواعد. فالعربيةُ تحتاج صيغًا عدّة — ملفٌّ وملفّان وملفّات — والحلُّ الساذجُ فحصُ هل العدد واحد. وهذا الحلُّ ينكسر ما إن تُترجَم الواجهة، لأنّ اللغات لا تتفق لا على عدد الصيغ ولا على أيّ الأعداد يأخذ كلَّ صيغة.

و‏CLDR — مستودعُ بيانات التوطين في يونيكود — يحسم ذلك بأن يعطي كلَّ لغةٍ مجموعةَ فئاتٍ مسمّاةً مأخوذةً من ستٍّ ممكنة: zero وone وtwo وfew وmany وother. وتستعمل كلُّ لغةٍ ما تحتاجه منها. فتكتب شفرتُك رسالةً لكلّ فئة، ويختار المحرّك. وكلُّ المتصفحات تتيح ذلك عبر Intl.PluralRules، فلا شيءَ يُنزَّل ولا شيءَ يُصان.

والأداةُ في الأعلى تطرح هذا السؤالَ على خمس لغاتٍ معًا. اكتب عددًا فتقول كلُّ لغةٍ في أيّ فئةٍ يقع — والطريفُ كثرةُ اختلافها، حتى في أعدادٍ لا تبدو محلَّ خلاف.

كيف تستعملها

  1. اكتب عددًا واقرأ الصفَّ كلَّه. تُبلّغ كلُّ لغةٍ بالفئة التي يقع فيها العدد. ابدأ بالصفر: تعدّه الإنجليزيةُ والإسبانيةُ جمعًا، وتعدّه الفرنسيةُ والبرتغاليةُ مفردًا، وتعطيه العربيةُ صيغةً خاصّةً به. فثلاثٌ من خمسٍ تخالف الإنجليزيةَ في العدم نفسِه.
  2. بدّل بين العدّ والترتيب. الأصليُّ هو ملفٌّ وملفّان. والترتيبيُّ هو الأول والثاني والثالث. وهما مجموعتا قواعدَ مختلفتان بعددَي فئاتٍ مختلفين، وتحريكُ المفتاح أسرعُ سبيلٍ لترى كم تعامل اللغةُ الواحدةُ كلًّا منهما معاملةً مختلفة.
  3. جرّب مدًى. المفتاحُ الثاني يستعمل selectRange، الذي يكاد لا يعرف أحدٌ بوجوده: وهو يجيب عن صيغة «1-2 عنصرًا». وفي الإنجليزية مدًى من 1 إلى 1 ليس مفردًا، وهو ما يفاجئ أكثرَ من يخمّن.

الانقلاب: المعقّدةُ هي الإنجليزية

الفكرةُ الشائعةُ أنّ جموع الإنجليزية بسيطةٌ وجموعَ غيرِها صعبة. وفي العدّ هذا صحيح: تستعمل الإنجليزيةُ فئتين حيث تستعمل العربيةُ الستَّ كلَّها. فللعربية صيغةٌ للصفر، وأخرى للواحد، ومثنًّى خاصٌّ لاثنين بالضبط، وصيغةٌ لثلاثةٍ إلى عشرة، وأخرى لأحدَ عشرَ إلى تسعةٍ وتسعين، وصيغةٌ عامّة. بل هي دوريّة: فـ103 تأخذ صيغةَ 3، و111 تأخذ صيغةَ 11.

أما في الترتيب فينقلب الأمرُ رأسًا على عقب. تحتاج الإنجليزيةُ أربعَ صيغٍ ترتيبية، لأنّ 1st و2nd و3rd تأخذ لواحقَ مختلفة وما عداها يأخذ ‎-th، مع استثناء العشرة الثانية الذي لا تعبّر عنه قاعدةٌ على آخر رقمٍ وحده: ولهذا كان 21st من فئة one و11th من فئة other. أما العربيةُ فتحتاج صيغةً ترتيبيةً واحدةً بالضبط. وكذلك الإسبانيةُ والبرتغالية؛ والفرنسيةُ تحتاج اثنتين.

واجمع الأمرين تجد الإنجليزيةَ وحدَها من هذه الخمس لها فئاتٌ ترتيبيةٌ أكثرُ من فئات جمعها. فاللغةُ التي تُوصف بالبساطة هي على هذا المحور أشدُّ المجموعة تطلُّبًا — وكلُّ شفرةٍ تثبّت لاحقةَ الترتيب الإنجليزية بالنظر إلى آخر رقمٍ ستخطئ في العشرة الثانية.

وثمّة طُرفةٌ أخرى تستحق التجربة. فللإسبانية والبرتغالية والفرنسية فئةٌ ثالثةٌ لا تعمل إلا على مضاعفات المليون تمامًا: فـ999999 عاديّ، و1000000 يأخذ صيغةً خاصّة، و1000001 يعود عاديًّا.

حدودٌ صريحة

فئةُ الجمع ليست ترجمة. فمعرفةُ أنّ عددًا يقع في few تقول لك أيَّ خانةِ رسالةٍ تستعمل، ولا تكتب الرسالة. فالقواعدُ عن المطابقة النحوية، والكلماتُ تبقى كلماتِك.

والفئاتُ ليست كلَّ المطابقة أيضًا. فلغاتٌ كثيرةٌ تُعرب بالحالة والجنس كذلك، والعددُ قد يغيّر أكثرَ من آخر الاسم: والعربيةُ خاصّةً تغيّر صيغةَ المعدود وإعرابَه بحسب العدد. وفئاتُ CLDR تغطّي ما تستطيع مكتبةُ رسائلَ أتمتتَه، وهو حقيقيٌّ لكنه جزئيّ.

والجداولُ أدناه حُسبت وقتَ بناء هذه الصفحة، والمربّعُ في الأعلى يستعمل متصفحك وأنت تقرأ. وكلاهما ينهل من CLDR، لكنّ المتصفحَ وخادمَ البناء قد يحملان نسختين مختلفتين، وCLDR يراجع قواعده. فإن اختلفا يومًا على شاشتك فالمربّعُ هو الصوابُ لك، والاختلافُ نفسُه هو المعلومةُ النافعة — ولهذا تعرض الصفحةُ الاثنين بدل أن تختار.

وشيءٌ لا تستطيع واجهةُ جافاسكربت التعبيرَ عنه: فـCLDR يفرّق بين 1 و1.0، لأنّ لغةً قد تعامل «1.0 مترًا» جمعًا حيث «متر واحد» مفرد. وفي جافاسكربت هما العددُ نفسُه، فتمريرُ 1.0 يعطيك جوابَ 1. وللحصول على الآخر عليك تنسيقُ القيمة نصًّا وترْكُ التنسيق يحمل الكسر.

وأخيرًا، تقارن هذه الصفحةُ اللغاتِ الخمسَ التي يُنشر بها الموقع. وIntl.PluralRules يعرف مئاتٍ غيرها، وبعضُها يسلك مسلكًا لا تبيّنه أيٌّ من هذه الخمس: فقد يكون للغةٍ فئةٌ لا يبلغها عددٌ صحيحٌ البتّة، فلا يكشفها العدُّ تصاعديًّا مهما طال.

لماذا هي مجانية؟

لأنّه لا شيءَ يُدفع. فالقواعدُ في متصفحك أصلًا، وهذه الصفحةُ لا تحزم بياناتٍ البتّة، بل تسأل وتعرض. ولا يُرفع شيءٌ ولا حسابَ هناك.

وأرقامُ المقالة تفحصها مجموعةُ الاختبارات على الواجهة نفسِها، فإن راجع CLDR قاعدةً كسر النصُّ البناءَ بدل أن يصير كاذبًا في صمت. وحيث تتوقّف دعوى على لغةٍ خارج هذه الخمس تلجأ الاختباراتُ إلى تلك اللغة بدل أن تستنتجها من الحاضرات.