Diese Antwort zeigt, wie ein Gebietsschema vollständig angepasst werden kann, wobei optional ein vorhandenes Gebietsschema als Basis verwendet wird. Der Typ des Gebietsschemas, der in dieser Antwort verwendet wird, ist der i18n
Typ. Diese Art von Gebietsschema wird bei jeder Erwähnung des Wortes "Gebietsschema" im Hauptteil der Antwort impliziert.
Finde einen Führer
Um ein Gebietsschema anzupassen, müssen Sie zunächst das Format des Gebietsschemas kennen. Dieser Web-Gebietsschema-Editor enthält eine umfassende Beschreibung aller Felder eines Gebietsschemas, auch wenn sie nicht sofort von allen Benutzern verwendet werden können. Dies wird die zu verwendende Anleitung sein.
Benötigte Werkzeuge
Die einzigen Tools, die Sie zum Arbeiten mit Gebietsschemas benötigen, sind
- Ein Texteditor. Jeder wird es tun, obwohl VIM ausgezeichnet sein wird.
- Ein Text-zu-Unicode-Konverter. Es wird am meisten erwartet, dass Sie keinen hatten, also werde ich Ihnen einen einfachen zur Verfügung stellen. Lesen Sie den nächsten Unterabschnitt, um es zu erhalten.
Ich empfehle Ihnen, ein Verzeichnis zu erstellen und alles zu speichern, was mit der Arbeit zusammenhängt, die Sie am Gebietsschema ausführen werden.
Text-zu-Unicode-Konverter (encodestr)
HINWEIS: Wenn Sie ungewöhnliche Zeichen verwenden , kann es sein, dass Sie Probleme mit dem Skript haben, das ich unten schreibe. Vielleicht möchten Sie sich die alternativen Skripte ansehen, die mit nass verknüpft sind .
Speichern Sie den folgenden Code in einer Datei. Diese Datei wird von Ihrem System als Python-Skript identifiziert, was in Ordnung ist, weil es eines ist. In diesem Handbuch wird davon ausgegangen, dass Sie das Skript aufgerufen haben encodestr
.
#!/usr/bin/python
def encode(string):
newstring = str()
for ch in string:
newstring += "<U%04X>" % ord(ch)
return newstring
if __name__ == '__main__':
import sys
print encode(sys.argv[1])
Nachdem Sie es gespeichert haben, geben Sie die Dateiausführungserlaubnis - dies wird nützlich sein. Sie können tun , dass die Verwendung von nautilus, oder durch von einem Terminal folgenden Befehl ausgeführt wird , auf dem Verzeichnis , in dem Sie das Skript gespeichert: chmod +x encodestr
.
Sie können nun dieses Skript testen auf dem gleichen Verzeichnis , indem Sie: ./encodestr hello
. Sie sollten eine Ausgabe gleich bekommen <U0068><U0065><U006C><U006C><U006F>
.
Ändern Sie ein vorhandenes Gebietsschema
Das Ändern eines vorhandenen Gebietsschemas ist der einfachste Fall, da Sie im Idealfall ein Gebietsschema auswählen, das fast vollständig Ihren Anforderungen entspricht. In diesem Fall müssen Sie nur geringfügige Änderungen vornehmen. Zum Anpassen können Sie anhand der Anleitung ermitteln, welche Abschnitte Sie ändern möchten und wie Sie sie ändern können. Alle installierten Gebietsschemas befinden sich in /usr/share/i18n/locales
, das Handbuch enthält jedoch so ziemlich jedes Gebietsschema, das jemals erstellt wurde.
Das Erste, was Sie jedoch bemerken, wenn Sie ein Gebietsschema öffnen, ist, dass Sie englische Wörter genauso gut lesen wie seltsame <UXXXX>
Codes. Sie müssen in der Lage sein, diese Codes zu erstellen - hier kommt das encodestr
Skript.
Wenn Sie wissen, welche Abschnitte Sie ändern müssen, müssen Sie jedes Feld im Abschnitt kennen.
Zum Beispiel LC_TIME
enthält der Abschnitt das Feld t_fmt
und viele andere. Jedes Feld hat eine eigene Beschreibung in der Anleitung .
Nachdem Sie nun wissen, welche Felder geändert werden müssen, ermitteln Sie anhand der Anleitung erneut, welche Werte das Feld akzeptiert.
Das Feld t_fmt
akzeptiert beispielsweise Text und die allgemeinen strfmt-Variablen .
Wenn Sie genau wissen, was Sie in die Felder schreiben müssen, die Sie ändern möchten, führen Sie den Text durch das encodestr
Skript, um dessen kodiertes Äquivalent zu erhalten.
HINWEIS: Nicht jedes Feld muss codiert werden. Verwenden Sie bei Bedarf ein vorhandenes Gebietsschema als Referenz.
Wenn Sie beispielsweise das Zeitformat Time: %T
im t_fmt
Feld haben möchten , führen Sie ./encodestr "Time: %T"
Folgendes aus: Dies kehrt zurück <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
und Sie haben die Zeile t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
in Ihrem Gebietsschema (natürlich in dem entsprechenden Abschnitt).
Nachdem Sie alle gewünschten Felder geändert haben, müssen Sie fortfahren, um das Gebietsschema auf dem System zu installieren, damit es verwendet werden kann. Fahren Sie dazu mit dem Installationsabschnitt fort.
Erstellen eines Gebietsschemas von Grund auf neu
Im Gegensatz zum Ändern eines Gebietsschemas können Sie das Gebietsschema auch mit einer anderen Methode von Grund auf neu erstellen. Dies ist nicht sehr schwierig, wenn Sie die Anleitung erneut verwenden . Hier ist ein nützlicher Tipp: Sie können Abschnitte aus anderen Gebietsschemas kopieren, ohne die eigentlichen Methoden zum Kopieren und Einfügen zu verwenden. Sie müssen nur dieses Format befolgen:
LC_SECTION
copy "locale"
END LC_SECTION
Wo LC_SECTION
befindet sich der Abschnitt, den Sie ändern möchten, und locale
in welchem Gebietsschema möchten Sie den Abschnitt kopieren?
Wenn Sie beispielsweise das Zeitformat in das englische Gebietsschema kopieren möchten, lautet der Text Ihrer benutzerdefinierten Gebietsschemadatei:
LC_TIME
copy "en_GB"
END LC_TIME
Das erspart Ihnen viel Arbeit und stellt sicher, dass alle Änderungen am referenzierten Gebietsschema für Sie übernommen werden.
Installieren Ihres benutzerdefinierten Gebietsschemas
Die Schritte, die ich unten zeigen werde, sind möglicherweise nicht optimal, funktionieren aber.
Kompilieren Sie Ihr Gebietsschema. Keine Panik! Das braucht keine Zeit. Führen Sie einfach den Befehl sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v
mit custom
dem Namen Ihres Gebietsschemas aus.
Kopieren Sie Ihr Gebietsschema in das /usr/share/i18n/locales/
Verzeichnis. Sie müssen auf jeden Fall sudo priviledges , dies zu tun, und Sie können es mit dem Befehl tun , sudo cp locale /usr/share/i18n/locales/
wenn locale
der Dateiname des benutzerdefinierten Gebietsschema ist.
Geben Sie Ihr Gebietsschema in an /var/lib/locales/supported.d/
. Erstellen Sie beispielsweise einen Dateinamen /var/lib/locales/supported.d/asd
und fügen Sie die Zeile hinzu custom UTF-8
, wobei custom der Name Ihres Gebietsschemas ist.
Führen Sie den Zauberbefehl aus. Ich weiß eigentlich nicht genau, was dieser Befehl bewirkt, aber es ist entscheidend. Rennen sudo locale-gen
. Es ist sehr wahrscheinlich, dass Referenzen zu den verfügbaren Gebietsschemas generiert werden, wenn dies erforderlich ist.
Weisen Sie Ihr System an, das Gebietsschema zu verwenden. Wenn Sie möchten, dass das Gebietsschema systemweit verwendet wird, ändern Sie die /etc/environment
Datei. Ist dies nicht der Fall, können Sie Ihre ~/.profile
Datei oder eine andere Datei ändern , die beim Start bezogen wird. Wenn Sie nicht wissen, was letzteres bedeutet, machen Sie sich keine Sorgen, verwenden Sie einfach die ~/.profile
Datei. Um zu wissen, was Sie darin schreiben müssen, führen Sie zuerst den locale
Befehl aus. Es sollte eine Liste mit Gegenständen wie auszustellen LANGUAGE
, LC_MESSAGES
, LC_CTYPE
und vielen anderen. Sie schreiben, für jeden der Abschnitte , die Sie (aufgeführt von dem vorherigen Befehl) wollen, auf separaten Linien, dies SECTION="locale"
wo SECTION
der Abschnitt ist und locale
der Name Ihres benutzerdefinierten locale.
Wenn Sie beispielsweise das Zeitformat aus den Niederlanden, aber die englische Sprache verwenden möchten, schreiben Sie:
LANGUAGE="en_GB:en"
LC_TIME="nl_NL"
HINWEIS: Wenn Sie ein Gebietsschema für jede Gebietsschemaeinstellung verwenden möchten, schreiben Sie, LC_ALL="locale"
wo locale
der Name Ihres benutzerdefinierten Gebietsschemas ist. Wenn Sie ein Gebietsschema für alles außer für die Sprache verwenden möchten, können Sie schreiben LANG="locale"
und (natürlich LANGUAGE="locale":XX
in einer anderen Zeile) XX
den 2-Buchstaben-Code für die gewünschte Sprache eingeben.
Wenn Sie beispielsweise das niederländische Gebietsschema und die englische Sprache verwenden möchten, können Sie Folgendes verwenden:
LANG="nl_NL"
LANGUAGE="nl_NL:en"
Du bist fertig
Wenn Sie sich das nächste Mal anmelden, sollte Ihr Gebietsschema verwendet werden. Sie können dies testen, indem Sie den locale
Befehl erneut ausführen.
Bitte kommentieren Sie Inkonsistenzen oder falsche Angaben in diesem Handbuch!
πμ
werden<U00CF><U0080><U00CE><U00BC>
anstelle der erwarteten Zeichen ausgegeben<U03C0><U03BC>
. Hier ist ein Link , der funktioniert.custom UTF-8
,/usr/share/i18n/SUPPORTED
bevor ich rennen konntesudo locale-gen
. Sonst wäre es nicht in der Liste.Sie sind sich nicht sicher, welche Art von Anpassung Sie wünschen, aber Sie können einige Gebietsschemavariablen mithilfe von festlegen
~/.locale
. Zum Beispiel, um englische Nachrichten zu bekommen, aber deutsche Zeit und dergleichen, die ich benutzeDas Generieren von benutzerdefinierten Gebietsschemas ist ebenfalls möglich. Siehe zB diesen Leitfaden für Daten.
quelle
en_US
fürLC_NUMERIC
undde_DE
fürLC_MONETARY
undLC_MEASUREMENT
gibt Ihnen andere Nebenwirkungen? Siehe auch den neuen Link zum Generieren eines persönlichen Gebietsschemas.