记录一次开源经历

前段时间,我看见了有关于介绍 CSS attr() 函数新特性的文章。

简单来说,attr() 的新特性允许获取任何 HTML 元素的属性,并解析为指定的 CSS 数据类型来返回给 CSS 属性使用。

但是在按照文章介绍使用时,我却发现一些新特性使用方法并未生效。

/* 读取元素上的自定义属性 bg 解析为 color 类型给 background 样式使用 */
background: attr(bg color, red);

因为浏览器并未全面支持新特性,是实验性支持的。

因此我开启了实验性功能,但是还是没生效。

于是我就去翻阅 MDN 官方文档。文档内容基本与介绍文章中一致。

我检查了浏览器兼容性,确保了我的浏览器是支持这个新特性的。

在翻阅本地化文档时,我看见了 attr() 能够接受 type() 函数作为参数来指定类型。

通过使用 type()attr() 正常工作,样式生效了。

/* 读取元素上的自定义属性 bg 解析为 color 类型给 background 样式使用 */
background: attr(bg type(<color>), red);

于是我决定向文档贡献,改正内容。

因为是本地化语言,因此首先需要去翻阅上游的英语源文档。

我当时还在想同时为英语源文档的仓库和本地化语言的仓库贡献 PR 的。

结果在翻阅英语源文档时发现源文档内容是正确的,是本地化语言的文档并未更新。

于是目标就从纠正语法错误变成了更新本地化语言文档。

因为是第一次进行这种翻译文档工作,因此我翻阅了本地化的翻译指南。

翻译指南大致的讲解了一下翻译时需要注意的事项。

我就一边注意这些事项,一边参照着 CSS5 的草案规范添加着文档中没有的说明进行翻译着。

尽管我的英语并不好,但技术文档其实不需要翻译的多优雅,只需要确保意思这些准确就行了,难度其实并不大。

然后我就犯了错误。

给我进行审阅的老哥和我说,如果有自己的想法,请首先更新英文源文档,然后同步到本地化语言。除非特殊情况,否则不接受额外的文档内容。

这指南里没说啊。没办法,只好进行修改。

我删除了所有我添加的额外内容,参照着英文源文档进行了文案、排版的调整。

然后老哥很委婉的和我说让我尽量翻译的准确一些。然后给我修改了一些地方作为例子。

我又犯了错误,我默认了一些概念是大家都知道的,所以淡去了。

作为技术文档,严谨性是首要的,而在这次翻译中,我省略了很多的概念,例如英文原文是 “CSS attr() function ...”,我翻译为 “attr() ...” 了。

如果是作为我个人的文章,这其实没问题。但这是 MDN 的文档,在通常情况下,被视作是前端技术的权威文档(虽然有更规范的技术标准,但一般情况下,都是看下文档就没了)。

我的省略,将文档的严谨性大幅度降低了,还会给人造成错觉。相比之下还不如不更新。

就像是一个很经典的笑话,目前为止,还没有任何国家的足球队可以在世界杯的决赛上击败中国男足,从而拿下世界杯的奖杯。

说对也没问题,目前确实没有任何国家的足球队在世界杯的决赛上击败中国男足,从而拿下世界杯的奖杯。

但事实却是中国男足截止到现在都没进过世界杯决赛,其他国家的足球队自然就无法击败中国男足拿下世界杯奖杯了。

于是我就老老实实的进行了修改,补全了省略的内容。

就这样,这个简单的翻译文档的 PR 弄了一个星期多。

那段时间我很气馁,都不敢看 PR 详情了,生怕又被提出问题。

但好在不负有心人,最终 PR 还是通过了。

在通过 PR 时,老哥还在 PR 评论区里面 @ 了我,欢迎我来到 MDN 社区。

image-dzkhufxe.png


记录一次开源经历
https://www.inksha.com/archives/ji-lu-yi-ci-kai-yuan-jing-li
作者
inksha
发布于
2025年11月21日
许可协议