some missing file, sync langs

This commit is contained in:
Martin Rotter 2022-03-02 11:07:17 +01:00
parent a34a3c8dd7
commit 9b97c34bda
5 changed files with 52 additions and 20 deletions

View File

@ -385,7 +385,7 @@ version by clicking this popup notification.</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/gui/reusable/discoverfeedsbutton.cpp" line="33"/> <location filename="../src/librssguard/gui/reusable/discoverfeedsbutton.cpp" line="33"/>
<source>Add one of %n feed(s)</source> <source>Add one of %n feed(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>Add one of %n feed</numerusform><numerusform>Add one of %n feeds</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/gui/reusable/discoverfeedsbutton.cpp" line="55"/> <location filename="../src/librssguard/gui/reusable/discoverfeedsbutton.cpp" line="55"/>
@ -512,12 +512,12 @@ Click here to open parent directory.</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/network-web/downloadmanager.cpp" line="707"/> <location filename="../src/librssguard/network-web/downloadmanager.cpp" line="707"/>
<source>%n minutes remaining</source> <source>%n minutes remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n minute remaining</numerusform><numerusform>%n minutes remaining</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/network-web/downloadmanager.cpp" line="711"/> <location filename="../src/librssguard/network-web/downloadmanager.cpp" line="711"/>
<source>%n seconds remaining</source> <source>%n seconds remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n second remaining</numerusform><numerusform>%n seconds remaining</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/network-web/downloadmanager.cpp" line="723"/> <location filename="../src/librssguard/network-web/downloadmanager.cpp" line="723"/>
@ -542,7 +542,7 @@ Click here to open parent directory.</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/network-web/downloadmanager.cpp" line="568"/> <location filename="../src/librssguard/network-web/downloadmanager.cpp" line="568"/>
<source>Downloading %n file(s)...</source> <source>Downloading %n file(s)...</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>Downloading %n file...</numerusform><numerusform>Downloading %n files...</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/network-web/downloadmanager.ui" line="38"/> <location filename="../src/librssguard/network-web/downloadmanager.ui" line="38"/>
@ -612,7 +612,7 @@ Status: %3</source>
<location filename="../src/librssguard/services/abstract/feed.cpp" line="231"/> <location filename="../src/librssguard/services/abstract/feed.cpp" line="231"/>
<source>uses global settings (%n minute(s) to next auto-fetch of articles)</source> <source>uses global settings (%n minute(s) to next auto-fetch of articles)</source>
<extracomment>Describes feed auto-update status.</extracomment> <extracomment>Describes feed auto-update status.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>uses global settings (%n minute to next auto-fetch of articles)</numerusform><numerusform>uses global settings (%n minutes to next auto-fetch of articles)</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/services/abstract/feed.cpp" line="234"/> <location filename="../src/librssguard/services/abstract/feed.cpp" line="234"/>
@ -623,7 +623,7 @@ Status: %3</source>
<location filename="../src/librssguard/services/abstract/feed.cpp" line="241"/> <location filename="../src/librssguard/services/abstract/feed.cpp" line="241"/>
<source>uses specific settings (%n minute(s) to next auto-fetching of new articles)</source> <source>uses specific settings (%n minute(s) to next auto-fetching of new articles)</source>
<extracomment>Describes feed auto-update status.</extracomment> <extracomment>Describes feed auto-update status.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>uses specific settings (%n minute to next auto-fetching of new articles)</numerusform><numerusform>uses specific settings (%n minutes to next auto-fetching of new articles)</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/services/abstract/feed.cpp" line="254"/> <location filename="../src/librssguard/services/abstract/feed.cpp" line="254"/>
@ -664,7 +664,7 @@ Status: %3</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/miscellaneous/feedreader.cpp" line="335"/> <location filename="../src/librssguard/miscellaneous/feedreader.cpp" line="335"/>
<source>I will auto-download new articles for %n feed(s).</source> <source>I will auto-download new articles for %n feed(s).</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>I will auto-download new articles for %n feed.</numerusform><numerusform>I will auto-download new articles for %n feeds.</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/miscellaneous/feedreader.cpp" line="89"/> <location filename="../src/librssguard/miscellaneous/feedreader.cpp" line="89"/>
@ -3979,27 +3979,27 @@ Login tokens expiration: %2</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/core/messagesmodel.cpp" line="324"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="324"/>
<source>%n months ago</source> <source>%n months ago</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n month ago</numerusform><numerusform>%n months ago</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/core/messagesmodel.cpp" line="328"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="328"/>
<source>%n weeks ago</source> <source>%n weeks ago</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n week ago</numerusform><numerusform>%n weeks ago</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/core/messagesmodel.cpp" line="332"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="332"/>
<source>%n days ago</source> <source>%n days ago</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n day ago</numerusform><numerusform>%n days ago</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/core/messagesmodel.cpp" line="340"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="340"/>
<source>%n hours ago</source> <source>%n hours ago</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n hour ago</numerusform><numerusform>%n hours ago</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/core/messagesmodel.cpp" line="344"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="344"/>
<source>%n minutes ago</source> <source>%n minutes ago</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n minute ago</numerusform><numerusform>%n minutes ago</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/core/messagesmodel.cpp" line="336"/> <location filename="../src/librssguard/core/messagesmodel.cpp" line="336"/>
@ -4415,7 +4415,7 @@ Login tokens expiration: %2</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/gui/newspaperpreviewer.cpp" line="45"/> <location filename="../src/librssguard/gui/newspaperpreviewer.cpp" line="45"/>
<source>Show more articles (%n remaining)</source> <source>Show more articles (%n remaining)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>Show more articles (%n remaining)</numerusform><numerusform>Show more articles (%n remaining)</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/gui/newspaperpreviewer.cpp" line="51"/> <location filename="../src/librssguard/gui/newspaperpreviewer.cpp" line="51"/>
@ -4657,7 +4657,11 @@ Login tokens expiration: %2</source>
<source> <source>
+ %n other feeds.</source> + %n other feeds.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>
+ %n other feed.</numerusform><numerusform>
+ %n other feeds.</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/services/standard/standardserviceroot.cpp" line="57"/> <location filename="../src/librssguard/services/standard/standardserviceroot.cpp" line="57"/>
@ -4887,7 +4891,7 @@ List of supported readers:</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/services/abstract/recyclebin.cpp" line="24"/> <location filename="../src/librssguard/services/abstract/recyclebin.cpp" line="24"/>
<source>%n deleted article(s).</source> <source>%n deleted article(s).</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n deleted article.</numerusform><numerusform>%n deleted articles.</numerusform></translation>
</message> </message>
</context> </context>
<context> <context>
@ -5072,7 +5076,7 @@ Login tokens expiration: %2</source>
<location filename="../src/librssguard/services/abstract/rootitem.cpp" line="146"/> <location filename="../src/librssguard/services/abstract/rootitem.cpp" line="146"/>
<source>%n unread article(s).</source> <source>%n unread article(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment> <extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n unread article.</numerusform><numerusform>%n unread articles.</numerusform></translation>
</message> </message>
</context> </context>
<context> <context>
@ -6704,13 +6708,13 @@ Unread news: %2</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="54"/> <location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="54"/>
<source>%n hour(s)</source> <source>%n hour(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="55"/> <location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="55"/>
<location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="65"/> <location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="65"/>
<source>%n minute(s)</source> <source>%n minute(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n minute</numerusform><numerusform>%n minutes</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="57"/> <location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="57"/>
@ -6721,7 +6725,7 @@ Unread news: %2</source>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="64"/> <location filename="../src/librssguard/gui/reusable/timespinbox.cpp" line="64"/>
<source>%n second(s)</source> <source>%n second(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>%n second</numerusform><numerusform>%n seconds</numerusform></translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -80,7 +80,7 @@
<file>skins/nudus-light/metadata.xml</file> <file>skins/nudus-light/metadata.xml</file>
<file>skins/nudus-light/qt_style.qss</file> <file>skins/nudus-light/qt_style.qss</file>
<file>initial_feeds/feeds-en.opml</file> <file>initial_feeds/feeds-en_US.opml</file>
<file>desktop/com.github.rssguard.desktop</file> <file>desktop/com.github.rssguard.desktop</file>
<file>desktop/com.github.rssguard.desktop.autostart</file> <file>desktop/com.github.rssguard.desktop.autostart</file>

View File

@ -2095,6 +2095,30 @@ bool DatabaseQueries::deleteCategory(const QSqlDatabase& db, int id) {
return q.exec(); return q.exec();
} }
void DatabaseQueries::fixupOrders(const QSqlDatabase& db) {
QSqlQuery res = db.exec(QSL("SELECT COUNT(*) FROM Accounts WHERE ordr = 0 "
"UNION ALL "
"SELECT COUNT(*) FROM Categories WHERE ordr = 0 "
"UNION ALL "
"SELECT COUNT(*) FROM Feeds WHERE ordr = 0;"));
bool should_fixup = false;
while (res.next() && !(should_fixup = (res.value(0).toInt() > 1))) {}
if (should_fixup) {
// Some orders are messed up, fix.
qCriticalNN << LOGSEC_DB << "Order of items is messed up, fixing.";
for (const QString& table : { QSL("Accounts"), QSL("Categories"), QSL("Feeds") }) {
QSqlQuery q = db.exec(QSL("UPDATE %1 SET ordr = id;").arg(table));
if (q.lastError().isValid()) {
qFatal("Fixup of messed up order failed: '%s'.", qPrintable(q.lastError().text()));
}
}
}
}
void DatabaseQueries::moveItemUp(RootItem* item, const QSqlDatabase& db) {} void DatabaseQueries::moveItemUp(RootItem* item, const QSqlDatabase& db) {}
void DatabaseQueries::moveItemDown(RootItem* item, const QSqlDatabase& db) {} void DatabaseQueries::moveItemDown(RootItem* item, const QSqlDatabase& db) {}

View File

@ -135,6 +135,7 @@ class DatabaseQueries {
int account_id, bool* ok = nullptr); int account_id, bool* ok = nullptr);
// Item order methods. // Item order methods.
static void fixupOrders(const QSqlDatabase& db);
static void moveItemUp(RootItem* item, const QSqlDatabase& db); static void moveItemUp(RootItem* item, const QSqlDatabase& db);
static void moveItemDown(RootItem* item, const QSqlDatabase& db); static void moveItemDown(RootItem* item, const QSqlDatabase& db);
@ -337,6 +338,9 @@ Assignment DatabaseQueries::getFeeds(const QSqlDatabase& db,
template<typename Categ, typename Fee> template<typename Categ, typename Fee>
void DatabaseQueries::loadRootFromDatabase(ServiceRoot* root) { void DatabaseQueries::loadRootFromDatabase(ServiceRoot* root) {
QSqlDatabase database = qApp->database()->driver()->connection(root->metaObject()->className()); QSqlDatabase database = qApp->database()->driver()->connection(root->metaObject()->className());
fixupOrders(database);
Assignment categories = DatabaseQueries::getCategories<Categ>(database, root->accountId()); Assignment categories = DatabaseQueries::getCategories<Categ>(database, root->accountId());
Assignment feeds = DatabaseQueries::getFeeds<Fee>(database, qApp->feedReader()->messageFilters(), root->accountId()); Assignment feeds = DatabaseQueries::getFeeds<Fee>(database, qApp->feedReader()->messageFilters(), root->accountId());
auto labels = DatabaseQueries::getLabelsForAccount(database, root->accountId()); auto labels = DatabaseQueries::getLabelsForAccount(database, root->accountId());