118 votes

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

J'aimerais 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 ?

1 votes

Vous cherchez à changer de locale. Je reposterais cette question sur superuser je pense.

173voto

Bengt Points 2327

Ajoutez ces lignes à votre ~/.bashrc , ~/.bash_profile ou ~/.zprofile pour 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 remplacer LC_ALL sur certains systèmes, lorsque la variable d'environnement LC_ALL est défini, ce qui a la priorité sur LANG . Voir le 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 à ~/.bashrc l'alias sera défini lorsqu'un nouveau shell interactif sera lancé. Au cas où vous l'auriez ajouté à ~/.bash_profile l'alias sera appliqué lors de la connexion.

0 votes

Il y avait une erreur de frappe dans le nom du fichier ( .bash.rc au lieu de .bashrc ). Vous devez également fermer et redémarrer le shell pour la fonction .bashrc pour être exécuté. J'ai également ajouté une note à ce sujet.

0 votes

Je l'ai essayé dans mon .bashrc même en redémarrant. Les alias fonctionnent. C'est juste que la langue ne change pas.

0 votes

Pour vérifier que le .bashrc s'exécute 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 le système entier. . .bashrc . Enfin, je suggère d'essayer de régler le LC_ALL au lieu de la variable d'environnement LANG puisque le premier a la priorité.

21voto

rubo77 Points 1502

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

LC_ALL=C git status

aura pour résultat

# On branch master
nothing to commit, working directory clean

La locale telle qu'elle est utilisée dans C est l'anglais et est toujours disponible sans installer de packs linguistiques supplémentaires
(voir https://askubuntu.com/a/142814/34298 )

Pour le changer pour l'ensemble de la session bash en cours, il suffit d'entrer

LANG=C

Pour le changer par exemple en allemand, entrez

LANG=de_DE.UTF-8

0 votes

Merci pour le LC_ALL=C suggestion, car j'ai quelques problèmes avec la locale, LC_ALL="en_US" n'a plus fonctionné récemment.

11voto

Donald Duck Points 137

L'ajout de cette ligne a résolu le problème pour moi : Mise à jour : il semble que de plus en plus de composants nécessitent un Locale maintenant.

$ more ~/.bash_profile

export LANG=fr_US (obsolète)

export LANG="en_US.UTF-8" (Mis à jour)

3 votes

La question est de savoir comment changer la langue pour git uniquement - je l'ai mis à jour pour être plus clair.

0 votes

Il manque l'encodage, ça a trop perturbé mon environnement.

7voto

VonC Points 414372

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

Ajouter un Accept-Language qui indique les langues préférées de l'utilisateur langues définies par $LANGUAGE , $LC_ALL , $LC_MESSAGES et $LANG .

Cela permet aux serveurs git d'afficher les messages d'erreur à distance dans la langue préférée de l'utilisateur. la langue préférée de l'utilisateur.


Vous avez locale pour le gui git ou autres interfaces graphiques , mais pas pour la ligne de commande, étant donné 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/README décrit :

Avant de pouvoir être traduites, les chaînes de caractères doivent d'abord être marquées pour la traduction.

Git utilise une interface d'internationalisation qui englobe le système gettext bibliothèque donc la plupart des conseils dans votre documentation gettext (sur les systèmes GNU info gettext dans un terminal) s'applique.

En place depuis git 1.7.9 et plus (janvier 2012) :

Git utilise gettext de traduire ses messages d'interface les plus courants dans la langue de l'utilisateur si des traductions sont disponibles et si les paramètres régionaux sont définis de manière appropriée. .
Les distributeurs peuvent déposer de nouvelles PO fichiers dans po/ pour ajouter de nouvelles traductions.

Donc, si votre mise à jour a perturbé la traduction, vérifiez ce que gettext utilise :
Voir, par exemple, " Variables d'environnement locales "

Une locale est composée de plusieurs catégories de locales, voir Aspects. Lorsqu'un programme recherche des valeurs dépendantes de la locale, 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 qui sont vides sont ignorées dans cette recherche.

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

LC_CTYPE , LC_NUMERIC , LC_TIME , LC_COLLATE , LC_MONETARY , LC_MESSAGES et ainsi de suite, les variables d'environnement sont-elles destinées à remplacer LANG et n'affectant qu'une seule catégorie de locale.
Par exemple, supposons que vous êtes un utilisateur suédois en Espagne, et que vous voulez que vos programmes traitent les chiffres et les dates selon les conventions espagnoles, et que seuls les messages soient en suédois. Vous pouvez alors créer une locale nommée ' sv_ES ou sv_ES.UTF-8 ' par l'utilisation de la localedef programme. Mais il est plus simple, et permet d'obtenir le même effet, de définir le paramètre LANG à la variable es_ES.UTF-8 et le LC_MESSAGES à la variable sv_SE.UTF-8 Ces deux langues sont déjà préinstallées dans le système d'exploitation.

LC_ALL est une variable d'environnement qui remplace toutes les autres. Elle est généralement utilisée dans les scripts qui exécutent des programmes particuliers. Par exemple, les scripts de configuration générés par GNU autoconf utiliser LC_ALL pour s'assurer que les tests de configuration ne fonctionnent pas de manière dépendante de la locale.

Certains systèmes, malheureusement, fixent LC_ALL sur /etc/profile ou dans des fichiers d'initialisation similaires. En tant qu'utilisateur, vous devez donc désactiver cette variable si vous voulez définir LANG et éventuellement certains des autres LC_xxx variables.

0 votes

Alors d'où vient la transalation ? La raison pour laquelle je demande est que j'avais git en anglais avant et après une mise à jour il a changé pour ma langue, mais je n'aime pas ça.

0 votes

@user905686 désolé, mon erreur. Git supporte les paramètres locaux, avec gettext. Vérifiez donc vos variables d'environnement. Je détaille celles à vérifier dans ma réponse éditée.

0 votes

Que faire si je veux juste changer la langue pour git mais pas pour les autres programmes ? Par exemple, pour moi, les traductions cassent certaines choses et je voudrais que git toujours (quel que soit le programme qui l'appelle) ont LANG=C et tout le reste dans ma langue maternelle. Avez-vous des idées ?

4voto

iapetus Points 149

Exécuter LC_MESSAGES=C git et non LC_ALL=C ou LANG=C et il n'est pas nécessaire de supprimer ou de renommer les fichiers.

Cette commande change la sortie des messages Git en anglais.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X