Skip to content

Fix: add translate for short cut.#274

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:release/eaglefrom
GongHeng2017:202605091500-eagle-fix
May 9, 2026
Merged

Fix: add translate for short cut.#274
deepin-bot[bot] merged 1 commit into
linuxdeepin:release/eaglefrom
GongHeng2017:202605091500-eagle-fix

Conversation

@GongHeng2017
Copy link
Copy Markdown
Contributor

Add translate for short cut.

Log: fix issue
Bug: https://pms.uniontech.com/bug-view-354843.html

@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

我已仔细审查了您提供的 git diff 输出,主要包括一个新增的 lupdate.sh 脚本和多个翻译文件(.ts)的更新。以下是我的审查意见:

1. 新增文件 lupdate.sh 审查

这是一个用于更新 Qt 翻译文件的 Bash 脚本。

语法与逻辑:

  • 脚本基本语法正确,使用了 lupdate 命令来更新翻译文件。
  • 使用了 -no-obsolete 参数,这是一个好的实践,可以移除不再使用的翻译条目,保持翻译文件整洁。
  • 脚本为多个语言(德语、简体中文、繁体中文、藏文、维吾尔文)生成了翻译文件。

代码质量与性能:

  • 脚本简单直接,对于这种一次性或偶尔运行的脚本,性能不是主要考虑因素。
  • 缺少错误处理:如果 lupdate 命令失败(例如源文件路径错误),脚本会继续执行而不会报告错误。建议添加错误检查。

代码安全:

  • 脚本具有可执行权限(100755),这是正确的。
  • 没有使用用户输入,因此没有注入风险。
  • 路径是硬编码的相对路径(./reader./translations/),这假设脚本在特定的目录结构中运行。如果从其他目录运行可能会失败。

改进建议:

  1. 添加错误处理:检查 lupdate 命令的退出状态,并在失败时输出错误信息。

    lupdate ./reader -ts -no-obsolete ./translations/deepin-reader.ts || { echo "Failed to update deepin-reader.ts"; exit 1; }

    对每个 lupdate 命令重复此操作。

  2. 添加 shebang 检查:确保脚本在正确的 shell 中运行。当前的 #!/bin/bash 是好的。

  3. 添加注释:虽然脚本很简单,但添加简短的注释说明脚本的用途会更好。

  4. 路径处理:考虑使用脚本的绝对路径或更稳健的路径解析,以确保从任何目录运行都能工作。

  5. 版权信息:脚本中包含了 SPDX 版权和许可证信息,这是很好的实践。

2. 翻译文件(.ts)更新审查

语法与逻辑:

  • XML 格式正确,所有文件都遵循 Qt TS 文件的标准格式。
  • 文件头从单行格式改为多行格式,提高了可读性:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE TS>
    <TS version="2.1" language="en">
    这是一个好的改进。

代码质量与性能:

  • 翻译文件的结构一致,上下文(<context>)和消息(<message>)组织良好。
  • 行号(<location>)已更新,反映了源代码中的更改。

代码安全:

  • 翻译文件不涉及安全风险。

改进建议:

  1. 未完成的翻译:在 deepin-reader.ts 中,有几个翻译条目标记为 type="unfinished"

    <message>
        <location filename="../reader/widgets/ShortCutShow.cpp" line="63"/>
        <source>File</source>
        <translation type="unfinished"></translation>
    </message>

    这些条目需要完成翻译。

  2. 一致性:确保所有语言文件中的翻译术语一致。例如,"File" 在不同语言中可能有不同的翻译,但应保持一致性。

  3. 翻译质量:虽然我无法评估所有语言的翻译质量,但建议进行人工审查,特别是对于像藏文和维吾尔文这样的语言,确保翻译准确且符合文化习惯。

3. 总体建议

  1. 自动化:考虑将 lupdate.sh 集成到构建系统中(例如 CMake 或 qmake),以便在源文件更改时自动运行。

  2. 版本控制:确保翻译文件被正确跟踪和版本控制。

  3. 文档:为翻译工作流程添加文档,说明如何运行 lupdate.sh 以及如何处理新的翻译条目。

  4. 测试:在更新翻译文件后,测试应用程序以确保所有翻译正确显示。

4. 示例改进后的 lupdate.sh

#!/bin/bash

# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Script to update translation files for the reader application

# Check if lupdate is available
if ! command -v lupdate &> /dev/null; then
    echo "Error: lupdate command not found. Please install Qt Linguist Tools."
    exit 1
fi

# Update translation files
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader.ts || { echo "Failed to update deepin-reader.ts"; exit 1; }
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader_zh_CN.ts || { echo "Failed to update deepin-reader_zh_CN.ts"; exit 1; }
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader_zh_TW.ts || { echo "Failed to update deepin-reader_zh_TW.ts"; exit 1; }
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader_zh_HK.ts || { echo "Failed to update deepin-reader_zh_HK.ts"; exit 1; }
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader_ug.ts || { echo "Failed to update deepin-reader_ug.ts"; exit 1; }
lupdate ./reader -ts -no-obsolete ./translations/deepin-reader_bo.ts || { echo "Failed to update deepin-reader_bo.ts"; exit 1; }

echo "Translation files updated successfully."

总结

整体上,这些更改是积极的,特别是改进了翻译文件的 XML 格式。主要的改进空间在于增强 lupdate.sh 脚本的健壮性和错误处理,以及完成未完成的翻译条目。建议在合并前进行充分的测试和翻译审查。

@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: GongHeng2017, max-lvs

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

@GongHeng2017
Copy link
Copy Markdown
Contributor Author

/merge

@deepin-bot
Copy link
Copy Markdown
Contributor

deepin-bot Bot commented May 9, 2026

This pr cannot be merged! (status: unstable)

@GongHeng2017
Copy link
Copy Markdown
Contributor Author

/forcemerge

@deepin-bot
Copy link
Copy Markdown
Contributor

deepin-bot Bot commented May 9, 2026

This pr force merged! (status: unstable)

@deepin-bot deepin-bot Bot merged commit 47fffc9 into linuxdeepin:release/eagle May 9, 2026
10 of 11 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