मैं एमवीसी पैटर्न का उपयोग शुरुआती स्थिति के रूप में एक बहुभाषी वेब अनुप्रयोग बना रहा हूं। एप्लिकेशन में कई रूप हैं जिन पर उपयोगकर्ता बातचीत करेंगे और इनमें से कई रूपों में ऐसे फ़ील्ड होंगे जो डेटाबेस तालिका, उदाहरण के लिए 'प्रांत' से लुकअप करते हैं।एमवीसी पैटर्न में भाषा अनुवाद कहां फिट है?
मैं इन सूचियों स्क्रीन पर उपयोगकर्ताओं की भाषा में प्रदर्शित करने के लिए में विकल्प की जरूरत है, मैं तरीके यह करने के लिए की एक जोड़ी देख सकते हैं:
- मॉडल में। मॉडल से पूछताछ करते समय, मैं उस भाषा को प्रदान कर सकता हूं जिसे मैं परिणामों को वापस लौटने की इच्छा करता हूं। यह हर जगह अनुवादों को उपयोग करने की अनुमति देगा कि मॉडल के डेटा को बिना परिवर्तन किए प्रदर्शित किया जाता है। हालांकि, इसका यह भी अर्थ है कि मेरे उदाहरण में प्रांत मॉडल (साथ ही अन्य सभी एप्लिकेशन मॉडल) अब भाषा अनुवाद करने के तरीके को जानने की जरूरत है।
- नियंत्रक में। मैं सामान्य रूप से नियंत्रक कार्रवाई में मॉडल से पूछताछ कर सकता हूं और फिर 'ट्रांसलेटर' ऑब्जेक्ट बना सकता हूं जिसे मैं कार्रवाई को पूरा करने से पहले परिणाम पास कर सकता हूं। यह इंगित करेगा कि प्रत्येक नियंत्रक कार्रवाई संभावित रूप से उसी अनुवाद कोड को डुप्लिकेट कर देगी, जो DRY सिद्धांत का उल्लंघन करती है।
- दृश्य में। चूंकि आवेदन की प्रस्तुति आम तौर पर विचारों में मौजूद होने की उम्मीद है, और उपयोगकर्ता की भाषा प्रणाली के व्यावसायिक तर्क को प्रभावित नहीं करती है, इसलिए एक तर्क दिया जा सकता है कि भाषा अनुवाद यहां हैं। विशेष रूप से इस बात पर विचार करते हुए कि एक पृष्ठ में स्थैतिक सामग्री भी हो सकती है जिसे अनुवादित करने की आवश्यकता होगी। इसका नकारात्मक पक्ष यह है कि यह कुछ हद तक विचारों को जटिल करेगा, खासतौर पर सामने वाले डिजाइनरों के लिए जिन्हें नए अनुवाद कोड के आसपास काम करना होगा।
क्या वेब अनुप्रयोगों के लिए एमसीवी पैटर्न में पाठ अनुवाद कहां से एक स्वीकार्य सर्वोत्तम अभ्यास है? क्या यह बिल्कुल बदलता है अगर मैं पृष्ठ लोड समय के बजाय एक AJAX कॉल के माध्यम से चयन सूची विकल्प लोड करना चाहता था?
सहायता के लिए धन्यवाद!
मुझे लगता है कि यह वसा मॉडल/पतला नियंत्रकों और पतला मॉडल/वसा नियंत्रकों के बीच बहस को खोल देगा। क्या मैं सही हूं कि आपके पास नियंत्रकों में आपका व्यावसायिक तर्क होगा? –
@WallyLawless कभी भी किसी ने वसा नियंत्रकों के लिए बहस नहीं सुना। नियंत्रक देखने के लिए मॉडल और मॉडल देखने के लिए अनुवाद करने वाली एक पतली परत हैं। नियंत्रकों को आमतौर पर पुन: उपयोग नहीं किया जाता है, वे केवल गोंद हैं, गोंद के साथ अपना कोड भरें नहीं। –