Git की कमांड लाइन इंटरफ़ेस की भाषा कैसे बदलती है?


103

मैं अपने लिनक्स इंस्टॉलेशन में git (अंग्रेजी में) की भाषा को अन्य कार्यक्रमों के लिए भाषा बदले बिना बदलना चाहता हूं और सेटिंग्स नहीं ढूंढ सका। यह कैसे करना है?


1
आप स्थान बदलना चाह रहे हैं। मुझे लगता है कि मुझे लगता है कि सुपरसुअर पर उस सवाल का जवाब देना होगा।
जोसेफसैड

जवाबों:


145

अंग्रेजी में सभी संदेशों को प्रदर्शित करने के लिए इन पंक्तियों को अपने में जोड़ें ~/.bashrcया ~/.bash_profileजोर-जबरदस्ती करें:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'

LC_ALLवातावरण चर LC_ALLके सेट होने पर उपनाम को कुछ सिस्टम पर ओवरराइड करने की आवश्यकता होती है, जिसकी पूर्वता है LANGयूनिक्स की विशिष्टता देखें - आगे की व्याख्या के लिए पर्यावरण चर

# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'

यदि आपने इन पंक्तियों को ~/.bashrcउपनाम में जोड़ा है , तो एक नया इंटरेक्टिव शेल शुरू होने पर परिभाषित किया जाएगा। यदि आपने ~/.bash_profileलॉग इन करते समय इसे उपनाम में जोड़ा है, तो इसे लागू किया जाएगा।


फ़ाइल नाम ( .bash.rcइसके बजाय .bashrc) में एक टाइपो था । आपको .bashrcनिष्पादित करने के लिए शेल को फिर से बंद करना और शुरू करना होगा। मैंने इस पर एक नोट जोड़ा, साथ ही।
बेंगट

मैंने इसे .bashrcफिर से शुरू करने के साथ भी कोशिश की । उपनाम काम करते हैं। यह सिर्फ भाषा नहीं बदलती है।
user905686

यह सत्यापित करने के लिए कि .bashrcसफलतापूर्वक निष्पादित हो जाता है आप echo "This is .bashrc"फ़ाइल के अंत की तरह एक परीक्षण जोड़ सकते हैं । तुम भी यह टर्मिनल या पूरे सिस्टम को पुनः आरंभ करने के बिना मांग पर निष्पादित किया जा सकता है . .bashrc। अंत में, मैं LC_ALLइसके बजाय पर्यावरण चर को निर्धारित करने का प्रयास करना चाहूंगा LANG, क्योंकि पहले वाले में पूर्वता है।
Bengt

मेरे साथ सब कुछ ठीक है .bashrc, वास्तव में। यदि LC_ALLपूर्वता है तो यह समस्या होगी, यह मेरी भाषा पर सेट है। लेकिन फिर मैं सामान्य भाषा सेटिंग को बदलना नहीं चाहता ... क्या मैं इसे एक कार्यक्रम के लिए अधिलेखित नहीं कर सकता हूं?
user905686

1
आप साइड इफेक्ट्स के बिना सुझाई गई विधि का उपयोग करके भाषा सेट कर सकते हैं, क्योंकि ये चर केवल तब तक ही जीवित रहते हैं जब तक कि कमांड समाप्त होने में समय लगता है। चलाकर यह प्रयास करें $ LC_ALL="en_US" manतो और$ man
Bengt

20

यदि आप केवल अंग्रेजी में एक कमांड रखना चाहते हैं तो इसके बजाय आप LC_ALL=Cकमांड से पहले लिख सकते हैं , उदाहरण के लिए:

LC_ALL=C git status

में परिणाम होगा

# On branch master
nothing to commit, working directory clean

