【问题标题】:Force Git to use the default system language强制 Git 使用默认系统语言
【发布时间】:2019-08-04 08:48:23
【问题描述】:

Git 在我的系统中没有使用英语作为默认语言,我不知道为什么。我在 macOS 10.13.6 上并使用与 Homebrew 一起安装的最后一个 Git。

在一些原生或带有 git 集成的应用程序中,如 Sublime Text 或 Fork,一些 git 消息以西班牙语提供。

我的系统是用英语安装的,英语是系统的主要语言。不过,我将西班牙语设置为系统中的辅助语言和西班牙语键盘。

我是西班牙人,我理解这些消息,但我的所有设置都是用英语设置的,我不知道为什么会弹出这些消息。

在终端上一切都是英文,在.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

【问题讨论】:

  • 我不确定这是否有帮助,但在通过 launchctl 启动的 MacOS 应用程序(即 Dock 上的任何东西)上,不能从 .bash_profile 获取环境。作为测试,请尝试完全退出这些应用程序,然后从终端窗口启动它们,看看是否有任何改变。
  • 感谢@OdatNurd 的问题,因为我在这里回答是其他的。它与 Homebrew 的 Git 和语言环境有关。

标签: git macos sublimetext3 homebrew config


【解决方案1】:

我终于明白了!

这个问题只发生在 Homebrew 的 Git 上,而且 Homebrew 的问题跟踪器(#37331#31980 和这个特别的 comment)中似乎有几个 cmets 和问题,遗憾的是 Homebrew 的团队没有解决这些问题。

问题出现了,然后 Homebrew 的 Git 安装在英语是默认语言并且还有其他辅助语言的系统中。好像和gettext有关。

有两种解决方案:

  1. 安装原始 Git 二进制文件。如果您是 Homebrew 用户,这是一个糟糕的解决方案,因为您可能希望使用 Homebrew 安装所有内容以方便使用。

  2. 在调用 Git 时将语言环境变量解析到受影响的应用程序。这在 Sublime Text 的 Savvy 包中是可能的,但也许并不总是可能的。
    对于终端很容易。您只需将 ~/.bash_profile~/.zshrc 或其他任何内容添加到您的终端配置文件中:

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

我试图在我的~/.bashrc/etc/bashrc/etc/profile 中插入这些内容,但没有成功。有关此here 的更多信息。也许你有更好的运气。
无论如何,如果您的计算机中有另一个用户使用非英语的其他语言,那就不好了。

  1. 删除/重命名 Homebrew 酒窖中 Git 小桶中的违规语言区域设置 /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

【讨论】:

    【解决方案2】:

    这很可能是 Git 中的一个错误。我在其他应用程序中看到了这一点。发生的情况是程序作者会用英文编写基础程序,然后提供其他语言的翻译文件,但不会提供en_US翻译文件,因为为什么要在基础程序是已经是英文了,对吧?然后本地化库 (gettext) 从系统中查看首选语言列表,在 git 程序中为每种语言查找翻译文件。它没有找到一个用于英语的,但有一个用于西班牙语的,所以它使用它!

    要让程序在像您这样的情况下正常工作,需要发生的事情是程序需要为en_US 提供翻译文件,即使基本程序已经用英文编写.

    您应该将此作为错误报告给 Git。

    【讨论】:

    • 这是自制软件安装的问题......主要是,但酿造维护者不同意。 stackoverflow.com/a/55160216/6888648
    • 我认为我也不同意。 Homebrew 没有做任何事情来导致en 翻译不存在。他们只是在启用gettext 支持的情况下构建git,而Git 提供的下载不是在gettext 支持下构建的。在这些链接问题和您的答案中讨论的各种操作都只是解决基本问题的解决方法,即缺少的en 翻译如何与定义了多种首选语言的用户进行交互。这就是git 本身的问题:您可以在git 源代码树的po/ 目录中看到缺少的en
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    相关资源
    最近更新 更多