diff --git a/localization/rssguard_cs.ts b/localization/rssguard_cs.ts
index 41cc194f5..7c0c4b553 100644
--- a/localization/rssguard_cs.ts
+++ b/localization/rssguard_cs.ts
@@ -129,67 +129,67 @@ Chyba: %1
Application
-
+ Application is already running.Aplikace již běží
-
+ Output directory is not writable.Nelze psát do cílové složky
-
+ Settings file not copied to output directory successfully.Soubor nastavení nebyl zkopírován do cílového adresáře.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Obnovení databáze nebylo spuštěno. Ujistěte se, že cílový adresář je zapisovatelný.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Obnovení nastavení nebylo spuštěno. Ujistěte se, že cílový adresář je zapisovatelný.
-
+ Cannot add feedNelze přidat kanál
-
+ Feed cannot be added because there is no active account which can add feeds.Kanál nemůže být přidán, protože nemáte aktivovaný žádný účet který umí přidávat kanály.
-
+ Packages %1 were updated.Balíčky %1 byly aktualizovány.
-
+ Unread articles fetchedStaženy nepřečtené zprávy
-
+ Go to changelogZobrazit seznam změn
-
+ AdBlock needs to be configuredJe třeba nastavit AdBlock
-
+ WelcomeVítejte
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Prosím, zkontrolujte novinky kliknutím
na tuto bublinu.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock není korektně nakonfigurován. Běžte do "Nastavení" -> "Node.js" a zkontrolujte nastavení.
-
+ Already runningJiž běží
-
+ Packages %1 were NOT updated because of error: %2.Balíčky %1 NEBYLY aktualizovány kvůli chybě: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ na tuto bublinu.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5173,14 +5211,14 @@ Tokeny vyprší: %2
cs
-
+ LANG_AUTHORName of translator - optional.Martin Rotter
-
+
+ %n other feeds.
@@ -5380,6 +5418,26 @@ Podporované čtečky:
Published articlesPublikováno
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6821,45 +6879,46 @@ Po instalaci Node.js také restartujte dialog "Nastavení".
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Pro funkční notifikace je třeba mít povolenou tray ikonu.
-
-Jsou obsaženy zabudované zvuky, napište ":" a seznam se zobrazí.
- Enable notificationsPovolit notifikace
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifikace
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7587,32 +7646,27 @@ Nepřečtené zprávy: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_da.ts b/localization/rssguard_da.ts
index f1c55e603..f4a067560 100644
--- a/localization/rssguard_da.ts
+++ b/localization/rssguard_da.ts
@@ -129,67 +129,67 @@ Fejl: %1
Application
-
+ Application is already running.Programmet kører allerede
-
+ Output directory is not writable.Målbiblioteket er ikke skrivbart
-
+ Settings file not copied to output directory successfully.Indstillinger kunne ikke kopieres til uddatabibliotek.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Gendannelse af database ikke påbegyndt. Sørg for at målbiblioteket er skrivbart.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Gendannelse af indstillinger ikke påbegyndt. Sørg for at målbiblioteket er skrivbart.
-
+ Cannot add feedKan ikke tilføje nyhedskilde
-
+ Feed cannot be added because there is no active account which can add feeds.Nyhedskilde kan ikke tilføjes, da der ikke er nogen aktiv konto at tilføje den til.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUlæste artikler hentet
-
+ Go to changelogGå til ændringslog
-
+ AdBlock needs to be configuredAdBlock skal indstilles
-
+ WelcomeVelkommen
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -201,21 +201,57 @@ version ved at klikke på denne pop up
påmindelse.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningKører allerede
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -313,7 +349,7 @@ påmindelse.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5145,14 +5181,14 @@ Login tokens expiration: %2
da
-
+ LANG_AUTHORName of translator - optional.flywheeldk
-
+
+ %n other feeds.
@@ -5346,6 +5382,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6781,45 +6837,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsSlå påmindelser til
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsPåmindelser
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7541,32 +7598,27 @@ Ulæste nyheder: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_de.ts b/localization/rssguard_de.ts
index f3f923d02..7bc386246 100644
--- a/localization/rssguard_de.ts
+++ b/localization/rssguard_de.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Die Anwendung läuft bereits.
-
+ Output directory is not writable.Das Ausgabeverzeichnis ist nicht beschreibbar.
-
+ Settings file not copied to output directory successfully.Einstellungsdatei konnte nicht in das Ausgabeverzeichnis geschrieben werden.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Wiederherstellung der Datenbank wurde nicht initiiert. Stellen Sie sicher, dass das Ausgabeverzeichnis beschrieben werden kann.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Wiederherstellung der Einstellungen wurde nicht initiiert. Stellen Sie sicher, dass das Ausgabeverzeichnis beschrieben werden kann.
-
+ Cannot add feedKann Feed nicht hinzufügen
-
+ Feed cannot be added because there is no active account which can add feeds.Feed konnte nicht hinzugefügt werden, weil kein aktiver Zugang existiert, der Feeds hinzufügen kann.
-
+ Packages %1 were updated.%1 Pakete wurden aktualisiert.
-
+ Unread articles fetchedUngelesene Artikel aktualisiert
-
+ Go to changelogGeh zum Changelog
-
+ AdBlock needs to be configuredAdBlock muss noch konfiguriert werden
-
+ WelcomeWillkommen
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Bitte überprüfen Sie die in dieser Version enthaltene Neuerungen
durch Klicken auf diese Benachrichtigung.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock ist nicht richtig konfiguriert. Gehe zu "Einstellungen" -> "Node.js" und stelle sicher, dass Node.js korrekt eingerichtet ist.
-
+ Already runningBereits aktiv
-
+ Packages %1 were NOT updated because of error: %2.Packete %1 wurden NICHT aktualisiert, wegen Fehler: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ durch Klicken auf diese Benachrichtigung.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5144,14 +5180,14 @@ Ablauf des Login tokens: %2
de
-
+ LANG_AUTHORName of translator - optional.Patrick Scheller, Peter Mattern
-
+
+ %n other feeds.
@@ -5342,6 +5378,26 @@ Liste aller unterstützten Leser:
Published articlesVeröffentlichte Artikel
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6777,45 +6833,46 @@ Schließe und Öffne den Einstellungsdiealog erneut, nachdem du Node.js installi
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Du musst ein Taskleistensymbol aktiviert haben, um Ballon-Benachrichtigungen zu sehen.
-
-Es existieren auch einige integrierte Sounds. Beginne zu tippen mit ":" damit sie angezeigt werden.
- Enable notificationsAktiviere Benachrichtigungen
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsBenachrichtigungen
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7537,32 +7594,27 @@ Ungelesene Nachrichten: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts
index 4ded2526f..a6fb8d2b2 100644
--- a/localization/rssguard_en.ts
+++ b/localization/rssguard_en.ts
@@ -127,67 +127,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running
-
+ Output directory is not writable.Output directory is not writable
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.
-
+ Unread articles fetched
-
+ Go to changelog
-
+ AdBlock needs to be configured
-
+ Welcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -195,21 +195,57 @@ version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already running
-
+ Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+
+
+
+
+ Go to previous page
+
+
+
+
+ Go to next page
+
+
+
+
+ Open article in article list
+
+
+
+
+ Open article in web browser
+
+
+
+
+ %n feeds fetched
+
+
+
+
+
+AuthenticationDetails
@@ -307,7 +343,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notification
@@ -5116,14 +5152,14 @@ Login tokens expiration: %2
en
-
+ LANG_AUTHORName of translator - optional.Martin Rotter
-
+
+ %n other feeds.
@@ -5309,6 +5345,26 @@ List of supported readers:
Published articles
+
+
+ top-left
+
+
+
+
+ top-right
+
+
+
+
+ bottom-left
+
+
+
+
+ bottom-right
+
+ Readability
@@ -6721,43 +6777,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
-
- Enable notifications
-
- Notifications type
+
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)
-
+ Custom notifications
-
+ Position
-
+
+ Screen
+
+
+
+ Notifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+
+ SettingsShortcuts
@@ -7474,32 +7533,27 @@ Unread news: %2
ToastNotification
-
- Dialog
-
-
-
-
+ ...
-
+ 11
-
+ TextLabel
-
+ PushButton
-
+ Do it!
diff --git a/localization/rssguard_en_GB.ts b/localization/rssguard_en_GB.ts
index e13370fba..825e89e99 100644
--- a/localization/rssguard_en_GB.ts
+++ b/localization/rssguard_en_GB.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Failed to copy settings file to output directory.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that the output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that the output directory is writable.
-
+ Cannot add feedCan't add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there are no active accounts that can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
en_GB
-
+ LANG_AUTHORName of translator - optional.Martin Rotter, ParisBrest82
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_en_US.ts b/localization/rssguard_en_US.ts
index 99091ff8b..8392298f7 100644
--- a/localization/rssguard_en_US.ts
+++ b/localization/rssguard_en_US.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
en_US
-
+ LANG_AUTHORName of translator - optional.Martin Rotter
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_es.ts b/localization/rssguard_es.ts
index fec8a4b65..f8af4249e 100644
--- a/localization/rssguard_es.ts
+++ b/localization/rssguard_es.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.La aplicación ya está en ejecución.
-
+ Output directory is not writable.La carpeta de salida carece de permisos de escritura.
-
+ Settings file not copied to output directory successfully.El archivo de configuración no se copió satisfactoriamente a la carpeta de salida.
-
+ Database restoration was not initiated. Make sure that output directory is writable.La restauración de la base de datos no fue iniciada. Verifique que la carpeta de salida tiene permisos de escritura.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Fue imposible iniciar la restauración de la configuración. Verifique que la carpeta de salida tiene permisos de escritura.
-
+ Cannot add feedImposible añadir la fuente
-
+ Feed cannot be added because there is no active account which can add feeds.Imposible agregar la fuente porque se carece de una cuenta activa que pueda agregar fuentes.
-
+ Packages %1 were updated.Se actualizaron %1 paquetes.
-
+ Unread articles fetchedArtículos sin leer obtenidos
-
+ Go to changelogIr al registro de cambios
-
+ AdBlock needs to be configuredAdBlock necesita ser configurado
-
+ WelcomeBienvenido
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Por favor, consulte las NUEVAS funciones incluidas en esta
versión pulsando en esta notificación emergente.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock está configurado incorrectamente. Vaya a "Configuración" -> "Node.js" y verifique si Node.js esté configurado correctamente.
-
+ Already runningYa está ejecutándose
-
+ Packages %1 were NOT updated because of error: %2.Imposible actualizar %1 paquetes debido al error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ versión pulsando en esta notificación emergente.
BaseToastNotification
-
+ Close this notificationCerrar esta notificación
@@ -5146,14 +5182,14 @@ Expiración de identificadores de acceso: %2
es
-
+ LANG_AUTHORName of translator - optional.Joel Barrios
-
+
+ %n other feeds.
@@ -5347,6 +5383,26 @@ Lista de lectores compatibles:
Published articlesArtículos publicados
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6782,45 +6838,46 @@ Además, reinicie el cuadro de diálogo "Configuración" después de i
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Debe tener activado el "icono de la bandeja" para que funcionen las notificaciones de globos.
-
-Además, hay algunos sonidos incorporados. Simplemente comience a escribir ":" y aparecerán.
- Enable notificationsHabilitar notificaciones
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotificaciones
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7544,32 +7601,27 @@ Noticias sin leer: %2
ToastNotification
-
- Dialog
- Diálogo
-
-
-
+ ......
-
+ 1111
-
+ TextLabelEtiqueta de texto
-
+ PushButtonPulsar botón
-
+ Do it!¡Hacerlo!
diff --git a/localization/rssguard_fi.ts b/localization/rssguard_fi.ts
index 6c2838c6d..6a734f08b 100644
--- a/localization/rssguard_fi.ts
+++ b/localization/rssguard_fi.ts
@@ -129,67 +129,67 @@ Virhe: %1
Application
-
+ Application is already running.Sovellus on jo käynnissä
-
+ Output directory is not writable.Kohdekansioon ei voi kirjoittaa.
-
+ Settings file not copied to output directory successfully.Asetustiedoston kopiointi kohdekansioon epäonnistui.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Tietokannan palautusta ei aloitettu. Varmista, että kohdekansioon voi kirjoittaa.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedSyötettä ei voi lisätä
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogSiirry muutoslokiin
-
+ AdBlock needs to be configuredAdBlockin asetukset tulee määrittää
-
+ WelcomeTervetuloa
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
fi
-
+ LANG_AUTHORName of translator - optional.artnay
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsKäytä ilmoituksia
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsIlmoitukset
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_fr.ts b/localization/rssguard_fr.ts
index fbb3bdb8e..ce6e36f2e 100644
--- a/localization/rssguard_fr.ts
+++ b/localization/rssguard_fr.ts
@@ -129,67 +129,67 @@ Erreur : %1
Application
-
+ Application is already running.L'application est déjà lancée
-
+ Output directory is not writable.Le répertoire de destination n'est pas accessible en écriture
-
+ Settings file not copied to output directory successfully.Le fichier de réglages n'a pas été copié correctement dans le répertoire de destination.
-
+ Database restoration was not initiated. Make sure that output directory is writable.La restauration de la base de données n'a pas été initiée. Vérifier que le répertoire de destination est accessible en écriture.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.La restauration des paramètres n'a pas été initiée. Vérifier que le répertoire de destination est accessible en écriture.
-
+ Cannot add feedImpossible d'ajouter le flux
-
+ Feed cannot be added because there is no active account which can add feeds.Le flux ne peut pas être ajouté car il n'y a aucun compte actif autorisant l'ajout de flux.
-
+ Packages %1 were updated.Les paquets %1 ont été mis à jour.
-
+ Unread articles fetchedArticles non lus obtenus
-
+ Go to changelogConsulter le journal des modifications
-
+ AdBlock needs to be configuredAdBlock doit être configuré
-
+ WelcomeBienvenue
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Découvrez les nouveautés de cette
version en cliquant sur cette notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock n'a pas été configuré correctement. Allez dans "Paramètres" -> "Node.js" et vérifiez que Node.js ait été correctement configuré.
-
+ Already runningDéjà en fonctionnement
-
+ Packages %1 were NOT updated because of error: %2.Les paquets %1 n'ont PAS été mis à jour à cause de l'erreur : %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version en cliquant sur cette notification.
BaseToastNotification
-
+ Close this notificationFermer cette notification
@@ -5172,14 +5208,14 @@ supplémentaire
fr
-
+ LANG_AUTHORName of translator - optional.Darkitty, Lenade, leperlier.n, lucassifoni, ParisBrest82, peletloick, Rinbo, sylvie.pierrard
-
+
+ %n other feeds.
@@ -5373,6 +5409,26 @@ Liste d'agrégateurs compatibles:
Published articlesArticles publiés
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6808,45 +6864,46 @@ Et aussi, redémarrez la fenêtre "Paramètres" après avoir installé
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Vous devez avoir "icône sur la barre d'icônes" activé pour que les notifications de type ballons fonctionnent.
-
-Aussi, il y a des sons pré-ajoutés. Si vous tapez ":", ils se présenteront.
- Enable notificationsActiver les notifications
-
- Notifications type
- Type de notifications
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Notifications natives (la barre d'icônes doit être activée)
-
+ Custom notificationsNotifications personnalisées
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7568,32 +7625,27 @@ Actualités non-lus: %2
ToastNotification
-
- Dialog
- Dialogue
-
-
-
+ ......
-
+ 1111
-
+ TextLabelLabelTexte
-
+ PushButtonBouttonPush
-
+ Do it!C'est parti!
diff --git a/localization/rssguard_gl.ts b/localization/rssguard_gl.ts
index 1d72c0167..813829332 100644
--- a/localization/rssguard_gl.ts
+++ b/localization/rssguard_gl.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.O aplicativo xa está a funcionar
-
+ Output directory is not writable.Non pode escribir no directorio de saída
-
+ Settings file not copied to output directory successfully.Non se puido copiar o ficheiro de axustes ao directorio de saída.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Non se iniciou o restablecemento da base de datos. Asegúrese de que o directorio de saída é accesible.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Non se iniciou o restablecemento dos axustes. Asegúrese de que o directorio de saída é accesible.
-
+ Cannot add feedNon se engadeu a fonte
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
gl
-
+ LANG_AUTHORName of translator - optional.pikamoku
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_he.ts b/localization/rssguard_he.ts
index 114f975e5..5c6cd875a 100644
--- a/localization/rssguard_he.ts
+++ b/localization/rssguard_he.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5175,14 +5213,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5382,6 +5420,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6823,45 +6881,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7589,32 +7648,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_hi.ts b/localization/rssguard_hi.ts
index 99925f9b3..7d465d83e 100644
--- a/localization/rssguard_hi.ts
+++ b/localization/rssguard_hi.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_hu.ts b/localization/rssguard_hu.ts
index 7cad197a2..d411bab12 100644
--- a/localization/rssguard_hu.ts
+++ b/localization/rssguard_hu.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_id.ts b/localization/rssguard_id.ts
index fb44307d5..97c8a00f5 100644
--- a/localization/rssguard_id.ts
+++ b/localization/rssguard_id.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Aplikasi sedang berjalan.
-
+ Output directory is not writable.Direktori keluaran tidak dapat ditulisi.
-
+ Settings file not copied to output directory successfully.Berkas pengaturan tidak berhasil disalin ke direktori keluaran.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Pemulihan database tidak dapat dimulai. Pastikan direktori keluaran dapat ditulisi.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Pemulihan pengaturan tidak dapat dimulai. Pastikan direktori keluaran dapat ditulisi.
-
+ Cannot add feedTidak dapat menambah feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,56 @@ Silahkan, memeriksa hal BARU yang termasuk
di versi ini dengan meng-klik popup notifikasi ini.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +347,7 @@ di versi ini dengan meng-klik popup notifikasi ini.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5132,14 +5167,14 @@ Waktu berakhir log masuk: %2
id
-
+ LANG_AUTHORName of translator - optional.Rachman
-
+
+ %n other feeds.
@@ -5329,6 +5364,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6761,45 +6816,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7518,32 +7574,27 @@ Berita belum terbaca:%2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_it.ts b/localization/rssguard_it.ts
index fcee8ca65..6a4ef743e 100644
--- a/localization/rssguard_it.ts
+++ b/localization/rssguard_it.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.L'applicazione è già in esecuzione.
-
+ Output directory is not writable.La cartella di destinazione non è scrivibile.
-
+ Settings file not copied to output directory successfully.File impostazioni non copiato con successo nella cartella di destinazione.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Ripristino database non iniziato. Assicurati che la cartella di destinazione sia scrivibile.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Ripristino impostazioni non iniziato. Assicurati che la cartella di destinazione sia scrivibile.
-
+ Cannot add feedImpossibile aggiungere fonte
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Controlla la NUOVA roba inclusa in questa
versione facendo clic su questa notifica a scomparsa.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ versione facendo clic su questa notifica a scomparsa.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
it
-
+ LANG_AUTHORName of translator - optional.Aloysius
-
+
+ %n other feeds.
@@ -5344,6 +5380,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6779,45 +6835,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7539,32 +7596,27 @@ Notizie non lette: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_ja.ts b/localization/rssguard_ja.ts
index 091e1d35e..a7baa99d6 100644
--- a/localization/rssguard_ja.ts
+++ b/localization/rssguard_ja.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.アプリケーションは既に実行されています。
-
+ Output directory is not writable.出力ディレクトリは書き込み可能ではありません。
-
+ Settings file not copied to output directory successfully.設定ファイルが出力ディレクトリに正常にコピーされませんでした。
-
+ Database restoration was not initiated. Make sure that output directory is writable.データベースの復元が開始されませんでした。出力ディレクトリが書き込み可能であることを確認してください。
-
+ Settings restoration was not initiated. Make sure that output directory is writable.データベースの復元が開始されませんでした。出力ディレクトリが書き込み可能であることを確認してください。
-
+ Cannot add feedフィードを追加できません
-
+ Feed cannot be added because there is no active account which can add feeds.フィードを追加できる有効なアカウントがないため、フィードを追加できません。
-
+ Packages %1 were updated.パッケージ %1 が更新されました。
-
+ Unread articles fetched未読の記事を取得しました
-
+ Go to changelog更新履歴に移動
-
+ AdBlock needs to be configuredAdBlockの設定が必要です
-
+ Welcomeようこそ
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -199,21 +199,56 @@ version by clicking this popup notification.
このバージョンに含まれる新しいものは、ポップアップ通知をクリックして確認してください。
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock が正しく設定されていません。 "設定" -> "Node.js" に移動し、Node.js が正しく設定されているか確認してください。
-
+ Already running既に実行中です
-
+ Packages %1 were NOT updated because of error: %2.パッケージ %1 はエラーのため更新されませんでした: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -311,7 +346,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationこの通知を閉じる
@@ -5132,14 +5167,14 @@ Login tokens expiration: %2
ja
-
+ LANG_AUTHORName of translator - optional.piyo
-
+
+ %n other feeds.
@@ -5330,6 +5365,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6762,45 +6817,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- バルーン通知を有効にするには、"トレイアイコン"を有効にする必要があります。
-
-また、いくつかのサウンドが内蔵されています。":" と入力し始めるだけで表示されます。
- Enable notifications通知を有効にする
-
-
- Notifications type
- Notifications type
-
-
-
- Native notifications (tray icon must be enabled)
- Native notifications (tray icon must be enabled)
-
- Custom notifications
- Custom notifications
+ Balloon notifications type
+ Balloon notifications type
+
+
+
+ Native notifications (tray icon must be enabled)
+ ネイティブ通知 (トレイアイコンを有効にする必要があります)
- Position
- Position
+ Custom notifications
+ カスタム通知
-
+
+ Position
+ 位置
+
+
+
+ Screen
+ Screen
+
+
+ Notifications通知
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7521,32 +7577,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- ダイアログ
-
-
-
+ ......
-
+ 1111
-
+ TextLabelテキストラベル
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_lt.ts b/localization/rssguard_lt.ts
index 9bb744cdc..7af2e14b0 100644
--- a/localization/rssguard_lt.ts
+++ b/localization/rssguard_lt.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Programa jau yra vykdoma
-
+ Output directory is not writable.Išvesties katalogas nėra įrašomas
-
+ Settings file not copied to output directory successfully.Nustatymų failas nebuvo sėkmingai nukopijuotas į išvesties katalogą.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Duomenų bazės atkūrimas nebuvo inicijuotas. Įsitikinkite, kad išvesties katalogas yra įrašomas.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Nustatymų atkūrimas nebuvo inicijuotas. Įsitikinkite, kad išvesties katalogas yra įrašomas.
-
+ Cannot add feedNepavyksta pridėti kanalo
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Susipažinkite su NAUJOMIS šios
versijos ypatybėmis, spusteldami šį pranešimą.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ versijos ypatybėmis, spusteldami šį pranešimą.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5175,14 +5213,14 @@ Prisijungimo prieigos raktai nustoja galioti: %2
lt
-
+ LANG_AUTHORName of translator - optional.Moo
-
+
+ %n other feeds.
@@ -5382,6 +5420,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6823,45 +6881,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7589,32 +7648,27 @@ Neskaitytų naujienų: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_lv.ts b/localization/rssguard_lv.ts
index 0b4d33bb4..afdeb2a70 100644
--- a/localization/rssguard_lv.ts
+++ b/localization/rssguard_lv.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,58 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +349,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5161,14 +5198,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5365,6 +5402,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6803,45 +6860,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7566,32 +7624,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_nl.ts b/localization/rssguard_nl.ts
index c789534c8..f5109ffdd 100644
--- a/localization/rssguard_nl.ts
+++ b/localization/rssguard_nl.ts
@@ -129,67 +129,67 @@ Fout: %1
Application
-
+ Application is already running.RSS Guard is al gestart.
-
+ Output directory is not writable.De uitvoermap is niet beschrijfbaar.
-
+ Settings file not copied to output directory successfully.Het instellingenbestand is niet gekopieerd naar de uitvoermap.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Databankherstel is niet gestart. Zorg ervoor dat de uitvoermap beschrijfbaar is.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Herstel van de instellingen is niet gestart. Zorg ervoor dat de uitvoermap beschrijfbaar is.
-
+ Cannot add feedKan feed niet toevoegen
-
+ Feed cannot be added because there is no active account which can add feeds.Feed kan niet worden toegevoegd omdat er geen actief account is dat feeds kan toevoegen.
-
+ Packages %1 were updated.Pakketten %1 zijn bijgewerkt.
-
+ Unread articles fetchedOngelezen artikelen opgehaald
-
+ Go to changelogGa naar changelog
-
+ AdBlock needs to be configuredAdBlock moet worden geconfigureerd
-
+ WelcomeWelkom
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -199,21 +199,57 @@ version by clicking this popup notification.
Om te zien wat er NIEUW is in deze versie: klik op deze melding.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is niet juist geconfigureerd. Ga naar "Instellingen" -> "Node.js" en controleer of Node.js correct is ingesteld.
-
+ Already runningIs al gestart
-
+ Packages %1 were NOT updated because of error: %2.Pakketten %1 zijn niet bijgewerkt vanwege een fout: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -311,9 +347,9 @@ Om te zien wat er NIEUW is in deze versie: klik op deze melding.
BaseToastNotification
-
+ Close this notification
- Close this notification
+ Melding sluiten
@@ -5146,14 +5182,14 @@ Logintoken verloopt: %2
nl
-
+ LANG_AUTHORName of translator - optional.Elbert Pol, KyraWertho
-
+
+ %n other feeds.
@@ -5347,6 +5383,26 @@ Lijst met ondersteunde lezers:
Published articlesGepubliceerde artikelen
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6188,12 +6244,12 @@ Makers van de applicatie zijn niet verantwoordelijk voor dataverlies.
PC restart needed
- PC restart needed
+ PC herstart benodigdYour PC needs to be restarted to make some of enabled features fully working.
- Your PC needs to be restarted to make some of enabled features fully working.
+ De computer moet opnieuw opgestart worden voor dat alle nieuwe features correct werken.
@@ -6782,45 +6838,46 @@ Start ook het dialoogvenster "Instellingen" opnieuw nadat je Node.js h
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Ballonberichten werken alleen als het systeemvakicoon is ingeschakeld.
-
-Er zijn ook een aantal ingebouwde geluiden beschikbaar. Typ ":" om de lijst weer te geven.
- Enable notifications
- Aanzetten van meldingen
-
-
-
- Notifications type
- Notifications type
-
-
-
- Native notifications (tray icon must be enabled)
- Native notifications (tray icon must be enabled)
+ Meldingen inschakelen
- Custom notifications
- Custom notifications
+ Balloon notifications type
+ Balloon notifications type
+
+
+
+ Native notifications (tray icon must be enabled)
+ Standaard meldingen (taakbalkicoon moet zijn ingeschakeld)
- Position
- Position
+ Custom notifications
+ Aangepaste meldingen
-
+
+ Position
+ Positie
+
+
+
+ Screen
+ Screen
+
+
+ NotificationsMeldingen
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -6925,7 +6982,7 @@ Er zijn ook een aantal ingebouwde geluiden beschikbaar. Typ ":" om de
cannot get native 'sqlite3' DB handle
- cannot get native 'sqlite3' DB handle
+ kan geen standaard 'sqlite3' DB handle verkrijgen
@@ -7543,34 +7600,29 @@ Ongelezen nieuws: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ...
- ...
+ ...
-
+ 11
- 11
+ 11
-
+ TextLabel
- TextLabel
+ TekstLabel
-
+ PushButton
- PushButton
+ Drukknop
-
+ Do it!
- Do it!
+ Nu uitvoeren!
diff --git a/localization/rssguard_no.ts b/localization/rssguard_no.ts
index d9f721c1a..4b1cdf949 100644
--- a/localization/rssguard_no.ts
+++ b/localization/rssguard_no.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_pl.ts b/localization/rssguard_pl.ts
index 3e4b8eb18..f186810cc 100644
--- a/localization/rssguard_pl.ts
+++ b/localization/rssguard_pl.ts
@@ -129,67 +129,67 @@ Błąd: %1
Application
-
+ Application is already running.Aplikacja jest już uruchomiona
-
+ Output directory is not writable.Katalog wyjściowy nie jest zapisywalny
-
+ Settings file not copied to output directory successfully.Plik ustawień nie został pomyślnie skopiowany do katalogu wyjściowego.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Przywrócenie bazy danych nie zostało zainicjowane. Upewnij się, że katalog wyjściowy jest zapisywalny.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Przywrócenie ustawień nie zostało zainicjowane. Upewnij się, że katalog wyjściowy jest zapisywalny.
-
+ Cannot add feedNie można dodać kanału
-
+ Feed cannot be added because there is no active account which can add feeds.Kanał nie może być dodany, ponieważ nie ma aktywnego konta, do którego można dodawać kanały.
-
+ Packages %1 were updated.Pakiety %1 zostały zaktualizowane.
-
+ Unread articles fetchedPobrano nieprzeczytane artykuły
-
+ Go to changelogPrzejdź do listy zmian
-
+ AdBlock needs to be configuredAdBlock wymaga konfiguracji
-
+ WelcomeWitamy
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Sprawdź nowe możliwości dodane w
tej wersji, klikając na to powiadomienie.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock nie jest prawidłowo skonfigurowany. Przejdź do „Ustawienia” » „Node.js” i sprawdź, czy twój Node.js jest poprawnie skonfigurowany.
-
+ Already runningJuż działa
-
+ Packages %1 were NOT updated because of error: %2.Pakiety %1 nie zostały zaktualizowane z powodu błędu: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ tej wersji, klikając na to powiadomienie.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5175,14 +5213,14 @@ Tokeny logowania wygasają: %2
pl
-
+ LANG_AUTHORName of translator - optional.Piotr Kozica
-
+
+ %n other feeds.
@@ -5382,6 +5420,26 @@ Lista obsługiwanych czytników:
Published articlesOpublikowane artykuły
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6823,45 +6881,46 @@ Ponadto po zainstalowaniu Node.js należy ponownie uruchomić okno dialogowe &qu
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Musisz mieć aktywowaną ikonę zasobnika systemowego, aby powiadomienia w dymkach działały.
-
-Istnieją również wbudowane dźwięki. Po prostu wpisz ":" i pojawią się.
- Enable notificationsWłącz powiadomienia
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsPowiadomienia
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7589,32 +7648,27 @@ Nieprzeczytanych wiadomości: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_pt.ts b/localization/rssguard_pt.ts
index f4a00e857..e498e41bd 100644
--- a/localization/rssguard_pt.ts
+++ b/localization/rssguard_pt.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.O aplicativo já está em execução
-
+ Output directory is not writable.A pasta de saída não possui permissão de escrita
-
+ Settings file not copied to output directory successfully.Arquivo de configurações copiado com sucesso para pasta de saída.
-
+ Database restoration was not initiated. Make sure that output directory is writable.A restauração do banco de dados não foi iniciada. Certifique-se de possuir permissão de escrita na pasta de saída.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.A restauração das configurações não foi iniciada. Certifique-se de possuir permissão de escrita na pasta de saída.
-
+ Cannot add feedNão foi possível adicionar o feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Por favor, veja o NOVO conteúdo incluído nesta
versão, clicando nesta notificação popup.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ versão, clicando nesta notificação popup.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Expiração dos tokens de login: %2
pt_PT
-
+ LANG_AUTHORName of translator - optional.Igor Rückert
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Notícias não lidas: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_pt_BR.ts b/localization/rssguard_pt_BR.ts
index 006aab0ee..0acaa3de5 100644
--- a/localization/rssguard_pt_BR.ts
+++ b/localization/rssguard_pt_BR.ts
@@ -129,67 +129,67 @@ Erro: %1
Application
-
+ Application is already running.O aplicativo já está em execução.
-
+ Output directory is not writable.Sem permissão de escrita na pasta de saída.
-
+ Settings file not copied to output directory successfully.Arquivo de configurações não copiado com sucesso para pasta de saída.
-
+ Database restoration was not initiated. Make sure that output directory is writable.A restauração do banco de dados não foi iniciada. Certifique-se de possuir permissão de escrita na pasta de saída.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.A restauração das configurações não foi iniciada. Certifique-se de possuir permissão de escrita na pasta de saída.
-
+ Cannot add feedNão foi possível adicionar o feed
-
+ Feed cannot be added because there is no active account which can add feeds.O feed não pode ser adicionado pois não há uma conta ativa que pode adicionar feeds.
-
+ Packages %1 were updated.Os pacotes %1 foram atualizados.
-
+ Unread articles fetchedArtigos não lidos buscados
-
+ Go to changelogIr para registro de alterações
-
+ AdBlock needs to be configuredO AdBlock precisa ser configurado
-
+ WelcomeBem-vindo
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Por favor, veja o NOVO conteúdo incluído nesta
versão, clicando nesta notificação popup.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.O AdBlock não está configurado corretamente. Acesse "Configurações" -> "Node.js" e veja se o Node.js está configurado corretamente.
-
+ Already runningJá está em execução
-
+ Packages %1 were NOT updated because of error: %2.Os pacotes %1 NÃO foram atualizados devido ao erro: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ versão, clicando nesta notificação popup.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Expiração dos tokens de login: %2
pt_BR
-
+ LANG_AUTHORName of translator - optional.Igor Rückert
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ Lista de leitores suportados:
Published articlesArtigos publicados
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Além disso, reinicie a caixa de diálogo "Configurações" após inst
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Você deve ter o "ícone da área de notificação" ativado para que as notificações de balão funcionem.
-
-Além disso, existem alguns sons embutidos. Basta começar a digitar ":" e eles aparecerão.
- Enable notificationsAtivar notificações
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotificações
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Notícias não lidas: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_ru.ts b/localization/rssguard_ru.ts
index bdc4e9d7d..b7ce7904b 100644
--- a/localization/rssguard_ru.ts
+++ b/localization/rssguard_ru.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Приложение уже запущено
-
+ Output directory is not writable.Выходной каталог не доступен для записи
-
+ Settings file not copied to output directory successfully.Файл настроек не скопирован в выходной каталог.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Восстановление базы данных не было начато. Убедитесь, что выходной каталог доступен для записи.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Восстановление настроек не было начато. Убедитесь, что выходной каталог доступен для записи.
-
+ Cannot add feedНевозможно добавить канал
-
+ Feed cannot be added because there is no active account which can add feeds.Канал не может быть добавлен, потому что нет активной учетной записи, которая может добавлять каналы.
-
+ Packages %1 were updated.Пакеты %1 обновлены.
-
+ Unread articles fetchedЗагружены непрочитанные статьи
-
+ Go to changelogК списку изменений
-
+ AdBlock needs to be configuredБлокировщик рекламы (AdBlock) должен быть настроен
-
+ WelcomeДобро пожаловать
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ version by clicking this popup notification.
версию, щелкнув на это всплывающее уведомление.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock настроен неправильно. Перейдите в «Настройки» -> «Node.js» и проверьте, правильно ли настроен ваш Node.js.
-
+ Already runningУже выполняется
-
+ Packages %1 were NOT updated because of error: %2.Пакеты %1 НЕ были обновлены из-за ошибки: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5175,14 +5213,14 @@ Login tokens expiration: %2
ru
-
+ LANG_AUTHORName of translator - optional.anovik
-
+
+ %n other feeds.
@@ -5382,6 +5420,26 @@ List of supported readers:
Published articlesОпубликованные статьи
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6823,45 +6881,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- У вас должен быть активирован «значок в трее», чтобы всплывающие уведомления работали.
-
-Также есть встроенные звуки. Просто начните вводить «:», и они появятся.
- Enable notificationsВключить уведомления
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsУведомления
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7589,32 +7648,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_sk.ts b/localization/rssguard_sk.ts
index ae967f7c2..7dcf1b6c0 100644
--- a/localization/rssguard_sk.ts
+++ b/localization/rssguard_sk.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5175,14 +5213,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5382,6 +5420,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6823,45 +6881,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7589,32 +7648,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_sv.ts b/localization/rssguard_sv.ts
index 5f76ab7ae..82a4e939a 100644
--- a/localization/rssguard_sv.ts
+++ b/localization/rssguard_sv.ts
@@ -129,67 +129,67 @@ Fel: %1
Application
-
+ Application is already running.Programmet är redan startat.
-
+ Output directory is not writable.Utdatamappen är inte skrivbar.
-
+ Settings file not copied to output directory successfully.Inställningsfilen kopierades inte till utdatamappen.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Databasåterställning startades inte. Tillse att utdatamappen är skrivbar.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Inställningsåterställning startades inte. Tillse att utdatamappen är skrivbar.
-
+ Cannot add feedKan inte lägga till flödet
-
+ Feed cannot be added because there is no active account which can add feeds.Flödet kan inte läggas till eftersom det saknas ett aktivt konto som kan lägga till flöden.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock behöver konfigureras
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Kolla in NYA grejer i den här versionen
genom att klicka på denna popup-avisering.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ genom att klicka på denna popup-avisering.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5146,14 +5182,14 @@ Inloggningstoken upphör: %2
sv
-
+ LANG_AUTHORName of translator - optional.Åke Engelbrektson
-
+
+ %n other feeds.
@@ -5347,6 +5383,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6782,45 +6838,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsAvisering
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7542,32 +7599,27 @@ Olästa nyheter: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_tr.ts b/localization/rssguard_tr.ts
index b10c2a8f7..079fee2b1 100644
--- a/localization/rssguard_tr.ts
+++ b/localization/rssguard_tr.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,57 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5147,14 +5183,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5348,6 +5384,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6783,45 +6839,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7543,32 +7600,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_uk.ts b/localization/rssguard_uk.ts
index ac2921155..990a1ac1c 100644
--- a/localization/rssguard_uk.ts
+++ b/localization/rssguard_uk.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Програма вже виконується
-
+ Output directory is not writable.Цільовий каталог недоступний для запису
-
+ Settings file not copied to output directory successfully.Файл налаштувань не було скопійовано у цільовий каталог.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Невдале відновлення бази. Перевірте можливість запису в цільовий каталог.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Невдале відновлення налаштувань. Перевірте можливість запису в цільовий каталог.
-
+ Cannot add feedНеможливо додати підписку
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,59 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +350,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5174,14 +5212,14 @@ Login tokens expiration: %2
uk
-
+ LANG_AUTHORName of translator - optional.SaltedBacon
-
+
+ %n other feeds.
@@ -5381,6 +5419,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6822,45 +6880,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7588,32 +7647,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_vi.ts b/localization/rssguard_vi.ts
index 14e22e618..e4ecb301c 100644
--- a/localization/rssguard_vi.ts
+++ b/localization/rssguard_vi.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.Application is already running.
-
+ Output directory is not writable.Output directory is not writable.
-
+ Settings file not copied to output directory successfully.Settings file not copied to output directory successfully.
-
+ Database restoration was not initiated. Make sure that output directory is writable.Database restoration was not initiated. Make sure that output directory is writable.
-
+ Settings restoration was not initiated. Make sure that output directory is writable.Settings restoration was not initiated. Make sure that output directory is writable.
-
+ Cannot add feedCannot add feed
-
+ Feed cannot be added because there is no active account which can add feeds.Feed cannot be added because there is no active account which can add feeds.
-
+ Packages %1 were updated.Packages %1 were updated.
-
+ Unread articles fetchedUnread articles fetched
-
+ Go to changelogGo to changelog
-
+ AdBlock needs to be configuredAdBlock needs to be configured
-
+ WelcomeWelcome
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -200,21 +200,56 @@ Please, check NEW stuff included in this
version by clicking this popup notification.
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.
-
+ Already runningAlready running
-
+ Packages %1 were NOT updated because of error: %2.Packages %1 were NOT updated because of error: %2.
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -312,7 +347,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5133,14 +5168,14 @@ Login tokens expiration: %2
LANG_ABBREV
-
+ LANG_AUTHORName of translator - optional.LANG_AUTHOR
-
+
+ %n other feeds.
@@ -5331,6 +5366,26 @@ List of supported readers:
Published articlesPublished articles
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6763,45 +6818,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- Enable notificationsEnable notifications
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ NotificationsNotifications
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7520,32 +7576,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_zh_CN.ts b/localization/rssguard_zh_CN.ts
index 0e509dd0f..8f4452665 100644
--- a/localization/rssguard_zh_CN.ts
+++ b/localization/rssguard_zh_CN.ts
@@ -129,67 +129,67 @@ Error: %1
Application
-
+ Application is already running.应用已在运行。
-
+ Output directory is not writable.输出目录不可写。
-
+ Settings file not copied to output directory successfully.配置文件未能成功复制到输出目录。
-
+ Database restoration was not initiated. Make sure that output directory is writable.无法开始恢复数据库,请确保输出目录可写。
-
+ Settings restoration was not initiated. Make sure that output directory is writable.无法开始恢复设置,请确保输出目录可写。
-
+ Cannot add feed无法添加 Feed
-
+ Feed cannot be added because there is no active account which can add feeds.无法添加 Feed,因为没有可用帐号。
-
+ Packages %1 were updated.软件包 %1 已被更新。
-
+ Unread articles fetched未读文章
-
+ Go to changelog查看更新日志
-
+ AdBlock needs to be configuredAdBlock 需要进行配置
-
+ Welcome欢迎
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -199,21 +199,56 @@ version by clicking this popup notification.
请点击此弹出通知以查看本版本的新功能。
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock 配置不正确。请前往 "设置" -> "Node.js" 检查 Node.js 配置是否正确。
-
+ Already running已在运行
-
+ Packages %1 were NOT updated because of error: %2.由于错误:%2,软件包 %1 没有更新。
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -311,7 +346,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5127,14 +5162,14 @@ Token 过期时间:%2
zh_CN
-
+ LANG_AUTHORName of translator - optional.Hoilc
-
+
+ %n other feeds.
@@ -5325,6 +5360,26 @@ List of supported readers:
Published articles发表的文章
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6747,43 +6802,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- 你必须激活 "托盘图标 "才能让气球通知发挥作用。此外,还有一些内置的声音。只要开始输入":",它们就会显示出来。
- Enable notifications启用通知
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ Notifications通知
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7500,32 +7558,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/localization/rssguard_zh_TW.ts b/localization/rssguard_zh_TW.ts
index 785f38cff..8fb7ab1fa 100644
--- a/localization/rssguard_zh_TW.ts
+++ b/localization/rssguard_zh_TW.ts
@@ -127,67 +127,67 @@ Error: %1
Application
-
+ Application is already running.應用程式已在執行。
-
+ Output directory is not writable.輸出目錄是無法寫入。
-
+ Settings file not copied to output directory successfully.設定檔複製到輸出目錄失敗。
-
+ Database restoration was not initiated. Make sure that output directory is writable.未復原資料庫。請確認輸出目錄可寫入。
-
+ Settings restoration was not initiated. Make sure that output directory is writable.未復原設定。請確認輸出目錄可寫入。
-
+ Cannot add feed無法新增文源
-
+ Feed cannot be added because there is no active account which can add feeds.無法加入文源,因為無使用的、可加入文源的帳號。
-
+ Packages %1 were updated.套件 %1 更新過。
-
+ Unread articles fetched下載了未讀的文章
-
+ Go to changelog前往檢視變更紀錄
-
+ AdBlock needs to be configured須設定 AdBlock
-
+ Welcome歡迎
-
+ Welcome to %1.
Please, check NEW stuff included in this
@@ -198,21 +198,56 @@ version by clicking this popup notification.
查閱此版的新鮮事。
-
+ AdBlock is not configured properly. Go to "Settings" -> "Node.js" and check if your Node.js is properly configured.AdBlock 未恰當設定。請於 "設定" -> "Node.js",檢查 Node.js 是否恰當設定。
-
+ Already running已在執行
-
+ Packages %1 were NOT updated because of error: %2.套件 %1 沒更新新過,因為後面錯誤: %2。
+
+ ArticleListNotification
+
+
+ ...
+ ...
+
+
+
+ Go to previous page
+ Go to previous page
+
+
+
+ Go to next page
+ Go to next page
+
+
+
+ Open article in article list
+ Open article in article list
+
+
+
+ Open article in web browser
+ Open article in web browser
+
+
+
+ %n feeds fetched
+
+ %n feeds fetched
+
+
+ AuthenticationDetails
@@ -310,7 +345,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+ Close this notificationClose this notification
@@ -5132,14 +5167,14 @@ Login tokens expiration: %2
zh_TW
-
+ LANG_AUTHORName of translator - optional.wck317
-
+
+ %n other feeds.
@@ -5330,6 +5365,26 @@ List of supported readers:
Published articles發行的文章
+
+
+ top-left
+ top-left
+
+
+
+ top-right
+ top-right
+
+
+
+ bottom-left
+ bottom-left
+
+
+
+ bottom-right
+ bottom-right
+ Readability
@@ -6764,45 +6819,46 @@ Also, relaunch "Settings" dialog after you install Node.js.
SettingsNotifications
-
-
- You must have "tray icon" activated to have balloon notifications working.
-
-Also, there are some built-in sounds. Just start typing ":" and they will show up.
- 一定得使用 "系統匣圖示",才會有氣球式提醒。
-
-此外,有一些內建的聲效,只要輸入 "." 就會出現。
- Enable notifications啟用通知
-
- Notifications type
- Notifications type
+
+ Balloon notifications type
+ Balloon notifications type
-
+ Native notifications (tray icon must be enabled)Native notifications (tray icon must be enabled)
-
+ Custom notificationsCustom notifications
-
+ PositionPosition
-
+
+ Screen
+ Screen
+
+
+ Notifications通知
+
+
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ There are some built-in notification sounds. Just start typing ":" and they will show up.
+ SettingsShortcuts
@@ -7519,32 +7575,27 @@ Unread news: %2
ToastNotification
-
- Dialog
- Dialog
-
-
-
+ ......
-
+ 1111
-
+ TextLabelTextLabel
-
+ PushButtonPushButton
-
+ Do it!Do it!
diff --git a/resources/icons.qrc b/resources/icons.qrc
index 68cbb2aee..2d41be1a3 100644
--- a/resources/icons.qrc
+++ b/resources/icons.qrc
@@ -8,6 +8,8 @@
./graphics/Breeze/categories/32/applications-system.svg./graphics/Breeze/actions/32/arrow-down.svg./graphics/Breeze/actions/32/arrow-down-double.svg
+ ./graphics/Breeze/actions/32/arrow-left.svg
+ ./graphics/Breeze/actions/32/arrow-right.svg./graphics/Breeze/actions/32/arrow-up.svg./graphics/Breeze/actions/32/arrow-up-double.svg./graphics/Breeze/actions/32/call-start.svg
@@ -99,6 +101,8 @@
./graphics/Breeze Dark/categories/32/applications-system.svg./graphics/Breeze Dark/actions/32/arrow-down.svg./graphics/Breeze Dark/actions/32/arrow-down-double.svg
+ ./graphics/Breeze Dark/actions/32/arrow-left.svg
+ ./graphics/Breeze Dark/actions/32/arrow-right.svg./graphics/Breeze Dark/actions/32/arrow-up.svg./graphics/Breeze Dark/actions/32/arrow-up-double.svg./graphics/Breeze Dark/actions/32/call-start.svg
@@ -274,6 +278,8 @@
./graphics/Numix/22/categories/applications-system.svg./graphics/Numix/22/actions/arrow-down.svg./graphics/Numix/22/actions/arrow-down-double.svg
+ ./graphics/Numix/22/actions/arrow-left.svg
+ ./graphics/Numix/22/actions/arrow-right.svg./graphics/Numix/22/actions/arrow-up.svg./graphics/Numix/22/actions/arrow-up-double.svg./graphics/Numix/22/actions/browser-download.svg
diff --git a/src/librssguard/CMakeLists.txt b/src/librssguard/CMakeLists.txt
index d9cd30db0..f6afa971d 100644
--- a/src/librssguard/CMakeLists.txt
+++ b/src/librssguard/CMakeLists.txt
@@ -1,4 +1,6 @@
set(SOURCES
+ core/articlelistnotificationmodel.cpp
+ core/articlelistnotificationmodel.h
core/feeddownloader.cpp
core/feeddownloader.h
core/feedsmodel.cpp
@@ -99,6 +101,8 @@ set(SOURCES
gui/notifications/notificationseditor.h
gui/notifications/singlenotificationeditor.cpp
gui/notifications/singlenotificationeditor.h
+ gui/notifications/articlelistnotification.cpp
+ gui/notifications/articlelistnotification.h
gui/reusable/baselineedit.cpp
gui/reusable/baselineedit.h
gui/reusable/basetreeview.cpp
@@ -440,9 +444,10 @@ set(UI_FILES
gui/dialogs/formupdate.ui
gui/notifications/notificationseditor.ui
gui/notifications/singlenotificationeditor.ui
+ gui/notifications/articlelistnotification.ui
+ gui/notifications/toastnotification.ui
gui/reusable/networkproxydetails.ui
gui/itemdetails.ui
- gui/notifications/toastnotification.ui
gui/richtexteditor/mrichtextedit.ui
gui/newspaperpreviewer.ui
gui/reusable/searchtextwidget.ui
diff --git a/src/librssguard/core/articlelistnotificationmodel.cpp b/src/librssguard/core/articlelistnotificationmodel.cpp
new file mode 100644
index 000000000..09a4a7194
--- /dev/null
+++ b/src/librssguard/core/articlelistnotificationmodel.cpp
@@ -0,0 +1,70 @@
+// For license of this file, see /LICENSE.md.
+
+#include "core/articlelistnotificationmodel.h"
+
+#include "definitions/definitions.h"
+
+ArticleListNotificationModel::ArticleListNotificationModel(QObject* parent)
+ : QAbstractListModel(parent), m_currentPage(-1) {}
+
+ArticleListNotificationModel::~ArticleListNotificationModel() {}
+
+void ArticleListNotificationModel::setArticles(const QList& msgs) {
+ m_currentPage = 0;
+ m_articles = msgs;
+
+ reloadWholeLayout();
+ emit nextPagePossibleChanged(nextPageAvailable());
+ emit previousPagePossibleChanged(previousPageAvailable());
+}
+
+Message ArticleListNotificationModel::message(const QModelIndex& idx) const {
+ return m_articles.at((m_currentPage * NOTIFICATIONS_PAGE_SIZE) + idx.row());
+}
+
+void ArticleListNotificationModel::nextPage() {
+ m_currentPage++;
+ reloadWholeLayout();
+
+ emit nextPagePossibleChanged(nextPageAvailable());
+ emit previousPagePossibleChanged(previousPageAvailable());
+}
+
+void ArticleListNotificationModel::previousPage() {
+ m_currentPage--;
+ reloadWholeLayout();
+
+ emit nextPagePossibleChanged(nextPageAvailable());
+ emit previousPagePossibleChanged(previousPageAvailable());
+}
+
+int ArticleListNotificationModel::rowCount(const QModelIndex& parent) const {
+ return std::min(int(m_articles.size() - (NOTIFICATIONS_PAGE_SIZE * m_currentPage)), NOTIFICATIONS_PAGE_SIZE);
+}
+
+int ArticleListNotificationModel::columnCount(const QModelIndex& parent) const {
+ return 1;
+}
+
+QVariant ArticleListNotificationModel::data(const QModelIndex& index, int role) const {
+ switch (role) {
+ case Qt::ItemDataRole::DisplayRole:
+ case Qt::ItemDataRole::ToolTipRole:
+ return m_articles.at((m_currentPage * NOTIFICATIONS_PAGE_SIZE) + index.row()).m_title;
+ }
+
+ return QVariant();
+}
+
+void ArticleListNotificationModel::reloadWholeLayout() {
+ emit layoutAboutToBeChanged();
+ emit layoutChanged();
+}
+
+bool ArticleListNotificationModel::nextPageAvailable() const {
+ return m_articles.size() - (NOTIFICATIONS_PAGE_SIZE * (m_currentPage + 1)) > 0;
+}
+
+bool ArticleListNotificationModel::previousPageAvailable() const {
+ return m_currentPage > 0;
+}
diff --git a/src/librssguard/core/articlelistnotificationmodel.h b/src/librssguard/core/articlelistnotificationmodel.h
new file mode 100644
index 000000000..e98c57a00
--- /dev/null
+++ b/src/librssguard/core/articlelistnotificationmodel.h
@@ -0,0 +1,43 @@
+// For license of this file, see /LICENSE.md.
+
+#ifndef ARTICLELISTNOTIFICATIONMODEL_H
+#define ARTICLELISTNOTIFICATIONMODEL_H
+
+#include
+
+#include "core/message.h"
+
+class ArticleListNotificationModel : public QAbstractListModel {
+ Q_OBJECT
+
+ public:
+ explicit ArticleListNotificationModel(QObject* parent = nullptr);
+ virtual ~ArticleListNotificationModel();
+
+ void setArticles(const QList& msgs);
+
+ Message message(const QModelIndex& idx) const;
+
+ void nextPage();
+ void previousPage();
+
+ virtual int rowCount(const QModelIndex& parent) const;
+ virtual int columnCount(const QModelIndex& parent) const;
+ virtual QVariant data(const QModelIndex& index, int role) const;
+
+ void reloadWholeLayout();
+
+ signals:
+ void nextPagePossibleChanged(bool possible);
+ void previousPagePossibleChanged(bool possible);
+
+ private:
+ bool nextPageAvailable() const;
+ bool previousPageAvailable() const;
+
+ private:
+ QList m_articles;
+ int m_currentPage;
+};
+
+#endif // ARTICLELISTNOTIFICATIONMODEL_H
diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp
index 8b51c3d42..dbe1027a0 100644
--- a/src/librssguard/core/feeddownloader.cpp
+++ b/src/librssguard/core/feeddownloader.cpp
@@ -413,15 +413,17 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc,
<< "microseconds.";
if (feed->status() != Feed::Status::NewMessages) {
- feed->setStatus(updated_messages.first > 0 || updated_messages.second > 0 ? Feed::Status::NewMessages
- : Feed::Status::Normal);
+ feed->setStatus((!updated_messages.m_all.isEmpty() || !updated_messages.m_unread.isEmpty())
+ ? Feed::Status::NewMessages
+ : Feed::Status::Normal);
}
- qDebugNN << LOGSEC_FEEDDOWNLOADER << updated_messages << " messages for feed " << feed->customId()
- << " stored in DB.";
+ qDebugNN << LOGSEC_FEEDDOWNLOADER << updated_messages.m_unread.size() << " unread messages and"
+ << NONQUOTE_W_SPACE(updated_messages.m_all.size()) "total messages for feed"
+ << QUOTE_W_SPACE(feed->customId()) << "stored in DB.";
- if (updated_messages.first > 0) {
- m_results.appendUpdatedFeed({feed, updated_messages.first});
+ if (!updated_messages.m_unread.isEmpty()) {
+ m_results.appendUpdatedFeed(feed, updated_messages.m_unread);
}
}
catch (const FeedFetchException& feed_ex) {
@@ -445,7 +447,6 @@ void FeedDownloader::finalizeUpdate() {
qDebugNN << LOGSEC_FEEDDOWNLOADER << "Finished feed updates in thread"
<< QUOTE_W_SPACE_DOT(QThread::currentThreadId());
- m_results.sort();
m_feeds.clear();
// Update of feeds has finished.
@@ -528,7 +529,8 @@ QString FeedDownloadResults::overview(int how_many_feeds) const {
QStringList result;
for (int i = 0, number_items_output = qMin(how_many_feeds, m_updatedFeeds.size()); i < number_items_output; i++) {
- result.append(m_updatedFeeds.at(i).first->title() + QSL(": ") + QString::number(m_updatedFeeds.at(i).second));
+ result.append(m_updatedFeeds.keys().at(i)->title() + QSL(": ") +
+ QString::number(m_updatedFeeds.value(m_updatedFeeds.keys().at(i)).size()));
}
QString res_str = result.join(QSL("\n"));
@@ -540,22 +542,14 @@ QString FeedDownloadResults::overview(int how_many_feeds) const {
return res_str;
}
-void FeedDownloadResults::appendUpdatedFeed(const QPair& feed) {
- m_updatedFeeds.append(feed);
-}
-
-void FeedDownloadResults::sort() {
- std::sort(m_updatedFeeds.begin(),
- m_updatedFeeds.end(),
- [](const QPair& lhs, const QPair& rhs) {
- return lhs.second > rhs.second;
- });
+void FeedDownloadResults::appendUpdatedFeed(Feed* feed, const QList& updated_unread_msgs) {
+ m_updatedFeeds.insert(feed, updated_unread_msgs);
}
void FeedDownloadResults::clear() {
m_updatedFeeds.clear();
}
-QList> FeedDownloadResults::updatedFeeds() const {
+QHash> FeedDownloadResults::updatedFeeds() const {
return m_updatedFeeds;
}
diff --git a/src/librssguard/core/feeddownloader.h b/src/librssguard/core/feeddownloader.h
index 09e29fd5e..8e24fd925 100644
--- a/src/librssguard/core/feeddownloader.h
+++ b/src/librssguard/core/feeddownloader.h
@@ -5,29 +5,28 @@
#include
-#include
-#include
-
#include "core/message.h"
#include "exceptions/applicationexception.h"
#include "services/abstract/cacheforserviceroot.h"
#include "services/abstract/feed.h"
+#include
+#include
+#include
+
class MessageFilter;
// Represents results of batch feed updates.
class FeedDownloadResults {
public:
- QList> updatedFeeds() const;
+ QHash> updatedFeeds() const;
QString overview(int how_many_feeds) const;
-
- void appendUpdatedFeed(const QPair& feed);
- void sort();
+ void appendUpdatedFeed(Feed* feed, const QList& updated_unread_msgs);
void clear();
private:
// QString represents title if the feed, int represents count of newly downloaded messages.
- QList> m_updatedFeeds;
+ QHash> m_updatedFeeds;
};
struct FeedUpdateRequest {
diff --git a/src/librssguard/core/message.cpp b/src/librssguard/core/message.cpp
index 181cee753..20c735f1f 100644
--- a/src/librssguard/core/message.cpp
+++ b/src/librssguard/core/message.cpp
@@ -2,7 +2,9 @@
#include "core/message.h"
+#include "miscellaneous/application.h"
#include "miscellaneous/textfactory.h"
+#include "network-web/webfactory.h"
#include "services/abstract/feed.h"
#include "services/abstract/label.h"
@@ -75,6 +77,8 @@ Message::Message() {
void Message::sanitize(const Feed* feed, bool fix_future_datetimes) {
// Sanitize title.
+ m_title = qApp->web()->stripTags(qApp->web()->unescapeHtml(m_title));
+
m_title = m_title
// Remove non-breaking spaces.
@@ -89,6 +93,9 @@ void Message::sanitize(const Feed* feed, bool fix_future_datetimes) {
// Remove non-breaking zero-width spaces.
.remove(QChar(65279));
+ // Sanitize author.
+ m_author = qApp->web()->stripTags(qApp->web()->unescapeHtml(m_author));
+
// Sanitize URL.
m_url = m_url.trimmed();
diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp
index a06807faa..aa9bb6107 100644
--- a/src/librssguard/database/databasequeries.cpp
+++ b/src/librssguard/database/databasequeries.cpp
@@ -1354,7 +1354,7 @@ QHash DatabaseQueries::bagsOfMessages(const QSqlDatabase&
return ids;
}
-QPair DatabaseQueries::updateMessages(const QSqlDatabase& db,
+UpdatedArticles DatabaseQueries::updateMessages(const QSqlDatabase& db,
QList& messages,
Feed* feed,
bool force_update,
@@ -1362,10 +1362,10 @@ QPair DatabaseQueries::updateMessages(const QSqlDatabase& db,
bool* ok) {
if (messages.isEmpty()) {
*ok = true;
- return {0, 0};
+ return {};
}
- QPair updated_messages = {0, 0};
+ UpdatedArticles updated_messages;
int account_id = feed->getParentServiceRoot()->accountId();
auto feed_custom_id = feed->customId();
@@ -1615,10 +1615,10 @@ QPair DatabaseQueries::updateMessages(const QSqlDatabase& db,
<< QUOTE_W_SPACE(message.m_url) << "in DB.";
if (!message.m_isRead) {
- updated_messages.first++;
+ updated_messages.m_unread.append(message);
}
- updated_messages.second++;
+ updated_messages.m_all.append(message);
message.m_insertedUpdated = true;
}
else if (query_update.lastError().isValid()) {
@@ -1655,10 +1655,10 @@ QPair DatabaseQueries::updateMessages(const QSqlDatabase& db,
}
if (!msg->m_isRead) {
- updated_messages.first++;
+ updated_messages.m_unread.append(*msg);
}
- updated_messages.second++;
+ updated_messages.m_all.append(*msg);
msg->m_insertedUpdated = true;
vals.append(QSL("\n(':feed', ':title', :is_read, :is_important, :is_deleted, "
@@ -1742,10 +1742,10 @@ QPair DatabaseQueries::updateMessages(const QSqlDatabase& db,
// but its assigned labels were changed. Therefore we must count article
// as updated.
if (!message.m_isRead) {
- updated_messages.first++;
+ updated_messages.m_unread.append(message);
}
- updated_messages.second++;
+ updated_messages.m_all.append(message);
}
}
else {
diff --git a/src/librssguard/database/databasequeries.h b/src/librssguard/database/databasequeries.h
index f674d51dc..4a27d405b 100644
--- a/src/librssguard/database/databasequeries.h
+++ b/src/librssguard/database/databasequeries.h
@@ -21,11 +21,6 @@
#include
#include
-struct ArticleCounts {
- int m_total = -1;
- int m_unread = -1;
-};
-
class DatabaseQueries {
public:
static QMap messageTableAttributes(bool only_msg_table, bool is_sqlite);
@@ -162,7 +157,7 @@ class DatabaseQueries {
static void createOverwriteAccount(const QSqlDatabase& db, ServiceRoot* account);
// Returns counts of updated messages .
- static QPair updateMessages(const QSqlDatabase& db,
+ static UpdatedArticles updateMessages(const QSqlDatabase& db,
QList& messages,
Feed* feed,
bool force_update,
diff --git a/src/librssguard/definitions/definitions.h b/src/librssguard/definitions/definitions.h
index 826b45765..7708835a1 100644
--- a/src/librssguard/definitions/definitions.h
+++ b/src/librssguard/definitions/definitions.h
@@ -101,9 +101,10 @@
#define WEB_BROWSER_SCROLL_STEP 50.0
#define MAX_NUMBER_OF_REDIRECTIONS 4
-#define NOTIFICATIONS_MARGIN 16
-#define NOTIFICATIONS_WIDTH 256
-#define NOTIFICATIONS_TIMEOUT 15s
+#define NOTIFICATIONS_MARGIN 16
+#define NOTIFICATIONS_WIDTH 300
+#define NOTIFICATIONS_TIMEOUT 15s
+#define NOTIFICATIONS_PAGE_SIZE 10
#define GOOGLE_SEARCH_URL "https://www.google.com/search?q=%1&ie=utf-8&oe=utf-8"
#define GOOGLE_SUGGEST_URL "http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=%1"
@@ -165,6 +166,7 @@
#define LOGSEC_MESSAGEMODEL "message-model: "
#define LOGSEC_JS "javascript: "
#define LOGSEC_GUI "gui: "
+#define LOGSEC_NOTIFICATIONS "notifications: "
#define LOGSEC_CORE "core: "
#define LOGSEC_NODEJS "nodejs: "
#define LOGSEC_DB "database: "
diff --git a/src/librssguard/definitions/typedefs.h b/src/librssguard/definitions/typedefs.h
index 19e7bb02e..73e13d1ba 100644
--- a/src/librssguard/definitions/typedefs.h
+++ b/src/librssguard/definitions/typedefs.h
@@ -14,4 +14,14 @@ typedef QList> Assignment;
typedef QPair AssignmentItem;
typedef QPair ImportanceChange;
+struct ArticleCounts {
+ int m_total = -1;
+ int m_unread = -1;
+};
+
+struct UpdatedArticles {
+ QList m_unread;
+ QList m_all;
+};
+
#endif // TYPEDEFS_H
diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp
index b2563a855..7a4d49d0d 100644
--- a/src/librssguard/gui/dialogs/formmain.cpp
+++ b/src/librssguard/gui/dialogs/formmain.cpp
@@ -1090,20 +1090,7 @@ void FormMain::showAddAccountDialog() {
}
void FormMain::reportABug() {
- qApp
- ->showGuiMessage(Notification::Event::GeneralEvent,
- GuiMessage(QDateTime::currentDateTime().toString(),
- "Quisque ullamcorper ut purus nec tempus. Vivamus eros dolor, sagittis ultrices augue "
- "ut, posuere fringilla lorem. Donec posuere, enim sit amet fermentum dignissim, tellus "
- "lectus laoreet lectus, vestibulum laoreet felis tortor eget nunc. Curabitur sagittis "
- "quam in scelerisque placerat. Vivamus vel porta tortor. Vivamus nec volutpat sem",
- QSystemTrayIcon::MessageIcon::Information),
- GuiMessageDestination(),
- GuiAction("test", []() {
- qDebugNN << "aa";
- }));
-
- // qApp->web()->openUrlInExternalBrowser(QSL(APP_URL_ISSUES_NEW));
+ qApp->web()->openUrlInExternalBrowser(QSL(APP_URL_ISSUES_NEW));
}
void FormMain::donate() {
diff --git a/src/librssguard/gui/notifications/articlelistnotification.cpp b/src/librssguard/gui/notifications/articlelistnotification.cpp
new file mode 100644
index 000000000..931064150
--- /dev/null
+++ b/src/librssguard/gui/notifications/articlelistnotification.cpp
@@ -0,0 +1,83 @@
+// For license of this file, see /LICENSE.md.
+
+#include "gui/notifications/articlelistnotification.h"
+
+#include "core/articlelistnotificationmodel.h"
+#include "miscellaneous/iconfactory.h"
+
+#include
+
+ArticleListNotification::ArticleListNotification(QWidget* parent)
+ : BaseToastNotification(parent), m_model(new ArticleListNotificationModel(this)) {
+ m_ui.setupUi(this);
+
+ setupHeading(m_ui.m_lblTitle);
+ setupCloseButton(m_ui.m_btnClose);
+
+ m_ui.m_btnNextPage->setIcon(qApp->icons()->fromTheme(QSL("arrow-right"), QSL("stock_right")));
+ m_ui.m_btnPreviousPage->setIcon(qApp->icons()->fromTheme(QSL("arrow-left"), QSL("stock_left")));
+ m_ui.m_btnOpenArticleList->setIcon(qApp->icons()->fromTheme(QSL("view-list-details")));
+ m_ui.m_btnOpenWebBrowser->setIcon(qApp->icons()->fromTheme(QSL("document-open")));
+
+ connect(m_model,
+ &ArticleListNotificationModel::nextPagePossibleChanged,
+ m_ui.m_btnNextPage,
+ &PlainToolButton::setEnabled);
+ connect(m_model,
+ &ArticleListNotificationModel::previousPagePossibleChanged,
+ m_ui.m_btnPreviousPage,
+ &PlainToolButton::setEnabled);
+ connect(m_ui.m_btnNextPage, &PlainToolButton::clicked, m_model, &ArticleListNotificationModel::nextPage);
+ connect(m_ui.m_btnPreviousPage, &PlainToolButton::clicked, m_model, &ArticleListNotificationModel::previousPage);
+ connect(m_ui.m_treeArticles->selectionModel(),
+ &QItemSelectionModel::currentChanged,
+ this,
+ &ArticleListNotificationModel::onMessageSelected);
+
+ m_ui.m_treeArticles->setAttribute(Qt::WA_NoSystemBackground, true);
+
+ auto pal = m_ui.m_treeArticles->palette();
+
+ // Make background transparent.
+ pal.setColor(QPalette::ColorRole::Base, Qt::transparent);
+
+ m_ui.m_treeArticles->setPalette(pal);
+ m_ui.m_treeArticles->setModel(m_model);
+
+ connect(m_ui.m_cmbFeeds,
+ QOverload::of(&QComboBox::currentIndexChanged),
+ this,
+ &ArticleListNotification::showFeed);
+}
+
+void ArticleListNotification::loadResults(const QHash>& new_messages) {
+ setupTimedClosing();
+
+ m_newMessages = new_messages;
+
+ m_ui.m_lblTitle->setText(tr("%n feeds fetched", nullptr, new_messages.size()));
+
+ m_ui.m_cmbFeeds->clear();
+
+ for (Feed* fd : new_messages.keys()) {
+ m_ui.m_cmbFeeds->addItem(fd->sanitizedTitle(), QVariant::fromValue(fd));
+ }
+}
+
+void ArticleListNotification::onMessageSelected(const QModelIndex& current, const QModelIndex& previous) {
+ m_ui.m_btnOpenArticleList->setEnabled(current.isValid());
+ m_ui.m_btnOpenWebBrowser->setEnabled(current.isValid());
+}
+
+void ArticleListNotification::showFeed(int index) {
+ m_model->setArticles(m_newMessages.value(m_ui.m_cmbFeeds->itemData(index).value()));
+}
+
+Message ArticleListNotification::selectedMessage() const {
+ if (m_ui.m_treeArticles->currentIndex().isValid()) {
+ return m_model->message(m_ui.m_treeArticles->currentIndex());
+ }
+ else {
+ throw ApplicationException("message cannot be loaded, wrong index");
+ }
+}
diff --git a/src/librssguard/gui/notifications/articlelistnotification.h b/src/librssguard/gui/notifications/articlelistnotification.h
new file mode 100644
index 000000000..a2774b7f3
--- /dev/null
+++ b/src/librssguard/gui/notifications/articlelistnotification.h
@@ -0,0 +1,36 @@
+// For license of this file, see /LICENSE.md.
+
+#ifndef ARTICLELISTNOTIFICATION_H
+#define ARTICLELISTNOTIFICATION_H
+
+#include "gui/notifications/basetoastnotification.h"
+
+#include "core/message.h"
+
+#include "ui_articlelistnotification.h"
+
+class Feed;
+class ArticleListNotificationModel;
+
+class ArticleListNotification : public BaseToastNotification {
+ Q_OBJECT
+
+ public:
+ explicit ArticleListNotification(QWidget* parent = nullptr);
+
+ void loadResults(const QHash>& new_messages);
+
+ private slots:
+ void onMessageSelected(const QModelIndex& current, const QModelIndex& previous);
+ void showFeed(int index);
+
+ private:
+ Message selectedMessage() const;
+
+ private:
+ Ui::ArticleListNotification m_ui;
+ ArticleListNotificationModel* m_model;
+ QHash> m_newMessages;
+};
+
+#endif // ARTICLELISTNOTIFICATION_H
diff --git a/src/librssguard/gui/notifications/articlelistnotification.ui b/src/librssguard/gui/notifications/articlelistnotification.ui
new file mode 100644
index 000000000..cee497ca8
--- /dev/null
+++ b/src/librssguard/gui/notifications/articlelistnotification.ui
@@ -0,0 +1,153 @@
+
+
+ ArticleListNotification
+
+
+
+ 0
+ 0
+ 338
+ 271
+
+
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ 0
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
+
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+ Go to previous page
+
+
+
+
+
+
+ Go to next page
+
+
+
+
+
+
+ Open article in article list
+
+
+
+
+
+
+ Open article in web browser
+
+
+
+
+
+
+
+
+
+ PlainToolButton
+ QToolButton
+ plaintoolbutton.h
+
+
+
+ m_btnClose
+ m_treeArticles
+ m_cmbFeeds
+ m_btnPreviousPage
+ m_btnNextPage
+ m_btnOpenArticleList
+ m_btnOpenWebBrowser
+
+
+
+
diff --git a/src/librssguard/gui/notifications/basetoastnotification.cpp b/src/librssguard/gui/notifications/basetoastnotification.cpp
index 07fc295a3..1976557a0 100644
--- a/src/librssguard/gui/notifications/basetoastnotification.cpp
+++ b/src/librssguard/gui/notifications/basetoastnotification.cpp
@@ -6,12 +6,13 @@
#include
#include
+#include
#include
using namespace std::chrono_literals;
-BaseToastNotification::BaseToastNotification(QWidget* parent) : QDialog(parent) {
+BaseToastNotification::BaseToastNotification(QWidget* parent) : QDialog(parent), m_timerId(-1) {
setAttribute(Qt::WidgetAttribute::WA_ShowWithoutActivating);
setFixedWidth(NOTIFICATIONS_WIDTH);
setFocusPolicy(Qt::FocusPolicy::NoFocus);
@@ -26,7 +27,7 @@ BaseToastNotification::BaseToastNotification(QWidget* parent) : QDialog(parent)
#endif
Qt::WindowType::FramelessWindowHint | Qt::WindowType::WindowStaysOnTopHint | Qt::WindowType::WindowSystemMenuHint);
- setStyleSheet(QSL("BaseToastNotification { border: 1px solid black; }"));
+ setStyleSheet(QSL("BaseToastNotification { border: 1px solid %1; }").arg(palette().windowText().color().name()));
installEventFilter(this);
}
@@ -39,8 +40,30 @@ void BaseToastNotification::setupCloseButton(QAbstractButton* btn) {
connect(btn, &QAbstractButton::clicked, this, &BaseToastNotification::close);
}
+void BaseToastNotification::setupHeading(QLabel* lbl) {
+ auto fon = lbl->font();
+
+ fon.setBold(true);
+ fon.setPointSize(fon.pointSize() * 1.2);
+
+ lbl->setFont(fon);
+}
+
+void BaseToastNotification::stopTimedClosing() {
+ if (m_timerId >= 0) {
+ killTimer(m_timerId);
+ m_timerId = -1;
+
+ qDebugNN << LOGSEC_NOTIFICATIONS << "Stopping timed closing for notification.";
+ }
+}
+
void BaseToastNotification::setupTimedClosing() {
- QTimer::singleShot(NOTIFICATIONS_TIMEOUT, this, &BaseToastNotification::close);
+ if (m_timerId < 0) {
+ m_timerId = startTimer(NOTIFICATIONS_TIMEOUT);
+
+ qDebugNN << LOGSEC_NOTIFICATIONS << "Starting timed closing for notification.";
+ }
}
bool BaseToastNotification::eventFilter(QObject* watched, QEvent* event) {
@@ -48,12 +71,28 @@ bool BaseToastNotification::eventFilter(QObject* watched, QEvent* event) {
return true;
}
else {
+ if (event->type() == QEvent::Type::Enter) {
+ stopTimedClosing();
+ }
+
+ if (event->type() == QEvent::Type::Leave) {
+ setupTimedClosing();
+ }
+
return QDialog::eventFilter(watched, event);
}
}
void BaseToastNotification::closeEvent(QCloseEvent* event) {
+ stopTimedClosing();
emit closeRequested(this);
}
void BaseToastNotification::reject() {}
+
+void BaseToastNotification::timerEvent(QTimerEvent* event) {
+ if (event->timerId() == m_timerId) {
+ stopTimedClosing();
+ emit closeRequested(this);
+ }
+}
diff --git a/src/librssguard/gui/notifications/basetoastnotification.h b/src/librssguard/gui/notifications/basetoastnotification.h
index 34704c917..d29ac5ceb 100644
--- a/src/librssguard/gui/notifications/basetoastnotification.h
+++ b/src/librssguard/gui/notifications/basetoastnotification.h
@@ -6,6 +6,7 @@
#include
class QAbstractButton;
+class QLabel;
class BaseToastNotification : public QDialog {
Q_OBJECT
@@ -14,18 +15,18 @@ class BaseToastNotification : public QDialog {
explicit BaseToastNotification(QWidget* parent = nullptr);
virtual ~BaseToastNotification();
- // If true, then notification is always moved as close to top as possible.
- virtual bool alwaysOnTop() const = 0;
-
public slots:
virtual void reject();
protected:
virtual bool eventFilter(QObject* watched, QEvent* event);
+ virtual void timerEvent(QTimerEvent* event);
virtual void closeEvent(QCloseEvent* event);
- void setupCloseButton(QAbstractButton* btn);
+ void setupHeading(QLabel* lbl);
void setupTimedClosing();
+ void setupCloseButton(QAbstractButton* btn);
+ void stopTimedClosing();
signals:
void closeRequested(BaseToastNotification* notif);
diff --git a/src/librssguard/gui/notifications/toastnotification.cpp b/src/librssguard/gui/notifications/toastnotification.cpp
index bb2dd3d11..1062c82e6 100644
--- a/src/librssguard/gui/notifications/toastnotification.cpp
+++ b/src/librssguard/gui/notifications/toastnotification.cpp
@@ -8,33 +8,20 @@
#include
#endif
-void ToastNotification::setupHeading() {
- auto fon = m_ui.m_lblTitle->font();
-
- fon.setBold(true);
- fon.setPointSize(fon.pointSize() * 1.2);
-
- m_ui.m_lblTitle->setFont(fon);
-}
-
ToastNotification::ToastNotification(Notification::Event event,
const GuiMessage& msg,
const GuiAction& action,
QWidget* parent)
- : BaseToastNotification(parent) {
+ : BaseToastNotification() {
m_ui.setupUi(this);
- setupHeading();
+ setupHeading(m_ui.m_lblTitle);
setupCloseButton(m_ui.m_btnClose);
setupTimedClosing();
loadNotification(event, msg, action);
}
-bool ToastNotification::alwaysOnTop() const {
- return false;
-}
-
void ToastNotification::loadNotification(Notification::Event event, const GuiMessage& msg, const GuiAction& action) {
m_ui.m_lblTitle->setText(msg.m_title);
m_ui.m_lblBody->setText(msg.m_message);
@@ -47,7 +34,10 @@ void ToastNotification::loadNotification(Notification::Event event, const GuiMes
if (action.m_action) {
m_ui.m_btnAction->setText(action.m_title.isEmpty() ? tr("Do it!") : action.m_title);
- connect(m_ui.m_btnAction, &QPushButton::clicked, this, action.m_action);
+ connect(m_ui.m_btnAction, &QPushButton::clicked, this, [this, action]() {
+ action.m_action();
+ emit closeRequested(this);
+ });
}
else {
m_ui.m_mainLayout->removeItem(m_ui.m_actionLayout);
diff --git a/src/librssguard/gui/notifications/toastnotification.h b/src/librssguard/gui/notifications/toastnotification.h
index b14f8bbd0..463671914 100644
--- a/src/librssguard/gui/notifications/toastnotification.h
+++ b/src/librssguard/gui/notifications/toastnotification.h
@@ -18,10 +18,7 @@ class ToastNotification : public BaseToastNotification {
const GuiAction& action,
QWidget* parent = nullptr);
- virtual bool alwaysOnTop() const;
-
private:
- void setupHeading();
void loadNotification(Notification::Event event, const GuiMessage& msg, const GuiAction& action);
QIcon iconForType(QSystemTrayIcon::MessageIcon icon) const;
diff --git a/src/librssguard/gui/notifications/toastnotification.ui b/src/librssguard/gui/notifications/toastnotification.ui
index 029cec080..09e3b815b 100644
--- a/src/librssguard/gui/notifications/toastnotification.ui
+++ b/src/librssguard/gui/notifications/toastnotification.ui
@@ -10,9 +10,6 @@
143
-
- Dialog
- 6
diff --git a/src/librssguard/gui/notifications/toastnotificationsmanager.cpp b/src/librssguard/gui/notifications/toastnotificationsmanager.cpp
index cb6235d61..d783c40ef 100644
--- a/src/librssguard/gui/notifications/toastnotificationsmanager.cpp
+++ b/src/librssguard/gui/notifications/toastnotificationsmanager.cpp
@@ -4,14 +4,33 @@
#include "3rd-party/boolinq/boolinq.h"
#include "gui/notifications/basetoastnotification.h"
+
+#include "gui/notifications/articlelistnotification.h"
#include "gui/notifications/toastnotification.h"
#include
#include
#include
-ToastNotificationsManager::ToastNotificationsManager(QObject* parent)
- : QObject(parent), m_position(NotificationPosition::BottomRight), m_screen(-1) {}
+QString ToastNotificationsManager::textForPosition(ToastNotificationsManager::NotificationPosition pos) {
+ switch (pos) {
+ case TopLeft:
+ return QObject::tr("top-left");
+
+ case TopRight:
+ return QObject::tr("top-right");
+
+ case BottomLeft:
+ return QObject::tr("bottom-left");
+
+ case BottomRight:
+ default:
+ return QObject::tr("bottom-right");
+ }
+}
+
+ToastNotificationsManager::ToastNotificationsManager(NotificationPosition position, int screen, QObject* parent)
+ : QObject(parent), m_position(position), m_screen(screen), m_articleListNotification(nullptr) {}
ToastNotificationsManager::~ToastNotificationsManager() {
clear();
@@ -39,7 +58,7 @@ void ToastNotificationsManager::setPosition(NotificationPosition position) {
void ToastNotificationsManager::clear() {
for (BaseToastNotification* notif : m_activeNotifications) {
- closeNotification(notif);
+ closeNotification(notif, true);
}
m_activeNotifications.clear();
@@ -48,9 +67,26 @@ void ToastNotificationsManager::clear() {
void ToastNotificationsManager::showNotification(Notification::Event event,
const GuiMessage& msg,
const GuiAction& action) {
- ToastNotification* notif = new ToastNotification(event, msg, action, qApp->mainFormWidget());
+ BaseToastNotification* notif;
- hookNotification(notif);
+ if (!msg.m_feedFetchResults.updatedFeeds().isEmpty()) {
+ if (m_articleListNotification == nullptr) {
+ m_articleListNotification = new ArticleListNotification();
+ hookNotification(m_articleListNotification);
+ }
+ else if (m_activeNotifications.contains(m_articleListNotification)) {
+ // Article notification is somewhere in list, clear first to move it to first positon.
+ closeNotification(m_articleListNotification, false);
+ }
+
+ m_articleListNotification->loadResults(msg.m_feedFetchResults.updatedFeeds());
+
+ notif = m_articleListNotification;
+ }
+ else {
+ notif = new ToastNotification(event, msg, action, qApp->mainFormWidget());
+ hookNotification(notif);
+ }
auto* screen = moveToProperScreen(notif);
@@ -74,12 +110,15 @@ void ToastNotificationsManager::showNotification(Notification::Event event,
m_activeNotifications.prepend(notif);
}
-void ToastNotificationsManager::showNotification(const QList& new_messages) {}
-
-void ToastNotificationsManager::closeNotification(BaseToastNotification* notif) {
+void ToastNotificationsManager::closeNotification(BaseToastNotification* notif, bool delete_from_memory) {
auto notif_idx = m_activeNotifications.indexOf(notif);
- notif->deleteLater();
+ if (delete_from_memory) {
+ notif->deleteLater();
+ }
+ else {
+ notif->hide();
+ }
m_activeNotifications.removeAll(notif);
@@ -121,7 +160,9 @@ QPoint ToastNotificationsManager::cornerForNewNotification(QRect screen_rect) {
}
void ToastNotificationsManager::hookNotification(BaseToastNotification* notif) {
- connect(notif, &BaseToastNotification::closeRequested, this, &ToastNotificationsManager::closeNotification);
+ connect(notif, &BaseToastNotification::closeRequested, this, [this](BaseToastNotification* notif) {
+ closeNotification(notif, notif != m_articleListNotification);
+ });
}
void ToastNotificationsManager::moveNotificationToCorner(BaseToastNotification* notif, QPoint corner) {
diff --git a/src/librssguard/gui/notifications/toastnotificationsmanager.h b/src/librssguard/gui/notifications/toastnotificationsmanager.h
index 9b8bedb8e..10f2b54ed 100644
--- a/src/librssguard/gui/notifications/toastnotificationsmanager.h
+++ b/src/librssguard/gui/notifications/toastnotificationsmanager.h
@@ -9,6 +9,7 @@
class BaseToastNotification;
class ToastNotification;
+class ArticleListNotification;
class QScreen;
class ToastNotificationsManager : public QObject {
@@ -22,7 +23,13 @@ class ToastNotificationsManager : public QObject {
BottomRight = 3
};
- explicit ToastNotificationsManager(QObject* parent = nullptr);
+ Q_ENUM(NotificationPosition)
+
+ static QString textForPosition(ToastNotificationsManager::NotificationPosition pos);
+
+ explicit ToastNotificationsManager(ToastNotificationsManager::NotificationPosition position,
+ int screen,
+ QObject* parent = nullptr);
virtual ~ToastNotificationsManager();
QList activeNotifications() const;
@@ -38,10 +45,9 @@ class ToastNotificationsManager : public QObject {
public slots:
void clear();
void showNotification(Notification::Event event, const GuiMessage& msg, const GuiAction& action);
- void showNotification(const QList& new_messages);
private slots:
- void closeNotification(BaseToastNotification* notif);
+ void closeNotification(BaseToastNotification* notif, bool delete_from_memory);
private:
QScreen* activeScreen() const;
@@ -60,6 +66,8 @@ class ToastNotificationsManager : public QObject {
// List of all displayed notifications, newest notifications are in the beginning of the list
// and oldest at the end.
QList m_activeNotifications;
+
+ ArticleListNotification* m_articleListNotification;
};
#endif // TOASTNOTIFICATIONSMANAGER_H
diff --git a/src/librssguard/gui/reusable/helpspoiler.cpp b/src/librssguard/gui/reusable/helpspoiler.cpp
index 71a79a010..6fbaab86a 100644
--- a/src/librssguard/gui/reusable/helpspoiler.cpp
+++ b/src/librssguard/gui/reusable/helpspoiler.cpp
@@ -26,6 +26,7 @@ HelpSpoiler::HelpSpoiler(QWidget* parent)
m_btnToggle->setCheckable(true);
m_btnToggle->setChecked(false);
+ m_content->setStyleSheet(QSL("QScrollArea { border: 1px solid %1; }").arg(palette().windowText().color().name()));
m_content->setSizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::Policy::Fixed);
m_content->setMaximumHeight(0);
m_content->setMinimumHeight(0);
diff --git a/src/librssguard/gui/settings/settingsnotifications.cpp b/src/librssguard/gui/settings/settingsnotifications.cpp
index e18ebe0ef..afce5c9a5 100644
--- a/src/librssguard/gui/settings/settingsnotifications.cpp
+++ b/src/librssguard/gui/settings/settingsnotifications.cpp
@@ -8,6 +8,8 @@
#include "miscellaneous/settings.h"
#include
+#include
+#include
SettingsNotifications::SettingsNotifications(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) {
m_ui.setupUi(this);
@@ -18,6 +20,38 @@ SettingsNotifications::SettingsNotifications(Settings* settings, QWidget* parent
connect(m_ui.m_checkEnableNotifications, &QCheckBox::toggled, this, &SettingsNotifications::dirtifySettings);
connect(m_ui.m_editor, &NotificationsEditor::someNotificationChanged, this, &SettingsNotifications::dirtifySettings);
+
+ connect(m_ui.m_rbCustomNotifications, &QRadioButton::toggled, this, &SettingsNotifications::dirtifySettings);
+ connect(m_ui.m_rbCustomNotifications, &QRadioButton::toggled, this, &SettingsNotifications::requireRestart);
+
+ connect(m_ui.m_rbNativeNotifications, &QRadioButton::toggled, this, &SettingsNotifications::dirtifySettings);
+ connect(m_ui.m_rbNativeNotifications, &QRadioButton::toggled, this, &SettingsNotifications::requireRestart);
+
+ connect(m_ui.m_sbScreen, QOverload::of(&QSpinBox::valueChanged), this, &SettingsNotifications::dirtifySettings);
+ connect(m_ui.m_sbScreen, QOverload::of(&QSpinBox::valueChanged), this, &SettingsNotifications::requireRestart);
+
+ m_ui.m_sbScreen->setMinimum(-1);
+ m_ui.m_sbScreen->setMaximum(QGuiApplication::screens().size() - 1);
+
+ connect(m_ui.m_sbScreen, QOverload::of(&QSpinBox::valueChanged), this, &SettingsNotifications::showScreenInfo);
+
+ connect(m_ui.m_cbCustomNotificationsPosition,
+ QOverload::of(&QComboBox::currentIndexChanged),
+ this,
+ &SettingsNotifications::dirtifySettings);
+ connect(m_ui.m_cbCustomNotificationsPosition,
+ QOverload::of(&QComboBox::currentIndexChanged),
+ this,
+ &SettingsNotifications::requireRestart);
+
+ QMetaEnum enm = QMetaEnum::fromType();
+
+ for (int i = 0; i < enm.keyCount(); i++) {
+ m_ui.m_cbCustomNotificationsPosition
+ ->addItem(ToastNotificationsManager::
+ textForPosition(ToastNotificationsManager::NotificationPosition(enm.value(i))),
+ enm.value(i));
+ }
}
void SettingsNotifications::loadSettings() {
@@ -28,6 +62,16 @@ void SettingsNotifications::loadSettings() {
->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::EnableNotifications)).toBool());
m_ui.m_editor->loadNotifications(qApp->notifications()->allNotifications());
+ m_ui.m_rbNativeNotifications
+ ->setChecked(!settings()->value(GROUP(GUI), SETTING(GUI::UseToastNotifications)).toBool());
+ m_ui.m_sbScreen->setValue(settings()->value(GROUP(GUI), SETTING(GUI::ToastNotificationsScreen)).toInt());
+
+ m_ui.m_cbCustomNotificationsPosition
+ ->setCurrentIndex(m_ui.m_cbCustomNotificationsPosition
+ ->findData(settings()
+ ->value(GROUP(GUI), SETTING(GUI::ToastNotificationsPosition))
+ .value()));
+
onEndLoadSettings();
}
@@ -38,5 +82,29 @@ void SettingsNotifications::saveSettings() {
settings()->setValue(GROUP(GUI), GUI::EnableNotifications, m_ui.m_checkEnableNotifications->isChecked());
qApp->notifications()->save(m_ui.m_editor->allNotifications(), settings());
+ settings()->setValue(GROUP(GUI), GUI::UseToastNotifications, m_ui.m_rbCustomNotifications->isChecked());
+ settings()->setValue(GROUP(GUI), GUI::ToastNotificationsScreen, m_ui.m_sbScreen->value());
+
+ settings()->setValue(GROUP(GUI),
+ GUI::ToastNotificationsPosition,
+ m_ui.m_cbCustomNotificationsPosition->currentData()
+ .value());
+
onEndSaveSettings();
}
+
+void SettingsNotifications::showScreenInfo(int index) {
+ QScreen* scr;
+
+ if (index < 0 || index >= QGuiApplication::screens().size()) {
+ scr = QGuiApplication::primaryScreen();
+ }
+ else {
+ scr = QGuiApplication::screens().at(index);
+ }
+
+ m_ui.m_lblScreenInfo->setText(QSL("%1 (%2x%3)")
+ .arg(scr->name(),
+ QString::number(scr->virtualSize().width()),
+ QString::number(scr->virtualSize().height())));
+}
diff --git a/src/librssguard/gui/settings/settingsnotifications.h b/src/librssguard/gui/settings/settingsnotifications.h
index eac55fb4f..8c306377f 100644
--- a/src/librssguard/gui/settings/settingsnotifications.h
+++ b/src/librssguard/gui/settings/settingsnotifications.h
@@ -10,7 +10,7 @@
class Settings;
class SettingsNotifications : public SettingsPanel {
- Q_OBJECT
+ Q_OBJECT
public:
explicit SettingsNotifications(Settings* settings, QWidget* parent = nullptr);
@@ -19,6 +19,9 @@ class SettingsNotifications : public SettingsPanel {
virtual void loadSettings();
virtual void saveSettings();
+ private slots:
+ void showScreenInfo(int index);
+
private:
Ui::SettingsNotifications m_ui;
};
diff --git a/src/librssguard/gui/settings/settingsnotifications.ui b/src/librssguard/gui/settings/settingsnotifications.ui
index a67f9ac10..6f3aa6a4c 100644
--- a/src/librssguard/gui/settings/settingsnotifications.ui
+++ b/src/librssguard/gui/settings/settingsnotifications.ui
@@ -37,7 +37,7 @@
- Notifications type
+ Balloon notifications type
@@ -52,6 +52,9 @@
Custom notifications
+
+ true
+
@@ -73,6 +76,27 @@
+
+
+
+ 99
+
+
+
+
+
+
+ Screen
+
+
+
+
+
+
+
+
+
+
diff --git a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp
index a368e1be0..d4f761cf5 100644
--- a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp
+++ b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp
@@ -134,7 +134,7 @@ PreparedHtml TextBrowserViewer::prepareHtmlForMessage(const QList& mess
html.m_html += is_plain ? Qt::convertFromPlainText(message.m_contents, Qt::WhiteSpaceMode::WhiteSpaceNormal)
: message.m_contents;
- static QRegularExpression img_tag_rgx("\\]*src\\s*=\\s*[\"\']([^\"\']*)[\"\'][^\\>]*\\>",
+ static QRegularExpression img_tag_rgx(QSL("\\]*src\\s*=\\s*[\"\']([^\"\']*)[\"\'][^\\>]*\\>"),
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::InvertedGreedinessOption);
diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp
index 330f94215..f4ae62f14 100644
--- a/src/librssguard/miscellaneous/application.cpp
+++ b/src/librssguard/miscellaneous/application.cpp
@@ -110,7 +110,14 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin
m_database = new DatabaseFactory(this);
m_downloadManager = nullptr;
m_notifications = new NotificationFactory(this);
- m_toastNotifications = new ToastNotificationsManager(this);
+ m_toastNotifications =
+ settings()->value(GROUP(GUI), SETTING(GUI::UseToastNotifications)).toBool()
+ ? new ToastNotificationsManager(settings()
+ ->value(GROUP(GUI), SETTING(GUI::ToastNotificationsPosition))
+ .value(),
+ settings()->value(GROUP(GUI), SETTING(GUI::ToastNotificationsScreen)).toInt(),
+ this)
+ : nullptr;
m_shouldRestart = false;
#if defined(Q_OS_WIN)
@@ -690,22 +697,26 @@ void Application::showGuiMessageCore(Notification::Event event,
GuiMessageDestination dest,
const GuiAction& action,
QWidget* parent) {
- m_toastNotifications->showNotification(event, msg, action);
- return;
-
if (m_notifications->areNotificationsEnabled()) {
auto notification = m_notifications->notificationForEvent(event);
notification.playSound(this);
- if (SystemTrayIcon::isSystemTrayDesired() && SystemTrayIcon::isSystemTrayAreaAvailable() &&
- notification.balloonEnabled() && dest.m_tray) {
- trayIcon()->showMessage(msg.m_title.simplified().isEmpty() ? Notification::nameForEvent(notification.event())
- : msg.m_title,
- msg.m_message,
- msg.m_type,
- TRAY_ICON_BUBBLE_TIMEOUT,
- std::move(action.m_action));
+ if (notification.balloonEnabled() && dest.m_tray) {
+ if (m_toastNotifications != nullptr) {
+ // Toasts are enabled.
+ m_toastNotifications->showNotification(event, msg, action);
+ }
+ else if (SystemTrayIcon::isSystemTrayDesired() && SystemTrayIcon::isSystemTrayAreaAvailable()) {
+ // Use tray icon balloons (which are implemented as native notifications on most systems.
+ trayIcon()->showMessage(msg.m_title.simplified().isEmpty() ? Notification::nameForEvent(notification.event())
+ : msg.m_title,
+ msg.m_message,
+ msg.m_type,
+ TRAY_ICON_BUBBLE_TIMEOUT,
+ std::move(action.m_action));
+ }
+
return;
}
}
@@ -994,15 +1005,24 @@ void Application::onFeedUpdatesProgress(const Feed* feed, int current, int total
}
void Application::onFeedUpdatesFinished(const FeedDownloadResults& results) {
- auto fds = results.updatedFeeds();
- bool some_unquiet_feed = boolinq::from(fds).any([](const QPair& fd) {
- return !fd.first->isQuiet();
+ auto fds = results.updatedFeeds().keys();
+ bool some_unquiet_feed = boolinq::from(fds).any([](Feed* fd) {
+ return !fd->isQuiet();
});
if (some_unquiet_feed) {
- // Now, inform about results via GUI message/notification.
- qApp->showGuiMessage(Notification::Event::NewUnreadArticlesFetched,
- {tr("Unread articles fetched"), results.overview(10), QSystemTrayIcon::MessageIcon::NoIcon});
+ GuiMessage msg = {tr("Unread articles fetched"), QString(), QSystemTrayIcon::MessageIcon::NoIcon};
+
+ if (m_toastNotifications != nullptr) {
+ // Show custom and richer overview of updated feeds and articles.
+ msg.m_feedFetchResults = results;
+ }
+ else {
+ // Show simpler overview of updated feeds.
+ msg.m_message = results.overview(10);
+ }
+
+ qApp->showGuiMessage(Notification::Event::NewUnreadArticlesFetched, msg);
}
#if defined(Q_OS_WIN)
diff --git a/src/librssguard/miscellaneous/application.h b/src/librssguard/miscellaneous/application.h
index 41e333d30..c1a6e92be 100644
--- a/src/librssguard/miscellaneous/application.h
+++ b/src/librssguard/miscellaneous/application.h
@@ -60,6 +60,7 @@ struct GuiMessage {
QString m_title;
QString m_message;
QSystemTrayIcon::MessageIcon m_type;
+ FeedDownloadResults m_feedFetchResults;
};
Q_DECLARE_METATYPE(GuiMessage)
diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp
index f9f7d5996..a2d4fb76f 100644
--- a/src/librssguard/miscellaneous/settings.cpp
+++ b/src/librssguard/miscellaneous/settings.cpp
@@ -292,6 +292,9 @@ DKEY GUI::ToastNotificationsPosition = "toast_notifications_position";
DVALUE(ToastNotificationsManager::NotificationPosition)
GUI::ToastNotificationsPositionDef = ToastNotificationsManager::NotificationPosition::BottomRight;
+DKEY GUI::ToastNotificationsScreen = "toast_notifications_screen";
+DVALUE(int) GUI::ToastNotificationsScreenDef = -1;
+
DKEY GUI::HideMainWindowWhenMinimized = "hide_when_minimized";
DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false;
diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h
index 986957273..e048d367f 100644
--- a/src/librssguard/miscellaneous/settings.h
+++ b/src/librssguard/miscellaneous/settings.h
@@ -225,6 +225,9 @@ namespace GUI {
KEY ToastNotificationsPosition;
VALUE(ToastNotificationsManager::NotificationPosition) ToastNotificationsPositionDef;
+ KEY ToastNotificationsScreen;
+ VALUE(int) ToastNotificationsScreenDef;
+
KEY MessageViewState;
VALUE(QString) MessageViewStateDef;
diff --git a/src/librssguard/services/abstract/serviceroot.cpp b/src/librssguard/services/abstract/serviceroot.cpp
index d316fba4a..09e9da7e9 100644
--- a/src/librssguard/services/abstract/serviceroot.cpp
+++ b/src/librssguard/services/abstract/serviceroot.cpp
@@ -1110,8 +1110,8 @@ ServiceRoot::LabelOperation operator&(ServiceRoot::LabelOperation lhs, ServiceRo
return static_cast(static_cast(lhs) & static_cast(rhs));
}
-QPair ServiceRoot::updateMessages(QList& messages, Feed* feed, bool force_update, QMutex* db_mutex) {
- QPair updated_messages = {0, 0};
+UpdatedArticles ServiceRoot::updateMessages(QList& messages, Feed* feed, bool force_update, QMutex* db_mutex) {
+ UpdatedArticles updated_messages;
if (messages.isEmpty()) {
qDebugNN << "No messages to be updated/added in DB for feed" << QUOTE_W_SPACE_DOT(feed->customId());
@@ -1125,7 +1125,7 @@ QPair ServiceRoot::updateMessages(QList& messages, Feed* feed
updated_messages = DatabaseQueries::updateMessages(database, messages, feed, force_update, db_mutex, &ok);
- if (updated_messages.first > 0 || updated_messages.second > 0) {
+ if (!updated_messages.m_unread.isEmpty() || !updated_messages.m_all.isEmpty()) {
QMutexLocker lck(db_mutex);
// Something was added or updated in the DB, update numbers.
diff --git a/src/librssguard/services/abstract/serviceroot.h b/src/librssguard/services/abstract/serviceroot.h
index 054d37c12..6b3a1e7d5 100644
--- a/src/librssguard/services/abstract/serviceroot.h
+++ b/src/librssguard/services/abstract/serviceroot.h
@@ -6,7 +6,6 @@
#include "services/abstract/rootitem.h"
#include "core/message.h"
-#include "core/messagefilter.h"
#include "definitions/typedefs.h"
#include
@@ -206,7 +205,7 @@ class ServiceRoot : public RootItem {
void completelyRemoveAllData();
// Returns counts of updated messages .
- QPair updateMessages(QList& messages, Feed* feed, bool force_update, QMutex* db_mutex);
+ UpdatedArticles updateMessages(QList& messages, Feed* feed, bool force_update, QMutex* db_mutex);
QIcon feedIconForMessage(const QString& feed_custom_id) const;
diff --git a/src/librssguard/services/feedly/feedlynetwork.cpp b/src/librssguard/services/feedly/feedlynetwork.cpp
index 25a1c0dfa..901da883c 100644
--- a/src/librssguard/services/feedly/feedlynetwork.cpp
+++ b/src/librssguard/services/feedly/feedlynetwork.cpp
@@ -418,7 +418,7 @@ QList FeedlyNetwork::decodeStreamContents(const QByteArray& stream_cont
Message message;
message.m_feedId = entry_obj[QSL("origin")].toObject()[QSL("streamId")].toString();
- message.m_title = qApp->web()->stripTags(entry_obj[QSL("title")].toString());
+ message.m_title = entry_obj[QSL("title")].toString();
message.m_author = entry_obj[QSL("author")].toString();
message.m_contents = entry_obj[QSL("content")].toObject()[QSL("content")].toString();
message.m_rawContents = QJsonDocument(entry_obj).toJson(QJsonDocument::JsonFormat::Compact);
diff --git a/src/librssguard/services/greader/greadernetwork.cpp b/src/librssguard/services/greader/greadernetwork.cpp
index 27f3bece6..8c79194de 100644
--- a/src/librssguard/services/greader/greadernetwork.cpp
+++ b/src/librssguard/services/greader/greadernetwork.cpp
@@ -957,8 +957,8 @@ QList GreaderNetwork::decodeStreamContents(ServiceRoot* root,
auto message_obj = obj.toObject();
Message message;
- message.m_title = qApp->web()->unescapeHtml(message_obj[QSL("title")].toString());
- message.m_author = qApp->web()->unescapeHtml(message_obj[QSL("author")].toString());
+ message.m_title = message_obj[QSL("title")].toString();
+ message.m_author = message_obj[QSL("author")].toString();
message.m_created = QDateTime::fromSecsSinceEpoch(message_obj[QSL("published")].toInt(), Qt::TimeSpec::UTC);
message.m_createdFromFeed = true;
message.m_customId = message_obj[QSL("id")].toString();
diff --git a/src/librssguard/services/standard/parsers/feedparser.cpp b/src/librssguard/services/standard/parsers/feedparser.cpp
index b13f7784c..cdfd2f3a0 100644
--- a/src/librssguard/services/standard/parsers/feedparser.cpp
+++ b/src/librssguard/services/standard/parsers/feedparser.cpp
@@ -100,9 +100,9 @@ QList FeedParser::messages() {
Message new_message;
// Fill available data.
- new_message.m_title = qApp->web()->stripTags(qApp->web()->unescapeHtml(xmlMessageTitle(message_item)));
+ new_message.m_title = xmlMessageTitle(message_item);
new_message.m_contents = xmlMessageDescription(message_item);
- new_message.m_author = qApp->web()->stripTags(qApp->web()->unescapeHtml(xmlMessageAuthor(message_item)));
+ new_message.m_author = xmlMessageAuthor(message_item);
new_message.m_url = xmlMessageUrl(message_item);
new_message.m_created = xmlMessageDateCreated(message_item);
new_message.m_customId = xmlMessageId(message_item);
@@ -128,9 +128,9 @@ QList FeedParser::messages() {
Message new_message;
// Fill available data.
- new_message.m_title = qApp->web()->stripTags(qApp->web()->unescapeHtml(jsonMessageTitle(message_item)));
+ new_message.m_title = jsonMessageTitle(message_item);
new_message.m_contents = jsonMessageDescription(message_item);
- new_message.m_author = qApp->web()->stripTags(qApp->web()->unescapeHtml(jsonMessageAuthor(message_item)));
+ new_message.m_author = jsonMessageAuthor(message_item);
new_message.m_url = jsonMessageUrl(message_item);
new_message.m_created = jsonMessageDateCreated(message_item);
new_message.m_customId = jsonMessageId(message_item);