王莉:将开发文档英文化和本地化,我们努力让OpenHarmony走向全球
编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。
对于开源项目及其开发者而言,一份书写规范、质量上乘、及时更新的开发者文档是至关重要的——它能帮助开发者快速入门,检视代码逻辑,提升开发效率,从而吸引更多开发者加入,繁荣开源生态。
作为由开放原子开源基金会孵化及运营的开源项目,OpenAtom OpenHarmony(以下简称“OpenHarmony”)在诞生初期也曾面临开发者文档太少、质量不够高等窘境。经过 OpenHarmony 工作委员会、各家共建单位的开发者们一年多的努力,我们很欣喜地看到开发者文档一点点变得丰富,系统能力不断构建,代码也在不断完善。
华为翻译及本地化工程师王莉,正是这些参与文档共建的开发者中的一员。
在近期 OpenHarmony PMC(Project Management Committee 项目管理委员会)举行的 2022 年 2 月份代码贡献者评选中,王莉因为在开发者文档领域的突出贡献,成功被评为“代码贡献月度之星”,成为代码贡献 Top10 的两位女性开发者之一。
王莉和她所在的团队,主要贡献点在于社区的英文化和本地化。加入 OpenHarmony 项目后,他们和资料团队一起学习和研究了业界主流的 SIG,组建了自己的 SIG docs;制定了社区行为准则、贡献流程、优化问题反馈和处理机制;制定了代码规范和写作模板,植入了 CI 门禁工具、自动提交翻译 Issue 的 bot,并输出了 OpenHarmony 各个子系统的相关指导文档,帮助开发者们更加轻松、愉快地使用 OpenHarmony。
本期 OpenHarmony 开发者故事,我们与王莉一起聊了她和她所在的团队、参与 OpenHarmony 项目的初心、代码贡献如此突出的心得、SIG docs 运营过程中的趣事,以及开源过程中遇到的技术难题、对 OpenHarmony 未来的期待等话题。现将专访内容整理如下,希望对你有所启发。
Q=OpenHarmony A=王莉
Q1:请简要介绍下自己,以及所在开发团队
大家好,我是来自华为的王莉,是一名翻译及本地化工程师,目前主要从事 OpenHarmony 相关文档的翻译及本地化工作。目前我们团队主要活跃在 SIG docs,负责 OpenHarmony 项目所有文档的中到英翻译工作,常见的比如 API 参考、readme、操作指导等翻译,外籍输出件的 PR,以及输出相关的本地化贡献指导、规范和 FAQ。
此外,我们还携手近 10 名资料工程师以及数百位开发工程师,结对优化中文资料。希望能够通过我们的工作,让更多的开发者高效地了解和使用 OpenHarmony。
Q2:作为一名翻译及本地化工程师,您最初为什么会选择加入OpenHarmony生态、参与开源共建呢?您认为,OpenHarmony项目最吸引人的点在哪里?
我在加入 OpenHarmony 项目之前,曾经做过计算的产品,从我对口的产品一开始清一色的 Intel 处理器,到我们自己的鲲鹏和昇腾处理器,再到生机勃勃的鲲鹏生态、方兴未艾的 OpenHarmony 生态……一路走来,我们清楚地知道 OpenHarmony 项目的重要性,更明白开源的重大意义。
OpenHarmony 是一项伟大的事业,我能通过自己的专业能力为社区贡献一份力,这让我觉得这个工作是非常有价值的。
Q3:这次您被OpenHarmony PMC委员会推举为“代码贡献月度之星”,意味着您对OpenHarmony项目的贡献已经属于业界顶尖水平,十分了不起!加入OpenHarmony这么短的时间却达成了这样好的效果,请问您的“秘诀”是什么?您是否方便从业务角度具体介绍一下,怎么才能让开发者更加满意,把开源共建做得更好呢?
我和我所在的团队,对社区的主要贡献点在于社区的英文化和本地化,与代码贡献者还是有所区别的。所以能在 OpenHarmony 这次评选中获得“代码贡献月度之星”,我其实觉得十分意外,同时又倍受鼓舞。
一开始加入项目组,我感觉挑战还是挺大的。虽然我是一名语言工作者,但并不熟悉开发语言;对于 OpenHarmony 所涉及的众多子系统和技术,也觉得 gap 很大;对于 SIG docs 的运作也一无所知……
好在兴趣是最好的老师,缺什么就补什么,这个过程必定是先苦然后慢慢一点一点地甜。作为开发者文档最认真的读者,我们必须要理解文档的每一话。同时,作为最初的体验者,我们也能站在读者的角度上,发现一些问题,对文档提出一些优化建议。对于 SIG 的运作,我们的小团队也和资料团队一起,在不断地探索和改进……
我们的目标,从小了说是让资料好用、易用、开发者喜欢用,从大了说是提供一个知识、能力分享的平台,点亮更多开发者。这一目标的达成,也和开源生态的建设一样,需要大家一起贡献自己的智慧和力量。
Q4:您和您的团队小伙伴,在参与OpenHarmony项目贡献的过程中,一定有一些刻骨铭心/印象深刻的经历,比如组建和参与SIG docs运营之类。可以给我们分享一下吗?
我之前完全没有接触过开源项目,对于开源的理解也仅限于字面意思。
在加入到 OpenHarmony 这个项目以后,我们团队和资料团队都在这方面下了很多工夫。我们学习和研究了业界主流的 SIG,组建了自己的 SIG docs;制定了社区行为准则、贡献流程、优化问题反馈和处理机制;制定了代码规范和写作模板,植入了 CI 门禁工具、自动提交翻译 Issue 的 bot,并输出了 OpenHarmony 各个子系统的相关指导文档。目前,SIG docs 已成为 OpenHarmony 社区最活跃的 SIG 之一,关注量和 Fork 数量都遥遥领先。
与以前翻译工作不同的是,我们需要在 Gitee 上处理文档,为此我们专门学习了 markdown 语法、Gitee 的常见操作命令等。
一开始由于不了解 Gitee 文档的运作机制,感觉整个操作流程很是复杂;在提交 PR 的时候,也遇到过各种问题,最初的时候,经常有挫败感。
在不断的试错过程中,我们把工作中的经验和教训都记录下来,形成了我们的《开源项目翻译操作指导书》,这样可以固化下来的东西就成了我们的操作规范,也方便更多的爱好者可以很快地上手为社区做贡献。
Q5:在整个开发进程中,您和您的团队遇到过哪些技术上或其他方面的难题?这些难题又是如何被逐一解决的?在这些难题被解决的过程中,您总结了哪些宝贵的经验or教训?
我们的合作伙伴,是十多位资料同事和上百位来自不同团队甚至是不同公司的开发同事,如何在社区提供高质量的文档真的不是一件容易的事。
举一个很小的例子来说,仅是文档中的图形就可能有各种颜色和风格。为了帮助众多的开发者撰写合格的文档,我们的资料团队组织了社区写作赋能线上课程、推广社区写作模板和规范;我们也和资料团队一起,参与原稿案例推广和宣传。
针对社区文档类型多,格式比较乱的问题,资料团队有计划地对文档进行纯净 markdown 格式转换。一开始在 Gitee 提交文档和翻译的时间比较长,闭环率较低。通过各种数据辅助分析,我们也想了很多办法,比如有效地识别同一文档的 Issue 合并处理,提升处理效率和闭环率。
生态的繁荣离不开广大生态伙伴、每一位开发者的共同努力,每一个 Issue、PR 都是构建生态繁荣的养分。所以我们的小目标,就是要把这一砖一瓦搭建好。
Q6:加入OpenHarmony生态以来,您最大的惊喜是什么?或者有哪些具体的收获?
加入 OpenHarmony 生态以后,最大的惊喜是开阔了眼界,学习到了更多的知识。
传统的文档反馈机制,是通过官网在线反馈文档问题、等待文档工程师确认,再周期性更新发布。基于 Gitee 的开放式讨论和 Issue 反馈机制,使文档更新更及时。
我们最大的收获就是,依托 SIG docs 为 OpenHarmony 提供翻译和本地化服务,提供了更为丰富的文档和更为有效的反馈和处理机制,帮助全球开发者更加轻松、愉快地使用 OpenHarmony。我相信后续我们还可以更多地利用工具来提升一些效率,SIG docs 会越来越好。
Q7:您期待未来OpenHarmony哪些方面能够得到改善、提供更多支持?
作为一名文档工作者 & 技术小白,我的关注点可能更多还是在资料方面。
我希望我们的资料可以根据不同的读者进行分层,比如小白级(可以提供一些科普文档,类似深圳卫健委公众号那样的)、初级开发者、高级开发者;入口清晰,更为体系化。
我们整个体系的术语,感觉还可以再完善再清晰一些。很多时候,术语就像一条链接各个子系统的脉络;如果术语这个脉络做得好,会非常方便初学者上手。同时,如果能有更多动手体验方面的尝试,就再好不过了。
我们衷心希望 OpenHarmony 能吸引到更多的开发者,后续我们能有机会提供更多语种的服务。
Q8:OpenHarmony目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法,或不知该如何着手进行开发。可以请您给大家分享一条,您认为最值得分享的心得,或最想说的一句话吗?
我最想说的是,Do it 永远比 Say it 更重要。欢迎大家一起来开源共建,OpenHarmony 是一个开放、共享的大舞台,加入我们,你也有机会成为闪耀的代码贡献之星!
Q9:请问您还有什么话想告诉大家?
我非常幸运能从事我喜欢的工作,更是非常非常地幸运能够加入 OpenHarmony 项目,能在这种大环境背景下,贡献自己的微薄之力,我觉得是我平凡的职业生涯中很幸福的一件事。
从 2020 年到 2021 年,我见证并参与了 OpenHarmony 的成长,也对未来充满希望。我希望能有更多的开发者加入我们,一起为 OpenHarmony 做出自己的贡献。
搜索
复制
王莉:将开发文档英文化和本地化,我们努力让OpenHarmony走向全球的更多相关文章
- TopTicTacToe 开发文档
团队成员: 1.张旭 2.余浩 3.孙闯 4.吴阳 5.王晓华 6.张国庆 开发文档地址:http://www.kancloud.cn/netcon/t4 代码项目地址:https://coding. ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- Net通用进销存管理系统 + 开发文档+ 使用说明
通用进销存管理系统 + 开发文档+ 使用说明Net源码下载 包括下面的模块基础资料模块采购管理模块库存管理模块商务管理模块营业管理模块维修管理模块会员管理模块财务管理模块 Net通用进销存管理系统 + ...
- C#微信开发文档
C#微信开发文档 开发前准备 微信公众平台链接: https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN 开发初期我们使用测 ...
- 在线API,桌面版,jquery,css,Android中文开发文档,JScript,SQL掌用实例
学习帮助文档大全 jquery,css,Android中文开发文档,JScript,SQL掌用实例 http://api.jq-school.com/
- 基于x86架构的内核Demo的详细开发文档
http://hurlex.0xffffff.org/ 这里是hurlex这个基于x86架构的内核Demo的详细开发文档, 包含PDF文档和生成PDF的XeLaTex源码和文档每章节的阶段代码. 你可 ...
- ECMall模板开发文档
ECMall 模板开发文档 前 言 欢迎阅读 ECMall 模板制作教程,通过阅读本教程可快速上手 ECMall 模板的使用和制作. ECMall 模板制 作要求用户具备 XML . XHTML 和 ...
- AFC项目开发文档整理
AFC项目开发文档整理 PHPCMS 的确是一个伟大的CMS,我对它爱不释手. 标签嵌套无法loop获取的解决办法.关键代码如下: /\*后台添加\*/ $str = preg_replace ( & ...
- QM项目开发文档整理
QM项目开发文档整理 前言 在W公司工作4个多月,庆幸接触到的全是"硬"项目,真枪实干,技术.经验.能力都得到了很大提升. QM项目 此项目WEB前端学到的东西很多,对PHP项目的 ...
- [技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档
[技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档 Doxygen本来是一个很好的工具,可是我感觉在mac系统下,如果用doxygen最后生成的CHM文件感觉就不是那么恰当, ...
随机推荐
- 【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
问题描述 原来部署在VM 里的 Redis 能直接迁移到 Azure Cache for Redis? 需要改动代码吗? 问题解答 以上问题需要从两个方面来解答. 第一:VM中Redis的数据转移到 ...
- [Python] 子线程退出孙线程不退出
遇到了一个大坑! 如图,在子线程ThreadFunc退出之后,ThreadFunc2依旧在运行... 根本不会结束 但是官方文档中说明了,只要设置了daemon不为None 就能设置子线程是守护线程, ...
- BeanShell Sampler 前置处理器
一概念: 前置处理器主要作用: 用于修改即将发送的http的请求数据 BeanShell预处理器可以在取样器发送请求之前被执行,可以通过它完成发送请求所需的数据 其中的ctx.vars.props.p ...
- Java 常用类 String类与其他结构之间的转换-----String 与 基本数据类型,包装类之间的转换
1 /* 2 涉及到String类与其他结构之间的转换 3 4 */ 5 6 //String 与 基本数据类型,包装类之间的转换 7 //String --->基本数据类型,包装类:调用包装类 ...
- Dungeon Master 题解
这道题的题意简单来说:就是在3D迷宫里找出口,也就是三维地图,需要用到三维数组 由于本人写代码极易出错,所以在输入三维数组的时候修改了c(column,即列)的值,重复定义了没看到==,后面改成定义成 ...
- $event - vue中默认参数的显示 - @on-change="func($event, code)" - 基础知识
@on-change="checkAllOnChangeHandle($event,scItem.code)"
- pollute 污染 pol=por=pro 向前 lut=释放 结合ps软件里面lut概念记忆
pollute 污染 pol = por = pro = 向前 lut = 释放 (ps里面有lut的概念) e 动词 向前释放 -> 污染 弄脏 简单记忆 poll / ute poll - ...
- Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南
Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南 0.前言 左图右图 prompt 基本是一样的,差别只在提示工程这个词是否用中英文表达.我们看到,一词之差,回答 ...
- gdb调试入门指北
GDB安装及其插件控制 下载 GDB ,这个项目将 GDB 的插件放到了一个文件夹下,方便读取文件路径 $ git clone https://gitee.com/hongsofwing/GDB-Pl ...
- Python使用os模块创建带时间戳的文件夹
直接上源码: # 导入os模块 import os import time # 创建文件夹函数 def mkdir(path): # os.path.exists 函数判断文件夹是否存在 folder ...