强制Git使用默认的系统语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强制Git使用默认的系统语言相关的知识,希望对你有一定的参考价值。

Git在我的系统中没有使用英语作为默认语言,我无法弄清楚原因。我在macOS 10.13.6上并使用与Homebrew一起安装的最后一个Git。

在一些具有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 /在崇高如果您使用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

答案

我终于搞清楚了!

这个问题只发生在Homebrew的Git上,似乎在Homebrew的问题跟踪器(#37331#31980和这个特殊的comment)中有几个评论和问题,但是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的酒窖/usr/local/Cellar/git/X.XX.xx/share/locale上的Git's keg中的ofender语言区域设置是es。我决定重命名它只添加一个.back,每次Git更新时你都可以使用这个命令轻松完成
$ find $(brew --prefix)/Cellar/git -type d -name "es" -print0 | xargs -I{} mv {} {}.back

您只需要用您的语言环境替换es,它将重命名为your-locale.back

另一答案

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

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

您应该将此报告为Git的上游错误。

以上是关于强制Git使用默认的系统语言的主要内容,如果未能解决你的问题,请参考以下文章

VIM 代码片段插件 ultisnips 使用教程

使用 Git 来管理 Xcode 中的代码片段

GIT用服务器上的版本强制覆盖掉本地的版本(转)

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程