我想在我的 Linux 安装中更改 git 的语言(改为英语),而不更改其他程序的语言并且找不到设置。怎么做?
8 回答
将这些行添加到您的~/.bashrc
,~/.bash_profile
或~/.zprofile
强制 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
别名中,则将在新的交互式 shell 启动时定义。如果您将其添加到~/.bash_profile
别名将在登录时应用。
如果你只想有一个英文命令,你可以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
添加这一行为我解决了这个问题:更新:现在似乎更多的组件也需要一个区域设置。
$ 更多 ~/.bash_profile
导出 LANG=en_US(已过时)
export LANG="en_US.UTF-8"(更新)
注意:从 Git 2.3.1+(Q1/Q2 2015)开始,Git 将尽可能添加 Accept-Language 标头。
参见Yi EungJun提交的f18604b ( 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
库info gettext
的国际化接口,因此您的 gettext 文档(在终端中的GNU 系统上)中的大多数建议都适用。
自git 1.7.9+(2012 年 1 月)以来就已到位:
gettext
如果翻译可用且语言环境设置适当,Git 会使用将其最常见的界面消息翻译成用户的语言。
分销商可以放入新PO
文件po/
以添加新翻译。
因此,如果您的更新弄乱了翻译,请检查gettext
使用什么:
例如,参见“ Locale Environment Variables ”
一个语言环境由几个语言环境类别组成,请参阅 Aspects。当程序查找依赖于语言环境的值时,它会根据以下环境变量按优先级顺序执行此操作:
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
和影响单个语言环境类别的环境变量。
例如,假设您是西班牙的瑞典用户,并且您希望您的程序根据西班牙语约定处理数字和日期,并且只有消息应该是瑞典语。然后,您可以使用该程序创建一个名为“<code>sv_ES”或“<code>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
变量。
运行LC_MESSAGES=C git
,而不是 LC_ALL=C 或 LANG=C,无需删除或重命名文件。
此命令将输出 Git 消息更改为英文。
如果 GIT 找不到 Locale 语言,则默认为英语。
因此,如果您希望 GIT 是英文的,只需破坏它正在运行的语言文件。就我而言,它总是以德语运行(即:de.msg)。
如果我删除它或重命名它,那么它默认为英文。
在这里我重命名了文件
正如 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
重新加载新设置或退出终端并再次连接:)