एक्सटेंशन:UniversalLanguageSelector

This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 100% complete.
मीडियाविकि एक्सटेंशन मैन्युअल
UniversalLanguageSelector
प्रकाशन की स्थिति: स्थिर
कार्यान्वयन सदस्य इंटरफ़ेस, स्किन , बीटा सुविधा
विवरण उपकरण जिससे सदस्य आसानी से भाषा चुनकर इसका समर्थन कॉन्फ़िगर कर सकते हैं।
लेखक विकिमीडिया भाषा दल
नवीनतम संस्करण 2024-01-22
संगतता नीति Master में पीछे की तरफ से संगतता है।
MediaWiki >= 1.40.0
Composer mediawiki/universal-language-selector
लाइसेंस
डाउनलोड करें भाषा एक्सटेंशन बंडल में शामिल
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoImeSelectors
  • $wgULSPosition
इंटरनेट एक्सप्लोरर 8 या इसके पहले के संस्करणों से अनुकूल नहीं.
Quarterly downloads 187 (Ranked 35th)
Public wikis using 1,237 (Ranked 214th)
UniversalLanguageSelector एक्सटेंशन को अनुवादित करें अगर यह translatewiki.net पर उपलब्ध है
मुद्दे अधूरे कार्य · बग की रिपोर्ट करें

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

प्रयोग

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

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

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

फ़ॉण्ट्स जोड़ना

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

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

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

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

.woff बनाना

ttf फ़ाइल से woff बनाने के लिए https://github.com/bramstein/sfnt2woff-zopfli का इस्तेमाल करें। यह एक कंप्रेस किया हुआ woff फ़ाइल बना देगा।

.woff2 बनाना:

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

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

[AbyssinicaSIL]
languages=am*, ti*
version=1.200
license=OFL 1.1
licensefile=OFL.txt
url=http://scripts.sil.org/AbyssinicaSIL
ttf=AbyssinicaSIL.ttf
woff=AbyssinicaSIL.woff
woff2=AbyssinicaSIL.woff2
bold=AbyssinicaSIL Bold

[AbyssinicaSIL Bold]
ttf=AbyssinicaSIL-Bold.ttf
woff=AbyssinicaSIL-Bold.woff
woff2=AbyssinicaSIL-Bold.woff2

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

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

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

नई कुँजी मानचित्रण (इनपुट माध्यम) का समर्थन जोड़ना

instructions on the jquery.ime github wiki का पालन करें, मगर Wikimedia-extensions-UniversalLanguageSelector के Phabricator उत्पाद में अनुरोध फ़ाइल करें।

स्थापना

  • फ़ाइलों को डाउनलोड करें और अपने extensions/ फ़ोल्डर के UniversalLanguageSelector नामक डिरेक्ट्री में डालें।
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
  • अपने LocalSettings.php फ़ाइल के अंत में निम्न कोड जोड़ें:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  •   पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।


Vagrant स्थापना:

  • अगर आप Vagrant का इस्तेमाल कर रहे हैं, तो vagrant roles enable uls --provision से स्थापित करें

LanguageNameIndex को अपडेट करना

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

php UniversalLanguageSelector/data/LanguageNameIndexer.php

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

कॉन्फ़िगरेशन

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

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

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

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

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

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

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

  • $wgULSNoImeSelectors - उन तत्वों के jQuery सिलेक्टर्स का ऐरे जिनपर IME को सक्षम नहीं किया जाएगा। जैसे: [ '#wpCaptchaWord' ];
  • $wgULSLanguageDetection - Accept-Language हैडर से सदस्य की भाषा का पता अपने आप लगाना है या नहीं।

ULS के ट्रिगर का स्थान

  • $wgULSPosition - भाषा चयन ट्रिगर का स्थान और रूप। स्वीकृत वैल्यू हैं: personal:

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

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

डिफ़ॉल्ट फ़ॉण्ट्स को ओवर्राइड करना

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

कैशिंग कॉन्फ़िगरेशन

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

  • प्रासंगिक डिरेक्ट्री के लिए FilesMatch पर FilesTimes रेगेक्स पर फ़ॉण्ट फ़ाइल के एक्सटेंशन जोड़ना, उदाहरण:

<FilesMatch "\.(gif|jpe?g|png|css|js|woff|svg|eot|ttf)$">

  • प्रासंगिक 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 निर्दिष्ट करके

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

भाषा निर्दिष्ट करके

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

उदाहरण:

<span lang=sux>𒄖𒉈𒅁𒌨𒅎</span>

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

𒄖𒉈𒅁𒌨𒅎

ये भी देखें