देशी भाषा से अंग्रेजी में कमांड आउटपुट भाषा स्विच करें


84

मैं अपनी मूल भाषा से कमांड आउटपुट भाषा को अंग्रेजी में कैसे बदल सकता हूं, इसलिए मैं अंग्रेजी कमांड आउटपुट (त्रुटि संदेश) के साथ अपने प्रश्न Ubuntu प्रश्न पोस्ट कर सकता हूं?


5
यह कुछ भ्रामक है। ऐसा करना लोगों के लिए वास्तव में आवश्यक नहीं है । (यदि आपको लगता है कि हमें इस तरह से खुद को बोझ करने के लिए ओपी की आवश्यकता होनी चाहिए, तो कृपया किसी को भी ऐसा करने का निर्देश देने से पहले मेटा पर पोस्ट करें।) वे LANGइस तरह बदल सकते हैं , और यह मदद कर सकता है, लेकिन हमें अंग्रेजी में होने के लिए कॉपी किए गए त्रुटि संदेशों की आवश्यकता नहीं है । हमें आवश्यकता है कि लेखक ने अंग्रेजी में क्या लिखा है (हालांकि हम सवालों को बंद करने के बजाय इसका अनुवाद करते हैं)। इसलिए स्पेनिश टर्मिनल पाठ के साथ अंग्रेजी में लिखा गया एक प्रश्न ठीक है, जबकि अंग्रेजी टर्मिनल पाठ के साथ स्पेनिश में लिखा गया प्रश्न नहीं है।
एलियाह कगन

4
@ एलियाकगन हाँ, आप सही हैं, लेकिन वैसे भी मुझे लगता है कि यह उपयोगी है।
BuZZ-dEE

2
मैं सहमत हूं, यह करने में सक्षम लोगों के लिए उपयोगी है, और अच्छा है कि आपने यह प्रश्न पोस्ट किया है! हालाँकि, यह महत्वपूर्ण है कि लोग जानते हैं कि हमें ऐसा करने की आवश्यकता नहीं है (लेकिन यह आवश्यक है कि प्रश्न और उत्तर स्वयं अंग्रेजी में लिखे जाएँ)।
एलिया कगन

8
@EliahKagan इसके विपरीत, वास्तविक त्रुटि संदेशों को पोस्ट करना बहुत महत्वपूर्ण है , और उन्हें अंग्रेजी में पोस्ट करने के लिए बहुत बेहतर है क्योंकि इस साइट के मुख्य दर्शक पहचान सकते हैं और परीक्षण कर सकते हैं। (और कभी नहीं, कभी भी एक पुन: अनुवादित त्रुटि संदेश पोस्ट करें। हमेशा कॉपी-पेस्ट करें, क्योंकि सटीक शब्दांकन, विराम चिह्न, यहां तक ​​कि रिक्ति महत्वपूर्ण हो सकती है।)
गिल्स

जवाबों:


74

export LC_ALL=Cपर्याप्त है। बाद के सभी कमांड आउटपुट अंग्रेजी में होंगे।

अधिक जानकारी: "LC_ALL = C" क्या करता है?

यदि आप मूल भाषा में वापस आना चाहते हैं, तो LC_ALLवेरिएबल को अनसेट करें :

unset LC_ALL

13

टर्मिनल के लिए बैश फ़ंक्शन

यहाँ डे और एन स्थानों के बीच स्विच करने के लिए मेरा बैश फ़ंक्शन है।

आप अपनी पसंदीदा भाषाओं के साथ इस कोड का विस्तार कर सकते हैं। इसका उपयोग करने के लिए, इसे अपने ~/.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'

जर्मन (DE) की तुलना में किसी अन्य भाषा के लिए स्क्रिप्ट को बदलने की आवश्यकता है? मैं मूल भाषा से स्वतंत्र समाधान की तलाश करता हूं।
BuZZ-dEE

@ BuZZ-dEE: आप कर सकते हैं (और शायद) आसानी से इसे बाहर फेंक कर अनुकूलित कर सकते हैं और प्रारूप के caseअनुरूप इनपुट निर्दिष्ट कर सकते हैं <lang>_<country>। तब आप इसे यूटीएफ -8 मानकर, बस पास कर सकते हैं। यदि आप वास्तव में एक स्पष्ट समाधान के लिए उत्सुक हैं, तो आपको संभवतः उपयोगकर्ता इनपुट की जांच करनी चाहिए locale -aताकि यह सुनिश्चित हो सके कि अनुरोधित स्थान वास्तव में स्थापित है।
बिटमैस्क

@ buzz-dee: अपडेटेड उत्तर देखें
एच।-डर्क श्मिट

7

