Qt CMake 國際化相關配置

文章目錄

    • 更新ts文件
    • 發布ts文件

本來用qmake使用pro文件很簡單的一件事,結果用cmake折騰了半天。
何必呢~

參考:QT6.3 CMake 多語言切換

這是我的

cmake_minimum_required(VERSION 3.16)project(testQml3_6 VERSION 0.1 LANGUAGES CXX)set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(Qt6 6.2 COMPONENTS Quick REQUIRED LinguistTools)set(OUR_TS_FILES testQml3_6_zh_CN.ts testQml3_6_de.ts)qt_add_executable(apptestQml3_6main.cpp${OUR_TS_FILES}
)qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${OUR_TS_FILES})qt_add_qml_module(apptestQml3_6URI testQml3_6VERSION 1.0QML_FILES main.qml 
)qt_add_lupdate(apptestQml3_6 TS_FILES ${OUR_TS_FILES})
qt_add_lrelease(apptestQml3_6TS_FILES ${OUR_TS_FILES}QM_FILES_OUTPUT_VARIABLE qm_files)
qt_add_resources(apptestQml3_6 "translations"PREFIX "/"BASE "${CMAKE_CURRENT_BINARY_DIR}"FILES "${QM_FILES}")set_target_properties(apptestQml3_6 PROPERTIESMACOSX_BUNDLE_GUI_IDENTIFIER my.example.comMACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}MACOSX_BUNDLE TRUEWIN32_EXECUTABLE TRUE
)target_link_libraries(apptestQml3_6PRIVATE Qt6::Quick)install(TARGETS apptestQml3_6BUNDLE DESTINATION .LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

在這里插入圖片描述

要改四個地方
1, 添加 LinguistTools
2,添加ts文件的包含
3,創建ts文件
4,將生成的翻譯好的 qm 文件放到資源目錄下

#include <QGuiApplication>
#include <QQmlApplicationEngine>#include <QLocale>
#include <QTranslator>int main(int argc, char *argv[])
{QGuiApplication app(argc, argv);QTranslator translator;const QStringList uiLanguages = QLocale::system().uiLanguages();for (const QString &locale : uiLanguages) {const QString baseName = "testQml3_6_" + QLocale(locale).name();
//        if (translator.load(":/i18n/" + baseName)) {
//            app.installTranslator(&translator);
//            break;
//        }if (translator.load(":/" + baseName)) {app.installTranslator(&translator);break;}}QQmlApplicationEngine engine;const QUrl url(u"qrc:/testQml3_6/main.qml"_qs);QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);QString t_str = QObject::tr("hello4");return app.exec();
}

項目多執行幾次Cmake和構建,不然可能刷新不好。

更新ts文件

就是將代碼中 tr(“xxxx”) 、qsTr(“yyyyy”) 更新到ts文件中。
在這里插入圖片描述

發布ts文件

就是將ts文件生成對應的qm文件。
直接從Qt Creator中是發布不了的,應該是bug吧。(菜單欄: Tools>External>Linguist>ReleaseTranslations)

提示:
在這里插入圖片描述
(在網上也沒搜到原因)

兩種方法:
1,通過命令行

lrelease testQml3_6_zh_CN.ts

在這里插入圖片描述
2,在項目上右擊選擇"構建“”
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716883.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

06.QT信號和槽-1

一、信號和槽概述 在Qt中&#xff0c;用戶和控件的每次交互過程稱為一個事件。比如"用戶點擊按鈕"是一個事件&#xff0c;"用戶關閉窗口"也是一個事件。每個事件都會發出一個信號&#xff0c;例如用戶點擊按鈕會發出"按鈕被點擊"的信號&#xff…

Java練習(第5天)【總結】在字符串中尋找特定的字符(5種方法)

問題描述&#xff1a;在字符串中尋找特定字符 1、第1次出現位置 實現函數原型&#xff1a; int indexOf(char c) Java代碼&#xff1a; import java.io.*; public class Way_1 {public static void main(String args[]){String str "Geeks for Geeks is a computer s…

疲勞駕駛監測報警攝像機

疲勞駕駛是導致交通事故的重要原因之一&#xff0c;為了提高駕駛安全性&#xff0c;科技日新月異&#xff0c;疲勞駕駛監測報警攝像機因其先進的技術而成為關注焦點。 疲勞駕駛監測報警攝像機采用先進的人臉識別技術和人工智能算法&#xff0c;能夠實時監測駕駛員的狀態。通過對…

基于Python淘寶水果銷售數據可視化系統設計與實現(Django框架) 研究背景與意義、國內外研究現狀

博主介紹&#xff1a;黃菊華老師《Vue.js入門與商城開發實戰》《微信小程序商城開發》圖書作者&#xff0c;CSDN博客專家&#xff0c;在線教育專家&#xff0c;CSDN鉆石講師&#xff1b;專注大學生畢業設計教育和輔導。 所有項目都配有從入門到精通的基礎知識視頻課程&#xff…

文件操作和IO(2):Java中操作文件

目錄 一、File的屬性 二、File的構造方法 三、File的方法 四、代碼示例 1、getName&#xff0c;getParent&#xff0c;getPath方法 2、getAbsolutePath&#xff0c;getCanonicalPath方法 3、exists&#xff0c;isDirectory&#xff0c;createNewFile方法 4、createNewF…

龍蜥 Anolis OS8.4 設置IP

1、配置文件路徑 /etc/sysconfig/network-scripts/ [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ [rootlocalhost network-scripts]# ls ifcfg-ens32 進入配置文件路徑后&#xff0c;展示。ifcfg-ens32這個不同的服務器不一樣&#xff0c;本次虛擬機所對應的是ens3…

掌握AI文本生成的關鍵:深入解析Prompt、Token和Completions

在當今時代&#xff0c;人工智能&#xff08;AI&#xff09;技術的迅速發展已經成為我們生活和工作中不可或缺的一部分。特別是在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;生成式AI技術&#xff0c;如GPT-4和ChatGPT等&#xff0c;已經成為熱點。為了更好地理解…

2. vue 工程創建

1. 基于 vite創建 官方文檔: https://v3.cn.vuejs.org/guide/installation.html#vite vite官網: https://vitejs.cn 使用vite創建的優勢&#xff1a; 開發環境中&#xff0c;無需打包操作&#xff0c;可快速的冷啟動。輕量快速的熱重載(HMR)。真正的按需編譯&#xff0c;不再…

CSS列表屬性

CSS列表屬性 列表相關的屬性&#xff0c;可以作用在 ul、ol、li 元素上。 代碼如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>列表相關屬性</title><style>ul {/* …

牛客網C++專項題目整理(1)

1. 若有定義語句:char s[3][10],(*k)[3],*p;則以下賦值語句錯誤的是 1.p s; 2.p k; 3.p s[0]; 4.k s; 答案&#xff1a;124 char s[3][10] s 是數組指針&#xff0c;類型為char (*)[3]&#xff0c;所指向的每個數組長度為10; char (*k)[3] k是一個數組指針&a…

國內哪個工具可以平替chatgpt?國內有哪些比較好用的大模型gpt?

我自己試用了很多的平臺&#xff0c;發現三個比較好的大模型平臺&#xff0c;對普通用戶也比較的友好的&#xff0c;而且返回內容相對來說&#xff0c;正確率更高的&#xff0c;并且相關場景插件比較豐富的國內廠商。 本文說的&#xff0c;是我自己覺得的&#xff0c;比較有主觀…

拆幀神器:深度解讀Netty中的DelimiterBasedFrameDecoder()

歡迎來到我的博客&#xff0c;代碼的世界里&#xff0c;每一行都是一個故事 拆幀神器&#xff1a;深度解讀Netty中的DelimiterBasedFrameDecoder 前言基礎概念分隔符的配置與選擇幀的拆分與重組幀的拆分過程&#xff1a;處理分隔符位于幀中間的情況&#xff1a; 處理半包與粘包…

AI時代,我們需要什么能力?

AI 時代&#xff0c;一定會重構很多行業&#xff0c;也會重構人民的生活工作方式&#xff0c;那么 AI 時代&#xff0c;我們需要培養什么能力呢&#xff1f; 我們應該去做那些 AI 做不了的事情&#xff01;讓 AI 成為我們的工具&#xff0c;助力我們更高效的解決問題&#xff…

【IO流系列】字符流練習(拷貝、文件加密、修改文件數據)

字符流練習 練習1&#xff1a;文件夾拷貝1.1 需求1.2 代碼實現1.3 輸出結果 練習2&#xff1a;文件加密與解密2.1 需求2.2 代碼實現2.3 輸出結果 練習3&#xff1a;修改文件數據&#xff08;常規方法&#xff09;3.1 需求3.2 代碼實現3.3 輸出結果 練習4&#xff1a;修改文件數…

day14:棧排序

問題描述&#xff1a; 棧排序。 編寫程序&#xff0c;對棧進行排序使最小元素位于棧頂。最多只能使用一個其他的臨時棧存放數據&#xff0c;但不得將元素復制到別的數據結構&#xff08;如數組&#xff09;中。該棧支持如下操作&#xff1a;push、pop、peek 和 isEmpty。當棧…

【MySQL】查詢語句:條件、排序和分頁

基本查詢 MySQL 數據庫使用SELECT語句來查詢數據。 查詢字段 以下為在MySQL數據庫中查詢數據通用的 SELECT 語法&#xff1a; SELECT 字段名,字段名... FROM 表名;選擇全部列 SELECT * FROM emp; -- 查詢所有字段一般情況下&#xff0c;除非需要使用表中所有的字段數據&…

消防主機報故障時發出故障及原因及解決辦法!

本文以青鳥消防JBF-11SF為例。 其他型號或品牌的消防主機也可參考。 開機前&#xff0c;必須先測量系統接線的絕緣電阻&#xff0c;確保各絕緣電阻滿足以下要求&#xff1a; 1&#xff09;空載時各電路信號線之間的絕緣值應大于5K歐姆。 2&#xff09;正常天氣條件下&#x…

Java SE:反射

反射作用 獲取字節碼文件里面的所有信息&#xff0c;包括構造方法、成員、成員方法&#xff0c;以及修飾他們的修飾符、類型和方法的返回值等等&#xff0c;只要是類里面的內容都能獲取&#xff0c;獲取之后可以動態的調用方法&#xff0c;動態的創建對象 獲取類字節碼文件對象…

2024全國水科技大會暨新材料在水污染防治中的應用論壇(十)

召集人&#xff1a;唐 量 上海大學環境與化學工程學院教授 莊贊勇 福州大學材料科學與工程學院教授 一、會議背景 為積極應對“十四五”期間我國生態環境治理面臨的挑戰&#xff0c;加快生態環境科技創新&#xff0c;構建綠色技術創新體系&#xff0c;全面落實科學技術部、生…

創建hadoop集群

分布式hadoop集群分布 服務器功能規劃 node-1&#xff1a;namenode,datanode,nodemanager,historyserver node-2&#xff1a;resourcemanage,datanode,nodemanager node-3&#xff1a;datanode&#xff0c;nodemanager&#xff0c;secondarynamenode #在node-1上 $ bin/hdfs …