我想在我的 Linux 安装中改变 git 的语言(为英语) ,而不改变其他程序的语言,并且找不到设置。 怎么做?
注意: 由于 Git 2.3.1 + (Q1/Q22015) ,Git 将尽可能添加 Accept-Language 头。 参见 提交 f18604b by < a href = “ https://github.com/EungJun-Yi”rel = “ nofollow noReferrer”> Yi EungJun (eungjun-yi)
eungjun-yi
添加一个指示用户首选项的 Accept-Language头 由 $LANGUAGE、 $LC_ALL、 $LC_MESSAGES和 $LANG定义的语言。 这使得 git 服务器有机会在 用户首选的语言。
添加一个指示用户首选项的 Accept-Language头 由 $LANGUAGE、 $LC_ALL、 $LC_MESSAGES和 $LANG定义的语言。
Accept-Language
$LANGUAGE
$LC_ALL
$LC_MESSAGES
$LANG
这使得 git 服务器有机会在 用户首选的语言。
你有 Git gui 的地点或者 其他 GUI,但是对于命令行,考虑到这是 GitSurvey 2010的一个问题
localization of command-line messages (i18n) 258 3.6%
当然,正如 翻译: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校所描述的,自2010年以来:
在字符串可以被翻译之前,它们首先必须被标记为翻译。 Git 使用一个国际化接口来包装系统的 gettext library ,因此 gettext 文档中的大部分建议 (对终端中的 GNU 系统 info gettext)适用。
在字符串可以被翻译之前,它们首先必须被标记为翻译。
Git 使用一个国际化接口来包装系统的 gettext library ,因此 gettext 文档中的大部分建议 (对终端中的 GNU 系统 info gettext)适用。
gettext
info gettext
自 Git 1.7.9 + (2012年1月)起实施:
Git 使用 gettext将最常见的接口消息翻译成用户语言,如果翻译是可用的,并且语言环境设置为 。 分发服务器可以在 po/中删除新的 PO文件以添加新的翻译。
po/
PO
因此,如果你的更新把翻译搞砸了,检查一下 gettext使用了什么: 比如说“ 语言环境变量”
区域设置由几个区域设置类别组成,请参见方面。当程序查找区域设置相关的值时,它根据以下环境变量按优先级顺序执行: LANGUAGE LC_ALL LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ... LANG 值已设置但为空的变量在此查找中将被忽略。 LANG是指定语言环境的标准环境变量。作为用户,您通常设置这个变量(除非系统已经在 /etc/profile或类似的初始化文件中设置了其他一些变量)。 LC_CTYPE、 LC_NUMERIC、 LC_TIME、 LC_COLLATE、 LC_MONETARY、 LC_MESSAGES等等都是环境变量,用于覆盖 LANG并仅影响单个语言环境类别。 例如,假设您是西班牙的瑞典用户,您希望您的程序根据西班牙惯例处理数字和日期,并且只有消息应该使用瑞典语。然后,您可以使用 localedef程序创建一个名为“ sv_ES”或“ sv_ES.UTF-8”的语言环境。但是将 LANG变量设置为 es_ES.UTF-8,将 LC_MESSAGES变量设置为 sv_SE.UTF-8更简单,并且达到了同样的效果; 这两个地区已经预先安装在操作系统中。 Abc0是一个覆盖所有这些内容的环境变量。它通常用于运行特定程序的脚本中。例如,配置由 GNU autoconf生成的脚本使用 LC_ALL来确保配置测试不会以依赖于地区的方式进行操作。 不幸的是,有些系统在 /etc/profile或类似的初始化文件中设置了 LC_ALL。因此,作为用户,如果要设置 LANG和其他一些 LC_xxx变量(可选) ,就必须取消设置这个变量。
区域设置由几个区域设置类别组成,请参见方面。当程序查找区域设置相关的值时,它根据以下环境变量按优先级顺序执行:
LANGUAGE LC_ALL LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ... LANG
值已设置但为空的变量在此查找中将被忽略。
LANG是指定语言环境的标准环境变量。作为用户,您通常设置这个变量(除非系统已经在 /etc/profile或类似的初始化文件中设置了其他一些变量)。
LANG
/etc/profile
LC_CTYPE、 LC_NUMERIC、 LC_TIME、 LC_COLLATE、 LC_MONETARY、 LC_MESSAGES等等都是环境变量,用于覆盖 LANG并仅影响单个语言环境类别。 例如,假设您是西班牙的瑞典用户,您希望您的程序根据西班牙惯例处理数字和日期,并且只有消息应该使用瑞典语。然后,您可以使用 localedef程序创建一个名为“ sv_ES”或“ sv_ES.UTF-8”的语言环境。但是将 LANG变量设置为 es_ES.UTF-8,将 LC_MESSAGES变量设置为 sv_SE.UTF-8更简单,并且达到了同样的效果; 这两个地区已经预先安装在操作系统中。
LC_CTYPE
LC_NUMERIC
LC_TIME
LC_COLLATE
LC_MONETARY
LC_MESSAGES
localedef
sv_ES
sv_ES.UTF-8
es_ES.UTF-8
sv_SE.UTF-8
Abc0是一个覆盖所有这些内容的环境变量。它通常用于运行特定程序的脚本中。例如,配置由 GNU autoconf生成的脚本使用 LC_ALL来确保配置测试不会以依赖于地区的方式进行操作。
autoconf
LC_ALL
不幸的是,有些系统在 /etc/profile或类似的初始化文件中设置了 LC_ALL。因此,作为用户,如果要设置 LANG和其他一些 LC_xxx变量(可选) ,就必须取消设置这个变量。
LC_xxx
早些时候,HTTP 传输客户机学会了通过发送 Accept-Language HTTP 头来告诉服务器端他们所在的地区,但是这只是针对一些请求而不是其他请求。 Git 2.38(Q32022)修复了这个问题:
见 承认吧(2022年7月11日) by 李林超(Cactusinhand)。 (由 朱尼奥 · C · 哈马诺 gitster于 提交4b8cdff合并,2022年7月19日)
Cactusinhand
gitster
remote-curl : 将 Accept-Language 头发送到服务器 帮助者: Junio C Hamano 签名: 李林超
remote-curl
帮助者: Junio C Hamano 签名: 李林超
Git 服务器端接受 Accept-Language头的能力是在 F18604b中引入的(“ http: 如果可能的话添加 Accept-Language 头”,2015-01-28,Git v2.4.0-rc0—— 合并) ,但是这只在传输的非常早期阶段使用,即 HTTP GET请求来发现引用。 对于其他阶段,比如智能 HTTP 中的 POST请求,服务器不知道客户机使用哪种语言。 教 git 客户机学习最终用户首选的语言,并将 accept-language头文件丢到服务器端。 一旦服务器得到这个头,它就能够用最终用户理解的语言与他们交谈。 这对于许多不说英语的人来说是非常有帮助的。
Git 服务器端接受 Accept-Language头的能力是在 F18604b中引入的(“ http: 如果可能的话添加 Accept-Language 头”,2015-01-28,Git v2.4.0-rc0—— 合并) ,但是这只在传输的非常早期阶段使用,即 HTTP GET请求来发现引用。 对于其他阶段,比如智能 HTTP 中的 POST请求,服务器不知道客户机使用哪种语言。
http
GET
POST
教 git 客户机学习最终用户首选的语言,并将 accept-language头文件丢到服务器端。 一旦服务器得到这个头,它就能够用最终用户理解的语言与他们交谈。 这对于许多不说英语的人来说是非常有帮助的。
accept-language
将这些行添加到 ~/.bashrc、 ~/.bash_profile或 ~/.zprofile中,以强制 git 显示所有英文消息:
~/.bashrc
~/.bash_profile
~/.zprofile
# Set Git language to English #alias git='LANG=en_US git' alias git='LANG=en_GB git'
在某些系统上,当设置了环境变量 LC_ALL(优先于 LANG)时,别名需要覆盖 LC_ALL。请参阅 UNIX 规范-环境变量以获得进一步的解释。
# Set Git language to English #alias git='LC_ALL=en_US git' alias git='LC_ALL=en_GB git'
如果您将这些代码行添加到 ~/.bashrc中,别名将在新的交互式 shell 启动时定义。如果您将其添加到 ~/.bash_profile,则在登录时将应用别名。
如果你只想使用一个英文命令,你可以在命令之前写 LC_ALL=C,例如:
LC_ALL=C
LC_ALL=C git status
会导致
# On branch master nothing to commit, working directory clean
C中使用的语言环境是英语的,并且始终可用,而不需要安装其他语言包 (见 https://askubuntu.com/a/142814/34298)
C
要为整个当前 bash 会话更改它,只需输入
LANG=C
比如把它改成德语输入
LANG=de_DE.UTF-8
如果找不到语言环境语言,GIT 默认为英语。
因此,如果您希望 GIT 是英文的,只需破坏它正在运行的语言文件即可。在我的情况下,它总是运行与德国(即: 味精)。
如果我删除它或重命名它,然后它默认为英语。
在这里,我重命名了文件
运行 LC_MESSAGES=C git,而不是 LC _ ALL = C 或 LANG = C,不需要删除或重命名文件。
LC_MESSAGES=C git
此命令将 Git 消息输出更改为英文。
添加这一行为我解决了问题: 更新: 现在似乎更多的组件也需要语言环境。
$more ~/. bash _ profile
输出 LANG = en _ US (过时)
Export LANG = “ en _ US. UTF-8”(更新)
正如本特所建议的: 将这些行添加到您的 ~/.bashrc或 ~/.bash_profile中,以强制 git 显示所有英文消息: vim ~/.bashrc-这个配置文件(如果你是用户 ubuntu,你编辑这将只为这个用户) ; 加上这几行:
vim ~/.bashrc
ubuntu
# Set Git language to English #alias git='LANG=en_US git' alias git='LANG=en_GB git' #you can add also LANG=en_GB
关闭文件后,需要用 shell 编写:
source ~/.bashrc
重新加载新设置或退出终端并重新连接:)
这里是我的解决方案,改变 git 语言跟随答案 这个和 这个
1) nano ~/.bashrc 2)将 alias git='LANG=en_GB git'加入档案 2)保存档案 4) source ~/.bashrc
nano ~/.bashrc
alias git='LANG=en_GB git'
现在你的饭桶已经改变了语言。但是,如果在你重新启动终端之后就不工作了,你还需要吗
4.1) nano ~/.profile 4.2)加入 source ~/.bashrc 4.3)保存文件 < br/>
nano ~/.profile
它会使 source ~/.bashrc运行每当你打开终端
希望能有帮助