forked from Public-Mirror/Textractor
better logging for translation extensions
This commit is contained in:
parent
bc01179626
commit
e4d9b70040
@ -89,6 +89,6 @@ std::pair<bool, std::wstring> Translate(const std::wstring& text)
|
|||||||
})
|
})
|
||||||
// Response formatted as JSON: translation starts with text":" and ends with ","to
|
// Response formatted as JSON: translation starts with text":" and ends with ","to
|
||||||
if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"text\":\"(.+)\",\"t"))) return { true, results[1] };
|
if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"text\":\"(.+)\",\"t"))) return { true, results[1] };
|
||||||
else return { false, TRANSLATION_ERROR };
|
else return { false, FormatString(L"%s: %s", TRANSLATION_ERROR, httpRequest.response) };
|
||||||
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ extern const wchar_t* TRANSLATION_ERROR;
|
|||||||
extern const char* API_KEY;
|
extern const char* API_KEY;
|
||||||
|
|
||||||
extern QFormLayout* display;
|
extern QFormLayout* display;
|
||||||
extern QSettings* settings;
|
extern QSettings settings;
|
||||||
extern Synchronized<std::wstring> translateTo;
|
extern Synchronized<std::wstring> translateTo;
|
||||||
|
|
||||||
const char* TRANSLATION_PROVIDER = "Google Cloud Translate";
|
const char* TRANSLATION_PROVIDER = "Google Cloud Translate";
|
||||||
@ -82,9 +82,9 @@ BOOL WINAPI DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved
|
|||||||
{
|
{
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
{
|
{
|
||||||
auto keyInput = new QLineEdit(settings->value(API_KEY).toString());
|
auto keyInput = new QLineEdit(settings.value(API_KEY).toString());
|
||||||
key->assign(S(keyInput->text()));
|
key->assign(S(keyInput->text()));
|
||||||
QObject::connect(keyInput, &QLineEdit::textChanged, [](QString key) { settings->setValue(API_KEY, S(::key->assign(S(key)))); });
|
QObject::connect(keyInput, &QLineEdit::textChanged, [](QString key) { settings.setValue(API_KEY, S(::key->assign(S(key)))); });
|
||||||
display->addRow(API_KEY, keyInput);
|
display->addRow(API_KEY, keyInput);
|
||||||
auto googleCloudInfo = new QLabel(
|
auto googleCloudInfo = new QLabel(
|
||||||
"<a href=\"https://codelabs.developers.google.com/codelabs/cloud-translation-intro\">https://codelabs.developers.google.com/codelabs/cloud-translation-intro</a>"
|
"<a href=\"https://codelabs.developers.google.com/codelabs/cloud-translation-intro\">https://codelabs.developers.google.com/codelabs/cloud-translation-intro</a>"
|
||||||
@ -113,7 +113,7 @@ std::pair<bool, std::wstring> Translate(const std::wstring& text)
|
|||||||
{
|
{
|
||||||
// Response formatted as JSON: starts with "translatedText": " and translation is enclosed in quotes followed by a comma
|
// 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] };
|
if (std::wsmatch results; std::regex_search(httpRequest.response, results, std::wregex(L"\"translatedText\": \"(.+?)\","))) return { true, results[1] };
|
||||||
return { false, TRANSLATION_ERROR };
|
return { false, FormatString(L"%s: %s", TRANSLATION_ERROR, httpRequest.response) };
|
||||||
}
|
}
|
||||||
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,7 @@ std::pair<bool, std::wstring> Translate(const std::wstring& text)
|
|||||||
if (!IsHash(results[1])) translation += std::wstring(results[1]) + L" ";
|
if (!IsHash(results[1])) translation += std::wstring(results[1]) + L" ";
|
||||||
if (!translation.empty()) return { true, translation };
|
if (!translation.empty()) return { true, translation };
|
||||||
}
|
}
|
||||||
return { false, FormatString(L"%s (TKK=%u)", TRANSLATION_ERROR, _InterlockedExchange(&TKK, 0)) };
|
return { false, FormatString(L"%s (TKK=%u): %s", TRANSLATION_ERROR, _InterlockedExchange(&TKK, 0), httpRequest.response) };
|
||||||
}
|
}
|
||||||
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
else return { false, FormatString(L"%s (code=%u)", TRANSLATION_ERROR, httpRequest.errorCode) };
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QTimer>
|
|
||||||
|
|
||||||
extern const char* NATIVE_LANGUAGE;
|
extern const char* NATIVE_LANGUAGE;
|
||||||
extern const char* TRANSLATE_TO;
|
extern const char* TRANSLATE_TO;
|
||||||
@ -19,7 +18,7 @@ const char* LANGUAGE = u8"Language";
|
|||||||
const std::string TRANSLATION_CACHE_FILE = FormatString("%s Cache.txt", TRANSLATION_PROVIDER);
|
const std::string TRANSLATION_CACHE_FILE = FormatString("%s Cache.txt", TRANSLATION_PROVIDER);
|
||||||
|
|
||||||
QFormLayout* display;
|
QFormLayout* display;
|
||||||
QSettings* settings;
|
QSettings settings = openSettings();
|
||||||
Synchronized<std::wstring> translateTo = L"en";
|
Synchronized<std::wstring> translateTo = L"en";
|
||||||
|
|
||||||
Synchronized<std::map<std::wstring, std::wstring>> translationCache;
|
Synchronized<std::map<std::wstring, std::wstring>> translationCache;
|
||||||
@ -40,21 +39,20 @@ public:
|
|||||||
Window() :
|
Window() :
|
||||||
QDialog(nullptr, Qt::WindowMinMaxButtonsHint)
|
QDialog(nullptr, Qt::WindowMinMaxButtonsHint)
|
||||||
{
|
{
|
||||||
display = &layout;
|
display = new QFormLayout(this);
|
||||||
::settings = &settings;
|
|
||||||
|
|
||||||
languageBox.addItems(languages);
|
|
||||||
|
|
||||||
settings.beginGroup(TRANSLATION_PROVIDER);
|
settings.beginGroup(TRANSLATION_PROVIDER);
|
||||||
int language = -1;
|
|
||||||
if (settings.contains(LANGUAGE)) language = languageBox.findText(settings.value(LANGUAGE).toString(), Qt::MatchEndsWith);
|
|
||||||
if (language < 0) language = languageBox.findText(NATIVE_LANGUAGE, Qt::MatchStartsWith);
|
|
||||||
if (language < 0) language = languageBox.findText("English", Qt::MatchStartsWith);
|
|
||||||
languageBox.setCurrentIndex(language);
|
|
||||||
saveLanguage(languageBox.currentText());
|
|
||||||
connect(&languageBox, &QComboBox::currentTextChanged, this, &Window::saveLanguage);
|
|
||||||
|
|
||||||
layout.addRow(TRANSLATE_TO, &languageBox);
|
auto languageBox = new QComboBox(this);
|
||||||
|
languageBox->addItems(languages);
|
||||||
|
int language = -1;
|
||||||
|
if (settings.contains(LANGUAGE)) language = languageBox->findText(settings.value(LANGUAGE).toString(), Qt::MatchEndsWith);
|
||||||
|
if (language < 0) language = languageBox->findText(NATIVE_LANGUAGE, Qt::MatchStartsWith);
|
||||||
|
if (language < 0) language = languageBox->findText("English", Qt::MatchStartsWith);
|
||||||
|
languageBox->setCurrentIndex(language);
|
||||||
|
saveLanguage(languageBox->currentText());
|
||||||
|
connect(languageBox, &QComboBox::currentTextChanged, this, &Window::saveLanguage);
|
||||||
|
display->addRow(TRANSLATE_TO, languageBox);
|
||||||
|
|
||||||
setWindowTitle(TRANSLATION_PROVIDER);
|
setWindowTitle(TRANSLATION_PROVIDER);
|
||||||
QMetaObject::invokeMethod(this, &QWidget::show, Qt::QueuedConnection);
|
QMetaObject::invokeMethod(this, &QWidget::show, Qt::QueuedConnection);
|
||||||
@ -80,10 +78,6 @@ private:
|
|||||||
{
|
{
|
||||||
settings.setValue(LANGUAGE, S(translateTo->assign(S(language.split(": ")[1]))));
|
settings.setValue(LANGUAGE, S(translateTo->assign(S(language.split(": ")[1]))));
|
||||||
}
|
}
|
||||||
|
|
||||||
QFormLayout layout{ this };
|
|
||||||
QComboBox languageBox{ this };
|
|
||||||
QSettings settings{ openSettings(this) };
|
|
||||||
} window;
|
} window;
|
||||||
|
|
||||||
bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo)
|
bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user