Manjaro에서 누락된 로케일 파일을 수정하는 방법은 무엇입니까?

Manjaro에서 누락된 로케일 파일을 수정하는 방법은 무엇입니까?

저는 Manjaro Gnome을 실행 중이고 패키지 관리자를 사용하여 일부 업데이트를 설치했습니다. 그 이후로 콘솔에 다음 메시지가 계속 표시됩니다.

manpath: can't set the locale; make sure $LC_* and $LANG are correct
(anon):12: character not in range
manpath: can't set the locale; make sure $LC_* and $LANG are correct

실행하면 locale다음과 같은 결과가 나타납니다.

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE=
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=

실행하면 sudo locale-gen파일이나 디렉터리가 존재하지 않는다는 오류 메시지가 나타납니다.

Generating locales...
  de_DE.UTF-8...failed to set locale!
[error] cannot open locale definition file `i18n_ctype': No such file or directory

내가 주석 처리하면 de_DE.UTF-8 UTF-8( /etc/locale.gen그때 주석 처리되지 않은 유일한 줄은 en_US.UTF-8 UTF-8) 다음과 같은 결과를 얻습니다.

Generating locales...
  en_US.UTF-8...failed to set locale!
[error] cannot open locale definition file `en_GB': No such file or directory

내용은 다음과 같습니다 /usr/share/i18n/locales.

de_DE                  translit_combining
en_US                  translit_compat
i18n                   translit_font
iso14651_t1            translit_fraction
iso14651_t1_common     translit_hangul
iso14651_t1_pinyin     translit_narrow
translit_circle        translit_neutral
translit_cjk_compat    translit_small
translit_cjk_variants  translit_wide

en_GB따라서 해당 파일 이 실제로 누락된 것으로 보입니다 i18n_ctype(비록 해당 파일이 이 폴더에 있어야 하는지는 확실하지 않지만).

또한 내가 다음 장소에 가면설정->지역 및 언어, 변경할 수 없습니다.언어(라고 되어있습니다 Unspecified [ANSI_X3.4-1968]. 클릭하면 선택항목에 아무것도 없습니다.언어 선택팝업.

온라인에서 문제가 있을 수 있다는 사실을 발견했습니다 glibc(기록에 따르면 glibc업데이트 중에 다시 설치되었습니다 [2020-08-11T18:49:33+0200] [ALPM] reinstalled glibc (2.31-5)). 그러나 나는 그것을 고치는 방법을 모른다. 패키지 관리자에는 glibc 재설치 버튼이 없으며 더 큰 혼란에 빠질 수 있는 실험을 하고 싶지 않습니다.

언어 파일을 다시 설치/재설정하는 방법이 있나요?

업데이트

저는 [Arch wiki]에 설명된 것처럼 하드 드라이브의 공간을 절약하기 위해 NoExtractin을 사용합니다(/etc/pacman.confhttps://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installing_only_content_in_required_언어s)

NoExtract = usr/share/help/* !usr/share/help/en*
NoExtract = usr/share/gtk-doc/html/*
NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* opt/google/chrome/locales/*
NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/en_US !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = !*locale*/de*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/de_DE !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = usr/share/qt4/translations/*
NoExtract = usr/share/man/* !usr/share/man/man*
NoExtract = usr/share/vim/vim*/lang/*
NoExtract = usr/lib/libreoffice/help/en-US/*

이것이 문제의 일부인지 궁금합니다. 아마도 glibc를 다시 설치할 때 일부 파일을 건너뛰었을 수도 있습니다.

답변1

  1. 편집하다 /etc/locale.gen:

    다음을 사용하여 해당 행의 주석 처리를 해제하십시오.

    locale en_US.UTF-8
    
  2. 달리다sudo locale-gen

신용 거래:https://nanxiao.me/en/fix-locale-configuration-issue-on-arch-linux/

답변2

이제 해결책을 찾았습니다. 나는 이것이 최선의 방법이라고 생각하지 않지만 나에게는 효과가 있는 것 같습니다.

나는 다운로드했다glibc 패키지누락된 파일( en_GBi18n_ctype)을 에 수동으로 복사했습니다 /usr/share/i18n/locales/.

그런 다음 실행sudo locale-gen

답변3

/etc/locale.gen패키지 를 다시 설치하면 다시 얻을 수 있습니다 glibc. 설치 시 새 파일이 생성됩니다.

답변4

제 경우에는 KDE Plasma Settings Manager로케일을 기존 구성이 아닌 것으로 구성했기 때문에 문제가 발생했습니다.

Manjaro 설치 중에 Finland/English사용 가능했기 때문에 그곳을 선택했습니다. 왜 안 돼? 그런 콤보가 포함되어 있지 않기 fi_EN.UTF-8때문에 적어도 말도 안되는 것으로 판명되었습니다 .glibc

glibc다음과 같이 패키지 파일을 검사하는 언어를 나열할 수 있습니다 .

pacman -Ql glibc | grep fi_

내 경우에는 그 두 가지를 보여주었습니다.

glibc /usr/share/i18n/locales/fi_FI
glibc /usr/share/i18n/locales/fi_FI@euro

fi_FI은 적절한 것이지 fi_EN어느 쪽도 아닙니다 fi_US. 부끄럽다, 플라즈마.

폴란드어: , 독일어: 등과 grep fi_같이 언어를 찾으려면 위 명령에서 를 바꾸세요 .grep pl_grep de_

그런 다음 명령 호출 결과와 비교하십시오 locale. 내 경우에는 편집을 통해 수정해야 했습니다 /etc/locale.gen. Manjaro의 문제 해결을 따를 수 있습니다.

https://wiki.manjaro.org/index.php/Locale

아니면 Holly Arch Wiki에서:

https://wiki.archlinux.org/title/locale

관련 정보