2026-07-14 01:37:06 +00:00
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version= "2.1" language= "zh_CN" >
2026-07-16 08:14:51 +00:00
<context>
<name> Bootstrap</name>
<message>
<location filename= "../Bootstrap/main.cpp" line= "22" />
<source> Update Handoff Failed</source>
<translation> 更新交接失败</translation>
</message>
<message>
<location filename= "../Bootstrap/main.cpp" line= "139" />
<source> Bootstrap arguments are incomplete.</source>
<translation> Bootstrap 启动参数不完整。</translation>
</message>
<message>
<location filename= "../Bootstrap/main.cpp" line= "158" />
<source> The update plan is missing or invalid.</source>
<translation> 更新计划文件缺失或格式无效。</translation>
</message>
<message>
<location filename= "../Bootstrap/main.cpp" line= "195" />
<source> Cannot restart Updater.</source>
<translation> 无法重新启动 Updater。</translation>
</message>
<message>
<location filename= "../Bootstrap/main.cpp" line= "197" />
<source>
Failed file: %1</source>
<translation>
失败文件:%1</translation>
</message>
</context>
2026-07-14 01:37:06 +00:00
<context>
<name> ConfigHelper</name>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Common/ConfigHelper.cpp" line= "219" />
2026-07-14 01:37:06 +00:00
<source> The user canceled the administrator permission confirmation.</source>
<translation> 用户取消了管理员权限确认。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Common/ConfigHelper.cpp" line= "220" />
2026-07-14 01:37:06 +00:00
<source> Windows error %1</source>
<translation> Windows 错误 %1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Common/ConfigHelper.cpp" line= "230" />
2026-07-14 01:37:06 +00:00
<source> Administrator Permission Required</source>
<translation> 需要管理员权限</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Common/ConfigHelper.cpp" line= "231" />
2026-07-14 01:37:06 +00:00
<source> The current installation directory requires administrator permission to save configuration.
Target file: %1
Reason: %2
Click OK, then choose Yes in the Windows permission confirmation dialog.</source>
<translation> 当前安装目录需要管理员权限才能保存配置。
目标文件:%1
原因:%2
点击“确定”后,请在 Windows 权限确认窗口中选择“是”。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Common/ConfigHelper.cpp" line= "238" />
2026-07-14 01:37:06 +00:00
<source> The user canceled the administrator permission request.</source>
<translation> 用户取消了管理员权限请求。</translation>
</message>
</context>
2026-07-16 08:14:51 +00:00
<context>
<name> DeviceIdentityHelper</name>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "54" />
<source> OpenSSL is unavailable, so device credential signature cannot be verified.</source>
<translation> 当前程序未启用 OpenSSL,无法验证设备凭证签名。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "62" />
<source> Device public key is missing: %1</source>
<translation> 设备凭证公钥缺失:%1</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "73" />
<source> Device public key is invalid: %1</source>
<translation> 设备凭证公钥无效:%1</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "93" />
<source> Device credential signature is invalid. The local identity file may not match this server.</source>
<translation> 设备凭证签名无效。本机身份文件可能不是当前服务器签发的。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "118" />
<source> Device credential file is not valid JSON: %1</source>
<translation> 设备凭证文件不是合法 JSON: %1</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "142" />
<source> Device credential does not match this application, channel, license, installation or device.</source>
<translation> 设备凭证与当前应用、渠道、License、安装实例或设备不匹配。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "149" />
<source> License has expired. Please ask the administrator to issue a new License.</source>
<translation> License 已过期。请联系管理员重新签发 License。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "182" />
<source> app_id is empty in app_config.json.</source>
<translation> app_config.json 中的 app_id 为空。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "186" />
<source> channel is empty in app_config.json.</source>
<translation> app_config.json 中的 channel 为空。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "190" />
<source> Server address is not configured. Set config/server_config.json before building Launcher, for example: http://192.168.229.128:8000</source>
<translation> 服务端地址未配置。请先设置 config/server_config.json,再重新编译 Launcher。例如:http://192.168.229.128:8000</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "196" />
<source> client_token is empty. Copy the client_token generated by the admin page into app_config.json.</source>
<translation> client_token 为空。请把管理后台生成的 client_token 复制到 app_config.json。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "202" />
<source> License is empty. Create or select a License in the admin page, then copy the generated client configuration.</source>
<translation> License 为空。请先在管理后台创建或选择 License,然后复制生成的客户端配置。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "213" />
<source> Cannot save installation id to %1: %2</source>
<translation> 无法保存安装实例 ID 到 %1: %2</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "263" />
<source> Device identity request failed (HTTP %1): %2</source>
<translation> 设备身份申请失败(HTTP %1):%2</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "273" />
<source> Server returned an invalid device identity response.</source>
<translation> 服务端返回的设备身份响应格式无效。</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "288" />
<source> Cannot save device credential to %1: %2</source>
<translation> 无法保存设备凭证到 %1: %2</translation>
</message>
<message>
<location filename= "../Common/DeviceIdentityHelper.cpp" line= "296" />
<source> Cannot save server device id to %1: %2</source>
<translation> 无法保存服务端设备 ID 到 %1:%2</translation>
</message>
</context>
2026-07-14 01:37:06 +00:00
<context>
<name> Launcher</name>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "32" />
2026-07-14 01:37:06 +00:00
<source> Checking for software updates...</source>
<translation> 正在检查软件更新...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "33" />
2026-07-14 01:37:06 +00:00
<source> Marsco Launcher</source>
<translation> Marsco 软件启动器</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "63" />
2026-07-14 01:37:06 +00:00
<source> Please enter the License for %1:</source>
<translation> 请输入 %1 的授权 License: </translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "64" />
<location filename= "../Launcher/main.cpp" line= "66" />
2026-07-14 01:37:06 +00:00
<source> the application</source>
<translation> 软件</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "65" />
2026-07-14 01:37:06 +00:00
<source> %1
Please enter a new License for %2:</source>
<translation> %1
请重新输入 %2 的授权 License:</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "69" />
2026-07-14 01:37:06 +00:00
<source> Enter License</source>
<translation> 输入 License</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "77" />
2026-07-14 01:37:06 +00:00
<source> License Required</source>
<translation> 需要 License</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "78" />
2026-07-14 01:37:06 +00:00
<source> A License provided by the administrator is required for the first launch.</source>
<translation> 首次启动需要输入管理员提供的 License。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "83" />
2026-07-14 01:37:06 +00:00
<source> License Cannot Be Empty</source>
<translation> License 不能为空</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "84" />
2026-07-14 01:37:06 +00:00
<source> Please paste the License created in the admin page.</source>
<translation> 请粘贴管理员在后台创建的 License。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "90" />
2026-07-14 01:37:06 +00:00
<source> Failed to Save License</source>
<translation> 保存 License 失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "91" />
2026-07-14 01:37:06 +00:00
<source> Cannot write the configuration file:
%1
%2</source>
<translation> 无法写入配置文件:
%1
%2</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "95" />
2026-07-14 01:37:06 +00:00
<source> Verifying License...</source>
<translation> 正在验证 License...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "120" />
2026-07-14 01:37:06 +00:00
<source> Device Authentication Failed</source>
<translation> 设备身份验证失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "125" />
2026-07-14 01:37:06 +00:00
<source> The current License cannot be used: %1</source>
<translation> 当前 License 无法使用:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "147" />
2026-07-14 01:37:06 +00:00
<source> The device or License authorization is invalid.</source>
<translation> 设备或 License 授权无效。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "151" />
2026-07-14 01:37:06 +00:00
<source> The current authorization was rejected by the server: %1</source>
<translation> 当前授权被服务端拒绝:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "155" />
2026-07-14 01:37:06 +00:00
<source> License Saved</source>
<translation> License 已保存</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "156" />
2026-07-14 01:37:06 +00:00
<source> Please restart Launcher to complete device authorization and update checking.</source>
<translation> 请重新启动 Launcher 完成设备授权和更新检查。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "161" />
2026-07-14 01:37:06 +00:00
<source> Authorization Rejected</source>
<translation> 授权被拒绝</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "176" />
2026-07-14 01:37:06 +00:00
<source> Select Offline Update Package</source>
<translation> 选择离线更新包</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "178" />
2026-07-14 01:37:06 +00:00
<source> Marsco offline update package (*.upd)</source>
<translation> Marsco 离线更新包 (*.upd)</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "186" />
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "340" />
2026-07-14 01:37:06 +00:00
<source> Offline Update</source>
<translation> 离线更新</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "187" />
2026-07-14 01:37:06 +00:00
<source> No offline update package was selected.</source>
<translation> 未选择离线更新包。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "207" />
2026-07-14 01:37:06 +00:00
<source> Verifying local runtime policy...</source>
<translation> 正在验证本地运行策略...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "215" />
<location filename= "../Launcher/main.cpp" line= "223" />
<location filename= "../Launcher/main.cpp" line= "242" />
2026-07-14 01:37:06 +00:00
<source> Cannot Start</source>
<translation> 无法启动</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "216" />
2026-07-14 01:37:06 +00:00
<source> The local version policy is invalid: %1</source>
<translation> 本地版本策略无效:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "224" />
2026-07-14 01:37:06 +00:00
<source> The local version policy has expired. Please connect to the network or contact the administrator.</source>
<translation> 本地版本策略已过期,请连接网络或联系管理员。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "231" />
2026-07-14 01:37:06 +00:00
<source> Current Version Cannot Run</source>
<translation> 当前版本不可运行</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "232" />
2026-07-14 01:37:06 +00:00
<source> The current version %1 has been disabled by the administrator.</source>
<translation> 当前版本 %1 已被管理员停用。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "243" />
2026-07-14 01:37:06 +00:00
<source> Cannot read the local state: %1</source>
<translation> 无法读取本地状态:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "250" />
<location filename= "../Launcher/main.cpp" line= "258" />
2026-07-14 01:37:06 +00:00
<source> Security Check Failed</source>
<translation> 安全检查失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "251" />
2026-07-14 01:37:06 +00:00
<source> A version policy sequence rollback was detected. Startup has been blocked.</source>
<translation> 检测到版本策略序列回退,已阻止启动。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Launcher/main.cpp" line= "259" />
2026-07-14 01:37:06 +00:00
<source> A possible system time rollback was detected. Startup has been blocked.</source>
<translation> 检测到系统时间可能被回拨,已阻止启动。</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "265" />
<source> Generating Git tag list...</source>
<translation> 正在生成 Git 标签清单...</translation>
</message>
<message>
<location filename= "../Launcher/main.cpp" line= "272" />
<source> Git Tag List Failed</source>
<translation> Git 标签清单生成失败</translation>
</message>
<message>
<location filename= "../Launcher/main.cpp" line= "273" />
<source> Cannot generate tags.txt, but startup will continue:
%1</source>
<translation> 无法生成 tags.txt,但启动会继续:
%1</translation>
</message>
<message>
<location filename= "../Launcher/main.cpp" line= "283" />
2026-07-14 01:37:06 +00:00
<source> Version Rollback</source>
<translation> 版本回退</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "284" />
2026-07-14 01:37:06 +00:00
<source> Update Required</source>
<translation> 必须更新</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "284" />
2026-07-14 01:37:06 +00:00
<source> New Version Available</source>
<translation> 发现新版本</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "287" />
2026-07-14 01:37:06 +00:00
<source> The administrator provided version %1 as the rollback target. Downgrade now?</source>
<translation> 管理员提供了版本 %1 作为回退目标,是否现在降级?</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "288" />
2026-07-14 01:37:06 +00:00
<source> Version %1 is available. Update now?</source>
<translation> 发现新版本 %1,是否现在更新?</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "289" />
2026-07-14 01:37:06 +00:00
<source>
Target version: %1</source>
<translation>
目标版本:%1</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "300" />
<location filename= "../Launcher/main.cpp" line= "364" />
2026-07-14 01:37:06 +00:00
<source> Startup Failed</source>
<translation> 启动失败</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "301" />
<location filename= "../Launcher/main.cpp" line= "365" />
2026-07-14 01:37:06 +00:00
<source> Cannot start the main application: %1</source>
<translation> 无法启动主程序:%1</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "310" />
2026-07-14 01:37:06 +00:00
<source> Updater Startup Failed</source>
<translation> 更新器启动失败</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "311" />
2026-07-14 01:37:06 +00:00
<source> Cannot start the updater: %1</source>
<translation> 无法启动更新器:%1</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "319" />
2026-07-14 01:37:06 +00:00
<source> Caching signed version manifest...</source>
<translation> 正在缓存签名版本清单...</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "326" />
2026-07-14 01:37:06 +00:00
<source> Manifest Cache Failed</source>
<translation> 清单缓存失败</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "327" />
2026-07-14 01:37:06 +00:00
<source> Cannot cache the signed manifest for the current version: %1</source>
<translation> 无法缓存当前版本的签名清单:%1</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "335" />
2026-07-14 01:37:06 +00:00
<source> Server Unavailable</source>
<translation> 服务器不可用</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "336" />
2026-07-14 01:37:06 +00:00
<source> Cannot connect to the update server. Import an offline update package?</source>
<translation> 当前无法连接更新服务器。是否导入离线更新包?</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "341" />
2026-07-14 01:37:06 +00:00
<source> No offline update package was selected, or the updater could not be started.</source>
<translation> 未选择离线更新包或无法启动更新器。</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "351" />
2026-07-14 01:37:06 +00:00
<source> Network Unavailable</source>
<translation> 网络不可用</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "352" />
2026-07-14 01:37:06 +00:00
<source> Cannot connect to the update server, and the current policy does not allow offline startup.</source>
<translation> 无法连接更新服务器,且当前策略不允许离线启动。</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "357" />
2026-07-14 01:37:06 +00:00
<source> The application is up to date. Starting...</source>
<translation> 当前已是最新版本,正在启动...</translation>
</message>
<message>
2026-07-20 06:43:46 +00:00
<location filename= "../Launcher/main.cpp" line= "358" />
2026-07-14 01:37:06 +00:00
<source> Offline mode is active. Starting...</source>
<translation> 当前处于离线模式,正在启动...</translation>
</message>
</context>
2026-07-20 06:43:46 +00:00
<context>
<name> UpdateLogic</name>
<message>
<location filename= "../Launcher/UpdateLogic.cpp" line= "167" />
<source> Server address is empty.</source>
<translation> 服务端地址为空。</translation>
</message>
<message>
<location filename= "../Launcher/UpdateLogic.cpp" line= "188" />
<source> Git tags request failed (HTTP %1).</source>
<translation> Git 标签请求失败(HTTP %1)。</translation>
</message>
<message>
<location filename= "../Launcher/UpdateLogic.cpp" line= "195" />
<source> Git tags response is empty.</source>
<translation> Git 标签响应为空。</translation>
</message>
<message>
<location filename= "../Launcher/UpdateLogic.cpp" line= "201" />
<source> Cannot write Git tags file: %1</source>
<translation> 无法写入 Git 标签文件:%1</translation>
</message>
</context>
2026-07-14 01:37:06 +00:00
<context>
<name> Updater</name>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "45" />
2026-07-14 01:37:06 +00:00
<source> Invalid Offline Package</source>
<translation> 离线包无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "57" />
2026-07-14 01:37:06 +00:00
<source> Updater Argument Error</source>
<translation> 更新器参数错误</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "58" />
2026-07-14 01:37:06 +00:00
<source> The updater is missing online update arguments or an offline update package.</source>
<translation> 更新器缺少在线更新参数或离线更新包。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "78" />
2026-07-14 01:37:06 +00:00
<source> Offline Package Not Applicable</source>
<translation> 离线包不适用</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "79" />
2026-07-14 01:37:06 +00:00
<source> The update package application or channel does not match the local configuration.</source>
<translation> 更新包的应用或渠道与本机配置不一致。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "88" />
2026-07-14 01:37:06 +00:00
<source> Offline Update Rejected</source>
<translation> 离线更新被拒绝</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "89" />
2026-07-14 01:37:06 +00:00
<source> The local signed policy has expired, forbids offline updates, or does not allow the target version.</source>
<translation> 本地签名策略已过期、禁止离线更新或不允许目标版本。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "96" />
2026-07-14 01:37:06 +00:00
<source> Downgrade Forbidden</source>
<translation> 禁止降级</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "97" />
2026-07-14 01:37:06 +00:00
<source> The current signed policy does not allow installing an offline package with a lower version.</source>
<translation> 当前签名策略不允许安装较低版本的离线包。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "109" />
<location filename= "../Updater/main.cpp" line= "117" />
2026-07-14 01:37:06 +00:00
<source> Update Recovery Failed</source>
<translation> 更新恢复失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "110" />
2026-07-14 01:37:06 +00:00
<source> An unfinished update was detected, but the old version could not be restored: %1
Do not continue running the software. Please contact the administrator.</source>
<translation> 检测到上次更新未完成,但无法恢复旧版本:%1
请不要继续运行软件,并联系管理员。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "118" />
2026-07-14 01:37:06 +00:00
<source> The old files were restored, but the version state could not be restored. Please check write permissions for the configuration directory.</source>
<translation> 旧文件已经恢复,但无法恢复版本状态,请检查配置目录写入权限。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "125" />
2026-07-14 01:37:06 +00:00
<source> Preparing update...</source>
<translation> 正在准备更新...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "126" />
2026-07-14 01:37:06 +00:00
<source> Updating to %1</source>
<translation> 正在更新到 %1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "155" />
2026-07-14 01:37:06 +00:00
<source> Preparing download...</source>
<translation> 正在准备下载...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "156" />
2026-07-14 01:37:06 +00:00
<source> Downloading: %1</source>
<translation> 正在下载:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "218" />
2026-07-14 01:37:06 +00:00
<source> Delegating rollback to Bootstrap...</source>
<translation> 正在将回滚工作移交给 Bootstrap...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "227" />
2026-07-14 01:37:06 +00:00
<source>
Cannot start Bootstrap to perform rollback. Do not continue running the software. Please contact the administrator.</source>
<translation>
无法启动 Bootstrap 执行回滚。请不要继续运行软件,并联系管理员。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "237" />
2026-07-14 01:37:06 +00:00
<source> Transaction Resume Failed</source>
<translation> 事务续办失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "238" />
2026-07-14 01:37:06 +00:00
<source> Cannot read the Bootstrap update transaction: %1</source>
<translation> 无法读取 Bootstrap 更新事务:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "251" />
2026-07-14 01:37:06 +00:00
<source> Update Rolled Back</source>
<translation> 更新已回滚</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "253" />
2026-07-14 01:37:06 +00:00
<source> The new version failed to install or start. The old version has been restored and started automatically.</source>
<translation> 新版本安装或启动失败,已自动恢复并启动旧版本。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "254" />
2026-07-14 01:37:06 +00:00
<source> The old files were restored, but the old version number could not be written back. Please check configuration directory permissions.</source>
<translation> 旧文件已经恢复,但旧版本号写回失败,请检查配置目录权限。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "261" />
2026-07-14 01:37:06 +00:00
<source> Automatic Rollback Failed</source>
<translation> 自动回滚失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "262" />
2026-07-14 01:37:06 +00:00
<source> Bootstrap could not fully restore the old version. Do not continue running the software. Please contact the administrator.</source>
<translation> Bootstrap 无法完整恢复旧版本。请不要继续运行软件,并联系管理员。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "266" />
<location filename= "../Updater/main.cpp" line= "272" />
2026-07-14 01:37:06 +00:00
<source> Update Preparation Failed</source>
<translation> 更新准备失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "267" />
2026-07-14 01:37:06 +00:00
<source> Cannot create the update transaction directory or save the transaction state.</source>
<translation> 无法创建更新事务目录或保存事务状态。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "273" />
2026-07-14 01:37:06 +00:00
<source> Cannot save the offline transaction marker.</source>
<translation> 无法保存离线事务标记。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "279" />
2026-07-14 01:37:06 +00:00
<source> Fetching and verifying version manifest...</source>
<translation> 正在获取并验证版本清单...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "280" />
2026-07-14 01:37:06 +00:00
<source> Verifying offline update package...</source>
<translation> 正在验证离线更新包...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "284" />
<location filename= "../Updater/main.cpp" line= "311" />
<location filename= "../Updater/main.cpp" line= "313" />
2026-07-14 01:37:06 +00:00
<source> Manifest Cache Failed</source>
<translation> 清单缓存失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "285" />
2026-07-14 01:37:06 +00:00
<source> Cannot read the signed manifest cache after Bootstrap installation.</source>
<translation> Bootstrap 安装后无法读取签名 Manifest 缓存。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "291" />
<location filename= "../Updater/main.cpp" line= "293" />
2026-07-14 01:37:06 +00:00
<source> Security Verification Failed</source>
<translation> 安全验证失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "292" />
2026-07-14 01:37:06 +00:00
<source> Cannot reverify the manifest signature after Bootstrap installation.</source>
<translation> Bootstrap 安装后无法重新验证版本清单签名。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "294" />
2026-07-14 01:37:06 +00:00
<source> The version manifest signature is invalid. The update has stopped. Please contact the administrator.</source>
<translation> 版本清单签名无效,更新已停止。请联系管理员。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "312" />
2026-07-14 01:37:06 +00:00
<source> Cannot save the new version manifest cache.</source>
<translation> 无法保存新版本 Manifest 缓存。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "314" />
2026-07-14 01:37:06 +00:00
<source> Cannot save the new version manifest cache. The update has stopped.</source>
<translation> 无法保存新版本 Manifest 缓存,更新已停止。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "321" />
2026-07-14 01:37:06 +00:00
<source> Fetching secure download URLs...</source>
<translation> 正在获取安全下载地址...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "322" />
2026-07-14 01:37:06 +00:00
<source> Preparing offline package files...</source>
<translation> 正在准备离线包文件...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "326" />
2026-07-14 01:37:06 +00:00
<source> No Files to Update</source>
<translation> 没有可更新文件</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "327" />
2026-07-14 01:37:06 +00:00
<source> The server did not return any version files. The update has stopped.</source>
<translation> 服务器没有返回任何版本文件,更新已停止。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "335" />
2026-07-14 01:37:06 +00:00
<source> Insufficient Disk Space</source>
<translation> 磁盘空间不足</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "336" />
2026-07-14 01:37:06 +00:00
<source> The update requires at least %1 of free space, but the installation drive currently has only %2.
The required space includes downloaded files, old version backups, and a safety margin.</source>
<translation> 更新至少需要 %1 可用空间,安装盘当前仅剩 %2。
所需空间已包含下载文件、旧版本备份和安全余量。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "345" />
2026-07-14 01:37:06 +00:00
<source> Downloading and verifying %1 version files...</source>
<translation> 正在下载并校验 %1 个版本文件...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "346" />
2026-07-14 01:37:06 +00:00
<source> Extracting and verifying %1 offline files...</source>
<translation> 正在提取并校验 %1 个离线文件...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "349" />
2026-07-14 01:37:06 +00:00
<source> Offline Package Extraction Failed</source>
<translation> 离线包提取失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "355" />
2026-07-14 01:37:06 +00:00
<source> Download Failed</source>
<translation> 下载失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "356" />
2026-07-14 01:37:06 +00:00
<source> Some files failed to download or failed SHA-256 verification. Please check the network and try again.</source>
<translation> 部分文件下载失败或 SHA-256 校验未通过,请检查网络后重试。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "362" />
2026-07-14 01:37:06 +00:00
<source> Verifying complete version files...</source>
<translation> 正在校验完整版本文件...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "364" />
2026-07-14 01:37:06 +00:00
<source> File Verification Failed</source>
<translation> 文件校验失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "365" />
2026-07-14 01:37:06 +00:00
<source> The staged files do not match the version manifest. The update has stopped.</source>
<translation> 暂存文件与版本清单不一致,更新已停止。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "378" />
2026-07-14 01:37:06 +00:00
<source> Bootstrap Cannot Self-Update</source>
<translation> Bootstrap 无法自更新</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "379" />
2026-07-14 01:37:06 +00:00
<source> This version contains a new %1. Please upgrade this component with the installer, then publish the business version again.</source>
<translation> 本次版本包含新的 %1。请使用安装包升级该组件,再重新发布业务版本。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "384" />
2026-07-14 01:37:06 +00:00
<source> Transaction Recording Failed</source>
<translation> 事务记录失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "385" />
2026-07-14 01:37:06 +00:00
<source> Cannot save the list of verified or pending deletion files. The update has stopped.</source>
<translation> 无法保存已校验或待删除文件列表,更新已停止。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "388" />
2026-07-14 01:37:06 +00:00
<source> Closing the main application...</source>
<translation> 正在关闭主程序...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "390" />
2026-07-14 01:37:06 +00:00
<source> Cannot Close Main Application</source>
<translation> 无法关闭主程序</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "391" />
2026-07-14 01:37:06 +00:00
<source> %1 is still running. Please close it manually and try again.</source>
<translation> %1 仍在运行,请手动关闭后重试。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "394" />
2026-07-14 01:37:06 +00:00
<source> Backing up %1 files to be changed, including %2 files to be deleted...</source>
<translation> 正在备份 %1 个待变更文件(其中删除 %2 个)...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "397" />
2026-07-14 01:37:06 +00:00
<source> Backup Failed</source>
<translation> 备份失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "398" />
2026-07-14 01:37:06 +00:00
<source> Cannot back up current version files. The new version has not been installed. Please check disk space and directory permissions.</source>
<translation> 无法备份当前版本文件,尚未安装新版本。请检查磁盘空间和目录权限。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "404" />
<location filename= "../Updater/main.cpp" line= "414" />
<location filename= "../Updater/main.cpp" line= "422" />
<location filename= "../Updater/main.cpp" line= "428" />
2026-07-14 01:37:06 +00:00
<source> Bootstrap Handoff Preparation Failed</source>
<translation> 接管准备失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "405" />
2026-07-14 01:37:06 +00:00
<source> Cannot create the Bootstrap file plan.</source>
<translation> 无法创建 Bootstrap 文件计划。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "415" />
2026-07-14 01:37:06 +00:00
<source> Cannot write the Bootstrap copy plan.</source>
<translation> 无法写入 Bootstrap 复制计划。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "423" />
2026-07-14 01:37:06 +00:00
<source> Cannot write the Bootstrap deletion plan.</source>
<translation> 无法写入 Bootstrap 删除计划。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "429" />
2026-07-14 01:37:06 +00:00
<source> Cannot commit the Bootstrap file plan or transaction state.</source>
<translation> 无法提交 Bootstrap 文件计划或事务状态。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "432" />
2026-07-14 01:37:06 +00:00
<source> Delegating installation to Bootstrap...</source>
<translation> 正在将安装工作移交给 Bootstrap...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "434" />
2026-07-14 01:37:06 +00:00
<source> Bootstrap Startup Failed</source>
<translation> Bootstrap 启动失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "435" />
2026-07-14 01:37:06 +00:00
<source> Cannot start the standalone update handoff program: %1</source>
<translation> 无法启动独立更新接管程序:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "441" />
2026-07-14 01:37:06 +00:00
<source> Verifying Bootstrap installation result...</source>
<translation> 正在校验 Bootstrap 安装结果...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "443" />
2026-07-14 01:37:06 +00:00
<source> Installation Verification Failed</source>
<translation> 安装校验失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "444" />
2026-07-14 01:37:06 +00:00
<source> New version files failed verification after installation.</source>
<translation> 新版本文件安装后校验未通过。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "447" />
2026-07-14 01:37:06 +00:00
<source> Obsolete File Cleanup Failed</source>
<translation> 废弃文件清理失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "448" />
2026-07-14 01:37:06 +00:00
<source> An obsolete file still exists: %1</source>
<translation> 废弃文件仍然存在:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "451" />
2026-07-14 01:37:06 +00:00
<source> Saving new version state...</source>
<translation> 正在保存新版本状态...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "454" />
2026-07-14 01:37:06 +00:00
<source> State Save Failed</source>
<translation> 状态保存失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "455" />
2026-07-14 01:37:06 +00:00
<source> Cannot save the current version number.</source>
<translation> 无法保存当前版本号。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "459" />
2026-07-14 01:37:06 +00:00
<source> Starting the new version and waiting for health confirmation...</source>
<translation> 正在启动新版本并等待健康确认...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "461" />
2026-07-14 01:37:06 +00:00
<source> Startup Failed</source>
<translation> 启动失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "462" />
2026-07-14 01:37:06 +00:00
<source> %1 cannot be started.</source>
<translation> %1 无法启动。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "471" />
2026-07-14 01:37:06 +00:00
<source> Startup Confirmation Failed</source>
<translation> 启动确认失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "472" />
2026-07-14 01:37:06 +00:00
<source> The new version did not complete startup health confirmation within %1 milliseconds.</source>
<translation> 新版本在 %1 毫秒内没有完成启动健康确认。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "475" />
2026-07-14 01:37:06 +00:00
<source> Committing update transaction...</source>
<translation> 正在提交更新事务...</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "477" />
2026-07-14 01:37:06 +00:00
<source> Transaction Commit Failed</source>
<translation> 事务提交失败</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "478" />
2026-07-14 01:37:06 +00:00
<source> The new version has started, but the update transaction could not be committed.</source>
<translation> 新版本已经启动,但无法提交更新事务。</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "486" />
2026-07-14 01:37:06 +00:00
<source> Update Complete</source>
<translation> 更新完成</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/main.cpp" line= "487" />
2026-07-14 01:37:06 +00:00
<source> The software has been successfully updated to %1 and passed the startup health check.</source>
<translation> 软件已成功更新到 %1,并通过启动健康检查。</translation>
</message>
</context>
<context>
<name> UpdaterLogic</name>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "356" />
2026-07-14 01:37:06 +00:00
<source> Cannot open the offline update package</source>
<translation> 无法打开离线更新包</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "357" />
2026-07-14 01:37:06 +00:00
<source> The offline package format identifier is invalid</source>
<translation> 离线包格式标识无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "359" />
2026-07-14 01:37:06 +00:00
<source> The offline package header is incomplete</source>
<translation> 离线包头不完整</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "362" />
2026-07-14 01:37:06 +00:00
<source> The offline package header length is invalid</source>
<translation> 离线包头长度无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "365" />
2026-07-14 01:37:06 +00:00
<source> The offline package header JSON is invalid</source>
<translation> 离线包头 JSON 无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "370" />
2026-07-14 01:37:06 +00:00
<source> The offline package RSA signature is invalid</source>
<translation> 离线包 RSA 签名无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "372" />
2026-07-14 01:37:06 +00:00
<source> The offline package signature metadata is invalid</source>
<translation> 离线包签名元数据无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "373" />
2026-07-14 01:37:06 +00:00
<source> The manifest digest does not match the package signature</source>
<translation> Manifest 摘要与包签名不一致</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "375" />
2026-07-14 01:37:06 +00:00
<source> The offline manifest is invalid</source>
<translation> 离线 Manifest 无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "378" />
2026-07-14 01:37:06 +00:00
<source> Package information does not match manifest identity</source>
<translation> 包信息与 Manifest 身份不一致</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "379" />
2026-07-14 01:37:06 +00:00
<source> The offline manifest RSA signature is invalid</source>
<translation> 离线 Manifest RSA 签名无效</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "385" />
2026-07-14 01:37:06 +00:00
<source> The offline package contains an unsafe path or out-of-range data: %1</source>
<translation> 离线包包含不安全路径或越界数据:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "388" />
2026-07-14 01:37:06 +00:00
<source> Cannot prepare offline file: %1</source>
<translation> 无法准备离线文件:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "389" />
2026-07-14 01:37:06 +00:00
<source> Cannot create staged file: %1</source>
<translation> 无法创建暂存文件:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "391" />
2026-07-14 01:37:06 +00:00
<source> Failed to read offline file: %1</source>
<translation> 离线文件读取失败:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "392" />
2026-07-14 01:37:06 +00:00
<source> Offline file hash verification or write failed: %1</source>
<translation> 离线文件 Hash 或写入失败:%1</translation>
</message>
<message>
2026-07-16 08:14:51 +00:00
<location filename= "../Updater/UpdaterLogic.cpp" line= "394" />
2026-07-14 01:37:06 +00:00
<source> The offline package file count does not match the manifest</source>
<translation> 离线包文件数量与 Manifest 不一致</translation>
</message>
</context>
</TS>