[यह उत्तर केवल लिनक्स प्लेटफॉर्म पर लक्षित है]
पहली चीज जो आपको पता होनी चाहिए कि अधिकांश स्थानीय विन्यास फ़ाइल स्थित पथ से प्राप्त की जा सकती है localedef --help
:
$ localedef --help | tail -n 5
System's directory for character maps : /usr/share/i18n/charmaps
repertoire maps: /usr/share/i18n/repertoiremaps
locale path : /usr/lib/locale:/usr/share/i18n
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>
अंतिम देखें /usr/share/i18n
? यह वह जगह है जहाँ आपका xx_XX.UTF-8 कॉन्फ़िगरेशन फ़ाइल स्थित है:
$ ls /usr/share/i18n/locales/zh_*
/usr/share/i18n/locales/zh_CN /usr/share/i18n/locales/zh_HK /usr/share/i18n/locales/zh_SG /usr/share/i18n/locales/zh_TW
अब क्या ? हमें उन्हें संग्रह बाइनरी में संकलित करने की आवश्यकता है। एक तरह से, उदाहरण के लिए मान लें कि मेरे पास है /usr/share/i18n/locales/en_LOVE
, मैं इसे संकलन सूची में जोड़ सकता हूं, अर्थात /etc/locale-gen
फ़ाइल:
$ tail -1 /etc/locale.gen
en_LOVE.UTF-8 UTF-8
और इसे बाइनरी के साथ संकलित करें sudo locale-gen
:
$ sudo locale-gen
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
...
en_LOVE.UTF-8... done
Generation complete.
और अब प्रणाली डिफ़ॉल्ट स्थान वांछित के साथ अद्यतन LANG
, LC_ALL
... इस के साथ आदि update-locale
:
sudo update-locale LANG=en_LOVE.UTF-8
update-locale
वास्तव में भी इस /etc/default/locale
फाइल को अपडेट करने का मतलब है जो सिस्टम पर लॉगिन से सेटअप पर्यावरण चर पर स्रोत करेगा:
$ head /etc/default/locale
# File generated by update-locale
LANG=en_LOVE.UTF-8
LC_NUMERIC="en_US.UTF-8"
...
लेकिन हम प्रभावी होने के लिए रिबूट नहीं करना चाहते हैं, इसलिए हम इसे वर्तमान शेल सत्र में पर्यावरण चर के लिए स्रोत बना सकते हैं:
$ . /etc/default/locale
कैसे के बारे में sudo dpkg-reconfigure locales
? यदि आप इसके चारों ओर खेलते हैं, तो आपको पता चल जाएगा कि यह कमांड मूल रूप से उपरोक्त चरणों को सरल बनाने के लिए GUI के रूप में कार्य करता है, अर्थात संपादित करें /etc/locale.gen
->sudo locale-gen
-> -sudo update-locale LANG=en_LOVE.UTF-8
अजगर के लिए, जब तक /etc/locale.gen
कि उस स्थानीय उम्मीदवार को शामिल किया जाता है और locale.gen
संकलित किया जाता है, setlocale(category, locale)
बिना फेंके काम करना चाहिए locale.Error: unsupoorted locale setting
। आप फ़ाइल देख कर, सही स्ट्रिंग en_US.UTF-8
/ en_US/....etc
सेट करने के लिए जाँच कर सकते हैं , और फिर उसे वांछित मानकर संकलित कर सकते हैं। उस फ़ाइल में डॉट के बिना सही स्ट्रिंग का मतलब है और ।setlocale()
/etc/locale.gen
zh_CN GB2312
zh_CN
zh_CN.GB2312