git - 升级后的西班牙语 Git
问题描述
升级到 git 2.19 后,消息为西班牙语。
我没有LANG
设置,但是设置为英文后:
export LANG="en_US.UTF-8"
然后它再次工作,但在升级之前,没有必要明确设置语言(它改变了默认识别什么?)
UDPATE1:
https://github.com/Homebrew/homebrew-core/pull/32008
https://public-inbox.org/git/CAKd-JgS3omKbN+OzQL2dUun6Seg9CjDNk8KEj9m83xdTZE=7FA@mail.gmail.com/T/
此问题已在 wget 等其他命令行中看到。
都指向 gettext() 吗?
更新2:
https://github.com/Homebrew/homebrew-core/issues/31980 仍在研究 gettext。
解决方案
有一个错误报告正在进行中,如在此类似案例中所见
更新到 Git 2.19 后,Git 的输出突然出现在俄语中。
我可以用export LANG=en_US.UTF-8
它把它切换回英文,但这很奇怪。这似乎是如何
brew
更改其 Git 构建的错误,并且还会影响除 git 之外的软件包。此问题并非特定于 Git。
Ævar 询问其他命令行程序是否也会出现此问题,确实如此。
例如,我尝试通过 'wget' 安装brew
,它表现出相同的奇怪行为。
Ævar 建议可能有一些神奇的特殊大小写英语,这让我想知道 brew 是否将这种魔法构建到gettext
(?) 中,或者这种魔法是否是 MacOS 本身的一部分。
Alexey Storozhev ( storoj
)在 Homebrew/homebrew-core
issue 31980中发表评论
我完全同意@moonfruit 的观点,即删除
--with-gettext
选项是一个错误。
但另一个错误发生了,gettext 支持成为强制性的。如果您的系统具有一种或多种语言,则会产生严重影响。
例如,我有en_RU
语言环境,我的git
输出变成了俄语。
这对我来说不是一个选择,我无法以正常方式提供帮助;
- 我不想
LC_LANG=en_US
在我的中使用,bash_profile
因为它会影响我系统中的所有内容,- 我也不想做这样的别名
git="LC_LANG=en_US git"
。返回的另一点
--with-gettext
是git
支持i18n的方式。
根据INSTALL
,使用英语的唯一方法是完全NO_GETTEXT
启用标志。否则,将使用po/${lang}.po
文件来确定可用的语言。
如您所见,该目录不包含“en.po
”文件。如果您在支持和语言环境下运行,git
将查找以下文件:. 它最终找到“ ”一个并使用完全无法使用的俄语输出。我没有任何以俄语本地化的开发软件。gettext
en_RU
gettext
share/locale/{en_RU,en,ru_RU,ru}/LC_MESSAGES/git.mo
ru
所以...用标志重建 GitNO_GETTEXT=1
(禁用翻译)似乎是目前唯一的解决方法(2018 年第四季度)。
推荐阅读
- powershell - 远程调用脚本时PowerShell启动进程未启动
- javascript - 如何动态地将数据添加到数组中并将其导出客户端csv
- dll - 由于缺少 dll 导致的 python 版本错误
- php - 在 Woocommerce 中按品牌和价格对产品进行排序
- sql - 使用可能为 NULL 的值的 WHERE 子句
- postgresql - 如何在PostgreSQL11.0中根据正则表达式更改列的日期格式
- php - WordPress 图像大小未正确调整大小
- typescript - 如何将组件库中的常用常量和函数导出(共享)到 Typescript 中的其他项目
- javascript - TypeError:对象不是函数(匿名函数)
- ansible - Ansible:在数组中查找字符串并从数组中返回字符串