Releases: Kino2315/optiland-zh
Release list
v0.2.8
这一版主要是文档:README 整篇重写,并让 PyPI 项目页和仓库一致。
(PyPI 的项目描述是发版时烤进元数据的,改仓库的 README 不会动它 —— 所以必须发一版才能更新。)
文档
- README 整篇重写:开篇讲清「它不改 Optiland 的代码、只在程序启动时换文字,所以 Optiland 本体要另外装」,补上三类安装方式、桌面快捷方式、词库贡献流程
- 中英两份 README 按同一结构对齐(9 个二级标题一一对应)
- 新增术语中英对照表;它和
CONTRIBUTING.md里那份由测试盯着,不许各改各的 - 「动态规则」补上定义 —— 它此前在 README 里以三个叫法出现(动态规则 / 动态模式 / 动态消息模板)却从没解释过。它就是词库文件里的
patterns字段,现在是 72 条,用{0}{1}这样的空位匹配界面上运行时拼出来的文字 - 「检查汉化有没有出问题」给出排查顺序:先用
optiland-zh --lookup "那句英文"查那一句在不在词库里,再用--audit看全貌。原先两条入口并列,读者不知道先做哪个 - 「词库」一节说明每个字段是给谁用的:
display_name缺了显示名会退化成语言代码;version缺了会让pytest变红(但没有任何代码读它);translators/notes只给人看 README.en.md全量同步
修复
- 缺上游时的报错提示不再带 Markdown 的
**(终端不渲染,用户会看到光秃秃的星号) - 报错文案统一为「请先装它:」—— README 里的示例和程序实际打印的现在一致
说明
v0.2.7 之后共 3 个提交,只有 launcher.py 一处代码改动,其余都是文档。功能上 0.2.7 已经包含本版的全部能力。
v0.2.7
新命令:optiland-zh --lookup "那句英文"
界面上有一处是英文,以前要打开词库 JSON 搜、还得自己判断"搜到/搜不到"分别意味着什么。
现在一条命令给出答案和一个明确结论:
optiland-zh --lookup "Save System"词库里查到:
英文 &Save System
译文 保存系统(&S)
词库里有这条,界面上却还是英文的话,那是补丁没拦住那个控件 ——
加词条没用,要改引擎。
你不需要知道有 & 这回事。 Qt 在不同控件上会把快捷键标记 & 和结尾的省略号
去掉,所以屏幕上看到的和词库里的键经常差一两个字符;--lookup 会自动忽略,
照着屏幕原样打就行。
查不到时它也会说清楚那意味着什么:
词库里没有「Cascadia Code」。
两种可能,看一眼界面上那句话是什么就分得出:
· 该翻而还没人翻 -> 加一条到 entries(见 CONTRIBUTING.md)
· 本来就不该翻 -> 字体名 / 品牌名 / 算法名 / 控件内部名字,不用管
动态规则的两个方向都认:Toggle Analysis(英文侧)和
显示/隐藏 分析(中文侧,由模板 显示/隐藏 {0} 拼出来)。
退出码:找到是 0,没找到是 1,方便脚本用。
汉化行为无改动,词库无改动。
v0.2.6
README 里把三个检查工具讲清楚了
原来只有两行干巴巴的注释,既没说检查什么,也没说什么时候用,--audit 连提都没提。
现在按「什么时候用」来写 —— 三条平时都用不上,界面上出现英文、或者 Optiland 升级
之后才需要:
--self-test:我翻过的地方有没有失效。重点讲了这一步 —— Optiland 升级后如果
改了某个控件的名字,替换会失效而且不会报错,界面悄悄变回英文。--coverage:词库里有没有漏翻的。Optiland 升级后拿它看新增了哪些文字。--audit:界面上到底还有没有英文。它会把真实主窗口整个构造出来,走遍控件树,
包括没有展开的菜单和没有点开的标签页 —— 比人眼看截图可靠。
顺带解释了「离屏」是什么意思(Qt 的运行方式:界面照常构造,但不显示到屏幕上,
所以终端里、没有显示器的服务器上都能跑)。
汉化行为无改动,词库无改动。
v0.2.5
两处
optiland-zh --audit --help 之前看不到 audit 自己的选项。 argparse 认领
--help 后会当场打印 launcher 的帮助并退出,轮不到转发给 audit。现在会显示:
usage: optiland-zh --audit [-h] [--all] [--language LANGUAGE] [--rule {...}]
「离屏建真实主窗口」这句改清楚了。 原来把三个概念硬挤在一起,没有虚词,
读起来像缺字。改成「构造真实主窗口(离屏跑、不弹窗)」,并在 docstring 里
点明「真实」和「离屏」是两件事 —— 前者指实例化 Optiland 真正的 MainWindow
(不是假数据),后者指用 Qt 的 offscreen 平台(终端里也能跑)。
v0.2.4
只有一种调用方式了
原来混着两种:optiland-zh --self-test 是参数,python -m optiland_zh.audit 是模块。
同一个程序、同一类"跑一下看数字"的工具,却要记住哪个是哪个。
现在四条统一:
optiland-zh --self-test # 7 项断言:补丁生效没
optiland-zh --coverage # 对源码的静态覆盖率
optiland-zh --audit # 离屏建真实主窗口,逐条核对
optiland-zh --extract --diff <词库> # 扫描源码,列出还缺什么--audit 和 --extract 自己的选项跟在后面就行,原样转发:
optiland-zh --audit --rule cjk-mixed
optiland-zh --extract --diff src/optiland_zh/catalogs/zh_CN.jsonpython -m optiland_zh.audit 这种写法仍然可用,只是文档不再教它。
汉化行为无改动,词库无改动。
v0.2.3
用户会看到的改动
README 常见问题里那条命令写全了。
- 不想要了用 `--uninstall-shortcut`。 ← 只给参数,不知道属于谁
+ `optiland-zh --install-shortcut` 创建;不想要了用 `optiland-zh --uninstall-shortcut` 删除。
中英文 README 同步。
内部修正(不影响汉化行为)
audit的分档判据改了。 原来的cjk-heuristic(「含中文即算已汉化(宽松)」)
把两类东西混在一起:30 条一个拉丁字母都没有(显示/隐藏 分析、最小二乘)
其实是确定译好的,43 条中英混合(文件(F)、从 CODE V 导入(C))才需要瞄一眼。
拆成cjk-only/cjk-mixed两档,判据改成看「还剩没剩英文」。- 修掉一个排序 bug。 分档用
Counter.most_common()按数量排,标题却写
「强度从高到低」—— 以前数量恰好也是强度序所以看不出来,拆档后cjk-only
直接沉到了缺口下面。 - 删掉一处不存在的引用。 标签里写的
--strict选项在 parser 里根本没有。 CONTRIBUTING.md:命令引用补全;版本号是三处不是两处;注明相对路径要在
仓库根目录运行。
汉化行为与 0.2.2 完全一致,词库无改动。
v0.2.2
改了什么
消除一处会让人误读的表述。 README 原来写「不修改上游源码」,可能被读成
「不需要 Optiland」—— 但 Optiland 本体是必须装的,本包只是运行期补丁。
- README(中/英):开头点明「这是补丁,仍需装 Optiland 本体」
- README:「18 处」标明口径是
currentText();贡献命令注明在仓库根目录运行 - PyPI 摘要行(
pyproject.toml的 description)同改 —— 它不随 README 更新 engine.pydocstring:原文写支持itemText(),但代码和同文件第 220 行都明说
故意不包装它,改成QLineEdit.text()
没有功能改动。汉化行为与 0.2.1 完全一致。
v0.2.1 — 文档重写
README 重写,主要为了让 PyPI 项目页好看 —— 它是被打进包元数据的,
改仓库里的文件不会更新那个页面,所以需要一个新版本。
变更
- 快速开始提到最前,三条命令
- 去掉说明性数字与过程叙述,篇幅 228 → 98 行
- 桌面图标从一个小节压成常见问题里的一句话
- 贡献一节改为按所需技能排序的表格,前两项不需要懂 Python
- 术语对照表移入 CONTRIBUTING.md
没有代码改动。
v0.2.0 — 无控制台入口与桌面快捷方式
无控制台入口 + 一键创建桌面快捷方式。
安装
pip install "optiland[gui]" optiland-gui-zh
optiland-zh新增
- optiland-zh-gui —— 无控制台入口。原入口是控制台程序,双击会多一个黑框;
这个用 GUI 子系统,双击不弹黑框,出错时弹对话框。 - optiland-zh --install-shortcut —— 在桌面创建「Optiland 中文版」图标,
用的是 Optiland 自己的应用图标。配套 --uninstall-shortcut / --shortcut-dir /
--console-shortcut。
修复
- 非中文 Windows 上 subprocess 未指定编码,读取线程抛异常,
表现为「命令失败但没有任何原因」。 - 英文版 Windows 建不了中文名快捷方式 —— WScript.Shell 会把路径里的中文
折成 ?,导致 FileNotFoundException。产品 bug,不是 CI 特有。
数据
- 436 条静态词条 + 72 条动态消息模板
- 源码覆盖率 99.5%,界面覆盖率 96.8%(真缺口 0)
- 83 项测试
v0.1.0
首个版本。
这是什么
Optiland GUI 的简体中文汉化包。运行期翻译层,不改上游源码 ——
pip install -U optiland 之后汉化依然有效。
安装
pip install "optiland[gui]"
pip install optiland-gui-zh
optiland-zh
内容
- 436 条静态词条 + 72 条动态消息模板
- 源码覆盖率 99.5%(382/384)
- 界面覆盖率 96.8%(1047/1082),真缺口 0
- 58 项单元测试
技术要点
- 双向翻译:界面显示中文,而
currentText()/QLineEdit.text()
读回来仍是英文。GUI 里有 18 处拿控件文字当逻辑键(比如用下拉框显示
的分析名去查注册表),单向翻译会让分析、面型编辑、优化变量静默失效。 - 覆盖了 Qt 在 C++ 内部创建的控件:
QFormLayout.addRow的标签、
QDockWidget构造器,以及 Qt 自带对话框(载入qtbase_zh_CN.qm)。
已知限制
- 画在图里的文字(matplotlib 绘图区标题)够不到
- 只覆盖 Optiland 自身的界面,第三方控件依赖它们自己的 i18n
MIT
Full Changelog: v0.1.0...v0.1.0