Extension:UniversalLanguageSelector/hi

वैश्विक भाषा चयनकर्ता एक उपकरण है जिसकी मदद से सदस्य आसानी से भाषा चुनकर इसका समर्थन कॉन्फ़िगर कर सकते हैं। इसमें और, दोनों एक्सटेंशनों की भी कार्यक्षमताएँ शामिल हैं (जिस वजह से इन्हें कालग्रस्त घोषित कर अब वैश्विक भाषा चयनकर्ता को प्राथमिकता दी जाती है)। अधिक जानकारी के लिए पढ़ें।

प्रयोग
इसका मुख्य लक्ष्य है कि इससे सदस्य आसानी से भाषा चुनकर इसका समर्थन कॉन्फ़िगर कर पाएँ।

इस एक्सटेंशन में निम्न सुविधाएँ हैं:


 * 1) भाषाओं के बड़े समूह से किसी भाषा को चुनना आसान बनाना।
 * 2) चुनाव भौगोलिक स्थान-आधारित लेखन, खोज, आदि के आधार पर किया जा सकता है।
 * 3) चुनाव ISO भाषा कोड से, वर्तमान इंटरफ़ेस भाषा में उचित भाषा के नाम के ज़रिए, या फिर अपनी लिपि में भाषा के नाम (स्वनाम) से किया जा सकता है
 * 4) क्रॉस-भाषा खोज - किसी भी लिपि में भाषा का नाम खोजें
 * 5) भाषाओं के नामों का स्वतः पूर्णकरण
 * 6) खोज स्ट्रिंग्स में स्वचालित वर्तनी जाँच
 * 7) GeoIP पक आधारित भाषाओं के सुझाव
 * 8) सदस्य के ब्राउज़र/OS की भाषा के अनुसार भाषा का चुनाव
 * 9) इनपुट के माध्यम
 * पूर्ण अनुदेश के लिए देखें।
 * 1) इनपुट माध्यमों का एक आसानी से उपलब्ध समूह, जो संपादन-योग्य हर क्षेत्र में उपलब्ध होता है
 * 2) बहुत-से भाषाओं के लिए विभिन्न इनपुट उपकरण प्रदान करता है
 * 3) * Extension:Narayam#Supported schemes पर एक कालग्रस्त सूची उपलब्ध है
 * 4) हर भाषा के अनुसार इनपुट माध्यमों की वरीयताएँ
 * 5) वेब-फ़ॉण्ट्स
 * 6) पृष्ठ पर एम्बेड किए गए फ़ॉण्ट के रूप में इस्तेमाल करने के लिए हर भाषा में कई सारे फ़ॉण्ट्स
 * 7) * आप सभी उपलब्ध फ़ॉण्ट्स देख सकते हैं
 * 8) हर भाषा के अनुसार फ़ॉण्ट की वरीयताएँ



फ़ॉण्ट्स जोड़ना
अधिक भाषाओं का समर्थन जोड़ने के लिए आपको बदल कोड में उचित फ़ॉण्ट्स शामिल करने होंगे। मगर कृपया याद रखें कि हम सिर्फ मुक्त रूप से लाइसेंस किए गए फ़ॉण्ट्स को ही स्वीकार करेंगे, जैसे GNU GPL, SIL OFL, आदि के अंतर्गत लाइसेंस किए गए फ़ॉण्ट्स। इस तरह से मुक्त फ़ॉण्ट्स की एक निर्देशिका का उदाहरण है Google Fonts (इस एक्सटेंशन के लेखकों द्वारा पूरी तरह से जाँचा नहीं गया है); Open Font Library भी देखें।

पहले आपको ऐसा एक मुक्त फ़ॉण्ट बनाना या फिर ढूँढ़ना होगा (यह सबसे ज़रूरी हिस्सा है और आपको यह खुद करना होगा); फिर, इसे उचित प्रारूपों में बदलना होगा, जो हैं eot, ttf, woff; आखिर में, आप Phabricator पर एक अनुरोध फ़ाइल कर सकते हैं ताकि फ़ॉण्ट को इस एक्सटेंशन पर जोड़ दिया जाए।

