Skip to content

fix(ui): remove OS name prefix from compat mode uninstall hint#415

Merged
pengfeixx merged 1 commit into
linuxdeepin:masterfrom
pengfeixx:master
May 25, 2026
Merged

fix(ui): remove OS name prefix from compat mode uninstall hint#415
pengfeixx merged 1 commit into
linuxdeepin:masterfrom
pengfeixx:master

Conversation

@pengfeixx
Copy link
Copy Markdown
Contributor

Remove "UOS 20" prefix from the uninstall tip in compatibility mode, so it shows "正在从兼容模式卸载xxx" instead of
"正在从UOS 20兼容模式卸载xxx".

移除兼容模式卸载提示中的系统名称前缀,使提示信息更简洁。

Log: 去掉兼容模式卸载提示中的UOS 20前缀
PMS: BUG-362597
Influence: 兼容模式卸载时提示文本由"正在从UOS 20兼容模式卸载xxx"变为"正在从兼容模式卸载xxx",其余语言翻译文件同步更新。

Remove "UOS 20" prefix from the uninstall tip in compatibility mode,
so it shows "正在从兼容模式卸载xxx" instead of
"正在从UOS 20兼容模式卸载xxx".

移除兼容模式卸载提示中的系统名称前缀,使提示信息更简洁。

Log: 去掉兼容模式卸载提示中的UOS 20前缀
PMS: BUG-362597
Influence: 兼容模式卸载时提示文本由"正在从UOS 20兼容模式卸载xxx"变为"正在从兼容模式卸载xxx",其余语言翻译文件同步更新。
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @pengfeixx, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

你好!我是CodeGeeX。我已经仔细审查了你提供的 git diff,本次修改主要涉及将卸载提示语中的“兼容模式名称(%1 / kDefaultRootfsOsName)”移除,仅保留“包名(%1)”,并同步更新了多语言的翻译文件。

以下是我对本次代码变更的审查意见,涵盖语法逻辑、代码质量、代码性能和代码安全四个方面:

1. 语法逻辑

  • 参数占位符一致性修复(正确):原代码 tr("Uninstalling %2 from %1 compatibility mode").arg(kDefaultRootfsOsName).arg(m_pkgNameDescription) 使用了 %1%2,但在 Qt 的 tr()arg() 机制中,参数是按顺序填充的。原代码中 %1kDefaultRootfsOsName 填充,%2m_pkgNameDescription 填充,逻辑上是正确的。修改后简化为 tr("Uninstalling %1 from compatibility mode").arg(m_pkgNameDescription),仅使用 %1,逻辑依然正确,且消除了不必要的参数。
  • 翻译文件标记变更(正确):在 .ts 翻译文件中,将旧字符串 Uninstalling %2 from %1 compatibility mode<location> 标签移除,并将其 <translation> 标记为 type="vanished";同时为新字符串 Uninstalling %1 from compatibility mode 添加了新的 <message> 条目。这完全符合 Qt Linguist 的处理逻辑,vanished 标记用于保留历史翻译以供参考,不会影响编译。

2. 代码质量

  • UI 文本简化与一致性(优秀):移除硬编码的系统名称(kDefaultRootfsOsName),使得 UI 提示语更加简洁明了("正在从兼容模式卸载 XXX" 比 "正在从 XXX兼容模式卸载 YYY" 更加精炼)。
  • 与安装提示语对齐:建议检查一下“安装”时的提示语。从 diff 中可以看到,此前已经存在 Installing in compatibility mode %1 的翻译条目,说明安装提示语已经去掉了系统名称。本次卸载提示语的修改使得安装卸载的文案风格保持了高度一致,这是非常好的代码质量实践。
  • 翻译文件维护:虽然 .ts 文件的变更量巨大,但属于自动化/半自动化工具生成的标准变更,格式规范,没有遗漏。

3. 代码性能

  • 轻微性能提升QString::arg() 方法在内部会进行字符串查找和内存分配。从两个占位符(%1, %2)减少到一个占位符(%1),虽然带来的性能提升微乎其微(纳秒级别),但从宏观角度来看,减少不必要的字符串拼接和内存操作对性能总是有益的,特别是在频繁刷新的 UI 场景下。

4. 代码安全

  • 信息隐藏(改进):移除了 kDefaultRootfsOsName 在前端 UI 的暴露。在某些安全场景下,减少向用户暴露底层运行的宿主系统名称(如特定的 Linux 发行版名称或 rootfs 名称)可以降低系统被针对性攻击的风险(尽管这属于非常微小的防御纵深)。
  • 无注入风险m_pkgNameDescription 作为包名描述,直接通过 arg() 注入到 QString 中,Qt 的 arg() 方法会安全地替换占位符,不存在 SQL 注入或命令注入等安全风险。

💡 改进建议

  1. 全局搜索与统一替换
    建议在代码库中全局搜索 kDefaultRootfsOsName 在 UI 字符串中的使用情况。从 diff 的翻译文件中可以看到,还有类似 %2 was successfully installed to %1 compatibility mode%2 has been successfully uninstalled from %1 compatibility mode 这样的旧格式字符串(在 vanished 块附近)。如果业务逻辑允许,建议将这些提示语也一并简化,彻底清除 kDefaultRootfsOsName 在用户侧的显示,保持整个应用提示语风格的一致性。

  2. 清理翻译文件(可选)
    翻译文件中积累了大量 type="vanished" 的条目。虽然它们不会影响编译后的二进制体积,但如果历史翻译已经确认不再需要回退,可以在项目发版前使用 lupdate -no-obsolete 命令清理这些废弃的条目,以减小 .ts 文件的体积,降低翻译人员的视觉干扰。

总结:这是一次非常清晰、规范的字符串重构修改,逻辑正确,符合 Qt 国际化的最佳实践,且提升了代码质量和 UI 一致性。可以放心合入。

@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lzwind, pengfeixx

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@pengfeixx pengfeixx merged commit 33a8dc4 into linuxdeepin:master May 25, 2026
20 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants