From 5b21444c2ef5ab0a63969f239a2bd27ea8758610 Mon Sep 17 00:00:00 2001 From: stuffinator Date: Sun, 6 Nov 2022 11:05:31 +0100 Subject: [PATCH 001/133] Add Pyload widget --- public/locales/de/common.json | 6 +++++ public/locales/en/common.json | 6 +++++ src/widgets/components.js | 1 + src/widgets/pyload/component.jsx | 27 +++++++++++++++++++++++ src/widgets/pyload/proxy.js | 38 ++++++++++++++++++++++++++++++++ src/widgets/pyload/widget.js | 8 +++++++ src/widgets/widgets.js | 2 ++ 7 files changed, 88 insertions(+) create mode 100644 src/widgets/pyload/component.jsx create mode 100644 src/widgets/pyload/proxy.js create mode 100644 src/widgets/pyload/widget.js diff --git a/public/locales/de/common.json b/public/locales/de/common.json index ec3b6e394..f13cd0282 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -292,5 +292,11 @@ "containers_scanned": "Scanned", "containers_updated": "Updated", "containers_failed": "Failed" + }, + "pyload": { + "speed": "Geschwindigkeit", + "active": "Aktiv", + "queue": "Warteschlange", + "total": "Gesamt" } } diff --git a/public/locales/en/common.json b/public/locales/en/common.json index dd00ff86e..913a3d9ba 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -303,5 +303,11 @@ "rejectedPushes": "Rejected", "filters": "Filters", "indexers": "Indexers" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } diff --git a/src/widgets/components.js b/src/widgets/components.js index c2b501890..ce5aa41a8 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -25,6 +25,7 @@ const components = { portainer: dynamic(() => import("./portainer/component")), prowlarr: dynamic(() => import("./prowlarr/component")), proxmox: dynamic(() => import("./proxmox/component")), + pyload: dynamic(() => import("./pyload/component")), qbittorrent: dynamic(() => import("./qbittorrent/component")), radarr: dynamic(() => import("./radarr/component")), readarr: dynamic(() => import("./readarr/component")), diff --git a/src/widgets/pyload/component.jsx b/src/widgets/pyload/component.jsx new file mode 100644 index 000000000..a15aab4cd --- /dev/null +++ b/src/widgets/pyload/component.jsx @@ -0,0 +1,27 @@ +import { useTranslation } from 'next-i18next' + +import Container from 'components/services/widget/container' +import Block from 'components/services/widget/block' +import useWidgetAPI from 'utils/proxy/use-widget-api' + +export default function Component({ service }) { + const { t } = useTranslation() + const { widget } = service + const { data: pyloadData, error: pyloadError } = useWidgetAPI( + widget, + 'statusServer', + ) + + if (pyloadError || !pyloadData) { + return + } + + return ( + + + + + + + ) +} diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js new file mode 100644 index 000000000..35fb7becc --- /dev/null +++ b/src/widgets/pyload/proxy.js @@ -0,0 +1,38 @@ +import getServiceWidget from "utils/config/service-helpers"; +import { formatApiCall } from "utils/proxy/api-helpers"; +import widgets from "widgets/widgets"; + +export default async function pyloadProxyHandler(req, res) { + const { group, service, endpoint } = req.query; + + if (group && service) { + const widget = await getServiceWidget(group, service); + + if (widget) { + const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); + const loginUrl = `${widget.url}/api/login`; + + // Pyload api does not support argument passing as JSON. + const sessionId = await fetch(loginUrl, { + method: "POST", + // Empty passwords are supported. + body: `username=${widget.username}&password=${widget.password ?? ''}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + }).then((response) => response.json()); + + const apiResponse = await fetch(url, { + method: "POST", + body: `session=${sessionId}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + }).then((response) => response.json()); + + return res.send(apiResponse); + } + } + + return res.status(400).json({ error: "Invalid proxy service type" }); +} diff --git a/src/widgets/pyload/widget.js b/src/widgets/pyload/widget.js new file mode 100644 index 000000000..3d2f2958f --- /dev/null +++ b/src/widgets/pyload/widget.js @@ -0,0 +1,8 @@ +import pyloadProxyHandler from "./proxy"; + +const widget = { + api: "{url}/api/{endpoint}", + proxyHandler: pyloadProxyHandler, +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index 74f426b36..eb5bec488 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -20,6 +20,7 @@ import plex from "./plex/widget"; import portainer from "./portainer/widget"; import prowlarr from "./prowlarr/widget"; import proxmox from "./proxmox/widget"; +import pyload from "./pyload/widget"; import qbittorrent from "./qbittorrent/widget"; import radarr from "./radarr/widget"; import readarr from "./readarr/widget"; @@ -58,6 +59,7 @@ const widgets = { portainer, prowlarr, proxmox, + pyload, qbittorrent, radarr, readarr, From 02027deb06d0c1419b9aff0498b8170d7e2c8a6a Mon Sep 17 00:00:00 2001 From: stuffinator Date: Sun, 6 Nov 2022 11:45:25 +0100 Subject: [PATCH 002/133] code styling --- src/widgets/pyload/component.jsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/widgets/pyload/component.jsx b/src/widgets/pyload/component.jsx index a15aab4cd..e35bb3b56 100644 --- a/src/widgets/pyload/component.jsx +++ b/src/widgets/pyload/component.jsx @@ -1,19 +1,19 @@ import { useTranslation } from 'next-i18next' -import Container from 'components/services/widget/container' -import Block from 'components/services/widget/block' -import useWidgetAPI from 'utils/proxy/use-widget-api' +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { - const { t } = useTranslation() - const { widget } = service + const { t } = useTranslation(); + const { widget } = service; const { data: pyloadData, error: pyloadError } = useWidgetAPI( widget, - 'statusServer', - ) + "statusServer", + ); if (pyloadError || !pyloadData) { - return + return ; } return ( @@ -23,5 +23,5 @@ export default function Component({ service }) { - ) + ); } From 19799aa51452dfd713f6ad6b36f679be1206fed7 Mon Sep 17 00:00:00 2001 From: Aiman Jalil Date: Sun, 6 Nov 2022 17:04:08 +0100 Subject: [PATCH 003/133] Added translation using Weblate (Malay) --- public/locales/ms/common.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 public/locales/ms/common.json diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/public/locales/ms/common.json @@ -0,0 +1 @@ +{} From ea04e45df553105d0a783f3ddde7d0a9f306ebac Mon Sep 17 00:00:00 2001 From: 3vilson Date: Sun, 6 Nov 2022 10:29:06 +0000 Subject: [PATCH 004/133] Translated using Weblate (German) Currently translated at 100.0% (225 of 225 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/ --- public/locales/de/common.json | 162 +++++++++++++++++----------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 315ec0e4f..f602c8159 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -47,7 +47,7 @@ "wanted": "Gesucht", "queued": "In Warteschlange", "movies": "Filme", - "missing": "Missing" + "missing": "Fehlt" }, "readarr": { "wanted": "Gesucht", @@ -194,9 +194,9 @@ "wait": "Bitte warten", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices" + "devices": "Geräte", + "lan_devices": "LAN-Geräte", + "wlan_devices": "WLAN Geräte" }, "plex": { "streams": "Aktive Streams", @@ -204,105 +204,105 @@ "tv": "TV Sendungen" }, "glances": { - "cpu": "CPU", + "cpu": "Prozessor", "mem": "RAM", "wait": "Bitte warten" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Gesamt beobachtet", + "diffsDetected": "Erkannte Differenzen" }, "wmo": { - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "57-day": "Freezing Drizzle", - "61-day": "Light Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "55-day": "Heavy Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "0-day": "Sonnig", + "0-night": "Klar", + "1-day": "Überwiegend sonnig", + "1-night": "Überwiegend klar", + "2-day": "Teilweise bewölkt", + "2-night": "Teilweise bewölkt", + "3-day": "bewölkt", + "57-day": "Gefrierender Nieselregen", + "61-day": "Leichter Regen", + "65-night": "Starker Regen", + "66-day": "Gefrierender Regen", + "66-night": "Gefrierender Regen", + "3-night": "Bewölkt", + "45-day": "Neblig", + "45-night": "Neblig", + "48-day": "Neblig", + "48-night": "Neblig", + "51-day": "Leichter Nieselregen", + "51-night": "Leichter Nieselregen", + "55-day": "Starker Nieselregen", + "53-day": "Nieselregen", + "53-night": "Nieselregen", + "55-night": "Starker Nieselregen", + "56-day": "Leichter gefrierender Nieselregen", + "56-night": "Leichter eisiger Nieselregen", + "57-night": "Gefrierender Nieselregen", + "61-night": "Leichter Regen", + "63-day": "Regen", + "63-night": "Regen", + "65-day": "Starker Regen", + "67-day": "Gefrierender Regen", + "67-night": "Gefrierender Regen", + "71-day": "Leichter Schneefall", + "71-night": "Leichter Schnee", + "73-day": "Schnee", + "73-night": "Schnee", + "75-day": "Schwerer Schnee", + "75-night": "Schwerer Schnee", + "77-day": "Schneegriesel", + "77-night": "Schneegriesel", + "80-day": "Leichter Schauer", + "80-night": "Leichter Schauer", + "81-day": "Schauer", + "81-night": "Schauer", + "82-day": "Starke Regenschauer", + "82-night": "Starke Regenschauer", + "85-day": "Schneeschauer", + "85-night": "Schneeregen", + "86-day": "Schneeregen", + "86-night": "Schneeregen", + "95-day": "Gewitter", + "95-night": "Gewitter", + "96-day": "Gewitter mit Hagel", + "96-night": "Gewitter mit Hagel", + "99-day": "Gewitter mit Hagel", + "99-night": "Gewitter mit Hagel" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service" + "bookmark": "Lesezeichen", + "service": "Dienst" }, "homebridge": { "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "updates": "Aktualisierungen", + "update_available": "Aktualisierung verfügbar", + "up_to_date": "Aktuell", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Genehmigt", + "rejectedPushes": "Abgelehnt", + "filters": "Filter", + "indexers": "Indexer" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Überprüft", + "containers_updated": "Aktualisiert", + "containers_failed": "Fehlgeschlagen" }, "tubearchivist": { - "downloads": "Queue", + "downloads": "Warteschlange", "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "channels": "Kanäle", + "playlists": "Wiedergabelisten" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", + "load": "Systembelastung", + "uptime": "Betriebszeit", + "alerts": "Warnungen", "time": "{{value, number(style: unit; unitDisplay: long;)}}" } } From f35feae49c7440e91181ecf8503a5512e89f6ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?yahoo=EF=BD=9E=EF=BD=9E?= Date: Sat, 5 Nov 2022 10:23:43 +0000 Subject: [PATCH 005/133] Translated using Weblate (Chinese (Simplified)) Currently translated at 72.4% (163 of 225 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/ --- public/locales/zh-CN/common.json | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index 2a09311d5..da9222e72 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -47,7 +47,7 @@ "wanted": "想看", "queued": "队列", "movies": "电影", - "missing": "Missing" + "missing": "丢失" }, "readarr": { "wanted": "订阅", @@ -192,11 +192,11 @@ "up": "向上", "down": "向下", "wait": "请稍候", - "lan": "LAN", - "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices" + "lan": "局域网", + "wlan": "无线局域网", + "devices": "设备", + "lan_devices": "局域网设备", + "wlan_devices": "无线局域网设备" }, "plex": { "streams": "活动流", @@ -209,26 +209,26 @@ "wait": "请稍等" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "观察到的总数", + "diffsDetected": "检测到差异" }, "wmo": { - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "48-day": "Foggy", - "51-day": "Light Drizzle", + "0-day": "晴天", + "0-night": "晴朗", + "1-day": "主要是晴天", + "3-day": "阴天", + "3-night": "阴天", + "45-day": "有雾", + "48-day": "有雾", + "51-day": "小雨", "73-night": "Snow", "75-day": "Heavy Snow", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "45-night": "Foggy", - "48-night": "Foggy", - "51-night": "Light Drizzle", + "1-night": "大部晴朗", + "2-day": "多云", + "2-night": "多云", + "45-night": "有雾", + "48-night": "有雾", + "51-night": "小雨", "53-day": "Drizzle", "53-night": "Drizzle", "55-day": "Heavy Drizzle", @@ -271,8 +271,8 @@ "99-night": "Thunderstorm With Hail" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service" + "bookmark": "书签", + "service": "服务" }, "homebridge": { "available_update": "System", @@ -302,7 +302,7 @@ "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts", + "alerts": "警报", "time": "{{value, number(style: unit; unitDisplay: long;)}}" } } From 6576e51a79076099a3085a4580ed58011405a611 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Sat, 5 Nov 2022 11:59:03 +0000 Subject: [PATCH 006/133] Translated using Weblate (Croatian) Currently translated at 100.0% (225 of 225 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 083faebd4..3fd3efb6f 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -189,8 +189,8 @@ "wan": "WAN", "lan_users": "LAN korisnici", "wlan_users": "WLAN korisnici", - "up": "Upaljen", - "down": "Ugašen", + "up": "SLANJE", + "down": "PRIMANJE", "wait": "Pričekaj", "lan": "LAN", "wlan": "WLAN", @@ -265,10 +265,10 @@ "86-night": "Snježni pljuskovi", "95-day": "Oluja", "95-night": "Oluja", - "96-day": "Oluja s grmljavinom", - "96-night": "Oluja s grmljavinom", - "99-day": "Oluja s grmljavinom", - "99-night": "Oluja s grmljavinom" + "96-day": "Oluja s tučom", + "96-night": "Oluja s tučom", + "99-day": "Oluja s tučom", + "99-night": "Oluja s tučom" }, "quicklaunch": { "bookmark": "Straničnik", From 0a159d9c6d4f92bed56cfe07f40ee0d817402faf Mon Sep 17 00:00:00 2001 From: "Peter Selch Carlsen (SheepyDK)" Date: Fri, 4 Nov 2022 20:56:12 +0000 Subject: [PATCH 007/133] Translated using Weblate (Danish) Currently translated at 31.1% (70 of 225 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/ --- public/locales/da/common.json | 122 +++++++++++++++++----------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/public/locales/da/common.json b/public/locales/da/common.json index e67a66738..875e59bfc 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -1,29 +1,29 @@ { "plex": { - "movies": "Movies", + "movies": "Film", "tv": "TV Shows", - "streams": "Active Streams" + "streams": "Aktive Streams" }, "radarr": { - "queued": "Queued", - "movies": "Movies", - "wanted": "Wanted", - "missing": "Missing" + "queued": "I Kø", + "movies": "Film", + "wanted": "Ønskede", + "missing": "Mangler" }, "lidarr": { - "wanted": "Wanted", - "queued": "Queued", + "wanted": "Ønsket", + "queued": "I Kø", "albums": "Albums" }, "jellyseerr": { - "available": "Available", - "pending": "Pending", - "approved": "Approved" + "available": "Tilgængelig", + "pending": "Afventer", + "approved": "Godkendt" }, "overseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Afventer", + "approved": "Godkendt", + "available": "Tilgængelig" }, "adguard": { "queries": "Queries", @@ -136,77 +136,77 @@ "child_bridges_status": "{{ok}}/{{total}}" }, "widget": { - "missing_type": "Missing Widget Type: {{type}}", - "api_error": "API Error", + "missing_type": "Manglende Widget Type: {{type}}", + "api_error": "API fejl", "status": "Status" }, "weather": { - "current": "Current Location", - "allow": "Click to allow", - "updating": "Updating", - "wait": "Please wait" + "current": "Nuværende lokation", + "allow": "Klik for at tillade", + "updating": "Opdaterer", + "wait": "Vent venligst" }, "search": { - "placeholder": "Search…" + "placeholder": "Søg…" }, "resources": { "cpu": "CPU", "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load" + "free": "Fri", + "used": "Brugt", + "load": "Belastning" }, "unifi": { - "users": "Users", - "uptime": "System Uptime", - "days": "Days", + "users": "Brugere", + "uptime": "System Oppetid", + "days": "Dage", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", + "devices": "Enheder", + "lan_devices": "LAN Enheder", + "wlan_devices": "WLAN Enheder", + "lan_users": "LAN Brugere", + "wlan_users": "WLAN Brugere", "up": "UP", - "down": "DOWN", - "wait": "Please wait" + "down": "NED", + "wait": "Vent venligst" }, "docker": { "cpu": "CPU", "rx": "RX", "tx": "TX", - "mem": "MEM", + "mem": "RAM", "offline": "Offline" }, "emby": { - "playing": "Playing", - "transcoding": "Transcoding", + "playing": "Afspiller", + "transcoding": "Transcoder", "bitrate": "Bitrate", - "no_active": "No Active Streams" + "no_active": "Ingen Aktive Streams" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Total Observeret", + "diffsDetected": "Forskelle Detekteret" }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", + "playing": "Afspiller", + "transcoding": "Transcoder", "bitrate": "Bitrate", - "no_active": "No Active Streams" + "no_active": "Ingen Aktive Streams" }, "nzbget": { "rate": "Rate", - "remaining": "Remaining", - "downloaded": "Downloaded" + "remaining": "Manglende", + "downloaded": "Hentet" }, "sabnzbd": { "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" + "queue": "Kø", + "timeleft": "Resterende tid" }, "rutorrent": { - "active": "Active", + "active": "Aktive", "upload": "Upload", "download": "Download" }, @@ -223,28 +223,28 @@ "seed": "Seed" }, "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "wanted": "Ønsket", + "queued": "I Kø", + "series": "Serier" }, "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" + "wanted": "Ønskede", + "queued": "I Kø", + "books": "Bøger" }, "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" + "missingEpisodes": "Manglende Afsnit", + "missingMovies": "Manglende Film" }, "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Afventer", + "approved": "Godkendt", + "available": "Tilgængelig" }, "pihole": { - "blocked": "Blocked", + "blocked": "Blokerede", "gravity": "Gravity", - "queries": "Queries" + "queries": "Forespørgsler" }, "portainer": { "running": "Running", From ce77a5c4ad451ea0962c87ca015d37ecb07dd169 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Sun, 6 Nov 2022 16:04:10 +0000 Subject: [PATCH 008/133] Translated using Weblate (Malay) Currently translated at 100.0% (0 of 0 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 309 +++++++++++++++++++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index 0967ef424..975e785dd 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -1 +1,308 @@ -{} +{ + "resources": { + "cpu": "CPU", + "total": "Total", + "free": "Free", + "used": "Used", + "load": "Load" + }, + "unifi": { + "uptime": "System Uptime", + "users": "Users", + "days": "Days", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Devices", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "Please wait" + }, + "lidarr": { + "queued": "Queued", + "albums": "Albums", + "wanted": "Wanted" + }, + "readarr": { + "wanted": "Wanted", + "queued": "Queued", + "books": "Books" + }, + "jellyseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "coinmarketcap": { + "30days": "30 Days", + "configure": "Configure one or more crypto currencies to track", + "1hour": "1 Hour", + "1day": "1 Day", + "7days": "7 Days" + }, + "gotify": { + "apps": "Applications", + "clients": "Clients", + "messages": "Messages" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "mem": "MEM", + "wait": "Please wait" + }, + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service" + }, + "wmo": { + "0-day": "Sunny", + "0-night": "Clear", + "1-day": "Mainly Sunny", + "1-night": "Mainly Clear", + "63-day": "Rain", + "63-night": "Rain", + "2-day": "Partly Cloudy", + "2-night": "Partly Cloudy", + "3-day": "Cloudy", + "3-night": "Cloudy", + "45-day": "Foggy", + "45-night": "Foggy", + "48-day": "Foggy", + "48-night": "Foggy", + "51-day": "Light Drizzle", + "51-night": "Light Drizzle", + "53-day": "Drizzle", + "53-night": "Drizzle", + "55-day": "Heavy Drizzle", + "55-night": "Heavy Drizzle", + "56-day": "Light Freezing Drizzle", + "56-night": "Light Freezing Drizzle", + "57-day": "Freezing Drizzle", + "57-night": "Freezing Drizzle", + "61-day": "Light Rain", + "61-night": "Light Rain", + "65-day": "Heavy Rain", + "65-night": "Heavy Rain", + "66-day": "Freezing Rain", + "66-night": "Freezing Rain", + "67-day": "Freezing Rain", + "67-night": "Freezing Rain", + "71-day": "Light Snow", + "71-night": "Light Snow", + "73-day": "Snow", + "73-night": "Snow", + "75-day": "Heavy Snow", + "75-night": "Heavy Snow", + "81-day": "Showers", + "77-day": "Snow Grains", + "77-night": "Snow Grains", + "80-day": "Light Showers", + "80-night": "Light Showers", + "81-night": "Showers", + "82-day": "Heavy Showers", + "82-night": "Heavy Showers", + "85-day": "Snow Showers", + "85-night": "Snow Showers", + "86-day": "Snow Showers", + "86-night": "Snow Showers", + "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", + "96-night": "Thunderstorm With Hail", + "99-day": "Thunderstorm With Hail", + "99-night": "Thunderstorm With Hail" + }, + "widget": { + "missing_type": "Missing Widget Type: {{type}}", + "api_error": "API Error", + "status": "Status" + }, + "weather": { + "current": "Current Location", + "allow": "Click to allow", + "updating": "Updating", + "wait": "Please wait" + }, + "search": { + "placeholder": "Search…" + }, + "nzbget": { + "remaining": "Remaining", + "downloaded": "Downloaded", + "rate": "Rate" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "MEM", + "cpu": "CPU", + "offline": "Offline" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "emby": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bitrate", + "no_active": "No Active Streams" + }, + "tautulli": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bitrate", + "no_active": "No Active Streams" + }, + "plex": { + "streams": "Active Streams", + "movies": "Movies", + "tv": "TV Shows" + }, + "sabnzbd": { + "rate": "Rate", + "queue": "Queue", + "timeleft": "Time Left" + }, + "rutorrent": { + "active": "Active", + "upload": "Upload", + "download": "Download" + }, + "transmission": { + "leech": "Leech", + "download": "Download", + "upload": "Upload", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Series" + }, + "radarr": { + "wanted": "Wanted", + "missing": "Missing", + "queued": "Queued", + "movies": "Movies" + }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, + "ombi": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "overseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "pihole": { + "queries": "Queries", + "blocked": "Blocked", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Queries", + "blocked": "Blocked", + "filtered": "Filtered", + "latency": "Latency" + }, + "speedtest": { + "upload": "Upload", + "download": "Download", + "ping": "Ping" + }, + "portainer": { + "running": "Running", + "stopped": "Stopped", + "total": "Total" + }, + "traefik": { + "routers": "Routers", + "services": "Services", + "middleware": "Middleware" + }, + "npm": { + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Total" + }, + "prowlarr": { + "enableIndexers": "Indexers", + "numberOfGrabs": "Grabs", + "numberOfQueries": "Queries", + "numberOfFailGrabs": "Fail Grabs", + "numberOfFailQueries": "Fail Queries" + }, + "jackett": { + "configured": "Configured", + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "Sessions", + "numConnections": "Connections", + "dataRelayed": "Relayed", + "transferRate": "Rate" + }, + "mastodon": { + "user_count": "Users", + "status_count": "Posts", + "domain_count": "Domains" + }, + "authentik": { + "users": "Users", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Failed Logins (24h)" + }, + "homebridge": { + "child_bridges_status": "{{ok}}/{{total}}", + "available_update": "System", + "updates": "Updates", + "update_available": "Update Available", + "up_to_date": "Up to Date", + "child_bridges": "Child Bridges" + }, + "watchtower": { + "containers_scanned": "Scanned", + "containers_updated": "Updated", + "containers_failed": "Failed" + }, + "autobrr": { + "approvedPushes": "Approved", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexers" + }, + "tubearchivist": { + "downloads": "Queue", + "videos": "Videos", + "channels": "Channels", + "playlists": "Playlists" + }, + "truenas": { + "load": "System Load", + "uptime": "Uptime", + "alerts": "Alerts", + "time": "{{value, number(style: unit; unitDisplay: long;)}}" + } +} From bbacf4e671e47d233d0850746fb172d971008018 Mon Sep 17 00:00:00 2001 From: stuffinator Date: Sun, 6 Nov 2022 17:07:56 +0100 Subject: [PATCH 009/133] reverted changes to German language file --- public/locales/de/common.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/public/locales/de/common.json b/public/locales/de/common.json index b33c8668c..315ec0e4f 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -304,11 +304,5 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" - }, - "pyload": { - "speed": "Geschwindigkeit", - "active": "Aktiv", - "queue": "Warteschlange", - "total": "Gesamt" } } From 9757ee0defbb8c3ca5c47962e6fcb22de578d2d5 Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 6 Nov 2022 21:47:17 +0200 Subject: [PATCH 010/133] Delete .all-contributorsrc --- .all-contributorsrc | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index 1487861d0..000000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "projectName": "homepage", - "projectOwner": "benphelps", - "repoType": "github", - "repoHost": "https://github.com", - "files": ["README.md"], - "imageSize": 50, - "contributorsSortAlphabetically": true, - "contributors": [] -} From 3c7f7ea27e4dd2be96b697fc20e73afd6b45d61f Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 6 Nov 2022 21:52:42 +0200 Subject: [PATCH 011/133] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index cdfa217e2..f56336425 100644 --- a/README.md +++ b/README.md @@ -152,3 +152,9 @@ This is a [Next.js](https://nextjs.org/) application, see their doucmentation fo + + + + +[![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors) + From 5592c5302840f91e6c463d452a08aba335d3f9ae Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 6 Nov 2022 21:57:04 +0200 Subject: [PATCH 012/133] Create .all-contributorsrc --- .all-contributorsrc | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 000000000..3a46209e6 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,11 @@ +{ + "projectName": "homepage", + "projectOwner": benphelps", + "files": [ + "README.md" + ], + "imageSize": 100, + "contributors": [ + + ] +} From 35ae655ba391a8319ae8ace975c7704b633183a3 Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 6 Nov 2022 21:57:32 +0200 Subject: [PATCH 013/133] Update .all-contributorsrc --- .all-contributorsrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 3a46209e6..ddf7d542e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,6 +1,6 @@ { "projectName": "homepage", - "projectOwner": benphelps", + "projectOwner": "benphelps", "files": [ "README.md" ], From f3a22b057bd39096d092e6b8d91996e2f5497906 Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 6 Nov 2022 21:58:47 +0200 Subject: [PATCH 014/133] Update .all-contributorsrc --- .all-contributorsrc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index ddf7d542e..f2d28077a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -5,7 +5,5 @@ "README.md" ], "imageSize": 100, - "contributors": [ - - ] + "contributors": [] } From 2ab05350a3703bfb9ee68f862a5a18617ac54fd9 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 6 Nov 2022 14:41:02 -0800 Subject: [PATCH 015/133] Fix maxWidth / maxHeight style attrs --- src/components/resolvedicon.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/resolvedicon.jsx b/src/components/resolvedicon.jsx index d973ab4b2..2a3701e83 100644 --- a/src/components/resolvedicon.jsx +++ b/src/components/resolvedicon.jsx @@ -14,8 +14,8 @@ export default function ResolvedIcon({ icon }) { style={{ width: 32, height: 32, - 'max-width': '100%', - 'max-height': '100%', + maxWidth: '100%', + maxHeight: '100%', background: "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))", mask: `url(https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/${iconName}.svg) no-repeat center / contain`, WebkitMask: `url(https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/${iconName}.svg) no-repeat center / contain`, From 319d3bfae35fb3b9af6efdb9c2df02aecfeb2a82 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 6 Nov 2022 14:30:48 -0800 Subject: [PATCH 016/133] Change npm widget to use httpProxy not fetch --- src/widgets/npm/component.jsx | 2 +- src/widgets/npm/proxy.js | 80 +++++++++++++++++++++++++++++------ 2 files changed, 68 insertions(+), 14 deletions(-) diff --git a/src/widgets/npm/component.jsx b/src/widgets/npm/component.jsx index b35e27c85..92aef0359 100644 --- a/src/widgets/npm/component.jsx +++ b/src/widgets/npm/component.jsx @@ -11,7 +11,7 @@ export default function Component({ service }) { const { data: infoData, error: infoError } = useWidgetAPI(widget, "nginx/proxy-hosts"); - if (infoError) { + if (infoError || infoData?.error) { return ; } diff --git a/src/widgets/npm/proxy.js b/src/widgets/npm/proxy.js index eed43b571..ff15db62b 100644 --- a/src/widgets/npm/proxy.js +++ b/src/widgets/npm/proxy.js @@ -1,6 +1,33 @@ +import cache from "memory-cache"; + import getServiceWidget from "utils/config/service-helpers"; import { formatApiCall } from "utils/proxy/api-helpers"; +import { httpProxy } from "utils/proxy/http"; import widgets from "widgets/widgets"; +import createLogger from "utils/logger"; + +const proxyName = "npmProxyHandler"; +const tokenCacheKey = `${proxyName}__token`; +const logger = createLogger(proxyName); + +async function login(loginUrl, username, password) { + const authResponse = await httpProxy(loginUrl, { + method: "POST", + body: JSON.stringify({ identity: username, secret: password }), + headers: { + "Content-Type": "application/json", + }, + }); + + const status = authResponse[0]; + const data = JSON.parse(Buffer.from(authResponse[2]).toString()); + + if (status === 200) { + cache.put(tokenCacheKey, data.token); + } + + return [status, data.token ?? data]; +} export default async function npmProxyHandler(req, res) { const { group, service, endpoint } = req.query; @@ -14,27 +41,54 @@ export default async function npmProxyHandler(req, res) { if (widget) { const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); - const loginUrl = `${widget.url}/api/tokens`; - const body = { identity: widget.username, secret: widget.password }; - const authResponse = await fetch(loginUrl, { - method: "POST", - body: JSON.stringify(body), - headers: { - "Content-Type": "application/json", - }, - }).then((response) => response.json()); + let status; + let contentType; + let data; + + let token = cache.get(tokenCacheKey); + if (!token) { + [status, token] = await login(loginUrl, widget.username, widget.password); + if (status !== 200) { + logger.debug(`HTTTP ${status} logging into npm api: ${data}`); + return res.status(status).send(data); + } + } - const apiResponse = await fetch(url, { + [status, contentType, data] = await httpProxy(url, { method: "GET", headers: { "Content-Type": "application/json", - Authorization: `Bearer ${authResponse.token}`, + Authorization: `Bearer ${token}`, }, - }).then((response) => response.json()); + }); + + if (status === 403) { + logger.debug(`HTTTP ${status} retrieving data from npm api, logging in and trying again.`); + cache.del(tokenCacheKey); + [status, token] = await login(loginUrl, widget.username, widget.password); + + if (status !== 200) { + logger.debug(`HTTTP ${status} logging into npm api: ${data}`); + return res.status(status).send(data); + } + + // eslint-disable-next-line no-unused-vars + [status, contentType, data] = await httpProxy(url, { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + }, + }); + } + + if (status !== 200) { + return res.status(status).send(data); + } - return res.send(apiResponse); + return res.send(data); } } From 210d746ef632c8d76e9ea960e80bb8f768fe6492 Mon Sep 17 00:00:00 2001 From: ForeverEndeavor <77213414+ForeverEndeavor@users.noreply.github.com> Date: Mon, 7 Nov 2022 10:16:03 -0600 Subject: [PATCH 017/133] Feature: add navidrome support --- public/locales/en/common.json | 6 ++++ src/widgets/components.js | 1 + src/widgets/navidrome/component.jsx | 45 +++++++++++++++++++++++++++++ src/widgets/navidrome/widget.js | 14 +++++++++ src/widgets/widgets.js | 2 ++ 5 files changed, 68 insertions(+) create mode 100644 src/widgets/navidrome/component.jsx create mode 100644 src/widgets/navidrome/widget.js diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 8784443a4..94ac652be 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -168,6 +168,12 @@ "services": "Services", "middleware": "Middleware" }, + "navidrome": { + "user": "User", + "artist": "Artist", + "song": "Song", + "album": "Album" + }, "npm": { "enabled": "Enabled", "disabled": "Disabled", diff --git a/src/widgets/components.js b/src/widgets/components.js index 33d09eac3..28b5a92f0 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -16,6 +16,7 @@ const components = { jellyseerr: dynamic(() => import("./jellyseerr/component")), lidarr: dynamic(() => import("./lidarr/component")), mastodon: dynamic(() => import("./mastodon/component")), + navidrome: dynamic(() => import("./navidrome/component")), npm: dynamic(() => import("./npm/component")), nzbget: dynamic(() => import("./nzbget/component")), ombi: dynamic(() => import("./ombi/component")), diff --git a/src/widgets/navidrome/component.jsx b/src/widgets/navidrome/component.jsx new file mode 100644 index 000000000..343eb0fe7 --- /dev/null +++ b/src/widgets/navidrome/component.jsx @@ -0,0 +1,45 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + + const { data: navidromeData, error: navidromeError } = useWidgetAPI(widget, "getNowPlaying"); + + if (navidromeError) { + return ; + } + + if (!navidromeData || Object.keys(navidromeData["subsonic-response"].nowPlaying).length === 0) { + return ( + + + + + + + ); + } + + const nowPlaying = Object.values(navidromeData["subsonic-response"].nowPlaying.entry); + const songList = []; + + nowPlaying.forEach(userPlay => { + const playing = ( + + + + + + + ); + songList.unshift(playing); + }); + + return songList; +} diff --git a/src/widgets/navidrome/widget.js b/src/widgets/navidrome/widget.js new file mode 100644 index 000000000..9b8614350 --- /dev/null +++ b/src/widgets/navidrome/widget.js @@ -0,0 +1,14 @@ +import genericProxyHandler from "utils/proxy/handlers/generic"; + +const widget = { + api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v={version}&c={client}&f=json", + proxyHandler: genericProxyHandler, + + mappings: { + "getNowPlaying": { + endpoint: "getNowPlaying", + }, + }, +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index 7bad4013b..aaf0a0255 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -11,6 +11,7 @@ import jackett from "./jackett/widget"; import jellyseerr from "./jellyseerr/widget"; import lidarr from "./lidarr/widget"; import mastodon from "./mastodon/widget"; +import navidrome from "./navidrome/widget"; import npm from "./npm/widget"; import nzbget from "./nzbget/widget"; import ombi from "./ombi/widget"; @@ -51,6 +52,7 @@ const widgets = { jellyseerr, lidarr, mastodon, + navidrome, npm, nzbget, ombi, From 8b2b8d7b358411a8fba8a04b2e9337b26e51a433 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 6 Nov 2022 10:35:41 -0800 Subject: [PATCH 018/133] Cache Pyload widget login sessionId, refactor --- src/widgets/pyload/component.jsx | 18 ++++++--- src/widgets/pyload/proxy.js | 68 +++++++++++++++++++++++--------- src/widgets/pyload/widget.js | 8 +++- 3 files changed, 70 insertions(+), 24 deletions(-) diff --git a/src/widgets/pyload/component.jsx b/src/widgets/pyload/component.jsx index e35bb3b56..958733c31 100644 --- a/src/widgets/pyload/component.jsx +++ b/src/widgets/pyload/component.jsx @@ -7,15 +7,23 @@ import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; - const { data: pyloadData, error: pyloadError } = useWidgetAPI( - widget, - "statusServer", - ); + const { data: pyloadData, error: pyloadError } = useWidgetAPI(widget, "status"); - if (pyloadError || !pyloadData) { + if (pyloadError || pyloadData?.error) { return ; } + if (!pyloadData) { + return ( + + + + + + + ); + } + return ( diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js index 35fb7becc..d96b859c1 100644 --- a/src/widgets/pyload/proxy.js +++ b/src/widgets/pyload/proxy.js @@ -1,6 +1,36 @@ +import cache from "memory-cache"; + import getServiceWidget from "utils/config/service-helpers"; import { formatApiCall } from "utils/proxy/api-helpers"; import widgets from "widgets/widgets"; +import createLogger from "utils/logger"; + +const proxyName = 'pyloadProxyHandler'; +const logger = createLogger(proxyName); +const sessionCacheKey = `${proxyName}__sessionId`; + +async function fetchFromPyloadAPI(url, sessionId, params) { + const options = { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + }; + + if (params) { + options.body = Object.keys(params).map(k => `${k}=${params[k]}`).join('&'); + } else { + options.body = `session=${sessionId}` + } + + return fetch(url, options).then((response) => response.json()); +} + +async function login(loginUrl, username, password) { + const sessionId = await fetchFromPyloadAPI(loginUrl, null, { username, password }) + cache.put(sessionCacheKey, sessionId); + return sessionId; +} export default async function pyloadProxyHandler(req, res) { const { group, service, endpoint } = req.query; @@ -12,27 +42,29 @@ export default async function pyloadProxyHandler(req, res) { const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); const loginUrl = `${widget.url}/api/login`; - // Pyload api does not support argument passing as JSON. - const sessionId = await fetch(loginUrl, { - method: "POST", - // Empty passwords are supported. - body: `username=${widget.username}&password=${widget.password ?? ''}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded", - }, - }).then((response) => response.json()); - - const apiResponse = await fetch(url, { - method: "POST", - body: `session=${sessionId}`, - headers: { - "Content-Type": "application/x-www-form-urlencoded", - }, - }).then((response) => response.json()); + let sessionId = cache.get(sessionCacheKey); + + if (!sessionId) { + sessionId = await login(loginUrl, widget.username, widget.password); + } + let apiResponse = await fetchFromPyloadAPI(url, sessionId); + + if (apiResponse?.error === 'Forbidden') { + logger.debug("Failed to retrieve data from Pyload API, login and re-try"); + cache.del(sessionCacheKey); + sessionId = await login(loginUrl, widget.username, widget.password); + apiResponse = await fetchFromPyloadAPI(url, sessionId); + } + + if (apiResponse?.error) { + return res.status(500).send(apiResponse); + } + cache.del(sessionCacheKey); + return res.send(apiResponse); } } return res.status(400).json({ error: "Invalid proxy service type" }); -} +} \ No newline at end of file diff --git a/src/widgets/pyload/widget.js b/src/widgets/pyload/widget.js index 3d2f2958f..71073c0f1 100644 --- a/src/widgets/pyload/widget.js +++ b/src/widgets/pyload/widget.js @@ -3,6 +3,12 @@ import pyloadProxyHandler from "./proxy"; const widget = { api: "{url}/api/{endpoint}", proxyHandler: pyloadProxyHandler, -}; + + mappings: { + "status": { + endpoint: "statusServer", + } + } +} export default widget; From 69786600b1c3ca7a8f9506d4279f8a7b910cd82f Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 6 Nov 2022 11:24:59 -0800 Subject: [PATCH 019/133] Pyload widget use httpProxy instead of fetch --- src/widgets/pyload/proxy.js | 69 +++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js index d96b859c1..d130bcfe3 100644 --- a/src/widgets/pyload/proxy.js +++ b/src/widgets/pyload/proxy.js @@ -4,6 +4,7 @@ import getServiceWidget from "utils/config/service-helpers"; import { formatApiCall } from "utils/proxy/api-helpers"; import widgets from "widgets/widgets"; import createLogger from "utils/logger"; +import { httpProxy } from "utils/proxy/http"; const proxyName = 'pyloadProxyHandler'; const logger = createLogger(proxyName); @@ -20,50 +21,60 @@ async function fetchFromPyloadAPI(url, sessionId, params) { if (params) { options.body = Object.keys(params).map(k => `${k}=${params[k]}`).join('&'); } else { - options.body = `session=${sessionId}` + options.body = `session=${sessionId}`; } - return fetch(url, options).then((response) => response.json()); + // eslint-disable-next-line no-unused-vars + const [status, contentType, data] = await httpProxy(url, options); + return [status, JSON.parse(Buffer.from(data).toString())]; } async function login(loginUrl, username, password) { - const sessionId = await fetchFromPyloadAPI(loginUrl, null, { username, password }) - cache.put(sessionCacheKey, sessionId); - return sessionId; + const [status, sessionId] = await fetchFromPyloadAPI(loginUrl, null, { username, password }); + if (status !== 200) { + throw new Error(`HTTP error ${status} logging into Pyload API, returned: ${sessionId}`); + } else { + cache.put(sessionCacheKey, sessionId); + return sessionId; + } } export default async function pyloadProxyHandler(req, res) { const { group, service, endpoint } = req.query; - if (group && service) { - const widget = await getServiceWidget(group, service); - - if (widget) { - const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); - const loginUrl = `${widget.url}/api/login`; - - let sessionId = cache.get(sessionCacheKey); + try { + if (group && service) { + const widget = await getServiceWidget(group, service); + + if (widget) { + const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); + const loginUrl = `${widget.url}/api/login`; + + let sessionId = cache.get(sessionCacheKey); - if (!sessionId) { - sessionId = await login(loginUrl, widget.username, widget.password); - } + if (!sessionId) { + sessionId = await login(loginUrl, widget.username, widget.password); + } + + let [status, data] = await fetchFromPyloadAPI(url, sessionId); - let apiResponse = await fetchFromPyloadAPI(url, sessionId); + if (status === 403) { + logger.debug("Failed to retrieve data from Pyload API, login and re-try"); + cache.del(sessionCacheKey); + sessionId = await login(loginUrl, widget.username, widget.password); + [status, data] = await fetchFromPyloadAPI(url, sessionId); + } + + if (data?.error || status !== 200) { + return res.status(500).send(Buffer.from(data).toString()); + } - if (apiResponse?.error === 'Forbidden') { - logger.debug("Failed to retrieve data from Pyload API, login and re-try"); - cache.del(sessionCacheKey); - sessionId = await login(loginUrl, widget.username, widget.password); - apiResponse = await fetchFromPyloadAPI(url, sessionId); - } - - if (apiResponse?.error) { - return res.status(500).send(apiResponse); + return res.json(data); } - cache.del(sessionCacheKey); - - return res.send(apiResponse); } + } catch (e) { + logger.error(e); + return res.status(500).send(e.toString()); } return res.status(400).json({ error: "Invalid proxy service type" }); From 31b644c93933a2960dcdaaa5f2e410f26a47bc56 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 7 Nov 2022 10:36:47 -0800 Subject: [PATCH 020/133] fix navidrome nothing playing, simplify widget params --- src/widgets/navidrome/component.jsx | 16 ++++++++++++---- src/widgets/navidrome/widget.js | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/widgets/navidrome/component.jsx b/src/widgets/navidrome/component.jsx index 343eb0fe7..360dac97e 100644 --- a/src/widgets/navidrome/component.jsx +++ b/src/widgets/navidrome/component.jsx @@ -11,11 +11,11 @@ export default function Component({ service }) { const { data: navidromeData, error: navidromeError } = useWidgetAPI(widget, "getNowPlaying"); - if (navidromeError) { + if (navidromeError || navidromeData?.error || navidromeData?.["subsonic-response"]?.error) { return ; } - if (!navidromeData || Object.keys(navidromeData["subsonic-response"].nowPlaying).length === 0) { + if (!navidromeData) { return ( @@ -26,10 +26,18 @@ export default function Component({ service }) { ); } - const nowPlaying = Object.values(navidromeData["subsonic-response"].nowPlaying.entry); + const nowPlaying = navidromeData["subsonic-response"].nowPlaying; + if (!nowPlaying.entry) { + // nothing playing + return ( + + ); + } + + const nowPlayingEntries = Object.values(nowPlaying.entry); const songList = []; - nowPlaying.forEach(userPlay => { + nowPlayingEntries.forEach(userPlay => { const playing = ( diff --git a/src/widgets/navidrome/widget.js b/src/widgets/navidrome/widget.js index 9b8614350..9d7c03d45 100644 --- a/src/widgets/navidrome/widget.js +++ b/src/widgets/navidrome/widget.js @@ -1,7 +1,7 @@ import genericProxyHandler from "utils/proxy/handlers/generic"; const widget = { - api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v={version}&c={client}&f=json", + api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v=1.16.1&c=homepage&f=json", proxyHandler: genericProxyHandler, mappings: { From 3e73fb65ead76accca59f0ad327dc027062838b8 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 7 Nov 2022 11:06:53 -0800 Subject: [PATCH 021/133] Use compact now playing format --- public/locales/en/common.json | 6 ++-- src/widgets/navidrome/component.jsx | 51 +++++++++++++++-------------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 94ac652be..afba679a1 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -169,10 +169,8 @@ "middleware": "Middleware" }, "navidrome": { - "user": "User", - "artist": "Artist", - "song": "Song", - "album": "Album" + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" }, "npm": { "enabled": "Enabled", diff --git a/src/widgets/navidrome/component.jsx b/src/widgets/navidrome/component.jsx index 360dac97e..f4f3e6721 100644 --- a/src/widgets/navidrome/component.jsx +++ b/src/widgets/navidrome/component.jsx @@ -1,9 +1,24 @@ import { useTranslation } from "next-i18next"; import Container from "components/services/widget/container"; -import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; +function SinglePlayingEntry({ entry }) { + const { username, artist, title, album } = entry; + let fullTitle = title; + if (artist) fullTitle = `${artist} - ${title}`; + if (album) fullTitle += ` — ${album}`; + if (username) fullTitle += ` (${username})`; + + return ( +
+
+
{fullTitle}
+
+
+ ); +} + export default function Component({ service }) { const { t } = useTranslation(); @@ -17,37 +32,25 @@ export default function Component({ service }) { if (!navidromeData) { return ( - - - - - - + ); } - const nowPlaying = navidromeData["subsonic-response"].nowPlaying; + const { nowPlaying } = navidromeData["subsonic-response"]; if (!nowPlaying.entry) { // nothing playing return ( - + ); } const nowPlayingEntries = Object.values(nowPlaying.entry); - const songList = []; - - nowPlayingEntries.forEach(userPlay => { - const playing = ( - - - - - - - ); - songList.unshift(playing); - }); - - return songList; + + return ( +
+ {nowPlayingEntries.map((entry) => ( + + ))} +
+ ); } From 6326983f65a03b471420a226e95921b2a76d74b5 Mon Sep 17 00:00:00 2001 From: Aiman Jalil Date: Sun, 6 Nov 2022 16:18:02 +0000 Subject: [PATCH 022/133] Translated using Weblate (Malay) Currently translated at 100.0% (225 of 225 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 388 +++++++++++++++++----------------- 1 file changed, 194 insertions(+), 194 deletions(-) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index 975e785dd..9d8fd3cd6 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -1,308 +1,308 @@ { "resources": { "cpu": "CPU", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load" + "total": "Jumlah", + "free": "Bebas", + "used": "Telah diguna", + "load": "Beban" }, "unifi": { - "uptime": "System Uptime", - "users": "Users", - "days": "Days", + "uptime": "Masa Operasi Sistem", + "users": "Pengguna", + "days": "Hari", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait" + "devices": "Peranti", + "lan_devices": "Peranti LAN", + "wlan_devices": "Peranti WLAN", + "lan_users": "Pengguna LAN", + "wlan_users": "Pengguna WLAN", + "up": "HIDUP", + "down": "MATI", + "wait": "Sila tunggu" }, "lidarr": { - "queued": "Queued", - "albums": "Albums", - "wanted": "Wanted" + "queued": "Dibaris Gilir", + "albums": "Album", + "wanted": "Mahu" }, "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" + "wanted": "Mahu", + "queued": "Dibaris Gilir", + "books": "Buku" }, "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Tertangguh", + "approved": "Lulus", + "available": "Sudah Ada" }, "coinmarketcap": { - "30days": "30 Days", - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days" + "30days": "30 Hari", + "configure": "Konfigurasikan satu atau lebih matawang crypto untuk dipantau", + "1hour": "1 Jam", + "1day": "1 Hari", + "7days": "7 Hari" }, "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" + "apps": "Aplikasi", + "clients": "Klien", + "messages": "Mesej" }, "proxmox": { "mem": "MEM", "cpu": "CPU", "lxc": "LXC", - "vms": "VMs" + "vms": "Mesin Maya" }, "glances": { "cpu": "CPU", "mem": "MEM", - "wait": "Please wait" + "wait": "Sila tunggu" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service" + "bookmark": "Tandabuku", + "service": "Servis" }, "wmo": { - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "63-day": "Rain", - "63-night": "Rain", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "81-day": "Showers", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "0-day": "Terik", + "0-night": "Cerah", + "1-day": "Sebahagian Besar Terik", + "1-night": "Sebahagian Besar Cerah", + "63-day": "Hujan", + "63-night": "Hujan", + "2-day": "Sebahagian Mendung", + "2-night": "Sebahagian Mendung", + "3-day": "Mendung", + "3-night": "Mendung", + "45-day": "Berkabus", + "45-night": "Berkabus", + "48-day": "Berkabus", + "48-night": "Berkabus", + "51-day": "Gerimis", + "51-night": "Gerimis", + "53-day": "Renyai", + "53-night": "Renyai", + "55-day": "Renyai Kuat", + "55-night": "Renyai Kuat", + "56-day": "Gerimis Sejuk Ringan", + "56-night": "Gerimis Sejuk Ringan", + "57-day": "Gerimis Sejuk", + "57-night": "Gerimis Sejuk", + "61-day": "Hujan Renyai", + "61-night": "Hujan Renyai", + "65-day": "Hujan Lebat", + "65-night": "Hujan Lebat", + "66-day": "Hujan Sejuk", + "66-night": "Hujan Sejuk", + "67-day": "Hujan Sejuk", + "67-night": "Hujan Sejuk", + "71-day": "Salji Ringan", + "71-night": "Salji Ringan", + "73-day": "Salji", + "73-night": "Salji", + "75-day": "Salji Lebat", + "75-night": "Salji Lebat", + "81-day": "Rintik", + "77-day": "Butiran Salji", + "77-night": "Butiran Salji", + "80-day": "Rintik Ringan", + "80-night": "Rintik Ringan", + "81-night": "Rintik", + "82-day": "Rintik Lebat", + "82-night": "Rintik Lebat", + "85-day": "Rintik Salji", + "85-night": "Rintik Salji", + "86-day": "Rintik Salji", + "86-night": "Rintik Salji", + "95-day": "Ribut", + "95-night": "Ribut", + "96-day": "Ribut Hujan Batu", + "96-night": "Ribut Hujan Batu", + "99-day": "Ribut Hujan Batu", + "99-night": "Ribut Hujan Batu" }, "widget": { - "missing_type": "Missing Widget Type: {{type}}", - "api_error": "API Error", + "missing_type": "Jenis Widget Hilang: {{type}}", + "api_error": "Masalah API", "status": "Status" }, "weather": { - "current": "Current Location", - "allow": "Click to allow", - "updating": "Updating", - "wait": "Please wait" + "current": "Lokasi Sekarang", + "allow": "Klik untuk benarkan", + "updating": "Mengemas kini", + "wait": "Sila tunggu" }, "search": { - "placeholder": "Search…" + "placeholder": "Carian…" }, "nzbget": { - "remaining": "Remaining", - "downloaded": "Downloaded", - "rate": "Rate" + "remaining": "Baki", + "downloaded": "Telah Muat Turun", + "rate": "Kadar" }, "docker": { "rx": "RX", "tx": "TX", "mem": "MEM", "cpu": "CPU", - "offline": "Offline" + "offline": "Luar talian" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Jumlah Diperhatikan", + "diffsDetected": "Perbezaan Dikesan" }, "emby": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams" + "playing": "Sedang dimainkan", + "transcoding": "Transkoding", + "bitrate": "Kadar bit", + "no_active": "Tiada Strim Aktif" }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams" + "playing": "Sedang Dimainkan", + "transcoding": "Transkoding", + "bitrate": "Kadar bit", + "no_active": "Tiada Strim Aktif" }, "plex": { - "streams": "Active Streams", - "movies": "Movies", - "tv": "TV Shows" + "streams": "Strim Aktif", + "movies": "Filem", + "tv": "Rancangan TV" }, "sabnzbd": { - "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" + "rate": "Kadar", + "queue": "Barisan", + "timeleft": "Masa Tinggal" }, "rutorrent": { - "active": "Active", - "upload": "Upload", - "download": "Download" + "active": "Aktif", + "upload": "Muat Naik", + "download": "Muat Turun" }, "transmission": { "leech": "Leech", - "download": "Download", - "upload": "Upload", + "download": "Muat Turun", + "upload": "Muat Naik", "seed": "Seed" }, "qbittorrent": { - "download": "Download", - "upload": "Upload", + "download": "Muat Turun", + "upload": "Muat Naik", "leech": "Leech", "seed": "Seed" }, "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "wanted": "Mahu", + "queued": "Dibaris Gilir", + "series": "Bersiri" }, "radarr": { - "wanted": "Wanted", - "missing": "Missing", - "queued": "Queued", - "movies": "Movies" + "wanted": "Mahu", + "missing": "Hilang", + "queued": "Dibaris Gilir", + "movies": "Filem" }, "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" + "missingEpisodes": "Episod Yang Hilang", + "missingMovies": "Filem Yang Hilang" }, "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Tertunda", + "approved": "Lulus", + "available": "Sudah Ada" }, "overseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "Tertangguh", + "approved": "Lulus", + "available": "Sudah Ada" }, "pihole": { - "queries": "Queries", - "blocked": "Blocked", + "queries": "Permintaan", + "blocked": "Disekat", "gravity": "Gravity" }, "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" + "queries": "Permintaan", + "blocked": "Disekat", + "filtered": "Ditapis", + "latency": "Kependaman" }, "speedtest": { - "upload": "Upload", - "download": "Download", + "upload": "Muat Naik", + "download": "Muat Turun", "ping": "Ping" }, "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" + "running": "Sedang Berjalan", + "stopped": "Terhenti", + "total": "Jumlah" }, "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" + "routers": "Router", + "services": "Servis", + "middleware": "Perisian Tengah" }, "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" + "enabled": "Didayakan", + "disabled": "Dinyahdayakan", + "total": "Jumlah" }, "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "enableIndexers": "Pengindeks", + "numberOfGrabs": "Capai", + "numberOfQueries": "Permintaan", + "numberOfFailGrabs": "Capai Yang Ggagal", + "numberOfFailQueries": "Permintaan Yang Gagal" }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "Telah Dikonfigurasi", + "errored": "Telah Tersalah" }, "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" + "numActiveSessions": "Sesi", + "numConnections": "Penyambungan", + "dataRelayed": "Disalurkan", + "transferRate": "Kadar" }, "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" + "user_count": "Pengguna", + "status_count": "Pos", + "domain_count": "Domain" }, "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "users": "Pengguna", + "loginsLast24H": "Logmasuk (24j)", + "failedLoginsLast24H": "Logmasuk Gagal (24j)" }, "homebridge": { "child_bridges_status": "{{ok}}/{{total}}", - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges" + "available_update": "Sistem", + "updates": "Kemaskini", + "update_available": "Kemaskini Tersedia", + "up_to_date": "Terkemaskini", + "child_bridges": "Jambatan Anak" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Terimbas", + "containers_updated": "Dikemaskini", + "containers_failed": "Gagal" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Lulus", + "rejectedPushes": "Ditolak", + "filters": "Tapisan", + "indexers": "Pengindeks" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Baris Gilir", + "videos": "Video", + "channels": "Saluran", + "playlists": "Senarai Siar" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", + "load": "Beban Sistem", + "uptime": "Masa Hidup", + "alerts": "Amaran", "time": "{{value, number(style: unit; unitDisplay: long;)}}" } } From 9440b0517604b81707ab5def44deefa645ccad49 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 023/133] Translated using Weblate (German) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/ --- public/locales/de/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/de/common.json b/public/locales/de/common.json index f602c8159..271d674c3 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -304,5 +304,9 @@ "uptime": "Betriebszeit", "alerts": "Warnungen", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From d241dcb7811ba891267d2c02043eb4c5086f2afe Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 024/133] Translated using Weblate (Spanish) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 5de221ea2..9b6d7710a 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -304,5 +304,9 @@ "uptime": "Tiempo de la actividad", "alerts": "Alertas", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 5af26dfb4e56652af200f0792a4ef61f64745cce Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 025/133] Translated using Weblate (French) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/ --- public/locales/fr/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 3e0ffccbe..24a0d8f96 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -304,5 +304,9 @@ "uptime": "Démarré depuis", "alerts": "Alertes", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 79cdf1a57dfe11fcda9e753c95227297e4f108ca Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 026/133] Translated using Weblate (Portuguese) Currently translated at 50.6% (115 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/ --- public/locales/pt/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index a802e1c00..a2c503a6a 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -315,5 +315,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 796e1d18af7ba7de0c4c4c087515e8b66e75a2cd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 027/133] Translated using Weblate (Russian) Currently translated at 10.1% (23 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/ --- public/locales/ru/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 13912bd5b..ced355d7d 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From ee23d7c860e5e0a4e4e4d661d0e1f9e2e374f8c9 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 028/133] Translated using Weblate (Chinese (Simplified)) Currently translated at 71.8% (163 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/ --- public/locales/zh-CN/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index da9222e72..2de94d864 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "警报", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 341a5af28150d2cb82775785f9d8f11ef9bfb25c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 029/133] Translated using Weblate (Italian) Currently translated at 73.1% (166 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/ --- public/locales/it/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 52306bac2..d8fd94245 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 3f86c720b1d4864c449a215c52c146cd61f8d1f5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 030/133] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 34.8% (79 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/ --- public/locales/nb-NO/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json index 3b54e638d..6e8555b6c 100644 --- a/public/locales/nb-NO/common.json +++ b/public/locales/nb-NO/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 2591f9c8e83d7a4586b104f98982e00a6bb21b30 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:29 +0000 Subject: [PATCH 031/133] Translated using Weblate (Vietnamese) Currently translated at 19.3% (44 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/ --- public/locales/vi/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index 593b9c18d..fbf8d6534 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 1f0a60c6de11b0c4a8ec40bebc52c9c1bb40fed3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:30 +0000 Subject: [PATCH 032/133] Translated using Weblate (Dutch) Currently translated at 27.7% (63 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/ --- public/locales/nl/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index bd53b72b0..c323d413b 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From c8753463aea0b2caab26748d9903040deb395290 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:30 +0000 Subject: [PATCH 033/133] Translated using Weblate (Chinese (Traditional)) Currently translated at 3.9% (9 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/ --- public/locales/zh-Hant/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index 24b885900..e66c101fc 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 127416171af831bc130ae3dc4a280fff74d8c5b6 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 034/133] Translated using Weblate (Catalan) Currently translated at 57.7% (131 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/ --- public/locales/ca/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index 16e210ece..3943cc213 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 68e0bbbd0c7c2e74833036101b30e016cebeec81 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 035/133] Translated using Weblate (Polish) Currently translated at 76.2% (173 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/ --- public/locales/pl/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index d29ba7762..62509bc28 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "please_wait": "Please Wait", + "nothing_streaming": "No Active Streams" } } From 8486f01c848ae32f5028d1e9cb0c3fb48064983f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:00 +0000 Subject: [PATCH 036/133] Translated using Weblate (Swedish) Currently translated at 57.2% (130 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/ --- public/locales/sv/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 83bce2698..844aa2f36 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From fa6dbca295bfa128f466486fa32f907cc2a4fe74 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:25 +0000 Subject: [PATCH 037/133] Translated using Weblate (Croatian) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 3fd3efb6f..a9284e962 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -304,5 +304,9 @@ "uptime": "Radno vrijeme", "alerts": "Upozorenja", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 7056b05cbff0ebf03701666b6bd7ce2a5e2b2149 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 038/133] Translated using Weblate (Hungarian) Currently translated at 47.5% (108 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/ --- public/locales/hu/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 3af2cd6b3..9f83fc904 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 3c83b05d01c094430dad724d56488119babc5ab6 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:26 +0000 Subject: [PATCH 039/133] Translated using Weblate (Hebrew) Currently translated at 44.4% (101 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/ --- public/locales/he/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/he/common.json b/public/locales/he/common.json index fe7fd3aef..fa0b523a1 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From e2d97a84a3c5e261cf8c9fde87e50d342c3ab497 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:26 +0000 Subject: [PATCH 040/133] Translated using Weblate (Romanian) Currently translated at 60.3% (137 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/ --- public/locales/ro/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index 3927aa00d..0e425a8fe 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 65178f71c00b2ece264bf0d42b50c631506d642b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:26 +0000 Subject: [PATCH 041/133] Translated using Weblate (Portuguese (Brazil)) Currently translated at 50.6% (115 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/ --- public/locales/pt-BR/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index 899606f62..f41bbdf9e 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From be1bedadbaaa6aa5385ca9de24f8d49b9bfc273e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 042/133] Translated using Weblate (Yue) Currently translated at 51.9% (118 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue/ --- public/locales/yue/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index b36caac6c..288a794c9 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 733a42ad71334a67cdf85420f9d25ee6817bd4fe Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 043/133] Translated using Weblate (Finnish) Currently translated at 54.1% (123 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/ --- public/locales/fi/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index 3e8c69bf8..ca91e437d 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From acc2da71688e639566077ac6947da46342abdbbf Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:27 +0000 Subject: [PATCH 044/133] Translated using Weblate (Telugu) Currently translated at 95.5% (217 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/ --- public/locales/te/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/te/common.json b/public/locales/te/common.json index cbe1bce55..f2b3f3ed8 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 14dddfcd66660f752db13ce57c628f2b31a59944 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 045/133] Translated using Weblate (Bulgarian) Currently translated at 20.2% (46 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/ --- public/locales/bg/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index 98898d254..1f00a6de4 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 7721258e89294ff7178a52f8dffef4bad241d30f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 046/133] Translated using Weblate (Turkish) Currently translated at 64.3% (146 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/ --- public/locales/tr/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index c145d4bff..32f4df111 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 9f072581db09d57632da60231eb9e1658be0f93f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:26 +0000 Subject: [PATCH 047/133] Translated using Weblate (Serbian) Currently translated at 3.9% (9 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/ --- public/locales/sr/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index 5eab21931..fb72683c8 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From bddb4ae73d4dd278b7e99fe965e8a5906b594a73 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 048/133] Translated using Weblate (Arabic) Currently translated at 19.3% (44 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/ --- public/locales/ar/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index 3e40f83f0..16c262a2c 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 0e1062335098c40cc9465c7e39c337c0b296e069 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 049/133] Translated using Weblate (Czech) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/ --- public/locales/cs/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index d51f3c649..3403c38a0 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -304,5 +304,9 @@ "rejectedPushes": "Zamítnuto", "filters": "Filtry", "indexers": "Indexery" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 0990e8d889fdf3e3dbd120e7edc3487304d3e0e4 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:28 +0000 Subject: [PATCH 050/133] Translated using Weblate (Danish) Currently translated at 30.8% (70 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/ --- public/locales/da/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 875e59bfc..a129b964e 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -304,5 +304,9 @@ "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 4a9a0346263d6bb19a7c18a9bc35027b26e0d869 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 7 Nov 2022 21:44:30 +0000 Subject: [PATCH 051/133] Translated using Weblate (Malay) Currently translated at 99.1% (225 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index 9d8fd3cd6..a701698cb 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -304,5 +304,9 @@ "uptime": "Masa Hidup", "alerts": "Amaran", "time": "{{value, number(style: unit; unitDisplay: long;)}}" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" } } From 2bcfc36bc2a3f0d1bd5c5ddea4db501a9f9be7bd Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 8 Nov 2022 10:33:11 -0800 Subject: [PATCH 052/133] use grid-cols instead of flex-basis for bookmarks Fixes #507 --- src/components/bookmarks/group.jsx | 2 +- src/pages/index.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/bookmarks/group.jsx b/src/components/bookmarks/group.jsx index 1eb86e1a3..2910245c3 100644 --- a/src/components/bookmarks/group.jsx +++ b/src/components/bookmarks/group.jsx @@ -3,7 +3,7 @@ import List from "components/bookmarks/list"; export default function BookmarksGroup({ group }) { return ( -
+

{group.name}

diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 88c25cc47..d9e79786f 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -272,7 +272,7 @@ function Home({ initialSettings }) { )} {bookmarks && ( -
+
{bookmarks.map((group) => ( ))} From 1fd9686e411b5365e5d252b0ea976fb43cb8d66f Mon Sep 17 00:00:00 2001 From: stuffinator Date: Tue, 8 Nov 2022 21:47:12 +0100 Subject: [PATCH 053/133] - fixed empty password not working - Airbnb style guide --- src/widgets/pyload/proxy.js | 46 ++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js index d130bcfe3..86989ad05 100644 --- a/src/widgets/pyload/proxy.js +++ b/src/widgets/pyload/proxy.js @@ -1,10 +1,10 @@ -import cache from "memory-cache"; +import cache from 'memory-cache'; -import getServiceWidget from "utils/config/service-helpers"; -import { formatApiCall } from "utils/proxy/api-helpers"; -import widgets from "widgets/widgets"; -import createLogger from "utils/logger"; -import { httpProxy } from "utils/proxy/http"; +import getServiceWidget from 'utils/config/service-helpers'; +import { formatApiCall } from 'utils/proxy/api-helpers'; +import widgets from 'widgets/widgets'; +import createLogger from 'utils/logger'; +import { httpProxy } from 'utils/proxy/http'; const proxyName = 'pyloadProxyHandler'; const logger = createLogger(proxyName); @@ -12,24 +12,23 @@ const sessionCacheKey = `${proxyName}__sessionId`; async function fetchFromPyloadAPI(url, sessionId, params) { const options = { - method: "POST", + body: params + ? Object.keys(params) + .map((prop) => `${prop}=${params[prop]}`) + .join('&') + : `session=${sessionId}`, + method: 'POST', headers: { - "Content-Type": "application/x-www-form-urlencoded", + 'Content-Type': 'application/x-www-form-urlencoded', }, }; - if (params) { - options.body = Object.keys(params).map(k => `${k}=${params[k]}`).join('&'); - } else { - options.body = `session=${sessionId}`; - } - // eslint-disable-next-line no-unused-vars const [status, contentType, data] = await httpProxy(url, options); return [status, JSON.parse(Buffer.from(data).toString())]; } -async function login(loginUrl, username, password) { +async function login(loginUrl, username, password = '') { const [status, sessionId] = await fetchFromPyloadAPI(loginUrl, null, { username, password }); if (status !== 200) { throw new Error(`HTTP error ${status} logging into Pyload API, returned: ${sessionId}`); @@ -45,26 +44,21 @@ export default async function pyloadProxyHandler(req, res) { try { if (group && service) { const widget = await getServiceWidget(group, service); - + if (widget) { const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget })); const loginUrl = `${widget.url}/api/login`; - - let sessionId = cache.get(sessionCacheKey); - if (!sessionId) { - sessionId = await login(loginUrl, widget.username, widget.password); - } - + let sessionId = cache.get(sessionCacheKey) ?? await login(loginUrl, widget.username, widget.password); let [status, data] = await fetchFromPyloadAPI(url, sessionId); if (status === 403) { - logger.debug("Failed to retrieve data from Pyload API, login and re-try"); + logger.debug('Failed to retrieve data from Pyload API, login and re-try'); cache.del(sessionCacheKey); sessionId = await login(loginUrl, widget.username, widget.password); [status, data] = await fetchFromPyloadAPI(url, sessionId); } - + if (data?.error || status !== 200) { return res.status(500).send(Buffer.from(data).toString()); } @@ -77,5 +71,5 @@ export default async function pyloadProxyHandler(req, res) { return res.status(500).send(e.toString()); } - return res.status(400).json({ error: "Invalid proxy service type" }); -} \ No newline at end of file + return res.status(400).json({ error: 'Invalid proxy service type' }); +} From 473efd2804bd4794a97c69e2132c37072c515749 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Tue, 8 Nov 2022 16:24:26 +0000 Subject: [PATCH 054/133] Translated using Weblate (Spanish) Currently translated at 100.0% (227 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 9b6d7710a..9165854c4 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -306,7 +306,7 @@ "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Sin transmisiones activas", + "please_wait": "Espere por favor" } } From d8891cd74854d939604cba7ece5a0a021dffb9f3 Mon Sep 17 00:00:00 2001 From: Nonoss117 Date: Tue, 8 Nov 2022 05:50:30 +0000 Subject: [PATCH 055/133] Translated using Weblate (French) Currently translated at 100.0% (227 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/ --- public/locales/fr/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 24a0d8f96..28a12da83 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -306,7 +306,7 @@ "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Aucun flux actif", + "please_wait": "Merci de patienter" } } From 88a5a0628026cff181bc9794ae248db213527666 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Tue, 8 Nov 2022 12:15:25 +0000 Subject: [PATCH 056/133] Translated using Weblate (Croatian) Currently translated at 100.0% (227 of 227 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index a9284e962..9ba22bab5 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -306,7 +306,7 @@ "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Nema aktivnih prijenosa", + "please_wait": "Pričekaj" } } From c19cb8fc8eacafd77dae079390eb51469d2e20cd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:03 +0000 Subject: [PATCH 057/133] Translated using Weblate (German) Currently translated at 97.4% (225 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/ --- public/locales/de/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 271d674c3..9135e64f0 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 68119ce160e92a096af04596ecaf45d1d94e05b2 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:03 +0000 Subject: [PATCH 058/133] Translated using Weblate (Spanish) Currently translated at 98.2% (227 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 9165854c4..db9d5a3cb 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "Sin transmisiones activas", "please_wait": "Espere por favor" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 347d13e3ebf8850c0b4c94e084aa35e9f1267634 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:04 +0000 Subject: [PATCH 059/133] Translated using Weblate (French) Currently translated at 98.2% (227 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/ --- public/locales/fr/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 28a12da83..0c12d2ef8 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "Aucun flux actif", "please_wait": "Merci de patienter" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From e3e690038530de00943c107823e7b2b9f8ce0338 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:04 +0000 Subject: [PATCH 060/133] Translated using Weblate (Portuguese) Currently translated at 49.7% (115 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/ --- public/locales/pt/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index a2c503a6a..8e5d160c0 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -319,5 +319,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "queue": "Queue", + "total": "Total", + "speed": "Speed", + "active": "Active" } } From 41a7de73c06d9e46ea716399d318233e626c49e1 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:04 +0000 Subject: [PATCH 061/133] Translated using Weblate (Russian) Currently translated at 9.9% (23 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/ --- public/locales/ru/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index ced355d7d..7d91a34ab 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 4be7d211bf0978b521bdbfa3d433ed0d69d50514 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:04 +0000 Subject: [PATCH 062/133] Translated using Weblate (Chinese (Simplified)) Currently translated at 70.5% (163 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/ --- public/locales/zh-CN/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index 2de94d864..f177d3668 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 1715903ce326243f39bfc1c218c93ce6680a1a8a Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:04 +0000 Subject: [PATCH 063/133] Translated using Weblate (Italian) Currently translated at 71.8% (166 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/ --- public/locales/it/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/it/common.json b/public/locales/it/common.json index d8fd94245..5a57382f1 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 1a4322d47431136a9430cfacf05000d439f8ecf0 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:03 +0000 Subject: [PATCH 064/133] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 34.1% (79 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/ --- public/locales/nb-NO/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json index 6e8555b6c..85c895f21 100644 --- a/public/locales/nb-NO/common.json +++ b/public/locales/nb-NO/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From f1f9b10470780845ca36e291764ca72c34f6435f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:05 +0000 Subject: [PATCH 065/133] Translated using Weblate (Vietnamese) Currently translated at 19.0% (44 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/ --- public/locales/vi/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index fbf8d6534..299cd1dfa 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From bd409b8d2853c75cdb3437bb337a7f812a18a1c8 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:05 +0000 Subject: [PATCH 066/133] Translated using Weblate (Dutch) Currently translated at 27.2% (63 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/ --- public/locales/nl/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index c323d413b..d51e5430f 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "total": "Total", + "queue": "Queue" } } From 5cf1258cb814cef7793cba3d2f49b027ed741534 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:05 +0000 Subject: [PATCH 067/133] Translated using Weblate (Chinese (Traditional)) Currently translated at 3.8% (9 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/ --- public/locales/zh-Hant/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index e66c101fc..3b83eef9d 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 510c57c815335777c30cb513d0f397face4f2378 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:01 +0000 Subject: [PATCH 068/133] Translated using Weblate (Catalan) Currently translated at 56.7% (131 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/ --- public/locales/ca/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index 3943cc213..c62351f3e 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 88d223bd39aa69c63130921fe5508d0c7c010322 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:01 +0000 Subject: [PATCH 069/133] Translated using Weblate (Polish) Currently translated at 74.8% (173 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/ --- public/locales/pl/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index 62509bc28..da520fd77 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -308,5 +308,11 @@ "navidrome": { "please_wait": "Please Wait", "nothing_streaming": "No Active Streams" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 8f119ed6f25fb030ac9cd04117277c8622090c27 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:58 +0000 Subject: [PATCH 070/133] Translated using Weblate (Swedish) Currently translated at 56.2% (130 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/ --- public/locales/sv/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 844aa2f36..5056f0cbf 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From dddd785731a3d5c4b636e86313c90de447dca2a1 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:58 +0000 Subject: [PATCH 071/133] Translated using Weblate (Croatian) Currently translated at 98.2% (227 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 9ba22bab5..8c9634cfc 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "Nema aktivnih prijenosa", "please_wait": "Pričekaj" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 24898f1f438e2f8914d32bfd021f2174ee789fb2 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:01 +0000 Subject: [PATCH 072/133] Translated using Weblate (Hungarian) Currently translated at 46.7% (108 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/ --- public/locales/hu/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 9f83fc904..70a737640 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 99972940e456427c178d82468286925532936c63 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:58 +0000 Subject: [PATCH 073/133] Translated using Weblate (Hebrew) Currently translated at 43.7% (101 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/ --- public/locales/he/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/he/common.json b/public/locales/he/common.json index fa0b523a1..4f83714ad 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 265828f4e8eb41ffb9a49876e8e62ae250e028d5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:59 +0000 Subject: [PATCH 074/133] Translated using Weblate (Romanian) Currently translated at 59.3% (137 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/ --- public/locales/ro/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index 0e425a8fe..d0bb85b0d 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 4ad237ab60ff6d37af19dfa3b326cdb500b20885 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:58 +0000 Subject: [PATCH 075/133] Translated using Weblate (Portuguese (Brazil)) Currently translated at 49.7% (115 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/ --- public/locales/pt-BR/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index f41bbdf9e..610703b24 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 9e2060d7e8b6b23bb1cdb1aaf76a044f01259c94 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:00 +0000 Subject: [PATCH 076/133] Translated using Weblate (Yue) Currently translated at 51.0% (118 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue/ --- public/locales/yue/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index 288a794c9..7c25ef522 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From f3f54fd69d040cef13d1e7c70ed0898f52c70649 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:02 +0000 Subject: [PATCH 077/133] Translated using Weblate (Finnish) Currently translated at 53.2% (123 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/ --- public/locales/fi/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index ca91e437d..bae6266a9 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 35b16dc81f06a97eaa72384d6449ffae143b4b1b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:01 +0000 Subject: [PATCH 078/133] Translated using Weblate (Telugu) Currently translated at 93.9% (217 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/ --- public/locales/te/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/te/common.json b/public/locales/te/common.json index f2b3f3ed8..c22aadd94 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From b92eccc431c60631f5187d9df801e9ed793269c4 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:02 +0000 Subject: [PATCH 079/133] Translated using Weblate (Bulgarian) Currently translated at 19.9% (46 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/ --- public/locales/bg/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index 1f00a6de4..2e9a65e24 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 4b436cb491db2cf75f253dbefd9f0798fcbc121c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:02 +0000 Subject: [PATCH 080/133] Translated using Weblate (Turkish) Currently translated at 63.2% (146 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/ --- public/locales/tr/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 32f4df111..0153ec959 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From f2040f539c4a613880a021540f025de1a7054b25 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:24:59 +0000 Subject: [PATCH 081/133] Translated using Weblate (Serbian) Currently translated at 3.8% (9 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/ --- public/locales/sr/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index fb72683c8..0805c1abc 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 4fa170219b4260d270eac498553767b213d48361 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:02 +0000 Subject: [PATCH 082/133] Translated using Weblate (Arabic) Currently translated at 19.0% (44 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/ --- public/locales/ar/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index 16c262a2c..d6c91938a 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 739336fc2d9faffbb060cf0bc6c86790a071221b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:03 +0000 Subject: [PATCH 083/133] Translated using Weblate (Czech) Currently translated at 97.4% (225 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/ --- public/locales/cs/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 3403c38a0..20966b0c1 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From 847991c3c7696dfd5444803db5af7acc51700daf Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:02 +0000 Subject: [PATCH 084/133] Translated using Weblate (Danish) Currently translated at 30.3% (70 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/ --- public/locales/da/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/da/common.json b/public/locales/da/common.json index a129b964e..de6ef70d9 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From f48ff3cd613d6bddd4da828c5bf1759f2b6ddc85 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 8 Nov 2022 21:25:05 +0000 Subject: [PATCH 085/133] Translated using Weblate (Malay) Currently translated at 97.4% (225 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index a701698cb..1989c2256 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -308,5 +308,11 @@ "navidrome": { "nothing_streaming": "No Active Streams", "please_wait": "Please Wait" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" } } From a5eceaa9f45c3ae81e743ceb26cebd6136f0aa13 Mon Sep 17 00:00:00 2001 From: eymankun Date: Wed, 9 Nov 2022 14:27:01 +0800 Subject: [PATCH 086/133] adding malay into translations list --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f56336425..3dd0e7946 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ - Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6 - Supports all Raspberry Pi's, most SBCs & Apple Silicon - Full i18n support with automatic language detection - - Translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish and Yue + - Translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish and Yue - Want to help translate? [Join the Weblate project](https://hosted.weblate.org/engage/homepage/) - Service & Web Bookmarks - Docker Integration From 280bd0e621d245927280939934c4c051a4ee4f30 Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 9 Nov 2022 15:21:29 +0800 Subject: [PATCH 087/133] Fix: openweathermap day/night icon issue The day/night icon does not display properly in openwathermap widget due to the typo (sundown -> sunset) in parsing data from openweathermap api. The icon should be displayed properly after the fix. --- src/components/widgets/openweathermap/weather.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/widgets/openweathermap/weather.jsx b/src/components/widgets/openweathermap/weather.jsx index 6a1f2a16d..49f428a04 100644 --- a/src/components/widgets/openweathermap/weather.jsx +++ b/src/components/widgets/openweathermap/weather.jsx @@ -54,7 +54,7 @@ function Widget({ options }) {
data.sys.sunrise && data.dt < data.sys.sundown ? "day" : "night"} + timeOfDay={data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night"} />
From 9060d3436cc9cc5a8aefaa9baee4e973258df701 Mon Sep 17 00:00:00 2001 From: Niklas Date: Wed, 9 Nov 2022 17:04:48 +0100 Subject: [PATCH 088/133] Add gluetun widget --- public/locales/en/common.json | 5 +++++ src/widgets/components.js | 1 + src/widgets/gluetun/component.jsx | 35 +++++++++++++++++++++++++++++++ src/widgets/gluetun/widget.js | 14 +++++++++++++ src/widgets/widgets.js | 2 ++ 5 files changed, 57 insertions(+) create mode 100644 src/widgets/gluetun/component.jsx create mode 100644 src/widgets/gluetun/widget.js diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 46a69588e..cc946e783 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -325,5 +325,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } diff --git a/src/widgets/components.js b/src/widgets/components.js index f501e0128..a8a06e770 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -9,6 +9,7 @@ const components = { coinmarketcap: dynamic(() => import("./coinmarketcap/component")), docker: dynamic(() => import("./docker/component")), emby: dynamic(() => import("./emby/component")), + gluetun: dynamic(() => import("./gluetun/component")), gotify: dynamic(() => import("./gotify/component")), homebridge: dynamic(() => import("./homebridge/component")), jackett: dynamic(() => import("./jackett/component")), diff --git a/src/widgets/gluetun/component.jsx b/src/widgets/gluetun/component.jsx new file mode 100644 index 000000000..f20c400b9 --- /dev/null +++ b/src/widgets/gluetun/component.jsx @@ -0,0 +1,35 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + + const { data: gluetunData, error: gluetunError } = useWidgetAPI(widget, "ip"); + + if (gluetunError) { + return ; + } + + if (!gluetunData) { + return ( + + + + + + ); + } + + return ( + + + + + + ); +} diff --git a/src/widgets/gluetun/widget.js b/src/widgets/gluetun/widget.js new file mode 100644 index 000000000..59aa39efe --- /dev/null +++ b/src/widgets/gluetun/widget.js @@ -0,0 +1,14 @@ +import genericProxyHandler from "utils/proxy/handlers/generic"; + +const widget = { + api: "{url}/v1/{endpoint}", + proxyHandler: genericProxyHandler, + + mappings: { + ip: { + endpoint: "publicip/ip", + }, + }, +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index fd67357d2..66e29086a 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -5,6 +5,7 @@ import bazarr from "./bazarr/widget"; import changedetectionio from "./changedetectionio/widget"; import coinmarketcap from "./coinmarketcap/widget"; import emby from "./emby/widget"; +import gluetun from "./gluetun/widget"; import gotify from "./gotify/widget"; import homebridge from "./homebridge/widget"; import jackett from "./jackett/widget"; @@ -46,6 +47,7 @@ const widgets = { changedetectionio, coinmarketcap, emby, + gluetun, gotify, homebridge, jackett, From f11173bcaf03dc7de2eb2cf286f7db5bb3c8e880 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 9 Nov 2022 21:07:51 -0800 Subject: [PATCH 089/133] Fix text centering in block labels on small screens Closes #516 --- src/components/services/widget/block.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/services/widget/block.jsx b/src/components/services/widget/block.jsx index 00a507720..2af53fff0 100644 --- a/src/components/services/widget/block.jsx +++ b/src/components/services/widget/block.jsx @@ -7,7 +7,7 @@ export default function Block({ value, label }) { return (
From d4cf27db70fc4a71d04464f5bb782fb27e71bbfa Mon Sep 17 00:00:00 2001 From: Nonoss117 Date: Wed, 9 Nov 2022 05:53:43 +0000 Subject: [PATCH 090/133] Translated using Weblate (French) Currently translated at 100.0% (231 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/ --- public/locales/fr/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 0c12d2ef8..a9d761b94 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -310,8 +310,8 @@ "please_wait": "Merci de patienter" }, "pyload": { - "speed": "Speed", - "active": "Active", + "speed": "Débit", + "active": "Actif", "queue": "Queue", "total": "Total" } From eff2f1a99eb9cc71a4f936fae3bf3d1c4f48996c Mon Sep 17 00:00:00 2001 From: Aiman Jalil Date: Wed, 9 Nov 2022 04:38:18 +0000 Subject: [PATCH 091/133] Translated using Weblate (Malay) Currently translated at 100.0% (231 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index 1989c2256..bc930db8c 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -306,13 +306,13 @@ "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Tiada Strim Aktif", + "please_wait": "Sila tunggu" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Kelajuan", + "active": "Aktif", + "queue": "Baris Gilir", + "total": "Jumlah" } } From 3c0b18570e3737549d96b1fe04cded54fc97f7af Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 10 Nov 2022 13:16:10 -0800 Subject: [PATCH 092/133] pyload widget compatibility with pyload-ng Closes https://github.com/benphelps/homepage/issues/517 --- src/widgets/pyload/proxy.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js index 86989ad05..80c83586e 100644 --- a/src/widgets/pyload/proxy.js +++ b/src/widgets/pyload/proxy.js @@ -9,6 +9,7 @@ import { httpProxy } from 'utils/proxy/http'; const proxyName = 'pyloadProxyHandler'; const logger = createLogger(proxyName); const sessionCacheKey = `${proxyName}__sessionId`; +const isNgCacheKey = `${proxyName}__isNg`; async function fetchFromPyloadAPI(url, sessionId, params) { const options = { @@ -23,17 +24,32 @@ async function fetchFromPyloadAPI(url, sessionId, params) { }, }; + // see https://github.com/benphelps/homepage/issues/517 + const isNg = cache.get(isNgCacheKey); + if (isNg && !params) { + delete options.body; + options.headers.Cookie = cache.get(sessionCacheKey); + } + // eslint-disable-next-line no-unused-vars - const [status, contentType, data] = await httpProxy(url, options); - return [status, JSON.parse(Buffer.from(data).toString())]; + const [status, contentType, data, responseHeaders] = await httpProxy(url, options); + return [status, JSON.parse(Buffer.from(data).toString()), responseHeaders]; } async function login(loginUrl, username, password = '') { - const [status, sessionId] = await fetchFromPyloadAPI(loginUrl, null, { username, password }); + const [status, sessionId, responseHeaders] = await fetchFromPyloadAPI(loginUrl, null, { username, password }); if (status !== 200) { throw new Error(`HTTP error ${status} logging into Pyload API, returned: ${sessionId}`); } else { - cache.put(sessionCacheKey, sessionId); + // Support pyload-ng, see https://github.com/benphelps/homepage/issues/517 + if (responseHeaders['set-cookie']?.join().includes('pyload_session')) { + cache.put(isNgCacheKey, true); + const sessionCookie = responseHeaders['set-cookie'][0]; + cache.put(sessionCacheKey, sessionCookie); + } else { + cache.put(sessionCacheKey, sessionId); + } + return sessionId; } } From c117f18d208e352774baa2677afc5d6d95b360cb Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 11 Nov 2022 12:39:54 -0800 Subject: [PATCH 093/133] Improve error handling with pyload-ng API --- src/widgets/pyload/proxy.js | 43 +++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/src/widgets/pyload/proxy.js b/src/widgets/pyload/proxy.js index 80c83586e..46b28684a 100644 --- a/src/widgets/pyload/proxy.js +++ b/src/widgets/pyload/proxy.js @@ -33,25 +33,32 @@ async function fetchFromPyloadAPI(url, sessionId, params) { // eslint-disable-next-line no-unused-vars const [status, contentType, data, responseHeaders] = await httpProxy(url, options); - return [status, JSON.parse(Buffer.from(data).toString()), responseHeaders]; + let returnData; + try { + returnData = JSON.parse(Buffer.from(data).toString()); + } catch(e) { + logger.error(`Error logging into pyload API: ${JSON.stringify(data)}`); + returnData = data; + } + return [status, returnData, responseHeaders]; } async function login(loginUrl, username, password = '') { const [status, sessionId, responseHeaders] = await fetchFromPyloadAPI(loginUrl, null, { username, password }); - if (status !== 200) { - throw new Error(`HTTP error ${status} logging into Pyload API, returned: ${sessionId}`); - } else { + + // this API actually returns status 200 even on login failure + if (status !== 200 || sessionId === false) { + logger.error(`HTTP ${status} logging into Pyload API, returned: ${JSON.stringify(sessionId)}`); + } else if (responseHeaders['set-cookie']?.join().includes('pyload_session')) { // Support pyload-ng, see https://github.com/benphelps/homepage/issues/517 - if (responseHeaders['set-cookie']?.join().includes('pyload_session')) { - cache.put(isNgCacheKey, true); - const sessionCookie = responseHeaders['set-cookie'][0]; - cache.put(sessionCacheKey, sessionCookie); - } else { - cache.put(sessionCacheKey, sessionId); - } - - return sessionId; + cache.put(isNgCacheKey, true); + const sessionCookie = responseHeaders['set-cookie'][0]; + cache.put(sessionCacheKey, sessionCookie, 60 * 60 * 23 * 1000); // cache for 23h + } else { + cache.put(sessionCacheKey, sessionId); } + + return sessionId; } export default async function pyloadProxyHandler(req, res) { @@ -68,15 +75,19 @@ export default async function pyloadProxyHandler(req, res) { let sessionId = cache.get(sessionCacheKey) ?? await login(loginUrl, widget.username, widget.password); let [status, data] = await fetchFromPyloadAPI(url, sessionId); - if (status === 403) { - logger.debug('Failed to retrieve data from Pyload API, login and re-try'); + if (status === 403 || status === 401) { + logger.info('Failed to retrieve data from Pyload API, trying to login again...'); cache.del(sessionCacheKey); sessionId = await login(loginUrl, widget.username, widget.password); [status, data] = await fetchFromPyloadAPI(url, sessionId); } if (data?.error || status !== 200) { - return res.status(500).send(Buffer.from(data).toString()); + try { + return res.status(status).send(Buffer.from(data).toString()); + } catch (e) { + return res.status(status).send(data); + } } return res.json(data); From 9fd4063025217e8dd283539458d75832d8f86b10 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Thu, 10 Nov 2022 14:56:21 +0000 Subject: [PATCH 094/133] Translated using Weblate (Spanish) Currently translated at 100.0% (231 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index db9d5a3cb..f85d4b6cc 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -310,9 +310,9 @@ "please_wait": "Espere por favor" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", + "speed": "Velocidad", + "active": "Activo", + "queue": "Cola", "total": "Total" } } From 6871f3288543391072d532230b64a2e4b5820169 Mon Sep 17 00:00:00 2001 From: nicedc Date: Fri, 11 Nov 2022 10:03:42 +0000 Subject: [PATCH 095/133] Translated using Weblate (Chinese (Simplified)) Currently translated at 71.4% (165 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/ --- public/locales/zh-CN/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index f177d3668..810b9f108 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -306,8 +306,8 @@ "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "暂无播放", + "please_wait": "请等待" }, "pyload": { "speed": "Speed", From 2a500bd6fc17335adf98539df608ef5dd3184fea Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Fri, 11 Nov 2022 18:11:00 +0000 Subject: [PATCH 096/133] Translated using Weblate (Croatian) Currently translated at 98.7% (228 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 8c9634cfc..0bb242965 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -310,9 +310,9 @@ "please_wait": "Pričekaj" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Brzina", + "active": "Aktivno", + "queue": "Red čekanja", + "total": "Ukupno" } } From cd092ce60bb18bebcaa8b5b2421be928e056896d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Y=C4=B1ld=C4=B1r=C4=B1m=20Manisal=C4=B1?= Date: Fri, 11 Nov 2022 14:58:05 +0000 Subject: [PATCH 097/133] Translated using Weblate (Turkish) Currently translated at 100.0% (231 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/ --- public/locales/tr/common.json | 166 +++++++++++++++++----------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 0153ec959..da1039667 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -213,106 +213,106 @@ "diffsDetected": "Farklar Algılandı" }, "wmo": { - "99-day": "Thunderstorm With Hail", - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "95-night": "Thunderstorm", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "99-day": "Dolu İle Gök Gürültülü Fırtına", + "0-day": "Güneşli", + "0-night": "Açık", + "1-day": "Çoğunlukla Güneşli", + "1-night": "Çoğunlukla Açık", + "2-day": "Parçalı Bulutlu", + "2-night": "Parçalı Bulutlu", + "3-day": "Bulutlu", + "3-night": "Bulutlu", + "45-day": "Sisli", + "45-night": "Sisli", + "48-day": "Sisli", + "48-night": "Sisli", + "51-day": "Az Çiseleyen Yağmur", + "51-night": "Az Çiseleyen Yağmur", + "53-day": "Çiseleyen Yağmur", + "53-night": "Çiseleyen Yağmur", + "55-day": "Çok Çiseleyen Yağmur", + "55-night": "Çok Çiseleyen Yağmur", + "56-day": "Soğuk Az Çiseleyen Yağmur", + "56-night": "Soğuk Az Çiseleyen Yağmur", + "57-day": "Soğuk Çiseleyen Yağmur", + "57-night": "Soğuk Çiseleyen Yağmur", + "61-day": "Hafif Yağmur", + "61-night": "Hafif Yağmur", + "63-day": "Yağmur", + "63-night": "Yağmur", + "65-day": "Çok Yağmur", + "65-night": "Çok Yağmur", + "66-day": "Dondurucu Yağmur", + "66-night": "Dondurucu Yağmur", + "67-day": "Dondurucu Yağmur", + "67-night": "Dondurucu Yağmur", + "71-day": "Hafif Kar", + "71-night": "Hafif Kar", + "73-day": "Kar", + "73-night": "Kar", + "75-day": "Çok Kar", + "75-night": "Çok Kar", + "77-day": "Kar Taneleri", + "77-night": "Kar Taneleri", + "80-day": "Hafif Sağanak", + "80-night": "Hafif Sağanak", + "81-day": "Sağanak", + "81-night": "Sağanak", + "82-day": "Yoğun Sağanak", + "95-night": "Gök Gürültülü Fırtına", + "82-night": "Yoğun Sağanak", + "85-day": "Karlı Sağanak", + "85-night": "Karlı Sağanak", + "86-day": "Karlı Sağanak", + "86-night": "Karlı Sağanak", + "95-day": "Gök Gürültülü Fırtına", + "96-day": "Dolu İle Gök Gürültülü Fırtına", + "96-night": "Dolu İle Gök Gürültülü Fırtına", + "99-night": "Dolu İle Gök Gürültülü Fırtına" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service" + "bookmark": "Yer İmi", + "service": "Hizmet" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", + "available_update": "Sistem", + "updates": "Güncellemeler", + "update_available": "Güncelleme Kullanılabilir", + "up_to_date": "Güncel", + "child_bridges": "Alt Köprüler", "child_bridges_status": "{{ok}}/{{total}}" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Onaylandı", + "rejectedPushes": "Reddedildi", + "filters": "Süzgeçler", + "indexers": "Dizin Oluşturucular" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Tarandı", + "containers_updated": "Güncellendi", + "containers_failed": "Başarısız" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Kuyruk", + "videos": "Videolar", + "channels": "Kanallar", + "playlists": "Oynatma Listeleri" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", + "load": "Sistem Yükü", + "uptime": "Çalışma Süresi", + "alerts": "Alarmlar", "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Geçerli Akış Yok", + "please_wait": "Lütfen Bekleyin" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Hız", + "active": "Geçerli", + "queue": "Kuyruk", + "total": "Toplam" } } From 8a47deadfec0d3cf29c94aeec56adfff38d38ae9 Mon Sep 17 00:00:00 2001 From: Locify1 Date: Sat, 12 Nov 2022 17:48:24 +0100 Subject: [PATCH 098/133] Added translation using Weblate (Hindi) --- public/locales/hi/common.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 public/locales/hi/common.json diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/public/locales/hi/common.json @@ -0,0 +1 @@ +{} From 1cf5e3976760e28528b456feb84d9a560f310514 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Sat, 12 Nov 2022 16:48:26 +0000 Subject: [PATCH 099/133] Translated using Weblate (Hindi) Currently translated at 100.0% (0 of 0 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/ --- public/locales/hi/common.json | 319 +++++++++++++++++++++++++++++++++- 1 file changed, 318 insertions(+), 1 deletion(-) diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 0967ef424..5e7657974 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -1 +1,318 @@ -{} +{ + "widget": { + "missing_type": "Missing Widget Type: {{type}}", + "api_error": "API Error", + "status": "Status" + }, + "weather": { + "current": "Current Location", + "allow": "Click to allow", + "updating": "Updating", + "wait": "Please wait" + }, + "readarr": { + "queued": "Queued", + "books": "Books", + "wanted": "Wanted" + }, + "bazarr": { + "missingEpisodes": "Missing Episodes", + "missingMovies": "Missing Movies" + }, + "ombi": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "jellyseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "traefik": { + "services": "Services", + "middleware": "Middleware", + "routers": "Routers" + }, + "mastodon": { + "domain_count": "Domains", + "user_count": "Users", + "status_count": "Posts" + }, + "authentik": { + "users": "Users", + "loginsLast24H": "Logins (24h)", + "failedLoginsLast24H": "Failed Logins (24h)" + }, + "search": { + "placeholder": "Search…" + }, + "resources": { + "cpu": "CPU", + "total": "Total", + "free": "Free", + "used": "Used", + "load": "Load" + }, + "unifi": { + "users": "Users", + "uptime": "System Uptime", + "days": "Days", + "wan": "WAN", + "lan": "LAN", + "wlan": "WLAN", + "devices": "Devices", + "lan_devices": "LAN Devices", + "wlan_devices": "WLAN Devices", + "lan_users": "LAN Users", + "wlan_users": "WLAN Users", + "up": "UP", + "down": "DOWN", + "wait": "Please wait" + }, + "docker": { + "rx": "RX", + "tx": "TX", + "mem": "MEM", + "cpu": "CPU", + "offline": "Offline" + }, + "emby": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bitrate", + "no_active": "No Active Streams" + }, + "changedetectionio": { + "totalObserved": "Total Observed", + "diffsDetected": "Diffs Detected" + }, + "tautulli": { + "playing": "Playing", + "transcoding": "Transcoding", + "bitrate": "Bitrate", + "no_active": "No Active Streams" + }, + "nzbget": { + "rate": "Rate", + "remaining": "Remaining", + "downloaded": "Downloaded" + }, + "plex": { + "streams": "Active Streams", + "movies": "Movies", + "tv": "TV Shows" + }, + "sabnzbd": { + "rate": "Rate", + "queue": "Queue", + "timeleft": "Time Left" + }, + "rutorrent": { + "active": "Active", + "upload": "Upload", + "download": "Download" + }, + "transmission": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "qbittorrent": { + "download": "Download", + "upload": "Upload", + "leech": "Leech", + "seed": "Seed" + }, + "sonarr": { + "wanted": "Wanted", + "queued": "Queued", + "series": "Series" + }, + "radarr": { + "wanted": "Wanted", + "missing": "Missing", + "queued": "Queued", + "movies": "Movies" + }, + "lidarr": { + "wanted": "Wanted", + "queued": "Queued", + "albums": "Albums" + }, + "overseerr": { + "pending": "Pending", + "approved": "Approved", + "available": "Available" + }, + "pihole": { + "queries": "Queries", + "blocked": "Blocked", + "gravity": "Gravity" + }, + "adguard": { + "queries": "Queries", + "blocked": "Blocked", + "filtered": "Filtered", + "latency": "Latency" + }, + "speedtest": { + "upload": "Upload", + "download": "Download", + "ping": "Ping" + }, + "portainer": { + "running": "Running", + "stopped": "Stopped", + "total": "Total" + }, + "navidrome": { + "nothing_streaming": "No Active Streams", + "please_wait": "Please Wait" + }, + "npm": { + "enabled": "Enabled", + "disabled": "Disabled", + "total": "Total" + }, + "coinmarketcap": { + "configure": "Configure one or more crypto currencies to track", + "1hour": "1 Hour", + "1day": "1 Day", + "7days": "7 Days", + "30days": "30 Days" + }, + "gotify": { + "apps": "Applications", + "clients": "Clients", + "messages": "Messages" + }, + "prowlarr": { + "enableIndexers": "Indexers", + "numberOfGrabs": "Grabs", + "numberOfQueries": "Queries", + "numberOfFailGrabs": "Fail Grabs", + "numberOfFailQueries": "Fail Queries" + }, + "jackett": { + "configured": "Configured", + "errored": "Errored" + }, + "strelaysrv": { + "numActiveSessions": "Sessions", + "numConnections": "Connections", + "dataRelayed": "Relayed", + "transferRate": "Rate" + }, + "proxmox": { + "mem": "MEM", + "cpu": "CPU", + "lxc": "LXC", + "vms": "VMs" + }, + "glances": { + "cpu": "CPU", + "mem": "MEM", + "wait": "Please wait" + }, + "quicklaunch": { + "bookmark": "Bookmark", + "service": "Service" + }, + "wmo": { + "0-day": "Sunny", + "0-night": "Clear", + "1-day": "Mainly Sunny", + "1-night": "Mainly Clear", + "2-day": "Partly Cloudy", + "2-night": "Partly Cloudy", + "3-day": "Cloudy", + "3-night": "Cloudy", + "45-day": "Foggy", + "45-night": "Foggy", + "48-day": "Foggy", + "48-night": "Foggy", + "51-day": "Light Drizzle", + "51-night": "Light Drizzle", + "53-day": "Drizzle", + "53-night": "Drizzle", + "55-day": "Heavy Drizzle", + "55-night": "Heavy Drizzle", + "56-day": "Light Freezing Drizzle", + "56-night": "Light Freezing Drizzle", + "57-day": "Freezing Drizzle", + "57-night": "Freezing Drizzle", + "61-day": "Light Rain", + "61-night": "Light Rain", + "63-day": "Rain", + "63-night": "Rain", + "65-day": "Heavy Rain", + "65-night": "Heavy Rain", + "66-day": "Freezing Rain", + "66-night": "Freezing Rain", + "67-day": "Freezing Rain", + "67-night": "Freezing Rain", + "71-day": "Light Snow", + "71-night": "Light Snow", + "73-day": "Snow", + "73-night": "Snow", + "75-day": "Heavy Snow", + "75-night": "Heavy Snow", + "77-day": "Snow Grains", + "77-night": "Snow Grains", + "80-day": "Light Showers", + "80-night": "Light Showers", + "81-day": "Showers", + "81-night": "Showers", + "82-day": "Heavy Showers", + "82-night": "Heavy Showers", + "85-day": "Snow Showers", + "85-night": "Snow Showers", + "86-day": "Snow Showers", + "86-night": "Snow Showers", + "95-day": "Thunderstorm", + "95-night": "Thunderstorm", + "96-day": "Thunderstorm With Hail", + "96-night": "Thunderstorm With Hail", + "99-day": "Thunderstorm With Hail", + "99-night": "Thunderstorm With Hail" + }, + "homebridge": { + "available_update": "System", + "updates": "Updates", + "update_available": "Update Available", + "up_to_date": "Up to Date", + "child_bridges": "Child Bridges", + "child_bridges_status": "{{ok}}/{{total}}" + }, + "watchtower": { + "containers_scanned": "Scanned", + "containers_updated": "Updated", + "containers_failed": "Failed" + }, + "autobrr": { + "approvedPushes": "Approved", + "rejectedPushes": "Rejected", + "filters": "Filters", + "indexers": "Indexers" + }, + "tubearchivist": { + "downloads": "Queue", + "videos": "Videos", + "channels": "Channels", + "playlists": "Playlists" + }, + "truenas": { + "load": "System Load", + "uptime": "Uptime", + "time": "{{value, number(style: unit; unitDisplay: long;)}}", + "alerts": "Alerts" + }, + "pyload": { + "speed": "Speed", + "active": "Active", + "queue": "Queue", + "total": "Total" + } +} From 0a286ac66ac560bee69681d3f448060464f4f378 Mon Sep 17 00:00:00 2001 From: Bruno Rossetto Date: Mon, 14 Nov 2022 13:09:06 +0000 Subject: [PATCH 100/133] Translated using Weblate (Portuguese (Brazil)) Currently translated at 50.6% (117 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/ --- public/locales/pt-BR/common.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index 610703b24..e2651ea8e 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -209,8 +209,8 @@ "wait": "Please wait" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Observados", + "diffsDetected": "Mudanças" }, "wmo": { "1-night": "Mainly Clear", From 1a9708d45ca9c0c7837d3aa3e86f3461d0ed50c6 Mon Sep 17 00:00:00 2001 From: "Peter Selch Carlsen (SheepyDK)" Date: Sun, 13 Nov 2022 18:44:13 +0000 Subject: [PATCH 101/133] Translated using Weblate (Danish) Currently translated at 85.7% (198 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/ --- public/locales/da/common.json | 230 +++++++++++++++++----------------- 1 file changed, 115 insertions(+), 115 deletions(-) diff --git a/public/locales/da/common.json b/public/locales/da/common.json index de6ef70d9..02e14a18a 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -1,7 +1,7 @@ { "plex": { "movies": "Film", - "tv": "TV Shows", + "tv": "TV-Shows", "streams": "Aktive Streams" }, "radarr": { @@ -26,9 +26,9 @@ "available": "Tilgængelig" }, "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", + "queries": "Forespørgsler", + "blocked": "Blokerede", + "filtered": "Filtreret", "latency": "Latency" }, "speedtest": { @@ -38,100 +38,100 @@ }, "npm": { "total": "Total", - "enabled": "Enabled", - "disabled": "Disabled" + "enabled": "Aktiveret", + "disabled": "Deaktiveret" }, "coinmarketcap": { - "30days": "30 Days", - "1day": "1 Day", - "configure": "Configure one or more crypto currencies to track", - "7days": "7 Days", - "1hour": "1 Hour" + "30days": "30 Dage", + "1day": "1 Dag", + "configure": "Konfigurer en eller flere crypto valutaer til tracking", + "7days": "7 Dage", + "1hour": "1 time" }, "strelaysrv": { - "numActiveSessions": "Sessions", - "dataRelayed": "Relayed", - "numConnections": "Connections", + "numActiveSessions": "Sessioner", + "dataRelayed": "Videresendt", + "numConnections": "Forbindelser", "transferRate": "Rate" }, "mastodon": { - "domain_count": "Domains", - "status_count": "Posts", - "user_count": "Users" + "domain_count": "Domæner", + "status_count": "Indlæg", + "user_count": "Brugere" }, "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "users": "Brugere", + "loginsLast24H": "Login (24 timer)", + "failedLoginsLast24H": "Mislykkede logins (24 timer)" }, "glances": { "cpu": "CPU", - "mem": "MEM", - "wait": "Please wait" + "mem": "RAM", + "wait": "Vent venligst" }, "wmo": { - "1-day": "Mainly Sunny", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "75-night": "Heavy Snow", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail", - "0-day": "Sunny", - "0-night": "Clear", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "45-night": "Foggy", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "66-day": "Freezing Rain", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "77-day": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "77-night": "Snow Grains", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail" + "1-day": "Hovedsageligt solrigt", + "48-day": "Tåget", + "48-night": "Tåget", + "51-day": "Let støvregn", + "51-night": "Let støvregn", + "66-night": "Frysende regn", + "67-day": "Frysende regn", + "67-night": "Frysende regn", + "71-day": "Let Sne", + "75-night": "Kraftig Sne", + "86-day": "Snebyger", + "86-night": "Snebyger", + "95-day": "Tordenvejr", + "99-day": "Tordenvejr med hagl", + "99-night": "Tordenvejr med hagl", + "0-day": "Solrig", + "0-night": "Klart", + "1-night": "Hovedsageligt klart", + "2-day": "Delvist skyet", + "2-night": "Delvist skyet", + "3-day": "Skyet", + "3-night": "Skyet", + "45-day": "Tåget", + "65-day": "Kraftig regn", + "65-night": "Kraftig regn", + "45-night": "Tåget", + "53-day": "Støvregn", + "53-night": "Støvregn", + "55-day": "Kraftig støvregn", + "55-night": "Kraftig støvregn", + "56-day": "Let frysende støvregn", + "56-night": "Let frysende støvregn", + "57-day": "Frysende støvregn", + "57-night": "Frysende støvregn", + "61-day": "Let Regn", + "61-night": "Let Regn", + "63-day": "Regn", + "63-night": "Regn", + "66-day": "Frysende regn", + "71-night": "Let Sne", + "73-day": "Sne", + "73-night": "Sne", + "75-day": "Kraftig Sne", + "77-day": "Snekorn", + "80-day": "Lette byger", + "80-night": "Lette byger", + "81-day": "Byger", + "77-night": "Snekorn", + "81-night": "Byger", + "82-day": "Kraftige Byger", + "82-night": "Kraftige Byger", + "85-day": "Snebyger", + "85-night": "Snebyger", + "95-night": "Tordenvejr", + "96-day": "Tordenvejr med hagl", + "96-night": "Tordenvejr med hagl" }, "homebridge": { "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "updates": "Opdateringer", + "update_available": "Opdateringer tilgængelige", + "up_to_date": "Opdateret", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}" }, @@ -162,13 +162,13 @@ "days": "Dage", "wan": "WAN", "lan": "LAN", - "wlan": "WLAN", + "wlan": "Wifi", "devices": "Enheder", "lan_devices": "LAN Enheder", "wlan_devices": "WLAN Enheder", "lan_users": "LAN Brugere", "wlan_users": "WLAN Brugere", - "up": "UP", + "up": "Oppe", "down": "NED", "wait": "Vent venligst" }, @@ -247,72 +247,72 @@ "queries": "Forespørgsler" }, "portainer": { - "running": "Running", - "stopped": "Stopped", + "running": "Kørende", + "stopped": "Stoppede", "total": "Total" }, "traefik": { - "routers": "Routers", + "routers": "Routere", "services": "Services", "middleware": "Middleware" }, "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" + "apps": "Applikationer", + "clients": "Klienter", + "messages": "Beskeder" }, "prowlarr": { - "enableIndexers": "Indexers", + "enableIndexers": "Indeksører", "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", + "numberOfQueries": "Forespørgsler", "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "numberOfFailQueries": "Fejl forespørgsler" }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "Konfigureret", + "errored": "Fejlede" }, "proxmox": { - "mem": "MEM", + "mem": "RAM", "cpu": "CPU", "lxc": "LXC", "vms": "VMs" }, "quicklaunch": { - "bookmark": "Bookmark", + "bookmark": "Bogmærker", "service": "Service" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Scannet", + "containers_updated": "Opdateret", + "containers_failed": "Fejlet" }, "autobrr": { - "indexers": "Indexers", - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters" + "indexers": "Indeksører", + "approvedPushes": "Godkendte", + "rejectedPushes": "Afviste", + "filters": "Filtre" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Kø", + "videos": "Videoer", + "channels": "Kanaler", + "playlists": "Afspilningslister" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts", + "load": "Systembelastning", + "uptime": "Oppetid", + "alerts": "Advarsler", "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Ingen Aktive Streams", + "please_wait": "Vent venligst" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", + "speed": "Hastighed", + "active": "Aktive", + "queue": "Kø", "total": "Total" } } From 5f0cac020ceb2f59b42324662ca67902980bb398 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Tue, 15 Nov 2022 13:03:50 +0000 Subject: [PATCH 102/133] Translated using Weblate (Spanish) Currently translated at 100.0% (231 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index f85d4b6cc..b78fd9564 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -82,7 +82,7 @@ "traefik": { "routers": "Enrutadores", "services": "Servicios", - "middleware": "Middleware" + "middleware": "Software intermedio" }, "npm": { "enabled": "Activado", From 686a12b2c7c8e6673e645a33c2a50806caa92ac1 Mon Sep 17 00:00:00 2001 From: Alessio Bonforti Date: Fri, 18 Nov 2022 15:41:07 +0000 Subject: [PATCH 103/133] Translated using Weblate (Italian) Currently translated at 99.1% (229 of 231 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/ --- public/locales/it/common.json | 106 +++++++++++++++++----------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 5a57382f1..bde8491b7 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -123,11 +123,11 @@ "messages": "Messaggi" }, "prowlarr": { - "enableIndexers": "Indexers", + "enableIndexers": "Indicizzatori", "numberOfGrabs": "Grabs", "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "numberOfFailGrabs": "Grabs Falliti", + "numberOfFailQueries": "Queries Fallite" }, "transmission": { "download": "Download", @@ -184,7 +184,7 @@ }, "unifi": { "users": "Utenti", - "uptime": "System Uptime", + "uptime": "Uptime di Sistema", "days": "Giorni", "wan": "WAN", "lan_users": "Utenti LAN", @@ -209,16 +209,16 @@ "wait": "Attendere prego" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Totale Osservato", + "diffsDetected": "Differenze Rilevate" }, "wmo": { - "65-day": "Heavy Rain", + "65-day": "Pioggia Intensa", "2-night": "Parzialmente Nuvoloso", "0-day": "Solleggiato", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", + "0-night": "Pulisci", + "1-day": "Principalmente Soleggiato", + "1-night": "Principalmente Sereno", "2-day": "Parzialmente Nuvoloso", "3-day": "Nuvoloso", "3-night": "Nuvoloso", @@ -232,37 +232,37 @@ "53-night": "Pioggerella", "55-day": "Pioggerella Pesante", "55-night": "Pioggerella Pesante", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", + "56-day": "Leggera Pioggia Gelata", + "56-night": "Leggera Pioggia Gelata", + "57-day": "Pioggerella Gelata", + "57-night": "Pioggerella Gelata", "61-day": "Pioggia Leggera", "61-night": "Pioggia Leggera", "63-day": "Pioggia", "63-night": "Pioggia", - "65-night": "Heavy Rain", + "65-night": "Pioggia Intensa", "66-day": "Grandine", "66-night": "Grandine", "67-day": "Grandine", "67-night": "Grandine", - "71-day": "Light Snow", - "71-night": "Light Snow", + "71-day": "Leggera Nevicata", + "71-night": "Leggera Nevicata", "73-day": "Neve", "73-night": "Neve", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", + "75-day": "Nevicata Intensa", + "75-night": "Nevicata Intensa", + "77-day": "Fiocchi di Neve", + "77-night": "Fiocchi di Neve", + "80-day": "Leggeri Rovesci", + "80-night": "Leggeri Rovesci", + "81-day": "Rovesci", + "81-night": "Rovesci", + "82-day": "Intensi Rovesci", + "82-night": "Intensi Rovesci", + "85-day": "Rovesci di Neve", + "85-night": "Rovesci di Neve", + "86-day": "Rovesci di Neve", + "86-night": "Rovesci di Neve", "95-day": "Temporale", "95-night": "Temporale", "96-day": "Temporale con grandine", @@ -271,48 +271,48 @@ "99-night": "Temporale con grandine" }, "quicklaunch": { - "bookmark": "Bookmark", + "bookmark": "Segnalibro", "service": "Servizio" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "available_update": "Sistema", + "updates": "Aggiornamenti", + "update_available": "Aggiornamento Disponibile", + "up_to_date": "Aggiornato", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Approvato", + "rejectedPushes": "Rifiutato", + "filters": "Filtri", + "indexers": "Indicizzatori" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Scansionato", + "containers_updated": "Aggiornato", + "containers_failed": "Fallito" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", + "downloads": "Coda", + "videos": "Video", + "channels": "Canali", "playlists": "Playlists" }, "truenas": { - "load": "System Load", + "load": "Carico di Sistema", "uptime": "Uptime", "alerts": "Alerts", "time": "{{value, number(style: unit; unitDisplay: long;)}}" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Nessun Sistema Attivo", + "please_wait": "Attendere, Prego" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Velocità", + "active": "Attivo", + "queue": "Coda", + "total": "Totale" } } From a23429d1439df3d7c38f3f25abd21026fa4568d5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 104/133] Translated using Weblate (German) Currently translated at 96.1% (225 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/ --- public/locales/de/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 9135e64f0..f8c59567c 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 13e664ad0573d586e1ceebfe576b14affece9aa3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 105/133] Translated using Weblate (Spanish) Currently translated at 98.7% (231 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/ --- public/locales/es/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/es/common.json b/public/locales/es/common.json index b78fd9564..4e98e30e6 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -314,5 +314,10 @@ "active": "Activo", "queue": "Cola", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From c5cf7fa1a9b3cae4a119b6f0a490bc8a2412b714 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 106/133] Translated using Weblate (French) Currently translated at 98.7% (231 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/ --- public/locales/fr/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index a9d761b94..b9b61611a 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -314,5 +314,10 @@ "active": "Actif", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 049ea23eb993e2f739d0f6970fce58026bc24051 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 107/133] Translated using Weblate (Portuguese) Currently translated at 49.1% (115 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/ --- public/locales/pt/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 8e5d160c0..5f22a5b85 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -325,5 +325,10 @@ "total": "Total", "speed": "Speed", "active": "Active" + }, + "gluetun": { + "region": "Region", + "country": "Country", + "public_ip": "Public IP" } } From de34abc8acb578652aad3b4e94aeb8c43babb30d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 108/133] Translated using Weblate (Russian) Currently translated at 9.8% (23 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/ --- public/locales/ru/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 7d91a34ab..762b3e904 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 992fe49b6df636acd5a6ce382e11f19ad72c3354 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 109/133] Translated using Weblate (Chinese (Simplified)) Currently translated at 70.5% (165 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/ --- public/locales/zh-CN/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index 810b9f108..5459d7c69 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 3fcb6b50a31ef1bec46dba1a964ff47b4aabf46f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 110/133] Translated using Weblate (Italian) Currently translated at 97.8% (229 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/ --- public/locales/it/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/it/common.json b/public/locales/it/common.json index bde8491b7..9478d420d 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -314,5 +314,10 @@ "active": "Attivo", "queue": "Coda", "total": "Totale" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From cede5053a476f269751c38d29aaa2245249648aa Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 111/133] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 33.7% (79 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/ --- public/locales/nb-NO/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json index 85c895f21..0f7680f76 100644 --- a/public/locales/nb-NO/common.json +++ b/public/locales/nb-NO/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From f20d59c6a8c6e1e41fc4d24b58ad955f5c15e23d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 112/133] Translated using Weblate (Vietnamese) Currently translated at 18.8% (44 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/ --- public/locales/vi/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index 299cd1dfa..cf3db360a 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 61c89a0683946bdccd1d7fbe94a00c0226369790 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 113/133] Translated using Weblate (Dutch) Currently translated at 26.9% (63 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/ --- public/locales/nl/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index d51e5430f..ae5cd06e4 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -314,5 +314,10 @@ "active": "Active", "total": "Total", "queue": "Queue" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 40232fc73e6e6d45c6134f68fa2d99bc6f87853b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:01 +0000 Subject: [PATCH 114/133] Translated using Weblate (Chinese (Traditional)) Currently translated at 3.8% (9 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/ --- public/locales/zh-Hant/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index 3b83eef9d..c4673c322 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From bbd06bc7df6ff310910bb0f134dd50314bb8dc50 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 115/133] Translated using Weblate (Catalan) Currently translated at 55.9% (131 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/ --- public/locales/ca/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index c62351f3e..fac4a04c2 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From d9f279d1c0b5b6ea234840fcb54d1cf8211192ef Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 116/133] Translated using Weblate (Polish) Currently translated at 73.9% (173 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/ --- public/locales/pl/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index da520fd77..41495b3e2 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 6767aef3c00007b3db9a8ff1078f263ca8fe31e9 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:57 +0000 Subject: [PATCH 117/133] Translated using Weblate (Swedish) Currently translated at 55.5% (130 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/ --- public/locales/sv/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 5056f0cbf..87f2061f0 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 8a44f7d2150f402ff33736fef661acc5d33866cd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:57 +0000 Subject: [PATCH 118/133] Translated using Weblate (Croatian) Currently translated at 98.7% (231 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/ --- public/locales/hr/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 0bb242965..12c972625 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -314,5 +314,10 @@ "active": "Aktivno", "queue": "Red čekanja", "total": "Ukupno" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 59a0cfac7b2c0560559a6cf56bacfae577a03ce5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 119/133] Translated using Weblate (Hungarian) Currently translated at 46.1% (108 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/ --- public/locales/hu/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 70a737640..f00dc9750 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 9869ba5c269ee3099e10c2adca9c7c3b19294a1b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:57 +0000 Subject: [PATCH 120/133] Translated using Weblate (Hebrew) Currently translated at 43.1% (101 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/ --- public/locales/he/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/he/common.json b/public/locales/he/common.json index 4f83714ad..296bfc4eb 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From d091993410c39d32c0571cc70c332439cd5acafa Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 121/133] Translated using Weblate (Romanian) Currently translated at 58.5% (137 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/ --- public/locales/ro/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index d0bb85b0d..a57ea01b0 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 3b5db74f9b8b3d8152926c7040d1b0329c5da0c7 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 122/133] Translated using Weblate (Portuguese (Brazil)) Currently translated at 50.0% (117 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/ --- public/locales/pt-BR/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index e2651ea8e..a73d6b483 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From f2daf92c6040c8d98bedd5cacd12846e02a95521 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 123/133] Translated using Weblate (Yue) Currently translated at 50.4% (118 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue/ --- public/locales/yue/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index 7c25ef522..7932f9088 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 0903c541f1612d40aa6b861cd996665b10fcb993 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 124/133] Translated using Weblate (Finnish) Currently translated at 52.5% (123 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/ --- public/locales/fi/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index bae6266a9..07b480f02 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 5ec2b1a1b55279d69add39a08c46d7ecbbec49c7 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 125/133] Translated using Weblate (Telugu) Currently translated at 92.7% (217 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/ --- public/locales/te/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/te/common.json b/public/locales/te/common.json index c22aadd94..7ad2daceb 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 1ff56bf19874ff6eb0656969ffc4a500a4af5c38 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 126/133] Translated using Weblate (Bulgarian) Currently translated at 19.6% (46 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/ --- public/locales/bg/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index 2e9a65e24..0365e3292 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From cdc98b831f7ad97bfd8fc4ac5717c30ffb7938dc Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 127/133] Translated using Weblate (Turkish) Currently translated at 98.7% (231 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/ --- public/locales/tr/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index da1039667..f431239de 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -314,5 +314,10 @@ "active": "Geçerli", "queue": "Kuyruk", "total": "Toplam" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 70fa2f58365650755ab448ec121ae7ab2204ed6d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 128/133] Translated using Weblate (Serbian) Currently translated at 3.8% (9 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/ --- public/locales/sr/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index 0805c1abc..8fe0a6e0f 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 48bbd9c095fa9119d54fe1b7924369ce8e46a5e7 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:58 +0000 Subject: [PATCH 129/133] Translated using Weblate (Arabic) Currently translated at 18.8% (44 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/ --- public/locales/ar/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index d6c91938a..6d565287e 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 27966678a3e85da47ebe32a7f46321805462d8c7 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 130/133] Translated using Weblate (Czech) Currently translated at 96.1% (225 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/ --- public/locales/cs/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 20966b0c1..7e9da1b5a 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From 68b86d95271a9496153941c5983fed5647e0589d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:59 +0000 Subject: [PATCH 131/133] Translated using Weblate (Danish) Currently translated at 84.6% (198 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/ --- public/locales/da/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 02e14a18a..99db4725d 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -314,5 +314,10 @@ "active": "Aktive", "queue": "Kø", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From a58f1cb09310257376bc7324a79c5d0cec0e647d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:04:00 +0000 Subject: [PATCH 132/133] Translated using Weblate (Malay) Currently translated at 98.7% (231 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/ --- public/locales/ms/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index bc930db8c..761d85e91 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -314,5 +314,10 @@ "active": "Aktif", "queue": "Baris Gilir", "total": "Jumlah" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } } From e24b534843047282b513c6b754430efc633cd298 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Fri, 18 Nov 2022 17:03:57 +0000 Subject: [PATCH 133/133] Translated using Weblate (Hindi) Currently translated at 3.8% (9 of 234 strings) Translation: Homepage/Homepage Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/ --- public/locales/hi/common.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 5e7657974..d3075aba7 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -314,5 +314,10 @@ "active": "Active", "queue": "Queue", "total": "Total" + }, + "gluetun": { + "public_ip": "Public IP", + "region": "Region", + "country": "Country" } }