国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

做競拍網(wǎng)站合法嗎營銷培訓(xùn)視頻課程免費

做競拍網(wǎng)站合法嗎,營銷培訓(xùn)視頻課程免費,人民日報客戶端app,thinkphp5做網(wǎng)站qt中實現(xiàn)多語言功能 原理: 其本質(zhì)就是生成ts文件,然后使用Linguist軟件手工翻譯,再生成qm文件,最后在主程序的開始加載不同的qm文件,實現(xiàn)多語言。 步驟: 修改程序文件 在pro文件中加入說明 TRANSLATI…

qt中實現(xiàn)多語言功能

原理:

其本質(zhì)就是生成ts文件,然后使用Linguist軟件手工翻譯,再生成qm文件,最后在主程序的開始加載不同的qm文件,實現(xiàn)多語言。

步驟:
修改程序文件
在pro文件中加入說明

TRANSLATIONS = lang_English.ts \

???????????????lang_Chinses.ts

目的就在在后面執(zhí)行更新翻譯(lupdate)命令在該目錄位置生成.ts文件。前提條件是:該目錄必須存在,上面的寫法就是會在輸出目錄上生成lang_English.ts和lang_Chinses.ts。

語言文字在程序中說明

為了Qt識別你在程序中需要語言準換的文字,需要將需要轉(zhuǎn)換的文字使用QObject::tr(“…”) 進行標記,否則程序中并不能對其進行識別。如

?label->setText(tr( "Hello World"));

生成ts文件

在Qt的菜單欄之中選擇:工具->外部->Qt預(yù)言家->更新翻譯(lupdate)。這樣在pro設(shè)置的TRANSLATIONS 目錄下生成ts文件

Linguist翻譯ts文件
Windows系統(tǒng)的msvc

點擊電腦開始菜單,在出現(xiàn)的應(yīng)用程序列表欄找到Qt安裝文件夾,找到Linguist,選擇適合自己的Linguist工具,雙擊打開。

linux系統(tǒng)

直接到qt的安裝目錄找到Linguist軟件,如我的qt安裝目錄是/opt/Qt5.12.2/5.12.2/gcc_64/bin

打開Linguist后,點擊文件->打開,在文件選擇框中選擇項目生成的ts文件,點擊打開。會在Linguist中展示需要翻譯的字符串,與類名。

在下方的翻譯區(qū)進行手動翻譯,第二欄是翻譯的注釋內(nèi)容,可以不寫注釋。翻譯完一項之后,用Ctrl+Enter會自動跳到下一個待翻譯的字符串上,翻譯完一個字符串之后,上圖字符串列表前面的問號圖標會變?yōu)橐粋€綠色的對號。

備注:這里可以設(shè)置你想翻譯成的語言。點擊編輯-》翻譯文本設(shè)置,會彈出一個對話框。在目標語言中選擇需要的語言和國家/地區(qū)。

生成qm文件

ts文件翻譯結(jié)束以后,點擊保存。

然后在Qt Creator中,使用:工具->外部->Qt預(yù)言家->部署翻譯(lrelease),就會生成需要的qm文件或者在Linguist中點擊文件->發(fā)布。這樣在和.ts文件同一目錄下會生成.qm文件。

加載qm語言包

生成qm文件之后,在main.cpp文件中添加下面的代碼,加載qm文件。一般將代碼添加到QApplication a(argc, argv);下一行。

#include "dialog.h"#include <QApplication>#include <QTranslator>int main(int argc, char *argv[]){QApplication a(argc, argv);QTranslator translator;QString runPath = QCoreApplication::applicationDirPath();QString ?qmFilename = runPath + "/english_eg.qm";bool bret = translator.load(qmFilename);a.installTranslator(&translator);Dialog w;w.show();return a.exec();}

也可以通過點擊按鈕進行語言包切換設(shè)計。

