Vorrei cambiare la lingua di git (in inglese) nella mia installazione Linux senza cambiare la lingua per altri programmi e non sono riuscito a trovare le impostazioni. Come farlo?
Vorrei cambiare la lingua di git (in inglese) nella mia installazione Linux senza cambiare la lingua per altri programmi e non sono riuscito a trovare le impostazioni. Come farlo?
Risposte:
Aggiungi queste righe al tuo ~/.bashrco ~/.bash_profileper forzare git a visualizzare tutti i messaggi in inglese:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
L'alias deve sovrascrivere LC_ALLsu alcuni sistemi, quando la variabile d'ambiente LC_ALLè impostata, che ha la precedenza su LANG. Vedere la specifica UNIX - Variabili d'ambiente per ulteriori spiegazioni.
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
Nel caso in cui tu abbia aggiunto queste righe ~/.bashrcall'alias, queste verranno definite all'avvio di una nuova shell interattiva. Nel caso in cui lo hai aggiunto ~/.bash_profileall'alias, verrà applicato al momento del login.
.bash.rcinvece di .bashrc). Devi anche chiudere e riavviare la shell per .bashrcessere eseguita. Ho aggiunto una nota anche a questo.
.bashrcanche con il riavvio. Gli alias funzionano. È solo che la lingua non cambia.
.bashrcvenga eseguito con successo potresti aggiungere un test come echo "This is .bashrc"alla fine del file. Puoi anche farlo eseguire su richiesta senza dover riavviare il terminale o l'intero sistema . .bashrc. Infine, suggerirei di provare a impostare la LC_ALLvariabile d'ambiente invece di LANG, poiché la prima ha la precedenza.
.bashrc, davvero. Se LC_ALLha la precedenza, questo sarà il problema, è impostato sulla mia lingua. Ma poi non voglio cambiare l'impostazione generale della lingua ... Non posso sovrascriverla per un programma?
$ LC_ALL="en_US" mane poi$ man
Se invece vuoi avere un solo comando in inglese, puoi semplicemente scrivere LC_ALL=Cprima del comando, ad esempio:
LC_ALL=C git status
risulterà in
# On branch master
nothing to commit, working directory clean
La lingua utilizzata in Cè l'inglese e sempre disponibile senza installare language pack aggiuntivi
(vedere https://askubuntu.com/a/142814/34298 )
Per cambiarlo per l'intera sessione bash corrente basta entrare
LANG=C
Per cambiarlo ad esempio in tedesco, inserisci
LANG=de_DE.UTF-8
LC_ALL=Csuggerimento, dato che ho dei problemi con la localizzazione, LC_ALL="en_US"non ha funzionato più di recente.
L'aggiunta di questa riga ha risolto il problema per me:
$ more ~/.bash_profile
export LANG=en_US
Nota: a partire da Git 2.3.1+ (Q1 / Q2 2015), Git aggiungerà l'intestazione Accept-Language, se possibile.
Vedi commit f18604b di Yi EungJun ( eungjun-yi)
Aggiungere un
Accept-Languagecolpo di testa che indica lingue preferite dall'utente definite da$LANGUAGE,$LC_ALL,$LC_MESSAGESe$LANG.Ciò offre ai server git la possibilità di visualizzare messaggi di errore remoti nella lingua preferita dall'utente.
Hai locale per git gui o altre GUI ,ma non per la riga di comando, considerando che era una delle domande di GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Naturalmente, dal 2010, come po/READMEdescrive:
Prima che le stringhe possano essere tradotte, devono prima essere contrassegnate per la traduzione.
Git utilizza un'interfaccia di internazionalizzazione che avvolge la
gettextlibreria del sistema , quindi siinfo gettextapplica la maggior parte dei consigli nella documentazione di gettext (sui sistemi GNU in un terminale).
In vigore da git 1.7.9+ (gennaio 2012):
Git utilizza
gettextper tradurre i suoi messaggi di interfaccia più comuni nella lingua dell'utente se le traduzioni sono disponibili e la lingua è impostata in modo appropriato .
I distributori possono inserire nuoviPOfilepo/per aggiungere nuove traduzioni.
Quindi, se il tuo aggiornamento ha incasinato la traduzione, controlla cosa gettextutilizza:
Vedi, ad esempio, " Variabili d'ambiente locali "
Una locale è composta da diverse categorie di locale, vedere Aspetti. Quando un programma cerca valori dipendenti dalle impostazioni locali, lo fa in base alle seguenti variabili di ambiente, in ordine di priorità:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Le variabili il cui valore è impostato ma è vuoto vengono ignorate in questa ricerca.
LANGè la normale variabile di ambiente per specificare una locale. Come utente, normalmente imposti questa variabile (a meno che alcune delle altre variabili non siano già state impostate dal sistema, in/etc/profilefile di inizializzazione o simili).
LC_CTYPE,LC_NUMERIC,LC_TIME,LC_COLLATE,LC_MONETARY,LC_MESSAGES, E così via, sono le variabili di ambiente destinate a ignorareLANGe che interessano una sola categoria di localizzazione.
Ad esempio, supponi di essere un utente svedese in Spagna e desideri che i tuoi programmi gestiscano numeri e date secondo le convenzioni spagnole e solo i messaggi devono essere in svedese. Quindi è possibile creare una locale denominata "sv_ES" o "sv_ES.UTF-8" utilizzando illocaledefprogramma. Ma è più semplice, e ottiene lo stesso effetto, impostare laLANGvariabile sues_ES.UTF-8e laLC_MESSAGESvariabile susv_SE.UTF-8; queste due versioni locali sono già preinstallate con il sistema operativo.
LC_ALLè una variabile d'ambiente che sovrascrive tutti questi. Viene tipicamente utilizzato negli script che eseguono programmi particolari. Ad esempio, configurare gli script generatiautoconfdall'uso GNULC_ALLper assicurarsi che i test di configurazione non funzionano in modi dipendenti di locale.Alcuni sistemi, sfortunatamente, sono impostati
LC_ALLin/etc/profileo in file di inizializzazione simili. Come utente, è quindi necessario annullare l'impostazione di questa variabile se si desidera impostareLANGe, facoltativamente, alcune delle altreLC_xxxvariabili.
LANGnella sessione bash / shell / DOS che si sta utilizzando git(o che si avvia git-guida), solo git(o git-gui) utilizzerà quella specifica impostazione. Tutti gli altri programmi erediteranno dalle variabili di ambiente di sistema / utente.
Il valore predefinito di GIT è l'inglese se non riesce a trovare la lingua locale.
Quindi, se vuoi che GIT sia in inglese, sabota semplicemente il file della lingua con cui è in esecuzione. Nel mio caso funzionava sempre con il tedesco (es: de.msg ).
Se l'ho cancellato o rinominato, il valore predefinito era inglese.

Qui ho rinominato il file

C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
/usr/local/Cellar/git/2.21.0/share/locale/.
Come suggerito da Bengt: aggiungi queste righe al tuo ~/.bashrco ~/.bash_profileper forzare git a visualizzare tutti i messaggi in inglese:
vim ~/.bashrc- per questo profilo (se sei utente ubuntue lo modifichi sarà solo per questo utente); aggiungi queste righe:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
e dopo aver chiuso il file devi scrivere nella shell:
source ~/.bashrc
per ricaricare nuove impostazioni o uscire dal terminale e ricollegarsi :)
LANG=en_GBin ~/.bashrcdovrebbe fare? Questo non definisce solo la variabile locale LANG?
Ecco la mia soluzione per cambiare la lingua di git, segui la risposta a questo e questo
1) nano ~/.bashrc
2) aggiungi alias git='LANG=en_GB git'al file
2) salva il file
4)source ~/.bashrc
Ora il tuo git cambia già la lingua. Tuttavia, SE dopo il riavvio del terminale e non funziona più, è necessario
4.1) nano ~/.profile
4.2) aggiungi source ~/.bashrc
4.3) salva il file
verrà source ~/.bashrceseguito ogni volta che si apre il terminale
Spero che aiuti