fr_FR.UTF-8 및 C.UTF-8 로케일은 로케일 목록에서 사용할 수 없으므로 사용할 수 없습니다. [닫기]

fr_FR.UTF-8 및 C.UTF-8 로케일은 로케일 목록에서 사용할 수 없으므로 사용할 수 없습니다. [닫기]

fr_FR.UTF-8및 로케일은 C.UTF-8로케일 목록(제공)에서 사용할 수 없으므로 locale -a사용할 수 없습니다.

추가하는 방법은 다음과 같습니다.

$ sudo locale-gen en_US en_US.UTF-8 fr_FR fr_FR.UTF-8 
Generating locales...
  en_US.ISO-8859-1... up-to-date
  en_US.UTF-8... up-to-date
  fr_FR.ISO-8859-1... up-to-date
  fr_FR.UTF-8... up-to-date
Generation complete.
$ sudo dpkg-reconfigure locales 
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.ISO-8859-1... up-to-date
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
  fr_BE.UTF-8... done
  fr_CA.UTF-8... done
  fr_CH.UTF-8... done
  fr_FR.ISO-8859-1... up-to-date
  fr_FR.UTF-8... up-to-date
  fr_LU.UTF-8... done
Generation complete.
$ export LC_CTYPE=C.UTF-8
$ export LC_COLLATE=C.UTF-8
$ export LC_MESSAGES=fr_FR.UTF-8
$ locale -a
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_COLLATE to default locale: No such file or directory
C
POSIX
en_US.utf8

편집 1: 내 시스템에서는 locale-gen조금 오래되었으므로 매개변수를 허용할 수 있습니다(패키지 로케일 v2.13).

어쨌든 관련된 다른 방법 /etc/locale.gen도 작동하지 않습니다.

$ cat <<-EOF | sudo tee -a /etc/locale.gen
en_US.UTF-8 UTF-8
en_US ISO-8859-1
en_US.ISO-8859-15 ISO-8859-15
fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
EOF
en_US.UTF-8 UTF-8
en_US ISO-8859-1
en_US.ISO-8859-15 ISO-8859-15
fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
$ sudo locale-gen
Generating locales...
  en_AG.UTF-8... up-to-date
  en_AU.UTF-8... up-to-date
  en_BW.UTF-8... up-to-date
  en_CA.UTF-8... up-to-date
  en_DK.UTF-8... up-to-date
  en_GB.UTF-8... up-to-date
  en_HK.UTF-8... up-to-date
  en_IE.UTF-8... up-to-date
  en_IN.UTF-8... up-to-date
  en_NG.UTF-8... up-to-date
  en_NZ.UTF-8... up-to-date
  en_PH.UTF-8... up-to-date
  en_SG.UTF-8... up-to-date
  en_US.ISO-8859-1... up-to-date
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... up-to-date
  en_ZM.UTF-8... up-to-date
  en_ZW.UTF-8... up-to-date
  fr_BE.UTF-8... up-to-date
  fr_CA.UTF-8... up-to-date
  fr_CH.UTF-8... up-to-date
  fr_FR.ISO-8859-1... up-to-date
  fr_FR.UTF-8... up-to-date
  fr_LU.UTF-8... up-to-date
Generation complete.
$ locale -a
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_COLLATE to default locale: No such file or directory
C
POSIX
en_US.utf8

fr_FR.UTF-8및 로케일은 C.UTF-8주어진 로케일 목록에서 여전히 사용할 수 없습니다 locale -a.

어떻게 해야 합니까?

답변1

locale-gen명령줄 인수를 허용하지 않습니다. 대신 /etc/locale.gen생성할 로케일 목록을 읽습니다.

/etc/locale.gen필요한 로케일의 주석 처리를 제거하고 locale-gen다시 실행하도록 편집하세요 .

또는 에 주석 처리된 줄이 없으면 /etc/locale.gen지원되는 로케일 목록을 찾아 거기에서 복사하세요. 데비안(및 관련 배포판)에서는 해당 목록을 에서 찾을 수 있습니다 /usr/share/i18n/SUPPORTED.

답변2

나한테 화내지 말아주세요 :)

마침내 이유를 찾았습니다. $PATH에 문제가 있었습니다.

$ ssh localhost locale -a >/dev/null
$ which -a locale
/home/linuxbrew/.linuxbrew/bin/locale
/usr/bin/locale
$ /home/linuxbrew/.linuxbrew/bin/locale -a >/dev/null 
/home/linuxbrew/.linuxbrew/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/home/linuxbrew/.linuxbrew/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/home/linuxbrew/.linuxbrew/bin/locale: Cannot set LC_COLLATE to default locale: No such file or directory
$ /usr/bin/locale -a >/dev/null
$ /usr/bin/locale -a | egrep -i "(C|fr_FR|en_US).utf-?8"
C.UTF-8
en_US.utf8
fr_FR.utf8

관련 정보