Help:एक्सटेंशन:अनुवाद/असंरचित तत्वों का अनुवाद

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 100% complete.

इस पृष्ठ पर इस बारे में जानकारी है कि अनुवाद एक्सटेंशन की मदद से अनुकूलित विकि इंटरफ़ेसों के किस तरह से प्रबंधित करने योग्य बनाया जा सकता है। यह विकि के हर हिस्से पर लागू होगा जिसे आप सदस्य के इंटरफ़ेस की भाषा के अनुसार बदलना चाहते हैं। सबसे साधारण उदाहरण है साइडबार, क्योंकि यहाँ सिर्फ एक ही हो सकता है, मगर इसी तरीके का इस्तेमाल मुख्य पृष्ठ पर किया जा सकता है, अगर आप इसके सभी अनुवादों को एक ही शीर्षक पर रखना चाहते हैं, या फिर साँचों पर भी।

यह तरीका विकि की सामग्री पर भी लागू होता है जहाँ पूरे पृष्ठ का अनुवाद जँचता नहीं, जैसे कठिन मार्कअप वाले पृष्ठ, जिसका मार्कअप आप अनुवादकों को नहीं दिखाना चाहेंगे। सब कुछ इंटरफ़ेस संदेशों, या {{int:}} जादूई शब्द के आधार पर है, जिससे आप विकिटेक्स्ट की अनुमति वाले किसी भी जगह पर सिस्टम संदेश जोड़ सकते हैं। इस जादुई शब्द से आप इंटरफ़ेस संदेश को इंटरफ़ेस की भाषा में बदल सकते हैं, चाहिए वह अनुकूलित हो या फिर नया।

आप इससे विकि के इंटरफ़ेस के स्वचालित स्थानीयकरण की ताक़त को विकि की सामग्री पर ला सकते हैं, मगर यह गुमनाम सदस्यों की समस्या को सुलझाता नहीं, क्योंकि वे डिफॉल्ट से इंटरफ़ेस की भाषा को नहीं बदल सकते। नीचे वैश्विक भाषा सिलेक्टर एक्सटेंशन के बारे में टिप्पणी देखें।

पृष्ठ अनुवाद के मुक़ाबले, इस तरीके में कुछ अवगुण हैं:

  1. मीडियाविकि के विकासक आम तौर पर {{int:}} के इस्तेमाल को हतोत्साहित करते हैं क्योंकि इससे कैश के अलग-अलग हिस्से बन जाते हैं। पृष्ठ के एक कैश पर रेंडर किए गए संस्करण को रखने की जगह जब {{int:}} का इस्तेमाल किया जाता है, इसे सैकड़ों भाषाओं में कैश किया जाता है।
  2. इसे सेट करना काफ़ी मुश्किल है, और इसमें विकि के कॉन्फ़िगरेशन तक पहुँच की ज़रूरत है।
  3. कालग्रस्त अनुवादों के लिए कोई स्वचालित ट्रैकिंग नहीं है, और नए संदेशों के जोड़े या हटाए जाने पर पूर्णता सांख्यिकी बंद हो सकती है।
  4. सिर्फ विकि के प्रबंधक ही संदेश समूहों पर संदेश जोड़कर उन्हें अनुवादित कर सकते हैं। इसका मतलब है कि इस सिस्टम का इस्तेमाल सिर्फ उन्हीं पृष्ठों पर किया जा सकता है जिन्हें अकसर बदला नहीं जाता, वरना प्रबंधकों के पास काम का ढेर हो जाएगा।

अच्छी बात यह है कि यह ज़्यादातर समय ठीक से काम करता है और यह आपका काम किसी तरह कर देगा। साधारण उपयोग को दर्शाने वाले दो ट्यूटोरियल हैं। इससे पहले एक अनुभाग है जिसमें दर्शाया गया है कि एक संदेश समूह को कैसे सेटअप किया जाता है, जिसका इस्तेमाल इस तरीके में अकसर होता है।

सेटअप करना

यह चरण एक सर्वर प्रबंधक को करना होगा। LocalSettings.php पर इस स्निपेट को जोड़ना होगा:

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'साइडबार' );
	$mg->setDescription( 'इस विकि के साइडबार पर उपयुक्त संदेश।' );
	$list[$id] = $mg;
	return true;
};

संदेश समूह ID, wiki-sidebar, को अनूठा होना होगा, ताकि कई समूहों के पास समान ID न हो। WikiMessageGroup रचनाकार का दूसरा पैरामीटर, WikiMessageGroup, WikiMessageGroup को सन्दर्भित करता है। इस लेबल को ड्रॉपडाउनों और दूसरी जगहों पर दिखाया जाता है जहाँ आप संदेश समूह चुन सकते हैं। विवरण Special:Translate पर दिखाया जाता है। नया अनुकूलित संदेश समूह जोड़ते समय ये वैल्यू हैं जिन्हें आपको अपने विकि की आवश्यकताओं के अनुसार बदलना चाहिए।

स्थानीयकृत साइडबार का ट्यूटोरियल

