Вопрос по bash, git – Как изменить язык интерфейса командной строки Git?

79

Я хотел бы изменить язык git (на английский) в моей установке Linux без изменения языка для других программ и не смог найти настройки. Как это сделать?

Вы хотите изменить локаль. Я думаю, что я отвечаю на этот вопрос на суперпользователя. JosefAssad

Ваш Ответ

6   ответов
1

если не может найти язык Locale.

Поэтому, если вы хотите, чтобы GIT был на английском, просто саботируйте языковой файл, с которым он работает. В моем случае это всегда было с немецким (то есть:de.msg).

Если я удалил или переименовал его, то по умолчанию он стал английским.

enter image description here

Здесь я переименовал файл

enter image description here

Error: User Rate Limit ExceededC:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
Error: User Rate Limit Exceeded user905686
Error: User Rate Limit Exceededgithub.com/git-l10n/git-po/tree/master/po  Даже я хочу сначала использовать английский, прежде чем китайский и шведский (en_GB: en: zh_HK: zh_CN: zh: sv_SE: sv), git по-прежнему показывает мне китайский.
108

~/.bashrc или же~/.bash_profile заставить git отображать все сообщения на английском языке:

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

Псевдоним необходимо переопределитьLC_ALL в некоторых системах, когда переменная окруженияLC_ALL установлен, который имеет приоритет надLANG, УвидетьСпецификация UNIX - переменные среды для дальнейшего объяснения.

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

Если вы добавили эти строки в~/.bashrc псевдоним будет определен при запуске новой интерактивной оболочки. Если вы добавили его в~/.bash_profile псевдоним будет применяться при входе в систему.

У меня все нормально.bashrcError: User Rate Limit ExceededLC_ALLError: User Rate Limit Exceeded user905686
Error: User Rate Limit Exceeded.bash.rc вместо.bashrcError: User Rate Limit Exceeded.bashrcError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded.bashrcError: User Rate Limit Exceeded user905686
Error: User Rate Limit Exceeded.bashrcError: User Rate Limit Exceededecho "This is .bashrc"Error: User Rate Limit Exceeded. .bashrcError: User Rate Limit ExceededLC_ALL переменная окружения вместоLANG, так как первый имеет приоритет.
Error: User Rate Limit Exceeded user905686
6

$ more ~/.bash_profile
export LANG=en_US
Вопрос в том, как изменить язык только для git - я обновил его, чтобы было понятнее. user905686
3

начиная с Git 2.3.1+ (Q1 / Q2 2015), Git добавит заголовок Accept-Language, если это возможно.
Увидетьсовершить f18604b от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.

У тебя естьлокаль для git gui или жедругие графические интерфейсы, 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%    

Конечно, с 2010 года, какpo/README описывает:

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.

На месте смерзавец 1.7.9+ (Январь 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.

Итак, если ваше обновление испортило перевод, проверьте, чтоgettext использует:
Смотрите, например, & quot;Переменные среды Locale& Quot;

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, <,code>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.

Так откуда берется перевод? Причина, по которой я спросил, состоит в том, что у меня был git на английском языке до и после обновления, он изменился на мой язык, но мне это не нравится. user905686
@Droggl Пока вы установитеLANG в сеансе bash / shell / DOS, который вы используетеgit в (или запускgit-gui от) толькоgit (или жеgit-guiError: User Rate Limit Exceeded
Что если я хочу просто изменить язык для git, но не для других программ? То есть для меня переводы ломают некоторые вещи, поэтому я хотел бы иметь мерзавцаalways (независимо от того, какая программа его вызывает) имеет LANG = C и все остальное на моем родном языке. Есть идеи?
@ user905686 извините, моя ошибка. Git поддерживает локаль, с gettext. Так что проверьте ваши переменные среды. Я подробно опишу, что нужно проверить в моем отредактированном ответе.
11

вы можете просто написатьLC_ALL=C перед командой, например:

LC_ALL=C git status

приведет к

# On branch master
nothing to commit, working directory clean

Язык, используемый вC английский и всегда доступен без установки дополнительных языковых пакетов
 (увидетьhttps://askubuntu.com/a/142814/34298)

Чтобы изменить его для всей текущей сессии bash, просто введите

LANG=C

Чтобы изменить его, например, на немецкий введите

LANG=de_DE.UTF-8
Спасибо заLC_ALL=C предложение, так как у меня есть некоторые проблемы с языком,LC_ALL="en_US" больше не работал в последнее время. user905686
2

LC_MESSAGES=C git, не LC_ALL = C или LANG = C и нет необходимости удалять или переименовывать файлы.

Эта команда изменяет вывод сообщений Git на английский.

Похожие вопросы