QString Translate::translate(const QString &text, const QString &sl, const QString &tl) const { const QString params = QString("client=json&sl=%1&tl=%2&text=").arg(sl, tl); const QJsonObject root = query(params, text).object(); const QJsonArray sentences = root.value("sentences").toArray(); const QJsonArray dict = root.value("dict").toArray(); QString result; foreach(const QJsonValue &val, sentences) result += val.toObject().value("trans").toString(); if(enable_dict && !dict.isEmpty()) { result += "<hr>"; foreach(const QJsonValue &val, dict) { const QString pos = val.toObject().value("pos").toString(); result += QString("<i><b>%1</b> - %2</i>").arg(text, pos); const QJsonArray entries = val.toObject().value("entry").toArray(); foreach(const QJsonValue &entry, entries) { const QString word = entry.toObject().value("word").toString(); const QStringList reverse_translations = entry.toObject().value("reverse_translation").toVariant().toStringList(); result += QString("<br><b>%1</b> - %2").arg(word, reverse_translations.join(", ")); } if(val != dict.last()) result += "<br><br>"; } }