Compare commits

...

2 Commits

Author SHA1 Message Date
4e7f67812e feat: improve modules translation 2024-07-29 02:30:41 +02:00
3ce8e360fb fix: remove dependency of assuan 2024-07-28 21:46:39 +02:00
18 changed files with 831 additions and 182 deletions

View File

@ -45,6 +45,17 @@
#define LISTEN(event) GFModuleListenEvent(GFGetModuleID(), DUP(event)) #define LISTEN(event) GFModuleListenEvent(GFGetModuleID(), DUP(event))
#define LOAD_TRANS(name) \
{ \
QFile f(QString(":/i18n/%2.%1.qm").arg(GFAppActiveLocale()).arg(name)); \
if (f.exists() && f.open(QIODevice::ReadOnly)) { \
FLOG_INFO("%3 loading, locale: %1, path: %2", GFAppActiveLocale(), \
f.fileName(), UDUP(GFGetModuleID())); \
auto b = f.readAll(); \
GFAppRegisterTranslator(AllocBufferAndCopy(b), b.size()); \
} \
}
#define EXECUTE_MODULE() \ #define EXECUTE_MODULE() \
auto GFExecuteModule(GFModuleEvent* p_event) -> int { \ auto GFExecuteModule(GFModuleEvent* p_event) -> int { \
auto event = ConvertEventToMap(p_event); auto event = ConvertEventToMap(p_event);

View File

@ -52,11 +52,13 @@ target_compile_features(mod_gpg_info PRIVATE cxx_std_17)
# i18n # i18n
set(LOCALE_TS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ts) set(LOCALE_TS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ts)
set(TS_FILES "${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.en_US.ts" set(TS_FILES "${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.en_US.ts"
"${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.de_DE.ts" "${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.de_DE.ts"
"${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.fr_FR.ts" "${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.fr_FR.ts"
"${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.zh_CN.ts") "${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.it_iT.ts"
"${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.zh_CN.ts"
"${LOCALE_TS_PATH}/ModuleGnuPGInfoGathering.zh_TW.ts")
qt_add_translations(mod_gpg_info qt_add_translations(mod_gpg_info
RESOURCE_PREFIX "/i18n" RESOURCE_PREFIX "/i18n"
TS_FILES ${TS_FILES} TS_FILES ${TS_FILES}
SOURCES ${MODULE_SOURCE_FILES} SOURCES ${MODULE_SOURCE_FILES}
INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -81,6 +81,8 @@ auto GFRegisterModule() -> int {
auto GFActiveModule() -> int { auto GFActiveModule() -> int {
LISTEN("REQUEST_GATHERING_GNUPG_INFO"); LISTEN("REQUEST_GATHERING_GNUPG_INFO");
LOAD_TRANS("ModuleGnuPGInfoGathering");
return 0; return 0;
} }

View File

@ -1,3 +1,95 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS/> <TS version="2.1" language="de_DE">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished">GnuPG</translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished">Name</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished">Beschreibung</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished">Version</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished">Prüfsumme</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished">Binärer Pfad</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished">Komponenten</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished">Verzeichnisse</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished">Optionen</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished">Verzeichnis Typ</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished">Pfad</translation>
</message>
<message>
<source>Configurations</source>
<translation type="obsolete">Konfigurationen</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation>Komponente</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation>Gruppe</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished">Schlüssel</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation>Standardwert</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished">Wert</translation>
</message>
</context>
</TS>

View File

@ -1,3 +1,91 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS/> <TS version="2.1">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -1,3 +1,95 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS/> <TS version="2.1" language="fr_FR">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished">GnuPG</translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished">Nom</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished">Description</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished">Version</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished">Somme de contrôle</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished">Chemin binaire</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished">Composants</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished">Annuaires</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished">Type de répertoire</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished">Chemin d&apos;accès</translation>
</message>
<message>
<source>Configurations</source>
<translation type="obsolete">Configurations</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation type="unfinished">Composant</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation type="unfinished">Groupe</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished">Clé</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation type="unfinished">Valeur par défaut</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished">Valeur</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished">GnuPG</translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished">Nome</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished">Descrizione</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished">Versione</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished">Somma di controllo</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished">Percorso binario</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished">Componenti</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configurations</source>
<translation type="obsolete">Configurazioni</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished">Chiave</translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished">Valore</translation>
</message>
</context>
</TS>

View File

@ -1,3 +1,91 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS/> <TS version="2.1" language="zh_CN">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished">GnuPG</translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_TW">
<context>
<name>GTrC</name>
<message>
<location filename="../GnuPGInfoGatheringModule.cpp" line="76"/>
<source>GnuPG</source>
<translation type="unfinished">GnuPG</translation>
</message>
</context>
<context>
<name>GnupgTab</name>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="47"/>
<source>Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Checksum</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="48"/>
<source>Binary Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="50"/>
<source>Components</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="51"/>
<source>Directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="52"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Directory Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="71"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configurations</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="92"/>
<source>Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="93"/>
<source>Default Value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../GnupgTab.cpp" line="94"/>
<source>Value</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -45,7 +45,6 @@
#include <windows.h> #include <windows.h>
#endif #endif
#include <assuan.h>
#include <qhash.h> #include <qhash.h>
#include "pinentry.h" #include "pinentry.h"
@ -229,50 +228,6 @@ int pinentry_inq_quality(const QString &passphrase) {
return std::max(-100, std::min(100, score)); return std::max(-100, std::min(100, score));
} }
/* Run a genpin inquiry */
char *pinentry_inq_genpin(pinentry_t pin) {
assuan_context_t ctx = (assuan_context_t)pin->ctx_assuan;
const char prefix[] = "INQUIRE GENPIN";
char *line;
size_t linelen;
int gotvalue = 0;
char *value = NULL;
int rc;
if (!ctx) return 0; /* Can't run the callback. */
rc = assuan_write_line(ctx, prefix);
if (rc) {
fprintf(stderr, "ASSUAN WRITE LINE failed: rc=%d\n", rc);
return 0;
}
for (;;) {
do {
rc = assuan_read_line(ctx, &line, &linelen);
if (rc) {
fprintf(stderr, "ASSUAN READ LINE failed: rc=%d\n", rc);
free(value);
return 0;
}
} while (*line == '#' || !linelen);
if (line[0] == 'E' && line[1] == 'N' && line[2] == 'D' &&
(!line[3] || line[3] == ' '))
break; /* END command received*/
if (line[0] == 'C' && line[1] == 'A' && line[2] == 'N' &&
(!line[3] || line[3] == ' '))
break; /* CAN command received*/
if (line[0] == 'E' && line[1] == 'R' && line[2] == 'R' &&
(!line[3] || line[3] == ' '))
break; /* ERR command received*/
if (line[0] != 'D' || line[1] != ' ' || linelen < 3 || gotvalue) continue;
gotvalue = 1;
value = strdup(line + 2);
}
return value;
}
/* Try to make room for at least LEN bytes in the pinentry. Returns /* Try to make room for at least LEN bytes in the pinentry. Returns
new buffer on success and 0 on failure or when the old buffer is new buffer on success and 0 on failure or when the old buffer is
sufficient. */ sufficient. */

View File

@ -54,12 +54,15 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_AUTOUIC_SEARCH_PATHS} ${CMAKE_CURRENT_SOU
# i18n # i18n
set(LOCALE_TS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ts) set(LOCALE_TS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ts)
set(TS_FILES "${LOCALE_TS_PATH}/ModuleVersionChecking.en_US.ts" set(TS_FILES
"${LOCALE_TS_PATH}/ModuleVersionChecking.de_DE.ts" "${LOCALE_TS_PATH}/ModuleVersionChecking.en_US.ts"
"${LOCALE_TS_PATH}/ModuleVersionChecking.fr_FR.ts" "${LOCALE_TS_PATH}/ModuleVersionChecking.de_DE.ts"
"${LOCALE_TS_PATH}/ModuleVersionChecking.zh_CN.ts") "${LOCALE_TS_PATH}/ModuleVersionChecking.fr_FR.ts"
"${LOCALE_TS_PATH}/ModuleVersionChecking.it_IT.ts"
"${LOCALE_TS_PATH}/ModuleVersionChecking.zh_CN.ts"
"${LOCALE_TS_PATH}/ModuleVersionChecking.zh_TW.ts")
qt_add_translations(mod_ver_check qt_add_translations(mod_ver_check
RESOURCE_PREFIX "/i18n" RESOURCE_PREFIX "/i18n"
TS_FILES ${TS_FILES} TS_FILES ${TS_FILES}
SOURCES ${MODULE_SOURCE_FILES} SOURCES ${MODULE_SOURCE_FILES}
INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -57,16 +57,7 @@ auto GFActiveModule() -> int {
LISTEN("APPLICATION_LOADED"); LISTEN("APPLICATION_LOADED");
LISTEN("CHECK_APPLICATION_VERSION"); LISTEN("CHECK_APPLICATION_VERSION");
// load translations LOAD_TRANS("ModuleVersionChecking");
QFile f(
QString(":/i18n/ModuleVersionChecking.%1.qm").arg(GFAppActiveLocale()));
if (f.exists() && f.open(QIODevice::ReadOnly)) {
auto f_n = f.fileName().toUtf8();
FLOG_INFO("version checking module loading, locale: %1, path: %2",
GFAppActiveLocale(), f_n.data());
auto b = f.readAll();
GFAppRegisterTranslator(AllocBufferAndCopy(b), b.size());
}
GFUIMountEntry(DUP("AboutDialogTabs"), GFUIMountEntry(DUP("AboutDialogTabs"),
QMapToMetaDataArray({{"TabTitle", GTrC::tr("Update")}}), 1, QMapToMetaDataArray({{"TabTitle", GTrC::tr("Update")}}), 1,

View File

@ -4,7 +4,7 @@
<context> <context>
<name>GTrC</name> <name>GTrC</name>
<message> <message>
<location filename="../VersionCheckingModule.cpp" line="92"/> <location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source> <source>Update</source>
<translation type="unfinished">Aktualisieren</translation> <translation type="unfinished">Aktualisieren</translation>
</message> </message>
@ -12,65 +12,65 @@
<context> <context>
<name>UpdateTab</name> <name>UpdateTab</name>
<message> <message>
<location filename="../UpdateTab.cpp" line="45"/> <location filename="../UpdateTab.cpp" line="46"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source> <source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished">Es wird empfohlen, immer die Version von GpgFrontend zu überprüfen und auf die neueste Version zu aktualisieren.</translation> <translation type="unfinished">Es wird empfohlen, immer die Version von GpgFrontend zu überprüfen und auf die neueste Version zu aktualisieren.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="48"/> <location filename="../UpdateTab.cpp" line="49"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source> <source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished">Neue Versionen beinhalten nicht nur neue Funktionen, sondern stellen oft auch Funktions- und Sicherheitskorrekturen dar.</translation> <translation type="unfinished">Neue Versionen beinhalten nicht nur neue Funktionen, sondern stellen oft auch Funktions- und Sicherheitskorrekturen dar.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="54"/> <location filename="../UpdateTab.cpp" line="55"/>
<source>Current Version</source> <source>Current Version</source>
<translation type="unfinished">Aktuelle Version</translation> <translation type="unfinished">Aktuelle Version</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="55"/> <location filename="../UpdateTab.cpp" line="56"/>
<source>: </source> <source>: </source>
<translation type="unfinished">: </translation> <translation type="unfinished">: </translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="131"/> <location filename="../UpdateTab.cpp" line="132"/>
<source>Latest Version From Github</source> <source>Latest Version From Github</source>
<translation type="unfinished">Neueste Version von Github</translation> <translation type="unfinished">Neueste Version von Github</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="137"/> <location filename="../UpdateTab.cpp" line="138"/>
<source>The current version is less than the latest version on github.</source> <source>The current version is less than the latest version on github.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Die aktuelle Versionsnunmmer ist kleiner als die neueste Version auf github.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="139"/> <location filename="../UpdateTab.cpp" line="140"/>
<location filename="../UpdateTab.cpp" line="150"/> <location filename="../UpdateTab.cpp" line="151"/>
<location filename="../UpdateTab.cpp" line="162"/> <location filename="../UpdateTab.cpp" line="163"/>
<source>Please click</source> <source>Please click</source>
<translation type="unfinished"></translation> <translation type="unfinished">Bitte klicken Sie</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>Here</source> <source>Here</source>
<translation type="unfinished"></translation> <translation type="unfinished">Hier</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>to download the latest stable version.</source> <source>to download the latest stable version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">um die neueste stabile Version herunterzuladen.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="148"/> <location filename="../UpdateTab.cpp" line="149"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source> <source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Diese Version hat ernsthafte Probleme und wurde zurückgezogen. Bitte hören Sie sofort auf, sie zu verwenden.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="159"/> <location filename="../UpdateTab.cpp" line="160"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source> <source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Diese Version wurde noch nicht veröffentlicht, möglicherweise handelt es sich um eine Beta-Version. Wenn Sie kein Tester sind und Ihnen Stabilität der Version wichtig ist, verwenden Sie diese Version bitte nicht.</translation>
</message> </message>
</context> </context>
</TS> </TS>

View File

@ -4,7 +4,7 @@
<context> <context>
<name>GTrC</name> <name>GTrC</name>
<message> <message>
<location filename="../VersionCheckingModule.cpp" line="92"/> <location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source> <source>Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,63 +12,63 @@
<context> <context>
<name>UpdateTab</name> <name>UpdateTab</name>
<message> <message>
<location filename="../UpdateTab.cpp" line="45"/> <location filename="../UpdateTab.cpp" line="46"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source> <source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="48"/> <location filename="../UpdateTab.cpp" line="49"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source> <source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="54"/> <location filename="../UpdateTab.cpp" line="55"/>
<source>Current Version</source> <source>Current Version</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="55"/> <location filename="../UpdateTab.cpp" line="56"/>
<source>: </source> <source>: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="131"/> <location filename="../UpdateTab.cpp" line="132"/>
<source>Latest Version From Github</source> <source>Latest Version From Github</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="137"/> <location filename="../UpdateTab.cpp" line="138"/>
<source>The current version is less than the latest version on github.</source> <source>The current version is less than the latest version on github.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="139"/> <location filename="../UpdateTab.cpp" line="140"/>
<location filename="../UpdateTab.cpp" line="150"/> <location filename="../UpdateTab.cpp" line="151"/>
<location filename="../UpdateTab.cpp" line="162"/> <location filename="../UpdateTab.cpp" line="163"/>
<source>Please click</source> <source>Please click</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>Here</source> <source>Here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>to download the latest stable version.</source> <source>to download the latest stable version.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="148"/> <location filename="../UpdateTab.cpp" line="149"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source> <source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="159"/> <location filename="../UpdateTab.cpp" line="160"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source> <source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -1,76 +1,76 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1"> <TS version="2.1" language="fr_FR">
<context> <context>
<name>GTrC</name> <name>GTrC</name>
<message> <message>
<location filename="../VersionCheckingModule.cpp" line="92"/> <location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source> <source>Update</source>
<translation type="unfinished"></translation> <translation type="unfinished">Mettre à jour</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UpdateTab</name> <name>UpdateTab</name>
<message> <message>
<location filename="../UpdateTab.cpp" line="45"/> <location filename="../UpdateTab.cpp" line="46"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source> <source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Il est recommandé de toujours vérifier la version de GpgFrontend et de passer à la dernière version.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="48"/> <location filename="../UpdateTab.cpp" line="49"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source> <source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Les nouvelles versions ne représentent pas seulement de nouvelles fonctionnalités, mais représentent également souvent des correctifs fonctionnels et de sécurité.</translation>
</message>
<message>
<location filename="../UpdateTab.cpp" line="54"/>
<source>Current Version</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="55"/> <location filename="../UpdateTab.cpp" line="55"/>
<source>Current Version</source>
<translation type="unfinished">Version actuelle</translation>
</message>
<message>
<location filename="../UpdateTab.cpp" line="56"/>
<source>: </source> <source>: </source>
<translation type="unfinished"></translation> <translation type="unfinished">:</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="131"/> <location filename="../UpdateTab.cpp" line="132"/>
<source>Latest Version From Github</source> <source>Latest Version From Github</source>
<translation type="unfinished"></translation> <translation type="unfinished">Dernière version de Github</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="137"/> <location filename="../UpdateTab.cpp" line="138"/>
<source>The current version is less than the latest version on github.</source> <source>The current version is less than the latest version on github.</source>
<translation type="unfinished"></translation> <translation type="unfinished">La version actuelle est inférieure à la dernière version sur github.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="139"/> <location filename="../UpdateTab.cpp" line="140"/>
<location filename="../UpdateTab.cpp" line="150"/> <location filename="../UpdateTab.cpp" line="151"/>
<location filename="../UpdateTab.cpp" line="162"/> <location filename="../UpdateTab.cpp" line="163"/>
<source>Please click</source> <source>Please click</source>
<translation type="unfinished"></translation> <translation type="unfinished">Cliquez s&apos;il vous plait</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>Here</source> <source>Here</source>
<translation type="unfinished"></translation> <translation type="unfinished">Ici</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/> <location filename="../UpdateTab.cpp" line="143"/>
<location filename="../UpdateTab.cpp" line="153"/> <location filename="../UpdateTab.cpp" line="154"/>
<location filename="../UpdateTab.cpp" line="165"/> <location filename="../UpdateTab.cpp" line="166"/>
<source>to download the latest stable version.</source> <source>to download the latest stable version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">pour télécharger la dernière version stable.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="148"/> <location filename="../UpdateTab.cpp" line="149"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source> <source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Cette version a de sérieux problèmes et a é retirée. Veuillez cesser de l&apos;utiliser immédiatement.</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="159"/> <location filename="../UpdateTab.cpp" line="160"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source> <source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">Cette version n&apos;est pas encore sortie, il s&apos;agit peut-être d&apos;une version bêta. Si vous n&apos;êtes pas un testeur et que vous vous souciez de la stabilité de la version, veuillez ne pas utiliser cette version.</translation>
</message> </message>
</context> </context>
</TS> </TS>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>GTrC</name>
<message>
<location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source>
<translation type="unfinished">Aggiorna</translation>
</message>
</context>
<context>
<name>UpdateTab</name>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="163"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished">Si consiglia di controllare sempre la versione di GpgFrontend e di aggiornare all&apos;ultima versione.</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="166"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished">Le nuove versioni non rappresentano solo nuove funzionalità, ma spesso rappresentano anche correzioni funzionali e di sicurezza.</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="172"/>
<source>Current Version</source>
<translation type="unfinished">Versione corrente</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="173"/>
<source>: </source>
<translation type="unfinished">: </translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="248"/>
<source>Latest Version From Github</source>
<translation type="unfinished">Ultima versione da Github</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="254"/>
<source>The current version is less than the latest version on github.</source>
<translation type="unfinished">La versione corrente è inferiore all&apos;ultima versione su github.</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="256"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="267"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="279"/>
<source>Please click</source>
<translation type="unfinished">Per favore clicca</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="259"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="270"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="282"/>
<source>Here</source>
<translation type="unfinished">Qui</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="259"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="270"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="282"/>
<source>to download the latest stable version.</source>
<translation type="unfinished">per scaricare l&apos;ultima versione stabile.</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="265"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished">Questa versione ha seri problemi ed è stata ritirata. Si prega di smettere di usarlo immediatamente.</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="276"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished">Questa versione non è ancora stata rilasciata, potrebbe essere una versione beta. Se non sei un tester e ti interessa la stabilità della versione, non utilizzare questa versione.</translation>
</message>
</context>
</TS>

View File

@ -4,73 +4,56 @@
<context> <context>
<name>GTrC</name> <name>GTrC</name>
<message> <message>
<location filename="../VersionCheckingModule.cpp" line="92"/> <location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source> <source>Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>UpdateTab</name> <name>UpdateTab</name>
<message> <message>
<location filename="../UpdateTab.cpp" line="45"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source> <source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished"></translation> <translation type="unfinished"> GpgFrontend </translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="48"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source> <source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="54"/>
<source>Current Version</source> <source>Current Version</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="55"/>
<source>: </source> <source>: </source>
<translation type="unfinished"></translation> <translation type="vanished"> </translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="131"/>
<source>Latest Version From Github</source> <source>Latest Version From Github</source>
<translation type="unfinished"></translation> <translation type="unfinished"> Github </translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="137"/>
<source>The current version is less than the latest version on github.</source> <source>The current version is less than the latest version on github.</source>
<translation type="unfinished"></translation> <translation type="unfinished">github上的最新版本</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="139"/>
<location filename="../UpdateTab.cpp" line="150"/>
<location filename="../UpdateTab.cpp" line="162"/>
<source>Please click</source> <source>Please click</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/>
<location filename="../UpdateTab.cpp" line="153"/>
<location filename="../UpdateTab.cpp" line="165"/>
<source>Here</source> <source>Here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="142"/>
<location filename="../UpdateTab.cpp" line="153"/>
<location filename="../UpdateTab.cpp" line="165"/>
<source>to download the latest stable version.</source> <source>to download the latest stable version.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="148"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source> <source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished"></translation> <translation type="vanished">使</translation>
</message> </message>
<message> <message>
<location filename="../UpdateTab.cpp" line="159"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source> <source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished"></translation> <translation type="unfinished">使</translation>
</message> </message>
</context> </context>
</TS> </TS>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>GTrC</name>
<message>
<location filename="../VersionCheckingModule.cpp" line="72"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UpdateTab</name>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="163"/>
<source>It is recommended that you always check the version of GpgFrontend and upgrade to the latest version.</source>
<translation type="unfinished"> GpgFrontend </translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="166"/>
<source>New versions not only represent new features, but also often represent functional and security fixes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="172"/>
<source>Current Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="173"/>
<source>: </source>
<translation type="unfinished">: </translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="248"/>
<source>Latest Version From Github</source>
<translation type="unfinished"> Github </translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="254"/>
<source>The current version is less than the latest version on github.</source>
<translation type="unfinished">github上的最新版本</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="256"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="267"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="279"/>
<source>Please click</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="259"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="270"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="282"/>
<source>Here</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="259"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="270"/>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="282"/>
<source>to download the latest stable version.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="265"/>
<source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source>
<translation type="unfinished">使</translation>
</message>
<message>
<location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="276"/>
<source>This version has not been released yet, it may be a beta version. If you are not a tester and care about version stability, please do not use this version.</source>
<translation type="unfinished">使</translation>
</message>
</context>
</TS>