लोकेल सेटिंग उपयोगकर्ता की प्राथमिकताएँ हैं जो आपकी संस्कृति से संबंधित हैं।
स्थानीय नाम
सभी मौजूदा यूनिक्स प्रकारों के बारे में जिन्हें मैं जानता हूं (लेकिन कुछ प्राचीन वस्तुओं पर नहीं), स्थानीय नाम उसी पैटर्न का अनुसरण करते हैं:
- एक ISO 639-1 लोअरकेस दो अक्षर भाषा कोड, या एक ISO 639-2 यदि भाषा कोई दो अक्षर का कोड है तीन अक्षर भाषा कोड। उदाहरण के लिए,
en
अंग्रेजी के लिए, de
जर्मन के लिए, ja
जापानी के लिए, uk
यूक्रेनी के लिए, ber
नाई के लिए,…
- कई लेकिन सभी नहीं भाषाओं के लिए, एक अंडरस्कोर
_
एक के बाद ISO 3166 दो अक्षर अपरकेस देश कोड। इस प्रकार: en_US
अमेरिकी अंग्रेजी के लिए, en_UK
ब्रिटिश अंग्रेजी के लिए, fr_CA
कनाडा (क्यूबेक) फ्रेंच, de_DE
जर्मनी de_AT
के जर्मन के ja_JP
लिए , ऑस्ट्रिया के जर्मन के लिए , जापानी (जापान के लिए), आदि।
- वैकल्पिक रूप से, एक बिंदु
.
एक के नाम के बाद एन्कोडिंग चरित्र जैसे UTF-8
, ISO-8859-1
, KOI8-U
, GB2312
, Big5
कम से कम जीएनयू libc के साथ, आदि (मैं नहीं जानता कि यह कैसे व्यापक है), मामला और विराम चिह्न नाम एन्कोडिंग में नजरअंदाज कर दिया है। उदाहरण के लिए, zh_CN.UTF-8
मंदारिन (सरलीकृत) चीनी UTF-8 में कूटबद्ध है, जबकि zh_CN
मंदारिन चीनी zh_TW
GB2312 में कूटबद्ध है , और ताइवान (पारंपरिक) चीनी Big5 में कूटबद्ध है।
- वैकल्पिक रूप से,
@
एक वैरिएंट के नाम पर एक हस्ताक्षर । वेरिएंट का अर्थ स्थानीय-निर्भर है। उदाहरण के लिए, कई यूरोपीय देशों में एक @euro
लोकल वैरिएंट होता है, जहाँ मुद्रा चिन्ह € होता है और जहाँ एन्कोडिंग एक होती है, जिसमें यह वर्ण (ISO 8859-15 या ISO 8859-16) शामिल होता है, जैसा कि पुराने मुद्रा चिह्न के साथ अनियंत्रित संस्करण के विपरीत होता है। उदाहरण के लिए, en_IE
अंग्रेजी (अंग्रेजी, आयरलैंड) लैटिन 1 (आईएसओ 8859-1) को एन्कोडिंग और पाउंड को मुद्रा प्रतीक के रूप में en_IE@euro
उपयोग करता है जबकि लैटिन 9 (आईएसओ 8859-15) को एन्कोडिंग और मुद्रा प्रतीक के रूप में उपयोग करता है।
इसके अलावा, दो स्थानीय नाम हैं जो सभी यूनिक्स जैसी प्रणाली पर मौजूद हैं: C
और POSIX
। ये नाम पर्यायवाची और माध्य कंप्यूटर हैं, यानी डिफ़ॉल्ट सेटिंग्स जो कि कंप्यूटर प्रोग्राम द्वारा पार्स किए गए डेटा के लिए उपयुक्त हैं।
लोकेल सेटिंग
निम्नलिखित लोकेल श्रेणियों को पोसिक्स द्वारा परिभाषित किया गया है :
LC_CTYPE
: टर्मिनल अनुप्रयोगों द्वारा उपयोग किया जाने वाला वर्ण: वर्गीकरण डेटा (जो वर्ण अक्षर, विराम चिह्न, रिक्त स्थान, अमान्य, आदि) और केस रूपांतरण हैं। पाठ उपयोगिताएँ आमतौर पर LC_CTYPE
चरित्र सीमाओं को निर्धारित करने के लिए ध्यान केंद्रित करती हैं।
LC_COLLATE
: कॉलेशन (यानी छँटाई) क्रम। यह सेटिंग कई कारणों से बहुत सीमित उपयोग की है:
- अधिकांश भाषाओं में जटिल नियम होते हैं जो इस बात पर निर्भर करते हैं कि क्या छांटा जा रहा है (उदाहरण के लिए शब्द और उचित नाम एक ही क्रम का उपयोग नहीं कर सकते हैं) और द्वारा व्यक्त नहीं किया जा सकता है
LC_COLLATE
।
- ऐसे कुछ अनुप्रयोग हैं जहां उचित क्रमबद्ध मामले मायने रखते हैं जो सॉफ्टवेयर द्वारा किए जाते हैं जो स्थानीय सेटिंग्स का उपयोग करते हैं। उदाहरण के लिए, शब्द प्रोसेसर फ़ाइल की भाषा और एन्कोडिंग को फ़ाइल में ही संग्रहीत करते हैं (अन्यथा फ़ाइल को अलग-अलग लोकेल सेटिंग्स के साथ सिस्टम पर सही तरीके से संसाधित नहीं किया जाएगा) और पर्यावरण द्वारा निर्दिष्ट लोकेल सेटिंग्स की परवाह नहीं करते हैं।
LC_COLLATE
बुरा साइड इफेक्ट हो सकता है, विशेष रूप से क्योंकि यह सॉर्ट ऑर्डर ए <a <बी <… का कारण बनता है, जो "ए और जेड के बीच" के माध्यम से लोअरकेस अक्षरों को शामिल करता है। विशेष रूप से, बहुत सामान्य नियमित अभिव्यक्तियाँ जैसे [A-Z]
कुछ अनुप्रयोगों को तोड़ती हैं ।
LC_MESSAGES
: सूचनात्मक और त्रुटि संदेशों की भाषा।
LC_NUMERIC
: संख्या स्वरूपण: दशमलव और हजारों विभाजक। दशमलव विभाजक
के .
रूप में कई एप्लिकेशन हार्ड-कोड । यह LC_NUMERIC
बहुत उपयोगी और संभावित खतरनाक नहीं है:
- यहां तक कि अगर आप इसे सेट करते हैं, तब भी आपको डिफ़ॉल्ट प्रारूप बहुत बार दिखाई देगा।
- आपको ऐसी स्थिति में आने की संभावना है जहां एक अनुप्रयोग स्थानीय-निर्भर उत्पादन का उत्पादन करता है और दूसरा अनुप्रयोग
.
दशमलव बिंदु या ,
क्षेत्र विभाजक होने की अपेक्षा करता है ।
LC_MONETARY
: जैसे LC_NUMERIC
, लेकिन स्थानीय मुद्रा की मात्रा के लिए।
बहुत कम अनुप्रयोग इसका उपयोग करते हैं।
LC_TIME
: दिनांक और समय प्रारूपण: कार्यदिवस और महीने के नाम, 12 या 24 घंटे की घड़ी, तिथि भागों का क्रम, विराम चिह्न आदि।
GNU libc, जो आपको गैर-एम्बेडेड लिनक्स पर मिलेगा, अतिरिक्त स्थानीय श्रेणियों को परिभाषित करता है:
LC_PAPER
: डिफ़ॉल्ट पेपर आकार (ऊंचाई और चौड़ाई द्वारा परिभाषित)।
LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
: मैं इन का उपयोग करता है किसी भी आवेदन का पता नहीं है।
पर्यावरण चर
अनुप्रयोग जो लोकेल सेटिंग्स का उपयोग करते हैं, उन्हें पर्यावरण चर से निर्धारित करते हैं।
- तब
LANG
पर्यावरण चर का मूल्य तब तक उपयोग किया जाता है जब तक कि किसी अन्य सेटिंग द्वारा ओवरराइड नहीं किया जाता है। यदि LANG
सेट नहीं किया गया है, तो डिफ़ॉल्ट लोकेल है C
।
LC_xxx
नाम वातावरण चर के रूप में इस्तेमाल किया जा सकता।
- यदि
LC_ALL
सेट किया जाता है, तो अन्य सभी मूल्यों को अनदेखा किया जाता है; यह मुख्य रूप से LC_ALL=C
रन अनुप्रयोगों को सेट करने के लिए उपयोगी है , जहां वे चलाए जा रहे हैं, भले ही उसी आउटपुट का उत्पादन करने की आवश्यकता हो।
- इसके अलावा, GNU libc के लिए
LANGUAGE
कमियां परिभाषित करने के लिए उपयोग करता है LC_MESSAGES
(उदाहरण के LANGUAGE=fr_BE:fr_FR:en
लिए बेल्जियम फ्रेंच पसंद करने के लिए, या यदि अनुपलब्ध फ्रांस फ़्रेंच, या यदि अनुपलब्ध अंग्रेज़ी)।
स्थानों को स्थापित करना
स्थान डेटा बड़ा हो सकता है, इसलिए कुछ वितरण उन्हें प्रयोग करने योग्य रूप में शिप नहीं करते हैं और इसके लिए अतिरिक्त इंस्टॉलेशन चरण की आवश्यकता होती है।
- डेबियन पर, स्थानों को स्थापित करने
dpkg-reconfigure locales
के लिए, संवाद बॉक्स में सूची से चलाएं और चुनें, या संपादित करें /etc/locale.gen
और फिर चलाएं locale-gen
।
- उबंटू पर, स्थानों को स्थापित करने के लिए,
locale-gen
तर्कों के रूप में स्थानों के नामों के साथ चलाएं ।
आप अपने खुद के लोकेल को परिभाषित कर सकते हैं ।
सिफ़ारिश करना
उपयोगी सेटिंग्स हैं:
LC_CTYPE
उस भाषा और एन्कोडिंग पर सेट करें, जिसमें आप अपनी पाठ फ़ाइलों को एन्कोड करते हैं। सुनिश्चित करें कि आपके टर्मिनल उस एन्कोडिंग का उपयोग करते हैं।
अधिकांश भाषाओं के लिए, केवल एन्कोडिंग मायने रखती है। कुछ अपवाद हैं; उदाहरण के लिए, एक अपरकेस i
है I
अधिकांश भाषाओं में लेकिन İ
तुर्की में ( tr_TR
)।
LC_MESSAGES
उस भाषा पर सेट करें, जिसमें आप संदेश देखना चाहते हैं।
- सेट
LC_PAPER
करने के लिए en_US
अगर आप अमेरिका पत्र डिफ़ॉल्ट पेपर आकार और कुछ और (जैसे के बारे में होना चाहते हैं en_GB
) आप ए 4 चाहते हैं।
- वैकल्पिक रूप से,
LC_TIME
अपने पसंदीदा समय प्रारूप पर सेट करें।
जैसा कि ऊपर बताया गया है, सेटिंग LC_COLLATE
और से बचें LC_NUMERIC
। यदि आप उपयोग करते हैं LANG
, तो इन दोनों श्रेणियों को स्पष्ट रूप से इन पर सेट करके ओवरराइड करें C
।
LC_PAPER
। और क्या मैं इसे रिबूट किए बिना सिस्टम में अपडेट कर सकता हूं?