客户端国际化说明
================

本目录保存 Qt 国际化资源。

文件说明：

1. update-client_zh_CN.ts
   翻译源文件。新增或修改代码里的 tr() 文案后，需要更新这个文件，再补中文翻译。

2. update-client_zh_CN.qm
   Qt 运行时加载的二进制翻译文件。它由 .ts 编译生成，不要手工编辑。

3. update-client.qrc
   Qt 资源文件。它会把 update-client_zh_CN.qm 编进 Launcher / Updater / MainApp，不需要把 .qm 单独暴露到安装目录。


日常编译
========

普通重新生成项目时，CMake 会自动执行 lrelease，把 update-client_zh_CN.ts 编译成 update-client_zh_CN.qm。

Visual Studio 里直接选择 x64 Release 或 x64 Debug，然后“全部重新生成”即可。

命令行等价操作：

```powershell
cmake --build --preset x64-release
```


新增界面文字后的流程
====================

如果代码里新增了 QObject::tr(...)、QCoreApplication::translate(...) 等需要翻译的文字，按下面步骤操作：

1. 更新 .ts 文件。

   Visual Studio：

   在 CMake 目标里生成 update_client_lupdate。

   PowerShell：

   ```powershell
   cd C:\Users\admin\Desktop\update-client
   cmake --build --preset x64-release --target update_client_lupdate
   ```

2. 打开 i18n/update-client_zh_CN.ts，补齐新增 source 对应的 translation。

   可以用 Qt Linguist 打开，也可以直接用文本编辑器编辑 XML。

3. 重新生成翻译和程序。

   Visual Studio：

   “全部重新生成”即可。

   PowerShell：

   ```powershell
   cmake --build --preset x64-release
   ```

   如果只想单独生成 .qm：

   ```powershell
   cmake --build --preset x64-release --target update_client_translations
   ```


注意事项
========

1. 代码里不要直接写中文界面文字，统一写英文 source，再在 .ts 里翻译成中文。
2. .qm 已经通过 update-client.qrc 编进 exe，交付包里不需要单独放翻译文件。
3. 如果 Visual Studio 或 CMake 找不到 lupdate / lrelease，通常是 Qt 环境变量没配好。确认 CMAKE_PREFIX_PATH 或 Qt5_DIR 指向 Qt 5.15.2 的 msvc2019_64 目录。
4. update_client_lupdate 只在新增或修改 tr() 文案后需要手动生成；普通代码修改只需要正常重新生成项目。
