1. 安装工具

1.1. iconv

iconv 用来将英文的 ISO-8859-1 编码无损转换为 UTF-8 编码。

$ cd /usr/ports/converters/libiconv
$ make install
$ iconv --version
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.

1.2. validate

推荐使用 validate 校验 HTML 文档的合法性。

$ cd /usr/ports/textproc/validate
$ make install
$ validate -v
Offline HTMLHelp.com Validator, Version 1.2.2
by Liam Quinn <liam@htmlhelp.com>

但是你也可以使用 tidy(由于换行问题,其输出文件不能满足要求):

$ cd /usr/ports/www/tidy
$ make install
$ tidy -v
HTML Tidy for OpenBSD released on 1 September 2005

由于官方不再发布打包后的代码,所以最新的 tidy 只能从 CVS 获得:

$ cvs -d :pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co tidy
$ cd tidy/build/gmake
$ sudo gmake install
$ tidy -v
HTML Tidy for OpenBSD released on 25 January 2008

tidy 的配置文件:

$ cat ~/tidy.conf
bare: yes
# break-before-br: yes
# doctype: transitional
drop-empty-paras: no
# drop-proprietary-attributes: yes
indent: auto
newline: LF
output-bom: no
output-encoding: utf8
output-html: yes
quiet: yes
tidy-mark: no
# wrap: 0
write-back: no

1.3. linkchecker

强烈建议使用 linkchecker 检查 HTML 文档是否有死链接。

$ cd /usr/ports/www/linkchecker
$ make install
$ linkchecker -V
LinkChecker 4.5              Copyright (C) 2000-2006 Bastian Kleineidam

2. 工作流程

2.1. 编码转换

禁止使用 GB18030/GBK/GB2312/Big5 等编码。在工作之前, 要将 HTML 文件的编码从 ISO-8859-1 转换为 UTF-8。例如:

$ iconv -f ISO-8859-1 -t UTF-8 example.html > zh/example.html

2.2. 翻译文档

2.3. 校验文档

校验文档的格式是否合法。例如:

# $ sed /^[[:space:]]*$/d example.html > tmp

$ validate -w --charset=utf-8 example.html

但是你也可以使用 tidy(由于换行问题,其输出文件不能满足要求):

$ tidy -config ~/tidy.conf -utf8 -o /dev/null example.html

2.4. 检查链接

使用 linkchecker 检查 HTML 文档是否有死链接。例如:

$ linkchecker -r 1 example.html

3. 版本控制

中文翻译小组使用 sharesource 作为主要版本库, 定期同步到 i18n-zhopenbsdonly

在完成翻译,通过各种检查后,由 i18n-zh 小组将文档提交到位于 steelix.bsdfrog.org 的 CVS 版本库(steelix-www),然后回写 CVS 标签到 sharesource,可能还有 i18n-zhopenbsdonly

目前官方版本库(openbsd-www)不对翻译人员开放。在 steelix.bsdfrog.org 有一个不对外提供匿名 CVS 服务的翻译版本库(steelix-www)。翻译人员与翻译协调者联系,取得账户后, 可以提交到此版本库中。然后统一由翻译协调者将所有语言的翻译同步到官方版本库中。

3.1. 从匿名 CVS 服务器更新

WC_CVS=/usr/www
WC_HG=/home/dongsheng/var/hg/g11n

# for i in . faq faq/pf openbgpd opencvs openntpd openssh papers porting spamd; do
#     /bin/rm ${WC_CVS}/${i}/*.html
# done
# cd ${WC_CVS} && cvs up

for i in . faq faq/pf openbgpd opencvs openntpd openssh papers porting spamd; do
    /bin/cp ${WC_CVS}/${i}/*.html ${WC_HG}/os/OpenBSD/www/${i}
done

cd ${WC_HG}/os/OpenBSD/www/ && hg purge -f .
# cd ${WC_HG}/os/OpenBSD/www/ && hg ci -m "Sync with AnonCVS" .

3.2. 从 steelix 检出

对于 steelix 的文档,不需要全部检出,只检出我们需要的部分即可。首先执行非递归检出,例如:

cd /home/dongsheng/var/cvs
cvs -d dongsheng@steelix.bsdfrog.org:/cvs co -l -d steelix-www www

然后就可以执行非递归更新了,例如只检出/更新当前翻译相关部分:

cd /home/dongsheng/var/cvs/steelix-www

cvs up -l images
cvs up -l zh
cvs up -l opencvs
cvs up -l opencvs/images
cvs up -l opencvs/zh
cvs up -l faq
cvs up -l faq/images
cvs up -l faq/zh
cvs up -l faq/pf
cvs up -l faq/pf/zh
cvs up -l spamd
cvs up -l spamd/zh

3.3. 提交到 steelix

从 sharesource 提交到 steelix 后,再向 sharesource 同步 CVS 标签。

WC_CVS=/home/dongsheng/var/cvs/steelix-www
WC_HG=/home/dongsheng/var/hg/g11n

for i in zh opencvs/zh faq/zh faq/pf/zh spamd/zh; do
    /bin/cp ${WC_HG}/os/OpenBSD/www/${i}/*.html ${WC_CVS}/${i}
done

cd ${WC_CVS} && cvs ci -m "Sync with http://hg.sharesource.org/g11n/"

for i in zh opencvs/zh faq/zh faq/pf/zh spamd/zh; do
    /bin/cp ${WC_CVS}/${i}/*.html  ${WC_HG}/os/OpenBSD/www/${i}
done

cd ${WC_HG} && hg ci -m "Sync CVS Tags"

4. 加入我们

如果大家发现问题,请先检查 sharesource 中的文件。如果发现 sharesource 中的文件仍旧有此问题,参看 sharesource 中的版本信息,将问题或补丁发给 i18n-zh讨论组或译者。

如果你有兴趣参加,请在 i18n-zh讨论组发言。 在提交数个网页的合格翻译后,会被授予 sharesource 的写权限。