[英]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.