HomebrewとGit-コマンドラインの間違った言語


43

奇妙な問題があります- gitコマンドラインツールパッケージに付属のコマンドを使用すると、コマンドラインのインターフェイスが英語になります。ただし、Homebrewを使用してインストールされたバージョンは、出力にドイツ語を使用します(私はドイツに住んでいますが、システム言語は英語(米国)に設定されており、コンピューターは実際にはシンガポールで購入されました)。

これは最近になって変わったと思います。私は修理のためにMacを渡さなければならず、ドイツの店でそうしました。コンピューターが戻ったので、Gitの出力がドイツ語であることに気付きました。Gitの出力中にシステム設定に対して何かを行ったかどうかはわかりません。私の知る限り、これは言語としてドイツ語を使用する唯一のコマンドラインアプリケーションです。localeコマンドによって生成される出力は次のとおりです。

LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Gitに英語で話してもらいたいです。私はLANG等を英語に設定することができ、それが(おそらく)うまくいくことを知っていますが、この変更がどこから来ているかも理解しています。

何か案は?

編集:物事をより面白くするために、私は仕事から得た別のMacを使用しています。ドイツで購入され、初期の言語設定はドイツ語(私はアメリカ英語に変更しました)で、すべて正常に動作します。つまり、両方のGitインストール(CLTとHomebrew)が英語を使用します。localeコマンドからのロケール情報は同じです。


私は同じ問題を抱えていると思います。macOS Mojave 10.14(18A389)、Homebrew 1.7.6、gitバージョン2.19.0で実行中
FrankLämmer18年

2
これはちょうど私がモハーベにアップグレードしたときに私に起こりました。今まではうまくいきました。すべてのOS Xインターフェイスは英語、Cロケールですが、私はドイツ語圏の国にいて、gitはドイツ語で話しています。それでは、どのよう gitが使用にどのような言語を決めますか?
アレクシス

回答:


57

最近、特にgitで(およびMacOS Mojaveに更新した後)同じ動作を観察し始めました。最初は、git自体の問題だと思いました。そこで、homebrewを使用してgitを再インストールしましたが、役に立ちませんでした。

ただし、MacOSの[設定]の[言語と地域]タブに移動し、不要なリストから他の言語を削除すると(注:これらはキーボード入力ソースとは異なる)、コマンド出力メッセージがgitに表示されます。目的の言語(私の場合は英語)のターミナルで。

特に、この問題はmacOS端末でのみ発生しました(VSCodeの端末では発生しません)。


1
私はまだMojaveを使用していませんが、これで問題が解決しました。そして、あなたが言うように、VSCodeまたはIdeaターミナルは英語で、ちょうどiterm2はドイツ語でした。私はしばしば異なる言語で書いており、それらの特殊文字が必要なので、私はドイツ語を含むかなりの数の入力ソースを持っています。入力ソースを追加すると、「言語と地域」リストに言語も追加されるようになります(実際にテストされただけです)。これは実際には必要ではなく、問題の原因です。奇妙なことに、英語はまだそのリストのトップにありましたが、なんとかして第二言語であるドイツ語によって上書きされました。うーん。
-wujek

1
Mojaveにアップデートした後、似たようなことが起こりました。私のターミナルgitは英語でしたが、IntelliJターミナルを介したgitはスペイン語(Language&Reigonの私の2次言語)でした。私は言語とReigonでスペイン語をしたいので、私は明示的に私のLANG環境変数を設定し、それはそれを修正
サム・

@wujekは、Mojaveを使用していないという事実により、homebrewの最新のgitパッケージの問題である可能性を考慮しています。私のシステムでは、2つの変更のみが行われた後、問題に気付きました。Mojaveへの更新とhomebrewによるgitパッケージのアップグレードです。
アントンK

1
ロシア語でgitを見るととても驚きました:D
Artem

3
言語を削除することは解決策ではありません。LANG = en_US.UTF-8を設定しましたが、まだフランス語です。
ウォーカーロウ

10

私は同じ問題を抱えています。自作アップグレードgit 2.17.0-> 2.19.1の後、新しいgitバージョンがLANG env変数を尊重し始めることがわかりました。

もし

LANG="en_US.UTF-8"

