सिर्फ़ अंग्रेज़ी नहीं, अरबी और हिंदी टेक्स्ट से क्यों टेस्ट करें?
क्योंकि ग़ैर-लैटिन टेक्स्ट के साथ जो टूटता है उसका ज़्यादातर हिस्सा अंग्रेज़ी में कभी दिखता ही नहीं। अरबी दाएँ-से-बाएँ चलती है और बाएँ-से-दाएँ नंबरों व कोड से मिलती है, उसके अक्षर स्थिति के अनुसार आकार बदलते हैं, और वैकल्पिक मात्राएँ दो "बराबर" स्ट्रिंग को असमान बना देती हैं; हिंदी की देवनागरी व्यंजनों और स्वर-चिह्नों को ऐसे क्लस्टर में जोड़ती है जिन्हें कैरेक्टर काउंटर, ट्रंकेशन या कर्सर ग़लत जगह तोड़ सकता है। लोकेल फ़ॉर्मेट भी अलग हैं — पूर्वी अरबी अंक, हिजरी कैलेंडर, भारतीय अंक-समूहन (1,00,000)। सिर्फ़ अंग्रेज़ी डेटा वाला सूट यह सब बिना टेस्ट छोड़ देता है।
mixedBidi में ISO तारीख़ अरबी अक्षरों के बाद आती है, इसलिए उसके अंकों के समूह दाएँ से बाएँ लगते हैं: स्टोर 2021-02-03 है, दिखता 03-02-2021 है, जबकि ऑर्डर id जस का तस रहता है।जैसा अरबी पंक्ति में दिखता है (दाएँ से पढ़ें)
भाग 1:تم استلام الطلب
जैसा स्टोर होता है: मेमोरी का क्रम, 1 से 7
भाग 1:تم استلام الطلب
- 1अरबी शब्दवाक्य यहीं से, दाईं ओर से, शुरू होता है।
RTL - 2ऑर्डर idलैटिन अक्षर, फिर अंक: बाएँ-से-दाएँ का एक हिस्सा, जो जस का तस रहता है।
LTR - 3अरबी शब्दid के बाद फिर दाएँ-से-बाएँ।
RTL - 4ISO तारीख़: सालपहले स्टोर होता है। अरबी अक्षरों के बाद तारीख़ के समूह दाएँ से बाएँ लगते हैं, इसलिए साल उसके दाएँ सिरे पर दिखता है।जगह बदलती है
- 5ISO तारीख़: महीनाबीच में ही रहता है।
- 6ISO तारीख़: दिनआख़िर में स्टोर होता है, तारीख़ के बाएँ सिरे पर दिखता है: पंक्ति में
03-02-2021दिखता है।जगह बदलती है - 7अरबी शब्द“من” (from) और रिकॉर्ड का पहला नाम; वाक्य यहीं, बाईं ओर, ख़त्म होता है।
RTL
दिखने वाला क्रम वही है जो Unicode Bidi Algorithm निकालता है: फ़ील्ड में उसे रोकने वाले LRM, RLM या isolate control नहीं हैं। यही पुनर्क्रमण कॉपी/पेस्ट और truncation को बिगाड़ता है।
अरबी टेस्ट डेटा जनरेटर कैसे इस्तेमाल करें
- कोई देश या Mixed और अंक-प्रणाली चुनें।
- रेंडरिंग टेस्ट के लिए डायाक्रिटिक और bidi फ़ील्ड चालू रखें।
- संख्या और फ़ॉर्मेट सेट करें और Generate दबाएँ।
अरबी टेस्ट डेटा जनरेटर की खूबियाँ
- ट्रांसलिटरेशन के साथ अरबी नाम, अरबी पते और SA, JO, AE तथा EG के देश-विशिष्ट फ़ोन नंबर
- वाक्य, डायाक्रिटिक (tashkeel) वाले शब्द और ligature
- अरबी-हिंदसी या पश्चिमी अंकों में राशियाँ और तारीख़ें
- अरबी महीनों के नामों के साथ हिजरी तारीख़ें
- मिले-जुले RTL/LTR वाक्य, जिनके भीतर लैटिन id और 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 من سمر"
}अरबी टेस्ट डेटा जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
अरबी डेटा संभालना मुश्किल क्यों होता है?
दाएँ-से-बाएँ लेआउट, संदर्भ के अनुसार अक्षरों का आकार बदलना, डायाक्रिटिक (tashkeel), لا और الله जैसे ligature, दो अंक-प्रणालियाँ और लैटिन टेक्स्ट के साथ मिलावट। हर रिकॉर्ड इन सबको जाँचता है।
इसमें कौन-से देश शामिल हैं?
सऊदी अरब, जॉर्डन, UAE और मिस्र — नाम, पते और फ़ोन नंबर चुने हुए देश के अनुसार बनते हैं।
तारीख़ें कैसे संभाली जाती हैं?
हर रिकॉर्ड में एक ग्रेगोरियन तारीख़ (चाहें तो अरबी-हिंदसी अंकों में) और अरबी महीनों के नामों वाली एक हिजरी तारीख़ होती है, जो tabular कैलेंडर से निकाली जाती है।
मिला-जुला bidi फ़ील्ड किस काम आता है?
यह एक अरबी वाक्य के भीतर लैटिन ऑर्डर id और ISO तारीख़ बिठा देता है — वही क्लासिक स्थिति जहाँ bidi पुनर्क्रमण कॉपी/पेस्ट और छँटाई (truncation) को बिगाड़ देता है।
तकनीकी नोट्स
नाम अरबी/Latin जोड़ीदार सूचियों (हर gender के 50 नाम, 60 कुलनाम) से given + पिता + family name से बनते हैं, इसलिए nameEn नियम-आधारित romanisation नहीं बल्कि तय transliteration है, और e-mail का local part भी यही है। सऊदी पते National Address लेआउट पर हैं: 4-अंकीय building number, حي (district), 5-अंकीय postal code और additional number। ligatures फ़ील्ड में shaping-निर्भर base-letter क्रम (لا, الله, لأ) और precomposed code point ﷺ (U+FDFA) मिले-जुले हैं।
Arabic-Indic मोड सिर्फ़ 0–9 को U+0660–U+0669 बनाता है; decimal point और ISO hyphen ASCII रहते हैं, और amount हर देश में riyal (ر.س / SAR) है। Hijri तारीख़ Julian Day Number और 30-वर्षीय arithmetic चक्र (10,631 दिन) से निकलती है, इसलिए Umm al-Qura से 1 दिन का फ़र्क़ संभव है। mixedBidi में order id और ISO तारीख़ Western अंकों में हैं, बिना LRM, RLM या isolate control के; reordering Unicode Bidi Algorithm पर है।
संदर्भ
- The Unicode Standardसार्वभौमिक कैरेक्टर सेट और उसके एन्कोडिंग रूप (UTF-8, UTF-16, UTF-32), नॉर्मलाइज़ेशन और हर कोड पॉइंट के गुण।
- UAX #29: Unicode Text Segmentationटेक्स्ट को ग्रैफ़ीम क्लस्टर, शब्दों और वाक्यों में कैसे बाँटा जाता है — "कैरेक्टर" की गिनती कोड-पॉइंट या बाइट की गिनती से क्यों अलग हो सकती है।
- UAX #15: Unicode Normalization FormsNFC, NFD, NFKC और NFKD रूप — वजह कि दिखने में एक जैसी दो स्ट्रिंग नॉर्मलाइज़ किए बिना असमान निकल सकती हैं।
- Personal Data Protection Law (English translation)व्यक्तिगत डेटा पर सऊदी कानून — टेस्ट वातावरण में असली ग्राहक रिकॉर्ड की प्रतियों के बजाय सिंथेटिक डेटा क्यों इस्तेमाल करना चाहिए।