답변:
언어 설정을 변경하는 데 사용할 수있는 몇 가지 환경 변수가 있습니다. locale
명령 을 실행하여 현재 로케일 설정을 볼 수 있습니다 . 모든 로캘 설정을 영어로 변경하려면을 사용하십시오 LANG=C
. 이 C
언어는 추가 언어 팩을 설치하지 않고도 항상 사용할 수 있습니다. 영어 이외의 로캘로 임시 변경하려면 @ mklement0 의 게시물을 참조하십시오 .
예 :
기본 언어 설정으로 명령을 실행하고 현재 로케일 설정을 인쇄하십시오.
$ /nonexistent
bash: /nonexistent: Bestand of map bestaat niet
$ locale
LANG=nl_NL.UTF-8
LANGUAGE=
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=
한 프로그램의 언어를 일시적으로 무시하고 실제로 임시임을 표시하십시오.
$ LANG=C ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet
현재 쉘에서 실행 된 모든 명령의 로케일을 변경하고 증명을 다시 포함하십시오.
$ LANG=C
$ ls /nonexistent
ls: cannot access /nonexistent: No such file or directory
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
LANGUAGE
입니다 예외 : GNU gettext에은에 우선 순위를 부여 LANGUAGE
값 을 제외하고 (유효)하면 LC_MESSAGES
값 (일반적으로 통해 간접적으로 설정 LANG
또는 LC_ALL
) 중 하나입니다 C
또는 (동의어) POSIX
. 또한 노트 LANGUAGE
가있는 반면,이 답변에 해제 될 일이 있다 기본적으로 설정하고이 설정되어있는 경우, 당신은 오버라이드 (override) 할 필요 는 A를 전환 할 특정 로케일의 언어 ( "C"에 반대는 / "POSIX")는, 어느입니다 당신이 찾은 것.
LANGUAGE
명시 적으로 설정되지 않거나 재정의 되지 않으면 다른 로케일에서는 작동하지 않습니다 . 질문의 일반적인 제목을 감안할 때 사람들은이 답변이 영어 이외의 언어로 전환하려는 것을 발견 할 가능성이 있으므로이 정보를 답변에 추가하십시오.
LANGUAGE
: 당신이 원하는 경우
Lekensteyn의 유용한 답변 은 OP가 요청한대로 요청에 따라 미국 영어 로 전환하고 싶을 때 유용 하지만 필요 에 따라 다른 언어 로 전환하려면 더 많은 작업이 필요합니다.
으로 시작하기 전에, 당신은 메시지 테이블을 설치해야 sudo apt-get install language-pack-<lang-tag>
하는 경우, <lang-tag>
A는 간단한 RTF 5646 언어 하위 태그 등, es
스페인어가.
GNU gettext를 기반 유틸리티 비표준 우선권을주는 LANGUAGE
환경 변수 [1]
POSIX 정의 로케일 환경 변수를 통해 LC_ALL
, LC_MESSAGES
그리고 LANG
(순서대로).
그 감안할 때 LANGUAGE
우분투 시스템에 기본적으로 설정되어있다 [2] , 즉로, 문자열 의 LANG
(예를 들어, 하나 간단한 언어 태그를 반영하는 값 es
언어 영역 태그 (예를 들어, 스페인어) 또는 de_DE
독일어의 독일 변형에 대한) LANGUAGE
다른 언어의 메시지를 적용하려면 설정을 해제하거나 재정의해야합니다 . [삼]
LANGUAGE
예 : 스페인어 ( es
) 메시지로 임시 전환 :
$ LANGUAGE=es ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
참고 : 간단한 언어 태그 es
는 충분하지만 지역 식별자 (예 : es_AR
아르헨티나의 경우) 및 문자 세트 접미사 (예 :)를 추가 할 수 있습니다 es_AR.UTF-8
.
그러나 지역화 된 메시지는 언어 수준 에서만 존재할 수 있으며 대체는 언어 부분 과 일치하는 메시지 ( es
이 경우)를 사용하는 것입니다.
LANGUAGE
및 설정LC_ALL
이 대체 솔루션은 먼저 정의를 해제 LANGUAGE
한 다음 POSIX 로케일 환경 변수 LC_ALL
를 사용 하여 암시 적으로 LC_MESSAGES
[4]를 설정합니다 .
$ LANGUAGE= LC_ALL=es_ES.UTF-8 ls NoSuchFile
ls: no se puede acceder a NoSuchFile: No existe el archivo o el directorio
이 솔루션은 모든 지역화 측면을 지정된 로케일 (예 : LC_TIME
날짜 / 시간 형식)로 설정하고 (암시 적으로) 설정 LC_MESSAGES
을 통해 비 GNU 프로그램에 원하는 언어를 알려줍니다 .
문자셋 접미사를 포함 LC_ALL
하여 정확한 전체 로케일 이름이 어떻게 효과적이어야 ( es_ES.UTF-8
) ( LANGUAGE
단순한 언어 태그 ()와 같은 es
) 가 필요한지 참고하십시오 . 설정 LC_MESSSAGES
및 에도 동일하게 적용됩니다 LANG
. 유효하지 않은 / 설치되지 않은 로케일 이름을 지정하면 POSIX 로케일과 미국 영어로 대체됩니다.
Lekensteyn의 대답에도 작동하는 [1] 이유 없이 반환하기 / 재정 LANGUAGE
되는 예외 : 제 (유효) 경우 LC_MESSAGES
의 값 (전형적으로 간접적으로 설정 LANG
하거나 LC_ALL
) 중 하나 인 C
또는 (동의어)이 POSIX
무관의 값,이 값이 존중 LANGUAGE
, 만약에 어떠한. 반대로, (유효한) LC_MESSAGES
값이 다른 특정 로케일이면 LANGUAGE
우선합니다.
[2] 이것은 우분투에는 적용 되지만 반드시 다른 맛 에는 적용 되지 않습니다 . Lekensteyn는 것을 말한다 쿠분투가 않습니다 없습니다 설정 LANGUAGE
.
논란의 여지가 있지만 현재 로케일을 결정하는 값에 의해 암시 된 값이 존중 된다는 점을 감안할 때 기본적으로 설정 LANGUAGE
되어서는 안됩니다 .
LC_MESSAGES
LANG
[3]이 방법을 사용하여 LANGUAGE=C
또는 LANGUAGE=POSIX
( LANG=C
/ 의 대안으로)를 지정하여 [US] 영어로 전환 할 수도 있습니다.이 값이 LANG=POSIX
실제로 인식되는지 또는 폴백 메커니즘 인지 여부는 확실하지 않습니다. 언어 태그 로 시작하지 마십시오. 아마도 더 나은 선택이 될 것입니다 en_US
.
[4]은 거기 에지 으로 실행의 호출이 접근하지 작업 않는 경우 경로 - - 상대 또는 절대 여부 반면, 지정된 언어로 전환되지 않고 단순히 파일명 : 수행이
LANGUAGE= LC_ALL=es_ES.UTF-8 /path/to/no_such_utility
수행 되지 메시지 출력 (작품 )에 현재의 지역 반면
LANGUAGE= LC_ALL=es_ES.UTF-8 no_such_utility
) 스페인어 에러 메시지를 출력한다 (한다.
이유와 이유가 무엇인지 아는 사람이 있으면 알려주십시오.
LANG
또는LANG_ALL
작동하지 않습니다LANGUAGE
. 참조 왜 나를 위해 언어를 변경 LANG 환경 변수를하지 무시한다?