aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/api
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-12-01 17:25:46 +0000
committerSaturneric <[email protected]>2021-12-01 17:53:09 +0000
commit1ae8663decb3163b92d32b80cefb46eb678a5af6 (patch)
tree8e8cb58cacfe12827438b0524917cb0926f926cb /src/server/api
parentAdd & Modified (diff)
downloadGpgFrontend-1ae8663decb3163b92d32b80cefb46eb678a5af6.tar.gz
GpgFrontend-1ae8663decb3163b92d32b80cefb46eb678a5af6.zip
Add i18n Support
1. Remove Qt Linguist. 2. Add GNU gettext libraries. 3. Modified source codes to meet with i18n support.
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/PubkeyGetter.cpp117
-rw-r--r--src/server/api/PubkeyGetter.h29
-rw-r--r--src/server/api/PubkeyUploader.cpp148
-rw-r--r--src/server/api/PubkeyUploader.h31
4 files changed, 156 insertions, 169 deletions
diff --git a/src/server/api/PubkeyGetter.cpp b/src/server/api/PubkeyGetter.cpp
index 6505cb3e..e2cb8708 100644
--- a/src/server/api/PubkeyGetter.cpp
+++ b/src/server/api/PubkeyGetter.cpp
@@ -1,7 +1,7 @@
/**
- * This file is part of GPGFrontend.
+ * This file is part of GpgFrontend.
*
- * GPGFrontend is free software: you can redistribute it and/or modify
+ * GpgFrontend is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -24,73 +24,72 @@
#include "server/api/PubkeyGetter.h"
-PubkeyGetter::PubkeyGetter(GpgFrontend::GpgContext *ctx, const QVector<QString> &fprs) : BaseAPI(ComUtils::GetPubkey),
- mCtx(ctx), mFprs(fprs) {
-}
+PubkeyGetter::PubkeyGetter(GpgFrontend::GpgContext *ctx,
+ const QVector<QString> &fprs)
+ : BaseAPI(ComUtils::GetPubkey), mCtx(ctx), mFprs(fprs) {}
void PubkeyGetter::construct_json() {
- document.SetArray();
- QStringList keyIds;
+ document.SetArray();
+ QStringList keyIds;
- rapidjson::Document::AllocatorType &allocator = document.GetAllocator();
+ rapidjson::Document::AllocatorType &allocator = document.GetAllocator();
- for (const auto &fprStr : mFprs) {
- rapidjson::Value fpr;
+ for (const auto &fprStr : mFprs) {
+ rapidjson::Value fpr;
- auto fprByteArray = fprStr.toUtf8();
- fpr.SetString(fprByteArray.constData(), fprByteArray.count());
+ auto fprByteArray = fprStr.toUtf8();
+ fpr.SetString(fprByteArray.constData(), fprByteArray.count());
- document.PushBack(fpr, allocator);
- keyIds.clear();
- }
+ document.PushBack(fpr, allocator);
+ keyIds.clear();
+ }
}
void PubkeyGetter::deal_reply() {
+ const auto &utils = getUtils();
+
+ /**
+ * {
+ * "pubkeys" : [
+ * {
+ * "publicKey" : ...,
+ * "fpr" : ...,
+ * "sha" : ...
+ * },
+ * ...
+ * ]
+ * }
+ */
+
+ if (!utils.checkDataValue("pubkeys")) {
+ QMessageBox::critical(nullptr, _("Error"),
+ _("The communication content with the server does "
+ "not meet the requirements"));
+ } else {
+ auto &pubkeys = utils.getDataValue("pubkeys");
+ qDebug() << "Pubkey Getter" << pubkeys.IsArray()
+ << pubkeys.GetArray().Size();
+ if (pubkeys.IsArray()) {
+ for (const auto &pubkey : pubkeys.GetArray()) {
+ if (pubkey.IsObject() && pubkey.HasMember("publicKey") &&
+ pubkey.HasMember("fpr") && pubkey.HasMember("sha") &&
+ pubkey["publicKey"].IsString() && pubkey["fpr"].IsString() &&
+ pubkey["sha"].IsString()) {
+ auto pubkeyData = QString(pubkey["publicKey"].GetString());
+
+ QCryptographicHash shaGen(QCryptographicHash::Sha256);
+ shaGen.addData(pubkeyData.toUtf8());
+
+ if (shaGen.result().toHex() == pubkey["sha"].GetString()) {
+ mCtx->importKey(pubkeyData.toUtf8());
+ }
+ }
+ }
- const auto &utils = getUtils();
-
- /**
- * {
- * "pubkeys" : [
- * {
- * "publicKey" : ...,
- * "fpr" : ...,
- * "sha" : ...
- * },
- * ...
- * ]
- * }
- */
-
- if (!utils.checkDataValue("pubkeys")) {
- QMessageBox::critical(nullptr, tr("Error"),
- tr("The communication content with the server does not meet the requirements"));
} else {
- auto &pubkeys = utils.getDataValue("pubkeys");
- qDebug() << "Pubkey Getter" << pubkeys.IsArray() << pubkeys.GetArray().Size();
- if (pubkeys.IsArray()) {
- for (const auto &pubkey : pubkeys.GetArray()) {
- if (pubkey.IsObject()
- && pubkey.HasMember("publicKey") && pubkey.HasMember("fpr") && pubkey.HasMember("sha")
- && pubkey["publicKey"].IsString() && pubkey["fpr"].IsString() && pubkey["sha"].IsString()) {
-
- auto pubkeyData = QString(pubkey["publicKey"].GetString());
-
- QCryptographicHash shaGen(QCryptographicHash::Sha256);
- shaGen.addData(pubkeyData.toUtf8());
-
- if (shaGen.result().toHex() == pubkey["sha"].GetString()) {
- mCtx->importKey(pubkeyData.toUtf8());
- }
-
- }
- }
-
- } else {
- QMessageBox::critical(nullptr, tr("Error"),
- tr("The communication content with the server does not meet the requirements"));
- }
+ QMessageBox::critical(nullptr, _("Error"),
+ _("The communication content with the server does "
+ "not meet the requirements"));
}
+ }
}
-
-
diff --git a/src/server/api/PubkeyGetter.h b/src/server/api/PubkeyGetter.h
index 216b1ef2..6a3d50e9 100644
--- a/src/server/api/PubkeyGetter.h
+++ b/src/server/api/PubkeyGetter.h
@@ -1,7 +1,7 @@
/**
- * This file is part of GPGFrontend.
+ * This file is part of GpgFrontend.
*
- * GPGFrontend is free software: you can redistribute it and/or modify
+ * GpgFrontend is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -26,8 +26,8 @@
#define GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
#include "GpgFrontend.h"
-#include "server/BaseAPI.h"
#include "gpg/GpgContext.h"
+#include "server/BaseAPI.h"
class ComUtils;
@@ -35,23 +35,18 @@ class ComUtils;
* Get and Import Pubkey from server
*/
class PubkeyGetter : public BaseAPI {
-public:
-
- PubkeyGetter(GpgFrontend::GpgContext *ctx, const QVector<QString> &fprs);
-
-private:
+ public:
+ PubkeyGetter(GpgFrontend::GpgContext *ctx, const QVector<QString> &fprs);
- GpgFrontend::GpgContext *mCtx;
+ private:
+ GpgFrontend::GpgContext *mCtx;
- const QVector<QString> &mFprs;
+ const QVector<QString> &mFprs;
-protected:
-
- void construct_json() final;
-
- void deal_reply() final;
+ protected:
+ void construct_json() final;
+ void deal_reply() final;
};
-
-#endif //GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
+#endif // GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
diff --git a/src/server/api/PubkeyUploader.cpp b/src/server/api/PubkeyUploader.cpp
index 2842c2d7..35f764d8 100644
--- a/src/server/api/PubkeyUploader.cpp
+++ b/src/server/api/PubkeyUploader.cpp
@@ -1,7 +1,7 @@
/**
- * This file is part of GPGFrontend.
+ * This file is part of GpgFrontend.
*
- * GPGFrontend is free software: you can redistribute it and/or modify
+ * GpgFrontend is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -24,83 +24,83 @@
#include "server/api/PubkeyUploader.h"
-PubkeyUploader::PubkeyUploader(GpgFrontend::GpgContext *ctx, const QVector<GpgKey> &keys) : BaseAPI(ComUtils::UploadPubkey),
- mCtx(ctx),
- mKeys(keys) {
-}
+PubkeyUploader::PubkeyUploader(GpgFrontend::GpgContext *ctx,
+ const QVector<GpgKey> &keys)
+ : BaseAPI(ComUtils::UploadPubkey), mCtx(ctx), mKeys(keys) {}
void PubkeyUploader::construct_json() {
- document.SetArray();
- QStringList keyIds;
- QCryptographicHash shaGen(QCryptographicHash::Sha256);
-
- auto &allocator = document.GetAllocator();
-
- QVector<QByteArray> keysData;
- for (const auto &key : mKeys) {
- QByteArray keyDataBuf;
- keyIds << key.id;
-
- // The use of multi-threading brings an improvement in UI smoothness
- gpgme_error_t error;
- auto thread = QThread::create([&]() {
- error = mCtx->exportKeys(&keyIds, &keyDataBuf);
- });
- thread->start();
- while (thread->isRunning()) QApplication::processEvents();
- thread->deleteLater();
- keysData.push_back(keyDataBuf);
- keyIds.clear();
- }
-
- int index = 0;
- for (const auto &keyData : keysData) {
- rapidjson::Value publicKeyObj, pubkey, sha, signedFpr;
-
- shaGen.addData(keyData);
- auto shaStr = shaGen.result().toHex();
- shaGen.reset();
-
- auto signFprStr = ComUtils::getSignStringBase64(mCtx, mKeys[index].fpr, mKeys[index]);
- qDebug() << "signFprStr" << signFprStr;
-
- pubkey.SetString(keyData.data(), keyData.count(), allocator);
- sha.SetString(shaStr.data(), shaStr.count(), allocator);
- signedFpr.SetString(signFprStr.data(), signFprStr.count(), allocator);
-
- publicKeyObj.SetObject();
- publicKeyObj.AddMember("publicKey", pubkey, allocator);
- publicKeyObj.AddMember("sha", sha, allocator);
- publicKeyObj.AddMember("signedFpr", signedFpr, allocator);
-
- document.PushBack(publicKeyObj, allocator);
- index++;
- }
+ document.SetArray();
+ QStringList keyIds;
+ QCryptographicHash shaGen(QCryptographicHash::Sha256);
+
+ auto &allocator = document.GetAllocator();
+
+ QVector<QByteArray> keysData;
+ for (const auto &key : mKeys) {
+ QByteArray keyDataBuf;
+ keyIds << key.id;
+
+ // The use of multi-threading brings an improvement in UI smoothness
+ gpgme_error_t error;
+ auto thread = QThread::create(
+ [&]() { error = mCtx->exportKeys(&keyIds, &keyDataBuf); });
+ thread->start();
+ while (thread->isRunning()) QApplication::processEvents();
+ thread->deleteLater();
+ keysData.push_back(keyDataBuf);
+ keyIds.clear();
+ }
+
+ int index = 0;
+ for (const auto &keyData : keysData) {
+ rapidjson::Value publicKeyObj, pubkey, sha, signedFpr;
+
+ shaGen.addData(keyData);
+ auto shaStr = shaGen.result().toHex();
+ shaGen.reset();
+
+ auto signFprStr =
+ ComUtils::getSignStringBase64(mCtx, mKeys[index].fpr, mKeys[index]);
+ qDebug() << "signFprStr" << signFprStr;
+
+ pubkey.SetString(keyData.data(), keyData.count(), allocator);
+ sha.SetString(shaStr.data(), shaStr.count(), allocator);
+ signedFpr.SetString(signFprStr.data(), signFprStr.count(), allocator);
+
+ publicKeyObj.SetObject();
+ publicKeyObj.AddMember("publicKey", pubkey, allocator);
+ publicKeyObj.AddMember("sha", sha, allocator);
+ publicKeyObj.AddMember("signedFpr", signedFpr, allocator);
+
+ document.PushBack(publicKeyObj, allocator);
+ index++;
+ }
}
void PubkeyUploader::deal_reply() {
-
- const auto &utils = getUtils();
-
- /**
- * {
- * "strings" : [
- * "...",
- * "..."
- * ]
- * }
- */
-
- if (!utils.checkDataValue("strings")) {
- QMessageBox::critical(nullptr, tr("Error"),
- tr("The communication content with the server does not meet the requirements"));
+ const auto &utils = getUtils();
+
+ /**
+ * {
+ * "strings" : [
+ * "...",
+ * "..."
+ * ]
+ * }
+ */
+
+ if (!utils.checkDataValue("strings")) {
+ QMessageBox::critical(nullptr, _("Error"),
+ _("The communication content with the server does "
+ "not meet the requirements"));
+ } else {
+ auto &strings = utils.getDataValue("strings");
+ qDebug() << "Pubkey Uploader" << strings.IsArray()
+ << strings.GetArray().Size();
+ if (strings.IsArray() && strings.GetArray().Size() == mKeys.size()) {
+ good = true;
} else {
- auto &strings = utils.getDataValue("strings");
- qDebug() << "Pubkey Uploader" << strings.IsArray() << strings.GetArray().Size();
- if (strings.IsArray() && strings.GetArray().Size() == mKeys.size()) {
- good = true;
- } else {
- good = false;
- }
+ good = false;
}
+ }
}
diff --git a/src/server/api/PubkeyUploader.h b/src/server/api/PubkeyUploader.h
index 61096d46..efad27ac 100644
--- a/src/server/api/PubkeyUploader.h
+++ b/src/server/api/PubkeyUploader.h
@@ -1,7 +1,7 @@
/**
- * This file is part of GPGFrontend.
+ * This file is part of GpgFrontend.
*
- * GPGFrontend is free software: you can redistribute it and/or modify
+ * GpgFrontend is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -26,33 +26,26 @@
#define GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H
#include "GpgFrontend.h"
-#include "server/BaseAPI.h"
#include "gpg/GpgContext.h"
-
#include "rapidjson/document.h"
+#include "server/BaseAPI.h"
/**
* Upload pubkey into server
*/
class PubkeyUploader : public BaseAPI {
-public:
-
- PubkeyUploader(GpgFrontend::GpgContext *ctx, const QVector<GpgKey> &keys);
-
-private:
+ public:
+ PubkeyUploader(GpgFrontend::GpgContext *ctx, const QVector<GpgKey> &keys);
- const QVector<GpgKey> &mKeys;
+ private:
+ const QVector<GpgKey> &mKeys;
- GpgFrontend::GpgContext *mCtx;
-
-protected:
-
- void construct_json() final;
-
- void deal_reply() final;
+ GpgFrontend::GpgContext *mCtx;
+ protected:
+ void construct_json() final;
+ void deal_reply() final;
};
-
-#endif //GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H
+#endif // GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H