How does one change the language of the command line interface of Git?

前端 未结 8 1913
悲&欢浪女
悲&欢浪女 2020-12-07 13:27

I’d like to change the language of git (to English) in my Linux installation without changing the language for other programs and couldn’t find the settings. How to do it?

相关标签:
8条回答
  • 2020-12-07 14:08

    Run LC_MESSAGES=C git, not LC_ALL=C or LANG=C and no need delete or rename files.

    This command change output Git messages to english.

    0 讨论(0)
  • 2020-12-07 14:13

    Adding this line solved the problem for me:

    $ more ~/.bash_profile
    export LANG=en_US
    
    0 讨论(0)
  • 2020-12-07 14:13

    GIT defaults to english if it cannot find the Locale language.

    So if you want GIT to be in english, just sabotage the language file that it is running with. In my case it was always running with german (ie: de.msg).

    If I deleted it or renamed the it, then it defaulted to english.

    enter image description here

    Here I renamed the file

    enter image description here

    0 讨论(0)
  • 2020-12-07 14:14

    As Bengt suggested : Add these lines to your ~/.bashrc or ~/.bash_profile to force git to display all messages in English: vim ~/.bashrc - for this profile (if you are user ubuntu and you edit this it will be only for this user); add this lines:

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

    and after you close the file you need to write in shell:

    source ~/.bashrc 
    

    to reload new settings or exit the terminal and connect again :)

    0 讨论(0)
  • 2020-12-07 14:18

    Here is my solution to change git language follow answer this and this

    1) nano ~/.bashrc
    2) add alias git='LANG=en_GB git' to the file
    2) save the file
    4) source ~/.bashrc

    Now your git already change the language. However, IF after your restart terminal and it not working anymore, you need to

    4.1) nano ~/.profile
    4.2) add source ~/.bashrc
    4.3) save the file

    it will make source ~/.bashrc run whenever you open the terminal

    Hope it help

    0 讨论(0)
  • 2020-12-07 14:19

    Note: since Git 2.3.1+ (Q1/Q2 2015), Git will add Accept-Language header if possible.
    See commit f18604b by Yi EungJun (eungjun-yi)

    Add an Accept-Language header which indicates the user's preferred languages defined by $LANGUAGE, $LC_ALL, $LC_MESSAGES and $LANG.

    This gives git servers a chance to display remote error messages in the user's preferred language.


    You have locale for git gui or other GUIs, but not for the command-line, considering it was one of the questions of GitSurvey 2010

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

    Of course, since 2010, as po/README describes:

    Before strings can be translated they first have to be marked for translation.

    Git uses an internationalization interface that wraps the system's gettext library, so most of the advice in your gettext documentation (on GNU systems info gettext in a terminal) applies.

    In place since git 1.7.9+ (January 2012):

    Git uses gettext to translate its most common interface messages into the user's language if translations are available and the locale is appropriately set.
    Distributors can drop new PO files in po/ to add new translations.

    So, if your update has mess up the translation, check what gettext uses:
    See, for instance, "Locale Environment Variables"

    A locale is composed of several locale categories, see Aspects. When a program looks up locale dependent values, it does this according to the following environment variables, in priority order:

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

    Variables whose value is set but is empty are ignored in this lookup.

    LANG is the normal environment variable for specifying a locale. As a user, you normally set this variable (unless some of the other variables have already been set by the system, in /etc/profile or similar initialization files).

    LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, and so on, are the environment variables meant to override LANG and affecting a single locale category only.
    For example, assume you are a Swedish user in Spain, and you want your programs to handle numbers and dates according to Spanish conventions, and only the messages should be in Swedish. Then you could create a locale named ‘sv_ES’ or ‘sv_ES.UTF-8’ by use of the localedef program. But it is simpler, and achieves the same effect, to set the LANG variable to es_ES.UTF-8 and the LC_MESSAGES variable to sv_SE.UTF-8; these two locales come already preinstalled with the operating system.

    LC_ALL is an environment variable that overrides all of these. It is typically used in scripts that run particular programs. For example, configure scripts generated by GNU autoconf use LC_ALL to make sure that the configuration tests don't operate in locale dependent ways.

    Some systems, unfortunately, set LC_ALL in /etc/profile or in similar initialization files. As a user, you therefore have to unset this variable if you want to set LANG and optionally some of the other LC_xxx variables.

    0 讨论(0)
提交回复
热议问题