草蟒 12 月更新:核心功能文档和坑属性/方法完成中文化

来源: 投稿
作者: 草蟒老吴
2020-12-14 15:51:00

草蟒今日发布本年度最后一次更新。

本次更新主要内容:

  • 完成内置函数、类型和对象的文档汉化;
  • 完成主要“坑”属性和方法汉化。

文档对编程的重要性不言而喻。初次了解或使用某个模块、函数、属性等对象时,我们一般会上网搜索用法说明。以后使用时,如果想不起来细节,面对 IDE 或语言本身提供的英文提示,我们很多人会读不下去,不得不再次上网搜索。现在有了中文文档,作为中国人,相信扫一眼就能回想起应该怎么使用,大大减轻记忆和理解负担,并且节约重复搜索的时间。

所有文档都是老吴人肉翻译。翻译过程中,参考了 Python 官网,不过大家都知道,官网上的中文文档质量不佳,并不能复制粘贴就完事。当然,老吴也注意到,Python 官网文档质量在改进,似乎有人工审核。

目前草蟒已经完成核心功能和文档的中文化。接下来将汉化主要内置模块的文档。

形如 __xxx__ 的属性和方法,在 Python 中叫 magic method,一般按字面意思译为“魔术”或“魔法”方法。现在,老吴根据它的外形以及在汉化过程中的体会,将其改译为“坑”属性/方法。

从汉化角度,坑属性/方法可分为两类:一类是可以轻松汉化的,比如 __module__(__模块__)和 __missing__(__缺失__),通过取别名的办法或简单的几行代码便可实现汉化。

...
{"__module__",    T_OBJECT,     OFF(func_module), PY_WRITE_RESTRICTED},
{"__模块__",    T_OBJECT,     OFF(func_module), PY_WRITE_RESTRICTED},
...

_Py_IDENTIFIER(__missing__);
_Py_IDENTIFIER(__缺失__);
missing = _PyObject_LookupSpecial((PyObject *)mp, &PyId___missing__);
if (missing == NULL)
    missing = _PyObject_LookupSpecial((PyObject *)mp, &PyId___缺失__);
...

另一类是难以轻松汉化的,包括属于 type 结构的和牵连甚广的两种:前者是 Python 的根基之一,不可擅动;后者如果强行汉化,就会违背老吴“尽量不更改 CPython 原始实现”的初衷。为此,老吴采取了一种投机取巧的办法进行汉化,就是在词法解析阶段 (tokenizer.c) 将中文替换为相应的英文。这样,编程的时候使用中文坑属性/方法,但在执行代码时会被替换成对应的英文坑属性/方法。

具体对照表请参见草蟒官网的“草蟒语言指南”栏目。

欢迎赐教和反馈! 

展开阅读全文
精彩评论
音译词?我印象中好像没遇到啊。你举几个例子?
2020-12-15 16:23
1
举报
中国孩子们刚学编程时,无一例外会问:怎么是英文,不能用中文写程序吗?这时,老法师——曾经的孩子,曾经也那样问过——会说:英语是计算机编程的通用语言。一代一代的老法师们,为什么会忘了初心,被英语驯服得找不着北?不管什么原因,今天,让我们从“初心之问”出发,打造中文编程新生态!
2020-12-15 11:10
1
举报
坑属性😂,以后就可以说,看你写的代码,一堆坑
2020-12-15 08:09
1
举报
2 收藏
分享
23 评论
2 收藏
分享
返回顶部
顶部