Я хотел бы изменить язык git (на английский) в моей установке Linux, не меняя язык для других программ, и не могу найти настройки. Как это сделать?
Я хотел бы изменить язык git (на английский) в моей установке Linux, не меняя язык для других программ, и не могу найти настройки. Как это сделать?
Ответы:
Добавьте эти строки в свой ~/.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псевдоним будет применен при входе в систему.
.bash.rcвместо .bashrc) была опечатка . Вы также должны закрыть и снова запустить оболочку для .bashrcвыполнения. Я также добавил примечание по этому поводу.
.bashrcдаже с перезапуском. Псевдонимы работают. Просто язык не меняется.
.bashrcоперация выполняется успешно, вы можете добавить тест, например, echo "This is .bashrc"в конец файла. Вы также можете выполнить его по требованию без перезапуска терминала или всей системы . .bashrc. Наконец, я бы предложил попробовать установить LC_ALLпеременную среды вместо LANG, поскольку первая имеет приоритет.
.bashrc, правда. Если LC_ALLимеет приоритет, то это будет проблемой, он настроен на мой язык. Но тогда я не хочу менять общую настройку языка ... Разве я не могу ее перезаписать для одной программы?
$ LC_ALL="en_US" manа затем$ man
Если вы просто хотите иметь одну команду на английском языке, вы можете просто написать 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"локалью, в последнее время больше не работало.
Добавление этой строки решило для меня проблему:
$ more ~/.bash_profile
export LANG=en_US
Примечание: начиная с Git 2.3.1+ (Q1 / Q2 2015), Git по возможности добавит заголовок Accept-Language.
См. Коммит f18604b от Yi EungJun ( eungjun-yi)
Добавьте
Accept-Languageзаголовок , который указывает на предпочтительные языки в пользователя определяется$LANGUAGE,$LC_ALL,$LC_MESSAGESи$LANG.Это дает серверам git возможность отображать удаленные сообщения об ошибках на предпочитаемом пользователем языке.
У вас есть локаль для git gui или других графических интерфейсов ,но не для командной строки, учитывая, что это был один из вопросов GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Конечно, с 2010 года, как po/READMEописано:
Прежде чем строки можно будет перевести, их сначала нужно пометить для перевода.
Git использует интерфейс интернационализации, который является оболочкой для системной
gettextбиблиотеки , поэтомуinfo gettextприменимы большинство советов из вашей документации gettext (в системах GNU в терминале).
Используется с git 1.7.9+ (январь 2012 г.):
Git использует
gettextдля перевода наиболее распространенных интерфейсных сообщений на язык пользователя, если переводы доступны и языковой стандарт установлен надлежащим образом .
Дистрибьюторы могут добавлять новыеPOфайлыpo/для добавления новых переводов.
Итак, если ваше обновление испортило перевод, проверьте, что gettextиспользует:
См., Например, « Переменные среды локали »
Локаль состоит из нескольких категорий языковых стандартов, см. Аспекты. Когда программа ищет значения, зависящие от локали, она делает это в соответствии со следующими переменными среды в порядке приоритета:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Переменные, значение которых установлено, но пусто, при этом поиске игнорируются.
LANG- это обычная переменная среды для указания локали. Как пользователь, вы обычно устанавливаете эту переменную (если некоторые другие переменные уже не были установлены системой в/etc/profileили подобных файлах инициализации).
LC_CTYPE,LC_NUMERIC,LC_TIME,LC_COLLATE,LC_MONETARY,LC_MESSAGES, И так далее, переменные окружения , предназначенные для переопределенияLANGи затрагивающие только одну категорию локали.
Например, предположим, что вы являетесь шведским пользователем в Испании и хотите, чтобы ваши программы обрабатывали числа и даты в соответствии с испанскими соглашениями, и только сообщения должны быть на шведском языке. Затем вы можете создать локаль с именем 'sv_ES' или 'sv_ES.UTF-8' с помощьюlocaledefпрограммы. Но проще и добиться того же эффекта, установить дляLANGпеременной значениеes_ES.UTF-8и значениеLC_MESSAGESпеременнойsv_SE.UTF-8; эти две локали поставляются с предустановленной операционной системой.
LC_ALL- это переменная среды, которая отменяет все это. Обычно он используется в сценариях, запускающих определенные программы. Например, сценарии конфигурации, созданные GNU,autoconfиспользуются,LC_ALLчтобы убедиться, что тесты конфигурации не работают в зависимости от локали.Некоторые системы, к сожалению, установить
LC_ALLв/etc/profileили в аналогичных файлах инициализации. Следовательно, вы, как пользователь, должны отключить эту переменную, если хотите установитьLANGи, при необходимости, некоторые другиеLC_xxxпеременные.
LANGсеанс bash / shell / DOS, который вы используете git(или запускаете git-guiиз), только git(или git-gui) будет использовать этот конкретный параметр. Все остальные программы будут наследовать от переменных среды системы / пользователя.
GIT по умолчанию использует английский, если не может найти язык Locale.
Поэтому, если вы хотите, чтобы GIT был на английском языке, просто саботируйте языковой файл, с которым он работает. В моем случае он всегда работал с немецким языком (т.е. de.msg ).
Если я удалил его или переименовал, по умолчанию он стал английским.

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

C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo.
/usr/local/Cellar/git/2.21.0/share/locale/.
Как предложил Бенгт: добавьте эти строки в свой ~/.bashrcили, ~/.bash_profileчтобы заставить git отображать все сообщения на английском языке:
vim ~/.bashrc- для этого профиля (если вы являетесь пользователем ubuntuи редактируете его, это будет только для этого пользователя); добавьте эти строки:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
и после закрытия файла нужно написать в оболочке:
source ~/.bashrc
чтобы перезагрузить новые настройки или выйти из терминала и снова подключиться :)
LANG=en_GBв ~/.bashrcдолжен делать? Разве это не просто определение локальной переменной LANG?
Вот мое решение для изменения языка git, ответьте на это и на это
1) nano ~/.bashrc
2) добавить alias git='LANG=en_GB git'в файл
2) сохранить файл
4)source ~/.bashrc
Теперь ваш git уже меняет язык. Однако, если после перезапуска терминала он больше не работает, вам необходимо
4.1) nano ~/.profile
4.2) добавляем source ~/.bashrc
4.3) сохраняем файл
он будет source ~/.bashrcзапускаться всякий раз, когда вы открываете терминал
Надеюсь, это поможет