PHP content management systemएक्स्टेंसिबल बनाने के लिए, भाषा अनुवाद महत्वपूर्ण हैं। मैं एक अनुवाद प्रणाली के लिए प्रोग्रामिंग दृष्टिकोण की खोज कर रहा था, और मैंने सोचा कि Qt Linguist एक अच्छा उदाहरण था।अनियमित नियमों के साथ भाषाओं में अनुवाद
यह क्यूटी प्रलेखन से एक उदाहरण उपयोग है:
int n = messages.count();
showMessage(tr("%n message(s) saved", "", n));
क्यूटी ज्ञात भाषा के नियमों का उपयोग निर्धारित करने के लिए "message
" है एक "s
" अंग्रेजी में संलग्न।
जब मैं अपने विकास दल के साथ कि उदाहरण के पालन-पोषण, वे एक ऐसा मुद्दा है को जोखिम में डाल मॉडलिंग की तानाना प्रभावशीलता क्यूटी के tr()
समारोह के बंद की खोज की।
यह एक समान उदाहरण है, सिवाय इसके कि अब कुछ गंभीरता से गलत है।
int n = deadBacteria.count();
showMessage(tr("%n bacterium(s) killed", "", n));
"bacterium
" का बहुवचन "bacteria
" है। "s
" संलग्न करना अनुचित है।
मुझे क्यूटी भाषाविद् के साथ बहुत अधिक अनुभव नहीं है, लेकिन मैंने नहीं देखा है कि यह अनियमित संयोग और रूपों को कैसे प्रबंधित करता है।
एक और जटिल वाक्यांश "%n cactus(s) have grown."
हो सकता है। बहुवचन "cactii
" होना चाहिए, और "have
" को एक कैक्टस होने पर "has
" से संगत होने की आवश्यकता है।
आपको लगता है कि तार्किक सुधार इन अनियमित शब्दों से बचने के लिए है क्योंकि इन्हें प्रोग्रामिंग में उपयोग नहीं किया जाता है। खैर, यह दो तरह से उपयोगी नहीं है:
- शायद वहाँ एक भाषा है कि एक अनियमित तरीके से संज्ञाओं को संशोधित करता है, भले ही स्रोत स्ट्रिंग अंग्रेजी में काम करता है,
"%n message(s) saved"
की तरह है। MyImaginaryLanguage में, उचित तरीके से अनुवादित स्ट्रिंग के रूप में हो सकता है "1Message बचाया", "M2essage बचाया" क्रमश:%n
मूल्यों1
,2
, और3
, के लिए "Me3ssage बचाया", और यदि ऐसा नहीं होता क्यूटी लिंगुइस्ट के समान दिखने के नियम हैं। - एक सीएमएस एक्स्टेंसिबल बनाने के जैसे मैं की जरूरत है मेरा होने के लिए, वेब अनुप्रयोगों के सभी प्रकार के कारक की जरूरत है। किसी ने निर्माण कर सकते हैं एक role-playing game कि वाक्य की आवश्यकता की तरह निर्माण किया जा करने के लिए "5 नागफनी हो गए हैं।" या हो सकता है एक सुरक्षा सॉफ्टवेयर कहा, "ClamAV 2 वायरस नहीं मिला।" के रूप में विरोध किया चाहता है "ClamAV 2 वायरस (ते) पाया।"
यदि अन्य क्यूटी डेवलपर्स इस के लिए एक समाधान है देखने के लिए ऑनलाइन खोज करने के बाद समस्या और कोई भी नहीं ढूंढ रहा, मैं स्टैक ओवरफ़्लो आया था।
- क्या एक्स्टेंसिबल और प्रभावी प्रोग्रामिंग तकनीक संभव अनियमित नियमों के साथ स्ट्रिंग का अनुवाद करने के लिए इस्तेमाल किया जाना चाहिए:
मैं जानना चाहता हूँ?
- क्यूटी प्रोग्रामर और अनुवादक क्या करते हैं यदि उन्हें यह अनियमितता समस्या आती है?
मैं क्यूटी बारे में कुछ पता नहीं है, लेकिन शायद आप एक विस्तार है जो एकवचन/दोहरी/बहुवचन अंत पार्स कोड सकता है? 'बैक्टीरी (ए/उम)', '(1 मैसेज/एम 2essage/Me3ssage) 'एक उदाहरण होगा जिसके लिए एक और काम की आवश्यकता होगी और हालांकि कम गतिशील हो। – Cyclone