Answers:
将这些行添加到您的~/.bashrc
或中,~/.bash_profile
以强制git以英语显示所有消息:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
设置LC_ALL
环境变量时,在某些系统上,别名需要覆盖LC_ALL
,其优先级高于LANG
。有关更多说明,请参见UNIX规范-环境变量。
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
如果您将这些行添加到~/.bashrc
别名中,则将在启动新的交互式外壳程序时定义它们。如果您将其添加到~/.bash_profile
别名中,将在登录时应用。
.bash.rc
而不是.bashrc
)。您还必须关闭并重新启动外壳程序.bashrc
才能执行。我也为此添加了注释。
.bashrc
即使重新启动,我也尝试过。别名工作。只是语言没有改变。
.bashrc
成功执行了获取,您可以echo "This is .bashrc"
在文件末尾添加一个类似的测试。您也可以按需执行它,而不必通过重启终端或整个系统. .bashrc
。最后,我建议尝试设置LC_ALL
环境变量而不是LANG
,因为第一个优先。
.bashrc
。如果LC_ALL
具有优先权,那么这将是问题所在,将其设置为我的语言。但是,然后我不想更改一般语言设置...我不能为一个程序覆盖它吗?
$ LC_ALL="en_US" man
,然后$ man
如果您只想使用一个英文命令,则可以LC_ALL=C
在该命令之前编写,例如:
LC_ALL=C git status
将导致
# On branch master
nothing to commit, working directory clean
所使用的语言环境为C
英语,并且始终可用而无需安装其他语言包
(请参阅https://askubuntu.com/a/142814/34298)
要在整个当前bash会话中更改它,只需输入
LANG=C
要将其更改为例如德语输入
LANG=de_DE.UTF-8
LC_ALL=C
建议,因为我对语言环境有一些疑问,因此LC_ALL="en_US"
最近不再起作用。
添加这一行为我解决了这个问题:
$ more ~/.bash_profile
export LANG=en_US
注意:从Git 2.3.1+(Q1 / Q2 2015)开始,Git将在可能的情况下添加Accept-Language标头。
见提交f18604b由易EungJun( eungjun-yi
)
添加
Accept-Language
,其指示用户的首选语言由定义的头$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
和$LANG
。这使git服务器有机会以用户首选的语言显示远程错误消息。
您具有git gui或其他GUI的语言环境,而不是命令行,因为这是GitSurvey 2010的问题之一
localization of command-line messages (i18n) 258 3.6%
当然,自2010年以来,如下po/README
所述:
在字符串可以翻译之前,首先必须将其标记为要翻译。
Git使用包装系统
gettext
库的国际化接口 ,因此适用于gettext文档中的大多数建议(在info gettext
终端的GNU系统上)。
自git 1.7.9+起生效(2012年1月):
gettext
如果翻译可用并且适当设置了语言环境,则Git 会将其最常见的界面消息翻译成用户的语言。
发行人可以放入新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
,只影响一个语言环境类别。
例如,假设您是西班牙的瑞典用户,并且您希望程序根据西班牙的约定处理数字和日期,则仅消息应使用瑞典语。然后,您可以使用该程序创建名为“sv_ES
”或“sv_ES.UTF-8
” 的语言环境localedef
。但是将LANG
变量设置为es_ES.UTF-8
和将LC_MESSAGES
变量设置为sv_SE.UTF-8
; 更简单,并且达到相同的效果。这两个语言环境已预先安装在操作系统中。
LC_ALL
是覆盖所有这些的环境变量。它通常用于运行特定程序的脚本中。例如,通过GNU生成的配置脚本autoconf
使用LC_ALL
,以确保配置测试不依赖于语言环境的方式运作。不幸的是,某些系统设置在类似的初始化文件
LC_ALL
中/etc/profile
或其中。因此,作为用户,如果要设置LANG
,则必须取消设置此变量,并且可以选择取消其他一些LC_xxx
变量。
LANG
在bash / shell / DOS会话中进行设置git
(或git-gui
从中启动),就只有git
(或git-gui
)将使用该特定设置。所有其他程序将从系统/用户环境变量继承。
如果GIT找不到语言环境语言,则默认为英语。
因此,如果您希望GIT使用英语,请破坏与它一起运行的语言文件。就我而言,它始终使用德语运行(即de.msg)。
如果删除或重命名了它,则默认为英语。
在这里我重命名了文件
C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
。
/usr/local/Cellar/git/2.21.0/share/locale/
。
正如Bengt建议的那样:将以下行添加到您的~/.bashrc
或中,~/.bash_profile
以强制git以英语显示所有消息:
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
重新加载新设置或退出终端并再次连接:)
LANG=en_GB
于~/.bashrc
该怎么办?那不是只定义局部变量LANG
吗?