有没有办法让Git不在提交消息中使用国际化字符串?

时间:2016-02-01 13:44:06

标签: git internationalization

我最近通过我的mac os x(10.9.5)上的fink将Git更新为2.7.0。默认情况下,构建是国际化的。这可以通过git status和类似的命令与Git进行交互,但在执行提交时有点烦人,因为它适用于“重命名”,“修改”,“删除”之类的内容,我在编辑提交消息时取消注释的习惯。我不喜欢我的回购在经过数百次英文承诺后会突然发出法语单词。

隐藏libintl.h文件后,我执行了“fink rebuild git”,结果git没有国际化。问题是,与此同时,我已经习惯了--date=format:%c在我的漂亮日志的别名中,这具有在git log输出中本地化显示日期的效果。

我想:

  1. 仍然可以告诉git以符合我的语言环境的方式在git log ...命令中显示日期,

  2. 但同时在预先编辑的提交消息中没有预先翻译过的“已删除”,“已修改”等字样。

  3. 是否可以在git repo的本地克隆中修改po/fr.po?但这会破坏通过fink完成安装的优势(因为我没有关注Git开发,我对在光盘上保留克隆没有太大兴趣)。

1 个答案:

答案 0 :(得分:0)

这种自我答案有望被更好,更有规律的答案所取代。

与此同时,由于缺乏更好的方法,我目前正在.bashrc进行实验:

alias gitfr="LANG=fr_FR.UTF-8 /sw/bin/git"
alias git="LANG=en_US.UTF-8 /sw/bin/git"

gitfr别名将在以下命令中为我提供服务:

foo$ gitfr log --date=format:%c
commit 22e01a35803f2b70a3e413d2fc9c774baffa01cc
Author: jfbu <...>
Date:   Mar  2 fév 10:18:10 2016

    OK

注意法国本地化日期。这是使用Git的唯一地方,我热衷于看法语。我在法语翻译中遇到的问题 https://github.com/git/git/blob/master/po/fr.po是他们将它变成预先格式化的提交消息。这很烦人,因为将来某些单词可能会在上游翻译,或者我会想要在我自己的分叉翻译上工作,但像Validation initiale之类的东西会进入提交历史。如果回购将由其他开发人员(而不是法国人)在以后维护,则会导致问题。

想象一下对称情况,我检查了一个在中国zh_CN本地化系统上维持了一段时间的回购。例如,一些提交是关于修改或删除的文件,并且在编辑提交消息时,提交者取消注释git准备的行说出来。如果我稍后检查提交历史,并且我遇到中文表意文字,我不会立即知道文件是否被修改,添加或删除。

因此,仍在寻找解决方案:

  1. 使用本地化的git进行命令行交互,

  2. 但保留所有提交历史记录。