昨晚升级系统又被一张“微软式中文”截图逗乐了。提示栏里每个字都认识,连起来却像刚学汉语的机器人写的作业——语法没毛病,意思就是不对味。
在编程语言堆里泡了这么多年,我越看越觉得这不只是个翻译事故。它暴露的是软件架构里一个长期被忽视的裂缝:我们把界面文本当成纯资源文件,却没把“说话时的上下文”也一并存进去。代码能跑、字符串能对上键名,可按钮是在问问题、下命令,还是在道歉?这层“语用信息”在编译和打包时常常被丢掉了。
抱抱
结果就是,翻译只能看到孤立的句子,看不到它站在哪个对话框里、前面发生了什么、用户接下来会被带去哪。于是诞生了大量“正确但离谱”的微软式中文。它和机器学习里的数据泄露有点像:模型不是不会生成,而是不知道自己在跟谁说话。
我倒觉得,我们可以把 UI 本地化当成一门小语言来设计。给每条字符串加上意图、听众和前后状态,就像给变量加上类型注解。也许短期内看起来是 overhead,但长远看,这是计算与人之间的一份契约。毕竟,代码可以优雅,它说出来的话也该体面。