स्थानीय भाषा के रूप में प्रयोग किया जाता Cहै और हमेशा अतिरिक्त भाषा पैक स्थापित किए बिना उपलब्ध होता है
(देखें https://askubuntu.com/a/142814/52929 )

पूरे वर्तमान बैश सत्र के लिए इसे बदलने के लिए बस दर्ज करें

LANG=C

उदाहरण के लिए इसे बदलने के लिए जर्मन दर्ज करें

LANG=de_DE.UTF-8

LC_ALL=Cसुझाव के लिए धन्यवाद , क्योंकि मुझे LC_ALL="en_US"हाल ही में कुछ काम नहीं करना है , इसलिए मुझे कुछ परेशानी हो रही है ।
user905686

11

इस पंक्ति को जोड़ने से मेरे लिए समस्या हल हो गई:

$ more ~/.bash_profile
export LANG=en_US

2
सवाल यह है कि केवल git के लिए भाषा को कैसे बदला जाए - मैंने इसे अधिक स्पष्ट होने के लिए अद्यतन किया।
user905686

6

नोट: चूंकि Git 2.3.1+ (Q1 / Q2 2015), Git यदि संभव हो तो Accept-Language शीर्षक जोड़ देगा। यी युंगजुन द्वारा प्रतिबद्ध f18604b
देखें ( )eungjun-yi

एक जोड़े Accept-Languageहैडर जो उपयोगकर्ता की पसंदीदा भाषा द्वारा परिभाषित इंगित करता है $LANGUAGE, $LC_ALL, $LC_MESSAGESऔर $LANG

इससे जीआईटी सर्वर को उपयोगकर्ता की पसंदीदा भाषा में दूरस्थ त्रुटि संदेश प्रदर्शित करने का मौका मिलता है।


आपके पास गिट gui या अन्य GUI के लिए स्थान है ,लेकिन कमांड-लाइन के लिए नहीं, यह विचार करते हुए कि यह GitSurvey 2010 के प्रश्नों में से एक था

localization of command-line messages (i18n)    258     3.6%    

बेशक, 2010 के बाद से, के रूप में po/READMEवर्णन:

अनुवाद किए जाने से पहले उन्हें पहले अनुवाद के लिए चिह्नित करना होगा।

Git एक अंतर्राष्ट्रीयकरण इंटरफ़ेस का उपयोग करता है जो सिस्टम की gettextलाइब्रेरी को लपेटता है , इसलिए आपके गेटटेक्स्ट डॉक्यूमेंटेशन में ( info gettextटर्मिनल में GNU सिस्टम पर ) अधिकांश सलाह लागू होती है।

जगह के बाद से git 1.7.9+ (जनवरी 2012):

gettextयदि अनुवाद उपलब्ध हो और स्थान उचित रूप से सेट हो तो Git अपने सबसे सामान्य इंटरफ़ेस संदेशों को उपयोगकर्ता की भाषा में अनुवाद करने के लिए उपयोग करता है
वितरक नए अनुवाद जोड़ने के लिए नई POफ़ाइलों को छोड़ सकते हैं po/

इसलिए, यदि आपके अपडेट ने अनुवाद को गड़बड़ कर दिया है, तो जाँचें कि क्या gettextउपयोग करता है:
उदाहरण के लिए, " लोकेल पर्यावरण चर " देखें

एक लोकल कई लोकल कैटेगरी से बना होता है, देखें एस्पेक्ट्स। जब कोई प्रोग्राम स्थानीय निर्भर मूल्यों को देखता है, तो यह प्राथमिकता के क्रम में निम्नलिखित पर्यावरण चर के अनुसार ऐसा करता है:

LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG 

चर जिनका मान सेट है लेकिन खाली है उन्हें इस लुकअप में अनदेखा किया जाता है।

LANGस्थानीय वातावरण को निर्दिष्ट करने के लिए सामान्य पर्यावरण चर है। एक उपयोगकर्ता के रूप में, आप सामान्य रूप से इस चर को सेट करते हैं (जब तक कि कुछ अन्य चर पहले से सिस्टम द्वारा, /etc/profileया इसी तरह की आरंभिक फ़ाइलों में सेट नहीं किए गए हों )।

LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, और इतने पर, ओवरराइड करने के लिए होती वातावरण चर रहे हैं LANGऔर केवल एक ही स्थान श्रेणी को प्रभावित करने वाले।
उदाहरण के लिए, मान लें कि आप स्पेन में एक स्वीडिश उपयोगकर्ता हैं, और आप अपने कार्यक्रमों को स्पेनिश सम्मेलनों के अनुसार संख्याओं और तिथियों को संभालना चाहते हैं, और केवल संदेश स्वीडिश में होने चाहिए। तब आप प्रोग्राम के उपयोग से ' sv_ES' या ' sv_ES.UTF-8' नाम का लोकेल बना सकते थे localedef। लेकिन यह सरल है, और एक ही प्रभाव को प्राप्त करता है, LANGचर को es_ES.UTF-8और चर को सेट LC_MESSAGESकरने के लिए sv_SE.UTF-8; ये दो स्थान पहले से ही ऑपरेटिंग सिस्टम के साथ पूर्वस्थापित हैं।

LC_ALLएक पर्यावरण चर है जो इन सभी को ओवरराइड करता है। यह आमतौर पर स्क्रिप्ट में उपयोग किया जाता है जो विशेष कार्यक्रम चलाते हैं। उदाहरण के लिए, कॉन्फ़िगर जीएनयू द्वारा उत्पन्न स्क्रिप्ट autoconfउपयोग LC_ALLसुनिश्चित करें कि विन्यास परीक्षण वातावरण निर्भर तरीकों से काम नहीं करते बनाने के लिए।

कुछ प्रणालियों, दुर्भाग्य से, सेट LC_ALLमें /etc/profileया इसी तरह के प्रारंभ फाइलों में। एक उपयोगकर्ता के रूप में, आपको इस चर को अनसेट करना होगा यदि आप सेट करना चाहते हैं LANGऔर वैकल्पिक रूप से कुछ अन्य LC_xxxचर।


तो ट्रांसलेक्शन कहां से आता है? मैंने जो पूछा, उसका कारण यह है कि मैंने अपडेट के पहले और बाद में अंग्रेजी में git किया था, यह मेरी भाषा में बदल गया, लेकिन मैं इस तरह से नहीं।
user905686

@ user905686 क्षमा करें, मेरी गलती है। गेट गेटेक्स के साथ, लोकेल का समर्थन करता है। तो अपने पर्यावरण चर की जाँच करें। मैं अपने संपादित उत्तर में जांच करने के लिए कौन सा विवरण देता हूं।
वॉनक

क्या होगा अगर मैं सिर्फ अन्य कार्यक्रमों के लिए नहीं बल्कि git के लिए भाषा बदलना चाहता हूं? Ie मेरे लिए अनुवाद कुछ चीजों को तोड़ते हैं, इसलिए मैं हमेशा चाहता हूं कि (कोई बात नहीं जिसे प्रोग्राम कहता है) LANG = C और बाकी सब कुछ मेरी मूल भाषा में है। कोई विचार?
Droggl

@Droggl जब तक आप LANGbash / shell / DOS सत्र में सेट करते हैं , तब तक आप git(या से लॉन्च कर रहे हैं git-gui), केवल git(या git-gui) उस विशिष्ट सेटिंग का उपयोग कर रहे होंगे। अन्य सभी कार्यक्रम सिस्टम / उपयोगकर्ता पर्यावरण चर से विरासत में मिलेंगे।
VonC

4

भागो LC_MESSAGES=C git, LC_ALL = C या LANG = C नहीं और फ़ाइलों को हटाने या नाम बदलने की कोई आवश्यकता नहीं है।

यह आदेश आउटपुट Git संदेशों को अंग्रेजी में बदलता है।


2

अगर यह लोकेल भाषा नहीं खोज सकता है तो जीआईटी अंग्रेजी में डिफॉल्ट करता है।

इसलिए यदि आप चाहते हैं कि जीआईटी अंग्रेजी में हो, तो बस उस भाषा फ़ाइल को तोड़फोड़ करें जिसके साथ वह चल रही है। मेरे मामले में यह हमेशा जर्मन (यानी: de.msg ) के साथ चल रहा था ।

यदि मैंने इसे हटा दिया है या इसका नाम बदल दिया है, तो यह अंग्रेज़ी में डिफ़ॉल्ट हो गया।

यहां छवि विवरण दर्ज करें

यहाँ मैंने फ़ाइल का नाम बदला

यहां छवि विवरण दर्ज करें


विंडोज 2.x (64 बिट) के लिए Git के साथ यह अंदर होगा C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
कोराकटोर

इस दृष्टिकोण का लाभ यह हो सकता है कि गिट के अद्यतन के बाद, अनुवाद वापस हो जाएगा (और शायद बेहतर होगा), इसलिए आप फिर से तय कर सकते हैं कि आप इसका उपयोग करना चाहते हैं या इसे फिर से निकालना चाहते हैं।
user905686

मैंने स्रोत कोड की जाँच की है, ऐसा लगता है कि git अंग्रेजी का समर्थन नहीं करता है: github.com/git-l10n/git-po/tree/master/po यहां तक ​​कि मैं पहले चीनी और स्वीडिश से पहले अंग्रेजी का उपयोग करना चाहता हूं (en_GB: en: zh_HK: zh_CN: zh: sv_SE: sv), git अभी भी मुझे चीनी दिखाती है।
माइकल Tsang

होम OSw के माध्यम से स्थापित Git के साथ मैक OSx पर, मुझे इसमें स्थान मिले /usr/local/Cellar/git/2.21.0/share/locale/
मैग्नस डब्ल्यू

0

जैसा कि बेंगट ने सुझाव दिया: अंग्रेजी में सभी संदेशों को प्रदर्शित करने के लिए इन पंक्तियों को अपने में जोड़ें ~/.bashrcया ~/.bash_profileजोर लगाने के लिए मजबूर करें: vim ~/.bashrc- इस प्रोफ़ाइल के लिए (यदि आप उपयोगकर्ता हैं ubuntuऔर आप इसे संपादित करते हैं तो यह केवल इस उपयोगकर्ता के लिए होगा); इस पंक्तियों को जोड़ें:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also 
LANG=en_GB

और आपके द्वारा शेल में लिखने के लिए आवश्यक फ़ाइल बंद करने के बाद:

source ~/.bashrc 

नई सेटिंग्स को फिर से लोड करने या टर्मिनल से बाहर निकलने और फिर से कनेक्ट करने के लिए :)


क्या करना चाहिए LANG=en_GBमें अतिरिक्त ~/.bashrcहै? क्या यह केवल स्थानीय चर को परिभाषित नहीं करता है LANG?
user905686

0

यहाँ मेरा समाधान है git भाषा बदलने के लिए इस उत्तर का पालन करें और यह

1) nano ~/.bashrc
2) alias git='LANG=en_GB git'फ़ाइल में जोड़ें
2) फ़ाइल को सहेजें
4)source ~/.bashrc

अब आपका git पहले से ही भाषा को बदल देता है। हालाँकि, यदि आपके पुनरारंभ टर्मिनल के बाद और यह अब काम नहीं कर रहा है, तो आपको इसकी आवश्यकता है

4.1) nano ~/.profile
4.2) source ~/.bashrc
फ़ाइल को बचाने के लिए 4.3) जोड़ें

source ~/.bashrcजब भी आप टर्मिनल खोलेंगे तो यह रन बनाएगा

आशा है कि यह मदद करेगा

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