題:
Homebrew和Git-命令行上的語言錯誤
wujek
2018-09-22 21:34:26 UTC
view on stackexchange narkive permalink

我有一個奇怪的問題-當我使用Command Line Tools軟件包隨附的 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 等設置為英語,這樣(可能)可以工作,但是我也想了解這種變化的來源。

有什麼想法嗎?

EDIT:為了使事情變得更有趣,我使用了從工作中獲得的另一台Mac。它是在德國購買的,初始語言設置為德語(我改為美式英語),並且一切正常,例如,Git安裝程序(CLT和Homebrew)都使用英語。 locale 命令中的語言環境信息是相同的。

我想我遇到了同樣的問題。在macOS Mojave 10.14(18A389),Homebrew 1.7.6,git版本2.19.0上運行…
當我升級到莫哈韋沙漠時,這只是我的事。到現在為止一切正常。所有的OS X界面都使用英語,C語言環境,但是我在說德語的國家,而git正在用德語和我聊天。那麼_does_ git如何決定使用哪種語言?
六 答案:
Anton K
2018-09-30 00:33:18 UTC
view on stackexchange narkive permalink

最近,我開始觀察到相同的行為,尤其是在git中(更新到MacOS Mojave之後)。起初,我認為這是git本身的問題。所以,我已經用自製軟件重新安裝了git,但無濟於事。

但是,轉到MacOS“設置”中的“語言&區域”選項卡,然後從列表中刪除不需要的其他語言(請注意:這些語言與鍵盤輸入源不同),導致git顯示在終端中以所需的語言(在我的情況下為英語)命令輸出消息。

值得注意的是,這個問題僅在macOS終端(而不是VSCode的終端)中出現。