नीचे '#वेब-फ़ॉण्ट्स तैयार करना' में बताया गया है कि फ़ॉण्ट्स का प्रारूप कैसे बदला जाता है: GNU/लिनक्स ऑपरेटिंग सिस्टम के बारे में बुनियादी जानकारी की ज़रूरत है; अगर आपको इस चरण में दिक्कतें आती हैं, आप इस चरण को छोड़कर यह काम अपने Phabricator अनुरोध पर किसी और को सौंप सकते हैं (बेशक, इससे प्रक्रिया ज़रा-सी धीमी हो जाएगी)।

वेब-फ़ॉण्ट्स तैयार करना
.woff2 बनाना:

ttf से woff2 बनाने के लिए https://github.com/google/woff2 का इस्तेमाल करें। यह एक कंप्रेस किया हुआ woff2 फ़ाइल बना देगा। आधुनिक ब्राउज़रों में यह प्रारूप समर्थित है।

font.ini फ़ाइल बनाएँ। यहाँ उदाहरण है:

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

फ़ाइलें बनाने के बाद ये करें:


 * 1) data/fontrepo/fonts में फ़ॉण्ट के लिए एक डिरेक्ट्री बनाएँ।
 * 2) ttf, woff, eot और font.ini फ़ाइलों को उस डिरेक्ट्री में डालें और उन्हें स्रोत रिपॉज़िटरी पर जोड़ें ।
 * 3)   डिरेक्ट्री पर जाएँ और   चलाएँ।
 * 4) बदलावों को रिपॉज़िटरी पर कमिट करें  और गिट कार्यप्रवाह के अनुसार उन्हें प्रस्तुत करें।

नई कुँजी मानचित्रण (इनपुट माध्यम) का समर्थन जोड़ना
instructions on the jquery.ime github wiki का पालन करें, मगर Wikimedia-extensions-UniversalLanguageSelector के Phabricator उत्पाद में अनुरोध फ़ाइल करें।

LanguageNameIndex को अपडेट करना
क्रॉस-भाषा खोज करने और स्वनाम खोजने के लिए भाषा की डेटा को परिभाषित करना ज़रूरी है। ULS पर भाषाओं के नामों का एक पहले से परिभाषित इनडेक्स मौजूद है (data/langnames.ser)। अगर आप इसे अपडेट करना चाहते हैं, स्थापित करें और निम्न कमांड से डेटा को अपडेट करें।

php UniversalLanguageSelector/data/LanguageNameIndexer.php और सुनिश्चित करें कि langnames.ser फ़ाइल को ULS/data/ फ़ोल्डर में बनाया जा रहा हो।

कॉन्फ़िगरेशन
स्थापना के समय ये वेरिएबल अपने आप बना दिए जाते हैं और mw.config.get( नाम ) की मदद से जावास्क्रिप्ट के ज़रिए इनका इस्तेमाल किया जा सकता है:


 * - एक संबंध ऐरे जहाँ कुँजियाँ भाषाओं के कोड हैं और वैल्यू हैं अंग्रेज़ी में उनके नाम।
 * - एक ऐरे जहाँ सदस्य के Accept-Language वैल्यू से भाषा कोड हैं। ये भाषाएँ सदस्य के ब्राउज़र की वरीयताओं में चुनी जाती हैं।

फ़ॉण्ट्स प्रदान करने के लिए, अगर ये MIME प्रकार आपके वेब-सर्वर में मौजूद नहीं हैं, तो शायद आप इन्हें जोड़ लेना चाहेंगे। यह गाइड आपके काम आ सकता है।

 font/woff .woff application/vnd.ms-fontobject .eot application/x-font-ttf .ttf

इन वेरिएबलों को भी कॉन्फ़िगर किया जा सकता है:

