Merge branch 'main' into add-whatsupdocker-widget

This commit is contained in:
RichyHBM 2023-03-27 18:32:36 +00:00
commit 3fb635be75
56 changed files with 2611 additions and 550 deletions

View File

@ -37,8 +37,7 @@
- **Secure!** Every API request to backend services goes through a proxy server, so your API keys are never exposed to the frontend client. - **Secure!** Every API request to backend services goes through a proxy server, so your API keys are never exposed to the frontend client.
- Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6 - Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6
- Supports all Raspberry Pi's, most SBCs & Apple Silicon - Supports all Raspberry Pi's, most SBCs & Apple Silicon
- Full i18n support with automatic language detection - Full i18n support with translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Malay, 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/) - Want to help translate? [Join the Weblate project](https://hosted.weblate.org/engage/homepage/)
- Service & Web Bookmarks - Service & Web Bookmarks
- Docker Integration - Docker Integration

View File

@ -107,13 +107,24 @@
"cpu": "المعالج", "cpu": "المعالج",
"offline": "غير متصل", "offline": "غير متصل",
"error": "خطأ", "error": "خطأ",
"unknown": "مجهول" "unknown": "مجهول",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "يعمل الآن", "playing": "يعمل الآن",
"transcoding": "التحويل", "transcoding": "التحويل",
"bitrate": "معدل البت", "bitrate": "معدل البت",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"songs": "Songs",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "Total Observed",
@ -293,7 +304,10 @@
"update_available": "تحديث متاح", "update_available": "تحديث متاح",
"up_to_date": "حتى الآن", "up_to_date": "حتى الآن",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -59,13 +59,24 @@
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"partial": "Partial",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Възпроизвежда", "playing": "Възпроизвежда",
"transcoding": "Конвертира", "transcoding": "Конвертира",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Няма активни потоци" "no_active": "Няма активни потоци",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Възпроизвежда", "playing": "Възпроизвежда",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"rejectedPushes": "Rejected", "rejectedPushes": "Rejected",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -48,13 +48,24 @@
"cpu": "Processador", "cpu": "Processador",
"offline": "Fora de línia", "offline": "Fora de línia",
"error": "Error", "error": "Error",
"unknown": "Desconegut" "unknown": "Desconegut",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Reproduint", "playing": "Reproduint",
"transcoding": "Transcodificant", "transcoding": "Transcodificant",
"bitrate": "Taxa de bits", "bitrate": "Taxa de bits",
"no_active": "Sense reproduccions actives" "no_active": "Sense reproduccions actives",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Reproduint", "playing": "Reproduint",
@ -293,7 +304,10 @@
"update_available": "Actualització disponible", "update_available": "Actualització disponible",
"up_to_date": "Actualitzat", "up_to_date": "Actualitzat",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovat", "approvedPushes": "Aprovat",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -14,11 +14,11 @@
"widget": { "widget": {
"missing_type": "Chybí typ widgetu: {{type}}", "missing_type": "Chybí typ widgetu: {{type}}",
"api_error": "Chyba API", "api_error": "Chyba API",
"status": "Status", "status": "Stav",
"information": "Informace", "information": "Informace",
"url": "URL", "url": "URL",
"raw_error": "Raw Error", "raw_error": "Nevyřešená chyba",
"response_data": "Data odpovědi" "response_data": "Data odezvy"
}, },
"weather": { "weather": {
"current": "Aktuální poloha", "current": "Aktuální poloha",
@ -35,7 +35,7 @@
"free": "Volné", "free": "Volné",
"used": "Využité", "used": "Využité",
"load": "Vytížení", "load": "Vytížení",
"mem": "MEM" "mem": "RAM"
}, },
"unifi": { "unifi": {
"users": "Uživatelé", "users": "Uživatelé",
@ -61,13 +61,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Chyba", "error": "Chyba",
"unknown": "Neznámý" "unknown": "Neznámý",
"running": "Běží",
"starting": "Startuje",
"unhealthy": "Nezdravý",
"not_found": "Nenalezen",
"exited": "Ukončen",
"partial": "Částečný",
"healthy": "Zdravý"
}, },
"emby": { "emby": {
"playing": "Přehrává", "playing": "Přehrává",
"transcoding": "Transkódování", "transcoding": "Transkódování",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Žádný aktivní stream" "no_active": "Žádný aktivní stream",
"movies": "Filmy",
"series": "Seriály",
"episodes": "Epizody",
"songs": "Písničky"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Celkem zjištěno", "totalObserved": "Celkem zjištěno",
@ -102,33 +113,33 @@
"transmission": { "transmission": {
"download": "Stahování", "download": "Stahování",
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leecher", "leech": "Leecherů",
"seed": "Seeder" "seed": "Seedů"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Stahování", "download": "Stahování",
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leecher", "leech": "Leechované",
"seed": "Seeder" "seed": "Seedované"
}, },
"sonarr": { "sonarr": {
"wanted": "Hledaný", "wanted": "Hledané",
"queued": "Ve frontě", "queued": "Ve frontě",
"series": "Seriály" "series": "Seriály"
}, },
"radarr": { "radarr": {
"wanted": "Hledaný", "wanted": "Hledané",
"missing": "Chybějící", "missing": "Chybějící",
"queued": "Ve frontě", "queued": "Ve frontě",
"movies": "Filmy" "movies": "Filmy"
}, },
"lidarr": { "lidarr": {
"wanted": "Hledaný", "wanted": "Hledané",
"queued": "Ve frontě", "queued": "Ve frontě",
"albums": "Alba" "albums": "Alba"
}, },
"readarr": { "readarr": {
"wanted": "Hledaný", "wanted": "Hledané",
"queued": "Ve frontě", "queued": "Ve frontě",
"books": "Knihy" "books": "Knihy"
}, },
@ -139,23 +150,23 @@
"ombi": { "ombi": {
"pending": "Čeká", "pending": "Čeká",
"approved": "Schváleno", "approved": "Schváleno",
"available": "Dostupný" "available": "Dostupné"
}, },
"jellyseerr": { "jellyseerr": {
"pending": "Čeká", "pending": "Čeká",
"approved": "Schváleno", "approved": "Schváleno",
"available": "Dostupný" "available": "Dostupné"
}, },
"overseerr": { "overseerr": {
"pending": "Čeká", "pending": "Čeká",
"approved": "Schváleno", "approved": "Schváleno",
"available": "Dostupný", "available": "Dostupné",
"processing": "Zpracováváno" "processing": "Zpracovávání"
}, },
"pihole": { "pihole": {
"queries": "Dotazy", "queries": "Dotazy",
"blocked": "Blokováno", "blocked": "Blokováno",
"gravity": "Gravitace" "gravity": "Gravity"
}, },
"adguard": { "adguard": {
"queries": "Dotazy", "queries": "Dotazy",
@ -294,18 +305,21 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Záložka", "bookmark": "Záložka",
"service": "Služba", "service": "Služba",
"search": "Search", "search": "Hledat",
"custom": "Custom", "custom": "Vlastní",
"visit": "Visit", "visit": "Navštivte",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
"update_available": "Dostupná aktualizace", "update_available": "Dostupná",
"up_to_date": "Aktuální", "up_to_date": "Žádné",
"available_update": "Systém", "available_update": "Systém",
"updates": "Aktualizace", "updates": "Aktualizace",
"child_bridges": "Podřadné můstky", "child_bridges": "Podřadné můstky",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Zapnutý",
"pending": "Čeká se",
"down": "Vypnutý"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Naskenováno", "containers_scanned": "Naskenováno",
@ -319,22 +333,22 @@
"indexers": "Indexery" "indexers": "Indexery"
}, },
"navidrome": { "navidrome": {
"nothing_streaming": "Žádné aktivní streams", "nothing_streaming": "Žádné aktivní streamy",
"please_wait": "Prosím vyčkejte" "please_wait": "Čekejte prosím"
}, },
"pyload": { "pyload": {
"speed": "Speed", "speed": "Rychlost",
"active": "Active", "active": "Aktivní",
"queue": "Queue", "queue": "Fronta",
"total": "Total" "total": "Celkem"
}, },
"gluetun": { "gluetun": {
"public_ip": "Public IP", "public_ip": "Veřejná IP",
"region": "Region", "region": "Oblast",
"country": "Country" "country": "Stát"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Kanály",
"hd": "HD" "hd": "HD"
}, },
"ping": { "ping": {
@ -342,13 +356,13 @@
"ping": "Odezva" "ping": "Odezva"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Přijato",
"failed": "Failed", "failed": "Neúspěšné",
"unknown": "Unknown" "unknown": "Neznámé"
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Inbox", "inbox": "Doručená pošta",
"total": "Total" "total": "Celkem"
}, },
"deluge": { "deluge": {
"upload": "Nahrávání", "upload": "Nahrávání",
@ -369,12 +383,12 @@
"saved": "Uložené" "saved": "Uložené"
}, },
"miniflux": { "miniflux": {
"read": "Read", "read": "Přečteno",
"unread": "Unread" "unread": "Nepřečteno"
}, },
"nextdns": { "nextdns": {
"wait": "Please Wait", "wait": "Počkejte prosím",
"no_devices": "No Device Data Received" "no_devices": "Žádná přijatá data zařízení"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
@ -394,142 +408,148 @@
"seed": "Seed" "seed": "Seed"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU Load", "cpuLoad": "Zatížení procesoru",
"memoryUsed": "Memory Used", "memoryUsed": "Použitá paměť",
"uptime": "Uptime", "uptime": "Doba provozu",
"numberOfLeases": "Leases" "numberOfLeases": "Pronájmy"
}, },
"xteve": { "xteve": {
"streams_all": "All Streams", "streams_all": "Všechny proudy",
"streams_active": "Active Streams", "streams_active": "Aktivní proudy",
"streams_xepg": "XEPG Channels" "streams_xepg": "Kanály XEPG"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU Load", "cpu": "Zatížení procesoru",
"memory": "Active Memory", "memory": "Aktivní paměť",
"wanUpload": "WAN Upload", "wanUpload": "Nahrávání WAN",
"wanDownload": "WAN Download" "wanDownload": "WAN Stažení"
}, },
"moonraker": { "moonraker": {
"print_progress": "Progress", "print_progress": "Progres",
"printer_state": "Printer State", "printer_state": "Stav tiskárny",
"print_status": "Print Status", "print_status": "Stav tisku",
"layers": "Layers" "layers": "Vrstvy"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Hledané",
"queued": "Queued", "queued": "Fronta",
"series": "Series" "series": "Série"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Stav",
"temp_tool": "Tool temp", "temp_tool": "Teplota nástroje",
"temp_bed": "Bed temp", "temp_bed": "Teplota postele",
"job_completion": "Completion" "job_completion": "Dokončení"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "Původní IP",
"status": "Status" "status": "Stav"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "Paměť"
}, },
"immich": { "immich": {
"users": "Users", "users": "Uživatelé",
"photos": "Photos", "photos": "Fotografie",
"videos": "Videos", "videos": "Videa",
"storage": "Storage" "storage": "Úložiště"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Stránky Up",
"down": "Sites Down", "down": "Stránky Down",
"uptime": "Uptime", "uptime": "Doba provozu",
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Knihovny",
"series": "Series", "series": "Série",
"books": "Books" "books": "Knihy"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Série",
"issues": "Issues", "issues": "Problémy",
"wanted": "Wanted" "wanted": "Hledá se"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Alba",
"photos": "Photos", "photos": "Fotografie",
"videos": "Videos", "videos": "Videa",
"people": "People" "people": "Lidé"
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "Dni",
"uptime": "Uptime", "uptime": "Doba provozu",
"volumeAvailable": "Available" "volumeAvailable": "K dispozici"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Fronta",
"processing": "Processing", "processing": "Zpracování",
"processed": "Processed", "processed": "Zpracováno",
"time": "Time" "time": "Čas"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Přístrojové panely",
"datasources": "Data Sources", "datasources": "Zdroje dat",
"totalalerts": "Total Alerts", "totalalerts": "Celkový počet upozornění",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Spuštěné výstrahy"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "CPU zatížení",
"memoryusage": "Memory Usage", "memoryusage": "Využití paměti",
"freespace": "Free Space", "freespace": "Volný prostor",
"activeusers": "Active Users" "activeusers": "Aktivní uživatelé"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Stav",
"size": "Size", "size": "Velikost",
"lastrun": "Last Run", "lastrun": "Poslední spuštění",
"nextrun": "Next Run", "nextrun": "Další spuštění",
"failed": "Failed" "failed": "Neúspěšné"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Aktivní workers",
"total_workers": "Total Workers", "total_workers": "Workers celkem",
"records_total": "Queue Length" "records_total": "Délka fronty"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Nové",
"up": "Online", "up": "Online",
"grace": "In Grace Period", "grace": "V období odkladu",
"down": "Offline", "down": "Offline",
"paused": "Paused", "paused": "Pozastaveno",
"status": "Status", "status": "Stav",
"last_ping": "Last Ping", "last_ping": "Poslední ping",
"never": "No pings yet" "never": "Zatím žádné pingy"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Servery",
"nodes": "Nodes" "nodes": "Uzly"
}, },
"prometheus": { "prometheus": {
"targets_down": "Targets Down", "targets_down": "Cíle vypnuté",
"targets_total": "Total Targets", "targets_total": "Cíle celkem",
"targets_up": "Targets Up" "targets_up": "Cíle zapnuté"
}, },
"minecraft": { "minecraft": {
"up": "Online", "up": "Online",
"down": "Offline", "down": "Offline",
"players": "Players", "players": "Hráči",
"version": "Version", "version": "Verze",
"status": "Status" "status": "Stav"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Dnes",
"gross_percent_1y": "One year", "gross_percent_1y": "Jeden rok",
"gross_percent_max": "All time" "gross_percent_max": "Za celou dobu"
},
"audiobookshelf": {
"podcasts": "Podcasty",
"books": "Knihy",
"podcastsDuration": "Trvání",
"booksDuration": "Trvání"
} }
} }

View File

@ -134,7 +134,10 @@
"update_available": "Opdateringer tilgængelige", "update_available": "Opdateringer tilgængelige",
"up_to_date": "Opdateret", "up_to_date": "Opdateret",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"widget": { "widget": {
"missing_type": "Manglende Widget Type: {{type}}", "missing_type": "Manglende Widget Type: {{type}}",
@ -186,13 +189,24 @@
"mem": "RAM", "mem": "RAM",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Afspiller", "playing": "Afspiller",
"transcoding": "Transcoder", "transcoding": "Transcoder",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Ingen Aktive Streams" "no_active": "Ingen Aktive Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observeret", "totalObserved": "Total Observeret",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"booksDuration": "Duration",
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration"
} }
} }

