Git의 명령 줄 인터페이스 언어를 어떻게 변경합니까?


103

다른 프로그램의 언어를 변경하지 않고 Linux 설치에서 git (영어로) 언어를 변경하고 싶습니다. 설정을 찾을 수 없습니다. 어떻게하나요?


1
로케일을 변경하려고합니다. 나는 수퍼 유저에게 그 질문을 다시 게시 할 것이라고 생각한다.
JosefAssad

답변:


145

다음 줄을 추가 ~/.bashrc하거나 ~/.bash_profilegit이 모든 메시지를 영어로 표시하도록 강제합니다.

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

별칭 LC_ALL은 환경 변수 LC_ALL가 설정된 경우 일부 시스템에서 재정의해야합니다 LANG. 자세한 설명은 UNIX 사양-환경 변수 를 참조하십시오 .

# 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실행 하려면 쉘을 닫고 다시 시작 해야합니다. 이것에 대해서도 메모를 추가했습니다.
Bengt

.bashrc다시 시작해도 내에서 시도했습니다 . 별칭이 작동합니다. 언어는 변하지 않습니다.
user905686

.bashrc성공적으로 실행 되는지 확인하려면 echo "This is .bashrc"파일 끝에 다음 과 같은 테스트를 추가 할 수 있습니다 . 터미널 또는 전체 시스템을 다시 시작하지 않고도 요청시 실행되도록 할 수도 있습니다 . .bashrc. 마지막으로 첫 번째 항목이 우선하므로 LC_ALL대신 환경 변수 를 설정하는 것이 좋습니다 LANG.
벤 구토

.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/34298 참조 ).

현재 bash 세션 전체에 대해 변경하려면 다음을 입력하십시오.

LANG=C

예를 들어 독일어로 변경하려면

LANG=de_DE.UTF-8

LC_ALL=C제안 해 주셔서 감사합니다. 로케일에 문제가있어서 LC_ALL="en_US"최근에 더 이상 작동하지 않았습니다.
user905686 2014

11

이 줄을 추가하면 문제가 해결되었습니다.

$ more ~/.bash_profile
export LANG=en_US

2
질문은 git 전용 언어를 변경하는 방법입니다. 더 명확하게 업데이트했습니다.
user905686

6

참고 : Git 2.3.1+ (2015 년 1 분기) 이후 Git은 가능한 경우 Accept-Language 헤더를 추가합니다.
참조 f18604b 커밋 에 의해 (이순신 EungJun eungjun-yi)

추가 Accept-Language사용자가 선호하는 언어에 의해 정의 된 표시 헤더 $LANGUAGE, $LC_ALL, $LC_MESSAGES$LANG.

이를 통해 git 서버는 사용자가 선호하는 언어로 원격 오류 메시지를 표시 할 수 있습니다.


git gui 또는 기타 GUI에 대한 로케일 이 있습니다 .그러나 GitSurvey 2010 의 질문 중 하나라는 점을 고려할 때 명령 줄에는 해당되지 않습니다.

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

물론 2010 년부터 다음과 같이 po/README설명합니다.

문자열을 번역하기 전에 먼저 번역 표시를해야합니다.

Git은 시스템 gettext라이브러리 를 래핑하는 국제화 인터페이스를 사용하므로 gettext 문서 ( info gettext터미널의 GNU 시스템) 에있는 대부분의 조언이 적용됩니다.

git 1.7.9+ 이후 (2012 년 1 월) :

Git은 gettext번역이 가능하고 로케일이 적절하게 설정된 경우 가장 일반적인 인터페이스 메시지를 사용자의 언어로 번역하는 데 사용합니다 .
배포자는 새 PO파일을 드롭 po/하여 새 번역을 추가 할 수 있습니다 .

따라서 업데이트가 번역을 엉망으로 만든 경우 gettext사용하는
항목을 확인 하십시오. 예를 들어 " Locale Environment Variables "를 참조하십시오.

로케일은 여러 로케일 범주로 구성됩니다. Aspects를 참조하십시오. 프로그램이 로케일 종속 값을 조회 할 때 다음 환경 변수에 따라 우선 순위에 따라이를 수행합니다.

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, 등, 오버라이드 (override)하는 것을 의미 환경 변수 LANG와 단 하나의 로케일 범주에 영향을 미치는.
예를 들어, 스페인의 스웨덴 사용자이고 프로그램이 스페인어 규칙에 따라 숫자와 날짜를 처리하도록하고 메시지 만 스웨덴어로 작성해야한다고 가정합니다. 그런 다음 프로그램 을 사용하여 ' sv_ES'또는 ' sv_ES.UTF-8' 라는 로케일을 만들 수 있습니다 localedef. 그러나 간단하고, 설정, 동일한 효과를 달성 LANG하는 변수 es_ES.UTF-8LC_MESSAGES변수를 sv_SE.UTF-8; 이 두 로케일은 이미 운영 체제에 사전 설치되어 있습니다.

