vs中C++项目中没有QT(.pro)文件怎么生成翻译ts文件

目录

[使用 CMake 生成翻译文件](#使用 CMake 生成翻译文件)

[1.创建 CMakeLists.txt 文件](#1.创建 CMakeLists.txt 文件)

2.添加翻译生成规则

[3.运行 CMake](#3.运行 CMake)

4.生成翻译文件

使用命令行工具生成翻译文件

[1.运行 lupdate](#1.运行 lupdate)

[2.编辑 .ts 文件](#2.编辑 .ts 文件)

[3.运行 lrelease](#3.运行 lrelease)

网络上说的情况都是一个qt程序在VS中打开,拥有.pro文件的情况,利用扩展QT VS Tools就可以完成,这些方法网上都有就不详细赘述了。参考

VS Qt 使用linguits(Qt语言家)生成.ts的翻译文件并翻译使用的详细过程_qt 翻译家-CSDN博客

但是都没有说没有.pro文件的时候怎么生成翻译,翻译,然后使用翻译。

在使用 Qt 开发时,通常 .pro 文件中会包含项目的配置信息,包括生成翻译文件(.ts 文件)所需的设置。但有时可能遇到没有 .pro 文件的情况,比如在使用 CMake 管理项目时。以下是如何在没有 .pro 文件的情况下生成翻译文件的方法。

使用 CMake 生成翻译文件

如果你的项目使用 CMake,你可以通过以下步骤生成 .ts 文件:

1.创建 CMakeLists.txt 文件

在你的项目根目录下创建或编辑 CMakeLists.txt 文件。

2.添加翻译生成规则

CMakeLists.txt 文件中添加生成翻译文件的规则。例如,假设你有一个名为 MyApp 的项目,你可以添加以下内容:

cpp 复制代码
cmake_minimum_required(VERSION 3.10)
project(MyApp)

find_package(Qt5 REQUIRED COMPONENTS Core LinguistTools)

set(TS_FILES translations/myapp_en.ts translations/myapp_zh.ts)

qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})

add_executable(MyApp main.cpp)
target_link_libraries(MyApp Qt5::Core)

# 将生成的翻译文件添加到构建目标中
add_custom_target(translations DEPENDS ${QM_FILES})

以上配置中,translations/myapp_en.tstranslations/myapp_zh.ts 是你要生成的翻译文件,你可以根据需要添加更多语言。

3.运行 CMake

在项目根目录下运行 cmake 命令生成构建文件。(这里也可以用CMAKE-GUI)

mkdir build

cd build

cmake ..

4.生成翻译文件

在构建目录中运行 make translations 命令生成翻译文件。

make translations

以上是对Cmake熟悉的朋友可以这样操作,还有另外的方法

使用命令行工具生成翻译文件

如果你不使用 CMake 或者想要手动生成翻译文件,你可以使用 lupdate 和 lrelease 命令行工具

(这两个工具是Qt中的

%QT安装目录%\Tools\QtDesignStudio\qt6_design_studio_reduced_version\bin),设置好环境变量可以在命令行中直接使用。

假设你的源代码在 src 目录下,你可以按照以下步骤操作:

1.运行 lupdate

扫描源代码并生成 .ts 文件。

lupdate src -ts translations/myapp_en.ts translations/myapp_zh.ts

2.编辑 .ts 文件

使用 Qt Linguist 工具翻译生成的 .ts 文件。(这里你可以用过QT的语言家工具Linguist编辑你的翻译)

linguist translations/myapp_en.ts linguist translations/myapp_zh.ts

3.运行 lrelease

编译 .ts 文件生成二进制 .qm 文件。

lrelease translations/myapp_en.ts translations/myapp_zh.ts

生成的 .qm 文件可以在你的 Qt 应用程序中使用。

通过这些方法,你可以在没有 .pro 文件的情况下生成翻译文件。

相关推荐
LjQ20406 分钟前
网络爬虫一课一得
开发语言·数据库·python·网络爬虫
你是狒狒吗13 分钟前
TM中,return new TransactionManagerImpl(raf, fc);为什么返回是new了一个新的实例
java·开发语言·数据库
iceslime20 分钟前
旅行商问题(TSP)的 C++ 动态规划解法教学攻略
数据结构·c++·算法·算法设计与分析
勤奋的知更鸟25 分钟前
Java编程之组合模式
java·开发语言·设计模式·组合模式
虾球xz31 分钟前
CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++
开发语言·c++·学习·3d
林鸿群34 分钟前
C#子线程更新主线程UI及委托回调使用示例
开发语言·c#
奥修的灵魂1 小时前
QT进阶之路:带命名空间的自定义控件在Qt设计器与qss中的使用技巧
qt·命名空间
small_wh1te_coder1 小时前
c语言超详细知识点总结 1500行手写源码 持续更新中ing 从25年5月到6月5日
c++·c
SteveDraw3 小时前
C++动态链接库封装,供C#/C++ 等编程语言使用——C++动态链接库概述(总)
开发语言·c++·c#·封装·动态链接库