View File

@ -17,7 +17,7 @@
"used": "Gebraucht", "used": "Gebraucht",
"load": "Last", "load": "Last",
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM" "mem": "RAM"
}, },
"docker": { "docker": {
"rx": "Rx", "rx": "Rx",
@ -25,14 +25,25 @@
"mem": "Mem", "mem": "Mem",
"cpu": "Prozessor", "cpu": "Prozessor",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Fehler",
"unknown": "Unknown" "unknown": "Unbekannt",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Spielen", "playing": "Spielen",
"transcoding": "Transcodierung", "transcoding": "Transcodierung",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Keine aktiven Streams" "no_active": "Keine aktiven Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Spielen", "playing": "Spielen",
@ -106,7 +117,7 @@
"pending": "Ausstehend", "pending": "Ausstehend",
"approved": "Genehmigt", "approved": "Genehmigt",
"available": "Verfügbar", "available": "Verfügbar",
"processing": "Processing" "processing": "Wird verarbeitet"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Geschwindigkeit", "rate": "Geschwindigkeit",
@ -205,7 +216,7 @@
"devices": "Geräte", "devices": "Geräte",
"lan_devices": "LAN-Geräte", "lan_devices": "LAN-Geräte",
"wlan_devices": "WLAN Geräte", "wlan_devices": "WLAN Geräte",
"empty_data": "Subsystem status unknown" "empty_data": "Subsystem status unbekannt"
}, },
"plex": { "plex": {
"streams": "Aktive Streams", "streams": "Aktive Streams",
@ -282,9 +293,9 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Lesezeichen", "bookmark": "Lesezeichen",
"service": "Dienst", "service": "Dienst",
"search": "Search", "search": "Suchen",
"custom": "Custom", "custom": "Benutzerdefiniert",
"visit": "Visit", "visit": "Besuchen",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
@ -293,7 +304,10 @@
"update_available": "Aktualisierung verfügbar", "update_available": "Aktualisierung verfügbar",
"up_to_date": "Aktuell", "up_to_date": "Aktuell",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Genehmigt", "approvedPushes": "Genehmigt",
@ -319,36 +333,36 @@
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"navidrome": { "navidrome": {
"nothing_streaming": "No Active Streams", "nothing_streaming": "Keine Aktiven Übertragungen",
"please_wait": "Please Wait" "please_wait": "Bitte warten"
}, },
"pyload": { "pyload": {
"speed": "Speed", "speed": "Geschwindigkeit",
"active": "Active", "active": "Aktiv",
"queue": "Queue", "queue": "Warteschlange",
"total": "Total" "total": "Gesamt"
}, },
"gluetun": { "gluetun": {
"public_ip": "Public IP", "public_ip": "Öffentliche IP",
"region": "Region", "region": "Region",
"country": "Country" "country": "Land"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Kanäle",
"hd": "HD" "hd": "HD"
}, },
"ping": { "ping": {
"ping": "Ping", "ping": "Ping",
"error": "Error" "error": "Fehler"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Bestanden",
"failed": "Failed", "failed": "Fehlgeschlagen",
"unknown": "Unknown" "unknown": "Unbekannt"
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Inbox", "inbox": "Eingang",
"total": "Total" "total": "Gesamt"
}, },
"deluge": { "deluge": {
"download": "Download", "download": "Download",
@ -363,29 +377,29 @@
"seed": "Seed" "seed": "Seed"
}, },
"tdarr": { "tdarr": {
"queue": "Queue", "queue": "Warteschlange",
"processed": "Processed", "processed": "Verarbeitet",
"errored": "Errored", "errored": "Fehlgeschlagen",
"saved": "Saved" "saved": "Gespeichert"
}, },
"miniflux": { "miniflux": {
"unread": "Unread", "unread": "Ungelesen",
"read": "Read" "read": "Lesen"
}, },
"nextdns": { "nextdns": {
"wait": "Please Wait", "wait": "Bitte Warten",
"no_devices": "No Device Data Received" "no_devices": "Keine Daten empfangen"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}" "bibitrate": "{{value, rate(bits: true; binary: true)}}"
}, },
"omada": { "omada": {
"connectedAp": "Connected APs", "connectedAp": "Verbundene APs",
"activeUser": "Active devices", "activeUser": "Aktive Geräte",
"alerts": "Alerts", "alerts": "Meldungen",
"connectedGateway": "Connected gateways", "connectedGateway": "Verbundene Gateways",
"connectedSwitches": "Connected switches" "connectedSwitches": "Verbundene Switches"
}, },
"downloadstation": { "downloadstation": {
"download": "Download", "download": "Download",
@ -394,107 +408,107 @@
"seed": "Seed" "seed": "Seed"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU Load", "cpuLoad": "CPU Auslastung",
"memoryUsed": "Memory Used", "memoryUsed": "RAM Verbrauch",
"uptime": "Uptime", "uptime": "Laufzeit",
"numberOfLeases": "Leases" "numberOfLeases": "Leases"
}, },
"xteve": { "xteve": {
"streams_all": "All Streams", "streams_all": "Keine Übertragungen",
"streams_active": "Active Streams", "streams_active": "Aktive Streams",
"streams_xepg": "XEPG Channels" "streams_xepg": "XEPG Kanäle"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU Load", "cpu": "CPU Auslastung",
"memory": "Active Memory", "memory": "Aktiver RAM",
"wanUpload": "WAN Upload", "wanUpload": "WAN Upload",
"wanDownload": "WAN Download" "wanDownload": "WAN Download"
}, },
"moonraker": { "moonraker": {
"printer_state": "Printer State", "printer_state": "Drucker Status",
"print_status": "Print Status", "print_status": "Druck Status",
"print_progress": "Progress", "print_progress": "Fortschritt",
"layers": "Layers" "layers": "Schichten"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Gesucht",
"queued": "Queued", "queued": "Wartend",
"series": "Series" "series": "Serie"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Status",
"temp_tool": "Tool temp", "temp_tool": "Düsen Temp",
"temp_bed": "Bed temp", "temp_bed": "Bett Temp",
"job_completion": "Completion" "job_completion": "Fortschritt"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "Ursprüngliche IP",
"status": "Status" "status": "Status"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"cpu_usage": "CPU", "cpu_usage": "CPU",
"datastore_usage": "Datastore", "datastore_usage": "Datenspeicher",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Fehlgeschlagene Prozesse 24h",
"memory_usage": "Memory" "memory_usage": "RAM"
}, },
"immich": { "immich": {
"users": "Users", "users": "Benutzer",
"photos": "Photos", "photos": "Fotos",
"videos": "Videos", "videos": "Videos",
"storage": "Storage" "storage": "Speicher"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Seiten verfügbar",
"down": "Sites Down", "down": "Seiten nicht verfügbar",
"uptime": "Uptime", "uptime": "Laufzeit",
"incident": "Incident", "incident": "Vorfall",
"m": "m" "m": "m"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Bibliotheken",
"series": "Series", "series": "Serie",
"books": "Books" "books": "Bücher"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Serie",
"issues": "Issues", "issues": "Probleme",
"wanted": "Wanted" "wanted": "Gesucht"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Alben",
"photos": "Photos", "photos": "Fotos",
"videos": "Videos", "videos": "Videos",
"people": "People" "people": "Personen"
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "Tage",
"uptime": "Uptime", "uptime": "Laufzeit",
"volumeAvailable": "Available" "volumeAvailable": "Verfügbar"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Warteschlange",
"processing": "Processing", "processing": "Wird verarbeitet",
"processed": "Processed", "processed": "Verarbeitet",
"time": "Time" "time": "Zeit"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Dashboards",
"datasources": "Data Sources", "datasources": "Datenquellen",
"totalalerts": "Total Alerts", "totalalerts": "Gesamte Meldungen",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Ausgelöste Alarme"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "CPU Last",
"memoryusage": "Memory Usage", "memoryusage": "RAM Verbrauch",
"freespace": "Free Space", "freespace": "Freier Speicher",
"activeusers": "Active Users" "activeusers": "Aktive Nutzer"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
"size": "Size", "size": "Größe",
"lastrun": "Last Run", "lastrun": "Letzter Durchlauf",
"nextrun": "Next Run", "nextrun": "Nächster Durchlauf",
"failed": "Failed" "failed": "Fehlgeschlagen"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Active Workers",
@ -503,16 +517,16 @@
}, },
"healthchecks": { "healthchecks": {
"grace": "In Grace Period", "grace": "In Grace Period",
"new": "New", "new": "Neu",
"up": "Online", "up": "Online",
"down": "Offline", "down": "Offline",
"paused": "Paused", "paused": "Pausiert",
"status": "Status", "status": "Status",
"last_ping": "Last Ping", "last_ping": "Letzter Ping",
"never": "No pings yet" "never": "Noch keine Pings"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Server",
"nodes": "Nodes" "nodes": "Nodes"
}, },
"prometheus": { "prometheus": {
@ -521,7 +535,7 @@
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Spieler",
"version": "Version", "version": "Version",
"status": "Status", "status": "Status",
"up": "Online", "up": "Online",
@ -529,7 +543,13 @@
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_max": "All time", "gross_percent_max": "All time",
"gross_percent_today": "Today", "gross_percent_today": "Heute",
"gross_percent_1y": "One year" "gross_percent_1y": "Ein Jahr"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -60,9 +60,16 @@
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"running": "Running",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"healthy": "Healthy",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial"
}, },
"ping": { "ping": {
"error": "Error", "error": "Error",
@ -72,7 +79,11 @@
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"flood": { "flood": {
"download": "Download", "download": "Download",
@ -361,7 +372,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "New",
@ -541,6 +555,12 @@
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
}, },
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
},
"whatsupdocker": { "whatsupdocker": {
"monitoring": "Monitoring", "monitoring": "Monitoring",
"updates": "Updates" "updates": "Updates"

View File

@ -49,7 +49,14 @@
"cpu": "Ĉefprocesoro", "cpu": "Ĉefprocesoro",
"offline": "Offline", "offline": "Offline",
"error": "Eraro", "error": "Eraro",
"unknown": "Nekonata" "unknown": "Nekonata",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"ping": { "ping": {
"error": "Eraro", "error": "Eraro",
@ -59,7 +66,11 @@
"playing": "Ludante", "playing": "Ludante",
"transcoding": "Transcoding", "transcoding": "Transcoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "Total Observed",
@ -307,7 +318,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "Procesador", "cpu": "Procesador",
"offline": "Desconectado", "offline": "Desconectado",
"error": "Fallo", "error": "Fallo",
"unknown": "Desconocido" "unknown": "Desconocido",
"running": "Ejecutando",
"starting": "Comenzando",
"unhealthy": "Insalubre",
"not_found": "No encontrado",
"exited": "Salida",
"partial": "Parcial",
"healthy": "Saludable"
}, },
"emby": { "emby": {
"playing": "Reproduciendo", "playing": "Reproduciendo",
"transcoding": "Transcodificando", "transcoding": "Transcodificando",
"bitrate": "Tasa de bits", "bitrate": "Tasa de bits",
"no_active": "Sin transmisiones activas" "no_active": "Sin transmisiones activas",
"movies": "Películas",
"series": "Serie",
"episodes": "Episodios",
"songs": "Canciones"
}, },
"tautulli": { "tautulli": {
"playing": "Reproduciendo", "playing": "Reproduciendo",
@ -293,7 +304,10 @@
"update_available": "Actualización disponible", "update_available": "Actualización disponible",
"up_to_date": "Actualizado", "up_to_date": "Actualizado",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Arriba",
"pending": "Pendiente",
"down": "Abajo"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprobado", "approvedPushes": "Aprobado",
@ -531,5 +545,11 @@
"gross_percent_today": "Hoy", "gross_percent_today": "Hoy",
"gross_percent_1y": "Un año", "gross_percent_1y": "Un año",
"gross_percent_max": "Todo el tiempo" "gross_percent_max": "Todo el tiempo"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Libros",
"podcastsDuration": "Duración",
"booksDuration": "Duración"
} }
} }

View File

@ -32,13 +32,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Toistaa", "playing": "Toistaa",
"transcoding": "Transkoodaa", "transcoding": "Transkoodaa",
"bitrate": "Bittinopeus", "bitrate": "Bittinopeus",
"no_active": "Ei aktiivisia striimejä" "no_active": "Ei aktiivisia striimejä",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Toistaa", "playing": "Toistaa",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "Cpu", "cpu": "Cpu",
"offline": "Hors ligne", "offline": "Hors ligne",
"error": "Erreur", "error": "Erreur",
"unknown": "Inconnu" "unknown": "Inconnu",
"running": "Démarré",
"starting": "Démarrage",
"unhealthy": "Dysfonctionnement",
"not_found": "Inconnu",
"exited": "Arrêté",
"partial": "Partiel",
"healthy": "Fonctionnel"
}, },
"emby": { "emby": {
"playing": "En lecture", "playing": "En lecture",
"transcoding": "Transcodage", "transcoding": "Transcodage",
"bitrate": "Débit", "bitrate": "Débit",
"no_active": "Aucun flux actif" "no_active": "Aucun flux actif",
"movies": "Films",
"series": "Séries TV",
"episodes": "Épisodes",
"songs": "Musique"
}, },
"tautulli": { "tautulli": {
"playing": "En lecture", "playing": "En lecture",
@ -47,12 +58,12 @@
}, },
"sonarr": { "sonarr": {
"wanted": "Demande", "wanted": "Demande",
"queued": "En attente", "queued": "Attente",
"series": "Séries" "series": "Séries"
}, },
"radarr": { "radarr": {
"wanted": "Demande", "wanted": "Demande",
"queued": "En attente", "queued": "Attente",
"movies": "Films", "movies": "Films",
"missing": "Manquant" "missing": "Manquant"
}, },
@ -103,10 +114,10 @@
"wait": "Veuillez patienter" "wait": "Veuillez patienter"
}, },
"overseerr": { "overseerr": {
"pending": "En attente", "pending": "Attente",
"approved": "Demande", "approved": "Demande",
"available": "Disponible", "available": "Disponible",
"processing": "En traitement" "processing": "Traitement"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Débit", "rate": "Débit",
@ -293,7 +304,10 @@
"update_available": "Mise à jour disponible", "update_available": "Mise à jour disponible",
"up_to_date": "À jour", "up_to_date": "À jour",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approuvé", "approvedPushes": "Approuvé",
@ -531,5 +545,11 @@
"gross_percent_today": "Aujourd'hui", "gross_percent_today": "Aujourd'hui",
"gross_percent_1y": "Un an", "gross_percent_1y": "Un an",
"gross_percent_max": "Depuis le début" "gross_percent_max": "Depuis le début"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Livres",
"podcastsDuration": "Durée",
"booksDuration": "Durée"
} }
} }

