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 ~/.bashrc
o ~/.bash_profile
per 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_ALL
su 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 ~/.bashrc
all'alias, queste verranno definite all'avvio di una nuova shell interattiva. Nel caso in cui lo hai aggiunto ~/.bash_profile
all'alias, verrà applicato al momento del login.
.bash.rc
invece di .bashrc
). Devi anche chiudere e riavviare la shell per .bashrc
essere eseguita. Ho aggiunto una nota anche a questo.
.bashrc
anche con il riavvio. Gli alias funzionano. È solo che la lingua non cambia.
.bashrc
venga 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_ALL
variabile d'ambiente invece di LANG
, poiché la prima ha la precedenza.
.bashrc
, davvero. Se LC_ALL
ha 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" man
e poi$ man
Se invece vuoi avere un solo comando in inglese, puoi semplicemente scrivere LC_ALL=C
prima 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=C
suggerimento, 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-Language
colpo di testa che indica lingue preferite dall'utente definite da$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
e$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/README
descrive:
Prima che le stringhe possano essere tradotte, devono prima essere contrassegnate per la traduzione.
Git utilizza un'interfaccia di internazionalizzazione che avvolge la
gettext
libreria del sistema , quindi siinfo gettext
applica 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
gettext
per 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 nuoviPO
filepo/
per aggiungere nuove traduzioni.
Quindi, se il tuo aggiornamento ha incasinato la traduzione, controlla cosa gettext
utilizza:
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/profile
file 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 ignorareLANG
e 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 illocaledef
programma. Ma è più semplice, e ottiene lo stesso effetto, impostare laLANG
variabile sues_ES.UTF-8
e laLC_MESSAGES
variabile 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 generatiautoconf
dall'uso GNULC_ALL
per assicurarsi che i test di configurazione non funzionano in modi dipendenti di locale.Alcuni sistemi, sfortunatamente, sono impostati
LC_ALL
in/etc/profile
o in file di inizializzazione simili. Come utente, è quindi necessario annullare l'impostazione di questa variabile se si desidera impostareLANG
e, facoltativamente, alcune delle altreLC_xxx
variabili.
LANG
nella sessione bash / shell / DOS che si sta utilizzando git
(o che si avvia git-gui
da), 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 ~/.bashrc
o ~/.bash_profile
per forzare git a visualizzare tutti i messaggi in inglese:
vim ~/.bashrc
- per questo profilo (se sei utente ubuntu
e 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_GB
in ~/.bashrc
dovrebbe 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 ~/.bashrc
eseguito ogni volta che si apre il terminale
Spero che aiuti