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 ~/.bashrcoder ~/.bash_profilezwingen 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_ALLauf einigen Systemen überschrieben werden, wenn die Umgebungsvariable festgelegt LC_ALList, 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 ~/.bashrcAlias hinzugefügt haben, wird dieser definiert, wenn eine neue interaktive Shell gestartet wird. Falls Sie es ~/.bash_profiledem Alias hinzugefügt haben, wird es beim Anmelden angewendet.
.bash.rcanstelle 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.
.bashrcsogar beim Neustart versucht . Aliase funktionieren. Es ist nur die Sprache, die sich nicht ändert.
.bashrcerfolgreich 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_ALLstattdessen die Umgebungsvariable festzulegen LANG, da die erste Vorrang hat.
.bashrcist wirklich alles in Ordnung . Wenn LC_ALLVorrang 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" manund dann$ man
Wenn Sie stattdessen nur einen Befehl in Englisch haben möchten, können Sie einfach LC_ALL=Cvor 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 Cist 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=CVorschlag, 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-LanguageHeader, der vom Benutzer bevorzugten Sprachen definiert durch angibt$LANGUAGE,$LC_ALL,$LC_MESSAGESund$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/READMEbeschrieben:
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
gettextBibliothek , so dass die meisten der Beratung in Ihrer gettext Dokumentation (auf GNU - Systemeninfo gettextin 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 neuePODateienpo/ablegen, um neue Übersetzungen hinzuzufügen.
Wenn Ihr Update die Übersetzung durcheinander gebracht hat, überprüfen Sie, was gettextverwendet 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.
LANGist 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/profileoder 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 setztLANGnur 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_ESoder" 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-8localedefLANGes_ES.UTF-8LC_MESSAGESsv_SE.UTF-8
LC_ALList 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 erzeugtautoconfGebrauch ,LC_ALLum sicherzustellen , dass die Konfigurationstests funktionieren nicht in locale abhängiger Weise.Einige Systeme befinden sich leider
LC_ALLin/etc/profileoder in ähnlichen Initialisierungsdateien. Als Benutzer müssen Sie diese Variable daher deaktivieren, wenn SieLANGeinige der anderenLC_xxxVariablen festlegen möchten .
LANGin 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 ~/.bashrcoder ~/.bash_profilezwingen Sie git, alle Nachrichten auf Englisch anzuzeigen:
vim ~/.bashrc- für dieses Profil (wenn Sie Benutzer sind ubuntuund 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_GBin ~/.bashrctun 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 ~/.bashrcausgeführt, wenn Sie das Terminal öffnen
Hoffe es hilft