व्यक्तिगत टूलबार पर सदस्यनाम या लॉग-इन करने की कड़ी के पास एक कड़ी के रूप में (डिफ़ॉल्ट)। : साइडबार पर अंतरभाषा कड़ियों की सूची के हैडर के पास एक आइकॉन के रूप में।
 * - जिस देश से सदस्य विकि पर आता है, उसके अनुसार ULS भौगोलिक-स्थान सेवाओं की मदद से भाषाएँ सुझा सकता है। इसे false पर सेट करने पर भौगोलिक-स्थान का पता नहीं लगाया जाएगा। आप window को सेट करके अपना भौगोलिक-स्थान दे सकते हैं। उस वस्तु पर जाएँ जिसकी कुँजी 'country_code' या 'country' है। इसे true पर सेट करने पर यह विकिमीडिया के GeoIP सेवा को क्वेरी करेगा। सेवा JSONP लौटाएगी, जो दिए गए कॉलबैक पैरामीटर का इस्तेमाल करेगा। डिफ़ॉल्ट है http://freegeoip.net/json/ (चेतावनी: इस सेवा ने अपनी API सेवा बंद कर दी है) और इसकी अपेक्षा रहती है वही प्रारूप।
 * - सभी के लिए भाषा चयन, संक्षिप्त भाषा कड़ियाँ, इनपुट माध्यम और वेब-फ़ॉण्ट्स सक्षम करें, अगर स्वभाव को नीचे के कॉन्फ़िगरेशन वेरिएबलों द्वारा ओवर्राइड न कर दिया जाए। चाहे यह false भी क्यों न हो, क्लास और संसाधन लोड मॉड्यूल्स को दूसरे एक्सटेंशनों के प्रयोग के लिए पंजीकृत किया जाता है। कुकीज़ या setlang क्वेरी पैरामीटर की मदद से भाषा को बदलना संभव नहीं होगा।
 * - cookie और setlang क्वेरी पैरामीटर्स की मदद से गुमनाम सदस्यों को भाषा बदलने की अनुमति दें। अगर आप कुकीज़ पर ध्यान दिए बिना गुमनाम पृष्ठ-दर्शनों को कैश करते हैं, इसका इस्तेमाल न करें। अगर  या फिर   को false पर भी सेट किया जाए, इसपर उनका कोई असर नहीं होता।
 * - डिफ़ॉल्ट से सभी सदस्यों के लिए इनपुट माध्यम सुविधा अक्षम करें। सदस्य द्वारा इसे सक्षम किया जा सकता है।
 * - भाषा चयन ट्रिगर का स्थान और रूप। स्वीकृत वैल्यू हैं: :
 * - उन तत्वों के jQuery सिलेक्टर्स का ऐरे जिनपर IME को सक्षम नहीं किया जाएगा। जैसे:
 * - Accept-Language हैडर से सदस्य की भाषा का पता अपने आप लगाना है या नहीं।

ULS के ट्रिगर का स्थान
व्यक्तिगत टूलबार पर सदस्यनाम या लॉग-इन करने की कड़ी के पास एक कड़ी के रूप में (डिफ़ॉल्ट)। : साइडबार पर अंतरभाषा कड़ियों की सूची के हैडर के पास एक आइकॉन के रूप में।
 * - भाषा चयन ट्रिगर का स्थान और रूप। स्वीकृत वैल्यू हैं: :

ULS को स्क्रीन पर हर जगह रखना संभव है।  वाला कोई भी तत्व ULS का ट्रिगर बन जाएगा।

डिफ़ॉल्ट फ़ॉण्ट्स को ओवर्राइड करना
ULS पर वेब-फ़ॉण्ट्स के रूप में दिखाने के लिए फ़ॉण्ट्स की एक विशाल रिपॉज़िटरी है। कई बार किसी भाषा के लिए एकाधिक फ़ॉण्ट्स भी हो सकते हैं और हर भाषा/लिपि के लिए एक डिफ़ॉल्ट फ़ॉण्ट होता है। फ़ॉण्ट्स के क्रम अथवा डिफ़ॉल्ट क्रम को ग्लोबल स्क्रिप्ट्स (MediaWiki:Common.js) या फिर व्यक्तिगत स्क्रिप्ट्स (Special:MyPage/common.js) के ज़रिए निम्न विधि से ओवर्राइड किया जा सकता है:

