From 8a710659dcf07ddfe9c886cb1193ee775cff7878 Mon Sep 17 00:00:00 2001 From: Akash Mozumdar Date: Thu, 26 Mar 2020 06:12:20 -0600 Subject: [PATCH] merge google and google cloud --- deploy.ps1 | 1 - extensions/CMakeLists.txt | 2 - extensions/googlecloudtranslate.cpp | 119 ---------------------------- extensions/googletranslate.cpp | 109 +++++++++++++------------ 4 files changed, 53 insertions(+), 178 deletions(-) delete mode 100644 extensions/googlecloudtranslate.cpp diff --git a/deploy.ps1 b/deploy.ps1 index 13c30bd..3fffc01 100644 --- a/deploy.ps1 +++ b/deploy.ps1 @@ -41,7 +41,6 @@ foreach ($language in @{ "Extra Newlines.dll", "Extra Window.dll", "Google Translate.dll", - "Google Cloud Translate.dll", "Lua.dll", "Regex Filter.dll", "Remove Repeated Characters.dll", diff --git a/extensions/CMakeLists.txt b/extensions/CMakeLists.txt index 172a246..6c17052 100644 --- a/extensions/CMakeLists.txt +++ b/extensions/CMakeLists.txt @@ -10,7 +10,6 @@ add_library(DeepL\ Translate MODULE deepltranslate.cpp translatewrapper.cpp netw add_library(Extra\ Newlines MODULE extranewlines.cpp extensionimpl.cpp) add_library(Extra\ Window MODULE extrawindow.cpp extensionimpl.cpp) add_library(Google\ Translate MODULE googletranslate.cpp translatewrapper.cpp network.cpp extensionimpl.cpp) -add_library(Google\ Cloud\ Translate MODULE googlecloudtranslate.cpp translatewrapper.cpp network.cpp extensionimpl.cpp) add_library(Lua MODULE lua.cpp extensionimpl.cpp) add_library(Regex\ Filter MODULE regexfilter.cpp extensionimpl.cpp) add_library(Remove\ Repeated\ Characters MODULE removerepeatchar.cpp extensionimpl.cpp) @@ -24,7 +23,6 @@ target_link_libraries(Bing\ Translate winhttp Qt5::Widgets) target_link_libraries(DeepL\ Translate winhttp Qt5::Widgets) target_link_libraries(Extra\ Window Qt5::Widgets) target_link_libraries(Google\ Translate winhttp Qt5::Widgets) -target_link_libraries(Google\ Cloud\ Translate winhttp Qt5::Widgets) target_link_libraries(Lua lua53 Qt5::Widgets) target_link_libraries(Regex\ Filter Qt5::Widgets) target_link_libraries(Thread\ Linker Qt5::Widgets) diff --git a/extensions/googlecloudtranslate.cpp b/extensions/googlecloudtranslate.cpp deleted file mode 100644 index f67f1d5..0000000 --- a/extensions/googlecloudtranslate.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "qtcommon.h" -#include "extension.h" -#include "network.h" - -extern const wchar_t* TRANSLATION_ERROR; -extern const char* API_KEY; - -extern QFormLayout* display; -extern QSettings settings; -extern Synchronized translateTo; - -const char* TRANSLATION_PROVIDER = "Google Cloud Translate"; -QStringList languages -{ - "Afrikaans: af", - "Arabic: ar", - "Albanian: sq", - "Belarusian: be", - "Bengali: bn", - "Bosnian: bs", - "Bulgarian: bg", - "Catalan: ca", - "Chinese(Simplified): zh-CH", - "Chinese(Traditional): zh-TW", - "Croatian: hr", - "Czech: cs", - "Danish: da", - "Dutch: nl", - "English: en", - "Esperanto: eo", - "Estonian: et", - "Filipino: tl", - "Finnish: fi", - "French: fr", - "Galician: gl", - "German: de", - "Greek: el", - "Hebrew: iw", - "Hindi: hi", - "Hungarian: hu", - "Icelandic: is", - "Indonesian: id", - "Irish: ga", - "Italian: it", - "Japanese: ja", - "Klingon: tlh", - "Korean: ko", - "Latin: la", - "Latvian: lv", - "Lithuanian: lt", - "Macedonian: mk", - "Malay: ms", - "Maltese: mt", - "Norwegian: no", - "Persian: fa", - "Polish: pl", - "Portuguese: pt", - "Romanian: ro", - "Russian: ru", - "Serbian: sr", - "Slovak: sk", - "Slovenian: sl", - "Somali: so", - "Spanish: es", - "Swahili: sw", - "Swedish: sv", - "Thai: th", - "Turkish: tr", - "Ukranian: uk", - "Urdu: ur", - "Vietnamese: vi", - "Welsh: cy", - "Yiddish: yi", - "Zulu: zu" -}; - -Synchronized key; - -BOOL WINAPI DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) -{ - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - { - auto keyInput = new QLineEdit(settings.value(API_KEY).toString()); - key->assign(S(keyInput->text())); - QObject::connect(keyInput, &QLineEdit::textChanged, [](QString key) { settings.setValue(API_KEY, S(::key->assign(S(key)))); }); - display->addRow(API_KEY, keyInput); - auto googleCloudInfo = new QLabel( - "https://codelabs.developers.google.com/codelabs/cloud-translation-intro" - ); - googleCloudInfo->setOpenExternalLinks(true); - display->addRow(googleCloudInfo); - } - break; - case DLL_PROCESS_DETACH: - { - } - break; - } - return TRUE; -} - -std::pair Translate(const std::wstring& text, SentenceInfo) -{ - - if (HttpRequest httpRequest{ - L"Mozilla/5.0 Textractor", - L"translation.googleapis.com", - L"GET", - FormatString(L"/language/translate/v2?format=text&q=%s&target=%s&key=%s", Escape(text), translateTo->c_str(), key->c_str()).c_str() - }) - { - // Response formatted as JSON: starts with "translatedText": " and translation is enclosed in quotes followed by a comma - if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"\"translatedText\": \"(.+?)\","))) return { true, results[1] }; - return { false, FormatString(L"%s: %s", TRANSLATION_ERROR, httpRequest.response) }; - } - else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) }; -} diff --git a/extensions/googletranslate.cpp b/extensions/googletranslate.cpp index 564498a..65e2b63 100644 --- a/extensions/googletranslate.cpp +++ b/extensions/googletranslate.cpp @@ -1,32 +1,28 @@ -#include "extension.h" +#include "qtcommon.h" +#include "extension.h" #include "network.h" #include -#include extern const wchar_t* TRANSLATION_ERROR; +extern const char* API_KEY; +extern QFormLayout* display; +extern QSettings settings; extern Synchronized translateTo; const char* TRANSLATION_PROVIDER = "Google Translate"; QStringList languages { "Afrikaans: af", - "Albanian: sq", - "Amharic: am", "Arabic: ar", - "Armenian: hy", - "Azerbaijani: az", - "Basque: eu", + "Albanian: sq", "Belarusian: be", "Bengali: bn", "Bosnian: bs", "Bulgarian: bg", "Catalan: ca", - "Cebuano: ceb", - "Chichewa: ny", - "Chinese (Simplified): zh", - "Chinese (Traditional): zh-TW", - "Corsican: co", + "Chinese(Simplified): zh-CH", + "Chinese(Traditional): zh-TW", "Croatian: hr", "Czech: cs", "Danish: da", @@ -37,92 +33,77 @@ QStringList languages "Filipino: tl", "Finnish: fi", "French: fr", - "Frisian: fy", "Galician: gl", - "Georgian: ka", "German: de", "Greek: el", - "Gujarati: gu", - "Haitian Creole: ht", - "Hausa: ha", - "Hawaiian: haw", "Hebrew: iw", "Hindi: hi", - "Hmong: hmn", "Hungarian: hu", "Icelandic: is", - "Igbo: ig", "Indonesian: id", "Irish: ga", "Italian: it", "Japanese: ja", - "Javanese: jw", - "Kannada: kn", - "Kazakh: kk", - "Khmer: km", - "Kinyarwanda: rw", + "Klingon: tlh", "Korean: ko", - "Kurdish (Kurmanji): ku", - "Kyrgyz: ky", - "Lao: lo", "Latin: la", "Latvian: lv", "Lithuanian: lt", - "Luxembourgish: lb", "Macedonian: mk", - "Malagasy: mg", "Malay: ms", - "Malayalam: ml", "Maltese: mt", - "Maori: mi", - "Marathi: mr", - "Mongolian: mn", - "Myanmar (Burmese): my", - "Nepali: ne", "Norwegian: no", - "Odia (Oriya): or", - "Pashto: ps", "Persian: fa", "Polish: pl", "Portuguese: pt", - "Punjabi: pa", "Romanian: ro", "Russian: ru", - "Samoan: sm", - "Scots Gaelic: gd", "Serbian: sr", - "Sesotho: st", - "Shona: sn", - "Sindhi: sd", - "Sinhala: si", "Slovak: sk", "Slovenian: sl", "Somali: so", "Spanish: es", - "Sundanese: su", "Swahili: sw", "Swedish: sv", - "Tajik: tg", - "Tamil: ta", - "Tatar: tt", - "Telugu: te", "Thai: th", "Turkish: tr", - "Turkmen: tk", - "Ukrainian: uk", + "Ukranian: uk", "Urdu: ur", - "Uyghur: ug", - "Uzbek: uz", "Vietnamese: vi", "Welsh: cy", - "Xhosa: xh", "Yiddish: yi", - "Yoruba: yo", "Zulu: zu" }; +Synchronized key; + unsigned TKK = 0; +BOOL WINAPI DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + { + auto keyInput = new QLineEdit(settings.value(API_KEY).toString()); + key->assign(S(keyInput->text())); + QObject::connect(keyInput, &QLineEdit::textChanged, [](QString key) { settings.setValue(API_KEY, S(::key->assign(S(key)))); }); + display->addRow(API_KEY, keyInput); + auto googleCloudInfo = new QLabel( + "https://codelabs.developers.google.com/codelabs/cloud-translation-intro" + ); + googleCloudInfo->setOpenExternalLinks(true); + display->addRow(googleCloudInfo); + } + break; + case DLL_PROCESS_DETACH: + { + } + break; + } + return TRUE; +} + std::wstring GetTranslationUri(const std::wstring& text) { // If no TKK available, use this uri. Can't use too much or google will detect unauthorized access @@ -154,6 +135,22 @@ bool IsHash(const std::wstring& result) std::pair Translate(const std::wstring& text, SentenceInfo) { + if (!key->empty()) + { + if (HttpRequest httpRequest{ + L"Mozilla/5.0 Textractor", + L"translation.googleapis.com", + L"GET", + FormatString(L"/language/translate/v2?format=text&q=%s&target=%s&key=%s", Escape(text), translateTo->c_str(), key->c_str()).c_str() + }) + { + // Response formatted as JSON: starts with "translatedText": " and translation is enclosed in quotes followed by a comma + if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"\"translatedText\": \"(.+?)\","))) return { true, results[1] }; + return { false, FormatString(L"%s: %s", TRANSLATION_ERROR, httpRequest.response) }; + } + else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) }; + } + if (!TKK) if (HttpRequest httpRequest{ L"Mozilla/5.0 Textractor", L"translate.google.com", L"GET", L"/" }) if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"(\\d{7,})'")))