View File

@ -32,13 +32,24 @@
"cpu": "מעבד", "cpu": "מעבד",
"offline": "כבוי", "offline": "כבוי",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "מנגן", "playing": "מנגן",
"transcoding": "מקודד", "transcoding": "מקודד",
"bitrate": "סיביות", "bitrate": "סיביות",
"no_active": "אין הזרמות פעילות" "no_active": "אין הזרמות פעילות",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "מנגן", "playing": "מנגן",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -83,13 +83,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "Total Observed",
@ -297,7 +308,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -73,13 +73,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Nepovezan", "offline": "Nepovezan",
"error": "Greška", "error": "Greška",
"unknown": "Nepoznato" "unknown": "Nepoznato",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Reprodukcija", "playing": "Reprodukcija",
"transcoding": "Prekodiranje", "transcoding": "Prekodiranje",
"bitrate": "Stopa bitova", "bitrate": "Stopa bitova",
"no_active": "Nema aktivnih prijenosa" "no_active": "Nema aktivnih prijenosa",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Reprodukcija", "playing": "Reprodukcija",
@ -293,7 +304,10 @@
"update_available": "Dostupna je nova verzija", "update_available": "Dostupna je nova verzija",
"up_to_date": "Aktualno", "up_to_date": "Aktualno",
"child_bridges": "Podređeni mosotvi", "child_bridges": "Podređeni mosotvi",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"rejectedPushes": "Odbijeno", "rejectedPushes": "Odbijeno",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -14,7 +14,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"unhealthy": "Unhealthy",
"running": "Running",
"starting": "Starting",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"lidarr": { "lidarr": {
"albums": "Albumok", "albums": "Albumok",
@ -52,7 +59,11 @@
"playing": "Lejátszás", "playing": "Lejátszás",
"transcoding": "Átkódolás", "transcoding": "Átkódolás",
"bitrate": "Bitráta", "bitrate": "Bitráta",
"no_active": "Nincs aktív lejátszás" "no_active": "Nincs aktív lejátszás",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Lejátszás folyamatban", "playing": "Lejátszás folyamatban",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -6,13 +6,24 @@
"offline": "Offline", "offline": "Offline",
"rx": "RX", "rx": "RX",
"error": "Errore", "error": "Errore",
"unknown": "Sconosciuto" "unknown": "Sconosciuto",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "In riproduzione", "playing": "In riproduzione",
"transcoding": "Transcodifica", "transcoding": "Transcodifica",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Nessuno Stream Attivo" "no_active": "Nessuno Stream Attivo",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "In riproduzione", "playing": "In riproduzione",
@ -293,7 +304,10 @@
"update_available": "Aggiornamento Disponibile", "update_available": "Aggiornamento Disponibile",
"up_to_date": "Aggiornato", "up_to_date": "Aggiornato",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approvato", "approvedPushes": "Approvato",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -84,7 +84,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"ping": { "ping": {
"error": "Error", "error": "Error",
@ -94,7 +101,11 @@
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"flood": { "flood": {
"download": "Download", "download": "Download",
@ -351,7 +362,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_max": "All time", "gross_percent_max": "All time",
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year" "gross_percent_1y": "One year"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -0,0 +1,555 @@
{
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"rutorrent": {
"download": "다운로드",
"active": "활성",
"upload": "업로드"
},
"authentik": {
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
},
"pterodactyl": {
"nodes": "Nodes",
"servers": "Servers"
},
"widget": {
"missing_type": "Missing Widget Type: {{type}}",
"api_error": "API 오류",
"information": "정보",
"status": "상태",
"url": "URL",
"raw_error": "Raw 오류",
"response_data": "응답 데이터"
},
"weather": {
"current": "현재 위치",
"allow": "클릭하여 허용",
"updating": "갱신 중",
"wait": "잠시만 기다리세요"
},
"search": {
"placeholder": "검색…"
},
"resources": {
"cpu": "CPU",
"mem": "MEM",
"total": "총합",
"free": "남음",
"used": "사용",
"load": "부하"
},
"unifi": {
"users": "사용자",
"uptime": "시스템 업타임",
"days": "일",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "장치",
"lan_devices": "LAN 장치",
"wlan_devices": "WLAN 장치",
"lan_users": "LAN 사용자",
"wlan_users": "WLAN 사용자",
"up": "UP",
"down": "DOWN",
"wait": "잠시만 기다리세요",
"empty_data": "서브시스템 상태 알 수 없음"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"running": "가동 중",
"offline": "중지",
"error": "오류",
"unknown": "알 수 없음",
"healthy": "좋음",
"starting": "시작 중",
"unhealthy": "이상",
"not_found": "찾을 수 없음",
"exited": "종료됨",
"partial": "부분적"
},
"ping": {
"error": "오류",
"ping": "Ping"
},
"emby": {
"playing": "재생 중",
"transcoding": "트랜스코딩",
"bitrate": "비트레이트",
"no_active": "활성 스트림 없음",
"movies": "영화",
"series": "시리즈",
"episodes": "에피소드",
"songs": "음악"
},
"flood": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "변경 감지됨"
},
"tautulli": {
"playing": "재생 중",
"transcoding": "트랜스코딩",
"bitrate": "비트레이트",
"no_active": "활성 스트림 없음"
},
"omada": {
"connectedAp": "연결된 AP",
"activeUser": "활성 장치",
"alerts": "경고",
"connectedGateway": "연결된 게이트웨이",
"connectedSwitches": "연결된 스위치"
},
"nzbget": {
"rate": "비율",
"remaining": "남음",
"downloaded": "다운로드됨"
},
"plex": {
"streams": "활성 스트림",
"movies": "영화",
"tv": "TV 쇼"
},
"sabnzbd": {
"rate": "비율",
"queue": "대기열",
"timeleft": "남은 시간"
},
"transmission": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
},
"qbittorrent": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
},
"deluge": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
},
"downloadstation": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
},
"sonarr": {
"wanted": "요청",
"queued": "대기 중",
"series": "시리즈"
},
"radarr": {
"wanted": "요청",
"missing": "빠짐",
"queued": "대기 중",
"movies": "영화"
},
"lidarr": {
"wanted": "요청",
"queued": "대기 중",
"albums": "앨범"
},
"readarr": {
"wanted": "요청",
"queued": "대기 중",
"books": "책"
},
"bazarr": {
"missingEpisodes": "빠진 에피소드",
"missingMovies": "빠진 영화"
},
"ombi": {
"pending": "대기 중",
"approved": "승인됨",
"available": "이용 가능"
},
"jellyseerr": {
"pending": "대기 중",
"approved": "승인됨",
"available": "사용 가능"
},
"overseerr": {
"pending": "대기 중",
"processing": "처리 중",
"approved": "승인됨",
"available": "사용 가능"
},
"pihole": {
"queries": "쿼리",
"blocked": "차단됨",
"gravity": "Gravity"
},
"adguard": {
"queries": "쿼리",
"blocked": "차단됨",
"filtered": "필터링됨",
"latency": "지연"
},
"speedtest": {
"upload": "업로드",
"download": "다운로드",
"ping": "Ping"
},
"portainer": {
"running": "가동 중",
"stopped": "중지",
"total": "총합"
},
"tdarr": {
"queue": "대기열",
"processed": "처리됨",
"errored": "오류",
"saved": "저장됨"
},
"traefik": {
"routers": "라우터",
"services": "서비스",
"middleware": "미들웨어"
},
"navidrome": {
"nothing_streaming": "활성 스트림 없음",
"please_wait": "잠시만 기다리세요"
},
"npm": {
"enabled": "활성",
"disabled": "비활성",
"total": "총합"
},
"coinmarketcap": {
"configure": "한 개 이상의 가상화폐를 설정하여 추적",
"1hour": "1시간",
"1day": "1일",
"7days": "7일",
"30days": "30일"
},
"gotify": {
"apps": "어플리케이션",
"clients": "클라이언트",
"messages": "메시지"
},
"prowlarr": {
"enableIndexers": "인덱서",
"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"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"proxmox": {
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
},
"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}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
"new": "New",
"up": "Online",
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
"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;)}}"
},
"pyload": {
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Total"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
},
"moonraker": {
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress",
"layers": "Layers"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
}
}

