1

我有一个与 Web 服务一起使用的 qt 快速应用程序

qml 文件的代码后面我想得到书的列表

void BookManager::findBook(QString bookName){    

    QNetworkReply* reply=getRequest("api/Book/Find/"+bookName);
    connect(reply,SIGNAL(finished()),this,SLOT(getListFinished()));
 }

在这里假设用户未通过身份验证,必须先登录,然后从服务器发送“ First Login and then try again”..消息以在客户端显示给用户

在这里我得到消息或书单

 void BookManager::getListFinished(){
    QNetworkReply* reply=convertToReply(sender());
    if(reply->error()==QNetworkReply::NoError)
    {
       //Display books
    }
    else
    {
        readReplyMessage(reply);//Here I get the message and disply it to user
    }
 }

我想知道我应该如何创建多语言应用程序?

qStr和 ... 是在 UI 中使用字符串的时间。

但是当我从网络服务发出请求时,它会返回一条英文字符串消息。如果用户选择波斯语,我该如何翻译这个字符串?

4

1 回答 1

0

qsTr() 或 qsTranslate() 常用于 QML 文本。然而它不会像魔术一样发生!字符串作为键条目输入到翻译文件中。在 qt linguist 工具的帮助下,您必须为某种语言的字符串创建翻译,例如 (en_EN)。根据您当前的系统语言环境,该字符串将替换为您的翻译文本。

使用很容易。

Text {
    id: txt;
    text: qsTr("First Login and then try again");
}

要获得一些动力,请阅读:https ://wiki.qt.io/How_to_create_a_multi_language_application

手册:http ://doc.qt.io/qt-5/qtlinguist-index.html

于 2018-03-15T13:08:23.710 回答