명령 출력 언어를 모국어에서 영어로 전환하려면 영어 명령 출력 (오류 메시지)으로 Ask Ubuntu 질문을 게시 할 수 있습니까?
명령 출력 언어를 모국어에서 영어로 전환하려면 영어 명령 출력 (오류 메시지)으로 Ask Ubuntu 질문을 게시 할 수 있습니까?
답변:
export LC_ALL=C
충분하다. 모든 후속 명령 출력은 영어입니다.
자세한 정보 : "LC_ALL = C"의 기능은 무엇입니까?
모국어로 되돌리려면 LC_ALL
변수를 설정 해제하십시오 .
unset LC_ALL
다음은 DE와 EN 로캘 사이를 전환하는 bash 함수입니다.
이 코드를 원하는 언어로 확장 할 수 있습니다. 이것을 사용하려면 ~/.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
일부 프로그램의 misbehaviours을 피하기 위해.
코드를 모국어로 확장하는 것은 매우 간단합니다. 다음 명령을 호출하여 필요한 값을 찾을 수 있습니다.
env |egrep -e 'LC_ALL|LANG'
case
에 맞게 입력을 지정하여 쉽게 조정할 수 있습니다 <lang>_<country>
. 그런 다음 UTF-8을 가정하여 전달할 수 있습니다. 깔끔한 솔루션에 관심이 있다면 locale -a
요청 된 로캘이 실제로 설치되어 있는지 확인하기 위해 사용자 입력 을 확인해야합니다.
터미널 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'
Bash 쉘을 다시 시작하십시오. 이제 명령이 basheng
있습니다. Bash에 입력하여 영어 Bash 쉘을 얻으십시오. 영어 쉘 유형을 유지하려면 exit
.
출처:
LANG
이 모든 출력을 우회하기에는 충분 하지 않습니다 .
LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash
더 낫습니까?
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL
.
이것은 환경 변수를 통해 설정할 수있는 로케일 설정을 통해 구성됩니다 . 변수에는 네 개의 계층이 있습니다. 첫 번째로 설정된 것이 우선합니다 :
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 등은 없습니다.
보기 나는 내 로케일을 어떻게 설정해야하고하는 의미는 무엇인가? 로케일에 대한 자세한 개요
LANGUAGE
는 우선 순위가 높아서 LC_ALL
프로그램 LC_ALL
이 예측 가능한 출력을 얻도록 설정 한 다음 버그가 발생 하여 예상되는 출력을 얻지 못하므로 혼동을 일으킨다는 것입니다.
LANGUAGE
그럼에도 불구하고 버그는 귀찮고 찾기 어려울 수 있기 때문에 설정 은 좋지 않습니다. 그래도 맞습니다 LANGUAGE
. unsetting을 언급해야합니다 .
가장 쉬운 방법은 Alt + F2 를 누르고 다음 명령을 실행 하여 터미널을 여는 것입니다 .
env LANGUAGE=en gnome-terminal
당신의 ~/.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을 설정하면 다음 중 어느 것도 영향을 미치지 않습니다.
LANG
될 수 있으며 도움이 될 수 있지만 영어 로 된 오류 메시지 는 필요하지 않습니다 . 저자는 영어로 작성 해야하는 내용을 요구합니다 . 따라서 스페인어 터미널 텍스트로 영어로 작성된 질문은 괜찮지 만 영어 터미널 텍스트로 스페인어로 작성된 질문은 그렇지 않습니다.