内容提要
PostgreSQL官方中文消息目录自2019年起无人维护,服务端等关键目录翻译率仅12%–61%,大量新消息未译,并存在“内存溢出”等错译和参数错误。作者因此发起PG 19中文目录修订,以机器翻译为底稿,人工校对,统一术语并保证跨版本一致,成果将提交上游。
延伸解读
翻译覆盖率背后的优先级问题
文章指出,简体中文消息目录整体翻译率为66%,但关键目录如服务端postgres仅61%,libpq仅12%,pg_upgrade仅23%。这些目录恰恰是用户最常接触、最需要理解报错的部分。相比之下,一些使用人数较少的语言却达到了99%的覆盖率。这反映出中文翻译的维护不仅滞后,而且资源分配严重偏离了实际使用需求,导致核心功能的中文支持反而最薄弱。
错译与参数错误带来的实际风险
文章列举了多个翻译错误,例如将“out of memory”误译为“内存溢出”,这与原意“内存耗尽”在排障时指向完全相反;还有“Report bugs to”被译成“臭虫报告至”等历史遗留问题。更严重的是参数错误,如pg_ctl中丢失%m导致无法获取errno,ecpg中误用%1$s和%2$s导致读取不存在的参数。这些错误会直接误导用户,增加故障排查难度,甚至引发误判。
修订项目的务实做法与长期价值
作者发起的PG 19中文目录修订项目,以机器翻译为底稿,但强调每一条都需人工校对,并配以统一术语表和例外规则,确保跨版本一致性。项目成果将按正常流程提交上游,不另立山头。文章最后提醒,这些消息已成为中文技术圈和AI模型的语料来源,错误翻译会以难以追踪的方式扩散,因此修订不仅关乎当下体验,更影响未来知识传播的准确性。
Q&A
PostgreSQL 官方中文消息目录为什么七年没人维护?
文章指出,PostgreSQL 官方中文消息目录自 2019 年 6 月 5 日后就再未更新,文件头显示 PO-Revision-Date 为 2019-06-05,生成工具是 2013 年的 Poedit 1.5.7。从 PG 12 到 PG 19,八个大版本,该文件头一个字节都没变过,导致大量新消息未翻译。
PostgreSQL 中文消息目录的翻译现状如何?
简体中文整体翻译率为 66%,在 28 本消息目录中仅 9 本达到 80% 的发行门槛。关键目录翻译率低:服务端 postgres 为 61%,libpq 为 12%,pg_upgrade 为 23%。服务端约 2660 条消息从未翻译,另有约 1000 条旧译文因源码变更成为死条目。
PostgreSQL 中文消息目录中存在哪些典型错译?
典型错译包括:将 out of memory 误译为“内存溢出”(正确应为内存用尽/不足/耗尽),混淆了 OOM 与 overflow;将 Report bugs to 译为“臭虫报告至”;pg_ctl 中 invalid binary "%s": %m 丢失了 %m 参数;ecpg 中原文只有一个 %s,译文却写成 %1$s 和 %2$s,导致读取不存在的参数。
作者发起的 PG 19 中文目录修订项目是如何工作的?
作者将 PG 19 的 zh_CN 消息目录整体过了一遍,底稿采用机器翻译,但每一条都需人工校对。项目制定了完整的 PostgreSQL 术语表和例外规则,确保同一 msgid 在 PG 10 到 PG 20 中译法一致。成果会通过 pgsql-translators 邮件列表提交上游,不另立山头。
为什么 PostgreSQL 中文消息翻译错误的影响现在更严重?
以前用中文 locale 跑数据库的人少,影响面小。现在这些消息成为语料,中文技术圈的排障文章和大模型知识都源于这些字符串。一句错译如“内存溢出”会在数百万次对话中被复述,翻译债利滚利,影响难以追查。
PostgreSQL 消息目录的发行门槛是什么?
PostgreSQL 规定一本消息目录必须翻译到 80% 才有资格进入发行版,低于这条线的直接不打包。简体中文 28 本目录中只有 9 本过线,且越重要的目录翻译率越低。