我尚未使用Mojave,但這解決了我的問題。正如您所說,VSCode或Idea終端是英語,而iterm2是德語。我確實有很多輸入源,包括德語,因為我經常用不同的語言書寫,並且需要特殊字符。似乎(經過測試),當我添加輸入源時,它還在“語言和地區”列表中添加了一種語言,這並不是必須的,並且會導致問題。奇怪的是,英語仍然排在第一位,但是以某種方式被第二種語言德語所取代。嗯
更新到Mojave之後,我發生了類似的事情。我的終端git是英語,但通過IntelliJ終端的git是西班牙語(我的第二語言是Language&Reigon)。我明確設置了LANG環境變量並將其修復,因為我想在Language&Reigon中使用西班牙語
@wujek您沒有使用Mojave的事實使您有可能使用自製軟件上的最新git包仍然存在問題。在我的系統上,僅進行了兩項更改,之後我注意到了這個問題:更新為Mojave並使用自製軟件升級git軟件包。
@AntonK-是的,可能是git包。我定期升級Brew軟件包,並且僅在一段時間前才注意到其行為,因此它肯定與以前有所不同。不過,我經常升級,因此無法確定是哪個升級引起了問題。
看到git俄語:D我感到非常驚訝
修復了我的Mojave / iTerm / homebrew git問題,謝謝。奇怪的行為。
刪除語言不是解決方案。我設置了LANG = en_US.UTF-8,它仍然是法語。
我確實使用其他語言,所以這種解決方法對我不起作用:-(順便說一句,在“ brew upgrade”之後,我的git用我使用的4種語言(英語(首選語言),意大利語和德語)中的3種編寫消息!!!多麼愚蠢的錯誤!
為我解決了問題!我添加了一個新的“鍵盤->輸入源”,並在“語言和地區”下添加了一種新語言。我從“語言和地區”中刪除了添加的語言,從而解決了該問題。當我用其他語言鍵入消息/電子郵件時,我仍然可以保留第二輸入源。
PickBoy
2018-11-23 13:10:05 UTC
view on stackexchange narkive permalink

我遇到了同樣的問題。自製升級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版本也對我不起作用
-1
是的,事實上,經過仔細檢查,我已經正確地修正了蒂莫西·西烏拉(Timothy Siwula)的答案。人們總是必須仔細檢查一下英國與GB :-(.。順便說一句,GB是包含大不列顛和北愛爾蘭的英國的ISO代碼,這很瘋狂:https://en.wikipedia.org/wiki/ISO_3166-2:GB
這應該是經過驗證的答案,從設置中刪除語言還有其他影響。
timxor
2019-03-15 08:14:02 UTC
view on stackexchange narkive permalink

將此添加到您的 .bash_profile 文件中-在macOS mojave(10.14)上,PyCharm的終端組件也存在類似的錯誤。

 #語言環境設置,字符串mac / chinese / pycharm / git bug
#https://coderwall.com/p/ehvc8w/set-lang-variable-in-osx-terminal-app
export LANG =“ zh_CN.UTF-8”
出口LC_COLLATE =“ zh_CN.UTF-8”
出口LC_CTYPE =“ en_GB.UTF-8”
出口LC_MESSAGES =“ zh_CN.UTF-8”
出口LC_MONETARY =“ zh_CN.UTF-8”
出口LC_NUMERIC =“ zh_CN.UTF-8”
導出LC_TIME =“ en_GB.UTF-8”
出口LC_ALL =
 

完成此操作後,您需要重新啟動系統才能使其生效。

信用轉到此博客帖子

execjosh
2019-05-15 21:04:34 UTC
view on stackexchange narkive permalink

據我所知,這是 GNU gettext的問題,而不是Git的問題。

錯誤似乎已在 GNU gettext v0.20中修復;但不幸的是,截至本文發佈時,Homebrew 僅提供v0.19.8.1


我重現了以下問題:

  $ sw_vers
產品名稱:Mac OS X
產品版本:10.14.4
內部版本號:18E226
 
  $語言環境
朗=
LC_COLLATE =“ C”
LC_CTYPE =“ UTF-8”
LC_MESSAGES =“ C”
LC_MONETARY =“ C”
LC_NUMERIC =“ C”
LC_TIME =“ C”
LC_ALL =
 
  $默認讀取為-g AppleLanguages
(
    “ zh-JP”,
    “ ja-JP”,
    “ sv-JP”
)
 
  $ brew info gettext
gettext:穩定的0.19.8.1(瓶裝)[僅可放入桶]
GNU國際化(i18n)和本地化(l10n)庫
https://www.gnu.org/software/gettext/
/usr/local/Cellar/gettext/0.19.8.1(1,934文件,17.0MB)
  從瓶子倒在2016-06-24在02:05:52
來自: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
版權所有(c)2001-2016 Free Software Foundation,Inc.
許可GPLv3 +:GNU GPL版本3 eller senare <http://gnu.org/licenses/gpl.html>
Detta program“ ar fri programvara。Du kan Modifya och distribuera den。
確定在NAGON SOM HELST GARANTI內的魚鰭,直到grad som lagen耕種機。
Skrivet和Bruno Haible。
 
  $ sudo filebyproc.d
CPU ID功能:NAME
...
  2 957 open_nocancel:entry msgcat /usr/local/Cellar/gettext/0.19.8.1/bin
  2 957 open_nocancel:進入msgcat / etc / localtime
  2 957 open_nocancel:進入msgcat / var / db / timezone / zoneinfo / posixrules
  2 957 open_nocancel:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/locale.alias
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/en_JP/LC_MESSAGES/gettext-tools.mo
2 171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/en/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP.eucJP/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP.eucjp/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja_JP/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja.eucJP/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja.eucjp/LC_MESSAGES/gettext-tools.mo
  2171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/ja/LC_MESSAGES/gettext-tools.mo
  3171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/sv_JP/LC_MESSAGES/gettext-tools.mo
  3171打開:進入msgcat /usr/local/Cellar/gettext/0.19.8.1/share/locale/sv/LC_MESSAGES/gettext-tools.mo
 
`brew info gettext`似乎提供了有關如何通過在路徑中添加gettex來解決問題的信息,但是我無法確定是否應該這樣做。
ans1genie
2019-12-12 04:13:08 UTC
view on stackexchange narkive permalink

解決方法: 刪除所有其他首選語言。

但為此仍是一個未解決的問題: https://youtrack.jetbrains.com/issue/IDEA-216039

Juan Maya
2019-03-02 22:07:03 UTC
view on stackexchange narkive permalink

我在Mojave和Git 2.19上遇到了同樣的問題,但是我剛剛將Git更新到了2.21,它再次按預期工作。

我在git 2.21.0中遇到問題


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...