Comment changer la langue de l'interface de ligne de commande de Git?

103

Je voudrais changer la langue de git (en anglais) dans mon installation Linux sans changer la langue des autres programmes et je n'ai pas trouvé les paramètres. Comment faire?

user905686
la source
1
Vous cherchez à changer de lieu. Je republierais cette question sur le super-utilisateur, je pense.
JosefAssad

Réponses:

145

Ajoutez ces lignes à votre ~/.bashrcou ~/.bash_profilepour forcer git à afficher tous les messages en anglais:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'

L'alias doit être remplacé LC_ALLsur certains systèmes, lorsque la variable d'environnement LC_ALLest définie, qui a la priorité sur LANG. Voir la spécification UNIX - Variables d'environnement pour plus d'explications.

# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'

Au cas où vous auriez ajouté ces lignes à ~/.bashrcl'alias, elles seront définies lors du démarrage d'un nouveau shell interactif. Si vous l'avez ajouté à ~/.bash_profilel'alias, il sera appliqué lors de la connexion.

Bengt
la source
Il y avait une faute de frappe dans le nom du fichier ( .bash.rcau lieu de .bashrc). Vous devez également fermer et redémarrer le shell pour que le .bashrcsoit exécuté. J'ai ajouté une note à ce sujet également.
Bengt le
Je l'ai essayé dans mon .bashrcmême avec le redémarrage. Les alias fonctionnent. C'est juste que la langue ne change pas.
user905686
Pour vérifier que le .bashrcest exécuté avec succès, vous pouvez ajouter un test comme echo "This is .bashrc"à la fin du fichier. Vous pouvez également le faire exécuter à la demande sans avoir à redémarrer le terminal ou l'ensemble du système par . .bashrc. Enfin, je suggérerais d'essayer de définir la LC_ALLvariable d'environnement au lieu de LANG, puisque la première a la priorité.
Bengt
Tout va bien avec mon .bashrc, vraiment. Si LC_ALLa la priorité, ce sera le problème, il est défini dans ma langue. Mais alors je ne veux pas changer le réglage général de la langue ... Est-ce que je ne peux pas l'écraser pour un programme?
user905686
1
Vous pouvez définir la langue en utilisant la méthode suggérée sans effets secondaires, car ces variables ne durent que le temps que la commande prend pour se terminer. Essayez-le en exécutant $ LC_ALL="en_US" manet puis$ man
Bengt
20

Si vous voulez juste avoir une commande en anglais à la place, vous pouvez simplement écrire LC_ALL=Cavant la commande, par exemple:

LC_ALL=C git status

aura pour résultat

# On branch master
nothing to commit, working directory clean

