LANG 환경 변수를 재정의하면 왜 언어가 변경되지 않습니까?


11

현재 환경으로 다른 언어로 응용 프로그램을 실행하려고합니다. 간단하게 시작하기 위해의 언어를 변경하고 싶었습니다 ls.

여기에 내가 읽은 내용이 있습니다 (관련 질문은 아래 참조) : LANG지원되는 로케일 중 하나로 설정 하십시오.

LANG=nl_NL.UTF-8 ls /nonexistent

네덜란드어 (NL) 출력을 표시합니다.

그러나 여전히 영어 출력이 나타납니다.

$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory

내 현재 환경 :

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

확인하기 위해 다음을 확인했습니다.

  • 로케일이 지원됩니다.

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    nl_NL@euro ISO-8859-15
    
  • 로케일이 생성됩니다.

    sudo locale-gen nl_NL.UTF-8
    

    그리고 sudo dpkg-reconfigure locales또한 생성 된 것이다.

  • 네덜란드어 언어 팩을 설치했습니다 (이미 설치됨).

    sudo apt-get install language-pack-nl
    

다른 무엇을 시도 했습니까?

  • 사용 export모두 설정 LANG하고 LANGUAGE대신 명령을 붙이는의.
  • 설정도 LC_ALL.

아이러니하게도, 일부 (일부만!) GUI 응용 프로그램은 실제로 네덜란드어로되어 있지만 전혀 구성하지 않았습니다!

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

나는 Kubuntu 12.04 (.2)에 있습니다.

비슷한 질문 (사용할 수 없음) :

내 시스템에 어떤 문제가 있습니까? 이 부분을 어디에서 더 디버깅해야합니까?

답변:


12

LANG보다 우선하는 LANGUAGE가 설정되고 변경되지 않기 때문입니다.

$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet

자세한 정보는 GNU gettext 문서에 있습니다 .

GNU gettext는 메시지 처리를 위해 LC_ALL 및 LANG보다 LANGUAGE를 우선시하지만 LANG (또는 LC_ALL)을 기본 언어로 설정해야합니다. 이것은 시스템 라이브러리의 다른 부분에 필요합니다.


나는 이미 이것을 시도했다고 맹세했다. 그러나 쉘 역사를 살펴보면 로케일을 생성 하기 전에 시도한 것이기 때문이라고 생각합니다 . "LANGUAGE가 LANG보다 우선하는 이유"에 대한 소스를 포함 할 수 있습니까? 고마워요
gertvdijk

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