qt语言家一键更新或发布多个模块且多个国家的语言

VMS快速发布qm文件教程

  • 前言

想必大家都知道,只有一两个国家语言的话,大家直接右键更新发布即可。但是当我们一个项目下面有二十个小模块,每个模块下面又有30个国家语言的ts文件。想要将所有的ts文件发布到对应的国家的文件夹下。比如,我想要将阿拉伯语发布在ar文件夹下,将中文发布在zh-cn文件夹下面。那我们需要点击更新发布无数次。如果能够在点击生成解决方案的时候,就能够把所有模块的ts文件更新或者是发布到对应的文件夹下,那将会十分方便。于是进行了以下的研究。

二、前提配置

  1. 整个项目模块的配置,必须是Disabled.

原因:

(1)选择更新的话,会导致,每次编译代码都更新ts文件。当我们写完功能提交代码时,许多的xxx.ts文件掺杂在我们修改的文件中,使我们提交代码时候需要一个个去勾选掉,难以区分

(2)选择发布的话,会导致,每次编译代码都发布qm文件。如果很多国家或者很多模块在输出界面会跑很久

2.单独的ts文件的配置

(1)General项不用手动去改,不用管,它默认都是跟随父项配置。即:项目模块的配置Disabled的话他就是Disabled,项目模块配置的lupdate那它就是lupdate。

(2)lrelease文件的Ottput File Name配置发布的位置如图所示。ar.ts则是$(SolutionDir)bin\model_plugins\qm\ar文件夹,cs.ts则是cs文件夹,等等以此类推(此位置是不进行上传代码的位置,此处发布的qm文件,当项目清理解决方案的时候会被清理掉,我们不用管)

三、原理及原因

  1. 原理

启动项SmartVms生成后的事件,配置了代码。

解读代码:

setlocal EnableDelayedExpansion

for %%L in (

ar bg cs da de el en es es419 fi fr he hu id it ja ko

nl no pl pt ro ru sl sr sv th tr uk vi zh-cn zh-tw

) do (

set SRC=$(SolutionDir)bin\model_plugins\qm\%%L

set DST=$(SolutionDir)bin\Config\%%L

if exist "!SRC!\*.qm" (

if not exist "!DST!" mkdir "!DST!"

xcopy "!SRC!\*.qm" "!DST!\" /Y /Q >nul

)

)

此代码是指的,生成文件后,会将$(SolutionDir)bin\model_plugins\qm\ar

文件夹里生成的文件(前提配置中的第二条中配的qm生成地址)复制拷贝到bin\Config\ar下面。以此类推,for是写了32个国家不同语言的文件夹,从项目自动生成的文件夹目录:(SolutionDir)bin\model_plugins\qm这里拷贝到对应的bin\Config下面。

  1. 原因

前提配置中的第二条中配的qm生成地址不直接写成bin\Config的原因是,每当项目清理项目资源或者是重新生成解决方案的时候,qt会删除掉自己生成的文件。若是直接写成bin\Config那么当程序员重新生成解决方案后,再此提交代码,会发现很多qm文件被清理删除掉了。所以qm文件生成在(SolutionDir)bin\model_plugins\qm下面,然后再拷贝到想要发布的位置,这样避免清理时候发布位置qm文件被清理。

  1. 以后

以后想要增加一个国家的语言,则在for里面增加一个对应的文件夹。在生成前的事情代码里也加一个文件夹。在bin\Config下面也加一个对应的。

四、快速更新ts文件的方法

  1. 比如更改某个tr()内容
  1. 项目模块:右键------属性------。如图所示,应用后,其项目下的所有xxxx_xx.ts文件属性都会变成lupdate。
  1. 项目模块右键------生成。或者,点击整个项目右键生成解决方案。会发现ts文件全部更新了。

此时程序员就可以去双击打开ts文件填写自己想要写的对应的翻译等。如图给翻译添加上2222。写完翻译关闭ts文件的时候记得保存!!!

五、快速发布qm文件的方法

1.先清理解决方案,目的是清理掉之前文件,避免不生成qm 文件

2.项目模块:右键------属性------。如图所示,应用后,其项目下的所有xxxx_xx.ts文件属性都会变成lrelease。

  1. 项目模块右键------生成解决方案。会发现,bin\config文件夹下面的qm文件更新了。

六、提交代码注意!!!

1.一定要把项目模块的配置恢复成第一步的前提配置的样子。原因在前提配置中已经叙述。

如图可以看到我的ts文件和qm文件均已更新。

  1. 让我们打开阿拉伯语界面看看。
相关推荐
SmartRadio8 小时前
CH585M+MK8000、DW1000 (UWB)+W25Q16的低功耗室内定位设计
c语言·开发语言·uwb
rfidunion8 小时前
QT5.7.0编译移植
开发语言·qt
rit84324998 小时前
MATLAB对组合巴克码抗干扰仿真的实现方案
开发语言·matlab
大、男人9 小时前
python之asynccontextmanager学习
开发语言·python·学习
hqwest9 小时前
码上通QT实战08--导航按钮切换界面
开发语言·qt·slot·信号与槽·connect·signals·emit
一只小bit9 小时前
Qt 常用控件详解:按钮类 / 显示类 / 输入类属性、信号与实战示例
前端·c++·qt·gui
AC赳赳老秦9 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
不知道累,只知道类10 小时前
深入理解 Java 虚拟线程 (Project Loom)
java·开发语言
国强_dev10 小时前
Python 的“非直接原因”报错
开发语言·python
YMatrix 官方技术社区10 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix