영어로 콘솔 메시지를받는 방법?


13

저는 프랑스어로 데비안 시스템을 프랑스어로 사용합니다.

그러나 터미널에 영어로 오류 메시지가 표시되고 싶습니다. 영어권 웹 사이트에 게시 할 수 있습니다.

로케일을 변경하려면 어떻게해야합니까? 모든 시스템을 영어로 사용하고 싶지는 않습니다.


1
export LANGUAGE=English
Stéphane Chazelas

@StephaneChazelas 명령의 정확한 효과와 영향을 정확하게 설명하십시오 (아마도 답변보다 더 많은 답변 일 것입니다).
ppr

답변:


10

현재 쉘에서 LANG 변수를 변경해야합니다.

놓다

export LANG=en_US.UTF-8

쉘 rc 파일에서 (bash의 경우 ~/.bashrc) 터미널 세션을 다시 시작하십시오 (또는을 사용하여 rc 파일을 한 번 더 소스 source ~/.bashrc하거나 bash를 다시 시작하십시오 exec bash)

전에이 로케일을 생성해야합니다.

또한 사용할 수 있습니다 export LANG=C.

또한 다른 LANG 변수가 있습니다 (man bash의).

   LANG   Used to determine the  locale  category  for  any  category  not
          specifically selected with a variable starting with LC_.
   LC_ALL This  variable  overrides  the  value  of LANG and any other LC_
          variable specifying a locale category.
   LC_COLLATE
          This variable determines the collation order used  when  sorting
          the  results  of pathname expansion, and determines the behavior
          of  range  expressions,  equivalence  classes,   and   collating
          sequences within pathname expansion and pattern matching.
   LC_CTYPE
          This  variable  determines  the interpretation of characters and
          the behavior of character classes within pathname expansion  and
          pattern matching.
   LC_MESSAGES
          This  variable  determines  the locale used to translate double-
          quoted strings preceded by a $.
   LC_NUMERIC
          This variable determines the locale  category  used  for  number
          formatting.

1
LANG콘솔에서 실행되는 프로그램의 언어를 설정하기 위해 환경 변수를 사용 하는 것이 잘못되었습니다. 그게 무슨 LC_MESSAGESLANGUAGE에 대한 의미하는 환경 변수. 'LANGUAGE'로케일 변수-영어를 기본 언어로 설정하는 방법을 참조하십시오 . gettext의 버그? .
Piotr Dobrogost

2
독자에게 답변을 받아도 답변이 정확하지 않다는 경고문을 추가합니다. 재설정 LC_ALL=C과 함께 대신 사용해야합니다 unset LC_ALL. unix.stackexchange.com/q/87745/168003
el-teedee

9

다음과 같은 구문으로 응용 프로그램을 호출 할 수 있습니다.

예를 들어 영어 맨 페이지 (단 하나의 명령)를 원합니다.

user@host:~# LC_ALL=C man ls

또는 오류가 발생했습니다 (시스템이 독일어 임).

user@host:~$ ls -la /root/
ls: Öffnen von Verzeichnis /root/ nicht möglich: Keine Berechtigung

user@host:~$ LC_ALL=C ls -l /root/
ls: cannot open directory /root/: Permission denied

유용합니다. (하지만 내 질문이 영구적으로 수행 되었기 때문에 다른 답변을 수락했습니다).
ppr

2
"c"보다 많은 "C", "c"는 데비안 8에서 작동하지 않습니다.
Tristan

나는 메시지 LC_ALL=C대신 LC_ALL=c나에게 실패 하는 편집을 제안했다bash: warning: setlocale: LC_ALL: cannot change locale (c)
el-teedee

-3

이것을 참조하십시오 : 1) https://wiki.debian.org/ChangeLanguage

간단히 말해서 LOCALE (LANG를 통해)을 .bashrc에 설정하는 것이 좋습니다.

export LANG=en_US.UTF-8

그래도 시스템 언어를 바꾸고 싶지 않다. 영어로 된 오류 메시지가 필요합니다. 시스템 언어를 변경하면 많은 결과가 발생합니다.
ppr

.bashrc에 넣으면 셸과 .bashrc를 읽는 명령에만 영향을 미칩니다. "내보내기"를 생략하면 해당 셸에서 시작한 명령으로 전파되지 않습니다.
C. Kelly

@ckelly 오류 메시지 언어 외에 많은 것들이 바뀝니다. 예를 들어, 정렬 순서, 숫자 형식, ...
derobert

@ppr은 괜찮지 만 시스템 언어를 바꾸고 싶지 않습니다. 왜 같은 "솔루션"을 제공하는 대답을 받아들였습니까?
Piotr Dobrogost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.