void Dialog::on_pushButton_clicked(){QString qmFilename;static QTranslator translator;QString runPath = QCoreApplication::applicationDirPath(); ??????//獲取文件運行路徑qmFilename = runPath + "/english_eg.qm";if (translator.load(qmFilename)){qApp->installTranslator(&translator);}ui->retranslateUi(this);//對整個ui界面所有控件都進行語言切換}

  1. 重新設(shè)置界面顯示

當實現(xiàn)“qApp->installTranslator(translator)”以后,還應(yīng)該將顯示界面重新顯示一次進行更新。主界面可以直接借助步驟5中ui->retranslateUi(this)進行重新設(shè)置界面顯示,但是這個只能更新當前頁面,其余頁面并不能直接顯示出來,。需要對每個widget 對象重寫虛函數(shù)virtual void changeEvent(QEvent *);

void Dialog::changeEvent(QEvent *e){QDialog::changeEvent(e);switch (e->type()){case QEvent::LanguageChange:ui->retranslateUi(this);break;default:break;}}
注釋:

ui->retranslateUi(this);內(nèi)部相當界面所有控件都調(diào)用setText。如下

ui->pushButton_2->setText(QApplication::translate(0,"中文", nullptr));

QApplication::translate函數(shù)的參數(shù):第一個參數(shù)中0代表全局范圍,第二個參數(shù)代表要轉(zhuǎn)換語言的字符文本,即ts文件中的source資源。

所以關(guān)鍵是QApplication::translate函數(shù)。

TS文件格式

1、文件頭部信息。指定了翻譯文件的版本(2.1),目標語言(zh_CN,即中文)等信息。

2、劃分的作用域名字。

3、每個待翻譯的字符串都有一個 message 元素,其中l(wèi)ocation元素指定了源代碼中字符串的位置;source 元素包含了原始的文本;translation元素用于存儲翻譯后的文本。

其中,location沒有也可以,只是QT語言家打開.ts文件時定位不到字符串位置而已,主要還是source 元素和translation元素,source元素相當于字符串的id,翻譯家通過source在lang_zh_CN.ts找中文文本,在lang_en.ts找英文文本。

如下面自定義的ts文件

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS version="2.1" language="en_US"><context><message><source>測試</source><translation>test</translation></message><message><source>中文</source><translation>chinese</translation></message><message><source>英文</source><translation>english</translation></message></context></TS>

代碼實現(xiàn)語言切換

????if(nLanguage == Enum_Language::Lang_en){QString strLanguageFile = g_strRunPath + "/language/lang_en.qm";QFile file(strLanguageFile);bool bExist = file.exists();if(!bExist){return ;}static QTranslator translator;if (translator.load(strLanguageFile)){qApp->installTranslator(&translator);QString strMessage?=”英文”;const char* cStrMsg = strMessage.toStdString().c_str();strMessage = QApplication::translate(0,cStrMsg, nullptr);}}

http://aloenet.com.cn/news/31828.html

相關(guān)文章:

  • 南京做網(wǎng)站是什么青島網(wǎng)站推廣系統(tǒng)
  • 南沙做網(wǎng)站公司百度網(wǎng)站app下載
  • 淘寶客推廣網(wǎng)站建設(shè)百度云關(guān)鍵詞歌詞表達的意思
  • 海淀周邊網(wǎng)站建設(shè)2020新聞大事件摘抄
  • 中核華興建設(shè)有限公司網(wǎng)站百度在線搜索
  • 網(wǎng)站設(shè)計可以用性原則優(yōu)質(zhì)網(wǎng)站
  • 青島網(wǎng)站建設(shè)建議百度關(guān)鍵詞怎么設(shè)置
  • 做網(wǎng)站推廣價格成都外貿(mào)seo
  • 自己做網(wǎng)站怎么推廣百度品牌廣告是什么
  • 多語言網(wǎng)站seo最新小組排名
  • 國辦政府網(wǎng)站建設(shè)鄭州關(guān)鍵詞網(wǎng)站優(yōu)化排名
  • 蘇州木瀆做網(wǎng)站公司做網(wǎng)絡(luò)推廣費用
  • 福田公司成立時間太原優(yōu)化排名推廣
  • 軟件工程師招聘信息網(wǎng)站競價托管
  • 網(wǎng)站開發(fā)合作合同范本優(yōu)化網(wǎng)站的方法
  • 佛山疫情發(fā)布會北京seo產(chǎn)品
  • 做落地頁的網(wǎng)站互聯(lián)網(wǎng)產(chǎn)品營銷策劃方案
  • 濟南做html5網(wǎng)站建設(shè)泰安網(wǎng)站推廣優(yōu)化
  • 個人可以做b2b網(wǎng)站嗎seo排名技術(shù)教程
  • 昆明樂網(wǎng)網(wǎng)站建設(shè)痘痘怎么去除效果好
  • 企業(yè)網(wǎng)站和信息化建設(shè)制度平臺推廣費用一般是多少
  • 網(wǎng)站模板減肥網(wǎng)站關(guān)鍵詞排名快速提升
  • 佛山做優(yōu)化的網(wǎng)絡(luò)公司手機網(wǎng)站關(guān)鍵詞seo
  • 德州網(wǎng)站制作公司深圳網(wǎng)站設(shè)計專家樂云seo
  • 自做網(wǎng)站教程網(wǎng)上國網(wǎng)app推廣
  • 黑龍江企業(yè)網(wǎng)站建設(shè)公司網(wǎng)上宣傳方法有哪些
  • 做618購物網(wǎng)站的總結(jié)找客戶資源的軟件哪個最靠譜
  • 哪里可做網(wǎng)站如何讓百度搜索到自己的網(wǎng)站
  • asp.net 網(wǎng)站開發(fā)視頻搜狗搜索推廣
  • 如何注冊網(wǎng)站主辦者站長工具流量統(tǒng)計