[Diese Antwort ist nur auf der Linux-Plattform verfügbar]
Das erste, was Sie wissen sollten, ist, dass der größte Teil des Pfads der Gebietsschema-Konfigurationsdatei von folgender Adresse abgerufen werden kann 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>
Sehen Sie den letzten /usr/share/i18n
? Hier befindet sich Ihre xx_XX.UTF-8-Konfigurationsdatei:
$ 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
Was jetzt ? Wir müssen sie in Archivbinär kompilieren. Eine der Möglichkeiten, z. B. anzunehmen, dass ich sie habe /usr/share/i18n/locales/en_LOVE
, kann ich in die Kompilierungsliste aufnehmen, dh /etc/locale-gen
Datei:
$ tail -1 /etc/locale.gen
en_LOVE.UTF-8 UTF-8
Und kompilieren Sie es binär mit 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.
Und jetzt aktualisieren Sie das Standardgebietsschema des Systems mit dem gewünschten LANG
, LC_ALL
... usw. damit update-locale
:
sudo update-locale LANG=en_LOVE.UTF-8
update-locale
bedeutet eigentlich auch, diese /etc/default/locale
Datei zu aktualisieren , die beim Anmelden vom System als Quelle für die Einrichtung von Umgebungsvariablen verwendet wird:
$ head /etc/default/locale
# File generated by update-locale
LANG=en_LOVE.UTF-8
LC_NUMERIC="en_US.UTF-8"
...
Möglicherweise möchten wir jedoch keinen Neustart durchführen, damit er wirksam wird. Daher können wir ihn einfach in der aktuellen Shell-Sitzung als Umgebungsvariable verwenden:
$ . /etc/default/locale
Wie wäre es sudo dpkg-reconfigure locales
? Wenn Sie damit herumspielen, wissen Sie, dass dieser Befehl im Wesentlichen als GUI fungiert, um die obigen Schritte zu vereinfachen, dh Bearbeiten /etc/locale.gen
-> sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Für Python sollte es funktionieren , solange es /etc/locale.gen
diesen Gebietsschemakandidaten enthält und locale.gen
kompiliert wird . Sie können die richtige Zeichenfolge überprüfen / nur eingestellt werden , durch Beobachtung Datei und dann uncomment und kompilieren Sie es wie gewünscht. ohne Punkt in dieser Datei bedeutet, dass die richtige Zeichenfolge und ist .setlocale(category, locale)
locale.Error: unsupoorted locale setting
en_US.UTF-8
en_US/....etc
setlocale()
/etc/locale.gen
zh_CN GB2312
zh_CN
zh_CN.GB2312