Mac OS X에서 $ LANG 변수는 어디에 설정됩니까? 현지화되어 있음을 알았습니다.

wgetLion OS X을 설치 한 후 처음으로 사용 했는데 wget이 자국어로 현지화되어 있음을 알았습니다. set터미널에서 명령을 실행 하면 LANG변수가 현지 언어를 나타내는 것으로 나타났습니다 . 어디서 변경 wget하거나이 설정 을 무시할 수 있습니까 ?

최신 정보

여기에 locale나에게주는 것이있다 :

LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=

따라서 매개 변수가 아닌 모든 출력 (예 : 프롬프트 및 디버그 메시지)은 리투아니아어입니다. 그게 내 문제 야 나는 영어로 돌아가고 싶습니다.

zsh로그인 쉘로 사용 하고 있습니다.



답변

기본적으로 터미널은 로케일 환경 변수를 설정하여 터미널이 현재 사용중인 언어 및 시간 / 날짜 / 번호 형식을 선택합니다.

시스템 환경 설정> 언어 및 텍스트

(이것은 Lion의 이름입니다. 이전 시스템에서는 기본 설정 패널의 정확한 이름이 다를 수 있습니다.)

임시 해결책은 영어를 언어 목록의 맨 위로 드래그 한 다음 터미널을 연 다음 리투아니아어를 맨 위로 이동하는 것입니다. 그러면 터미널 만 영어로 사용됩니다. 그러나 터미널을 종료했다가 다시 시작하면 리투아니아어로 재설정됩니다.

지속적인 접근 방식은 터미널에 로케일 환경 변수를 설정하지 않도록 설정하는 것입니다.

터미널> 환경 설정> 설정> [프로필]> 고급> 시작시 로케일 환경 변수 설정

그러면 언어가 지정되지 않은 로캘의 기본값이 “C”가되고 대부분의 프로그램은 기본적으로 영어가됩니다.

이 기능을 끄면 일부 프로그램이 터미널에서 어떤 문자 인코딩을 사용하는지 인식하지 못하며 ASCII 또는 ISO-Latin-1로만 가정합니다. 따라서 터미널에서 UTF-8 (기본값)을 사용하는 경우 해당 프로그램이 원하는대로 작동하거나 작동하지 않을 수 있습니다.

이 문제가 대부분인 경우 wget기본 설정 프로파일의 사본을 만들고 사용자 정의 프로파일에서 로케일 설정을 끄고를 사용할 때만 해당 프로파일 wget을 사용하여 UTF-8을 계속 지원할 것을 권장합니다. 다른 프로그램을 사용할 때는 기본 설정을 사용하십시오.

다른 사람들이 언급했듯이 셸 시작 스크립트에서 터미널이 제공 한 초기 로캘 설정을 무시할 수도 있습니다. zsh의 경우 ~ / .zshrc에 넣으십시오. bash의 경우 ~ / .bashrc를 사용하십시오 (아직없는 경우 ~ / .bashrc를 실행하는 ~ / .bash_profile을 작성하십시오).

각 로캘 환경 값에 대한 자세한 내용은 x-man-page : // 1 / locale을 참조하십시오.

그러나 unset LANG“C”로 설정했거나 설정 한 경우 일반적으로 모든 쉘 및 프로그램에 적용되지만 대부분 UTF-8을 사용하고 터미널이 로케일 변수를 일치 시키도록 설정하는 경우가 많습니다. 최고 수준의 협력, 충실도 및 기능을 얻을 수 있습니다.

따라서 해당 경로를 사용하려는 경우 초기 값을 바꾸지 않고 편집하기위한 코드를 작성하여 인코딩 정보 ( “UTF-8”)를 유지하고 언어를 영어로 설정하십시오. 변수를 “C”로 설정하는 대신.

예를 들어, 이것은 zsh 및 bash에서 작동합니다.

# Replace Lithuanian with English
export LANG=${LANG/lt_LT/en_US}

때로 LANG="lt_LT.UTF-8"변경됩니다 LANG="en_US.UTF-8". 이것을 wget테스트 할 수는 없지만 충분합니다.

이 방법을 사용하면 터미널에서 문자 인코딩 환경 설정을 변경하면 쉘 시작 스크립트에서 문자 인코딩 환경 설정을 대체하지 않습니다.


답변

여기에 설정되어 있습니다 …

여기에 이미지 설명을 입력하십시오

풀다운에서 더 많거나 적은 옵션을 원하면 인코딩 탭으로 가서 더 많은 바운티를보십시오.


답변

터미널을 시작할 때마다로드되는 .profile 파일에서 언어를 설정 하여이 문제를 해결했습니다.

export LANG="en_US.UTF-8"
export LC_ALL="POSIX"


답변

Linux 경험을 기반으로 LC_LANG을 사용하여 현지화를 완전히 변경하지 않으려는 경우 영어로 된 시스템 메시지를 원한다면 방금 설정하십시오.

LC_COLLATE=C    (to have standard sorting in ls, etc)
LC_CTYPE=en_US.UTF-8


답변

프랑스어로 된 데비안 서버와 macsox bash 클라이언트를 사용하여 macosx 사용자 디렉토리의 .bash_profile에 이것을 추가해야했습니다.

수출 LANG = fr_FR.UTF-8

해결되었습니다.


답변

다른 대답은 정확합니다. 즉 시작시로켈을 사용하여 로케일 환경 변수Terminal설정 하는 설정에 관한 것 /etc/profile입니다. 그러나 특히 원격 ssh로그인 으로 인해 “문제”가 발생하는 경우 이해해야 할 또 다른 방법이 있습니다 .

OpenSSH (Linux, BSD 및 macOS에서 사용됨)는 환경 변수를 클라이언트 환경에서 서버가 시작하는 쉘로 보낼 수 있습니다. 클라이언트가 클라이언트를 보내도록 구성되어 있고 서버가 클라이언트를 수락하도록 구성된 경우에만이를 수행합니다. 클라이언트 ( ~/.ssh/config)에는 다음이 있어야합니다.

SendEnv LANG LC_*

서버 ( /etc/ssh/sshd_config)는 다음이 필요합니다.

AcceptEnv LANG LC_*

둘 다 있으면 클라이언트의 로컬이 ssh 서버의 로그인 쉘로 전파됩니다.

$ ssh me@my-mac locale
LANG="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_ALL=

Snow Leopard 에는 기본적으로 필요한 서버 설정이 없습니다 . 그것은에있다 시에라 . 수정 후 SSH 서버를 다시 시작해야합니다 /etc/sshd_config!!!


답변