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. 让我们打开阿拉伯语界面看看。
相关推荐
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超4 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int4 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
慧都小项4 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
CoderYanger5 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读5 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie5 天前
Linux进程控制四大核心操作
linux·开发语言