首页 > 其他分享 >CMake如何使用lupdate和lrelease生成多国语言包qm

CMake如何使用lupdate和lrelease生成多国语言包qm

时间:2024-04-09 16:36:28浏览次数:14  
标签:LANGUAGES CMake XXX TRANSLATIONS ts lupdate 语言包 DIRECTORY qm

因为是刚开始学习QT,最近的一个项目,需要支持多国语言,即中、英、俄,以下是两种实现方式:

方法一:

#多语言批处理
execute_process(
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
COMMAND "${LUPDATE_EXECUTABLE}" -recursive ./ -ts
"${LANGUAGES_DIRECTORY}/XXX_zh_CN.ts"
"${LANGUAGES_DIRECTORY}/XXX_en.ts"
"${LANGUAGES_DIRECTORY}/XXX_ru.ts"

COMMAND "${LRELEASE_EXECUTABLE}"
"${LANGUAGES_DIRECTORY}/XXX_zh_CN.ts" "${TRANSLATIONS_DIRECTORY}/XXX_zh_CN.qm"
"${LANGUAGES_DIRECTORY}/XXX_en.ts" "${TRANSLATIONS_DIRECTORY}/XXX_en.qm"
"${LANGUAGES_DIRECTORY}/XXX_ru.ts" "${TRANSLATIONS_DIRECTORY}/XXX_ru.qm"
)

 

方法二:

#多语言批处理
set (Langs zh_CN en_US ru_RU)
set (LUPDATE "${CMAKE_PREFIX_PATH}/bin/lupdate.exe")
set (LRELEASE "${CMAKE_PREFIX_PATH}/bin/lrelease.exe")
foreach(l ${Langs})
set (lname "${PROJECT_NAME}_${l}")
execute_process(COMMAND "${LUPDATE}" ./ -ts "${LANGUAGES_DIRECTORY}/${lname}.ts"
COMMAND "${LRELEASE}" "${lname}.ts" -qm "${TRANSLATIONS_DIRECTORY}/${lname}.qm"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
endforeach()

 

第二种方法只需要维护Langs就可以啦!

 

标签:LANGUAGES,CMake,XXX,TRANSLATIONS,ts,lupdate,语言包,DIRECTORY,qm
From: https://www.cnblogs.com/kuaixue/p/18124255

相关文章

  • 学习记录:bazel和cmake运行终端指令
    Bazel和CMake都是用于构建软件项目的工具,但它们之间有一些重要的区别和特点:Bazel:Bazel是由Google开发的构建和测试工具,用于构建大规模的软件项目。它采用一种称为“基于规则”的构建系统,它利用构建规则和依赖关系来自动化构建过程。Bazel支持多种编程语言,包括C++、Java、......
  • Linux上CMAKE的使用
    Linux上CMAKE的使用简单使用格式如下:cmake_minimum_required(VERSION3.0)#最低版本3.0project(main)#项目名称#配置编译器set(CMAKE_CXX_FLAGS${CMAKE_CXX_FLAGS}-g)#配置头文件搜索路径#include_directories()#配置库文件搜索路径#link_directories()#......
  • Cmake的安装和配置
    进入Indexof/files/v3.20(cmake.org)下载想要的版本 将安装包解压到想要的文件夹下,复制文件夹下bin目录的路径打开系统变量,将刚刚复制的路径添加进去 最后用Windows+R快捷键打开cmd命令窗口输入cmake-version出现如下的版本号则配置成功 ......
  • 编译opencv: cmake编译opencv,不带版本号
    在Linux上使用cmake编译OpenCV,默认都是协议版本号的,一般会生成三个文件,一个so和两个软链接。在部分系统上移植的时候,软链接会成问题,所以需要重新编译OpenCV,解决软链接的问题。 我是使用cmake编译的,所以需要修改【OpenCVModule.cmake】文件文件位置:【opencv-4.8.0】-【cmake......
  • 使用cmake组织QML工程代码
    使用cmake组织c++代码,一般的流程大概是:       1、创建一个可执行文件A       2、设置A需要的源文件       3、设置A的编译源文件时用到的头文件路径       4、设置A依赖的动态库或静态库       5、设置编译选项       ......
  • CMakeLists_find_package以及C++基本语法
    命令catkin_make等效于以下指令:cd~/catkin_wscdsrccatkin_init_workspacecd..mkdirbuildcdbuildcmake../src-DCMAKE_INSTALL_PREFIX=../install-DCATKIN_DEVEL_PREFIX=../devel命令cmake与makeinstall-DCMAKE_BUILD_TYPE=:releasedebug-DCMAK......
  • 【CMake】CMake从入门到实战系列(三)——CMake常用指令
    文章目录一、out-of-source构建二、指令详解1、add_library【1】基本语法【2】参数含义【3】示例2、target_link_libraries【1】基本语法【2】参数含义【3】示例3、link_directories【1】基本语法【2】参数含义【3】示例4、include_directories【1】基本语法【2】参......
  • 【linux】Centos7 手动编译安装 cmake-3.28.4
    简介1、移除原来的cmake版本yumremovecmake-y2、下载cmake-3.28.4.tar.gz安装包并解压wgethttps://cmake.org/files/v31、移除老版本cmake版本并安装依赖包yumremovecmake-y;yuminstall-ygccgcc-c++makeautomakeopensslopenssl-devel2、下载cmake-3.7.2.tar.gz......
  • cmake之find_library使用问题
    附上工程源码demo工程PS:这个工程用于导出库CMakeLists.txtcmake_minimum_required(VERSION3.5)project(demoLANGUAGESCXX)set(CMAKE_INCLUDE_CURRENT_DIRON)set(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDON)add_library(demoSHAREDdemo.cpp......
  • QMake和CMake
     区别和相同点       qmake和cmake两者都用来构建系统,都生成一个Makefile,该文件由make读取以构建项目,告诉编译器和链接器该做什么,以创建可执行文件(或动态或静态库)。       qmake专注于使用Qt的项目,QtCreator可以轻松生成项目文件(适合初学者),并由QtCreator支......