Заставить Git использовать системный язык по умолчанию - PullRequest
1 голос
/ 13 марта 2019

Git не использует английский в качестве языка по умолчанию в моей системе, и я не могу понять, почему.Я на MacOS 10.13.6 и использую последний Git, установленный с Homebrew.

В некоторых приложениях, которые имеют интеграцию с git, изначально или с пакетом, например Sublime Text или Fork, некоторые сообщения git предоставляются на испанском языке.

Cambiando a rama... The dates are provided in Spanish Nada que hacer?

Моя система была установлена ​​на английском языке, а английский - этоосновной язык системы.У меня есть испанский в качестве дополнительного языка в системе и клавиатура на испанском языке.

Я испанец и понимаю сообщения, но у меня все настроено на английском, и я не знаю, почему появляются эти сообщения.

На терминале все по-английски, а в .bash_profile я настроил:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Мне интересно, есть ли где-нибудь скрытые настройки или что-то, что может быть причиной этого.

Мысли?

PS1 / Я просто удалил и установил git, и ничего не изменилось.

PS2 / В sublime, если вы используете пакет GitSavvy, вы можете передавать переменные среды git.Если вы поставите туда

    "env": { 
        "LANG": "en_US.UTF-8" 
    },

Git работает на правильном языке.Это не решение проблемы.

PS3 / это связано https://apple.stackexchange.com/questions/337244/homebrew-and-git-wrong-language-on-the-command-line

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Я наконец понял это!

Проблема возникает только с Git Homebrew и, кажется, было несколько комментариев и проблем в трекере проблем Homebrew ( # 37331 , # 31980 и этот конкретный комментарий ), к сожалению, команда Homebrew не решила эту проблему.

Проблема возникает тогда, когда Git Homebrew устанавливается в систему, где английский является языком по умолчанию, а также есть другие дополнительные языки. Кажется, это связано с gettext .

Есть несколько решений:

  1. Установите оригинальный двоичный файл Git. Если вы пользователь Homebrew, это плохое решение, поскольку вам, вероятно, хотелось бы, чтобы все было установлено вместе с Homebrew для удобства.

  2. Разобрать языковые переменные окружения для приложений, на которые влияют, когда они вызывают Git. Это было возможно в пакете Savvy Subvime Text, но, возможно, это не всегда возможно.
    Для терминала это просто. Вы просто добавляете в свой профиль терминала ~/.bash_profile или ~/.zshrc или что-то еще:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Я пытался сделать эту систему широкой, но безуспешно вставил ее в мои ~/.bashrc и /etc/bashrc и /etc/profile. Подробнее об этом здесь . Возможно, вам повезет больше.
В любом случае, если у вас есть другой пользователь на вашем компьютере, который использует другой язык, который не является английским, это не хорошо.

  1. Удалите / переименуйте языковой стандарт / язык ofender в кеге Git в Homebrew's Cellar /usr/local/Cellar/git/X.XX.xx/share/locale, в моем случае это es. Я решил переименовать его, добавив просто .back, и вы можете легко сделать это с помощью этой команды каждый раз, когда Git обновляется
$ find $(brew --prefix)/Cellar/git -type d -name "es" -print0 | xargs -I{} mv {} {}.back

Вам просто нужно заменить es на ваш язык, и он будет переименован в your-locale.back.

0 голосов
/ 20 апреля 2019

Это может быть ошибкой в ​​Git. Я видел это в других приложениях. Что происходит, если автор программы напишет базовую программу на английском языке, а затем предоставит файлы перевода на другие языки, но не предоставит файл перевода en_US, потому что зачем это делать, когда базовая программа уже на английском, верно? Затем происходит то, что библиотека локализации (gettext) просматривает ваш список предпочитаемых языков из вашей системы, ища файл перевода в git-программе для каждого. Он не находит один для английского, но есть один для испанского, поэтому он использует его!

Что необходимо для правильной работы программы в таких ситуациях, как ваша, это то, что программе необходимо предоставить файл перевода для en_US, , даже если базовая программа уже написана на английском языке.

Вы должны сообщить об этом как об ошибке перед Git.

...