로케일 설정이 올바르지 않습니다. 어떻게 재설정 할 수 있습니까?


43

로케일 문제가 있습니다.
조합 순서 nautilus및 기타 프로그램이 변경되었습니다.
GUI 앱을 시작하면 터미널에 로케일 오류가 나타납니다.

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

locale명령은 오류 메시지를 생성합니다

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

askubuntu question 에서 제안한 것처럼 다음 명령을 실행했지만 변경 사항이 없습니다.

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

나는 또한 askubuntu 질문에 대한 제안을 시도했지만 ... 변화도 없습니다.

    apt-get install --reinstall locales

나는 .. 를 통해 우르두어 입력 방법 편집기를 임시로 설치하고 제거했을 때 시작 되었다고 생각 합니다 IBus. 확실히 같은 날에 일어났습니다.

어쩌면 IBus와 관련이있을 수도 있지만 이전에는 문제가 없었습니다.

  • OS는 10.04입니다

답변:


27

나는 "정상적으로"다시 실행되도록했습니다.

IBus를 완전히 제거하는 것을 포함하여 많은 패키지 재설치 등을 시도한 후 (모두 효과가 없음), 다시 설치해도 수정되지 않는 구성 설정으로 인해 발생할 수 있다고 생각하기 시작했습니다.

나는의 출력이 있음을 발견했다 locale나는 최근에 설치 한 VM이 체크 ... 그래서, UTF-8 과제, 오히려 잃은했다 (우선 LC_ALL을 제외하고 LC_ *의 모든 항목 모두 다른 사람)이 설정되었다 .UTF-8접미사. 아래 그림과 같이 LC_ * 값을 수동으로 설정했습니다.

나는 아마 사용할 수도 LC_ALL="en_AU.UTF-8"있지만, 이것에 대해 독서에, 나는 사용자 지정하는 방법을 발견 한 시스템 날짜와 시간 형식을 , 그리고 LC_ALL내 사용자 지정 설정을 무시합니다.

가장 적합한 방법을 사용했는지 모르겠지만 작동합니다!

수정 된 파일은 다음과 같습니다. /etc/default/locale

  • 이것은 mod 이전의 내용을 보여줍니다 :

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • 이것은 mod 이후 의 내용 보여줍니다 :

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

VM의 동일한 파일에는 다음 한 줄만 포함되어 있습니다.

    LANG="en_AU.UTF-8" 


게시물 주셔서 감사합니다. 기록을 위해 수정 프로그램이 작동하려면 시스템을 다시 시작해야했습니다. (아마도 emacs eval-buffer를 사용 했을까?)
David LeBauer

19

로케일을 다시 정의하고 재구성하면 문제점을 해결할 수 있습니다.

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

당신은 실행하면 sudo dpkg-reconfigure locales사용자가 클릭하여 원하는 지역을 선택할 수 있습니다 spacebar와 함께 이동 타격 전에 Enter.


스페이스 바로 원하는 언어를 선택할 수 있습니다.
Daniel Kmak

@Daniel 이해가 안됩니다 : 스페이스 바?
기 illa 빈센트

1
실행 dpkg-reconfigure하면 확인란이있는 목록이 표시되고 언어를 선택하려면 스페이스 바를 사용해야합니다. 콘솔 프로그램에는 그러한 정보가 없으므로 답변 아래 작성하는 것이 도움이 될 것이라고 생각했습니다. 이 언어를 선택하는 방법을 몰랐습니다.
Daniel Kmak

1
@Daniel done :)

15

당신도 알다시피, 당신 LC_ALL은 비어 있습니다. 나는 다음과 같이했고 도움이되었다.

$ sudo vim /etc/environment

LC_ALL같은 것을 설정하면 en_US.UTF-8광산은 다음과 같습니다 .

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

그런 다음 재부팅하고 실행 locale하면 다음과 같아야합니다.

LANG=zh_CN.utf8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

이 솔루션은 Ubuntu 12.04 LTS에서 정확하게 작동합니다
speciousfool

설정 LC_ALL을 권장하지 않습니다. "LC_ALL은 모든 것을 무시하므로 사용하지 않는 것이 좋습니다. 테스트 할 때만 사용하고 시작 파일에 설정하지 마십시오." wiki.debian.org/Locale
gertvdijk

4

ssh를 통해 머신에 원격으로 연결된 경우 (예 : macosx 장치에서) 연결하려는 머신에서 이러한 변수를 설정해야합니다.

~ / .bash_profile에 다음을 추가하십시오.

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

1
OS X에서 연결할 때 이것이 알려진 결함입니까?
MindTooth

이것이 의도적으로 설계된 것인지 결함 / 버그인지 전혀 모른다
Somatik

2

나는 단지 홈 프로파일도 편집해야한다고 덧붙이고 싶다.

gedit ~/.profile

따라서 귀하의 경우 다음과 같습니다.

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

로그 아웃 + 로그인. 모두 예상대로입니다.


export각 줄의 시작 부분에 필요 했고에 넣었습니다 ~/.bashrc.
Sparhawk

2

몇 달 동안 같은 문제가 있었고 많은 소프트웨어 도구가 로케일 설정이 손상되었다는 경고를 표시했으며 일부는 실행을 거부했습니다. 영어를 사용하고 싶지만 스웨덴 통화 및 숫자 설정을 사용하고 싶습니다.

마침내 나를 위해 일한 /etc/default/locale것은 그 파일의 모든 것을 제거 한 곳 을 편집 하는 것이 었습니다. 그런 다음 Unity 언어 설정을 시작하고 (Settings -> Language Support)모든 것을 설정하고 (우분투에서 누락 된 구성 요소를 설치하고 싶었습니다) "Apply System-wide"완료했을 때 눌렀 습니다.

