这次灵界 OS 更新没有新增功能,也没有调整界面,版本号保持不变。变化集中在开发者和贡献者更容易忽略、却会持续影响维护效率的地方:中英文文档完成对齐,国际化模块的翻译匹配逻辑也进行了重构。
文档同步不只是翻译
中文 README 与英文 README 现在以内容完全一致为目标,补全了此前英文文档中遗漏的信息,并修正了可能存在的错译或表达缺失。对用户来说,这意味着无论从哪种语言开始阅读,都能获得相同的安装、使用和项目信息。
对维护者而言,文档对齐还减少了一个常见风险:功能已经更新,但另一种语言的 README 仍停留在旧状态。后续提交文档时,可以把中英文段落视为同一份变更的一部分,在评审中同时检查标题、命令、参数和限制条件。
可以在 CI 中加入一个最小化的同步检查,先确保两个 README 中的关键命令保持一致。下面的示例假设项目使用 Node.js,并检查两个文档中出现的 npm 命令:
// scripts/check-readme-commands.mjs
import { readFile } from "node:fs/promises";
const [zh, en] = await Promise.all([
readFile("README.zh-CN.md", "utf8"),
readFile("README.md", "utf8"),
]);
const npmCommand = /npm\s+(?:install|run|build|test)(?:\s+[\w:-]+)?/g;
const commands = (text) => [...new Set(text.match(npmCommand) ?? [])].sort();
const zhCommands = commands(zh);
const enCommands = commands(en);
if (JSON.stringify(zhCommands) !== JSON.stringify(enCommands)) {
console.error("README command mismatch");
console.error("Chinese:", zhCommands);
console.error("English:", enCommands);
process.exit(1);
}
console.log("README command check passed");
运行方式:
node scripts/check-readme-commands.mjs
这个检查不能替代人工校对,但能快速发现命令级别的遗漏。实际项目中还可以根据 README 结构,进一步检查章节标题、配置项名称或版本说明是否同时出现。
i18n.js 改为表驱动匹配
本次国际化模块优化重构了 i18n.js 的翻译匹配逻辑,改为表驱动方式。与把大量判断分散在条件分支中的实现相比,表驱动结构把“输入如何匹配”和“最终显示什么”集中到数据表中,新增翻译规则时通常只需要增加一条配置。
下面是一个可以直接运行和改造的简化示例。它展示了如何将不同语言环境下的文本映射到统一的翻译键:
// i18n-demo.mjs
const translations = {
zh: {
welcome: "欢迎使用灵界 OS",
docs: "查看文档",
},
en: {
welcome: "Welcome to Lingjie OS",
docs: "Read the documentation",
},
};
const matchTable = [
{ pattern: /欢迎|灵界/, key: "welcome" },
{ pattern: /文档|documentation|docs/i, key: "docs" },
];
function translate(input, locale = "zh") {
const match = matchTable.find(({ pattern }) => pattern.test(input));
return match ? translations[locale]?.[match.key] ?? input : input;
}
console.log(translate("欢迎", "zh"));
console.log(translate("documentation", "en"));
console.log(translate("未知文本", "en"));
运行:
node i18n-demo.mjs
示例中的匹配规则只是演示用途,真实项目还需要结合现有调用方式处理占位符、复数形式、默认语言和未命中回退。表驱动的价值在于降低扩展成本,同时让规则更容易被集中查看和测试;如果规则之间存在重叠,也要明确匹配优先级,避免新增条目改变旧文本的结果。
对项目维护的实际影响
这轮更新的重点不是用户界面,而是让项目在多人协作和多语言维护下保持一致。文档同步降低了信息分叉,国际化逻辑重构则为后续扩展提供了更清晰的组织方式。
采用类似改动时,可以保留一份简单检查清单:
- 中英文 README 的章节、命令和限制条件是否一致。
- 新增翻译规则是否有明确的键名和匹配优先级。
- 未匹配文本是否保留原文,避免界面出现空字符串。
- 默认语言、回退语言和占位符是否覆盖测试。
- 文档和国际化变更是否不会意外改变功能、界面或版本号。
对于已经稳定运行的项目,这类维护性更新不一定带来显眼的界面变化,却能让后续文档补全和语言扩展更可控。