Ich möchte die Sprache von git (in Englisch) in meiner Linux-Installation ändern, ohne die Sprache für andere Programme zu ändern, und konnte die Einstellungen nicht finden. Wie es geht?
Ich möchte die Sprache von git (in Englisch) in meiner Linux-Installation ändern, ohne die Sprache für andere Programme zu ändern, und konnte die Einstellungen nicht finden. Wie es geht?
Antworten:
Fügen Sie diese Zeilen zu Ihrem hinzu ~/.bashrc
oder ~/.bash_profile
zwingen Sie git, alle Nachrichten auf Englisch anzuzeigen:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
Der Alias muss LC_ALL
auf einigen Systemen überschrieben werden, wenn die Umgebungsvariable festgelegt LC_ALL
ist, die Vorrang vor hat LANG
. Weitere Erläuterungen finden Sie in der UNIX-Spezifikation - Umgebungsvariablen .
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
Falls Sie diese Zeilen zum ~/.bashrc
Alias hinzugefügt haben, wird dieser definiert, wenn eine neue interaktive Shell gestartet wird. Falls Sie es ~/.bash_profile
dem Alias hinzugefügt haben, wird es beim Anmelden angewendet.
.bash.rc
anstelle von .bashrc
). Sie müssen die Shell auch schließen und erneut starten .bashrc
, damit sie ausgeführt wird. Ich habe auch dazu einen Hinweis hinzugefügt.
.bashrc
sogar beim Neustart versucht . Aliase funktionieren. Es ist nur die Sprache, die sich nicht ändert.
.bashrc
erfolgreich ausgeführt wird, können Sie einen Test wie echo "This is .bashrc"
am Ende der Datei hinzufügen . Sie können es auch bei Bedarf ausführen lassen, ohne das Terminal oder das gesamte System von neu starten zu müssen . .bashrc
. Schließlich würde ich vorschlagen, LC_ALL
stattdessen die Umgebungsvariable festzulegen LANG
, da die erste Vorrang hat.
.bashrc
ist wirklich alles in Ordnung . Wenn LC_ALL
Vorrang hat, ist dies das Problem. Es wird auf meine Sprache eingestellt. Aber dann möchte ich die allgemeine Spracheinstellung nicht ändern ... Kann ich sie nicht für ein Programm überschreiben?
$ LC_ALL="en_US" man
und dann$ man
Wenn Sie stattdessen nur einen Befehl in Englisch haben möchten, können Sie einfach LC_ALL=C
vor dem Befehl schreiben , zum Beispiel:
LC_ALL=C git status
wird darin enden, dass
# On branch master
nothing to commit, working directory clean
Das in verwendete Gebietsschema C
ist Englisch und immer verfügbar, ohne dass zusätzliche Sprachpakete installiert werden müssen
(siehe https://askubuntu.com/a/142814/34298 ).
Um es für die gesamte aktuelle Bash-Sitzung zu ändern, geben Sie einfach ein
LANG=C
Um es zum Beispiel auf Deutsch zu ändern, geben Sie ein
LANG=de_DE.UTF-8
LC_ALL=C
Vorschlag, da ich einige Probleme mit dem Gebietsschema habe und in LC_ALL="en_US"
letzter Zeit nicht mehr funktioniert habe.
Das Hinzufügen dieser Zeile löste das Problem für mich:
$ more ~/.bash_profile
export LANG=en_US
Hinweis: Seit Git 2.3.1+ (Q1 / Q2 2015) fügt Git nach Möglichkeit den Accept-Language-Header hinzu.
Siehe Commit f18604b von Yi EungJun ( eungjun-yi
)
Fügen Sie einen
Accept-Language
Header, der vom Benutzer bevorzugten Sprachen definiert durch angibt$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
und$LANG
.Dies gibt Git-Servern die Möglichkeit, Remote-Fehlermeldungen in der vom Benutzer bevorzugten Sprache anzuzeigen.
Sie haben ein Gebietsschema für Git Gui oder andere GUIs .aber nicht für die Kommandozeile, da dies eine der Fragen von GitSurvey 2010 war
localization of command-line messages (i18n) 258 3.6%
Natürlich seit 2010, wie po/README
beschrieben:
Bevor Zeichenfolgen übersetzt werden können, müssen sie zuerst für die Übersetzung markiert werden.
Git verwendet eine Internationalisierung Schnittstelle , die das Systems hüllt
gettext
Bibliothek , so dass die meisten der Beratung in Ihrer gettext Dokumentation (auf GNU - Systemeninfo gettext
in einem Terminal) gilt.
In Kraft seit Git 1.7.9+ (Januar 2012):
Git
gettext
übersetzt die häufigsten Schnittstellenmeldungen in die Sprache des Benutzers, wenn Übersetzungen verfügbar sind und das Gebietsschema entsprechend festgelegt ist .
Händler können neuePO
Dateienpo/
ablegen, um neue Übersetzungen hinzuzufügen.
Wenn Ihr Update die Übersetzung durcheinander gebracht hat, überprüfen Sie, was gettext
verwendet wird:
Siehe beispielsweise " Gebietsschema-Umgebungsvariablen ".
Ein Gebietsschema besteht aus mehreren Gebietsschemakategorien, siehe Aspekte. Wenn ein Programm nach Gebietsschema-abhängigen Werten sucht, führt es dies gemäß den folgenden Umgebungsvariablen in der Prioritätsreihenfolge aus:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Variablen, deren Wert festgelegt, aber leer ist, werden bei dieser Suche ignoriert.
LANG
ist die normale Umgebungsvariable zum Angeben eines Gebietsschemas. Als Benutzer legen Sie diese Variable normalerweise fest (es sei denn, einige der anderen Variablen wurden bereits vom System in/etc/profile
oder in ähnlichen Initialisierungsdateien festgelegt).
LC_CTYPE
,LC_NUMERIC
,LC_TIME
,LC_COLLATE
,LC_MONETARY
,LC_MESSAGES
, Und so weiter, sind die Umgebungsvariablen gemeint außer Kraft setztLANG
nur eine einzige locale Kategorie und zu beeinflussen.
Angenommen, Sie sind ein schwedischer Benutzer in Spanien und möchten, dass Ihre Programme Zahlen und Daten gemäß den spanischen Konventionen verarbeiten. Nur die Nachrichten sollten auf Schwedisch sein. Anschließend können Sie mithilfe des Programms ein Gebietsschema mit dem Namen "sv_ES
oder" erstellen . Es ist jedoch einfacher und erzielt den gleichen Effekt, die Variable auf und die Variable auf zu setzen . Diese beiden Gebietsschemas sind bereits mit dem Betriebssystem vorinstalliert.sv_ES.UTF-8
localedef
LANG
es_ES.UTF-8
LC_MESSAGES
sv_SE.UTF-8
LC_ALL
ist eine Umgebungsvariable, die all diese überschreibt. Es wird normalerweise in Skripten verwendet, in denen bestimmte Programme ausgeführt werden. Zum Beispiel configure - Skripte von GNU erzeugtautoconf
Gebrauch ,LC_ALL
um sicherzustellen , dass die Konfigurationstests funktionieren nicht in locale abhängiger Weise.Einige Systeme befinden sich leider
LC_ALL
in/etc/profile
oder in ähnlichen Initialisierungsdateien. Als Benutzer müssen Sie diese Variable daher deaktivieren, wenn SieLANG
einige der anderenLC_xxx
Variablen festlegen möchten .
LANG
in der Bash / Shell / DOS-Sitzung festlegen, in der Sie verwenden git
(oder von der aus starten git-gui
), wird nur git
(oder git-gui
) diese bestimmte Einstellung verwendet. Alle anderen Programme erben von den System- / Benutzerumgebungsvariablen.
GIT verwendet standardmäßig Englisch, wenn die Sprache des Gebietsschemas nicht gefunden werden kann.
Wenn Sie also möchten, dass GIT auf Englisch ist, sabotieren Sie einfach die Sprachdatei, mit der es ausgeführt wird. In meinem Fall lief es immer mit Deutsch (dh: de.msg ).
Wenn ich es gelöscht oder umbenannt habe, wurde standardmäßig Englisch verwendet.
Hier habe ich die Datei umbenannt
C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
.
/usr/local/Cellar/git/2.21.0/share/locale/
.
Wie Bengt vorgeschlagen hat: Fügen Sie diese Zeilen zu Ihrem hinzu ~/.bashrc
oder ~/.bash_profile
zwingen Sie git, alle Nachrichten auf Englisch anzuzeigen:
vim ~/.bashrc
- für dieses Profil (wenn Sie Benutzer sind ubuntu
und dies bearbeiten, gilt dies nur für diesen Benutzer); füge diese Zeilen hinzu:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
und nachdem Sie die Datei geschlossen haben, müssen Sie in Shell schreiben:
source ~/.bashrc
um neue Einstellungen neu zu laden oder das Terminal zu verlassen und erneut eine Verbindung herzustellen :)
LANG=en_GB
in ~/.bashrc
tun soll? Definiert das nicht nur die lokale Variable LANG
?
Hier ist meine Lösung zu ändern git Sprache folgen beantworten diese und diese
1) nano ~/.bashrc
2) alias git='LANG=en_GB git'
zur Datei hinzufügen
2) Datei speichern
4)source ~/.bashrc
Jetzt ändert dein Git schon die Sprache. Allerdings IF nach dem Neustart Terminal und es nicht mehr funktioniert, müssen Sie
4.1) nano ~/.profile
4.2) Hinzufügen source ~/.bashrc
4.3) Speichern der Datei
Es wird source ~/.bashrc
ausgeführt, wenn Sie das Terminal öffnen
Hoffe es hilft