老司机91精品网站在线观看_久久69精品久久久久久hb_成人欧美在线观看_免费一级日本c片完整版

首頁>觀點 > 正文

使用 Qt Quick 進行國際化和本地化 當前滾動

2023-06-28 03:37:24    出處:QT教程

Qt Quick是一個基于QML語言的用戶界面框架,旨在幫助開發人員更輕松地創建現代,流暢和高度可定制的用戶界面。它是Qt框架中的一個重要組成部分,通過將界面設計與業務邏輯分離,提高了開發效率和代碼可維護性。Qt Quick提供了豐富的組件庫和動畫效果,使得開發者可以在不需要編寫大量代碼的情況下快速構建漂亮的用戶界面。同時,Qt Quick還支持跨平臺開發,可以在多個平臺上運行,包括桌面,移動設備和嵌入式系統。


(資料圖片僅供參考)

以下部分描述了國際化 QML 源代碼的各個方面。如果應用程序中的所有用戶界面組件都遵循這些指南,則可以針對不同的語言和當地文化習俗(例如日期和數字的格式化方式)本地化應用程序的各個方面。

、對所有文字用戶界面字符串使用 qsTr()

QML 中的字符串可以使用 qsTr()、qsTranslate()、qsTrId()、QT_TR_NOOP()、QT_TRANSLATE_NOOP() 和 QT_TRID_NOOP() 函數標記為翻譯。標記字符串的最常用方法是使用 qsTr() 函數。例如:

Text{id: txt1;text: qsTr("Back");}

此代碼使“Back”成為翻譯文件中的關鍵條目。在運行時,翻譯系統查找關鍵字“Back”,然后獲取當前系統語言環境對應的翻譯值。結果返回到 text 屬性,用戶界面將顯示當前語言環境的“Back”的適當翻譯。

、為翻譯器添加上下文

用戶界面字符串通常很短,因此需要幫助翻譯文本的人理解文本的上下文。可以在源代碼中添加上下文信息作為要翻譯的字符串的額外描述性文本。這些額外的描述包含在交付給翻譯人員的 .ts 翻譯文件中。

.ts 文件是帶有源文本和翻譯文本位置的 XML 文件。.ts 文件可轉換為二進制翻譯文件,并作為應用程序的一部分。

