हम हर अनुवाद की जाँच कैसे करते हैं
इस ब्लॉग में ग्यारह भाषाओं में 64 पोस्ट हैं: 704 पंक्तियाँ और लगभग 22 लाख अक्षर। किसी भी भाषा में कोई पोस्ट गायब नहीं है, और यह दावा तभी कुछ मायने रखता है, जब कोई चीज़ इसे लागू करवाती हो।
ऐसी चीज़ है। अनुवादित पंक्ति लिखे जाने से पहले उसकी जाँच अंग्रेज़ी मूल से की जाती है, और जो पंक्ति जाँच में फ़ेल हो जाए, वह लिखी ही नहीं जाती — उसकी रिपोर्ट होती है और उसे किसी व्यक्ति के देखने के लिए छोड़ दिया जाता है।
हर जाँच किसलिए है
एक जैसे लिंक लक्ष्य। अनुवाद के दौरान किसी आंतरिक पाथ को बदलना नहीं चाहिए: /privacy हर भाषा में /privacy ही रहता है, और भाषा का प्रीफ़िक्स पेज बनते समय जोड़ा जाता है। जो अनुवादक — इंसान हो या कुछ और — मदद के इरादे से पाथ का अनुवाद कर देता है, वह ऐसा लिंक बनाता है जो कहीं नहीं पहुँचता।
एक जैसे प्लेसहोल्डर। कुछ पोस्ट में ऐसे आँकड़े होते हैं, जो पेज बनते समय भरे जाते हैं, ताकि वे कभी पुराने न पड़ें। जो अनुवाद इनमें से किसी को छोड़ देता है, उससे एक संख्या गायब हो जाती है; जो कोई नया गढ़ लेता है, उससे वाक्य के बीच में एक ब्रेस आ जाता है।
हर टैग की एक जैसी संख्या। सिर्फ़ संतुलित टैग नहीं, बल्कि ठीक उतने ही, जितने अंग्रेज़ी में हैं। यही वह जाँच है जो अपनी जगह की हकदार साबित होती है: खोई हुई टेबल पंक्ति, छूटा हुआ लिस्ट आइटम या गायब डायग्राम बाकी हर टेस्ट से छिप जाता है, क्योंकि नतीजा फिर भी वैध HTML होता है, जो पढ़ने में बिल्कुल ठीक लगता है।
एक दायरे के भीतर लंबाई। अंग्रेज़ी के आधे से ढाई गुना तक। भाषाओं की लंबाई सचमुच अलग-अलग होती है, इसलिए दायरा चौड़ा है; यह जो पकड़ता है, वह ऐसा अनुवाद है जो आधे रास्ते में रुक गया।
इसने क्या पकड़ा, और क्या गलती से पकड़ा
एक असली पकड़: एक फ़्रेंच अनुवाद में चार शब्दों पर ज़ोर दिया गया था, जबकि अंग्रेज़ी में तीन पर, क्योंकि एक नकारात्मक वाक्यांश को दो टुकड़ों में मार्कअप किया गया था। देखने में कुछ गलत नहीं था। गिनती में था।
दो झूठे अलार्म, दोनों एक ही दिन, और दोनों से कुछ सीखने को मिला।
पहला: एक पोस्ट में CSS की एक लाइन उद्धृत है, और CSS के अंत में आता है }}। ब्रेस जाँच दोनों तरह के ब्रेस गिनती थी, हर {{ और हर }}, इसलिए उस पोस्ट का हर अनुवाद फ़ेल हुआ, जबकि कुछ भी गलत नहीं था। जिस }} के साथ कोई {{ न हो, वह टूटा हुआ प्लेसहोल्डर नहीं हो सकता — प्लेसहोल्डर {{ से शुरू होते हैं — इसलिए अब सिर्फ़ खुलने वाली तरफ़ गिनी जाती है।
दूसरा: <rect/> और <path/> का कोई बंद करने वाला टैग नहीं होता, इसलिए संतुलन वाला टेस्ट उन्हें हमेशा असंतुलित बताता है। अब खाली एलिमेंट गिने जाते हैं, उनका संतुलन नहीं जाँचा जाता।
दोनों की वजह से एक दौर का काम करना पड़ा, और दोनों बार जाँच ज़रूरत से ज़्यादा सख्त थी, ढीली नहीं। चूकने की यह बेहतर दिशा है, लेकिन यह मुफ़्त नहीं: जो जाँच बेवजह अलार्म बजाती रहती है, उसे जल्दी में कोई ढीला कर देता है, और फिर जब उसकी ज़रूरत होती है, तब वह वहाँ नहीं होती।
सबसे अहम टेस्ट
जब पोस्ट में डायग्राम जोड़े गए, तो टैग जाँच को उन तक बढ़ाया गया। इस पर भरोसा करने के बजाय जाँच को परखा गया: एक अनुवाद से जान-बूझकर एक डायग्राम हटाया गया और इम्पोर्टर चलाया गया।
उसने ठीक वही बताया जो गायब था — डायग्राम, उसके दस लेबल, उसके चार आयत, उसके सात पाथ — और पंक्ति लिखने से मना कर दिया। डायग्राम वापस लगाया गया और जाँच फिर से पास हुई।
इसमें दो मिनट लगे। जिस जाँच को कभी फ़ेल होते नहीं देखा गया, उसके काम करने को बस मान लिया गया है, और मान लेना ही वह चीज़ है जिससे बचने के लिए यह सब मौजूद है।