एक टर्मिनल 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है नहीं सब उत्पादन करने के लिए पर्याप्त मौका।
बिटमैस्क

@bitmask यह है: LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bashबेहतर?
ब्यूज-डीईई

2
दरअसल, ऐसा होना चाहिए LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
बिटमैस्क

मेरे लिए केवल LC_ALL = C बैश काम है।
liquide

5

यह स्थानीय सेटिंग्स के माध्यम से कॉन्फ़िगर किया गया है , जिसे पर्यावरण चर के माध्यम से सेट किया जा सकता है। चर की चार परतें हैं; जो पहले सेट किया जाता है वह पूर्वता लेता है:

  • 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, आदि) स्विच नहीं करता है।

देखें कि मुझे अपना स्थान किस पर सेट करना चाहिए और ऐसा करने के निहितार्थ क्या हैं? स्थानों के अधिक विस्तृत अवलोकन के लिए।


भाषा का प्रयोग न करें ?? मुझे नहीं पता कि आप किस ओएस पर हैं, लेकिन उबंटू भाषा में इंस्टॉलर और विभिन्न GUI के माध्यम से हर समय डिफ़ॉल्ट रूप से उपयोग किया जाता है। कौन से कीड़े हैं, btw? मैंने आपके द्वारा लिंक किए गए उत्तर को भी पढ़ा है , और भले ही इसमें उपयोगी सामान्य जानकारी हो, सिफारिश केवल उबंटू डेस्कटॉप पर अच्छी सलाह नहीं है।
गुन्नार हेजलारसन 16

@GunnarHjalmarsson के साथ मुख्य समस्या LANGUAGEयह है कि यह पूर्ववर्तीता लेता है LC_ALL, जो बग का कारण बनता है क्योंकि प्रोग्राम LC_ALLपूर्वानुमानित आउटपुट प्राप्त करने के लिए सेट होते हैं और फिर भ्रमित हो जाते हैं क्योंकि उन्हें अपेक्षित आउटपुट नहीं मिल रहा है।
गिलीस

खैर, Ubuntu GUIs ने LANG और LANGUAGE दोनों को लगातार सेट किया है (और LC_MESSAGES को LANG से विरासत में मिला है), जिसे उस तरह के भ्रम को रोकने के लिए चाहिए। भाषा सेट होने का कारण यह है कि भाषा समर्थन में प्राथमिकता सूची सेट करने के लिए एक इंटरफ़ेस है।
गुन्नार हेजलमरसन

@GunnarHjalmarsson मुझे पता है। सेटिंग LANGUAGEफिर भी एक बुरा विचार है, क्योंकि लाभ बहुत पतले होते हैं जबकि कीड़े कष्टप्रद और खोजने में कठिन हो सकते हैं। हालांकि आप सही हैं, मुझे परेशान होना चाहिए LANGUAGE
गिल्स

डिजाइन के मुद्दों पर बहस करने के लिए यहां उत्तर एक उचित स्थान नहीं है। इस तरह के विचार -विमर्श उबंटू-देवल-चर्चा में बेहतर होते हैं । उपयोगकर्ताओं के लिए सहायक होने के लिए, मैं वास्तव में सोचता हूं कि एक उत्तर वर्तमान डिजाइन पर आधारित होना चाहिए, चाहे आपको लगता है कि यह इष्टतम है या नहीं। और कृपया ध्यान दें कि "कुछ संस्करण" उबंटू डेस्कटॉप और डेरिवेटिव के सभी समर्थित संस्करण हैं, संभवतः कुबंटु के अपवाद के साथ।
गुन्नार हेजलमार्सन 21


1

अपने में ~/.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 सेट है, तो नीचे दिए गए किसी भी प्रभाव का कोई प्रभाव नहीं पड़ता है।

https://help.ubuntu.com/community/Locale


मुझे नहीं पता कि यह जवाब क्यों दिया गया। हां यह कुछ और स्पष्टीकरण का उपयोग कर सकता है, लेकिन स्वीकृत उत्तर के विपरीत, यह दर्शाता है कि इसे कैसे स्थायी बनाया जाए और यह अधिक विशिष्ट है।
ज़ेरुस

0
  1. बाईं ओर गियर आइकन पर क्लिक करें (एकता पैनल पर सिस्टम सेटिंग्स)
  2. भाषा समर्थन पर क्लिक करें
  3. क्षेत्रीय प्रारूप चुनें
  4. अपना "प्रदर्शन संख्या, दिनांक और मुद्रा राशि ..." अंग्रेज़ी में सेट करें।
  5. सत्र को लॉगआउट करें और फिर से लॉगिन करें (आवश्यक है!)

किया हुआ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.