Compare commits

...

17 Commits

Author SHA1 Message Date
shamoon
f607d806d0 Bump version to 1.4.4 2025-08-08 11:32:46 -04:00
shamoon
c0ddb5f816 Merge branch 'dev' 2025-08-08 11:32:29 -04:00
github-actions[bot]
fc563532e1 New Crowdin translations by GitHub Action (#5626)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-08 11:28:06 -04:00
shamoon
98248903c6 Enhancement: support Tandoor v2 api structure (#5646) 2025-08-06 15:57:02 -04:00
shamoon
5870111d11 Enhancement: Auto-request geolocation if permission already granted (#5638) 2025-08-04 23:16:22 -04:00
shamoon
bb23c25690 Fix: try to restore iframe transparency by restoring light scheme (#5637) 2025-08-04 23:01:26 -04:00
shamoon
4084c8dafc Add fields to trilium docs 2025-08-04 14:52:10 -04:00
Matan Heimann
cb1dde1b79 Documentation: fix missing references to Wallos documentation doc (#5633)
Co-authored-by: MH <m@terramail.co>
2025-08-04 14:50:15 -04:00
shamoon
1691711a52 Bump version to 1.4.3 2025-08-03 11:02:00 -04:00
shamoon
b5d8f6c01c Merge branch 'dev' 2025-08-03 11:01:44 -04:00
github-actions[bot]
db86b5408a New Crowdin translations by GitHub Action (#5614)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-03 11:01:23 -04:00
shamoon
4be2c2868b Fix bg opacity calculation (#5622) 2025-08-03 10:52:45 -04:00
Yann Hodiesne
c6197a9f92 Fix: properly handle UptimeRobot errors (#5621) 2025-08-03 10:50:26 -04:00
shamoon
dd861d7d1c Enhancement: handle evcc 0.207 breaking change (#5619) 2025-08-03 08:12:19 -04:00
shamoon
e65f8c46f9 Update package.json 2025-08-02 18:52:19 -04:00
shamoon
082e1316c1 Fix: set body background color (#5611) 2025-08-02 17:44:35 -04:00
shamoon
a4b5e72d82 Fix: properly handle classlist with light theme (#5612) 2025-08-02 17:38:00 -04:00
20 changed files with 357 additions and 312 deletions

View File

@@ -143,6 +143,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [UptimeRobot](uptimerobot.md)
- [UrBackup](urbackup.md)
- [Vikunja](vikunja.md)
- [Wallos](wallos.md)
- [Watchtower](watchtower.md)
- [WGEasy](wgeasy.md)
- [WhatsUpDocker](whatsupdocker.md)

View File

@@ -9,6 +9,8 @@ This widget is compatible with [TriliumNext](https://github.com/TriliumNext/Note
Find (or create) your ETAPI key under `Options > ETAPI > Create new ETAPI token`.
Allowed fields: `["version", "notesCount", "dbSize"]`
```yaml
widget:
type: trilium

View File

@@ -169,6 +169,7 @@ nav:
- widgets/services/uptimerobot.md
- widgets/services/urbackup.md
- widgets/services/vikunja.md
- widgets/services/wallos.md
- widgets/services/watchtower.md
- widgets/services/wgeasy.md
- widgets/services/whatsupdocker.md

View File

@@ -1,6 +1,6 @@
{
"name": "homepage",
"version": "1.4.1",
"version": "1.4.4",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",

View File

@@ -43,7 +43,7 @@
"mem": "MEM",
"total": "Total",
"free": "Libre",
"used": "Usado",
"used": "Utilizado",
"load": "Carga",
"temp": "TEMP",
"max": "Máx.",
@@ -61,9 +61,9 @@
"wlan_devices": "Dispositivos WLAN",
"lan_users": "Usuarios LAN",
"wlan_users": "Usuarios WLAN",
"up": "UP",
"up": "ACTIVO",
"down": "CAÍDO",
"wait": "Please wait",
"wait": "Espere, por favor",
"empty_data": "Se desconoce el estado del subsistema"
},
"docker": {
@@ -168,10 +168,10 @@
"passes": "Pases"
},
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"playing": "Reproduciendo",
"transcoding": "Transcodificando",
"bitrate": "Tasa de bits",
"no_active": "Sin transmisiones activas",
"plex_connection_error": "Comprueba la conexión a Plex"
},
"omada": {
@@ -189,7 +189,7 @@
"plex": {
"streams": "Transmisiones activas",
"albums": "Álbumes",
"movies": "Movies",
"movies": "Películas",
"tv": "Series"
},
"sabnzbd": {
@@ -199,20 +199,20 @@
},
"rutorrent": {
"active": "Activo",
"upload": "Upload",
"download": "Download"
"upload": "Subida",
"download": "Descarga"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "Descarga",
"upload": "Subida",
"leech": "Descargando",
"seed": "Semillas"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "Descarga",
"upload": "Subida",
"leech": "Descargando",
"seed": "Semillas"
},
"qnap": {
"cpuUsage": "Uso de la CPU",
@@ -223,44 +223,44 @@
"invalid": "No válido"
},
"deluge": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "Descarga",
"upload": "Subida",
"leech": "Descargando",
"seed": "Semillas"
},
"develancacheui": {
"cachehitbytes": "Bytes encontrados en caché",
"cachemissbytes": "Bytes faltantes en caché"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "Descarga",
"upload": "Subida",
"leech": "Descargando",
"seed": "Semillas"
},
"sonarr": {
"wanted": "Buscando",
"queued": "En cola",
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
"queue": "Cola",
"unknown": "Desconocido"
},
"radarr": {
"wanted": "Wanted",
"wanted": "Buscando",
"missing": "Faltantes",
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
"queued": "En cola",
"movies": "Películas",
"queue": "Cola",
"unknown": "Desconocido"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"wanted": "Buscando",
"queued": "En cola",
"artists": "Artistas"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"wanted": "Buscando",
"queued": "En cola",
"books": "Libros"
},
"bazarr": {
@@ -273,19 +273,19 @@
"available": "Disponible"
},
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
"pending": "Pendiente",
"approved": "Aprobado",
"available": "Disponible"
},
"overseerr": {
"pending": "Pending",
"pending": "Pendiente",
"processing": "Procesando",
"approved": "Approved",
"available": "Available"
"approved": "Aprobado",
"available": "Disponible"
},
"netalertx": {
"total": "Total",
"connected": "Connected",
"connected": "Conectado",
"new_devices": "Nuevos dispositivos",
"down_alerts": "Alertas de caída"
},
@@ -296,26 +296,26 @@
"gravity": "Gravity"
},
"adguard": {
"queries": "Queries",
"blocked": "Blocked",
"queries": "Consultas",
"blocked": "Bloqueado",
"filtered": "Filtrado",
"latency": "Latencia"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"upload": "Subida",
"download": "Descarga",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"running": "En ejecución",
"stopped": "Detenido",
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
"download": "Descargado",
"nondownload": "No descargado",
"read": "Read",
"unread": "Unread",
"read": "Leído",
"unread": "Sin leer",
"downloadedread": "Descargado y leído",
"downloadedunread": "Descargado y no leído",
"nondownloadedread": "No descargado y leído",
@@ -336,7 +336,7 @@
"ago": "Hace {{value}}"
},
"technitium": {
"totalQueries": "Queries",
"totalQueries": "Consultas",
"totalNoError": "Éxitos",
"totalServerFailure": "Fallas",
"totalNxDomain": "Dominios NX",
@@ -370,8 +370,8 @@
"please_wait": "Por favor, espera"
},
"npm": {
"enabled": "Activado",
"disabled": "Desactivado",
"enabled": "Activos",
"disabled": "Inactivos",
"total": "Total"
},
"coinmarketcap": {
@@ -383,19 +383,19 @@
},
"gotify": {
"apps": "Aplicaciones",
"clients": "Clients",
"clients": "Clientes",
"messages": "Mensajes"
},
"prowlarr": {
"enableIndexers": "Indexadores",
"numberOfGrabs": "Capturas",
"numberOfQueries": "Queries",
"numberOfQueries": "Consultas",
"numberOfFailGrabs": "Capturas fallidas",
"numberOfFailQueries": "Consultas fallidas"
},
"jackett": {
"configured": "Configurado",
"errored": "Errored"
"errored": "Con fallo"
},
"strelaysrv": {
"numActiveSessions": "Sesiones",
@@ -529,9 +529,9 @@
"up_to_date": "Actualizado",
"child_bridges": "Bridges secundarios",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
"up": "Activo",
"pending": "Pendiente",
"down": "Inactivo"
},
"healthchecks": {
"new": "Nuevo",
@@ -647,7 +647,7 @@
},
"cloudflared": {
"origin_ip": "IP de origen",
"status": "Status"
"status": "Estado"
},
"pfsense": {
"load": "Promedio de carga",
@@ -700,8 +700,8 @@
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"albums": "Álbumes",
"photos": "Fotos",
"videos": "Videos",
"people": "Personas"
},
@@ -776,16 +776,16 @@
"updates": "Updates"
},
"calibreweb": {
"books": "Books",
"books": "Libros",
"authors": "Autores",
"categories": "Categories",
"categories": "Categorías",
"series": "Series"
},
"jdownloader": {
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
"downloadCount": "En cola",
"downloadBytesRemaining": "Restante",
"downloadTotalBytes": "Tamaño",
"downloadSpeed": "Velocidad"
},
"kavita": {
"seriesCount": "Series",
@@ -930,9 +930,9 @@
"bans": "Baneos"
},
"wgeasy": {
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"connected": "Conectados",
"enabled": "Activo",
"disabled": "Inactivos",
"total": "Total"
},
"swagdashboard": {
@@ -1042,14 +1042,14 @@
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"connected": "Conectado",
"disconnected": "Desconectado",
"updateStatus": "Actualización",
"update_yes": "Available",
"update_no": "Up to Date",
"update_yes": "Disponible",
"update_no": "Actualizado",
"downloads": "Descargas",
"uploads": "Subidas",
"sharedFiles": "Files"
"sharedFiles": "Compartidos"
},
"jellystat": {
"songs": "Songs",

View File

@@ -30,7 +30,7 @@
"response_data": "Données de réponse"
},
"weather": {
"current": "Localisation actuelle",
"current": "Emplacement actuel",
"allow": "Cliquez pour autoriser",
"updating": "Mise à jour",
"wait": "Veuillez patienter"
@@ -47,7 +47,7 @@
"load": "Charge",
"temp": "Température",
"max": "Max",
"uptime": "Démarré depuis"
"uptime": "Actif"
},
"unifi": {
"users": "Utilisateurs",
@@ -1073,15 +1073,15 @@
"containers": "Conteneurs"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"available": "Disponible",
"used": "Utilisé",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
"activeSubscriptions": "Abonnements",
"thisMonthlyCost": "Ce mois",
"nextMonthlyCost": "Mois prochain",
"previousMonthlyCost": "Mois précédent",
"nextRenewingSubscription": "Prochain paiement"
}
}

View File

@@ -451,7 +451,7 @@
"crit": "Krytyczyny",
"read": "Read",
"write": "Zapis",
"gpu": "Karta graficzna",
"gpu": "GPU",
"mem": "Pamięć",
"swap": "Swap"
},

View File

@@ -241,7 +241,7 @@
"sonarr": {
"wanted": "Розыск",
"queued": "В очереди",
"series": "Серии",
"series": "Сериалы",
"queue": "Очередь",
"unknown": "Неизвестно"
},

View File

@@ -63,7 +63,7 @@
"wlan_users": "WLAN Kullanıcıları",
"up": "UP",
"down": "Aşağı",
"wait": "Please wait",
"wait": "Lütfen bekleyin",
"empty_data": "Alt sistem durumu bilinmiyor"
},
"docker": {
@@ -83,7 +83,7 @@
"partial": "Parçalı"
},
"ping": {
"error": "Error",
"error": "Hata",
"ping": "Gecikme",
"down": "İndirme",
"up": "Yükleme",
@@ -91,11 +91,11 @@
},
"siteMonitor": {
"http_status": "HTTPS durumu",
"error": "Error",
"error": "Hata",
"response": "Yanıt",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"not_available": "Mevcut Değil"
},
"emby": {
"playing": "Oynatılıyor",
@@ -108,11 +108,11 @@
"songs": "Şarkılar"
},
"esphome": {
"offline": "Offline",
"offline_alt": "Offline",
"offline": "Çevrimdışı",
"offline_alt": "Çevrimdışı",
"online": "Çevrimiçi",
"total": "Total",
"unknown": "Unknown"
"total": "Toplam",
"unknown": "Bilinmiyor"
},
"evcc": {
"pv_power": "Üretim",
@@ -133,7 +133,7 @@
"unread": "Okunmamış"
},
"fritzbox": {
"connectionStatus": "Status",
"connectionStatus": "Durum",
"connectionStatusUnconfigured": "Yapılandırılmamış",
"connectionStatusConnecting": "Bağlanıyor",
"connectionStatusAuthenticating": "Kimlik doğrulanıyor",
@@ -141,7 +141,7 @@
"connectionStatusDisconnecting": "Bağlantı kesiliyor...",
"connectionStatusDisconnected": "Bağlantı kesildi",
"connectionStatusConnected": "Bağlandı",
"uptime": "Uptime",
"uptime": "Çalışma Süresi",
"maxDown": "Max. Indirme",
"maxUp": "Max. Gönderme",
"down": "Down",
@@ -168,17 +168,17 @@
"passes": "Geçilenler"
},
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Oranı",
"no_active": "Aktif akış yok",
"plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor"
},
"omada": {
"connectedAp": "Bağlı AP'ler",
"activeUser": "Aktif cihazlar",
"alerts": "Alarmlar",
"connectedGateways": "Connected gateways",
"connectedGateways": "Bağlı ağ geçitleri",
"connectedSwitches": "Bağlı anahtarlar"
},
"nzbget": {
@@ -189,30 +189,30 @@
"plex": {
"streams": "Aktif Akış",
"albums": "Albümler",
"movies": "Movies",
"movies": "Filmler",
"tv": "TV Showları"
},
"sabnzbd": {
"rate": "Rate",
"rate": "Oran",
"queue": "Kuyruk",
"timeleft": "Kalan Zaman"
},
"rutorrent": {
"active": "Aktif",
"upload": "Upload",
"download": "Download"
"upload": "Yükleme",
"download": "İndirme"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "İndirme",
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "İndirme",
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"qnap": {
"cpuUsage": "İşlemci Kullanımı",
@@ -223,7 +223,7 @@
"invalid": "Geçersiz"
},
"deluge": {
"download": "Download",
"download": "İndirme",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
@@ -233,25 +233,25 @@
"cachemissbytes": "Önbellek Kaçırılan Byte"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "İndirme",
"upload": "Yükleme",
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"sonarr": {
"wanted": "İstendi",
"queued": "Sırada",
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
"series": "Seriler",
"queue": "Kuyruk",
"unknown": "Bilinmeyen"
},
"radarr": {
"wanted": "Wanted",
"wanted": "İstendi",
"missing": "Eksik",
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
"queued": "Kuyrukta",
"movies": "Filmler",
"queue": "Kuyruk",
"unknown": "Bilinmeyen"
},
"lidarr": {
"wanted": "Wanted",
@@ -273,9 +273,9 @@
"available": "Kullanılabilir"
},
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
"pending": "Bekleyen",
"approved": "Onaylı",
"available": "Kullanılabilir"
},
"overseerr": {
"pending": "Pending",
@@ -284,7 +284,7 @@
"available": "Available"
},
"netalertx": {
"total": "Total",
"total": "Toplam",
"connected": "Connected",
"new_devices": "Yeni Cihazlar",
"down_alerts": "Hata Uyarıları"
@@ -302,24 +302,24 @@
"latency": "Gecikme"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"ping": "Ping"
"upload": "Yükleme",
"download": "İndirme",
"ping": "Gecikme"
},
"portainer": {
"running": "Running",
"running": "Çalışıyor",
"stopped": "Durduruldu",
"total": "Total"
"total": "Toplam"
},
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
"download": "İndirilen",
"nondownload": "İndirilmemiş",
"read": "Okunan",
"unread": "Okunmamış",
"downloadedread": "İndirildi & Okundu",
"downloadedunread": "İndirildi & Okunmadı",
"nondownloadedread": "İndirilmedi & Okundu",
"nondownloadedunread": "İndirilmedi & Okunmadı"
},
"tailscale": {
"address": "Adres",
@@ -336,7 +336,7 @@
"ago": "{{value}} Önce"
},
"technitium": {
"totalQueries": "Queries",
"totalQueries": "Sorgular",
"totalNoError": "Başarılı",
"totalServerFailure": "Başarısızlıklar",
"totalNxDomain": "NX Alan Adları",
@@ -344,12 +344,12 @@
"totalAuthoritative": "Yetkili",
"totalRecursive": "Tekrarlamalı",
"totalCached": "Önbelleğe alındı",
"totalBlocked": "Blocked",
"totalBlocked": "Engellenen",
"totalDropped": "Bırakıldı",
"totalClients": "Alıcılar"
},
"tdarr": {
"queue": "Queue",
"queue": "Kuyruk",
"processed": "İşlendi",
"errored": "Hatalı",
"saved": "Kaydedildi"
@@ -360,19 +360,19 @@
"middleware": "Ara Katman"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
"version": "Sürüm",
"notesCount": "Notlar",
"dbSize": "Veritabanı Boyutu",
"unknown": "Bilinmeyen"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"nothing_streaming": "Aktif akış yok",
"please_wait": "Lütfen Bekleyin"
},
"npm": {
"enabled": "Etkin",
"disabled": "Devre Dışı",
"total": "Total"
"total": "Toplam"
},
"coinmarketcap": {
"configure": "İzleme için bir veya daha fazla kripto para birimi yapılandırın",
@@ -383,46 +383,46 @@
},
"gotify": {
"apps": "Uygulamalar",
"clients": "Clients",
"clients": "İstemciler",
"messages": "İletiler"
},
"prowlarr": {
"enableIndexers": "Dizin Oluşturucular",
"enableIndexers": "İndeksleyici",
"numberOfGrabs": "Yakalamalar",
"numberOfQueries": "Queries",
"numberOfQueries": "Sorgular",
"numberOfFailGrabs": "Başarısız Yakalamalar",
"numberOfFailQueries": "Başarısız Sorgular"
},
"jackett": {
"configured": "Yapılandırılmış",
"errored": "Errored"
"errored": "Hatalı"
},
"strelaysrv": {
"numActiveSessions": "Aktif Sezonlar",
"numConnections": "Bağlantı Sayısı",
"dataRelayed": "Aktarılan",
"transferRate": "Rate"
"transferRate": "Oran"
},
"mastodon": {
"user_count": "Users",
"user_count": "Kullanıcılar",
"status_count": "Gönderiler",
"domain_count": "Etki Alanları"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"wanted": "İstendi",
"queued": "Sırada",
"series": "Series"
},
"minecraft": {
"players": "Oyuncular",
"version": "Versiyon",
"status": "Status",
"status": "Durum",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Okunan",
"unread": "Unread"
"read": "Okunmuş",
"unread": "Okunmamış"
},
"authentik": {
"users": "Users",
@@ -443,7 +443,7 @@
"_temp": "Sıcaklık",
"warn": "Uyarı",
"uptime": "UP",
"total": "Total",
"total": "Toplam",
"free": "Free",
"used": "Used",
"days": "d",
@@ -470,57 +470,57 @@
"1-day": "Çoğunlukla Güneşli",
"1-night": "Çoğunlukla Açık",
"2-day": "Parçalı Bulutlu",
"2-night": "Partly Cloudy",
"2-night": "Parçalı Bulutlu",
"3-day": "Bulutlu",
"3-night": "Cloudy",
"3-night": "Bulutlu",
"45-day": "Sisli",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"45-night": "Sisli",
"48-day": "Sisli",
"48-night": "Sisli",
"51-day": "Az Çiseleyen Yağmur",
"51-night": "Light Drizzle",
"51-night": "Hafif Çiseleme",
"53-day": "Çiseleyen Yağmur",
"53-night": "Drizzle",
"53-night": "Çiseleme",
"55-day": "Çok Çiseleyen Yağmur",
"55-night": "Heavy Drizzle",
"55-night": "Yoğun Çiseleme",
"56-day": "Soğuk Az Çiseleyen Yağmur",
"56-night": "Light Freezing Drizzle",
"56-night": "Hafif Dondurucu Çiseleme",
"57-day": "Soğuk Çiseleyen Yağmur",
"57-night": "Freezing Drizzle",
"57-night": "Dondurucu Çiseleme",
"61-day": "Hafif Yağmur",
"61-night": "Light Rain",
"61-night": "Hafif Yağmur",
"63-day": "Yağmur",
"63-night": "Rain",
"63-night": "Yağmur",
"65-day": "Çok Yağmur",
"65-night": "Heavy Rain",
"65-night": "Şiddetli Yağmur",
"66-day": "Dondurucu Yağmur",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"66-night": "Dondurucu Yağmur",
"67-day": "Dondurucu Yağmur",
"67-night": "Dondurucu Yağmur",
"71-day": "Hafif Kar",
"71-night": "Light Snow",
"71-night": "Hafif Kar",
"73-day": "Kar",
"73-night": "Snow",
"73-night": "Kar",
"75-day": "Çok Kar",
"75-night": "Heavy Snow",
"75-night": "Yoğun Kar",
"77-day": "Kar Taneleri",
"77-night": "Snow Grains",
"77-night": "Kar Taneleri",
"80-day": "Hafif Sağanak",
"80-night": "Light Showers",
"80-night": "Hafif Sağanak",
"81-day": "Sağanak",
"81-night": "Showers",
"81-night": "Sağanak",
"82-day": "Yoğun Sağanak",
"82-night": "Heavy Showers",
"82-night": "Yoğun Sağanak",
"85-day": "Karlı Sağanak",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"85-night": "Karlı Sağanak",
"86-day": "Karlı Sağanak",
"86-night": "Karlı Sağanak",
"95-day": "Gök Gürültülü Fırtına",
"95-night": "Thunderstorm",
"95-night": "Fırtına",
"96-day": "Dolu İle Gök Gürültülü Fırtına",
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
"96-night": "Dolu Yağışlı Fırtına",
"99-day": "Dolu Yağışlı Fırtına",
"99-night": "Dolu Yağışlı Fırtına"
},
"homebridge": {
"available_update": "Sistem",
@@ -530,7 +530,7 @@
"child_bridges": "Alt Köprüler",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"pending": "Bekleyen",
"down": "Down"
},
"healthchecks": {
@@ -539,7 +539,7 @@
"grace": "Tolerans Döneminde",
"down": "Down",
"paused": "Duraklatıldı",
"status": "Status",
"status": "Durum",
"last_ping": "Son Ping",
"never": "Henüz ping yok"
},
@@ -549,65 +549,65 @@
"containers_failed": "Başarısız"
},
"autobrr": {
"approvedPushes": "Approved",
"approvedPushes": "Onaylı",
"rejectedPushes": "Reddedildi",
"filters": "Süzgeçler",
"indexers": "Indexers"
"indexers": "İndeksleyici"
},
"tubearchivist": {
"downloads": "Queue",
"downloads": "Kuyruk",
"videos": "Videolar",
"channels": "Kanallar",
"playlists": "Oynatma Listeleri"
},
"truenas": {
"load": "Sistem Yükü",
"uptime": "Uptime",
"alerts": "Alerts"
"uptime": "Çalışma Süresi",
"alerts": "Alarmlar"
},
"pyload": {
"speed": "Hız",
"active": "Active",
"queue": "Queue",
"total": "Total"
"active": "Aktif",
"queue": "Kuyruk",
"total": "Toplam"
},
"gluetun": {
"public_ip": "Açık IP",
"region": "Bölge",
"country": "Ülke",
"port_forwarded": "Port Forwarded"
"port_forwarded": "Yönlendirilen Port"
},
"hdhomerun": {
"channels": "Channels",
"channels": "Kanallar",
"hd": "HD",
"tunerCount": "Ayarlayıcılar",
"channelNumber": "Kanal",
"channelNetwork": "Ağ",
"signalStrength": "Sağlamlık",
"signalQuality": "Kalite",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"symbolQuality": "Kalite",
"networkRate": "Bit Oranı",
"clientIP": "Alıcı"
},
"scrutiny": {
"passed": "Geçti",
"failed": "Failed",
"unknown": "Unknown"
"failed": "Başarısız",
"unknown": "Bilinmeyen"
},
"paperlessngx": {
"inbox": "Gelen Kutusu",
"total": "Total"
"total": "Toplam"
},
"peanut": {
"battery_charge": "Pil Yüzdesi",
"ups_load": "UPS Yükü",
"ups_status": "UPS Durumu",
"online": "Online",
"online": "Çevrimiçi",
"on_battery": "Pilde",
"low_battery": "Düşük Pil"
},
"nextdns": {
"wait": "Please Wait",
"wait": "Lütfen Bekleyin",
"no_devices": "Cihaz Verisi Alınamadı"
},
"mikrotik": {
@@ -640,14 +640,14 @@
"layers": "Katmanlar"
},
"octoprint": {
"printer_state": "Status",
"printer_state": "Durum",
"temp_tool": "Araç sıcaklığı",
"temp_bed": "Yatak sıcaklığı",
"job_completion": "Tamamlanma"
},
"cloudflared": {
"origin_ip": "Gerçek IP",
"status": "Status"
"status": "Durum"
},
"pfsense": {
"load": "Ort. Yükleme",
@@ -706,9 +706,9 @@
"people": "İnsan"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"queue": "Kuyruk",
"processing": "İşleniyor",
"processed": "İşlendi",
"time": "Zaman"
},
"firefly": {
@@ -730,7 +730,7 @@
"numshares": "Paylaşılan Öğeler"
},
"kopia": {
"status": "Status",
"status": "Durum",
"size": "Boyut",
"lastrun": "Son Çalışma",
"nextrun": "Sonraki Çalışma",
@@ -773,27 +773,27 @@
},
"whatsupdocker": {
"monitoring": "İzleme",
"updates": "Updates"
"updates": "Güncellemeler"
},
"calibreweb": {
"books": "Books",
"books": "Kitaplar",
"authors": "Yazarlar",
"categories": "Categories",
"series": "Series"
"categories": "Kategoriler",
"series": "Seriler"
},
"jdownloader": {
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
"downloadCount": "Kuyruk",
"downloadBytesRemaining": "Kalan",
"downloadTotalBytes": "Boyut",
"downloadSpeed": "Hız"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
"totalFiles": "Dosyalar"
},
"azuredevops": {
"result": "Sonuç",
"status": "Status",
"status": "Durum",
"buildId": "Yapı Kimliği",
"succeeded": "Başarılı",
"notStarted": "Henüz Başlamadı",
@@ -805,7 +805,7 @@
"approved": "Approved"
},
"gamedig": {
"status": "Status",
"status": "Durum",
"online": "Online",
"offline": "Offline",
"name": "İsim",
@@ -830,7 +830,7 @@
},
"openmediavault": {
"downloading": "İndiriliyor",
"total": "Total",
"total": "Toplam",
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
@@ -845,7 +845,7 @@
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Status",
"status": "Durum",
"uptime": "Uptime",
"lastDown": "Son Kesinti",
"downDuration": "Kesinti Süresi",
@@ -933,7 +933,7 @@
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Total"
"total": "Toplam"
},
"swagdashboard": {
"proxied": "Proxy Üzerinden",
@@ -943,7 +943,7 @@
},
"myspeed": {
"ping": "Ping",
"download": "Download",
"download": "İndirme",
"upload": "Upload"
},
"stocks": {
@@ -989,7 +989,7 @@
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"status": "Durum",
"online": "Online",
"offline": "Offline"
},
@@ -1000,7 +1000,7 @@
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"status": "Durum",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
@@ -1027,7 +1027,7 @@
"projects": "Projects"
},
"apcups": {
"status": "Status",
"status": "Durum",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
@@ -1041,13 +1041,13 @@
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"slskStatus": "",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"updateStatus": "Güncelleme",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"downloads": "İndirmeler",
"uploads": "Uploads",
"sharedFiles": "Files"
},
@@ -1062,8 +1062,8 @@
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"total": "Toplam",
"running": "Çalışıyor",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
@@ -1075,13 +1075,13 @@
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
"total": "Toplam"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
"activeSubscriptions": "Abonelikler",
"thisMonthlyCost": "Bu Ay",
"nextMonthlyCost": "Sonraki Ay",
"previousMonthlyCost": "Önceki Ay",
"nextRenewingSubscription": "Sonraki Ödeme"
}
}

View File

@@ -112,7 +112,7 @@
"offline_alt": "Offline",
"online": "Онлайн",
"total": "Total",
"unknown": "Unknown"
"unknown": "Невідомо"
},
"evcc": {
"pv_power": "Виробництво",

View File

@@ -63,7 +63,7 @@
"wlan_users": "无线局域网用户",
"up": "UP",
"down": "离线",
"wait": "请稍",
"wait": "请稍",
"empty_data": "子系统状态未知"
},
"docker": {
@@ -83,19 +83,19 @@
"partial": "部分"
},
"ping": {
"error": "Error",
"ping": "Ping",
"down": "Down",
"up": "Up",
"error": "错误",
"ping": "延迟",
"down": "离线",
"up": "在线",
"not_available": "不可用"
},
"siteMonitor": {
"http_status": "HTTP 状态",
"error": "Error",
"error": "错误",
"response": "响应",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
"down": "离线",
"up": "在线",
"not_available": "不可用"
},
"emby": {
"playing": "播放中",
@@ -116,7 +116,7 @@
},
"evcc": {
"pv_power": "正式环境",
"battery_soc": "Battery",
"battery_soc": "电量",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
@@ -189,7 +189,7 @@
"plex": {
"streams": "活动流",
"albums": "专辑",
"movies": "Movies",
"movies": "电影",
"tv": "电视节目"
},
"sabnzbd": {
@@ -204,15 +204,15 @@
},
"transmission": {
"download": "Download",
"upload": "Upload",
"upload": "",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"download": "下载速率",
"upload": "上传速率",
"leech": "下载中",
"seed": "做种"
},
"qnap": {
"cpuUsage": "处理器",
@@ -236,31 +236,31 @@
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
"seed": "做种"
},
"sonarr": {
"wanted": "想看",
"queued": "排队",
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
"series": "系列",
"queue": "队列",
"unknown": "未知"
},
"radarr": {
"wanted": "Wanted",
"wanted": "想看",
"missing": "丢失",
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
"queued": "队列中",
"movies": "电影",
"queue": "队列",
"unknown": "未知"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"wanted": "想看",
"queued": "队列中",
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"wanted": "想看",
"queued": "队列中",
"books": "书籍"
},
"bazarr": {
@@ -273,7 +273,7 @@
"available": "可用"
},
"jellyseerr": {
"pending": "Pending",
"pending": "待办的",
"approved": "Approved",
"available": "Available"
},
@@ -437,20 +437,20 @@
},
"glances": {
"cpu": "CPU",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"load": "负载",
"wait": "请稍候",
"temp": "温度",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"uptime": "运行时间",
"total": "总计",
"free": "空闲",
"used": "已使用",
"days": "",
"hours": "",
"crit": "Crit",
"read": "Read",
"write": "Write",
"write": "写入",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"

View File

@@ -1,5 +1,5 @@
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { useCallback, useEffect, useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
@@ -64,7 +64,7 @@ export default function OpenMeteo({ options }) {
setLocation({ latitude: options.latitude, longitude: options.longitude });
}
const requestLocation = () => {
const requestLocation = useCallback(() => {
setRequesting(true);
if (typeof window !== "undefined") {
navigator.geolocation.getCurrentPosition(
@@ -82,7 +82,17 @@ export default function OpenMeteo({ options }) {
},
);
}
};
}, []);
useEffect(() => {
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
requestLocation();
}
});
}
}, [options.latitude, options.longitude, requestLocation]);
if (!location) {
return (

View File

@@ -1,5 +1,5 @@
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { useCallback, useEffect, useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
@@ -59,7 +59,7 @@ export default function OpenWeatherMap({ options }) {
setLocation({ latitude: options.latitude, longitude: options.longitude });
}
const requestLocation = () => {
const requestLocation = useCallback(() => {
setRequesting(true);
if (typeof window !== "undefined") {
navigator.geolocation.getCurrentPosition(
@@ -77,7 +77,17 @@ export default function OpenWeatherMap({ options }) {
},
);
}
};
}, []);
useEffect(() => {
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
requestLocation();
}
});
}
}, [options.latitude, options.longitude, requestLocation]);
if (!location) {
return (

View File

@@ -1,5 +1,5 @@
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { useCallback, useEffect, useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
@@ -63,7 +63,7 @@ export default function WeatherApi({ options }) {
setLocation({ latitude: options.latitude, longitude: options.longitude });
}
const requestLocation = () => {
const requestLocation = useCallback(() => {
setRequesting(true);
if (typeof window !== "undefined") {
navigator.geolocation.getCurrentPosition(
@@ -81,7 +81,17 @@ export default function WeatherApi({ options }) {
},
);
}
};
}, []);
useEffect(() => {
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
requestLocation();
}
});
}
}, [options.latitude, options.longitude, requestLocation]);
if (!location) {
return (

View File

@@ -509,7 +509,7 @@ export default function Wrapper({ initialSettings, fallback }) {
if (typeof bg === "object") {
backgroundImage = bg.image || "";
if (bg.opacity !== undefined) {
opacity = bg.opacity / 100;
opacity = 1 - bg.opacity / 100;
}
backgroundBlur = bg.blur !== undefined;
backgroundSaturate = bg.saturate !== undefined;
@@ -524,7 +524,7 @@ export default function Wrapper({ initialSettings, fallback }) {
const body = document.body;
html.classList.remove("dark", "scheme-dark", "scheme-light");
html.classList.add(theme === "dark" ? "dark" : "");
html.classList.toggle("dark", theme === "dark");
html.classList.add(theme === "dark" ? "scheme-dark" : "scheme-light");
html.classList.remove(...Array.from(html.classList).filter((cls) => cls.startsWith("theme-")));

View File

@@ -30,12 +30,13 @@ body,
height: 100%;
margin: 0;
padding: 0;
background-color: rgb(var(--bg-color));
}
#background {
position: fixed;
inset: 0;
z-index: -1;
z-index: 0;
background-size: cover;
background-position: center;
background-repeat: no-repeat;

View File

@@ -29,17 +29,20 @@ export default function Component({ service }) {
);
}
// evcc v0.207 changed the API structure so its no longer under 'result'
const data = stateData.result ?? stateData;
// broken by evcc v0.133.0 https://github.com/evcc-io/evcc/commit/9dcb1fa0a7c08dd926b79309aa1f676a5fc6c8aa
const gridPower = stateData.result.gridPower ?? stateData.result.grid?.power ?? 0;
const gridPower = data.gridPower ?? data.grid?.power ?? 0;
return (
<Container service={service}>
<Block label="evcc.pv_power" value={`${toKilowatts(t, stateData.result.pvPower)} ${t("evcc.kilowatt")}`} />
<Block label="evcc.pv_power" value={`${toKilowatts(t, data.pvPower)} ${t("evcc.kilowatt")}`} />
<Block label="evcc.grid_power" value={`${toKilowatts(t, gridPower)} ${t("evcc.kilowatt")}`} />
<Block label="evcc.home_power" value={`${toKilowatts(t, stateData.result.homePower)} ${t("evcc.kilowatt")}`} />
<Block label="evcc.home_power" value={`${toKilowatts(t, data.homePower)} ${t("evcc.kilowatt")}`} />
<Block
label="evcc.charge_power"
value={`${toKilowatts(t, stateData.result.loadpoints[0].chargePower)} ${t("evcc.kilowatt")}`}
value={`${toKilowatts(t, data.loadpoints[0].chargePower)} ${t("evcc.kilowatt")}`}
/>
</Container>
);

View File

@@ -24,7 +24,7 @@ export default function Component({ service }) {
<Container service={service}>
<div
className={classNames(
"bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center text-center",
"bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center text-center scheme-light",
"service-block",
)}
>

View File

@@ -23,10 +23,13 @@ export default function Component({ service }) {
</Container>
);
}
const space = spaceData.results ? spaceData.results[0] : spaceData[0];
return (
<Container service={service}>
<Block label="tandoor.users" value={spaceData[0]?.user_count} />
<Block label="tandoor.recipes" value={spaceData[0]?.recipe_count} />
<Block label="tandoor.users" value={space?.user_count} />
<Block label="tandoor.recipes" value={space?.recipe_count} />
<Block label="tandoor.keywords" value={keywordData.count} />
</Container>
);

View File

@@ -31,6 +31,10 @@ export default function Component({ service }) {
);
}
if (uptimerobotData.error) {
return <Container service={service} error={uptimerobotData.error} />;
}
// multiple monitors
if (uptimerobotData.pagination?.total > 1) {
const sitesUp = uptimerobotData.monitors.filter((m) => m.status === 2).length;