View File

@ -53,7 +53,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Bezsaistē", "offline": "Bezsaistē",
"error": "Kļūda", "error": "Kļūda",
"unknown": "Nezināms" "unknown": "Nezināms",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"ping": { "ping": {
"error": "Kļūda", "error": "Kļūda",
@ -63,7 +70,11 @@
"playing": "Atskaņo", "playing": "Atskaņo",
"transcoding": "Pārkodē", "transcoding": "Pārkodē",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Nav aktīvu straumju" "no_active": "Nav aktīvu straumju",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"flood": { "flood": {
"download": "Lejupielāde", "download": "Lejupielāde",
@ -345,7 +356,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -158,7 +158,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Luar talian", "offline": "Luar talian",
"error": "Ralat", "error": "Ralat",
"unknown": "Tidak Diketahui" "unknown": "Tidak Diketahui",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Jumlah Diperhatikan", "totalObserved": "Jumlah Diperhatikan",
@ -168,7 +175,11 @@
"playing": "Sedang dimainkan", "playing": "Sedang dimainkan",
"transcoding": "Transkoding", "transcoding": "Transkoding",
"bitrate": "Kadar bit", "bitrate": "Kadar bit",
"no_active": "Tiada Strim Aktif" "no_active": "Tiada Strim Aktif",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Sedang Dimainkan", "playing": "Sedang Dimainkan",
@ -293,7 +304,10 @@
"updates": "Kemaskini", "updates": "Kemaskini",
"update_available": "Kemaskini Tersedia", "update_available": "Kemaskini Tersedia",
"up_to_date": "Terkemaskini", "up_to_date": "Terkemaskini",
"child_bridges": "Jambatan Anak" "child_bridges": "Jambatan Anak",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Terimbas", "containers_scanned": "Terimbas",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "Prosessor", "cpu": "Prosessor",
"offline": "Frakoblet", "offline": "Frakoblet",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"exited": "Exited",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Spiller", "playing": "Spiller",
"transcoding": "Transkoding", "transcoding": "Transkoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Ingen aktive strømmer" "no_active": "Ingen aktive strømmer",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Spiller", "playing": "Spiller",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -23,7 +23,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Fout", "error": "Fout",
"unknown": "Onbekend" "unknown": "Onbekend",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "Upload",
@ -48,7 +55,11 @@
"playing": "Afspelen", "playing": "Afspelen",
"transcoding": "Transcodering", "transcoding": "Transcodering",
"bitrate": "Bitsnelheid", "bitrate": "Bitsnelheid",
"no_active": "Geen Actieve Steams" "no_active": "Geen Actieve Steams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Afspelen", "playing": "Afspelen",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -20,7 +20,11 @@
"no_active": "Brak aktywnych strumieni", "no_active": "Brak aktywnych strumieni",
"playing": "Odtwarzanie", "playing": "Odtwarzanie",
"transcoding": "Transkodowanie", "transcoding": "Transkodowanie",
"bitrate": "Bitrate" "bitrate": "Bitrate",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Odtwarzanie", "playing": "Odtwarzanie",
@ -66,7 +70,14 @@
"cpu": "Procesor", "cpu": "Procesor",
"offline": "Offline", "offline": "Offline",
"error": "Błąd", "error": "Błąd",
"unknown": "Nieznany" "unknown": "Nieznany",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"nzbget": { "nzbget": {
"rate": "Szybkość", "rate": "Szybkość",
@ -293,7 +304,10 @@
"update_available": "Dostępna aktualizacja", "update_available": "Dostępna aktualizacja",
"up_to_date": "Aktualny", "up_to_date": "Aktualny",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Zaakceptowane", "approvedPushes": "Zaakceptowane",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -60,13 +60,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Desligado", "offline": "Desligado",
"error": "Erro", "error": "Erro",
"unknown": "Desconhecido" "unknown": "Desconhecido",
"running": "Executando",
"starting": "Iniciando",
"unhealthy": "Não-saudável",
"not_found": "Não Encontrado",
"exited": "Encerrado",
"partial": "Parcial",
"healthy": "Saudável"
}, },
"emby": { "emby": {
"playing": "Reproduzindo", "playing": "Reproduzindo",
"transcoding": "Transcodificando", "transcoding": "Transcodificando",
"bitrate": "Taxa de bits", "bitrate": "Taxa de bits",
"no_active": "Sem transmissões ativas" "no_active": "Sem transmissões ativas",
"movies": "Filmes",
"series": "Séries",
"episodes": "Episódios",
"songs": "Musicas"
}, },
"tautulli": { "tautulli": {
"playing": "Reproduzindo", "playing": "Reproduzindo",
@ -135,7 +146,7 @@
"pihole": { "pihole": {
"queries": "Consultas", "queries": "Consultas",
"blocked": "Bloqueados", "blocked": "Bloqueados",
"gravity": "Gravity" "gravity": "Gravidade"
}, },
"adguard": { "adguard": {
"queries": "Consultas", "queries": "Consultas",
@ -284,7 +295,7 @@
"service": "Serviço", "service": "Serviço",
"search": "Busca", "search": "Busca",
"custom": "Personalizado", "custom": "Personalizado",
"visit": "Visit", "visit": "Visitar",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
@ -293,7 +304,10 @@
"update_available": "Atualização Disponível", "update_available": "Atualização Disponível",
"up_to_date": "Atualizado", "up_to_date": "Atualizado",
"child_bridges": "Pontes Filhas", "child_bridges": "Pontes Filhas",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pendente",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovado", "approvedPushes": "Aprovado",
@ -497,8 +511,8 @@
"failed": "Falha" "failed": "Falha"
}, },
"unmanic": { "unmanic": {
"active_workers": "Workers Ativos", "active_workers": "Trabalhadores Ativos",
"total_workers": "Total Workers", "total_workers": "Total Trabalhadores",
"records_total": "Comprimento da Fila" "records_total": "Comprimento da Fila"
}, },
"healthchecks": { "healthchecks": {
@ -516,20 +530,26 @@
"nodes": "Nós" "nodes": "Nós"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Alvo ativo",
"targets_down": "Targets Down", "targets_down": "Alvo inativo",
"targets_total": "Total Targets" "targets_total": "Alvos totais"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Reprodutores",
"version": "Version", "version": "Versão",
"status": "Status", "status": "Status",
"up": "Online", "up": "Conectado",
"down": "Offline" "down": "Desconectado"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Hoje",
"gross_percent_1y": "One year", "gross_percent_1y": "Um ano",
"gross_percent_max": "All time" "gross_percent_max": "Todo periodo"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Livros",
"podcastsDuration": "Duração",
"booksDuration": "Duração"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Desligado", "offline": "Desligado",
"error": "Erro", "error": "Erro",
"unknown": "Desconhecido" "unknown": "Desconhecido",
"partial": "Parcial",
"running": "A correr",
"starting": "A iniciar",
"unhealthy": "Não-saudável",
"not_found": "Não Encontrado",
"exited": "Encerrado",
"healthy": "Saudável"
}, },
"emby": { "emby": {
"playing": "A reproduzir", "playing": "A reproduzir",
"transcoding": "Transcodificação", "transcoding": "Transcodificação",
"bitrate": "Taxa de bits", "bitrate": "Taxa de bits",
"no_active": "Sem streams ativas" "no_active": "Sem streams ativas",
"movies": "Filmes",
"series": "Séries",
"episodes": "Episódios",
"songs": "Canções"
}, },
"tautulli": { "tautulli": {
"playing": "Reproduzindo", "playing": "Reproduzindo",
@ -198,7 +209,7 @@
"users": "Utilizadores" "users": "Utilizadores"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "Memória",
"cpu": "CPU", "cpu": "CPU",
"lxc": "LXC", "lxc": "LXC",
"vms": "VMs" "vms": "VMs"
@ -218,7 +229,7 @@
"devices": "Dispositivos", "devices": "Dispositivos",
"lan_devices": "Dispositivos LAN", "lan_devices": "Dispositivos LAN",
"wlan_devices": "Dispositivos WLAN", "wlan_devices": "Dispositivos WLAN",
"empty_data": "Subsystem status unknown" "empty_data": "Status de Subsistema Desconhecido"
}, },
"plex": { "plex": {
"streams": "Streams Ativas", "streams": "Streams Ativas",
@ -254,38 +265,38 @@
"53-night": "Chuvisco", "53-night": "Chuvisco",
"55-day": "Aguaceiro Forte", "55-day": "Aguaceiro Forte",
"55-night": "Aguaceiro Forte", "55-night": "Aguaceiro Forte",
"56-day": "Light Freezing Drizzle", "56-day": "Leve Garoa Congelante",
"56-night": "Light Freezing Drizzle", "56-night": "Leve Garoa Congelante",
"57-day": "Freezing Drizzle", "57-day": "Garoa Congelante",
"57-night": "Freezing Drizzle", "57-night": "Garoa Congelante",
"66-day": "Freezing Rain", "66-day": "Chuva Congelante",
"61-day": "Chuva fraca", "61-day": "Chuva fraca",
"61-night": "Chuva fraca", "61-night": "Chuva fraca",
"63-day": "Chuva", "63-day": "Chuva",
"63-night": "Chuva", "63-night": "Chuva",
"65-day": "Chuva forte", "65-day": "Chuva forte",
"66-night": "Freezing Rain", "66-night": "Chuva Congelante",
"65-night": "Chuva forte", "65-night": "Chuva forte",
"67-day": "Freezing Rain", "67-day": "Chuva Congelante",
"67-night": "Freezing Rain", "67-night": "Chuva Congelante",
"71-day": "Neve fraca", "71-day": "Neve fraca",
"71-night": "Neve fraca", "71-night": "Neve fraca",
"73-day": "Neve", "73-day": "Neve",
"73-night": "Neve", "73-night": "Neve",
"75-day": "Neve forte", "75-day": "Neve forte",
"75-night": "Neve forte", "75-night": "Neve forte",
"77-day": "Snow Grains", "77-day": "Grãos de Neve",
"77-night": "Snow Grains", "77-night": "Grãos de Neve",
"80-day": "Neve fraca", "80-day": "Neve fraca",
"80-night": "Chuviscos ligeiros", "80-night": "Chuviscos ligeiros",
"81-day": "Chuviscos", "81-day": "Chuviscos",
"81-night": "Chuviscos", "81-night": "Chuviscos",
"82-day": "Chuviscos fortes", "82-day": "Chuviscos fortes",
"82-night": "Chuviscos fortes", "82-night": "Chuviscos fortes",
"85-day": "Snow Showers", "85-day": "Precipitação de Neve",
"85-night": "Snow Showers", "85-night": "Precipitação de Neve",
"86-day": "Snow Showers", "86-day": "Precipitação de Neve",
"86-night": "Snow Showers", "86-night": "Precipitação de Neve",
"95-day": "Trovoada", "95-day": "Trovoada",
"95-night": "Trovoada", "95-night": "Trovoada",
"96-day": "Trovoada com granizo", "96-day": "Trovoada com granizo",
@ -295,9 +306,9 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Marcador", "bookmark": "Marcador",
"service": "Serviço", "service": "Serviço",
"search": "Search", "search": "Busca",
"custom": "Custom", "custom": "Personalizado",
"visit": "Visit", "visit": "Visitar",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
@ -305,8 +316,11 @@
"updates": "Atualizações", "updates": "Atualizações",
"update_available": "Atualização disponível", "update_available": "Atualização disponível",
"up_to_date": "Atualizado", "up_to_date": "Atualizado",
"child_bridges": "Child Bridges", "child_bridges": "Pontes Filhas",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pendente",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovado", "approvedPushes": "Aprovado",
@ -406,7 +420,7 @@
"cpuLoad": "Carga do CPU", "cpuLoad": "Carga do CPU",
"memoryUsed": "Memória Utilizada", "memoryUsed": "Memória Utilizada",
"uptime": "Ativo", "uptime": "Ativo",
"numberOfLeases": "Leases" "numberOfLeases": "Concessões"
}, },
"xteve": { "xteve": {
"streams_all": "Todos os Streams", "streams_all": "Todos os Streams",
@ -420,125 +434,131 @@
"wanDownload": "WAN Descarga" "wanDownload": "WAN Descarga"
}, },
"moonraker": { "moonraker": {
"printer_state": "Printer State", "printer_state": "Estado da Impressora",
"print_status": "Print Status", "print_status": "Estado da Impressora",
"print_progress": "Progress", "print_progress": "Progresso",
"layers": "Layers" "layers": "Camadas"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Desejado",
"queued": "Queued", "queued": "Na fila",
"series": "Series" "series": "Séries"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Estado",
"temp_tool": "Tool temp", "temp_tool": "Temp. Ferramenta",
"temp_bed": "Bed temp", "temp_bed": "Temp. Cama",
"job_completion": "Completion" "job_completion": "Conclusão"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "IP Origem",
"status": "Status" "status": "Estado"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Armaz. de Dados",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Tarefas Falhas 24h",
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "Memória"
}, },
"immich": { "immich": {
"users": "Users", "users": "Utilizadores",
"photos": "Photos", "photos": "Fotos",
"videos": "Videos", "videos": "Vídeos",
"storage": "Storage" "storage": "Armazenamento"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Sites no Ar",
"down": "Sites Down", "down": "Sites Fora do Ar",
"uptime": "Uptime", "uptime": "Tempo Ativo",
"incident": "Incident", "incident": "Incidente",
"m": "m" "m": "m"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Bibliotecas",
"series": "Series", "series": "Séries",
"books": "Books" "books": "Livros"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Séries",
"issues": "Issues", "issues": "Problemas",
"wanted": "Wanted" "wanted": "Desejado"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Álbuns",
"photos": "Photos", "photos": "Fotos",
"videos": "Videos", "videos": "Vídeos",
"people": "People" "people": "Pessoa"
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "Dias",
"uptime": "Uptime", "uptime": "Tempo Ativo",
"volumeAvailable": "Available" "volumeAvailable": "Disponível"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Fila",
"processing": "Processing", "processing": "Processando",
"processed": "Processed", "processed": "Processado",
"time": "Time" "time": "Hora"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Painéis",
"datasources": "Data Sources", "datasources": "Origem de Dados",
"totalalerts": "Total Alerts", "totalalerts": "Total Alertas",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alertas Disparados"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "Carga de CPU",
"memoryusage": "Memory Usage", "memoryusage": "Memória Utilizada",
"freespace": "Free Space", "freespace": "Espaço Livre",
"activeusers": "Active Users" "activeusers": "Utilizadores Ativos"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Estado",
"size": "Size", "size": "Tamanho",
"lastrun": "Last Run", "lastrun": "Ultima Execução",
"nextrun": "Next Run", "nextrun": "Próxima Execução",
"failed": "Failed" "failed": "Falha"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Workers Ativos",
"total_workers": "Total Workers", "total_workers": "Total Workers",
"records_total": "Queue Length" "records_total": "Comprimento da Fila"
}, },
"healthchecks": { "healthchecks": {
"never": "No pings yet", "never": "Nenhum ping ainda",
"new": "New", "new": "Novo",
"up": "Online", "up": "Online",
"grace": "In Grace Period", "grace": "Em Período Gratuito",
"down": "Offline", "down": "Offline",
"paused": "Paused", "paused": "Pausado",
"status": "Status", "status": "Estado",
"last_ping": "Last Ping" "last_ping": "Ultimo Ping"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Servidores",
"nodes": "Nodes" "nodes": "Nós"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Targets Up",
"targets_down": "Targets Down", "targets_down": "Targets Down",
"targets_total": "Total Targets" "targets_total": "Total de Alvos"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Reprodutores",
"version": "Version", "version": "Versão",
"status": "Status", "status": "Estado",
"up": "Online", "up": "Online",
"down": "Offline" "down": "Offline"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Hoje",
"gross_percent_1y": "One year", "gross_percent_1y": "Um ano",
"gross_percent_max": "All time" "gross_percent_max": "Todo o tempo"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Livros",
"podcastsDuration": "Duração",
"booksDuration": "Duração"
} }
} }

View File

@ -14,7 +14,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"jellyseerr": { "jellyseerr": {
"approved": "Aprobate", "approved": "Aprobate",
@ -65,10 +72,10 @@
"missing_type": "Lipsește Tipul de Widget: {{type}}", "missing_type": "Lipsește Tipul de Widget: {{type}}",
"api_error": "Eroare API", "api_error": "Eroare API",
"status": "Status", "status": "Status",
"information": "Information", "information": "Informație",
"url": "URL", "url": "URL",
"raw_error": "Raw Error", "raw_error": "Eroare Raw",
"response_data": "Response Data" "response_data": "Date de raspuns"
}, },
"search": { "search": {
"placeholder": "Caută…" "placeholder": "Caută…"
@ -88,7 +95,11 @@
"playing": "Activ", "playing": "Activ",
"transcoding": "Transcodare", "transcoding": "Transcodare",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Niciun stream activ" "no_active": "Niciun stream activ",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rată", "rate": "Rată",
@ -199,13 +210,13 @@
"wlan_users": "Utilizatori WLAN", "wlan_users": "Utilizatori WLAN",
"up": "Pornit", "up": "Pornit",
"down": "Oprit", "down": "Oprit",
"wait": "Va rugam asteptati", "wait": "Vă rugăm așteptați",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Devices", "devices": "Dispozitive",
"lan_devices": "LAN Devices", "lan_devices": "Dispozitive LAN",
"wlan_devices": "WLAN Devices", "wlan_devices": "Dispozitive WLAN",
"empty_data": "Subsystem status unknown" "empty_data": "Starea subsistemului este necunoscut"
}, },
"plex": { "plex": {
"streams": "Fluxuri active", "streams": "Fluxuri active",
@ -293,7 +304,10 @@
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"available_update": "System", "available_update": "System",
"updates": "Updates", "updates": "Updates",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -377,7 +391,7 @@
"no_devices": "No Device Data Received" "no_devices": "No Device Data Received"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}" "bibitrate": "{{value, rate(bits: true; binary: true)}}"
}, },
"omada": { "omada": {
@ -494,12 +508,12 @@
"size": "Size", "size": "Size",
"lastrun": "Last Run", "lastrun": "Last Run",
"nextrun": "Next Run", "nextrun": "Next Run",
"failed": "Failed" "failed": "Eșuat"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Muncitori activi",
"total_workers": "Total Workers", "total_workers": "Muncitori totali",
"records_total": "Queue Length" "records_total": "Lungimea cozii"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "New",
@ -512,8 +526,8 @@
"never": "No pings yet" "never": "No pings yet"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Servere",
"nodes": "Nodes" "nodes": "Noduri"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Targets Up",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "Процессор", "cpu": "Процессор",
"offline": "Не в сети", "offline": "Не в сети",
"error": "Ошибка", "error": "Ошибка",
"unknown": "Неизвестный" "unknown": "Неизвестный",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Воспроизведение", "playing": "Воспроизведение",
"transcoding": "Транскодирование", "transcoding": "Транскодирование",
"bitrate": "Битрейт", "bitrate": "Битрейт",
"no_active": "Нет активных потоков" "no_active": "Нет активных потоков",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Воспроизведение", "playing": "Воспроизведение",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"child_bridges": "Child Bridges" "child_bridges": "Child Bridges",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -0,0 +1,555 @@
{
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"offline": "Offline",
"error": "Error",
"unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
},
"rutorrent": {
"active": "Active",
"upload": "Upload",
"download": "Download"
},
"tdarr": {
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"dataRelayed": "Relayed",
"transferRate": "Rate"
},
"proxmox": {
"vms": "VMs",
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC"
},
"wmo": {
"0-night": "Clear",
"1-day": "Mainly Sunny",
"1-night": "Mainly Clear",
"2-day": "Partly Cloudy",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Thunderstorm",
"95-night": "Thunderstorm",
"0-day": "Sunny",
"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",
"96-day": "Thunderstorm With Hail",
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
},
"xteve": {
"streams_all": "All Streams",
"streams_xepg": "XEPG Channels",
"streams_active": "Active Streams"
},
"moonraker": {
"layers": "Layers",
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress"
},
"immich": {
"storage": "Storage",
"users": "Users",
"videos": "Videos",
"photos": "Photos"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"widget": {
"api_error": "API Error",
"missing_type": "Missing Widget Type: {{type}}",
"information": "Information",
"status": "Status",
"url": "URL",
"raw_error": "Raw Error",
"response_data": "Response Data"
},
"weather": {
"current": "Current Location",
"allow": "Click to allow",
"updating": "Updating",
"wait": "Please wait"
},
"search": {
"placeholder": "Search…"
},
"resources": {
"cpu": "CPU",
"mem": "MEM",
"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",
"empty_data": "Subsystem status unknown"
},
"ping": {
"error": "Error",
"ping": "Ping"
},
"emby": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"flood": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
},
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
"rate": "Rate",
"remaining": "Remaining",
"downloaded": "Downloaded"
},
"plex": {
"streams": "Active Streams",
"movies": "Movies",
"tv": "TV Shows"
},
"sabnzbd": {
"rate": "Rate",
"queue": "Queue",
"timeleft": "Time Left"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"deluge": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"downloadstation": {
"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"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
},
"ombi": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"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"
},
"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"
},
"mastodon": {
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"authentik": {
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
},
"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}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
"new": "New",
"up": "Online",
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
"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;)}}"
},
"pyload": {
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Total"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
},
"nextcloud": {
"freespace": "Free Space",
"activeusers": "Active Users",
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
},
"unmanic": {
"total_workers": "Total Workers",
"records_total": "Queue Length",
"active_workers": "Active Workers"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
}
}

