[이 답변은 Linux 플랫폼에서만 대상입니다]
가장 먼저 알아야 할 것은 로케일 구성 파일의 대부분이 경로에서 가져올 수 있다는 것입니다 localedef --help
.
$ localedef --help | tail -n 5
System's directory for character maps : /usr/share/i18n/charmaps
repertoire maps: /usr/share/i18n/repertoiremaps
locale path : /usr/lib/locale:/usr/share/i18n
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>
마지막을 보 /usr/share/i18n
시겠습니까? xx_XX.UTF-8 구성 파일이있는 위치는 다음과 같습니다.
$ ls /usr/share/i18n/locales/zh_*
/usr/share/i18n/locales/zh_CN /usr/share/i18n/locales/zh_HK /usr/share/i18n/locales/zh_SG /usr/share/i18n/locales/zh_TW
이제 뭐 ? 아카이브 바이너리로 컴파일해야합니다. 방법 중 하나, 예를 들어 내가 있다고 가정 /usr/share/i18n/locales/en_LOVE
하면 /etc/locale-gen
파일 을 컴파일 목록에 추가 할 수 있습니다 (예 : 파일).
$ tail -1 /etc/locale.gen
en_LOVE.UTF-8 UTF-8
그리고 다음을 사용하여 바이너리로 컴파일하십시오 sudo locale-gen
.
$ sudo locale-gen
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
...
en_LOVE.UTF-8... done
Generation complete.
원하는과 함께 이제 시스템 기본 로케일을 업데이트 LANG
, LC_ALL
이로 등 ... update-locale
:
sudo update-locale LANG=en_LOVE.UTF-8
update-locale
실제로는 /etc/default/locale
환경 변수를 설정하기 위해 로그인 할 때 시스템별로 소스가되는 이 파일 을 업데이트하는 것을 의미 합니다.
$ head /etc/default/locale
# File generated by update-locale
LANG=en_LOVE.UTF-8
LC_NUMERIC="en_US.UTF-8"
...
그러나 우리는 적용하기 위해 재부팅을 원하지 않을 수 있으므로 현재 쉘 세션에서 환경 변수에 소스를 제공 할 수 있습니다.
$ . /etc/default/locale
어때요 sudo dpkg-reconfigure locales
? 당신이 그 주위를 놀면이 명령이 기본적으로 위의 단계를 단순화하는 GUI 역할을한다는 것을 알 것입니다 : 예 : 편집 /etc/locale.gen
-> sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
파이썬의 경우, /etc/locale.gen
로케일 후보가 포함되어 locale.gen
있고 컴파일되는 한 setlocale(category, locale)
throw없이 작동해야합니다 locale.Error: unsupoorted locale setting
. 파일 을 관찰 하여 올바른 문자열 en_US.UTF-8
/ en_US/....etc
을 설정할 수 있는지 확인한 다음 주석을 해제하고 원하는대로 컴파일하십시오. 해당 파일에 점이 없으면 올바른 문자열은 및 입니다.setlocale()
/etc/locale.gen
zh_CN GB2312
zh_CN
zh_CN.GB2312