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. 让我们打开阿拉伯语界面看看。
相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner1 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz6 天前
QML Hello World 入门示例
qt
xcyxiner9 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner10 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner10 天前
DicomViewer (添加模型类)3
qt
xcyxiner11 天前
DicomViewer (目录调整) 2
qt
xcyxiner11 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
一线大码12 天前
Smart-Doc 的简单使用
java·后端·restful
LDR00613 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言