命令行中的 mercurial 编码问题

Problems with mercurial encoding in command line

今天发生了两件事:(1) 我的 mercurial 存储库文件 00changelog.i 损坏了,(2) mercurial 在 cmd 中突然停止说英语了。

我不知道 (1) 或 (2) 是如何发生的,但我必须先解决 (2)。我试过了 reinstalling/repairing/removing/installing.

顺便说一句,系统上的语言包是非英语的,但刚才它运行得很好!

拜托,帮忙。

Mercurial 咨询了许多来源以了解它应该为其消息使用哪些本地化信息(通过 GNU gettext 库和一些 Mercurial-specific 管道):环境变量 LANGUAGELC_ALLLC_MESSAGES(或用于 non-message 目的的其他 LC_* 类别)和 LANG,按此顺序排列。在 Windows 上,如果设置了上述环境变量中的 none,Mercurial 也会参考 GetUserDefaultUILanguage() 作为替代方案。

将上述列表中的环境变量设置为 C 是强制 Mercurial 使用特定语言的最简单方法; Mercurial 本身将 LANGLC_ALLLANGUAGE 设置为 C 用于 运行 它的测试(类似于 autoconf 配置脚本如何设置 LC_ALLLANGUAGEC).

或者,也可以从您的 Mercurial 安装中完全删除本地化文件,尽管这应该作为最后的手段。