如何翻译来自网络服务的消息?

时间:2018-03-15 11:48:55

标签: qt qml qtquick2 qt-linguist

我有一个适用于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中使用字符串。

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

1 个答案:

答案 0 :(得分:0)

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

使用很简单。

int a,b,c;
printf("Enter integer: ");
if( scanf("%d", &a)!=1 )
{
    printf("\nInvalid input!");
}

要获得一些动力:https://wiki.qt.io/How_to_create_a_multi_language_application

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