हम मान लेंगे कि सेटअप का चरण पहले ही पूरा कर लिया गया है। इसके बाद आपको ध्यान से साइडबार अनुकूलन गाइड का पालन करना है। चलिए मान लेते हैं कि यह साधारण-सा साइडबार बनाया गया है:

* sidebar-commonpages
** FAQ|sidebar-faq

और [[MediaWiki:Sidebar-commonpages]] में Common pages है, जबकि [[MediaWiki:Sidebar-faq]] में Frequently asked questions है।

इसके बाद हमें बस [[MediaWiki:Sidebar-messages]] (या जो भी पिछले चरण में परिभाषित किया गया है) पर जाना है और वहाँ पर लिखना है:

sidebar-commonpages sidebar-faq

यानी, "MediaWiki:" नामस्थान-उपसर्ग के बिना सिस्टम संदेशों के नामस्थान, जिसे वाइटस्पेस के अलग किया गया है।

फिर [[Special:Translate/wiki-sidebar]] (या जो भी पिछले चरण में परिभाषित किया गया है; परिभाषित समूहों की सूची के लिए [[Special:Translate]] देखें) पर जाएँ। अब संदेशों को दूसरी भाषाओं में अनुवादित करना संभव है। क्योंकि सभी संदेश मीडियाविकि नामस्थान में हैं, सिर्फ इंटरफ़ेस प्रबंधक संदेशों की सूची को संपादित कर सकते हैं और उन्हें अनुवादित कर सकते हैं।

स्थानीयकृत मुखपृष्ठ का ट्यूटोरियल

साधारण उपयोग का एक और मामला है काफ़ी सारे मार्कअप वाला पृष्ठ, या कोई साँचा। इसका गुण है कि भाषा अपने आप सदस्य के इंटरफ़ेस की भाषा में आ जाता है। इसका अवगुण यह है कि दिखाई जाने वाली भाषा को बदलने के लिए इंटरफ़ेस की भाषा को बदलना होगा।

प्रवर्तन पिछले ट्यूटोरियल जैसा ही है:

  1. एक नया संदेश समूह बनाएँ।
  2. विकि का कोई पृष्ठ लें।
  3. हर अनुवाद-योग्य पृष्ठ को {{int:Mainpage-messagename}} से बदल दें और सामग्री को [[MediaWiki:Mainpage-messagename]] पर ले जाएँ।
  4. [[MediaWiki:Mainpage-messages]] (या फिर सेटअप में जो भी परिभाषित किया गया है) पर जाएँ और वाइटस्पेस से अलग करके संदेशों के नाम जोड़ दें।
  5. काम हो गया। {{int:Mainpage-messagename}} पर जाकर मुखपृष्ठ को अनुवादित करें।

यह रहा एक उदाहरण। चलिए मान लेते हैं [[Main Page]] में है:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} बावर्चियों और नानबाइयों के लिए एक समुदाय है।''
</div>
हमारे पास इस समय चॉकलेट से भरे {{NUMBEROFPAGES}} पृष्ठ हैं।

फिर इसे इसमें बदलें:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

इसके साथ [[MediaWiki:Mainpage-slogan]] बनाएँ:

{{SITENAME}} चॉकलेट पसंद करने वाले बावर्चियों और नानबाइयों के लिए एक समुदाय है।

इसके साथ [[MediaWiki:Mainpage-pagecount]] बनाएँ:

हमारे पास इस समय चॉकलेट से भरे {{NUMBEROFPAGES}} पृष्ठ हैं।

इसके साथ [[MediaWiki:Mainpage-messages]] बनाएँ:

mainpage-slogan mainpage-pagecount

और काम हो गया! अब आप किसी भी समय नए संदेश जोड़ और हटा सकते हैं।

भाषा का चुनाव

सिर्फ यही बात नहीं है कि सदस्य अपने वरीयताओं को बदले बिना यह नहीं चुन सकते कि पृष्ठ का कौन-सा स्थानीयकृत संस्करण पढ़ना है, बल्कि गुमनाम सदस्य अपने सदस्य इंटरफ़ेस भाषा को तक सेट नहीं कर सकते, और वे हमेशा विकि के डिफ़ॉल्ट भाषा में पढ़ेंगे। अगर आप गुमनाम सदस्यों को अपनी भाषा चुनने का कोई तरीका नहीं देते तो इस सिस्टम से अनुवादित किए गए पृष्ठ उनके लिए डिफ़ॉल्ट भाषा में होंगे।

गनीमत यह है कि समाधान है। UniversalLanguageSelector एक्सटेंशन की मदद से सदस्य की प्राथमिक भाषा का अंदाज़ा लगाना आसान होता है और इससे सदस्य खुद दूसरी भाषा चुनकर विकल्प को एक कुकी में रख सकता है, जिससे uselang पैरामीटर जैसे करतबों की ज़रूरत नहीं होगी, जिसका इस्तेमाल ज़्यादातर बस डीबग करने के लिए किया जाता है।