Я хотел бы изменить язык 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
запускаться всякий раз, когда вы открываете терминал
Надеюсь, это поможет