देश बनाम भाषा का भेद ऐसा है जिस पर सब सिद्धांत में सहमत होते हैं और पहले ही फ़िक्स्चर में उसका उल्लंघन कर देते हैं। परीक्षण मैट्रिक्स एक पंक्ति प्रति भाषा लिखी जाती है, डेटा को वास्तविक दिखाने के लिए हर पंक्ति से एक देश जोड़ दिया जाता है, और दोनों अक्ष चुपचाप एक हो जाते हैं।
यह लेख उन दोनों को अलग करता है। यह उन तीन परतों का वर्णन करता है जिन्हें स्थानीयकरण शब्द आम तौर पर छिपा देता है, यह कि भाषा टैग और क्षेत्र कोड अलग-अलग काम क्यों करते हैं, और यह कि दो अक्षों से नमूने कैसे लें बिना यह दिखावा किए कि वे एक ही अक्ष हैं।
देश और भाषा एक-दूसरे से निकाले क्यों नहीं जा सकते?
एक भाषा कई देशों में राजभाषा हो सकती है, और एक देश में कई राजभाषाएँ हो सकती हैं। इस संबंध की दोनों दिशाएँ बहुवचन हैं, इसलिए कोई भी मान दूसरे को तय नहीं करता।
परीक्षण के लिए नतीजा तुरंत दिखता है। यदि हर भाषा को ठीक एक देश से जोड़ दिया जाए, तो मैट्रिक्स का आकार विकर्ण जैसा हो जाता है: उसमें वही जोड़े रह जाते हैं जो किसी को स्वाभाविक लगे और बाकी कोई नहीं। दिलचस्प विफलताएँ उस विकर्ण के बाहर रहती हैं — एक ही भाषा का अलग प्रारूप दिखाना, और एक ही प्रारूप का अलग भाषा के नीचे आना।
दूसरा परिणाम इससे भी बारीक है। चूँकि विकर्ण वाले जोड़े मैट्रिक्स लिखने वाले को सांस्कृतिक रूप से परिचित लगते हैं, वही जोड़े ऐसे भी होते हैं जहाँ टीम की मान्यताएँ सही होने की सबसे अधिक संभावना रखती हैं। मैट्रिक्स ठीक वहीं सबसे मज़बूत होती है जहाँ उसकी ज़रूरत सबसे कम है।
स्थानीयकरण असल में तीन परतें हैं
स्थानीयकरण को तीन निर्णयों की तरह देखें जो संयोग से एक ही शब्द साझा करते हैं।
| परत | यह जो प्रश्न हल करती है | सामान्य ज़िम्मेदारी |
|---|---|---|
| इंटरफ़ेस भाषा | लेबल, बटन और संदेश किस भाषा में हैं? | सामग्री या उत्पाद |
| सामग्री क्षेत्र | किस बाज़ार के नियम, दाम और प्रस्ताव लागू होते हैं? | व्यवसाय |
| डेटा प्रारूप | तारीख़, संख्या, नाम और पते किन परंपराओं से चलते हैं? | डेटा या अभियांत्रिकी |
हर परत स्वतंत्र रूप से तय की जा सकती है, और वास्तविक सिस्टमों में अक्सर की जाती है। कोई पाठक एक भाषा में पढ़ सकता है, जिस बाज़ार की यात्रा पर वह है उसके नियम पा सकता है, और ऐसा पता भर सकता है जो तीसरी जगह की परंपराओं से चलता है।
तीनों परतें अलग हो जाने पर स्थानीयकरण के अधिकतर दोष वर्णनीय हो जाते हैं। दोष वह मामला है जहाँ दो परतों के साथ-साथ चलने की मान्यता थी और वे साथ नहीं चलीं।
भाषा टैग और क्षेत्र कोड के काम अलग हैं
भाषा टैग पाठ का वर्णन करता है। वह बताता है कि कोई पाठ किस भाषा में लिखा है और कभी-कभी किस लिपि या रूप में। क्षेत्र कोड उन परंपराओं का वर्णन करता है जिनसे कोई मान चलता है: तारीख़ का क्रम क्या है, संख्या में विराम कहाँ लगता है, नाम का विन्यास कैसा है।
ये एक-दूसरे की जगह नहीं ले सकते, और एक दूसरे का अधिक सटीक रूप भी नहीं है। जो सिस्टम केवल भाषा टैग संचित करता है, उसने तारीख़ समझने के लिए ज़रूरी जानकारी फेंक दी है, और जो केवल क्षेत्र कोड संचित करता है, उसने संदेश सूची चुनने की जानकारी फेंक दी है।
दोनों रखना अतिरेक नहीं है; यह दिखाई देने वाले पृष्ठ का वर्णन करने के लिए न्यूनतम आवश्यक है। जिस बग पर नज़र रखनी है वह दूसरी दिशा का शॉर्टकट है — भाषा टैग को डेटा प्रारूप का स्विच बना देना, जो ठीक उस पहले देश तक काम करता है जो अपनी भाषा किसी दूसरे देश के साथ साझा करता है।
जब प्रारूप भाषा के पीछे चलता है तो क्या टूटता है?
क्लासिक विफलता यह है कि कोई मान गलत देश की परंपराओं पर जाँचा जाता है क्योंकि दोनों एक भाषा साझा करते हैं। उपयोगकर्ता की भाषा ठीक से तय है, प्रारूप नियम उसी भाषा से चुना जाता है, और मान अस्वीकार कर दिया जाता है, भले ही वह उस देश के लिए बिलकुल सही बना हो जिसमें वह वास्तव में रहता है।
शांत रूप भी हैं। ऐसी नाम फ़ील्ड जो भागों का क्रम इसलिए बदल देती है कि इंटरफ़ेस किसी एक भाषा में है, इसलिए नहीं कि वह रिकॉर्ड उस क्रम वाले क्षेत्र का है। ऐसी संख्या फ़ील्ड जो गलत परंपरा का दशमलव चिह्न स्वीकार कर लेती है और ऐसा मान संचित कर देती है जो कई गुना हटा हुआ है। ऐसी तारीख़ जिसे एक जगह दिन-पहले और दूसरी जगह महीना-पहले पढ़ा जाता है और जो रिपोर्ट में एक विश्वसनीय पर गलत क्षण के रूप में पहुँचती है।
इनमें से कोई भाषा की समस्या नहीं है। ये सब ऐसे मामले हैं जहाँ क्षेत्र का निर्णय भाषा के इनपुट से लिया गया, और उपाय संरचनात्मक है, कोई बेहतर खोज तालिका नहीं।
परीक्षण मैट्रिक्स को दो अक्षों से नमूने कैसे लेने चाहिए?
हर अक्ष से उसकी अपनी शर्तों पर नमूने लें, फिर हर खाने के बजाय कुछ जानबूझकर चुने हुए जोड़ों को काटें।
भाषा अक्ष से शुरू करें और ऐसी प्रविष्टियाँ चुनें जो इंटरफ़ेस की ज़रूरत में भिन्न हों: ऐसी भाषा जो पाठ को काफ़ी बढ़ा देती है, ऐसी जिसे अलग लिपि चाहिए, ऐसी जिसके छँटाई नियम लातिनी डिफ़ॉल्ट से अलग हैं। फिर क्षेत्र अक्ष को अलग लें और ऐसी प्रविष्टियाँ चुनें जो डेटा की ज़रूरत में भिन्न हों: ऐसा क्षेत्र जहाँ कोई फ़ील्ड मौजूद ही नहीं, ऐसा जहाँ मान असामान्य रूप से लंबा है, ऐसा जिसकी परंपराएँ अपनी भाषा साझा करने वाले पड़ोसी से टकराती हैं।
सबसे मायने रखने वाले जोड़े विकर्ण के बाहर वाले हैं — एक ही भाषा दो क्षेत्रों में, और एक ही क्षेत्र में दो भाषाएँ। वे चार खाने उस वर्ग के दोष पकड़ते हैं जिन्हें एक भाषा एक देश कभी व्यक्त नहीं कर सकता, और अक्ष अलग संचित होने पर उन्हें जोड़ना सस्ता है।
नाम और पाठ हर लोकेल में कैसे व्यवहार करते हैं, इसके भाषाई विवरण के लिए लोकेल के अनुसार नाम डेटा पर अलग मार्गदर्शिका है, जो भाषा अक्ष के साथ रहती है; यह लेख क्षेत्र अक्ष के बारे में है।
डेवलपरों के लिए: प्रारूप को क्षेत्र चलाए
दोनों मान संचित करें, और स्पष्ट रहें कि कौन सा निर्णय कौन चलाता है। प्रारूप नियम क्षेत्र से चुने जाने चाहिए; संदेश सूचियाँ और पाठ विन्यास भाषा से चुने जाने चाहिए; और दिखाने के समय एक को दूसरे से निकाला नहीं जाना चाहिए।
दोनों सेटिंग्स को अपने विन्यास में अलग-अलग जगह रखें, ऐसे नामों के साथ जो बताएँ कि वे क्या हैं। जो फ़ील्ड भाषा टैग रखती है उसे लोकेल कहना अगले डेवलपर को उसे क्षेत्र की तरह इस्तेमाल करने का स्थायी न्योता है। जो फ़ील्ड क्षेत्र कोड रखती है उसे कभी उस भाषा के रूप में नहीं बताया जाना चाहिए जो उपयोगकर्ता बोलता है।
फिर परीक्षणों में इस अलगाव को अभिकथित करें। ऐसा परीक्षण जो एक भाषा को कई क्षेत्रों में दिखाता है और एक क्षेत्र को कई भाषाओं में, उसी क्षण ज़ोर से विफल होता है जब कोई वह शॉर्टकट दोबारा ले आता है। देश और क्षेत्र निर्देशिका और जापान प्रविष्टि जैसा देश पृष्ठ दिखाते हैं कि एक देश की परंपराएँ साथ रखे जाने पर कैसे वर्णित होती हैं, जो भाषा के नाम से अधिक भरोसेमंद संदर्भ है।
यहाँ कुछ भी वास्तविक ट्रैफ़िक का वर्णन नहीं पढ़ा जाना चाहिए। इस लेख में उदाहरण के तौर पर लिए गए भाषा और क्षेत्र के जोड़े बनाए गए नमूनाकरण चुनाव हैं, किसी वास्तविक उपयोगकर्ता समूह के अवलोकन नहीं, और वे यह नहीं बताते कि कोई कहाँ रहता है या क्या बोलता है।
आगे के कदम
अपनी टीम के किसी एक स्क्रीन के लिए तीनों परतें लिखें, और हर एक को कौन सा मान खिलाता है यह नाम लें। यदि दो परतों को एक ही मान खिला रहा है, तो आपने वह शॉर्टकट ढूँढ़ लिया है। देश चयन फ़ील्ड का परीक्षण करने की मार्गदर्शिका क्षेत्र अक्ष को उसी नियंत्रण तक ले जाती है जिसे उपयोगकर्ता वास्तव में छूता है, और क्षेत्र समूह तथा बाज़ार श्रेणियों की मार्गदर्शिका बताती है कि क्षेत्र स्वयं परिभाषित कैसे होते हैं। दोनों यहाँ पढ़ें: देश चयन फ़ील्ड का परीक्षण और क्षेत्र समूह और बाज़ार श्रेणियाँ।