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. 让我们打开阿拉伯语界面看看。
相关推荐
u0109272715 小时前
C++中的RAII技术深入
开发语言·c++·算法
superman超哥6 小时前
Serde 性能优化的终极武器
开发语言·rust·编程语言·rust serde·serde性能优化·rust开发工具
誰能久伴不乏6 小时前
【Qt实战】工业级多线程串口通信:从底层协议设计到完美收发闭环
linux·c++·qt
一个响当当的名号6 小时前
lectrue9 索引并发控制
java·开发语言·数据库
2401_832131956 小时前
模板错误消息优化
开发语言·c++·算法
进阶小白猿6 小时前
Java技术八股学习Day30
java·开发语言·学习
liu****6 小时前
4.Qt窗口开发全解析:菜单栏、工具栏、状态栏及对话框实战
数据库·c++·qt·系统架构
lead520lyq6 小时前
Golang本地内存缓存
开发语言·缓存·golang
zhaotiannuo_19986 小时前
Python之2.7.9-3.9.1-3.14.2共存
开发语言·python
2601_949868366 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 主入口实现
开发语言·javascript·flutter