View File

@ -49,13 +49,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Playing", "playing": "Playing",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -29,7 +29,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "Offline",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"exited": "Exited",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"partial": "Partial",
"healthy": "Healthy"
}, },
"search": { "search": {
"placeholder": "Sök…" "placeholder": "Sök…"
@ -38,7 +45,11 @@
"playing": "Spelar", "playing": "Spelar",
"transcoding": "Omkodning", "transcoding": "Omkodning",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Inga aktiva strömmar" "no_active": "Inga aktiva strömmar",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Spelar", "playing": "Spelar",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -49,13 +49,24 @@
"cpu": "సీపియూ", "cpu": "సీపియూ",
"offline": "ఆఫ్‌లైన్", "offline": "ఆఫ్‌లైన్",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "ఆడుతున్నారు", "playing": "ఆడుతున్నారు",
"transcoding": "ట్రాన్స్‌కోడింగ్", "transcoding": "ట్రాన్స్‌కోడింగ్",
"bitrate": "బిట్రేట్", "bitrate": "బిట్రేట్",
"no_active": "యాక్టివ్ స్ట్రీమ్‌లు లేవు" "no_active": "యాక్టివ్ స్ట్రీమ్‌లు లేవు",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "ఆడుతున్నారు", "playing": "ఆడుతున్నారు",
@ -293,7 +304,10 @@
"update_available": "అందుబాటులో నవీకరణ", "update_available": "అందుబాటులో నవీకరణ",
"up_to_date": "తాజాగా", "up_to_date": "తాజాగా",
"child_bridges": "పిల్ల వంతెనలు", "child_bridges": "పిల్ల వంతెనలు",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"rejectedPushes": "తిరస్కరించారు", "rejectedPushes": "తిరస్కరించారు",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -42,7 +42,14 @@
"cpu": "ซีพียู", "cpu": "ซีพียู",
"offline": "ออฟไลน์", "offline": "ออฟไลน์",
"error": "ข้อผิดพลาด", "error": "ข้อผิดพลาด",
"unknown": "ไม่ทราบ" "unknown": "ไม่ทราบ",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
@ -99,7 +106,11 @@
"playing": "กำลังเล่น", "playing": "กำลังเล่น",
"transcoding": "การแปลงรหัส", "transcoding": "การแปลงรหัส",
"bitrate": "อัตราบิต", "bitrate": "อัตราบิต",
"no_active": "ไม่มีสตรีมที่ใช้งานอยู่" "no_active": "ไม่มีสตรีมที่ใช้งานอยู่",
"movies": "Movies",
"series": "Series",
"songs": "Songs",
"episodes": "Episodes"
}, },
"deluge": { "deluge": {
"download": "ดาวน์โหลด", "download": "ดาวน์โหลด",
@ -365,7 +376,10 @@
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"available_update": "System" "available_update": "System",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Scanned",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -49,13 +49,24 @@
"cpu": "İşlemci", "cpu": "İşlemci",
"offline": "Çevrimdışı", "offline": "Çevrimdışı",
"error": "Hata", "error": "Hata",
"unknown": "Bilinmiyor" "unknown": "Bilinmiyor",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Oynatılıyor", "playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor", "transcoding": "Dönüştürülüyor",
"bitrate": "Bit Oranı", "bitrate": "Bit Oranı",
"no_active": "Aktif akış yok" "no_active": "Aktif akış yok",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Oynatılıyor", "playing": "Oynatılıyor",
@ -293,7 +304,10 @@
"update_available": "Güncelleme Kullanılabilir", "update_available": "Güncelleme Kullanılabilir",
"up_to_date": "Güncel", "up_to_date": "Güncel",
"child_bridges": "Alt Köprüler", "child_bridges": "Alt Köprüler",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Onaylandı", "approvedPushes": "Onaylandı",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -154,7 +154,14 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Офлайн", "offline": "Офлайн",
"error": "Помилка", "error": "Помилка",
"unknown": "Невідомий" "unknown": "Невідомий",
"starting": "Запуск",
"unhealthy": "Нездоровий",
"not_found": "Не знайдено",
"exited": "Вийшов",
"partial": "Частковий",
"running": "Запущено",
"healthy": "Здоров'я"
}, },
"ping": { "ping": {
"error": "Помилка", "error": "Помилка",
@ -164,7 +171,11 @@
"playing": "Відтворення", "playing": "Відтворення",
"transcoding": "Перекодування", "transcoding": "Перекодування",
"bitrate": "Бітрейт", "bitrate": "Бітрейт",
"no_active": "Немає активних потоків" "no_active": "Немає активних потоків",
"movies": "Фільми",
"series": "Серії",
"episodes": "Епізоди",
"songs": "Пісні"
}, },
"flood": { "flood": {
"download": "Завантаження", "download": "Завантаження",
@ -355,7 +366,10 @@
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"update_available": "Доступне оновлення", "update_available": "Доступне оновлення",
"up_to_date": "Актуально", "up_to_date": "Актуально",
"child_bridges": "Дитячі мости" "child_bridges": "Дитячі мости",
"up": "Вгору",
"pending": "В очікуванні",
"down": "Вниз"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Відскановано", "containers_scanned": "Відскановано",
@ -531,5 +545,11 @@
"gross_percent_today": "Сьогодні", "gross_percent_today": "Сьогодні",
"gross_percent_1y": "Один рік", "gross_percent_1y": "Один рік",
"gross_percent_max": "Весь час" "gross_percent_max": "Весь час"
},
"audiobookshelf": {
"podcasts": "Подкасти",
"books": "Книжки",
"podcastsDuration": "Тривалість",
"booksDuration": "Тривалість"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "CPU", "cpu": "CPU",
"offline": "Ngoại tuyến", "offline": "Ngoại tuyến",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Đang chơi", "playing": "Đang chơi",
"transcoding": "Chuyển định dạng", "transcoding": "Chuyển định dạng",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "Đang chơi", "playing": "Đang chơi",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"down": "Down",
"pending": "Pending"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -3,7 +3,11 @@
"transcoding": "轉碼緊", "transcoding": "轉碼緊",
"bitrate": "比特率", "bitrate": "比特率",
"playing": "播放緊", "playing": "播放緊",
"no_active": "無任何活動" "no_active": "無任何活動",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "播放緊", "playing": "播放緊",
@ -50,7 +54,14 @@
"cpu": "處理器", "cpu": "處理器",
"offline": "離線", "offline": "離線",
"error": "Error", "error": "Error",
"unknown": "Unknown" "unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"nzbget": { "nzbget": {
"rate": "速度", "rate": "速度",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -26,13 +26,24 @@
"cpu": "处理器", "cpu": "处理器",
"offline": "离线", "offline": "离线",
"error": "错误", "error": "错误",
"unknown": "未知" "unknown": "未知",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"running": "Running",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "播放中", "playing": "播放中",
"transcoding": "转码", "transcoding": "转码",
"bitrate": "比特率", "bitrate": "比特率",
"no_active": "暂无播放" "no_active": "暂无播放",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "播放中", "playing": "播放中",
@ -293,7 +304,10 @@
"update_available": "Update Available", "update_available": "Update Available",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Approved",
@ -484,10 +498,10 @@
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alerts Triggered"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "处理器负载",
"memoryusage": "Memory Usage", "memoryusage": "内存占用",
"freespace": "Free Space", "freespace": "剩余空间",
"activeusers": "Active Users" "activeusers": "活跃用户"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -21,13 +21,24 @@
"mem": "記憶體", "mem": "記憶體",
"cpu": "處理器", "cpu": "處理器",
"error": "錯誤", "error": "錯誤",
"unknown": "未知的" "unknown": "未知的",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "正在播放", "playing": "正在播放",
"transcoding": "轉碼", "transcoding": "轉碼",
"bitrate": "位元率", "bitrate": "位元率",
"no_active": "無播放活動" "no_active": "無播放活動",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
}, },
"tautulli": { "tautulli": {
"playing": "正在播放", "playing": "正在播放",
@ -293,7 +304,10 @@
"update_available": "有可用的更新", "update_available": "有可用的更新",
"up_to_date": "已更新至最新", "up_to_date": "已更新至最新",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}" "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "已核准", "approvedPushes": "已核准",
@ -531,5 +545,11 @@
"gross_percent_today": "Today", "gross_percent_today": "Today",
"gross_percent_1y": "One year", "gross_percent_1y": "One year",
"gross_percent_max": "All time" "gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
} }
} }

