diff --git a/rss-feed/BarWidget.qml b/rss-feed/BarWidget.qml index ed5be95d4..bd0cac99e 100644 --- a/rss-feed/BarWidget.qml +++ b/rss-feed/BarWidget.qml @@ -24,12 +24,16 @@ Item { property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({}) readonly property var feeds: cfg.feeds || defaults.feeds || [] + readonly property bool showOnlyWhenUnread: cfg.showOnlyWhenUnread ?? defaults.showOnlyWhenUnread ?? false readonly property int updateInterval: cfg.updateInterval ?? defaults.updateInterval ?? 600 readonly property int maxItemsPerFeed: cfg.maxItemsPerFeed ?? defaults.maxItemsPerFeed ?? 10 readonly property bool showOnlyUnread: cfg.showOnlyUnread ?? defaults.showOnlyUnread ?? false readonly property bool markAsReadOnClick: cfg.markAsReadOnClick ?? defaults.markAsReadOnClick ?? true readonly property var readItems: cfg.readItems || defaults.readItems || [] + readonly property bool isVisible: !showOnlyWhenUnread || unreadCount > 0 + visible: root.isVisible + // Watch for changes in readItems and cfg to update unread count onCfgChanged: { Logger.d("RSS Feed", "RSS Feed BarWidget: Config changed"); diff --git a/rss-feed/Panel.qml b/rss-feed/Panel.qml index 694edfe32..9069c6256 100644 --- a/rss-feed/Panel.qml +++ b/rss-feed/Panel.qml @@ -383,7 +383,7 @@ Item { spacing: Style.marginM NText { - text: pluginApi?.tr("widget.title", "RSS Feeds") || "RSS Feeds" + text: pluginApi?.tr("widget.title") pointSize: Style.fontSizeL font.bold: true color: Color.mOnSurface @@ -435,7 +435,7 @@ Item { } NButton { - text: pluginApi?.tr("widget.markAllRead", "Mark all as read") || "Mark all as read" + text: pluginApi?.tr("widget.markAllRead") enabled: displayItems.length > 0 onClicked: markAllAsRead() } @@ -533,7 +533,7 @@ Item { // Feed name NText { - text: modelData.feedName || "Unknown Feed" + text: modelData.feedName || (pluginApi ? pluginApi.tr("widget.unknownFeed") : "") pointSize: Style.fontSizeS font.bold: true color: Color.mPrimary @@ -543,7 +543,7 @@ Item { // Title NText { - text: modelData.title || "Untitled" + text: modelData.title || (pluginApi ? pluginApi.tr("widget.untitled") : "") pointSize: Style.fontSizeM font.bold: isUnread color: Color.mOnSurface @@ -590,7 +590,7 @@ Item { NText { visible: displayItems.length === 0 anchors.centerIn: parent - text: pluginApi?.tr("widget.noItems", "No items to display") || "No items to display" + text: pluginApi?.tr("widget.noItems") pointSize: Style.fontSizeM color: Color.mSecondary } @@ -606,7 +606,7 @@ Item { Layout.fillWidth: true NText { - text: allItems.length + " total items" + text: pluginApi ? pluginApi.tr("widget.totalItems").replace("%1", allItems.length) : "" pointSize: Style.fontSizeS color: Color.mSecondary Layout.fillWidth: true @@ -623,10 +623,10 @@ Item { const diffHours = Math.floor(diffMs / 3600000); const diffDays = Math.floor(diffMs / 86400000); - if (diffMins < 1) return pluginApi?.tr("widget.timeNow", "now") || "now"; - if (diffMins < 60) return (pluginApi?.tr("widget.timeMinutes", "%1min ago") || "%1min ago").replace("%1", diffMins); - if (diffHours < 24) return (pluginApi?.tr("widget.timeHours", "%1h ago") || "%1h ago").replace("%1", diffHours); - if (diffDays < 7) return (pluginApi?.tr("widget.timeDays", "%1d ago") || "%1d ago").replace("%1", diffDays); + if (diffMins < 1) return pluginApi ? pluginApi.tr("widget.timeNow") : ""; + if (diffMins < 60) return pluginApi ? pluginApi.tr("widget.timeMinutes").replace("%1", diffMins) : ""; + if (diffHours < 24) return pluginApi ? pluginApi.tr("widget.timeHours").replace("%1", diffHours) : ""; + if (diffDays < 7) return pluginApi ? pluginApi.tr("widget.timeDays").replace("%1", diffDays) : ""; return date.toLocaleDateString(); } diff --git a/rss-feed/Settings.qml b/rss-feed/Settings.qml index 0b99419a3..693021b4c 100644 --- a/rss-feed/Settings.qml +++ b/rss-feed/Settings.qml @@ -15,6 +15,7 @@ ColumnLayout { property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({}) property var feeds: cfg.feeds || defaults.feeds || [] + property bool showOnlyWhenUnread: cfg.showOnlyWhenUnread ?? defaults.showOnlyWhenUnread ?? false property int updateInterval: (cfg.updateInterval ?? defaults.updateInterval ?? 600) property int maxItemsPerFeed: cfg.maxItemsPerFeed ?? defaults.maxItemsPerFeed ?? 10 property bool showOnlyUnread: cfg.showOnlyUnread ?? defaults.showOnlyUnread ?? false @@ -35,6 +36,7 @@ ColumnLayout { } pluginApi.pluginSettings.feeds = feeds; + pluginApi.pluginSettings.showOnlyWhenUnread = showOnlyWhenUnread; pluginApi.pluginSettings.updateInterval = updateInterval; pluginApi.pluginSettings.maxItemsPerFeed = maxItemsPerFeed; pluginApi.pluginSettings.showOnlyUnread = showOnlyUnread; @@ -83,8 +85,8 @@ ColumnLayout { spacing: Style.marginS NLabel { - label: pluginApi?.tr("settings.updateInterval", "Update Interval") || "Update Interval" - description: pluginApi?.tr("settings.updateIntervalDesc", "How often to check for new items (seconds)") || "How often to check for new items (seconds)" + label: pluginApi?.tr("settings.updateInterval") + description: pluginApi?.tr("settings.updateIntervalDesc") } RowLayout { @@ -101,7 +103,7 @@ ColumnLayout { } Text { - text: pluginApi?.tr("settings.seconds", "seconds") || "seconds" + text: pluginApi?.tr("settings.seconds") color: Style.textColorSecondary || "#FFFFFF" font.pixelSize: Style.fontSizeM || 14 } @@ -114,8 +116,8 @@ ColumnLayout { spacing: Style.marginS NLabel { - label: pluginApi?.tr("settings.maxItems", "Max Items Per Feed") || "Max Items Per Feed" - description: pluginApi?.tr("settings.maxItemsDesc", "Maximum number of items to fetch from each feed") || "Maximum number of items to fetch from each feed" + label: pluginApi?.tr("settings.maxItems") + description: pluginApi?.tr("settings.maxItemsDesc") } NSpinBox { @@ -135,8 +137,8 @@ ColumnLayout { spacing: Style.marginS NLabel { - label: pluginApi?.tr("settings.showOnlyUnread", "Show Only Unread") || "Show Only Unread" - description: pluginApi?.tr("settings.showOnlyUnreadDesc", "Display only unread items in the panel") || "Display only unread items in the panel" + label: pluginApi?.tr("settings.showOnlyUnread") + description: pluginApi?.tr("settings.showOnlyUnreadDesc") } NToggle { @@ -148,14 +150,33 @@ ColumnLayout { } } + // Show When Unread Only + ColumnLayout { + Layout.fillWidth: true + spacing: Style.marginS + + NLabel { + label: pluginApi?.tr("settings.showOnlyWhenUnread") + description: pluginApi?.tr("settings.showOnlyWhenUnreadDesc") + } + + NToggle { + checked: showOnlyWhenUnread + onToggled: { + showOnlyWhenUnread = checked; + saveSettings(); + } + } + } + // Mark as Read on Click ColumnLayout { Layout.fillWidth: true spacing: Style.marginS NLabel { - label: pluginApi?.tr("settings.markOnClick", "Mark as Read on Click") || "Mark as Read on Click" - description: pluginApi?.tr("settings.markOnClickDesc", "Automatically mark items as read when opening them") || "Automatically mark items as read when opening them" + label: pluginApi?.tr("settings.markOnClick") + description: pluginApi?.tr("settings.markOnClickDesc") } NToggle { @@ -175,7 +196,7 @@ ColumnLayout { // Feeds Management Text { - text: pluginApi?.tr("settings.feeds", "RSS Feeds") || "RSS Feeds" + text: pluginApi?.tr("settings.feeds") font.pixelSize: Style.fontSizeL || 18 font.bold: true color: Style.textColor || "#FFFFFF" @@ -187,7 +208,7 @@ ColumnLayout { spacing: Style.marginS Text { - text: pluginApi?.tr("settings.addFeed", "Add New Feed") || "Add New Feed" + text: pluginApi?.tr("settings.addFeed") font.bold: true color: Style.textColor || "#FFFFFF" font.pixelSize: Style.fontSizeM || 14 @@ -202,14 +223,14 @@ ColumnLayout { spacing: 4 Text { - text: pluginApi?.tr("settings.feedName", "Feed Name") || "Feed Name" + text: pluginApi?.tr("settings.feedName") font.pixelSize: Style.fontSizeS || 12 color: Style.textColorSecondary || "#FFFFFF" } NTextInput { Layout.fillWidth: true - placeholderText: "Example Blog" + placeholderText: pluginApi?.tr("settings.feedNamePlaceholder") text: newFeedName onTextChanged: newFeedName = text } @@ -220,21 +241,21 @@ ColumnLayout { spacing: 4 Text { - text: pluginApi?.tr("settings.feedUrl", "Feed URL") || "Feed URL" + text: pluginApi?.tr("settings.feedUrl") font.pixelSize: Style.fontSizeS || 12 color: Style.textColorSecondary || "#FFFFFF" } NTextInput { Layout.fillWidth: true - placeholderText: "https://example.com/feed.xml" + placeholderText: pluginApi?.tr("settings.feedUrlPlaceholder") text: newFeedUrl onTextChanged: newFeedUrl = text } } NButton { - text: pluginApi?.tr("settings.add", "Add") || "Add" + text: pluginApi?.tr("settings.add") enabled: newFeedName.trim() !== "" && newFeedUrl.trim() !== "" onClicked: addFeed() } @@ -289,7 +310,7 @@ ColumnLayout { } NButton { - text: pluginApi?.tr("settings.remove", "Remove") || "Remove" + text: pluginApi?.tr("settings.remove") onClicked: removeFeed(index) } } @@ -298,7 +319,7 @@ ColumnLayout { Text { visible: feeds.length === 0 anchors.centerIn: parent - text: pluginApi?.tr("settings.noFeeds", "No feeds configured. Add one above!") || "No feeds configured. Add one above!" + text: pluginApi?.tr("settings.noFeeds") font.pixelSize: Style.fontSizeM || 14 color: Style.textColorSecondary || "#888888" } diff --git a/rss-feed/i18n/de.json b/rss-feed/i18n/de.json index 067a24b94..c520d231c 100644 --- a/rss-feed/i18n/de.json +++ b/rss-feed/i18n/de.json @@ -2,7 +2,9 @@ "settings": { "add": "Hinzufügen", "addFeed": "Neuen Feed hinzufügen", + "feedNamePlaceholder": "Beispiel-Blog", "feedName": "Feed-Name", + "feedUrlPlaceholder": "https://beispiel.de/feed.xml", "feedUrl": "Feed-URL", "feeds": "RSS-Feeds", "markOnClick": "Als gelesen markieren beim Klicken", @@ -14,6 +16,8 @@ "seconds": "Sekunden", "showOnlyUnread": "Nur ungelesene anzeigen", "showOnlyUnreadDesc": "Nur ungelesene Einträge im Panel anzeigen", + "showOnlyWhenUnread": "Nur bei ungelesenen anzeigen", + "showOnlyWhenUnreadDesc": "Widget nur anzeigen, wenn ungelesene Artikel vorhanden sind", "title": "RSS-Feed-Reader-Einstellungen", "updateInterval": "Aktualisierungsintervall", "updateIntervalDesc": "Wie oft nach neuen Einträgen gesucht werden soll (Sekunden)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Alle als gelesen markieren", "noItems": "Keine Einträge zum Anzeigen", + "totalItems": "%1 Einträge insgesamt", "timeDays": "vor %1T.", "timeHours": "vor %1Std.", "timeMinutes": "vor %1Min.", "timeNow": "jetzt", - "title": "RSS-Feeds" + "title": "RSS-Feeds", + "unknownFeed": "Unbekannter Feed", + "untitled": "Ohne Titel" } } diff --git a/rss-feed/i18n/en.json b/rss-feed/i18n/en.json index eeacc480d..70dcf2797 100644 --- a/rss-feed/i18n/en.json +++ b/rss-feed/i18n/en.json @@ -2,7 +2,9 @@ "settings": { "add": "Add", "addFeed": "Add New Feed", + "feedNamePlaceholder": "Example Blog", "feedName": "Feed Name", + "feedUrlPlaceholder": "https://example.com/feed.xml", "feedUrl": "Feed URL", "feeds": "RSS Feeds", "markOnClick": "Mark as Read on Click", @@ -14,6 +16,8 @@ "seconds": "seconds", "showOnlyUnread": "Show Only Unread", "showOnlyUnreadDesc": "Display only unread items in the panel", + "showOnlyWhenUnread": "Show Only When Unread", + "showOnlyWhenUnreadDesc": "Only show the widget when there are unread articles", "title": "RSS Feed Reader Settings", "updateInterval": "Update Interval", "updateIntervalDesc": "How often to check for new items (seconds)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Mark all as read", "noItems": "No items to display", + "totalItems": "%1 total items", "timeDays": "%1d ago", "timeHours": "%1h ago", "timeMinutes": "%1min ago", "timeNow": "now", - "title": "RSS Feeds" + "title": "RSS Feeds", + "unknownFeed": "Unknown Feed", + "untitled": "Untitled" } } diff --git a/rss-feed/i18n/es.json b/rss-feed/i18n/es.json index 7e70a2954..9034a5bc6 100644 --- a/rss-feed/i18n/es.json +++ b/rss-feed/i18n/es.json @@ -2,7 +2,9 @@ "settings": { "add": "Agregar", "addFeed": "Agregar Nuevo Feed", + "feedNamePlaceholder": "Blog de ejemplo", "feedName": "Nombre del Feed", + "feedUrlPlaceholder": "https://ejemplo.com/feed.xml", "feedUrl": "URL del Feed", "feeds": "Feeds RSS", "markOnClick": "Marcar Como Leído al Hacer Clic", @@ -14,6 +16,8 @@ "seconds": "segundos", "showOnlyUnread": "Mostrar Solo No Leídos", "showOnlyUnreadDesc": "Mostrar solo elementos no leídos en el panel", + "showOnlyWhenUnread": "Mostrar solo cuando haya no leídos", + "showOnlyWhenUnreadDesc": "Mostrar el widget solo cuando haya artículos no leídos", "title": "Configuración del Lector RSS", "updateInterval": "Intervalo de Actualización", "updateIntervalDesc": "Cada cuánto tiempo buscar nuevos elementos (segundos)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Marcar todos como leídos", "noItems": "No hay elementos para mostrar", + "totalItems": "%1 elementos en total", "timeDays": "hace %1d", "timeHours": "hace %1h", "timeMinutes": "hace %1min", "timeNow": "ahora", - "title": "Feeds RSS" + "title": "Feeds RSS", + "unknownFeed": "Feed desconocido", + "untitled": "Sin título" } } diff --git a/rss-feed/i18n/fr.json b/rss-feed/i18n/fr.json index e40ad14cd..53f532201 100644 --- a/rss-feed/i18n/fr.json +++ b/rss-feed/i18n/fr.json @@ -2,7 +2,9 @@ "settings": { "add": "Ajouter", "addFeed": "Ajouter un Nouveau Flux", + "feedNamePlaceholder": "Blog d'exemple", "feedName": "Nom du Flux", + "feedUrlPlaceholder": "https://exemple.com/feed.xml", "feedUrl": "URL du Flux", "feeds": "Flux RSS", "markOnClick": "Marquer Comme Lu au Clic", @@ -14,6 +16,8 @@ "seconds": "secondes", "showOnlyUnread": "Afficher Uniquement Non Lus", "showOnlyUnreadDesc": "Afficher uniquement les éléments non lus dans le panneau", + "showOnlyWhenUnread": "Afficher uniquement s'il y a des non lus", + "showOnlyWhenUnreadDesc": "Afficher le widget uniquement lorsqu'il y a des articles non lus", "title": "Paramètres du Lecteur RSS", "updateInterval": "Intervalle de Mise à Jour", "updateIntervalDesc": "Fréquence de vérification des nouveaux éléments (secondes)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Tout marquer comme lu", "noItems": "Aucun élément à afficher", + "totalItems": "%1 éléments au total", "timeDays": "il y a %1j", "timeHours": "il y a %1h", "timeMinutes": "il y a %1min", "timeNow": "maintenant", - "title": "Flux RSS" + "title": "Flux RSS", + "unknownFeed": "Flux inconnu", + "untitled": "Sans titre" } } diff --git a/rss-feed/i18n/hu.json b/rss-feed/i18n/hu.json index e2edccaa9..831fa35de 100644 --- a/rss-feed/i18n/hu.json +++ b/rss-feed/i18n/hu.json @@ -2,7 +2,9 @@ "settings": { "add": "Hozzáadás", "addFeed": "Új hírforrás hozzáadása", + "feedNamePlaceholder": "Példa blog", "feedName": "Hírfolyam neve", + "feedUrlPlaceholder": "https://pelda.hu/feed.xml", "feedUrl": "Hírfolyam URL", "feeds": "RSS-hírcsatornák", "markOnClick": "Olvasottként jelölés kattintásra", @@ -14,6 +16,8 @@ "seconds": "másodperc", "showOnlyUnread": "Csak olvasatlanok megjelenítése", "showOnlyUnreadDesc": "Csak a nem olvasott elemek megjelenítése a panelen", + "showOnlyWhenUnread": "Csak akkor jelenjen meg, ha van olvasatlan", + "showOnlyWhenUnreadDesc": "Csak akkor jelenítse meg a modult, ha vannak olvasatlan cikkek", "title": "RSS-hírcsatorna olvasó beállításai", "updateInterval": "Frissítési időköz", "updateIntervalDesc": "Új elemek keresésének gyakorisága (másodperc)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Összes megjelölése olvasottként", "noItems": "Nincsenek megjeleníthető elemek", + "totalItems": "Összesen: %1", "timeDays": "%1d perce", "timeHours": "%1 órával ezelőtt", "timeMinutes": "%1 perce", "timeNow": "most", - "title": "RSS-hírcsatornák" + "title": "RSS-hírcsatornák", + "unknownFeed": "Ismeretlen hírfolyam", + "untitled": "Cím nélkül" } } diff --git a/rss-feed/i18n/it.json b/rss-feed/i18n/it.json index d0c62777c..e52e932a5 100644 --- a/rss-feed/i18n/it.json +++ b/rss-feed/i18n/it.json @@ -2,7 +2,9 @@ "settings": { "add": "Aggiungi", "addFeed": "Aggiungi Nuovo Feed", + "feedNamePlaceholder": "Blog di esempio", "feedName": "Nome Feed", + "feedUrlPlaceholder": "https://esempio.com/feed.xml", "feedUrl": "URL Feed", "feeds": "Feed RSS", "markOnClick": "Segna Come Letto al Clic", @@ -14,6 +16,8 @@ "seconds": "secondi", "showOnlyUnread": "Mostra Solo Non Letti", "showOnlyUnreadDesc": "Visualizza solo elementi non letti nel pannello", + "showOnlyWhenUnread": "Mostra solo quando ci sono non letti", + "showOnlyWhenUnreadDesc": "Mostra il widget solo quando ci sono articoli non letti", "title": "Impostazioni Lettore RSS", "updateInterval": "Intervallo di Aggiornamento", "updateIntervalDesc": "Frequenza di controllo nuovi elementi (secondi)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Segna tutti come letti", "noItems": "Nessun elemento da visualizzare", + "totalItems": "%1 elementi totali", "timeDays": "%1g fa", "timeHours": "%1h fa", "timeMinutes": "%1min fa", "timeNow": "ora", - "title": "Feed RSS" + "title": "Feed RSS", + "unknownFeed": "Feed sconosciuto", + "untitled": "Senza titolo" } } diff --git a/rss-feed/i18n/ja.json b/rss-feed/i18n/ja.json index 2a9d65f83..19e407db4 100644 --- a/rss-feed/i18n/ja.json +++ b/rss-feed/i18n/ja.json @@ -2,7 +2,9 @@ "settings": { "add": "追加", "addFeed": "新しいフィードを追加", + "feedNamePlaceholder": "例のブログ", "feedName": "フィード名", + "feedUrlPlaceholder": "https://example.jp/feed.xml", "feedUrl": "フィードURL", "feeds": "RSSフィード", "markOnClick": "クリック時に既読にする", @@ -14,6 +16,8 @@ "seconds": "秒", "showOnlyUnread": "未読のみ表示", "showOnlyUnreadDesc": "パネルに未読アイテムのみを表示", + "showOnlyWhenUnread": "未読があるときのみ表示", + "showOnlyWhenUnreadDesc": "未読の記事がある場合のみウィジェットを表示", "title": "RSSリーダー設定", "updateInterval": "更新間隔", "updateIntervalDesc": "新しいアイテムをチェックする頻度(秒)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "すべて既読にする", "noItems": "表示するアイテムがありません", + "totalItems": "合計%1件", "timeDays": "%1日前", "timeHours": "%1時間前", "timeMinutes": "%1分前", "timeNow": "今", - "title": "RSSフィード" + "title": "RSSフィード", + "unknownFeed": "不明なフィード", + "untitled": "無題" } } diff --git a/rss-feed/i18n/ku.json b/rss-feed/i18n/ku.json index c41bde499..4de1de1f0 100644 --- a/rss-feed/i18n/ku.json +++ b/rss-feed/i18n/ku.json @@ -2,7 +2,9 @@ "settings": { "add": "Zêde bike", "addFeed": "Xwarinek Nû Zêde Bike", + "feedNamePlaceholder": "Bloga mînak", "feedName": "Navê Xwarinê", + "feedUrlPlaceholder": "https://mînak.com/feed.xml", "feedUrl": "URL'ê Xurekî", "feeds": "Xwarinên RSS", "markOnClick": "Bi tikandinê wekî Xwendî nîşan bide", @@ -14,6 +16,8 @@ "seconds": "sanîye", "showOnlyUnread": "Tenê Nexwendî Nîşan Bide", "showOnlyUnreadDesc": "Tenê tiştên nehatî xwendin di panelê de nîşan bide", + "showOnlyWhenUnread": "Tenê dema ku nehatî xwendin hebe nîşan bide", + "showOnlyWhenUnreadDesc": "Tenê dema ku gotarên nehatî xwendin hebin widgetê nîşan bide", "title": "Mîhengên Xwendevanê Feeda RSS", "updateInterval": "Demê Nûkirinê", "updateIntervalDesc": "Çend caran ji bo tiştên nû kontrol bike (saniye)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Hemûyan wekî hatî xwendin nîşan bide", "noItems": "Tiştên ku bên nîşandan tune ne", + "totalItems": "Hemû: %1", "timeDays": "%1d berê", "timeHours": "%1 demjimêr berê", "timeMinutes": "%1 deqîqe berê", "timeNow": "niha", - "title": "Xwarinên RSS" + "title": "Xwarinên RSS", + "unknownFeed": "Xurekî nenas", + "untitled": "Bê nav" } } diff --git a/rss-feed/i18n/nl.json b/rss-feed/i18n/nl.json index 28dd82145..dfeabf660 100644 --- a/rss-feed/i18n/nl.json +++ b/rss-feed/i18n/nl.json @@ -2,7 +2,9 @@ "settings": { "add": "Toevoegen", "addFeed": "Nieuwe Feed Toevoegen", + "feedNamePlaceholder": "Voorbeeldblog", "feedName": "Feed Naam", + "feedUrlPlaceholder": "https://voorbeeld.nl/feed.xml", "feedUrl": "Feed URL", "feeds": "RSS-feeds", "markOnClick": "Markeren als Gelezen bij Klikken", @@ -14,6 +16,8 @@ "seconds": "seconden", "showOnlyUnread": "Alleen Ongelezen Tonen", "showOnlyUnreadDesc": "Alleen ongelezen items tonen in het paneel", + "showOnlyWhenUnread": "Alleen tonen wanneer er ongelezen zijn", + "showOnlyWhenUnreadDesc": "Toon de widget alleen wanneer er ongelezen artikelen zijn", "title": "RSS-lezer Instellingen", "updateInterval": "Update Interval", "updateIntervalDesc": "Hoe vaak nieuwe items controleren (seconden)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Alles markeren als gelezen", "noItems": "Geen items om weer te geven", + "totalItems": "%1 items in totaal", "timeDays": "%1d geleden", "timeHours": "%1u geleden", "timeMinutes": "%1min geleden", "timeNow": "nu", - "title": "RSS-feeds" + "title": "RSS-feeds", + "unknownFeed": "Onbekende feed", + "untitled": "Zonder titel" } } diff --git a/rss-feed/i18n/pl.json b/rss-feed/i18n/pl.json index e1c4ff27e..6c3b4c75f 100644 --- a/rss-feed/i18n/pl.json +++ b/rss-feed/i18n/pl.json @@ -2,7 +2,9 @@ "settings": { "add": "Dodaj", "addFeed": "Dodaj nowy kanał", + "feedNamePlaceholder": "Przykładowy blog", "feedName": "Nazwa kanału", + "feedUrlPlaceholder": "https://example.pl/feed.xml", "feedUrl": "Adres URL kanału", "feeds": "Kanały RSS", "markOnClick": "Oznacz jako przeczytane po kliknięciu", @@ -14,6 +16,8 @@ "seconds": "sekundy", "showOnlyUnread": "Pokaż tylko nieprzeczytane", "showOnlyUnreadDesc": "Wyświetlaj tylko nieprzeczytane elementy w panelu", + "showOnlyWhenUnread": "Pokazuj tylko, gdy są nieprzeczytane", + "showOnlyWhenUnreadDesc": "Pokazuj widżet tylko wtedy, gdy są nieprzeczytane artykuły", "title": "Ustawienia czytnika kanałów RSS", "updateInterval": "Interwał aktualizacji", "updateIntervalDesc": "Jak często sprawdzać nowe elementy (sekundy)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Oznacz wszystko jako przeczytane", "noItems": "Brak elementów do wyświetlenia", + "totalItems": "Łącznie: %1", "timeDays": "%1d temu", "timeHours": "%1 godz. temu", "timeMinutes": "%1 min temu", "timeNow": "teraz", - "title": "Kanały RSS" + "title": "Kanały RSS", + "unknownFeed": "Nieznany kanał", + "untitled": "Bez tytułu" } } diff --git a/rss-feed/i18n/pt.json b/rss-feed/i18n/pt.json index be30c56a2..cee0e0208 100644 --- a/rss-feed/i18n/pt.json +++ b/rss-feed/i18n/pt.json @@ -2,7 +2,9 @@ "settings": { "add": "Adicionar", "addFeed": "Adicionar Novo Feed", + "feedNamePlaceholder": "Blog de exemplo", "feedName": "Nome do Feed", + "feedUrlPlaceholder": "https://exemplo.com/feed.xml", "feedUrl": "URL do Feed", "feeds": "Feeds RSS", "markOnClick": "Marcar Como Lido ao Clicar", @@ -14,6 +16,8 @@ "seconds": "segundos", "showOnlyUnread": "Mostrar Apenas Não Lidos", "showOnlyUnreadDesc": "Exibir apenas itens não lidos no painel", + "showOnlyWhenUnread": "Mostrar somente quando houver não lidos", + "showOnlyWhenUnreadDesc": "Mostrar o widget somente quando houver artigos não lidos", "title": "Configurações do Leitor de RSS", "updateInterval": "Intervalo de Atualização", "updateIntervalDesc": "Com que frequência verificar novos itens (segundos)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Marcar todos como lidos", "noItems": "Nenhum item para exibir", + "totalItems": "%1 itens no total", "timeDays": "%1d atrás", "timeHours": "%1h atrás", "timeMinutes": "%1min atrás", "timeNow": "agora", - "title": "Feeds RSS" + "title": "Feeds RSS", + "unknownFeed": "Feed desconhecido", + "untitled": "Sem título" } } diff --git a/rss-feed/i18n/ru.json b/rss-feed/i18n/ru.json index a335ed524..5ce1dd147 100644 --- a/rss-feed/i18n/ru.json +++ b/rss-feed/i18n/ru.json @@ -2,7 +2,9 @@ "settings": { "add": "Добавить", "addFeed": "Добавить новый канал", + "feedNamePlaceholder": "Пример блога", "feedName": "Название канала", + "feedUrlPlaceholder": "https://example.ru/feed.xml", "feedUrl": "URL канала", "feeds": "RSS-каналы", "markOnClick": "Отмечать как прочитанное при клике", @@ -14,6 +16,8 @@ "seconds": "секунд", "showOnlyUnread": "Показывать только непрочитанные", "showOnlyUnreadDesc": "Отображать только непрочитанные элементы на панели", + "showOnlyWhenUnread": "Показывать только при наличии непрочитанных", + "showOnlyWhenUnreadDesc": "Показывать виджет только когда есть непрочитанные статьи", "title": "Настройки RSS-ридера", "updateInterval": "Интервал обновления", "updateIntervalDesc": "Как часто проверять новые элементы (секунды)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Отметить все как прочитанные", "noItems": "Нет элементов для отображения", + "totalItems": "Всего: %1", "timeDays": "%1д назад", "timeHours": "%1ч назад", "timeMinutes": "%1мин назад", "timeNow": "сейчас", - "title": "RSS-каналы" + "title": "RSS-каналы", + "unknownFeed": "Неизвестный канал", + "untitled": "Без названия" } } diff --git a/rss-feed/i18n/tr.json b/rss-feed/i18n/tr.json index 01a4d4e4f..e3224a50b 100644 --- a/rss-feed/i18n/tr.json +++ b/rss-feed/i18n/tr.json @@ -2,7 +2,9 @@ "settings": { "add": "Ekle", "addFeed": "Yeni Kaynak Ekle", + "feedNamePlaceholder": "Örnek Blog", "feedName": "Kaynak Adı", + "feedUrlPlaceholder": "https://ornek.com/feed.xml", "feedUrl": "Kaynak URL'si", "feeds": "RSS Kaynakları", "markOnClick": "Tıklandığında Okundu Olarak İşaretle", @@ -14,6 +16,8 @@ "seconds": "saniye", "showOnlyUnread": "Sadece Okunmamışları Göster", "showOnlyUnreadDesc": "Panelde sadece okunmamış öğeleri göster", + "showOnlyWhenUnread": "Sadece okunmamış varsa göster", + "showOnlyWhenUnreadDesc": "Okunmamış makaleler varsa bileşeni göster", "title": "RSS Okuyucu Ayarları", "updateInterval": "Güncelleme Aralığı", "updateIntervalDesc": "Yeni öğeleri ne sıklıkla kontrol etmeli (saniye)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Tümünü okundu olarak işaretle", "noItems": "Gösterilecek öğe yok", + "totalItems": "Toplam %1 öğe", "timeDays": "%1g önce", "timeHours": "%1sa önce", "timeMinutes": "%1dk önce", "timeNow": "şimdi", - "title": "RSS Kaynakları" + "title": "RSS Kaynakları", + "unknownFeed": "Bilinmeyen kaynak", + "untitled": "Başlıksız" } } diff --git a/rss-feed/i18n/uk-UA.json b/rss-feed/i18n/uk-UA.json index 972515604..12fef12a7 100644 --- a/rss-feed/i18n/uk-UA.json +++ b/rss-feed/i18n/uk-UA.json @@ -2,7 +2,9 @@ "settings": { "add": "Додати", "addFeed": "Додати новий канал", + "feedNamePlaceholder": "Приклад блогу", "feedName": "Назва каналу", + "feedUrlPlaceholder": "https://example.ua/feed.xml", "feedUrl": "URL каналу", "feeds": "RSS-канали", "markOnClick": "Позначати як прочитане при кліку", @@ -14,6 +16,8 @@ "seconds": "секунд", "showOnlyUnread": "Показувати лише непрочитані", "showOnlyUnreadDesc": "Відображати лише непрочитані елементи на панелі", + "showOnlyWhenUnread": "Показувати лише за наявності непрочитаних", + "showOnlyWhenUnreadDesc": "Показувати віджет лише коли є непрочитані статті", "title": "Налаштування RSS-читача", "updateInterval": "Інтервал оновлення", "updateIntervalDesc": "Як часто перевіряти нові елементи (секунди)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "Позначити всі як прочитані", "noItems": "Немає елементів для відображення", + "totalItems": "Усього: %1", "timeDays": "%1д тому", "timeHours": "%1год тому", "timeMinutes": "%1хв тому", "timeNow": "зараз", - "title": "RSS-канали" + "title": "RSS-канали", + "unknownFeed": "Невідомий канал", + "untitled": "Без назви" } } diff --git a/rss-feed/i18n/zh-CN.json b/rss-feed/i18n/zh-CN.json index efd796fd5..ebe3769db 100644 --- a/rss-feed/i18n/zh-CN.json +++ b/rss-feed/i18n/zh-CN.json @@ -2,7 +2,9 @@ "settings": { "add": "添加", "addFeed": "添加新源", + "feedNamePlaceholder": "示例博客", "feedName": "源名称", + "feedUrlPlaceholder": "https://example.cn/feed.xml", "feedUrl": "源URL", "feeds": "RSS源", "markOnClick": "点击时标记为已读", @@ -14,6 +16,8 @@ "seconds": "秒", "showOnlyUnread": "仅显示未读", "showOnlyUnreadDesc": "在面板中仅显示未读项目", + "showOnlyWhenUnread": "仅在有未读时显示", + "showOnlyWhenUnreadDesc": "仅在有未读文章时显示小部件", "title": "RSS阅读器设置", "updateInterval": "更新间隔", "updateIntervalDesc": "检查新项目的频率(秒)" @@ -21,10 +25,13 @@ "widget": { "markAllRead": "全部标记为已读", "noItems": "没有可显示的项目", + "totalItems": "共 %1 项", "timeDays": "%1天前", "timeHours": "%1小时前", "timeMinutes": "%1分钟前", "timeNow": "现在", - "title": "RSS源" + "title": "RSS源", + "unknownFeed": "未知源", + "untitled": "未命名" } } diff --git a/rss-feed/manifest.json b/rss-feed/manifest.json index 71ebb1056..2cbaac0dd 100644 --- a/rss-feed/manifest.json +++ b/rss-feed/manifest.json @@ -1,7 +1,7 @@ { "id": "rss-feed", "name": "RSS Feed Reader", - "version": "1.0.4", + "version": "1.0.5", "description": "Monitor and read RSS/Atom feeds directly from your desktop", "repository": "https://github.com/noctalia-dev/noctalia-plugins", "author": "Lokize", @@ -18,6 +18,7 @@ "metadata": { "defaultSettings": { "feeds": [], + "showOnlyWhenUnread": false, "updateInterval": 600, "maxItemsPerFeed": 10, "showOnlyUnread": false,