La Clangue utilisée dans est l'anglais et toujours disponible sans installer de modules linguistiques supplémentaires
(voir https://askubuntu.com/a/142814/34298 )

Pour le changer pour toute la session de bash en cours, entrez simplement

LANG=C

Pour le changer, par exemple en allemand, entrez

LANG=de_DE.UTF-8
rubo77
la source
Merci pour la LC_ALL=Csuggestion, car j'ai quelques problèmes avec les paramètres régionaux, cela LC_ALL="en_US"n'a plus fonctionné récemment.
user905686
11

L'ajout de cette ligne a résolu le problème pour moi:

$ more ~/.bash_profile
export LANG=en_US
Donald Duck
la source
2
La question est de savoir comment changer la langue pour git uniquement - je l'ai mise à jour pour être plus claire.
user905686
6

Remarque: depuis Git 2.3.1+ (Q1 / Q2 2015), Git ajoutera l'en-tête Accept-Language si possible.
Voir commit f18604b par Yi EungJun ( eungjun-yi)

Ajouter un en- Accept-Languagetête qui indique défini langues préférées de l'utilisateur par $LANGUAGE, $LC_ALL, $LC_MESSAGESet $LANG.

Cela donne aux serveurs git une chance d'afficher des messages d'erreur distants dans la langue préférée de l'utilisateur.


Vous avez des paramètres régionaux pour git gui ou d' autres interfaces graphiques ,mais pas pour la ligne de commande, vu que c'était l'une des questions de GitSurvey 2010

localization of command-line messages (i18n)    258     3.6%    

Bien sûr, depuis 2010, comme po/READMEdécrit:

Avant de pouvoir traduire les chaînes, elles doivent d'abord être marquées pour la traduction.

Git utilise une interface d'internationalisation qui enveloppe la gettextbibliothèque du système , donc la plupart des conseils de votre documentation gettext (sur les systèmes GNU info gettextdans un terminal) s'appliquent.

En place depuis git 1.7.9+ (janvier 2012):

Git utilise gettextpour traduire ses messages d'interface les plus courants dans la langue de l'utilisateur si des traductions sont disponibles et que les paramètres régionaux sont correctement définis .
Les distributeurs peuvent déposer de nouveaux POfichiers po/pour ajouter de nouvelles traductions.

Donc, si votre mise à jour a gâché la traduction, vérifiez ce qui l' gettextutilise:
voir, par exemple, « Variables d'environnement locales »

Un paramètre régional est composé de plusieurs catégories de paramètres régionaux, voir Aspects. Lorsqu'un programme recherche des valeurs dépendantes des paramètres régionaux, il le fait en fonction des variables d'environnement suivantes, par ordre de priorité:

LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG 

Les variables dont la valeur est définie mais vide sont ignorées dans cette recherche.

LANGest la variable d'environnement normale pour spécifier une locale. En tant qu'utilisateur, vous définissez normalement cette variable (sauf si certaines des autres variables ont déjà été définies par le système, dans/etc/profile ou des fichiers d'initialisation similaires).

LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, Etc., sont les variables d'environnement destinées à remplacer LANGet affectant une seule catégorie de locale uniquement.
Par exemple, supposons que vous êtes un utilisateur suédois en Espagne et que vous souhaitez que vos programmes gèrent les nombres et les dates conformément aux conventions espagnoles, et que seuls les messages doivent être en suédois. Ensuite, vous pouvez créer une locale nommée « sv_ES» ou « sv_ES.UTF-8» en utilisant le localedefprogramme. Mais il est plus simple, et produit le même effet, de définir la LANGvariable sur es_ES.UTF-8et la LC_MESSAGESvariable sur sv_SE.UTF-8; ces deux paramètres régionaux sont déjà préinstallés avec le système d'exploitation.

LC_ALLest une variable d'environnement qui remplace tous ces éléments. Il est généralement utilisé dans les scripts exécutant des programmes particuliers. Par exemple, configurez les scripts générés par l' autoconfutilisation de GNULC_ALL pour vous assurer que les tests de configuration ne fonctionnent pas de manière dépendant locale.

Certains systèmes, malheureusement, sont installés LC_ALLdans /etc/profileou dans des fichiers d'initialisation similaires. En tant qu'utilisateur, vous devez donc annuler cette variable si vous souhaitez définir LANGet éventuellement certaines des autres LC_xxxvariables.

VonC
la source
Alors d'où vient la transalation? La raison pour laquelle j'ai demandé est que j'avais git en anglais avant et après une mise à jour, il a changé dans ma langue, mais je n'aime pas ça.
user905686
@ user905686 désolé, mon erreur. Git prend en charge les paramètres régionaux, avec gettext. Vérifiez donc vos variables d'environnement. Je détaille lequel vérifier dans ma réponse modifiée.
VonC
Et si je veux simplement changer la langue pour git mais pas pour d'autres programmes? C'est-à-dire que pour moi, les traductions cassent certaines choses, donc j'aimerais que git toujours (quel que soit le programme qui l'appelle) ait LANG = C et tout le reste dans ma langue maternelle. Des idées?
Droggl
@Droggl Tant que vous définissez LANGdans la session bash / shell / DOS que vous utilisez gitdans (ou à git-guipartir de), seul git(ou git-gui) utilisera ce paramètre spécifique. Tous les autres programmes hériteront des variables d'environnement système / utilisateur.
VonC
4

Exécutez LC_MESSAGES=C git, pas LC_ALL = C ou LANG = C et pas besoin de supprimer ou de renommer les fichiers.

Cette commande change la sortie des messages Git en anglais.

iapetus
la source
2

GIT utilise l'anglais par défaut s'il ne trouve pas la langue locale.

Donc, si vous voulez que GIT soit en anglais, sabotez simplement le fichier de langue avec lequel il fonctionne. Dans mon cas, il fonctionnait toujours avec l'allemand (c'est-à-dire: de.msg ).

Si je l'ai supprimé ou renommé, il est passé par défaut en anglais.

entrez la description de l'image ici

Ici, j'ai renommé le fichier

entrez la description de l'image ici

Oliver Watkins
la source
Avec Git pour Windows 2.x (64 bits), ce sera au format C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
Koraktor
L'avantage de cette approche pourrait être qu'après une mise à jour de git, la traduction sera de retour (et peut-être améliorée), vous pouvez donc décider à nouveau si vous voulez l'utiliser ou la supprimer à nouveau.
user905686
J'ai vérifié le code source, il semble que git ne supporte pas l'anglais: github.com/git-l10n/git-po/tree/master/po Même je veux utiliser l'anglais avant le chinois et le suédois (en_GB: en: zh_HK: zh_CN: zh: sv_SE: sv), git me montre toujours le chinois.
Michael Tsang
Sur Mac OSx avec Git installé via Homebrew, j'ai trouvé les paramètres régionaux dans /usr/local/Cellar/git/2.21.0/share/locale/.
Magnus W
0

Comme Bengt l'a suggéré: Ajoutez ces lignes à votre ~/.bashrcou ~/.bash_profilepour forcer git à afficher tous les messages en anglais: vim ~/.bashrc- pour ce profil (si vous êtes utilisateur ubuntuet que vous le modifiez, ce ne sera que pour cet utilisateur); ajoutez ces lignes:

# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also 
LANG=en_GB

et après avoir fermé le fichier, vous devez écrire dans le shell:

source ~/.bashrc 

pour recharger de nouveaux paramètres ou quitter le terminal et se reconnecter :)

Svetoslav
la source
Quel est le plus LANG=en_GBen ~/.bashrcsupposé faire? Cela ne définit-il pas simplement la variable locale LANG?
user905686
0

Voici ma solution pour changer le langage git, suivez la réponse à ceci et cela

1) nano ~/.bashrc
2) ajouter alias git='LANG=en_GB git'au fichier
2) enregistrer le fichier
4)source ~/.bashrc

Maintenant, votre git change déjà la langue. Cependant, SI après votre terminal de redémarrage et qu'il ne fonctionne plus, vous devez

4.1) nano ~/.profile
4.2) ajouter source ~/.bashrc
4.3) enregistrer le fichier

il source ~/.bashrcfonctionnera chaque fois que vous ouvrirez le terminal

J'espère que ça aide

Phan Van Linh
la source