Code Monkey home page Code Monkey logo

git-gui-zh's Introduction

前言

  1. 刚刚接触 Git 时,通篇阅读了官方的 Pro Git Book ,实际操作时命令行一个也没记住,就直接使用了Git-GUI。

  2. 官网下载的 Git 安装包,只有英文界面,没有任何其它语言。网上能找到的中文语言文件大概是10多年前的了。

  3. 语言文件本身内容是纯文本的,格式是符合某规范的,工具在源码里也有。在规范不了解,工具不会用的情况下完全纯手工打造应该更快一些。

  4. Git 官网 下载有时很慢,镜像站 下载很快,但是新版本只有安装包没有源码。

工具软件

  1. Notepad3
  2. 金山词霸
  3. Typora
  4. BC

文件说明

  • 如果 $GITROOT/mingw64/share/git-gui/lib/msgs/zh_cn.msg 文件存在,在中文系统中 Git-GUI 就会自动显示中文界面。
  • 可以从源码分支中获得需要翻译的内容。
  • $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. 合并文件中 msgidmsgstr 后面的多行字符串为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 即可。

git-gui-zh's People

Contributors

stayor avatar fxzxmic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.