如何在Windows上永久更改Mercurial命令行的语言?

7
我该如何在Windows上永久更改mercurial命令行的语言为英语?根据此答案中所述,设置LANG环境变量可以暂时帮助一个命令窗口,但是是否可以通过mercurial.ini(或hgrc)或其他方式来设置语言?
原因是:mercurial的德语输出存在故障,所有特殊字符(Umlaute等)都无法正确显示。
3个回答

12

如果你想将命令行语言更改为英语,请前往Mercurial安装路径(例如在Windows上为 C:\Program Files\Mercurial\),然后找到/locale/文件夹,将当前错误的语言文件夹(例如de)重命名为_de。

现在hg将会回退至默认语言en。


这个功能非常好用,这也是我通常选择不首先安装语言文件的原因,也适用于除Mercurial之外的其他程序,只要它们的安装程序允许这样做。 - Tom

10
您可以通过在控制面板->所有控制面板项->系统->高级系统设置->高级->环境变量中为当前用户或全局设置LANGUAGE环境变量为en_US.UTF-8。在UserSystem中创建新变量。创建后,您的更改仅适用于新实例的cmd或其他程序。
请注意,除了hgTortoiseHg之外,似乎大多数其他程序都不会关注LANGUAGE环境变量。我能够在我的Windows 7桌面(英语)上安装它,并设置LANGUAGE=de_DE.UTF-8。这改变了hg以德语报告大多数消息,但未影响我的任何其他程序,它们仍然是英语。

就像在其他答案中评论的那样:我不想“全局”设置LANG环境变量。我只想改变mercurial的语言。 - James
1
我已经更新了我的答案,提到使用LANGUAGE似乎不会影响其他程序。 - mvp
谢谢。虽然这似乎也有点“hack”的感觉,但它似乎有效。谢谢。 - James

0

我猜你使用了SET来设置环境变量。这只会修改当前命令行窗口的变量。

你尝试过使用SETX永久地设置LANG环境变量吗?这将永久地修改该变量。然而请注意,它不会影响当前命令行窗口,因此你需要打开一个新的命令行窗口以查看更改的影响。


3
我不想在“全局”设置LANG环境变量,我只想更改mercurial的语言。 - James

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接