Ich habe eine Webanwendung geschrieben, deren Benutzeroberfläche auf Niederländisch ist. Ich verwende die Datums- und Zeitroutinen des Systems, um Datumszeichenfolgen in der Anwendung zu formatieren. Die Datumszeichenfolgen der Systemformate sind jedoch in Englisch, ich möchte sie jedoch in Niederländisch, daher muss das Gebietsschema des Systems festgelegt werden. Wie mache ich das unter Debian? Ich habe versucht einzustellen, LC_ALL=nl_NL
aber es scheint keinen Effekt zu haben:
$ date
Sat Aug 15 14:31:31 UTC 2009
$ LC_ALL=nl_NL date
Sat Aug 15 14:31:36 UTC 2009
Ich erinnere mich, dass das Setzen von LC_ALL auf meinem Ubuntu-Desktop-System gut funktioniert. Muss ich zusätzliche Pakete installieren, damit dies funktioniert, oder mache ich es völlig falsch?
linux
debian
localization
Hongli Lai
quelle
quelle
sudo dpkg-reconfigure locales
.Antworten:
Bearbeiten
/etc/default/locale
und stellen Sie den Inhalt auf:Sie können überprüfen, welche Gebietsschemas Sie derzeit generiert haben:
Sie können mehr generieren, indem Sie
/etc/locale.gen
die Zeilen für die zu aktivierenden Gebietsschemas bearbeiten und auskommentieren. Dann können Sie sie generieren, indem Sie Folgendes ausführen:Eine Liste der unterstützten Gebietsschemas finden Sie unter
/usr/share/i18n/SUPPORTED
Es gibt weitere Informationen im Debian-Wiki .
quelle
Möglicherweise müssen Sie das
locales
Paket installieren . Hier werden Sie gefragt, welche Gebietsschemas generiert werden sollen. Wenn es bereits installiert ist,dpkg-reconfigure locales
können Sie weitere Gebietsschemas erstellen.quelle
sudo
wie in laufensudo dpkg-reconfigure locales
.NONE
.Die Antworten hier sind unvollständig wie bei den meisten anderen Stellen. Nachdem ich Informationen von einigen Stellen zusammengefügt hatte, war es für mich hilfreich, (1) sicherzustellen, dass das von mir gewünschte Gebietsschema verfügbar war (es zu generieren, wenn dies nicht der Fall war), und (2) die Gebietsschema-bezogenen Umgebungsvariablen auf das gewünschte Gebietsschema zu setzen.
In meinem Fall musste ich
en_US.UTF-8
programmgesteuert (dh nicht interaktiv) in einem Docker-Container installiert werden. Das ff hat das erreicht, was ich brauche, aber es sollte in einer interaktiven Shell gut funktionieren.Auf derselben Shell müssen Sie dies tun,
source ~/.bashrc
damit die Umgebungsvariablen sofort wirksam werden. Sie können überprüfen, ob das Gebietsschema korrekt konfiguriert wurde, indem Sie aufrufenlocale
.Es gab viele Q & A-Einträge zu diesem Thema, aber nur wenige waren tatsächlich hilfreich. Gutschrift bei Fälligkeit der Gutschrift:
quelle
Keine dieser Antworten funktionierte für mich auf einem LXC-Container, der installiert wurde mit:
Ich habe immer die folgende Ausgabe von erhalten
locale-gen
, dh keine Gebietsschemas generiert (keine aufgeführt):Das Ausführen
dpkg-reconfigure locales
und Auswählen einiger Gebietsschemas wurde nicht/etc/locale.gen
wie erwartet aktualisiert .Als ich diese Datei jedoch manuell änderte und die von mir gewünschten Ländereinstellungen auskommentierte, begann ich
locale-gen
ordnungsgemäß zu arbeiten:Ich konnte auch Ländereinstellungen wie folgt manuell generieren:
Dies war jedoch keine dauerhafte Lösung: Ich stellte fest, dass das Ausführen
locale-gen
ohne die--keep-existing
Option alle manuell generierten Gebietsschemas löscht, dh alle Gebietsschemas, die nicht in aufgeführt (und nicht kommentiert) sind/etc/locale.gen
.quelle
Für eine Web - Anwendung, könnte es besser sein zu verwenden setlocale () innerhalb des Programms, anstatt zu verlangen , dass das System Standardgebietsschema entsprechend außerhalb eingestellt werden. So endet weniger locker.
quelle
setlocale
.Aber zuerst muss ein Sprachpaket installiert sein. Auf meinem deutschsprachigen VPS war kein englisches Sprachpaket vorinstalliert. So überprüfen Sie zuerst, ob Sie es installiert haben:
quelle
Für diejenigen, die wie ich auf Ubuntu 14.04 LTS irgendwie keine
/etc/locale.gen
Datei haben, können Sie ein neues Gebietsschema hinzufügen/var/lib/locales/supported.d/local
und dann ausführen:sudo dpkg-reconfigure locales
Sie können das französische Gebietsschema auch folgendermaßen hinzufügen (anstatt es zu bearbeiten
/var/lib/locales/supported.d/local
):sudo locale-gen fr_FR fr_FR.UTF-8
Um die
ISO-8859-1
undUTF-8
Codesätze desfr_FR
Gebietsschemas hinzuzufügen und zu generieren, geben Sie schließlich Folgendes ein :sudo dpkg-reconfigure locales
um den Job zu beenden
quelle