कैशिंग कॉन्फ़िगरेशन
यह सुनिश्चित करने के लिए कि वेब-फ़ॉण्ट फ़ाइलों को क्लाइंट के मशीन पर कैश किया जाता है, फ़ॉण्ट फ़ाइलों के प्रकारों को वेब सर्वर कॉन्फ़िगरेशन पर जोड़ना ज़रूरी है। Apache2 पर इसका मतलब है:


 * प्रासंगिक डिरेक्ट्री के लिए FilesMatch पर FilesTimes रेगेक्स पर फ़ॉण्ट फ़ाइल के एक्सटेंशन जोड़ना, उदाहरण:
 * प्रासंगिक MIME प्रकारों पर चित्र MIME प्रकारों की तरह ExpiresByType वैल्यू जोड़ना।
 * ध्यान रखें कि TTF के लिए कोई मानक MIME प्रकार नहीं है। विकिमीडिया पर application/x-font-ttf का इस्तेमाल किया जाता है।
 * MIME प्रकारों को जोड़ना:

 AddType font/woff .woff AddType application/vnd.ms-fontobject .eot AddType application/x-font-ttf .ttf

पूरे उदाहरण के लिए विकिमीडिया क्लस्टर के लिए किया गया कैशिंग कॉन्फ़िगरेशन अपडेट देखें।

पृष्ठ अनुवाद
UniversalLanguageSelector एक्सटेंशन के निर्भरताओं में से एक है, जो इसका इस्तेमाल भाषा चयन की कोई सुविधाओं के लिए करता है। इनमें से एक है कड़ियों के लिए MyLanguage प्रणाली, जो सदस्य के इंटरफ़ेस की भाषा पर निर्भर होता है: पृष्ठ अनुवाद सुविधा देखें।

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

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

font-family निर्दिष्ट करके
विकि के टेक्स्ट YourText में, webfonts एक्सटेंशन यह पता लगाएगा कि फ़ॉण्ट एक्सटेंशन के साथ उपलब्ध है या फिर नहीं, और अगर यह हुआ तो इसे क्लाइंट पर डाउनलोड कर लिया जाएगा। पाठक को टेक्स्ट पढ़ने में कोई परेशानी नहीं होगी, हालाँकि शायद वह फ़ॉण्ट उनके कंप्यूटर पर न हो।

भाषा निर्दिष्ट करके
विकि के टेक्स्ट YourText में, webfonts एक्सटेंशन यह पता लगाएगा कि उस भाषा के लिए कोई फ़ॉण्ट एक्सटेंशन के साथ उपलब्ध है या फिर नहीं, और अगर यह हुआ तो इसे क्लाइंट पर डाउनलोड कर लिया जाएगा। पाठक को टेक्स्ट पढ़ने में कोई परेशानी नहीं होगी, हालाँकि शायद वह फ़ॉण्ट उनके कंप्यूटर पर न हो। अगर उस भाषा के लिए कई फ़ॉण्ट्स हैं, डिफ़ॉल्ट फ़ॉण्ट का इस्तेमाल किया जाएगा। अगर डिफ़ॉल्ट को प्राथमिकता में सेट नहीं किया गया है, फ़ॉण्ट निर्दिष्ट करने के लिए font-family का इस्तेमाल करें। अगर टैग में lang और font-family दोनों हैं, font-family को प्राथमिकता दी जाएगी।

उदाहरण:

𒄖𒉈𒅁𒌨𒅎

कीलाकार में रेंडर किए गए टेक्स्ट को Akkadian फ़ॉण्ट में दिखाता है

𒄖𒉈𒅁𒌨𒅎

ये भी देखें

 * Extension:Google Translator
 * Extension:Google Translator
 * Extension:Google Translator
 * Extension:Google Translator
 * Extension:Google Translator