View File

@ -6,7 +6,7 @@ export default function KubernetesStatus({ service }) {
const { data, error } = useSWR(`/api/kubernetes/status/${service.namespace}/${service.app}?${podSelectorString}`); const { data, error } = useSWR(`/api/kubernetes/status/${service.namespace}/${service.app}?${podSelectorString}`);
if (error) { if (error) {
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.status}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={t("docker.error")}>
<div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div> <div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div>
</div> </div>
} }

View File

@ -7,42 +7,55 @@ export default function Status({ service }) {
const { data, error } = useSWR(`/api/docker/status/${service.container}/${service.server || ""}`); const { data, error } = useSWR(`/api/docker/status/${service.container}/${service.server || ""}`);
if (error) { if (error) {
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.status}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={t("docker.error")}>
<div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div> <div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div>
</div> </div>
} }
if (data && data.status?.includes("running")) { if (data) {
let statusLabel = "";
if (data.status?.includes("running")) {
if (data.health === "starting") { if (data.health === "starting") {
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.health}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={t("docker.starting")}>
<div className="text-[8px] font-bold text-blue-500/80 uppercase">{data.health}</div> <div className="text-[8px] font-bold text-blue-500/80 uppercase">{t("docker.starting")}</div>
</div> </div>
); );
} }
if (data.health === "unhealthy") { if (data.health === "unhealthy") {
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.health}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={t("docker.unhealthy")}>
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{data.health}</div> <div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{t("docker.unhealthy")}</div>
</div> </div>
); );
} }
if (!data.health) {
statusLabel = data.status.replace("running", t("docker.running"))
} else {
statusLabel = data.health === "healthy" ? t("docker.healthy") : data.health
}
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.health || data.status}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusLabel}>
<div className="text-[8px] font-bold text-emerald-500/80 uppercase">{data.health || data.status}</div> <div className="text-[8px] font-bold text-emerald-500/80 uppercase">{statusLabel}</div>
</div> </div>
); );
} }
if (data && (data.status === "not found" || data.status === "exited" || data.status?.startsWith("partial"))) { if (data.status === "not found" || data.status === "exited" || data.status?.startsWith("partial")) {
if (data.status === "not found") statusLabel = t("docker.not_found")
else if (data.status === "exited") statusLabel = t("docker.exited")
else statusLabel = data.status.replace("partial", t("docker.partial"))
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={data.status}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusLabel}>
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{data.status}</div> <div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{statusLabel}</div>
</div> </div>
); );
} }
}
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden"> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden">

