diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts index 7fccc1d5c..dbdc8b784 100755 --- a/localization/rssguard_en.ts +++ b/localization/rssguard_en.ts @@ -6775,12 +6775,12 @@ Description: %3 SettingsLocalization - + Language Language - + Code Code @@ -6789,6 +6789,11 @@ Description: %3 Author Author + + + Help us to improve %1 <a href="%2">translations</a>. + + Localization diff --git a/src/librssguard/gui/settings/settingslocalization.cpp b/src/librssguard/gui/settings/settingslocalization.cpp index 1bb09199a..fbe8a9bab 100644 --- a/src/librssguard/gui/settings/settingslocalization.cpp +++ b/src/librssguard/gui/settings/settingslocalization.cpp @@ -6,6 +6,7 @@ #include "miscellaneous/iconfactory.h" #include "miscellaneous/localization.h" #include "miscellaneous/settings.h" +#include "network-web/webfactory.h" SettingsLocalization::SettingsLocalization(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent), m_ui(new Ui::SettingsLocalization) { @@ -14,8 +15,12 @@ SettingsLocalization::SettingsLocalization(Settings* settings, QWidget* parent) m_ui->m_treeLanguages->setHeaderHidden(false); m_ui->m_treeLanguages->setHeaderLabels(QStringList() << /*: Language column of language list. */ tr("Language") - << /*: Lang. code column of language list. */ tr("Code") - << tr("Author")); + << /*: Lang. code column of language list. */ tr("Code") << tr("Author")); + + m_ui->m_lblHelp->setText(tr(R"(Help us to improve %1 translations.)") + .arg(QSL(APP_NAME), QSL("https://crowdin.com/project/rssguard"))); + + connect(m_ui->m_lblHelp, &QLabel::linkActivated, qApp->web(), &WebFactory::openUrlInExternalBrowser); // Setup languages. m_ui->m_treeLanguages->header()->setSectionResizeMode(0, QHeaderView::ResizeMode::ResizeToContents); @@ -44,9 +49,8 @@ void SettingsLocalization::loadSettings() { } m_ui->m_treeLanguages->sortByColumn(0, Qt::SortOrder::AscendingOrder); - QList matching_items = m_ui->m_treeLanguages->findItems(qApp->localization()->loadedLanguage(), - Qt::MatchFlag::MatchContains, - 1); + QList matching_items = + m_ui->m_treeLanguages->findItems(qApp->localization()->loadedLanguage(), Qt::MatchFlag::MatchContains, 1); if (!matching_items.isEmpty()) { m_ui->m_treeLanguages->setCurrentItem(matching_items[0]); diff --git a/src/librssguard/gui/settings/settingslocalization.ui b/src/librssguard/gui/settings/settingslocalization.ui index 0b0517d06..271de9068 100644 --- a/src/librssguard/gui/settings/settingslocalization.ui +++ b/src/librssguard/gui/settings/settingslocalization.ui @@ -10,7 +10,7 @@ 263 - + @@ -36,6 +36,9 @@ + + + diff --git a/src/librssguard/network-web/webfactory.h b/src/librssguard/network-web/webfactory.h index 36d7f3221..46b69524d 100644 --- a/src/librssguard/network-web/webfactory.h +++ b/src/librssguard/network-web/webfactory.h @@ -52,7 +52,6 @@ class WebFactory : public QObject { Readability* readability() const; void updateProxy(); - bool openUrlInExternalBrowser(const QString& url) const; bool sendMessageViaEmail(const Message& message); #if defined(USE_WEBENGINE) @@ -67,6 +66,8 @@ class WebFactory : public QObject { void cleanupCache(); #endif + bool openUrlInExternalBrowser(const QString& url) const; + #if defined(USE_WEBENGINE) private slots: void createMenu(QMenu* menu = nullptr);