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. 让我们打开阿拉伯语界面看看。
相关推荐
MSTcheng.2 小时前
【C++】set / multiset 保姆级教程:从底层原理到实战应用!
开发语言·c++·set
历程里程碑2 小时前
C++ 16:C++11新特化
c语言·开发语言·数据结构·c++·经验分享
巴拉巴拉~~2 小时前
KMP 算法通用步进器组件:KmpStepperWidget 横向 / 纵向 + 匹配进度 + 全样式自定义
java·服务器·开发语言
weixin_307779132 小时前
赋能插件,驱动图表:Jenkins ECharts API插件详解
运维·开发语言·自动化·jenkins·echarts
IMPYLH2 小时前
Lua 的 Math(数学) 模块
开发语言·笔记·lua
kaikaile19952 小时前
雷达仿真中时域与频域脉冲压缩的对比 MATLAB实现
开发语言·matlab
胡闹542 小时前
【EasyExcel】字段赋值错乱问题
java·开发语言
独自归家的兔2 小时前
基于GUI-PLUS 搭配 Java Robot 实现智能桌面操控
java·开发语言·人工智能
ew452182 小时前
【JAVA】实现word的DOCX/DOC文档内容替换、套打、支持表格内容替换。
java·开发语言·word