@@ -12,7 +12,7 @@ Git从版本1.7.5(2011年4月)即开始国际化/本地化(i18n/l10n)的
1212
1313Git本地化(包括中文本地化)的协同方式不同于Git项目本身,不使用邮件列表进行提交评审,而是通过GitHub的协同工具来完成,这在Git邮件列表中有专门的讨论: [ Git官方邮件列表] ( http://article.gmane.org/gmane.comp.version-control.git/189584 ) 。最终确定的工作流程参见Git源码中的文件 [ po/README] ( https://github.com/git/git/blob/master/po/README ) 。
1414
15- ### 工作流程 ###
15+ ### 中文本地化工作流程 ###
1616
1717中文本地化的协同版本库为: [ https://github.com/gotgit/git-po-zh_CN/ ] [ git-po-zh_CN ] ,以下简称 [ git-po-zh_CN] 。
1818如果您对翻译有修改或补充,请参照如下工作流程。
@@ -37,7 +37,17 @@ Git本地化(包括中文本地化)的协同方式不同于Git项目本身
3737
38385 . 使用GitHub提供的 pull request 功能,创建到 [ git-po-zh_CN] 版本库的 Pull Request。
3939
40- 6 . 版本库 [ git-po-zh_CN] 的管理者审核您的 Pull Request,若审核通过则将提交合并到代码树中,若不通过则会给出原因。
40+ 6 . 版本库 [ git-po-zh_CN] 的管理者审核您的 Pull Request。
41+
42+ 7 . 若审核通过则将提交合并到代码树中,pull request 自动关闭。
43+
44+ 8 . 若提交有问题,管理者会通过评论给出原因。作为贡献者继续执行步骤3、步骤4,当修改后的提交推送(或强制推送)到GitHub后,pull request 中的提交会自动更新。管理者基于贡献者的最新提交重新审核(即步骤6)。
45+
46+ ### 工作协同 ###
47+
48+ 为了避免多人翻译过程中的工作重叠,使用 GitHub 维基帮助工作协同。即在翻译之前现在维基页面上领受工作任务,不同贡献者的工作任务不要重叠。
49+
50+ 例如中文本地化工作任务管理WIKI: https://github.com/gotgit/git-po-zh_CN/wiki/TaskList 。
4151
4252### 提交规范 ###
4353
@@ -47,33 +57,65 @@ Git本地化(包括中文本地化)的协同方式不同于Git项目本身
4757
4858* 提交说明符合 “50/72 原则”。
4959
50- - 提交说明第一行会作为补丁邮件的标题或者作为简要日志输出 ,长度以50个字符为限。
60+ - 提交说明第一行会作为补丁邮件的标题或者作为补丁文件的文件名 ,长度以50个字符为限。
5161
52- 建议这部分提交说明使用 ` l10n: ` 作为前缀,以便和Git其他代码的提交相区分。
62+ 有人喜欢第一行提交说明的末尾添加一个“点”表示句子的结束,这是不可取的。试想你在写邮件是标题要以点来结束么?一个文件名(不含扩展名)如果以点结束,加上扩展名或出现两个点!
5363
54- 还有注意这部分内容不能包含中文 。
64+ 还有要注意这部分内容不能包含中文,建议提交说明使用 ` l10n: ` 作为前缀,以便和Git其他代码的提交相区分 。
5565
56- - 一个空行
66+ - 一个空行。此空行用以分隔标题和详细描述。
5767
58- - 关于提交的大段说明, 例如原翻译存在的问题,为什么要进行修改等。
68+ - 关于提交的大段说明(可选)。 例如原翻译存在的问题,为什么要进行修改等。
5969
60- 提交说明可以折行,每行以72个字符为限。
61-
62- 这部分提交说明可以包含少量中文。
70+ 提交说明可以折行,每行以72个字符为限。这部分提交说明可以包含少量中文。
71+
72+ * 提交说明中包含签名,并且签名和提交说明间用空行分隔。
73+
74+ 可以通过命令 ` git commit -s ` 会自动在提交说明中添加签名。
75+
76+ 作为Git的 l10n 协调者(l10n coordinator),我写了一个脚本以实现对本地化文件、提交规范的自动化检查。
77+ l10n teamder 在向 l10n coordinator 创建 pull request 前,建议使用该脚本对提交进行体检。
78+
79+ * 获取 ` po-helper.sh ` 脚本到本地工作区的 ` po ` 目录下。
80+
81+ $ git fetch git://github.com/git-l10n/git-po.git po-helper
82+ 来自 git://github.com/git-l10n/git-po
83+ * branch po-helper -> FETCH_HEAD
84+ $ git checkout FETCH_HEAD -- po/
85+
86+ * 检查本地的新提交。
87+
88+ $ po/po-helper.sh check commits
89+
90+ * 检查最近的5次提交。
91+
92+ $ po/po-helper.sh check commits HEAD~5
6393
94+ * 检查本地化文件。
6495
65- * 提交说明中包含签名。可以通过命令 ` git commit -s ` 会自动在提交说明中添加签名。
96+ $ po/po-helper.sh check commits zh_CN.po
97+
98+ * l10n 协调者对本地化的全面检查。
99+
100+ $ po/po-helper.sh check
66101
67102### 翻译示例 ###
68103
69104* C语言字符串中的参数(占位符)很重要,需要维持其顺序。
70105
71- 注意字符串中出现的两个占位符 ` %s ` 和 ` %s ` 的先后顺序要严格保持。
106+ 注意字符串中出现的两个占位符 ` %d ` 和 ` %s ` 的先后顺序要严格保持,或者采用后面的解决方案 。
72107
73- #: builtin/pack-objects .c:2326
108+ #: builtin/apply .c:824
74109 #, c-format
75- msgid "unable to parse value '%s' for option %s"
76- msgstr "不能解析值 '%s' 针对于选项 %s"
110+ msgid "regexec returned %d for input: %s"
111+ msgstr "regexec 返回 %d,输入为:%s"
112+
113+ * 如果确有需要,可以使用类似 ` %<n>$s ` 的语法对C语言字符串中的参数(占位符)进行标记,以便调整语序。
114+
115+ #: builtin/apply.c:3266
116+ #, c-format
117+ msgid "new mode (%o) of %s does not match old mode (%o)%s%s"
118+ msgstr "%2$s 的新模式(%1$o)和旧模式(%3$o)%4$s%5$s 不匹配"
77119
78120* 然而,Shell语言字符串中的变量(占位符)的顺序则不重要,可以根据翻译需要调整先后次序。
79121
@@ -184,6 +226,31 @@ Git本地化(包括中文本地化)的协同方式不同于Git项目本身
184226 "将要删除的分支 '%s' 已经被合并到\n"
185227 " '%s',但未合并到 HEAD。"
186228
229+ ## 工具 ##
230+
231+ * VIM 和 po.vim
232+
233+ 安装 ` po.vim ` 插件后,使用 VIM 编辑 ` .po ` 文件,可以使用如下热键非常方便地进行本地化工作。
234+
235+ - ` \u ` - 下一条未翻译条目
236+ - ` \U ` - 上一条未翻译条目
237+ - ` \f ` - 下一条fuzzy条目
238+ - ` \F ` - 上一条fuzzy条目
239+ - ` \c ` - 将 msgid 的字符串拷贝至 msgstr
240+ - ` \d ` - 删除 msgstr 字符串
241+ - ` \z ` - 将字串标记为 fuzzy
242+ - ` \Z ` - 移除字串标的 fuzzy 标记
243+ - ` \s ` - 显示统计信息
244+ - ` \W ` - 格式化文件
245+
246+ 下载地址: http://www.vim.org/scripts/script.php?script_id=2530
247+
248+ * kbabel, loaklize
249+
250+ Linux 平台有非常好用的图形界面工具辅助本地化,如 kbabel, lokalize 等工具可以方便地对 ` .po ` 文件进行编辑。
251+
252+ 不过我还是喜欢在文本工作模式(VIM + po.vim),尤其是切换到 Mac OS X 平台后无法用到 kbabel 和 lokalize。
253+
187254## 术语表 ##
188255
189256已翻译内容中涉及到的术语的翻译做到了基本一致,若遇到不确认的术语请先在已翻译内容中查找,恕不一一列举。
0 commit comments