簡體   English   中英

快速翻譯Qt QML應用程序

[英]Translate Qt QML application on the fly

我正在嘗試翻譯一個充滿的Qt QML應用程序

tr("string");

在整個地方,如果我在應用啟動之前設置了轉換器,它就可以完美運行,但是我在進行過程中遇到了麻煩。 唯一的解決方案似乎是空字符串hack,但我不想搜索每個“ tr”並添加空字符串

在Qt 5.9之前 ,最簡單的解決方案是在每個可翻譯字符串中添加一個空字符串: 如何在QML中進行動態翻譯

從Qt 5.10開始 ,可以通過調用以下QQmlEngine::retranslate重新轉換所有字符串: QQmlEngine::retranslate

可以在QtQuick國際化文檔中找到更多信息:

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

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

請注意,在撰寫本文時, 僅Qt 5.10的beta版本可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM