명령 출력 언어를 모국어에서 영어로 전환


84

명령 출력 언어를 모국어에서 영어로 전환하려면 영어 명령 출력 (오류 메시지)으로 Ask Ubuntu 질문을 게시 할 수 있습니까?


5
이것은 다소 오해의 소지가 있습니다. 사람들이 실제로 이것을 할 필요는 없습니다 . (이러한 방법으로 OP에 부담을 주도록 OP가 필요하다고 생각되면 누군가에게 지시하기 전에 메타에 게시하십시오.) 이렇게 변경 LANG될 수 있으며 도움이 될 수 있지만 영어 로 된 오류 메시지 는 필요하지 않습니다 . 저자는 영어로 작성 해야하는 내용을 요구합니다 . 따라서 스페인어 터미널 텍스트로 영어로 작성된 질문은 괜찮지 만 영어 터미널 텍스트로 스페인어로 작성된 질문은 그렇지 않습니다.
Eliah Kagan

4
@EliahKagan 네, 맞습니다. 그러나 어쨌든 나는 그것이 유용하다고 생각합니다.
BuZZ-dEE

2
동의합니다. 사람들이이 작업을 수행 할 수 있으며이 질문을 게시 한 것이 좋습니다! 그러나, 중요한 사람들이 우리가하지 않습니다 알고 있어요 필요로 이 작업을 수행해야합니다 (그러나 않는 질문과 답변 자체는 영어로 작성하도록 요구).
Eliah Kagan

8
@EliahKagan 반대로 실제 오류 메시지 를 게시하는 것이 매우 중요하며이 사이트의 주요 사용자가 인식하고 테스트 할 수 있기 때문에 영어로 게시하는 것이 좋습니다. (그리고 절대로 다시 번역 된 오류 메시지를 게시하지 마십시오. 정확한 문구, 구두점 및 간격도 중요 할 수 있기 때문에 항상 복사하여 붙여 넣기하십시오.)
Gilles

답변:



13

터미널을위한 bash 기능

다음은 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'

독일어 (DE) 이외의 언어로 스크립트를 변경해야합니까? 모국어와 독립적 인 솔루션을 검색합니다.
BuZZ-dEE

@ BuZZ-dEE :를 버리고 형식 case에 맞게 입력을 지정하여 쉽게 조정할 수 있습니다 <lang>_<country>. 그런 다음 UTF-8을 가정하여 전달할 수 있습니다. 깔끔한 솔루션에 관심이 있다면 locale -a요청 된 로캘이 실제로 설치되어 있는지 확인하기 위해 사용자 입력 을 확인해야합니다.
bitmask

@ buzz-dee : 업데이트 된 답변보기
H.-Dirk Schmitt

7

터미널 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이 모든 출력을 우회하기에는 충분 하지 않습니다 .
bitmask

@ bitmask는 이것입니다 : LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash더 낫습니까?
BuZZ-dEE

2
실제로는이어야합니다 LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL.
bitmask

LC_ALL = C bash 만 작동합니다.
liquide

5

이것은 환경 변수를 통해 설정할 수있는 로케일 설정을 통해 구성됩니다 . 변수에는 네 개의 계층이 있습니다. 첫 번째로 설정된 것이 우선합니다 :

  • 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를 사용하지 마십시오 ?? 사용중인 OS는 모르겠지만 설치 프로그램과 다양한 GUI를 통해 Ubuntu LANGUAGE가 기본적으로 항상 사용됩니다. 어떤 버그입니까, btw? 또한 링크 된 답변을 읽었 으며 유용한 일반 정보가 포함되어 있어도 권장 사항은 Ubuntu 데스크톱에 대한 좋은 조언이 아닙니다.
Gunnar Hjalmarsson

@GunnarHjalmarsson의 주요 문제 LANGUAGE는 우선 순위가 높아서 LC_ALL프로그램 LC_ALL이 예측 가능한 출력을 얻도록 설정 한 다음 버그가 발생 하여 예상되는 출력을 얻지 못하므로 혼동을 일으킨다는 것입니다.
Gilles

우분투 GUI는 LANG와 LANGUAGE를 일관되게 설정하고 LC_MESSAGES는 LANG에서 상속받습니다. LANGUAGE가 설정되는 이유는 언어 지원에 우선 순위 목록을 설정하기위한 인터페이스가 있기 때문입니다.
Gunnar Hjalmarsson '11

@GunnarHjalmarsson 알고 있습니다. LANGUAGE그럼에도 불구하고 버그는 귀찮고 찾기 어려울 수 있기 때문에 설정 은 좋지 않습니다. 그래도 맞습니다 LANGUAGE. unsetting을 언급해야합니다 .
Gilles

여기에 대한 답변은 디자인 문제를 논의하기에 적절한 장소가 아닙니다. 이러한 토론은 예를 들어 우분투-디벨-토론 에서 더 잘 개최됩니다 . 사용자에게 도움이 되려면 실제로는 디자인이 최적인지 아닌지에 관계없이 현재 디자인을 기반으로해야한다고 생각합니다. "일부 버전"은 모두 지원되는 Ubuntu 데스크탑 및 파생 버전이며, 쿠분투를 제외하고는 가능합니다.
Gunnar Hjalmarsson '11

1

가장 쉬운 방법은 Alt + F2 를 누르고 다음 명령을 실행 하여 터미널을 여는 것입니다 .

env LANGUAGE=en gnome-terminal

1

당신의 ~/.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을 설정하면 다음 중 어느 것도 영향을 미치지 않습니다.

https://help.ubuntu.com/community/Locale


이 답변이 왜 다운되었는지 모르겠습니다. 예, 더 많은 설명을 사용할 수 있지만 허용 된 답변과 달리 영구적으로 작성하고 더 구체적으로 만드는 방법을 보여줍니다.
Xerus

0
  1. 왼쪽의 톱니 바퀴 아이콘을 클릭합니다 (Unity 패널의 시스템 설정)
  2. 언어 지원을 클릭하십시오
  3. 지역 형식 선택
  4. "표시 숫자, 날짜 및 통화 금액 ..."을 영어로 설정하십시오.
  5. 세션을 로그 아웃하고 다시 로그인하십시오 (필수!)

끝난.

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