または

LANG=

gitは英語を使用します。

たとえば、

LANG="zh_CN.UTF-8"

gitは中国語を使用します。

gitのコミットログを読んでいませんが、意図したとおりに機能していると思います。英語以外のgitコマンドライン出力メッセージが表示されるのは少し奇妙に感じます:)


実際にen_ENは有効なロケールではありません。有効なロケールは、最後の2つの文字として国コードを持っているので、例えば、en_USおよびen_UK有効なロケールです。
ウォルタートロス

私のための仕事でも自作2.1.6からgitのバージョン2.21.0ではありません
ニコラスMassart

@WalterTross実際en_UKにも無効ですen_GB(英国)が正しいものです。stackoverflow.com/a/7296292/9534591
ik1ne

確かに、実際には、ダブルチェック後にティモシーシウラの答えを正しく修正していました。一つは、常にダブルチェックをするためにGB対英国であり:-(ところで、それはGBは、グレートブリテンおよび北アイルランドで構成され、英国、のISOコードであることをクレイジーだ:。en.wikipedia.org/wiki/ISO_3166-2: GB
ウォルタートロス

これは検証済みの回答である必要があります。設定から言語を削除すると他の影響があります。
tsnobip

4

これを.bash_profileファイルに追加します-macOS mojave(10.14)上のPyCharmの端末コンポーネントにも同様のバグがあります。

# locale settings, string mac/chinese/pycharm/git bug
# https://coderwall.com/p/ehvc8w/set-lang-variable-in-osx-terminal-app
export LANG="en_GB.UTF-8"
export LC_COLLATE="en_GB.UTF-8"
export LC_CTYPE="en_GB.UTF-8"
export LC_MESSAGES="en_GB.UTF-8"
export LC_MONETARY="en_GB.UTF-8"
export LC_NUMERIC="en_GB.UTF-8"
export LC_TIME="en_GB.UTF-8"
export LC_ALL=

これを実行した後、システムを再起動して有効にする必要があります。

クレジットはこのブログ投稿に行きます


3

私が言えることから、それはGitの問題ではなく、GNU gettextの問題です。

バグGNU gettext v0.20修正されたようです。しかし、この投稿の時点で、Homebrewは残念ながらv0.19.8.1のみを提供しています


次のように問題を再現しました。

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.4
BuildVersion:   18E226
$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
$ defaults read -g AppleLanguages
(
    "en-JP",
    "ja-JP",
    "sv-JP"
)
$ brew info gettext
gettext: stable 0.19.8.1 (bottled) [keg-only]
GNU internationalization (i18n) and localization (l10n) library
https://www.gnu.org/software/gettext/
/usr/local/Cellar/gettext/0.19.8.1 (1,934 files, 17.0MB)
  Poured from bottle on 2016-06-24 at 02:05:52
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gettext.rb
...
$ /usr/local/Cellar/gettext/0.19.8.1/bin/msgcat --version
msgcat (GNU gettext-tools) 0.19.8.1
Copyright (c) 2001-2016 Free Software Foundation, Inc.
Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.html>
Detta program "ar fri programvara.  Du kan modifiera och distribuera den.
Det finns inte NAGON SOM HELST GARANTI, till den grad som lagen tillater.
Skrivet av Bruno Haible.
$ sudo filebyproc.d
CPU     ID                    FUNCTION:NAME
...
  2    957              open_nocancel:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/bin
  2    957              open_nocancel:entry msgcat /etc/localtime
  2    957              open_nocancel:entry msgcat /var/db/timezone/zoneinfo/posixrules
  2    957              open_nocancel:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/locale.alias
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/en_JP/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/en/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP.eucJP/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP.eucjp/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja.eucJP/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja.eucjp/LC_MESSAGES/gettext-tools.mo
  2    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja/LC_MESSAGES/gettext-tools.mo
  3    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/sv_JP/LC_MESSAGES/gettext-tools.mo
  3    171                       open:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/sv/LC_MESSAGES/gettext-tools.mo

brew info gettext···パスにgettexを追加することによって、問題を修正する方法についてに関する情報を与えているようだが、私は、私はこれを行うか否かどうかを伝えることができないんだけど
ニコラMassart


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.