国际语言

本章节面向的读者: 任何想给非英语的Fabric文档做出贡献的人。

这篇简短的指引将叙述如何为Fabric支持的众多语言做出修改。如果你刚刚开始,本文档将告诉您如何加入一个已存在的翻译小组,或新建一个尚未支持语言的翻译小组。

在这个章节中,我们将介绍: * Fabric语言支持简介 * 如何加入一个已存在的翻译组 * 如何建立一个新语言的翻译组 * 与其它翻译贡献者交流

简介

Fabric主仓库存放在GitHub的Hyperledger组织下。在它的/docs/source文件夹下包含英语版本的文档。当编译时,这个文件夹下的文件将在文档网站显示出来。 (译者注:本段疑为原文错误,上段为暂译,下方贴出原文: in GitHub under the Hyperledger organization. It contains an English translation of the documentation in the /docs/source folder. When built, the files in this folder result contribute to the in the documentation website.)

这个网站也有其它语言的翻译,如中文。然而,这些语言存储在HL Labs organization的其它特定语言仓库中。例如,中文文档存储在这个仓库下。

语言仓库有一个精简过的文件结构;它只包含文档相关的文件夹和文件:

(base) user/git/fabric-docs-ml ls -l
total 48
-rw-r--r--   1 user  staff  11357 14 May 10:47 LICENSE
-rw-r--r--   1 user  staff   3228 14 May 17:01 README.md
drwxr-xr-x  12 user  staff    384 15 May 07:40 docs

因为此结构是主Fabric repo的子集,所以您可以使用相同的工具和流程来帮助进行任何语言翻译;您只需使用适当的存储库即可。

加入小组

虽然Hyperledger Fabric的默认语言是英语,就我们所知,它也支持其它翻译。中文文档的翻译就很好,其它语言诸如巴西葡萄牙语和马拉雅姆语翻译也在进行中。

你可以在Hyperledger wiki找到所有的当前国际化小组。你可以联系这些小组列出中的活跃翻译者。他们会欢迎你加入它们举行的定期会议。

请遵循这份介绍来向任何语言仓库贡献文档。这里有一份当前语言仓库的列表:

创建小组

如果您选择了一个还不支持的语言,那为什么不创立一个新的语言翻译?它相对容易开始。工作组能帮助你组织和分享工作来帮助翻译,维护和管理翻译仓库。对于您和其他Fabric用户来说,和其他翻译贡献者和维护者共事都是一个愉快的活动。

按照以下说明创建您自己的语言库。我们的说明将以梵文为例:

  1. 找出ISO 639-1中代表您选择语言的两个字母。代表梵文的是sa

  2. 克隆Fabric主仓库到您本地机器,在克隆时重命名仓库: bash git clone git@github.com:hyperledger/fabric.git fabric-docs-sa

  3. 选择一个Fabric版本作为您开始翻译的基线。我们建议您从至少Fabric 2.1开始,最好是长支持版本例如 2.2。您可以之后添加其他版本。

bash cd fabric-docs-sa git fetch origin git checkout release-2.1

  1. 从根目录删除除/doc以外的其他文件夹。同样的,移除除了LICENCEREADME.md以外的其它文件,您剩下的文件应该如下所示:

bash ls -l total 40 -rw-r--r-- 1 user staff 11358 5 Jun 14:38 LICENSE -rw-r--r-- 1 user staff 4822 5 Jun 15:09 README.md drwxr-xr-x 11 user staff 352 5 Jun 14:38 docs

  1. 这个作为例子更新README.md 文件。

用您的新语言定制README.md文件。

  1. 像这样在您的顶级文件夹下添加一个.readthedocs.yml文件。这个文件会配置关闭ReadTheDocs PDF编译,因为如果您使用非拉丁字符集可能会编译失败。您的顶级仓库文件夹现在看起来像:

bash (base) anthonyodowd/git/fabric-docs-sa ls -al total 96 ... -rw-r--r-- 1 anthonyodowd staff 574 5 Jun 15:49 .readthedocs.yml -rw-r--r-- 1 anthonyodowd staff 11358 5 Jun 14:38 LICENSE -rw-r--r-- 1 anthonyodowd staff 4822 5 Jun 15:09 README.md drwxr-xr-x 11 anthonyodowd staff 352 5 Jun 14:38 docs

  1. 在您本地仓库提交更改:

bash git add . git commit -s -m "Initial commit"

  1. 在您的GitHub账户下创建一个 fabric-docs-sa仓库。在描述中写入Hyperledger Fabric documentation in Sanskrit language

  2. 更新您本地git origin指向这个仓库,把YOURGITHUBID 改为你的GitHub ID:

bash git remote set-url origin git@github.com:YOURGITHUBID/fabric-docs-sa.git

在当前步骤,还不能设置upstream因为fabric-docs-sa仓库还没有被HL Labs organization创建;我们晚点再来做。

现在,确认origin已经配置了:

bash git remote -v origin git@github.com:ODOWDAIBM/fabric-docs-sa.git (fetch) origin git@github.com:ODOWDAIBM/fabric-docs-sa.git (push)

  1. 向这个仓库中推送您的 release-2.1分支作为master 分支:

```bash git push origin release-2.1:master

Enumerating objects: 6, done. Counting objects: 100% (6/6), done. Delta compression using up to 8 threads Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 1.72 KiB | 1.72 MiB/s, done. Total 4 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), completed with 1 local object. To github.com:ODOWDAIBM/fabric-docs-sa.git b3b9389be..7d627aeb0 release-2.1 -> master ```

  1. 确认您的新仓库fabric-docs-sa推送到了GitHub的master分支下。

  2. 用这篇简介将您的仓库连接到ReadTheDocs。确认您的文档已经正确编译。

  3. 您可以开始在fabric-docs-sa提交翻译更新了。

我们建议您在开始之前至少翻译Fabric前端页面简介。这样,用户就能知道您想翻译Fabric文档,这能帮助您获取贡献者。 更多可以参考later

  1. 当您对您的仓库满意时,您可以在Hyperledger Labs organization创建一个请求建立相同的仓库,步骤 参考这个简介

这里是一个 PR 示例来展示工作的过程。

  1. 一旦您的仓库被同意创建,您可以添加 upstream(上游):

bash git remote add upstream git@github.com:hyperledger-labs/fabric-docs-sa.git

确认您的originupstream远程现在设置成:

bash git remote -v origin git@github.com:ODOWDAIBM/fabric-docs-sa.git (fetch) origin git@github.com:ODOWDAIBM/fabric-docs-sa.git (push) upstream git@github.com:hyperledger-labs/fabric-docs-sa.git (fetch) upstream git@github.com:hyperledger-labs/fabric-docs-sa.git (push)

恭喜!您已经可以为您新创立的国际化语言仓库创建一个贡献者社区了。

联系交流

这里有些方法能让您联系其他有意向翻译国际语言的人:

祝您好运,感谢您对Hyperledger Fabric做出的贡献。