لماذا نختبر بنص عربي وهندي لا بالإنجليزية فقط؟
لأن معظم ما ينكسر مع النص غير اللاتيني لا يظهر أبداً مع الإنجليزية. تُكتب العربية من اليمين إلى اليسار وتختلط بأرقام وأكواد من اليسار إلى اليمين، وتتغير أشكال حروفها بحسب موضعها، وتحمل تشكيلاً اختيارياً يجعل سلسلتين «متساويتين» غير متساويتين؛ وتجمع الديفاناغاري الهندية الحروف الساكنة وعلامات الحركات في عناقيد قد يقسمها عدّاد المحارف أو الاقتطاع أو المؤشر خطأً. وتختلف الصيغ المحلية أيضاً — الأرقام العربية المشرقية والتقويم الهجري وتجميع الأرقام الهندي (1,00,000). والحزمة التي لا تحوي إلا بيانات إنجليزية تترك كل هذا دون اختبار.
mixedBidi يأتي تاريخ ISO بعد حروف عربية، فتُرتَّب مجموعات أرقامه من اليمين إلى اليسار: يُخزَّن 2021-02-03 ويظهر 03-02-2021، بينما يبقى معرّف الطلب سليماً.كما يظهر في سطر عربي (يُقرأ من اليمين)
الجزء 1:تم استلام الطلب
كما يُخزَّن: بترتيب الذاكرة من 1 إلى 7
الجزء 1:تم استلام الطلب
- 1كلمات عربيةتبدأ الجملة هنا، عند اليمين.
RTL - 2معرّف الطلبحروف لاتينية ثم أرقام: مقطع واحد من اليسار إلى اليمين يبقى سليماً.
LTR - 3كلمة عربيةمن اليمين إلى اليسار مجدداً بعد المعرّف.
RTL - 4تاريخ ISO: السنةتُخزَّن أولاً. وبعد الحروف العربية تُرتَّب مجموعات التاريخ من اليمين إلى اليسار، فتظهر السنة في طرفه الأيمن.تغيّر الموضع
- 5تاريخ ISO: الشهريبقى في الوسط.
- 6تاريخ ISO: اليوميُخزَّن أخيراً ويظهر في طرف التاريخ الأيسر، فيبدو التاريخ
03-02-2021.تغيّر الموضع - 7كلمات عربية«من» والاسم الأول في السجل؛ وهنا تنتهي الجملة، عند اليسار.
RTL
الترتيب الظاهر هو ما تحسبه خوارزمية Unicode ثنائية الاتجاه: فالحقل لا يحمل محارف LRM أو RLM أو عوازل تمنعه. وإعادة الترتيب هذه هي ما يكسر النسخ/اللصق والاقتطاع.
كيفية استخدام مولّد بيانات الاختبار العربية
- اختر دولة أو «مختلط» ونظام الأرقام.
- أبقِ حقلي التشكيل وثنائية الاتجاه مفعّلين لاختبارات العرض.
- حدّد العدد والصيغة واضغط «توليد» (Generate).
مزايا مولّد بيانات الاختبار العربية
- أسماء عربية مع النقل الحرفي، وعناوين عربية، وهواتف خاصة بكل دولة للسعودية والأردن والإمارات ومصر
- جمل وكلمات مشكولة (بالتشكيل) وحروف مركّبة
- مبالغ وتواريخ بالأرقام العربية-الهندية أو الغربية
- تواريخ هجرية بأسماء الأشهر العربية
- جمل مختلطة RTL/LTR تتضمن معرّفات لاتينية وتواريخ ISO
- قابل للتوليد ببذرة (seed)؛ مع إخراج بصيغة JSON أو CSV أو SQL أو XML أو JSON Lines أو جدول نصي
مثال على مولّد بيانات الاختبار العربية
سجل عربي
الإدخال:
Country: Saudi Arabia · Digits: Arabic-Indic · Records: 1النتيجة:
{
"nameAr": "سمر نايف الغامدي",
"nameEn": "Samar Nayef Al-Ghamdi",
"phone": "+966 55 991 7486",
"withDiacritics": "شُكْرًا جَزِيلًا",
"ligatures": "الله",
"amount": "٩٨٩٥.٤٧ ر.س",
"dateHijri": "٢٠ جمادى الآخرة ١٤٤٢ هـ",
"mixedBidi": "تم استلام الطلب ORD-84719 بتاريخ 2021-02-03 من سمر"
}الأسئلة الشائعة حول مولّد بيانات الاختبار العربية
ما الذي يجعل البيانات العربية صعبة المعالجة؟
التخطيط من اليمين إلى اليسار، وتشكّل الحروف حسب السياق، والتشكيل، والحروف المركّبة مثل لا والله، ونظاما الأرقام، والاختلاط بالنص اللاتيني. ويختبر كل سجل هذه الجوانب جميعها.
ما الدول المشمولة؟
السعودية والأردن والإمارات ومصر — تتبع الأسماء والعناوين وأرقام الهواتف الدولة المختارة.
كيف تُعالَج التواريخ؟
يحمل كل سجل تاريخاً ميلادياً (بالأرقام العربية-الهندية اختيارياً) وتاريخاً هجرياً بأسماء الأشهر العربية، محسوباً بالتقويم الحسابي.
ما الغرض من حقل النص المختلط ثنائي الاتجاه؟
يضمّن معرّف طلب لاتينياً وتاريخ ISO داخل جملة عربية، وهي حالة كلاسيكية تكسر فيها إعادة ترتيب النص ثنائي الاتجاه النسخ/اللصق والاقتطاع.
ملاحظات تقنية
تُركَّب الأسماء من اسم أول + اسم الأب + اسم العائلة من قوائم مزدوجة عربية/لاتينية (50 اسماً لكل جنس و60 اسم عائلة)، فحقل nameEn نقحرة ثابتة لا رَومنة بالقواعد، وهو أيضاً أساس الجزء المحلي من البريد. وتتبع العناوين السعودية تنسيق العنوان الوطني: رقم مبنى من أربعة أرقام، والحي، ورمز بريدي من خمسة أرقام، ورقم إضافي. ويجمع حقل ligatures بين تتابعات أحرف أساسية تعتمد على تشكيل الخط (لا، الله، لأ) والنقطة الرمزية مسبقة التركيب ﷺ (U+FDFA).
يستبدل وضع الأرقام العربية-الهندية الأرقام 0–9 بـ U+0660–U+0669؛ وتبقى الفاصلة العشرية وشرطات تاريخ ISO بترميز ASCII، وتُوسم المبالغ بالريال (ر.س / SAR) دائماً أياً كانت الدولة. ويُشتق التاريخ الهجري من تحويل رقم اليوم اليولياني (JDN) بالدورة الحسابية ذات الثلاثين عاماً (10,631 يوماً)، ومن هنا احتمال الفارق بيوم عن تقويم أم القرى. وتُبقي جملة mixedBidi رقم الطلب وتاريخ ISO بالأرقام الغربية دون إدراج محارف LRM أو RLM أو عوازل؛ فإعادة الترتيب متروكة لخوارزمية Unicode ثنائية الاتجاه.
المراجع
- The Unicode Standardمجموعة المحارف العالمية وأشكال ترميزها (UTF-8 وUTF-16 وUTF-32) والتطبيع وخصائص كل نقطة ترميز.
- UAX #29: Unicode Text Segmentationكيفية تقسيم النص إلى عناقيد رسومية وكلمات وجمل — ولماذا قد يختلف عدد «الأحرف» عن عدد نقاط الترميز أو البايتات.
- UAX #15: Unicode Normalization Formsصيغ التطبيع NFC وNFD وNFKC وNFKD — سبب اختلاف سلسلتين متطابقتين بصرياً عند المقارنة قبل التطبيع.
- Personal Data Protection Law (English translation)النظام السعودي لحماية البيانات الشخصية — ولماذا ينبغي أن تستخدم بيئات الاختبار بيانات اصطناعية بدلاً من نسخ سجلات العملاء الحقيقية.