# git-gui-zh **Repository Path**: fanshichao/git-gui-zh ## Basic Information - **Project Name**: git-gui-zh - **Description**: 刚刚接触 Git 时,通篇阅读了官方的 Pro Git Book ,实际操作时命令行一个也没记住,就直接使用了Git-GUI。 - **Primary Language**: Unknown - **License**: Unlicense - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-10-07 - **Last Updated**: 2022-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前言 但是反观Git GUI,想要设置成中文就显得没那么容易了。打开设置里面,全是密密麻麻的的英文,而且找了半天也没找到对应的语言设置,那么到底应该怎么设置Git GUI的中文显示呢? 下载下来之后,将其放到/mingw64/share/git-gui/lib/msgs/zh_cn.msg,有可能Git的安装路径下面没有msgs这个文件夹,那么需要自己创建之后再将这个汉化包来放进去。这样就算是汉化完了。 重新打开软件,你就会发现软件界面已经变成了熟悉的中文了。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/1007/110740_ff8c9696_5264686.png "20191102111109755.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/1007/110550_f95775ca_5264686.png "20200624132420109.png") 1. 刚刚接触 Git 时,通篇阅读了官方的 [Pro Git Book](https://git-scm.com/book/zh/v2) ,实际操作时命令行一个也没记住,就直接使用了Git-GUI。 2. 官网下载的 [Git](https://git-scm.com/downloads) 安装包,只有英文界面,没有任何其它语言。网上能找到的中文语言文件大概是10多年前的了。 4. 语言文件本身内容是纯文本的,格式是符合某规范的,工具在源码里也有。在规范不了解,工具不会用的情况下完全纯手工打造应该更快一些。 5. [Git 官网](https://git-scm.com/downloads) 下载有时很慢,[镜像站](https://npm.taobao.org/mirrors/git-for-windows/) 下载很快,但是新版本只有安装包没有源码。 # 工具软件 1. [Notepad3](https://www.rizonesoft.com/) 2. [金山词霸](http://www.iciba.com/) 3. [Typora](https://typora.io/) 4. [BC](http://www.scootersoftware.com/) # 文件说明 * 如果 $GITROOT/mingw64/share/git-gui/lib/msgs/zh_cn.msg 文件存在,在中文系统中 Git-GUI 就会自动显示中文界面。 * 可以从[源码](https://github.com/git/git)或[分支](https://github.com/git-for-windows/git)中获得需要翻译的内容。 * $git-master\git-gui\po\git-gui.pot 是模板文件,包含了需要翻译的英文。 * $git-master\git-gui\po\zh_cn.po 是中文源文件(已经10多年没有更新了,包含了某些翻译内容)。 * $git-master\git-gui\po\glossary\zh_cn.po 是中文术语表,翻译时尽可能参照这个。 # 文件格式说明 * 制作语言文件就是把 zh\_cn.po 参照 git-gui.pot 转换成 zh_cn.msg。 * po、pot、msg 文件中,以井号(#)开头的行为注释行,不起作用。 * zh\_cn.po 或 git-gui.pot 文件: * \# 开头的行为注释行,不起作用。 * msgid 开始的多行为原文,即英文界面显示的内容。 * msgstr 开始的多行为翻译后的文本,即中文界面显示的内容。 * 文件中 msgid 为空的行及其相关的 msgstr 是提供给工具使用的。 * zh\_cn.msg 文件: * 由若干行文本组成,每行为一项翻译内容。 * 以井号(#)开头的行为注释行,不起作用。 * 有效行格式固定为:**::msgcat::mcset zh_cn "msgid" "msgstr"** 。 * 其中,**msgid **为英文原文,**msgstr** 为翻译后的中文。 # 制作过程详述 1. 使用软件 Notepad3 打开源文件 zh\_cn.po 和 git-gui.pot 。 2. 删除文件中以 **#** 开头的注释行。 1. 使用 “Ctrl+H” 快捷键,调出“替换”对话框; 2. “查找目标:”框中输入 `^#.*$\n` ; 3. 删除“替换为:”框中的所有内容,使其为空; 4. 勾选“循环查找”; 5. “查找模式”选择“正则表达式”; 6. 点击“替换所有打开文件”。 3. 合并文件中 **msgid** 和 **msgstr** 后面的多行字符串为1行。 1. 方法参考第 2 步; 2. “查找目标:”框中输入 `"\n"` 即可。 4. 合并 **msgstr** 行的内容到 **msgid** 行后面,同时去除字符 **msgstr** ,保留空白符和字符串。 1. 方法参考第 2 步; 2. “查找目标:”框中输入 `\nmsgstr` 即可。 5. 替换字符 **msgid** 为 **::msgcat::mcset zh_cn** ,保留空白字符。 1. 方法参考第 2 步; 2. “查找目标:”框中输入`msgid` ; 3. “替换为:”框中输入 `::msgcat::mcset zh_cn` 即可。 6. 删除空白行,此时文件内容格式与 zh_cn.msg 一致。 1. 方法参考第 2 步; 2. “查找目标:”框中输入 `^\s+` 即可。 7. 对文件 zh\_cn.po 和 git-gui.pot **分别进行排序**,以便于合并文件。**注意:由于Notepad3没有此功能,请使用其它工具软件进行排序操作。** 1. 依次选择菜单 “编辑” -> “行操作” -> “升序排列文本行”; 2. 排序号首行会变为空白行,删除即可; 3. 此时文件 git-gui.pot 为 580 行,文件 zh_cn.po 为 391 行,可知有好多行未翻译。 8. 使用比较软件合并 zh\_cn.po 文件内容到 git-gui.pot 文件中。 9. 合并原 zh_cn.msg 文件内容 到 git-gui.pot 文件中,生成新的 zh_cn.msg 文件。 10. 格式为:**::msgcat::mcset zh_cn "msgid" ""** 的行需要在末尾的引号中间添加相应的翻译内容;否则,Git-GUI 界面上原来显示 **msgid** 的地方将显示为空白。 11. 可以在行首添加字符 **#** 注释掉不需要翻译的行,则界面上将显示原文 **msgid**。 12. 双引号中的 `"$[]` 等符号需要在前面添加转义字符 `\` ,否则 git-gui 会报错,运行失败。 13. 将文件 zh\_cn.msg 拷贝到前述位置即可。 # 更多工作 1. git-gui 中 “图形化显示分支” 的菜单会调用 gitk 工具,gitk 是英文界面。 2. 源码中也提供了 gitk 的 zh_cn.po 文件,可参照上述过程制作 zh_cn.msg 文件。 3. 因为 gitk 不支持 msgid 为空的翻译,所以要删除该行,也就是 zh_cn.msg 文件的首行。 4. 拷贝到 $GITROOT/mingw64/share/gitk/lib/msgs/zh_cn.msg 即可。