Qt Qml實現國際化

2021-10-06 13:32:34 字數 1523 閱讀 5456

qml 中翻譯的字串需要用 qstr() / qstranslate() 包裹起來。

text: qstr("text11111")
在.pro檔案中定義多個語言版本,如下所示

使用ide自帶工具-語言家來自動繫結qml中的qstr(「***」)字段。

編輯ts多語言設定檔案

通過語言家工具編寫翻譯檔案

手動編寫翻譯檔案

//location:指定使用位置

//source: qml使用的名稱標記

//translation:翻譯後的內容

hello world

你好

發布完成後,就可以使用翻譯檔案了。

int main(int argc, char *ar**)

通過qml觸發語言切換,呼叫c++程式切換語言,關鍵點為qqmlengine::retranslate()函式,此函式重新整理所有使用標記為翻譯(qstr())的字串的繫結表示式,注意,此函式在qt 5.10以後可用。原始碼如下:class translatecontroller : public qobject;

public:

static translatecontroller* instance(qqmlengine *engine)

void retranslateui()

q_invokalbe void loadlanguage(language lang)

break;

case language::english:

m_translator->load("");

emit message(tr("--- language changed to english"));

break;

}retranslateui();

}signals:

void message(const qstring &msg);

private:

translatecontroller(qqmlengine *engine)

qqmlengine *m_engine = nullptr;

qtranslator *m_translator = nullptr;};

int main(int argc, char *ar**)

, qt::queuedconnection);

engine.load(url); }

QT QML語言國際化

話說這個都寫爛大街了,主要還是自己做下記錄,畢竟好記性不如爛筆頭啊!說明下背景 qt,qml翻譯,語言國際化,大概的操作過程與 的編寫,就是書寫需要翻譯的字串加上翻譯標識,通過配置工程檔案生成需要的ts檔案,修改ts檔案,發布生成需要的qm檔案,然後在cpp 上載入設定需要的翻譯檔案。具體下面說明 ...

vue實現國際化

這裡為了簡單,將所有的東西都寫到main.js,在實際的應用中需要將這些拆分到不同元件中。1.1 安裝vue的國際化支援npm install vue i18n當然如果你沒有沒事使用包管理工具,那麼你可以直接這樣使用 src script 1.2 配置使用 這裡我們使用包管理工具的方式配置,我們直接...

Django實現國際化

2.進入專案的應用資料夾下,新建資料夾locale 3.在命令列中,cd到這個目錄下,執行django admin.py makemessages l zh cn 4.在settings資料夾的middleware中加入 django.middleware.locale.localemiddlewa...