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:
@@ -0,0 +1,53 @@
|
||||
#include "TranslationHelper.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
|
||||
namespace
|
||||
{
|
||||
constexpr auto kSimplifiedChineseCatalog =
|
||||
":/simcae/update-client/i18n/update-client_zh_CN.qm";
|
||||
constexpr auto kQtSimplifiedChineseCatalog = "translations/qt_zh_CN.qm";
|
||||
|
||||
bool usesSimplifiedChinese(const QLocale& locale)
|
||||
{
|
||||
if (locale.language() != QLocale::Chinese ||
|
||||
locale.script() == QLocale::TraditionalHanScript)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return locale.script() == QLocale::SimplifiedHanScript ||
|
||||
locale.country() == QLocale::China ||
|
||||
locale.country() == QLocale::Singapore;
|
||||
}
|
||||
}
|
||||
|
||||
TranslationHelper::TranslationHelper()
|
||||
{
|
||||
m_simplifiedChineseCatalog.load(
|
||||
QString::fromLatin1(kSimplifiedChineseCatalog));
|
||||
}
|
||||
|
||||
bool TranslationHelper::installForSystemLocale()
|
||||
{
|
||||
if (!usesSimplifiedChinese(QLocale::system()) ||
|
||||
m_simplifiedChineseCatalog.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
const QString qtCatalogPath = QDir(QCoreApplication::applicationDirPath())
|
||||
.filePath(QString::fromLatin1(
|
||||
kQtSimplifiedChineseCatalog));
|
||||
if (m_qtSimplifiedChineseCatalog.load(qtCatalogPath))
|
||||
QCoreApplication::installTranslator(&m_qtSimplifiedChineseCatalog);
|
||||
|
||||
return QCoreApplication::installTranslator(&m_simplifiedChineseCatalog);
|
||||
}
|
||||
|
||||
QString TranslationHelper::translate(const char* context,
|
||||
const char* sourceText) const
|
||||
{
|
||||
return m_simplifiedChineseCatalog.translate(context, sourceText);
|
||||
}
|
||||
Reference in New Issue
Block a user