मैं अपनी मूल भाषा से कमांड आउटपुट भाषा को अंग्रेजी में कैसे बदल सकता हूं, इसलिए मैं अंग्रेजी कमांड आउटपुट (त्रुटि संदेश) के साथ अपने प्रश्न Ubuntu प्रश्न पोस्ट कर सकता हूं?
मैं अपनी मूल भाषा से कमांड आउटपुट भाषा को अंग्रेजी में कैसे बदल सकता हूं, इसलिए मैं अंग्रेजी कमांड आउटपुट (त्रुटि संदेश) के साथ अपने प्रश्न Ubuntu प्रश्न पोस्ट कर सकता हूं?
जवाबों:
export LC_ALL=C
पर्याप्त है। बाद के सभी कमांड आउटपुट अंग्रेजी में होंगे।
अधिक जानकारी: "LC_ALL = C" क्या करता है?
यदि आप मूल भाषा में वापस आना चाहते हैं, तो LC_ALL
वेरिएबल को अनसेट करें :
unset LC_ALL
यहाँ डे और एन स्थानों के बीच स्विच करने के लिए मेरा बैश फ़ंक्शन है।
आप अपनी पसंदीदा भाषाओं के साथ इस कोड का विस्तार कर सकते हैं। इसका उपयोग करने के लिए, इसे अपने ~/.bashrc
(या ~/.bash_profile
) में डालें -
इसे _configure_locale EN
अंग्रेजी में स्विच करने के लिए कॉल करें ।
function _configure_locale() { # [profile]
local profile=${1:-EN}
case ${profile} in
DE|DE_DE|de_DE)
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_US:en"
;;
EN|EN_US|en|en_US)
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
;;
*)
echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
;;
esac
LC_PAPER="de_DE.UTF-8"; # independent from locale
LESSCHARSET="utf-8"; # independent from locale
MM_CHARSET="utf-8" # independent from locale
echo "locale settings" "${LANG}";
export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}
सामान्य तौर पर मैं सभी 3 वातावरण चर बदलने के लिए सुझाव देते हैं LC_ALL
, LANG
, LANGUAGE
कुछ कार्यक्रमों की दुर्व्यवहारों से बचने के लिए।
अपनी मूल भाषा में कोड बढ़ाना काफी सरल है। आप निम्न आदेश को लागू करके आवश्यक मान पा सकते हैं
env |egrep -e 'LC_ALL|LANG'
case
अनुरूप इनपुट निर्दिष्ट कर सकते हैं <lang>_<country>
। तब आप इसे यूटीएफ -8 मानकर, बस पास कर सकते हैं। यदि आप वास्तव में एक स्पष्ट समाधान के लिए उत्सुक हैं, तो आपको संभवतः उपयोगकर्ता इनपुट की जांच करनी चाहिए locale -a
ताकि यह सुनिश्चित हो सके कि अनुरोधित स्थान वास्तव में स्थापित है।
एक टर्मिनल Ctrl+ Alt+ खोलें Tऔर टाइप करें:
LANG=en_US.UTF-8 bash
या :
LC_ALL=C bash
अब टर्मिनल आउटपुट अंग्रेजी भाषा में है। आप इससे जांच कर सकते हैं locale
।
एक स्थायी केalias
साथ ऐसा करने के लिए एक आदेश बनाना संभव है । .bashrc
अपने पसंदीदा संपादक के साथ फ़ाइल खोलें और निम्नलिखित कोड वहां डालें:
alias basheng='LANG=en_US.UTF-8 bash'
या :
alias basheng='LC_ALL=C bash'
बैश शेल को पुनरारंभ करें। अब आपके पास कमांड है basheng
। अंग्रेजी बैश शेल प्राप्त करने के लिए इसे बैश में टाइप करें। अंग्रेजी शेल प्रकार छोड़ने के लिए exit
।
स्रोत:
LANG
है नहीं सब उत्पादन करने के लिए पर्याप्त मौका।
LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash
बेहतर?
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
।
यह स्थानीय सेटिंग्स के माध्यम से कॉन्फ़िगर किया गया है , जिसे पर्यावरण चर के माध्यम से सेट किया जा सकता है। चर की चार परतें हैं; जो पहले सेट किया जाता है वह पूर्वता लेता है:
LANGUAGE
- इसका उपयोग न करें, यह शायद ही कभी उपयोगी है और कीड़े पैदा कर सकता है। दुर्भाग्य से, Ubuntu के कुछ संस्करणों ने इसे सेट किया है, इसलिए आपको इसे परेशान करने की आवश्यकता हो सकती है।LC_ALL
- श्रेणी-विशिष्ट सेटिंग्स को ओवरराइड करता है, जिसका मुख्य रूप से उन कार्यक्रमों द्वारा उपयोग किया जाना है जो डिफ़ॉल्ट लोकेल में चलना चाहते हैं। वैश्विक सेटिंग के रूप में उपयोग करने के लिए नहीं है।LC_
: LC_CTYPE
, LC_MESSAGES
, LC_TIME
, ...।LANG
- सभी श्रेणियों के लिए डिफ़ॉल्ट लोकेल सेट करता है, जिसका उपयोग वैश्विक उपयोगकर्ता सेटिंग्स में किया जाना है।"मैदानी" लोकेल, सभी संदेशों के साथ, जो अनसोल्ड, डिफ़ॉल्ट समय और संख्या प्रारूप, ASCII के रूप में वर्ण सेट इत्यादि कहलाता है C
। यह लोकेल हर सिस्टम पर मौजूद है।
इस प्रकार, अंग्रेजी में संदेशों के साथ एक कार्यक्रम चलाने के लिए, भागो
unset LANGUAGE; LC_MESSAGES=C myprogram --option
या
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
सभी स्थानीयकरण के साथ एक कार्यक्रम चलाने के लिए बंद करें, चलाएं
env -u LANGUAGE LC_ALL=C myprogram --option
लेकिन सावधान रहें कि यह चरित्र एन्कोडिंग को ASCII (इसलिए कोई यूनिकोड, लैटिन -1, आदि) स्विच नहीं करता है।
देखें कि मुझे अपना स्थान किस पर सेट करना चाहिए और ऐसा करने के निहितार्थ क्या हैं? स्थानों के अधिक विस्तृत अवलोकन के लिए।
LANGUAGE
यह है कि यह पूर्ववर्तीता लेता है LC_ALL
, जो बग का कारण बनता है क्योंकि प्रोग्राम LC_ALL
पूर्वानुमानित आउटपुट प्राप्त करने के लिए सेट होते हैं और फिर भ्रमित हो जाते हैं क्योंकि उन्हें अपेक्षित आउटपुट नहीं मिल रहा है।
LANGUAGE
फिर भी एक बुरा विचार है, क्योंकि लाभ बहुत पतले होते हैं जबकि कीड़े कष्टप्रद और खोजने में कठिन हो सकते हैं। हालांकि आप सही हैं, मुझे परेशान होना चाहिए LANGUAGE
।
सबसे आसान तरीका है कि Alt + F2 दबाकर टर्मिनल को खोलें और इस कमांड को चलाएं:
env LANGUAGE=en gnome-terminal
अपने में ~/.bashrc
unset LC_ALL
export LC_MESSAGES=C
फिर
source ~/.bashrc
इसे जाँचे
$ locale
LANG=pl_PL.utf8
LANGUAGE=
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES=C
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=
पहले क्यों परेशान?
LC_ALL व्यक्तिगत LC_ * सेटिंग्स को ओवरराइड करता है: यदि LC_ALL सेट है, तो नीचे दिए गए किसी भी प्रभाव का कोई प्रभाव नहीं पड़ता है।
किया हुआ।
LANG
इस तरह बदल सकते हैं , और यह मदद कर सकता है, लेकिन हमें अंग्रेजी में होने के लिए कॉपी किए गए त्रुटि संदेशों की आवश्यकता नहीं है । हमें आवश्यकता है कि लेखक ने अंग्रेजी में क्या लिखा है (हालांकि हम सवालों को बंद करने के बजाय इसका अनुवाद करते हैं)। इसलिए स्पेनिश टर्मिनल पाठ के साथ अंग्रेजी में लिखा गया एक प्रश्न ठीक है, जबकि अंग्रेजी टर्मिनल पाठ के साथ स्पेनिश में लिखा गया प्रश्न नहीं है।