View File

@ -29,12 +29,12 @@ export default function Cpu({ expanded }) {
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.cpu")}</div> <div className="pr-1">{t("resources.cpu")}</div>
</div> </div>
{expanded && ( {expanded && (
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.load")}</div> <div className="pr-1">{t("resources.load")}</div>
</div> </div>
)} )}
@ -51,7 +51,7 @@ export default function Cpu({ expanded }) {
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5"> <div className="pl-0.5 pr-1">
{t("common.number", { {t("common.number", {
value: data.cpu.usage, value: data.cpu.usage,
style: "unit", style: "unit",
@ -63,7 +63,7 @@ export default function Cpu({ expanded }) {
</div> </div>
{expanded && ( {expanded && (
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5"> <div className="pl-0.5 pr-1">
{t("common.number", { {t("common.number", {
value: data.cpu.load, value: data.cpu.load,
maximumFractionDigits: 2, maximumFractionDigits: 2,

View File

@ -29,12 +29,12 @@ export default function Disk({ options, expanded }) {
<FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.free")}</div> <div className="pr-1">{t("resources.free")}</div>
</span> </span>
{expanded && ( {expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.total")}</div> <div className="pr-1">{t("resources.total")}</div>
</span> </span>
)} )}
@ -51,12 +51,12 @@ export default function Disk({ options, expanded }) {
<FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">{t("common.bytes", { value: data.drive.freeGb * 1024 * 1024 * 1024 })}</div> <div className="pl-0.5 pr-1">{t("common.bytes", { value: data.drive.freeGb * 1024 * 1024 * 1024 })}</div>
<div className="pr-1">{t("resources.free")}</div> <div className="pr-1">{t("resources.free")}</div>
</span> </span>
{expanded && ( {expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">{t("common.bytes", { value: data.drive.totalGb * 1024 * 1024 * 1024 })}</div> <div className="pl-0.5 pr-1">{t("common.bytes", { value: data.drive.totalGb * 1024 * 1024 * 1024 })}</div>
<div className="pr-1">{t("resources.total")}</div> <div className="pr-1">{t("resources.total")}</div>
</span> </span>
)} )}

View File

@ -29,12 +29,12 @@ export default function Memory({ expanded }) {
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.free")}</div> <div className="pr-1">{t("resources.free")}</div>
</span> </span>
{expanded && ( {expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div> <div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.total")}</div> <div className="pr-1">{t("resources.total")}</div>
</span> </span>
)} )}
@ -51,14 +51,14 @@ export default function Memory({ expanded }) {
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" /> <FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5"> <div className="pl-0.5 pr-1">
{t("common.bytes", { value: data.memory.freeMemMb * 1024 * 1024, maximumFractionDigits: 1, binary: true })} {t("common.bytes", { value: data.memory.freeMemMb * 1024 * 1024, maximumFractionDigits: 1, binary: true })}
</div> </div>
<div className="pr-1">{t("resources.free")}</div> <div className="pr-1">{t("resources.free")}</div>
</span> </span>
{expanded && ( {expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5"> <div className="pl-0.5 pr-1">
{t("common.bytes", { {t("common.bytes", {
value: data.memory.totalMemMb * 1024 * 1024, value: data.memory.totalMemMb * 1024 * 1024,
maximumFractionDigits: 1, maximumFractionDigits: 1,

View File

@ -247,7 +247,9 @@ export function cleanServiceGroups(groups) {
namespace, // kubernetes widget namespace, // kubernetes widget
app, app,
podSelector, podSelector,
wan // opnsense widget wan, // opnsense widget,
enableBlocks, // emby/jellyfin
enableNowPlaying
} = cleanedService.widget; } = cleanedService.widget;
const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields; const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields;
@ -278,6 +280,10 @@ export function cleanServiceGroups(groups) {
if (type === "opnsense") { if (type === "opnsense") {
if (wan) cleanedService.widget.wan = wan; if (wan) cleanedService.widget.wan = wan;
} }
if (type === "emby" || type === "jellyfin") {
if (enableBlocks) cleanedService.widget.enableBlocks = enableBlocks === 'true';
if (enableNowPlaying) cleanedService.widget.enableNowPlaying = enableNowPlaying === 'true';
}
} }
return cleanedService; return cleanedService;

View File

@ -48,6 +48,12 @@ export default async function credentialedProxyHandler(req, res, map) {
headers.Authorization = `Token ${widget.key}`; headers.Authorization = `Token ${widget.key}`;
} else if (widget.type === "miniflux") { } else if (widget.type === "miniflux") {
headers["X-Auth-Token"] = `${widget.key}`; headers["X-Auth-Token"] = `${widget.key}`;
} else if (widget.type === "nextcloud") {
if (widget.key) {
headers["NC-Token"] = `${widget.key}`;
} else {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
}
} else { } else {
headers["X-API-Key"] = `${widget.key}`; headers["X-API-Key"] = `${widget.key}`;
} }

View File

@ -0,0 +1,46 @@
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: librariesData, error: librariesError } = useWidgetAPI(widget, "libraries");
if (librariesError) {
return <Container error={librariesError} />;
}
if (!librariesData) {
return (
<Container service={service}>
<Block label="audiobookshelf.podcasts" />
<Block label="audiobookshelf.podcastsDuration" />
<Block label="audiobookshelf.books" />
<Block label="audiobookshelf.booksDuration" />
</Container>
);
}
const podcastLibraries = librariesData.filter(l => l.mediaType === "podcast");
const bookLibraries = librariesData.filter(l => l.mediaType === "book");
const totalPodcasts = podcastLibraries.reduce((total, pL) => parseInt(pL.stats?.totalItems, 10) + total, 0);
const totalBooks = bookLibraries.reduce((total, bL) => parseInt(bL.stats?.totalItems, 10) + total, 0);
const totalPodcastsDuration = podcastLibraries.reduce((total, pL) => parseFloat(pL.stats?.totalDuration) + total, 0);
const totalBooksDuration = bookLibraries.reduce((total, bL) => parseFloat(bL.stats?.totalDuration) + total, 0);
return (
<Container service={service}>
<Block label="audiobookshelf.podcasts" value={t("common.number", { value: totalPodcasts })} />
<Block label="audiobookshelf.podcastsDuration" value={t("common.number", { value: totalPodcastsDuration / 60, maximumFractionDigits: 0, style: "unit", unit: "minute" })} />
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
<Block label="audiobookshelf.booksDuration" value={t("common.number", { value: totalBooksDuration / 60, maximumFractionDigits: 0, style: "unit", unit: "minute" })} />
</Container>
);
}

View File

@ -0,0 +1,64 @@
import { httpProxy } from "utils/proxy/http";
import { formatApiCall } from "utils/proxy/api-helpers";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import widgets from "widgets/widgets";
const proxyName = "audiobookshelfProxyHandler";
const logger = createLogger(proxyName);
async function retrieveFromAPI(url, key) {
const headers = {
"content-type": "application/json",
"Authorization": `Bearer ${key}`
};
const [status, , data] = await httpProxy(url, { headers });
if (status !== 200) {
throw new Error(`Error getting data from Audiobookshelf: ${status}. Data: ${data.toString()}`);
}
return JSON.parse(Buffer.from(data).toString());
}
export default async function audiobookshelfProxyHandler(req, res) {
const { group, service, endpoint } = req.query;
if (!group || !service) {
logger.debug("Invalid or missing service '%s' or group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
const widget = await getServiceWidget(group, service);
if (!widget) {
logger.debug("Invalid or missing widget for service '%s' in group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
if (!widget.key) {
logger.debug("Invalid or missing key for service '%s' in group '%s'", service, group);
return res.status(400).json({ error: "Missing widget key" });
}
const apiURL = widgets[widget.type].api;
try {
const url = new URL(formatApiCall(apiURL, { endpoint, ...widget }));
const libraryData = await retrieveFromAPI(url, widget.key);
const libraryStats = await Promise.all(libraryData.libraries.map(async l => {
const stats = await retrieveFromAPI(new URL(formatApiCall(apiURL, { endpoint: `libraries/${l.id}/stats`, ...widget })), widget.key);
return {
...l,
stats
};
}));
return res.status(200).send(libraryStats);
} catch (e) {
logger.error(e.message);
return res.status(500).send({error: {message: e.message}});
}
}

View File

@ -0,0 +1,14 @@
import audiobookshelfProxyHandler from "./proxy";
const widget = {
api: "{url}/api/{endpoint}",
proxyHandler: audiobookshelfProxyHandler,
mappings: {
libraries: {
endpoint: "libraries",
},
},
};
export default widget;

View File

@ -2,6 +2,7 @@ import dynamic from "next/dynamic";
const components = { const components = {
adguard: dynamic(() => import("./adguard/component")), adguard: dynamic(() => import("./adguard/component")),
audiobookshelf: dynamic(() => import("./audiobookshelf/component")),
authentik: dynamic(() => import("./authentik/component")), authentik: dynamic(() => import("./authentik/component")),
autobrr: dynamic(() => import("./autobrr/component")), autobrr: dynamic(() => import("./autobrr/component")),
bazarr: dynamic(() => import("./bazarr/component")), bazarr: dynamic(() => import("./bazarr/component")),

View File

@ -2,6 +2,7 @@ import { useTranslation } from "next-i18next";
import { BsVolumeMuteFill, BsFillPlayFill, BsPauseFill, BsCpu, BsFillCpuFill } from "react-icons/bs"; import { BsVolumeMuteFill, BsFillPlayFill, BsPauseFill, BsCpu, BsFillCpuFill } from "react-icons/bs";
import { MdOutlineSmartDisplay } from "react-icons/md"; import { MdOutlineSmartDisplay } from "react-icons/md";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container"; import Container from "components/services/widget/container";
import { formatProxyUrlWithSegments } from "utils/proxy/api-helpers"; import { formatProxyUrlWithSegments } from "utils/proxy/api-helpers";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
@ -148,6 +149,33 @@ function SessionEntry({ playCommand, session }) {
); );
} }
function CountBlocks({ service, countData }) {
const { t } = useTranslation();
// allows filtering
// eslint-disable-next-line no-param-reassign
if (service.widget?.type === 'jellyfin') service.widget.type = 'emby'
if (!countData) {
return (
<Container service={service}>
<Block label="emby.movies" />
<Block label="emby.series" />
<Block label="emby.episodes" />
<Block label="emby.songs" />
</Container>
)
}
return (
<Container service={service}>
<Block label="emby.movies" value={t("common.number", { value: countData.MovieCount })} />
<Block label="emby.series" value={t("common.number", { value: countData.SeriesCount })} />
<Block label="emby.episodes" value={t("common.number", { value: countData.EpisodeCount })} />
<Block label="emby.songs" value={t("common.number", { value: countData.SongCount })} />
</Container>
)
}
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();
@ -161,6 +189,12 @@ export default function Component({ service }) {
refreshInterval: 5000, refreshInterval: 5000,
}); });
const {
data: countData,
error: countError,
} = useWidgetAPI(widget, "Count", {
refreshInterval: 60000,});
async function handlePlayCommand(session, command) { async function handlePlayCommand(session, command) {
const url = formatProxyUrlWithSegments(widget, "PlayControl", { const url = formatProxyUrlWithSegments(widget, "PlayControl", {
sessionId: session.Id, sessionId: session.Id,
@ -171,23 +205,30 @@ export default function Component({ service }) {
}); });
} }
if (sessionsError) { if (sessionsError || countError) {
return <Container error={sessionsError} />; return <Container error={sessionsError ?? countError} />;
} }
if (!sessionsData) { const enableBlocks = service.widget?.enableBlocks
const enableNowPlaying = service.widget?.enableNowPlaying ?? true
if (!sessionsData || !countData) {
return ( return (
<div className="flex flex-col pb-1"> <>
{enableBlocks && <CountBlocks service={service} countData={null} />}
{enableNowPlaying && <div className="flex flex-col pb-1">
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1"> <div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
<span className="absolute left-2 text-xs mt-[2px]">-</span> <span className="absolute left-2 text-xs mt-[2px]">-</span>
</div> </div>
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1"> <div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
<span className="absolute left-2 text-xs mt-[2px]">-</span> <span className="absolute left-2 text-xs mt-[2px]">-</span>
</div> </div>
</div> </div>}
</>
); );
} }
if (enableNowPlaying) {
const playing = sessionsData const playing = sessionsData
.filter((session) => session?.NowPlayingItem) .filter((session) => session?.NowPlayingItem)
.sort((a, b) => { .sort((a, b) => {
@ -202,6 +243,8 @@ export default function Component({ service }) {
if (playing.length === 0) { if (playing.length === 0) {
return ( return (
<>
{enableBlocks && <CountBlocks service={service} countData={countData} />}
<div className="flex flex-col pb-1 mx-1"> <div className="flex flex-col pb-1 mx-1">
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1"> <div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
<span className="absolute left-2 text-xs mt-[2px]">{t("emby.no_active")}</span> <span className="absolute left-2 text-xs mt-[2px]">{t("emby.no_active")}</span>
@ -210,22 +253,29 @@ export default function Component({ service }) {
<span className="absolute left-2 text-xs mt-[2px]">-</span> <span className="absolute left-2 text-xs mt-[2px]">-</span>
</div> </div>
</div> </div>
</>
); );
} }
if (playing.length === 1) { if (playing.length === 1) {
const session = playing[0]; const session = playing[0];
return ( return (
<>
{enableBlocks && <CountBlocks service={service} countData={countData} />}
<div className="flex flex-col pb-1 mx-1"> <div className="flex flex-col pb-1 mx-1">
<SingleSessionEntry <SingleSessionEntry
playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)} playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)}
session={session} session={session}
/> />
</div> </div>
</>
); );
} }
if (playing.length === -1)
return ( return (
<>
{enableBlocks && <CountBlocks service={service} countData={countData} />}
<div className="flex flex-col pb-1 mx-1"> <div className="flex flex-col pb-1 mx-1">
{playing.map((session) => ( {playing.map((session) => (
<SessionEntry <SessionEntry
@ -235,5 +285,13 @@ export default function Component({ service }) {
/> />
))} ))}
</div> </div>
</>
); );
} }
if (enableBlocks) {
return (
<CountBlocks service={service} countData={countData} />
)
}
}

View File

@ -8,6 +8,15 @@ const widget = {
Sessions: { Sessions: {
endpoint: "Sessions", endpoint: "Sessions",
}, },
Count: {
endpoint: "Items/Counts",
segments: [
"MovieCount",
"SeriesCount",
"EpisodeCount",
"SongCount"
]
},
PlayControl: { PlayControl: {
method: "POST", method: "POST",
endpoint: "Sessions/{sessionId}/Playing/{command}", endpoint: "Sessions/{sessionId}/Playing/{command}",

View File

@ -29,7 +29,7 @@ export default function Component({ service }) {
<Container service={service}> <Container service={service}>
<Block <Block
label="widget.status" label="widget.status"
value={`${homebridgeData.status[0].toUpperCase()}${homebridgeData.status.substr(1)}`} value={t(`homebridge.${homebridgeData.status}`)}
/> />
<Block <Block
label="homebridge.updates" label="homebridge.updates"

View File

@ -1,8 +1,11 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container"; import Container from "components/services/widget/container";
import Block from "components/services/widget/block"; import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service; const { widget } = service;
const { data: immichData, error: immichError } = useWidgetAPI(widget); const { data: immichData, error: immichError } = useWidgetAPI(widget);
@ -27,7 +30,17 @@ export default function Component({ service }) {
<Block label="immich.users" value={immichData.usageByUser.length} /> <Block label="immich.users" value={immichData.usageByUser.length} />
<Block label="immich.photos" value={immichData.photos} /> <Block label="immich.photos" value={immichData.photos} />
<Block label="immich.videos" value={immichData.videos} /> <Block label="immich.videos" value={immichData.videos} />
<Block label="immich.storage" value={immichData.usage} /> <Block label="immich.storage"
value={
// backwards-compatible e.g. '9 GiB'
immichData.usage.toString().toLowerCase().includes('b') ?
immichData.usage :
t("common.bytes", {
value: immichData.usage,
maximumFractionDigits: 1,
binary: true // match immich
})
} />
</Container> </Container>
); );
} }

View File

@ -1,8 +1,8 @@
import genericProxyHandler from "utils/proxy/handlers/generic"; import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = { const widget = {
api: "{url}/{endpoint}", api: "{url}/{endpoint}",
proxyHandler: genericProxyHandler, proxyHandler: credentialedProxyHandler,
mappings: { mappings: {
serverinfo: { serverinfo: {

View File

@ -1,4 +1,5 @@
import adguard from "./adguard/widget"; import adguard from "./adguard/widget";
import audiobookshelf from "./audiobookshelf/widget";
import authentik from "./authentik/widget"; import authentik from "./authentik/widget";
import autobrr from "./autobrr/widget"; import autobrr from "./autobrr/widget";
import bazarr from "./bazarr/widget"; import bazarr from "./bazarr/widget";
@ -76,6 +77,7 @@ import xteve from "./xteve/widget";
const widgets = { const widgets = {
adguard, adguard,
audiobookshelf,
authentik, authentik,
autobrr, autobrr,
bazarr, bazarr,