该翻译计划由 @泰晓科技 于 2015年7月3日 发起:
#泰晓原译# #eLinux翻译计划# 现筹备10人小组,进行 eLinux.org 的翻译工作,持续发布为 gitbook 电子书,并在获得 Linux 基金会许可后出版为纸质书。参与翻译,您将:1,系统学习嵌入式 Linux,2,结识业界一线工程师,3,获得更多发展机会。关注@泰晓科技 微博私信报名,择优录取。
随后做了大量准备工作:
tools/mediaiwiki-2-markdown.sh
自动转 elinux.org wiki page 为 markdowntools/m2m-subpage.sh
并导入 Develop Portal 的二级页面接下来就是这里的用户手册编写,到这里要做的工作是:
更详细地描述翻译和提交过程,简化大家的参与过程
制定文档格式规范
理清一些基本的翻译约定
注册并登录 github fork 代码仓库
可选:注册 gitbook.com,在 gitbook.com 建立书籍并绑定到 github.com 刚 fork 的仓库。
Clone 代码仓库
git clone https://github.com/tinyclub/elinux.git
cd elinux
找到自己认领的模块,先翻译一级链接,再翻译二级链接
指定自己 fork 的远程代码仓库(用于后面发 Pull Request),以 Github 帐号:lzufalcon
为例(请替换为自己的帐号,下同;之后 myelinux
就指向自己的 elinux 仓库):
git remote add myelinux git@github.com:lzufalcon/elinux.git
基于自己计划翻译的内容创建分支, 以 zh/dev_portals/Boot_Time/Boot_Time.md
为例,可以创建 boot_time
分支:
git fetch --all
git checkout -b boot_time tinyclub/master
先检测英文原文是否和“From”(即 eLinux.org)原稿一致,不一致就修复并提交。
pandoc
未能准确转换,可根据人工分析转为更精简的 markdown
语法
把 en/
下的英文原稿同步到 zh/
下,原文提交为一笔 Git 修改记录。
en/
下的内容,只翻译 zh/
下的即可。可选:翻译前请参照如下安装 gitbook
环境,以 Ubuntu 为例
$ sudo aptitude install -y retext git nodejs npm
$ sudo ln -fs /usr/bin/nodejs /usr/bin/node
$ sudo aptitude install -y calibre fonts-arphic-gbsn00lp
$ npm config set registry https://registry.npm.taobao.org
$ sudo npm install gitbook-cli -g
注:calibre
提供 ebook-converter
,用于生成 pdf 等格式。
开始翻译
翻译时
(#xxxx)
,tools/build-toc.sh
用它自动重构中文链接Code and Syntax Highlighting
一节。--target
和 --host
This page
统一翻译为本文
。Contents
翻译为 目录
。@lzufalcon
为例),可以在 zh/doc/PLAN.md
的最后找到大家的 github 地址:原文:eLinux.org
翻译:@lzufalcon
校订:@lzufalcon
新同学参与 Review 而且其 Feedbacks 被采纳后请把其 Github ID 以及链接追加到校订者名单,多人请用逗号分开。
重构文章内目录(注:对管理员有效,各位译者请忽略)
export PATH=$PATH:/path/to/elinux/tools
build-toc.sh xxx.md
提交到 Git 仓库
请统一使用如下 Subject 和 Message,全部使用英文,其中 n = 1,2,3,4...,根据 Review 次数追加
zh: Translate xxx.md (Vn)
V1: Fix up ...
V2: ...
V3: ...
可选:翻译后预览和编译
在本地编写可用 Retext
工具 预览,也可用 pandoc
转为 html(注:pandoc
转换结果跟 gitbook
略有差异)
pandoc -f markdown -t html xxx.markdown > xxx.html
编译可选方案
本地编译
make && make pdf 或者 gitbook build && gitbook pdf
直接提交到 github,会自动触发 gitbook.com 构建,以 boot_time
分支为例(myelinux
指向自己的 elinux
仓库):
git push myelinux boot_time
添加 Travis-CI 自动构建支持
编译通过后可重新整理代码仓库
git rebase -i commit_id^
来合并翻译过程中针对某个文件所有未提交变更。rebase
到最新仓库,并修复所有冲突 git checkout -b boot_time_upstream boot_time
git fetch --all
git rebase --onto tinyclub/master --root
git push myelinux boot_time_upstream
之后,通过 Github 发送 Pull Request:本地选 boot_time_upstream
,远程选 master
,也即是说要把自己仓库中的 boot_time_upstream
合并到远程的 master
评审人员收到后会分配人员评审
根据评审人员反馈重新修改,并创建新分支用于进一步的评审,例如(记得追加 Vn
后缀,例如 V1,V2,而不是直接覆盖原来的分支,方便备份):
git checkout -b boot_time_upstream_v1 boot_time_upstream
// 处理来自校订人员的各种反馈
git fetch --all
git rebase --onto tinyclub/master --root
git push myelinux boot_time_upstream_v1
重复上述 Pull Request 步骤,直到被 Merge 到主线