Text{id: txt1;// This user interface string is only used here//: The back of the object, not the front//~ Context Not related to back-steppingtext: qsTr("Back");}

在上面代碼片段中:

//: 行上的文本是翻譯器的主要注釋。

//~ 行上的文本是可選的額外信息。文本的第一個單詞用作 .ts 文件中 XML 元素的附加標識符,因此請確保第一個單詞不是句子的一部分。例如,.ts 文件中的注釋“Context Not related to that”被轉換為“Not related to that”。

【領 QT開發教程 學習資料, 點擊下方鏈接莬費領取↓↓ ,先碼住不迷路~】

點擊這里:

、消除相同文本的歧義

翻譯系統將用戶界面文本字符串合并為獨特的項目。這種合并使翻譯工作的人員不必多次翻譯相同的文本。 但是,在某些情況下,文本相同但含義不同。

通過添加一些 id 文本作為 qsTr() 函數的第二個參數來區分相同的文本。

在以下代碼片段中,not front 文本是一個 id,用于區分此“Back”文本與后退“Back”文本:

Text{id: txt1;text: qsTr("Back", "not front");}

、使用 %x 將參數插入字符串

下面的代碼片段有一個帶有兩個數字參數 %1 和 %2 的字符串。這些參數與 .arg() 函數一起插入。

Text{text: qsTr("File %1 of %2").arg(counter).arg(total)}

%1 指的是第一個參數,%2 指的是第二個參數,此代碼產生的輸出類似于:“File 2 of 3”。

、使用 %Lx 使數字本地化

如果在指定參數時包含 %L 修飾符,則數字將根據當前選擇的語言環境(地理區域)的數字格式約定來格式化。

Text{text: qsTr("%L1").arg(total)}

如果 total 是數字“”,英文區域設置輸出為“4,”;德文區域設置輸出為“,56”。

、國際化日期、時間和貨幣

需要查詢當前的語言環境(地理區域)并使用 Date 的方法來格式化字符串。

() 返回一個 Locale 對象,其中包含有關語言環境的各種信息。特別是, 屬性包含當前語言環境的語言和國家信息。可以對其進行解析以確定當前語言環境的適當內容。

Text{text: qsTr("Date %1").arg(Date().toLocaleString(()))}

上面代碼段使用 Date() 獲取當前日期和時間,然后將其轉換為當前語言環境的字符串。 然后它將日期字符串插入到 %1 參數中以進行適當的轉換。

要確保貨幣數字已本地化,請使用 Number 類型。 此類型具有與 Date 類型類似的功能,用于將數字轉換為本地化的貨幣字符串。

、將 QT_TR_NOOP() 用于可翻譯的數據文本字符串

如果用戶在不重啟的情況下更改系統語言,根據系統的不同,數組和列表模型中的字符串以及其他數據結構可能不會自動刷新。要強制在用戶界面中顯示文本時刷新文本,需要使用 QT_TR_NOOP() 宏聲明字符串。然后,當填充要顯示的對象時,需要明確檢索每個文本的翻譯。

ListModel{id: myListModel;ListElement{//: Capital city of Finlandname: QT_TR_NOOP("Helsinki");}}...Text{text: qsTr((0).name); // 獲取元素 0 中 name 屬性的翻譯}

、使用 Locale 擴展本地化功能

如果想要不同地理區域的不同圖形或音頻,可以使用 () 來獲取當前的語言環境。 然后為該語言環境選擇合適的圖形或音頻。

下面的代碼片段展示了如何選擇一個合適的圖標來代表當前語言環境的語言。

:{switch (().(0,2)){case "en":languageIcon = "../images/language-icon_";break;case "fi":languageIcon = "../images/language-icon_";break;default:languageIcon = "../images/language-icon_";}}

、為動態語言變化做好準備

可以通過使用 QCoreApplication::installTranslator() 和 QCoreApplication::removeTranslator() 添加和刪除翻譯器來更改 Qt 翻譯函數使用的語言。之后可以調用 QQmlEngine::retranslate() 來觸發所有使用翻譯的綁定的刷新。因此,用戶界面將動態切換到新選擇的語言。

或者,也可以將 QEvent::LanguageChange 事件轉發到應用程序的 QQmlEngine 實例或將自己的信號連接到 QQmlEngine::retranslate()。

Qt Quick 應用程序使用與 Qt C++ 應用程序相同的底層本地化系統(lupdate、lrelease 和 .ts 文件)。

.pro 文件中的 SOURCES 變量適用于 C++ 源文件。如果在那里列出 QML 或 JavaScript 源文件,編譯器會嘗試將它們構建為 C++ 文件。可以使用 lupdate_only{...} 條件語句,以便 lupdate 工具看到 .qml 文件,但 C++ 編譯器會忽略它們。

例如,以下 .pro 文件片段指定應用程序中的兩個 .qml 文件。

lupdate_only{SOURCES =  \}

還可以使用通配符匹配來指定 .qml 源文件。搜索不是遞歸的,因此需要在源代碼中指定每個包含用戶界面字符串的目錄:

lupdate_only{SOURCES = *.qml \*.js \content/*.qml \content/*.js}

【領 QT開發教程 學習資料, 點擊下方鏈接莬費領取↓↓ ,先碼住不迷路~】

點擊這里:

關鍵詞:

相關內容

消費
產業
永贏基金范帆:關注AI賦能的消費電子投資機會 環球報資訊 消費電子行業關鍵點就在于“產品創新”,也就是供給創造需求。從上一輪
焦點關注:停息掛賬5大協商步驟 信用卡逾期被起訴了會怎樣? 停息掛賬5大協商步驟信用卡出現逾期情況之后,客戶若想辦理停息掛賬
天天觀天下!全國首艘海陸一體化智能FPSO開啟交付之路 6月26日清晨5時許,全國首艘海陸一體化智能FPSO(浮式生產儲卸油裝置)
焦點快看:「港股異動」萬科企業(02202.HK)漲4.56% 【財華社訊】萬科企業(02202 HK)截至14:25上漲4 56%,現報10 54港元,
基金
老司机91精品网站在线观看_久久69精品久久久久久hb_成人欧美在线观看_免费一级日本c片完整版

      午夜视频在线观看一区二区| 精品国产麻豆免费人成网站| 国产欧美综合色| 亚洲午夜av在线| 成人免费看黄yyy456| 亚洲男同性恋视频| 7777精品伊人久久久大香线蕉完整版| 国产精品欧美久久久久一区二区| 强制捆绑调教一区二区| 久久久久久久电影| 在线免费观看视频一区| 国产欧美日韩另类一区| 久久精品国产亚洲a| 欧美极品xxx| 欧美日韩国产小视频| 亚洲欧美偷拍卡通变态| 国产九色精品成人porny | 91精品国产综合久久婷婷香蕉| 中文字幕一区二区三区av| 国产在线国偷精品产拍免费yy| 国产精品美女久久久久久久久久久 | 日本免费新一区视频| 久久综合九色综合欧美亚洲| 偷拍一区二区三区| 国产精品女同互慰在线看 | 欧美三级资源在线| 亚洲色图欧洲色图婷婷| 国产精品18久久久| 亚洲福利电影网| 日本一区二区电影| 国产精品一区二区免费不卡| 一区二区三区鲁丝不卡| 国产日本一区二区| 国产一区二区三区在线看麻豆| 亚洲免费在线视频一区 二区| 精品国产sm最大网站| 蜜桃av一区二区三区| 亚洲特黄一级片| 久久精品欧美一区二区三区麻豆 | 91蜜桃传媒精品久久久一区二区| 在线免费观看日本一区| 亚洲另类中文字| 91免费国产在线观看| 欧美日韩一区二区三区免费看| 亚洲精品视频观看| 久久免费看少妇高潮| 884aa四虎影成人精品一区| 性欧美疯狂xxxxbbbb| 国产精品久久久久久久久晋中| 精品久久人人做人人爽| 九一九一国产精品| 亚洲精品大片www| 国产精品久久夜| 99久久精品国产导航| 欧美午夜精品久久久| 亚洲成人动漫在线免费观看| 欧美激情中文字幕| 亚洲精品一区二区三区蜜桃下载 | 夜夜嗨av一区二区三区四季av| 久久久影院官网| 日韩欧美高清在线| 国产在线观看一区二区| 一本到一区二区三区| 亚洲成人第一页| 综合网在线视频| 国产精品视频一二三| 久久理论电影网| 久久色在线视频| 成人国产亚洲欧美成人综合网| 欧美电影在哪看比较好| 久久精品国产色蜜蜜麻豆| 亚洲成人中文在线| 亚洲国产成人av网| 亚洲乱码日产精品bd| 亚洲天堂2016| 国产精品久久久久久久久免费桃花| 国产亚洲制服色| 99国产精品久久久| 精品美女一区二区三区| 国产白丝精品91爽爽久久| 欧美高清视频在线高清观看mv色露露十八 | 亚洲小说欧美激情另类| 自拍偷拍欧美精品| 国产精品电影一区二区| 中文在线一区二区| 国产精品久久久久永久免费观看| 久久婷婷色综合| 久久久久99精品一区| 91在线云播放| 久久久精品国产99久久精品芒果| 9色porny自拍视频一区二区| 欧美变态凌虐bdsm| hitomi一区二区三区精品| 欧美精品一区二区三区久久久 | 欧美成人艳星乳罩| 99视频精品免费视频| 久久综合999| 久久久久久久国产精品影院| 国产调教视频一区| 国产精品婷婷午夜在线观看| 国产精品电影院| 亚洲少妇30p| 亚洲成a人在线观看| 色噜噜狠狠色综合中国| 美女精品一区二区| 欧美日韩国产高清一区二区| 国产激情一区二区三区桃花岛亚洲| 欧美一区二区三区啪啪| 成人理论电影网| www激情久久| 国产目拍亚洲精品99久久精品| 国产精品久久久久aaaa| 亚洲欧洲精品成人久久奇米网| 亚洲黄色在线视频| 亚洲18女电影在线观看| 男女男精品网站| 欧美日韩精品一区视频| 国产99精品国产| 国产人成一区二区三区影院| 中文字幕一区二区在线播放| 亚洲精品成a人| 五月天激情综合| 国产一区二区三区黄视频| 日韩欧美国产综合一区 | 国产女主播一区| 成人欧美一区二区三区视频网页| 亚洲高清三级视频| 欧美色图免费看| yourporn久久国产精品| 欧美韩国日本不卡| 亚洲精品videosex极品| 日韩二区三区四区| 7777精品伊人久久久大香线蕉| 91视频www| 亚洲男人天堂av网| 色噜噜狠狠成人中文综合 | 日韩精品一区二区三区老鸭窝| 国产欧美精品一区aⅴ影院| 一区二区三区国产豹纹内裤在线 | 久久精品国产99国产精品| 日韩一区二区在线免费观看| 久久精品视频免费| 亚洲国产视频a| 欧美日韩视频在线观看一区二区三区| av资源网一区| 伊人婷婷欧美激情| 欧美三级韩国三级日本一级| 99视频有精品| 亚洲自拍偷拍欧美| 欧美嫩在线观看| 久久久高清一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 99久久免费视频.com| 亚洲老司机在线| 欧美日韩小视频| 欧美国产综合一区二区| 天天影视网天天综合色在线播放| 欧美高清视频一二三区 | 亚洲人成精品久久久久久| 毛片av一区二区三区| 久久伊99综合婷婷久久伊| 国产精品二区一区二区aⅴ污介绍| 日韩国产一二三区| 精品国产乱码久久久久久久 | 欧美一级二级三级乱码| 中文字幕亚洲一区二区va在线| 久久99日本精品| 中日韩av电影| 日本韩国一区二区| 久久久精品国产99久久精品芒果| 天堂午夜影视日韩欧美一区二区| 欧美成人在线直播| 艳妇臀荡乳欲伦亚洲一区| 粉嫩在线一区二区三区视频| 亚洲美女免费视频| 欧美一级专区免费大片| 亚洲视频精选在线| 国产成人av自拍| 亚洲韩国精品一区| 精品国产乱码久久久久久夜甘婷婷| 一区二区三区在线视频免费 | 欧美少妇xxx| 国产精品福利av| 国产成人精品在线看| 亚洲免费观看高清完整版在线| 91精品国产色综合久久ai换脸| 自拍av一区二区三区| 高清不卡一区二区| 午夜精品久久久久久久99水蜜桃| 精品国产3级a| 色综合久久88色综合天天6| 国产亚洲综合av| 精品一区二区三区影院在线午夜| 国产精品美女久久久久久久久久久| 欧美日韩亚洲综合在线| 亚洲丝袜美腿综合| 成人午夜av电影| 日韩黄色免费电影| 国产精品国产自产拍高清av王其 | av中文字幕一区|