내는 /etc/default/locale이제 다음과 같습니다.

LC_NUMERIC = "sv_SE.UTF-8"
LC_TIME = "sv_SE.UTF-8"
LC_MONETARY = "sv_SE.UTF-8"
LC_PAPER = "sv_SE.UTF-8"
LC_IDENTIFICATION = "sv_SE.UTF-8"
LC_NAME = "sv_SE.UTF-8"
LC_ADDRESS = "sv_SE.UTF-8"
LC_TELEPHONE = "sv_SE.UTF-8"
LC_MEASUREMENT = "sv_SE.UTF-8"
LANGUAGE = "en"
LANG = "en_US.UTF-8"

이 파일과 원본 파일의 큰 차이점은 LANGUAGE="en"입니다.


내 생명의 은인 ...
John Joe

2

이것이 게시 된 지 오래되었지만 최근에는 "locale"변수에 문제가 있었고 아무런 대답도 얻지 못했습니다. 아마도 내 자신의 경험이 다른 사람을 도울 수 있습니다.

LANG의 변수는 비어, 이것은 나에게 문제를주고 있었다.

$locale

산출:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

나는 다음과 같은 명령을 시도했다.

sudo locale-gen
sudo dpkg-reconfigure locales

성공하지 못했습니다. / etc / default / locale을 편집하려고 시도했으며 이미 정상인지 확인했습니다.

$cat /etc/default/locale

산출:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

또한 내 .pam_environment 파일이 올바른 것 같습니다.

$cat .pam_environment

산출:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

나는 프로파일이나 bash 파일에 여분의 것을 추가하고 싶지 않습니다. 주로 문제를 해결할 수는 있지만 원인을 알지 못했기 때문에 저를 괴롭 혔습니다.

마지막으로 무언가가 이미 "locale"변수를 재정의하고 있는지 궁금해하고 다음 명령을 실행했습니다.

$cat .bashrc | grep LANG

산출:

unset LANG

그래서 내 .bashrc 파일에서 원인이있는 두 줄을 발견 했습니다 (전체 파일을 붙여 넣지 않습니다).

unset LANG
export LC_ALL=POSIX

나는 어떻게 또는 언제 그 줄이 내 bash 파일에서 끝났는지 알지 못하지만 완전히 작성하지 않았다고 확신합니다. 아마 웹 개발 작업을 할 때 내 .bashrc가 대체되었을 것입니다. 몰라요. 그러나 이것은 의도하지 않은 것이 었으며 "로케일"오작동의 원인에 대한 단서가없는 사람들이 있기 때문에 이것이 도움이 될 수 있습니다. 어쨌든 그 줄을 언급하고 재부팅하면 문제가 해결되었습니다. 여기 에서 LANG 변수 에 대한 sublimeT3 불만에 초점을 맞춘 동일한 질문에 대답했습니다 .


1

업데이트 된 로케일이 어떻게 든 보입니다. 내가 찾은 수정은 로그 아웃하고 로그인하기 전에 선택한 언어를 변경 한 다음 다시 로그인하는 것입니다.

시냅틱으로 로케일을 다시 설치하는 데 도움이 될 수도 있지만 이것이 나를 위해 고쳐진 것이 확실하지는 않지만 로그 아웃 된 것 같습니다.


다시 로그인하고 언어를 변경하십시오. 로그온 할 때 실제로 언어를 변경할 수있는 방법이 없습니다. 언어 변경을 언급하는 텍스트가 표시되지만 옵션 (버튼 등)이 없습니다. 아마도 호주 영어 만 사용할 수 있기 때문일 수 있습니다. 위의 모든 명령 .. 그래서 그것은 지금 미스터리이다 ...
Peter.O

@ red.bear : language-pack-en및을 설치 language-support-en한 다음 위의 과정을 반복하십시오.
RolandiXor

1

로케일 파일을 편집하고 로그인시 다른 언어를 선택하려고했습니다.

Synaptic으로 손상된 패키지를 필터링하고 9 개의 문제가있는 패키지를 완전히 제거했습니다 (libreoffice 및 python uno).

그러나 패키지 관리자를 손상시키지 않으면 서 LibreOffice를 설치할 수 없습니다. 그러나 설치됩니다.

저는 11.04 i386에 있습니다. 면책 조항 : 우분투가 업데이트를 다운로드하는 동안 설치 마지막 부분에서 정전이 발생했습니다.


1

나는 같은 문제가 있었지만 시스템> 관리> 언어 지원으로 이동하면 일부 패키지를 설치하도록 요청할 수 있기 때문에 문제를 해결할 수 있습니다. 그것은 나를 위해 일했기 때문에 그것이 당신에게 똑같이 할 것이라고 생각합니다!


0

운영

export LC_ALL="zh_CN.utf8"
ibus-setup

원하는 입력 방법 옵션 중 하나를 선택하십시오.


0

en_AU 예제와 비슷한 문제 (Thunderbird에서 가장 눈에 띄는)가 있지만 en_NZ에서 왔으며 Ubuntu 17.10의 시행 착오 후에 ~ / .pam_environment를 업데이트하여 다른 모든 항목을 대체했습니다 ( en_NZ와 함께 대부분 en_AU 및 en_US)를 재부팅 한 다음 다시 부팅합니다.

로케일을 설정할 수없고 그것이 주장하는 바를 수행 할 수 없다는 부끄러운 점은 dpkg-configure 로케일을 실행하는 것이 실제로 유용한 일을하지 않는 것입니다.

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