LC_ALL이 모든 것을 재정의하는 환경 변수입니다. 일반적으로 특정 프로그램을 실행하는 스크립트에서 사용됩니다. 예를 들어, GNU에서 생성 된 구성 스크립트 는 구성 테스트가 로케일 종속 방식으로 작동하지 않는지 확인하는 데 autoconf사용 LC_ALL됩니다.

불행히도 일부 시스템 LC_ALL/etc/profile또는 유사한 초기화 파일에 설정 되어 있습니다. 따라서 사용자 LANG는 다른 LC_xxx변수 를 설정 하고 선택적으로 일부 를 설정하려는 경우이 변수를 설정 해제해야 합니다.


그렇다면 번역은 어디에서 왔습니까? 내가 물은 이유는 업데이트 전후에 영어로 git이 내 언어로 변경 되었기 때문입니다. 그러나 나는 이것을 좋아하지 않습니다.
user905686

@ user905686 죄송합니다, 내 실수입니다. Git은 gettext를 사용하여 로케일을 지원합니다. 따라서 환경 변수를 확인하십시오. 나는 내 편집 된 답변에서 확인할 것을 자세히 설명합니다.
VonC

git 언어 만 변경하고 다른 프로그램은 변경하지 않으려면 어떻게합니까? 즉 나를 위해 번역은 몇 가지를 깨뜨 리므로 항상 git이 (어떤 프로그램이 호출하든) LANG = C와 다른 모든 것을 모국어로 사용하고 싶습니다. 어떤 아이디어?
Droggl

@Droggl LANG사용 git중인 (또는 시작 git-gui하는) bash / shell / DOS 세션 에서 설정하는 한 git(또는 git-gui) 만 해당 특정 설정을 사용합니다. 다른 모든 프로그램은 시스템 / 사용자 환경 변수에서 상속됩니다.
VonC

4

LC_MESSAGES=C gitLC_ALL = C 또는 LANG = C가 아닌 실행 하고 파일을 삭제하거나 이름을 바꿀 필요가 없습니다.

이 명령은 출력 Git 메시지를 영어로 변경합니다.


2

GIT는 로케일 언어를 찾을 수없는 경우 영어로 기본 설정됩니다.

따라서 GIT를 영어로 작성하려면 실행중인 언어 파일을 방해하십시오. 제 경우에는 항상 독일어 (예 : de.msg )로 실행되었습니다 .

삭제하거나 이름을 바꾸면 기본적으로 영어가됩니다.

여기에 이미지 설명 입력

여기에서 파일 이름을 변경했습니다.

여기에 이미지 설명 입력


Windows 2.x (64 비트) 용 Git에서는 C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
Koraktor

이 접근 방식의 장점은 git 업데이트 후 번역이 다시 (또는 개선 될 수 있음) 있으므로 사용할 것인지 다시 제거 할 것인지 다시 결정할 수 있다는 것입니다.
user905686

소스 코드를 확인했는데 git이 영어를 지원하지 않는 것 같습니다 : github.com/git-l10n/git-po/tree/master/po 중국어와 스웨덴어보다 먼저 영어를 사용하고 싶습니다 (en_GB : en : zh_HK : zh_CN : zh : sv_SE : sv), git은 여전히 ​​나에게 중국어를 보여줍니다.
마이클라고 Tsang

Homebrew를 통해 Git이 설치된 Mac OSx에서 로케일을 /usr/local/Cellar/git/2.21.0/share/locale/.
Magnus W

0

Bengt가 제안한대로 다음 행을 추가 ~/.bashrc하거나 ~/.bash_profilegit이 모든 메시지를 영어로 표시하도록 강제합니다 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

여기에 변화 자식 언어의 추적에 내 솔루션은 대답

1) nano ~/.bashrc
2) alias git='LANG=en_GB git'파일에 추가
2) 파일 저장
4)source ~/.bashrc

이제 당신의 자식은 이미 언어를 변경했습니다. 그러나 IF 하여 다시 시작 터미널 후에는 더 이상 작동하지 않습니다, 당신은 필요

4.1) nano ~/.profile
4.2) source ~/.bashrc
4.3 추가 ) 파일 저장

source ~/.bashrc터미널을 열 때마다 실행 됩니다.

도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.