feat(hardening): 内嵌产品配置 + 系统级状态 + 全量 i18n + 依赖治理 + 资料清理

update-client-hardening 四工作流合入(构建/静态检查已过):

- 配置:不可变产品策略经 UpdateClientResources.cmake 归一化校验后
  内嵌 qrc(URL/相对路径/主程序必须落 install_root/版本/UUID 格式,
  CMake override 写入前复验);可变机器状态迁系统级原生存储;
  运行目录不再落可编辑 app_config.json。
- i18n:生产源全英文(no-Han 检查 41/41),中文进 translations/
  zh_CN 目录;翻译加载收敛 Common/TranslationHelper 唯一入口;
  Bootstrap 补资源文件。
- 依赖:Qt/OpenSSL/架构/Perl 机器路径改 imported targets +
  UpdateClientDependencies.cmake,3rdparty 由父工程契约供给。
- 清理:旧 README/SDK README/3 个重复 PowerShell 打包脚本/PDF 提取
  文本删除,canonical README + 5 份结构化英文文档替代;Launcher
  requireAdministrator manifest;统一 MSVC /utf-8 删运行时编码设置。
This commit is contained in:
Comely
2026-07-10 00:38:23 -07:00
parent b06e003502
commit fe5aa5bbf0
45 changed files with 5033 additions and 4083 deletions
+11 -11
View File
@@ -12,10 +12,10 @@ static QString readDllVersion(const QString& dllPath)
{
QFile file(dllPath);
if (!file.exists())
return "missing";
return QCoreApplication::translate("MainWindow", "missing");
if (!file.open(QIODevice::ReadOnly))
return "unreadable";
return QCoreApplication::translate("MainWindow", "unreadable");
QByteArray data = file.read(1024);
file.close();
@@ -25,12 +25,12 @@ static QString readDllVersion(const QString& dllPath)
MainWindow::MainWindow(QWidget* parent)
: QWidget(parent)
{
this->setWindowTitle("Marsco Demo MainApp");
this->setWindowTitle(tr("Marsco Demo MainApp"));
this->resize(600, 400);
QString appVersion = ConfigHelper::instance().getValue("App", "current_version");
if (appVersion.isEmpty())
appVersion = "unknown";
appVersion = tr("unknown");
QString dllVersion = readDllVersion(QApplication::applicationDirPath() + "/plugins/demo_plugin.dll");
@@ -38,27 +38,27 @@ MainWindow::MainWindow(QWidget* parent)
QString policyResult;
if (!policy.loadPolicy("config/version_policy.dat"))
{
policyResult = "policy missing";
policyResult = tr("policy missing");
}
else if (!policy.isValid())
{
policyResult = "policy invalid";
policyResult = tr("policy invalid");
}
else if (!policy.isVersionAllowed(appVersion))
{
policyResult = "version disabled";
policyResult = tr("version disabled");
}
else if (policy.isExpired())
{
policyResult = "policy expired";
policyResult = tr("policy expired");
}
else
{
policyResult = "policy ok";
policyResult = tr("policy ok");
}
QVBoxLayout* layout = new QVBoxLayout(this);
QLabel* label = new QLabel(QString("Software Running Successfully\nVersion: %1\nDLL Version: %2\nPolicy: %3")
QLabel* label = new QLabel(tr("Software Running Successfully\nVersion: %1\nDLL Version: %2\nPolicy: %3")
.arg(appVersion)
.arg(dllVersion)
.arg(policyResult));
@@ -69,4 +69,4 @@ MainWindow::MainWindow(QWidget* parent)
layout->addWidget(label);
this->setLayout(layout);
}
}