mirror of
https://github.com/karl0ss/homepage.git
synced 2025-04-29 12:03:41 +01:00
Merge branch 'benphelps:main' into main
This commit is contained in:
commit
3760b030a9
@ -141,7 +141,8 @@
|
|||||||
"playing": "يشتغل",
|
"playing": "يشتغل",
|
||||||
"transcoding": "التحويل",
|
"transcoding": "التحويل",
|
||||||
"bitrate": "معدل البت",
|
"bitrate": "معدل البت",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "معدل",
|
"rate": "معدل",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,8 @@
|
|||||||
"playing": "Възпроизвежда",
|
"playing": "Възпроизвежда",
|
||||||
"transcoding": "Конвертира",
|
"transcoding": "Конвертира",
|
||||||
"bitrate": "Честота",
|
"bitrate": "Честота",
|
||||||
"no_active": "Няма активни потоци"
|
"no_active": "Няма активни потоци",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rate",
|
"rate": "Rate",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,8 @@
|
|||||||
"playing": "Reproduint",
|
"playing": "Reproduint",
|
||||||
"transcoding": "Transcodificant",
|
"transcoding": "Transcodificant",
|
||||||
"bitrate": "Taxa de bits",
|
"bitrate": "Taxa de bits",
|
||||||
"no_active": "Sense transmissions actives"
|
"no_active": "Sense transmissions actives",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Taxa",
|
"rate": "Taxa",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,8 +46,8 @@
|
|||||||
},
|
},
|
||||||
"unifi": {
|
"unifi": {
|
||||||
"users": "Uživatelé",
|
"users": "Uživatelé",
|
||||||
"uptime": "Doba provozu systému",
|
"uptime": "Doba provozu",
|
||||||
"days": "Dnů",
|
"days": "dní",
|
||||||
"wan": "WAN",
|
"wan": "WAN",
|
||||||
"lan": "LAN",
|
"lan": "LAN",
|
||||||
"wlan": "WLAN",
|
"wlan": "WLAN",
|
||||||
@ -56,8 +56,8 @@
|
|||||||
"wlan_devices": "Zařízení WLAN",
|
"wlan_devices": "Zařízení WLAN",
|
||||||
"lan_users": "Uživatelé LAN",
|
"lan_users": "Uživatelé LAN",
|
||||||
"wlan_users": "Uživatelé WLAN",
|
"wlan_users": "Uživatelé WLAN",
|
||||||
"up": "BĚŽÍ",
|
"up": "FUNKČNÍ",
|
||||||
"down": "NEBĚŽÍ",
|
"down": "NEFUNKČNÍ",
|
||||||
"wait": "Počkejte prosím",
|
"wait": "Počkejte prosím",
|
||||||
"empty_data": "Stav podsystému neznámý"
|
"empty_data": "Stav podsystému neznámý"
|
||||||
},
|
},
|
||||||
@ -95,7 +95,8 @@
|
|||||||
"playing": "Přehrává",
|
"playing": "Přehrává",
|
||||||
"transcoding": "Překódovávání",
|
"transcoding": "Překódovávání",
|
||||||
"bitrate": "Přenosová rychlost",
|
"bitrate": "Přenosová rychlost",
|
||||||
"no_active": "Žádný aktivní stream"
|
"no_active": "Žádný aktivní stream",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rychlost",
|
"rate": "Rychlost",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -234,7 +234,8 @@
|
|||||||
"playing": "Afspiller",
|
"playing": "Afspiller",
|
||||||
"transcoding": "Transcoder",
|
"transcoding": "Transcoder",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Ingen Aktive Streams"
|
"no_active": "Ingen Aktive Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rate",
|
"rate": "Rate",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"playing": "Spielen",
|
"playing": "Spielen",
|
||||||
"transcoding": "Transcodierung",
|
"transcoding": "Transcodierung",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Keine aktiven Streams"
|
"no_active": "Keine aktiven Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Aktiv",
|
"active": "Aktiv",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,8 @@
|
|||||||
"playing": "Αναπαράγει",
|
"playing": "Αναπαράγει",
|
||||||
"transcoding": "Μετακωδικοποίηση",
|
"transcoding": "Μετακωδικοποίηση",
|
||||||
"bitrate": "Ρυθμός bit",
|
"bitrate": "Ρυθμός bit",
|
||||||
"no_active": "Δεν υπάρχουν ενεργές ροές"
|
"no_active": "Δεν υπάρχουν ενεργές ροές",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Ρυθμός",
|
"rate": "Ρυθμός",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "Connected APs",
|
"connectedAp": "Connected APs",
|
||||||
@ -663,5 +664,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -87,7 +87,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rate",
|
"rate": "Rate",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Comprueba la conexión a Plex"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Activo",
|
"active": "Activo",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Serie",
|
"seriesCount": "Serie",
|
||||||
"totalFiles": "Archivos"
|
"totalFiles": "Archivos"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Resultado",
|
||||||
|
"status": "Estado",
|
||||||
|
"buildId": "ID de la compilación",
|
||||||
|
"succeeded": "Con éxito",
|
||||||
|
"notStarted": "No iniciado",
|
||||||
|
"failed": "Fallido",
|
||||||
|
"canceled": "Cancelado",
|
||||||
|
"inProgress": "En proceso"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
669
public/locales/eu/common.json
Normal file
669
public/locales/eu/common.json
Normal file
@ -0,0 +1,669 @@
|
|||||||
|
{
|
||||||
|
"wmo": {
|
||||||
|
"95-night": "Thunderstorm",
|
||||||
|
"96-day": "Thunderstorm With Hail",
|
||||||
|
"96-night": "Thunderstorm With Hail",
|
||||||
|
"99-day": "Thunderstorm With Hail",
|
||||||
|
"0-day": "Sunny",
|
||||||
|
"0-night": "Clear",
|
||||||
|
"1-day": "Mainly Sunny",
|
||||||
|
"1-night": "Mainly Clear",
|
||||||
|
"2-day": "Partly Cloudy",
|
||||||
|
"2-night": "Partly Cloudy",
|
||||||
|
"3-day": "Cloudy",
|
||||||
|
"3-night": "Cloudy",
|
||||||
|
"45-day": "Foggy",
|
||||||
|
"45-night": "Foggy",
|
||||||
|
"48-day": "Foggy",
|
||||||
|
"48-night": "Foggy",
|
||||||
|
"51-day": "Light Drizzle",
|
||||||
|
"51-night": "Light Drizzle",
|
||||||
|
"53-day": "Drizzle",
|
||||||
|
"53-night": "Drizzle",
|
||||||
|
"55-day": "Heavy Drizzle",
|
||||||
|
"55-night": "Heavy Drizzle",
|
||||||
|
"56-day": "Light Freezing Drizzle",
|
||||||
|
"56-night": "Light Freezing Drizzle",
|
||||||
|
"57-day": "Freezing Drizzle",
|
||||||
|
"57-night": "Freezing Drizzle",
|
||||||
|
"61-day": "Light Rain",
|
||||||
|
"61-night": "Light Rain",
|
||||||
|
"63-day": "Rain",
|
||||||
|
"63-night": "Rain",
|
||||||
|
"65-day": "Heavy Rain",
|
||||||
|
"65-night": "Heavy Rain",
|
||||||
|
"66-day": "Freezing Rain",
|
||||||
|
"66-night": "Freezing Rain",
|
||||||
|
"67-day": "Freezing Rain",
|
||||||
|
"67-night": "Freezing Rain",
|
||||||
|
"71-day": "Light Snow",
|
||||||
|
"71-night": "Light Snow",
|
||||||
|
"73-day": "Snow",
|
||||||
|
"73-night": "Snow",
|
||||||
|
"75-day": "Heavy Snow",
|
||||||
|
"75-night": "Heavy Snow",
|
||||||
|
"77-day": "Snow Grains",
|
||||||
|
"77-night": "Snow Grains",
|
||||||
|
"80-day": "Light Showers",
|
||||||
|
"80-night": "Light Showers",
|
||||||
|
"81-day": "Showers",
|
||||||
|
"81-night": "Showers",
|
||||||
|
"82-day": "Heavy Showers",
|
||||||
|
"82-night": "Heavy Showers",
|
||||||
|
"85-day": "Snow Showers",
|
||||||
|
"85-night": "Snow Showers",
|
||||||
|
"86-day": "Snow Showers",
|
||||||
|
"86-night": "Snow Showers",
|
||||||
|
"95-day": "Thunderstorm",
|
||||||
|
"99-night": "Thunderstorm With Hail"
|
||||||
|
},
|
||||||
|
"homebridge": {
|
||||||
|
"updates": "Updates",
|
||||||
|
"available_update": "System",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"common": {
|
||||||
|
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||||
|
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"missing_type": "Missing Widget Type: {{type}}",
|
||||||
|
"api_error": "API Error",
|
||||||
|
"information": "Informazioa",
|
||||||
|
"status": "Status",
|
||||||
|
"url": "URL",
|
||||||
|
"raw_error": "Raw Error",
|
||||||
|
"response_data": "Response Data"
|
||||||
|
},
|
||||||
|
"weather": {
|
||||||
|
"current": "Current Location",
|
||||||
|
"allow": "Click to allow",
|
||||||
|
"updating": "Eguneratzen",
|
||||||
|
"wait": "Itxaron mesedez"
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"placeholder": "Bilatu…"
|
||||||
|
},
|
||||||
|
"resources": {
|
||||||
|
"cpu": "CPU",
|
||||||
|
"mem": "MEM",
|
||||||
|
"total": "Guztira",
|
||||||
|
"free": "Free",
|
||||||
|
"used": "Erabilita",
|
||||||
|
"load": "Load",
|
||||||
|
"temp": "TEMP",
|
||||||
|
"max": "Max",
|
||||||
|
"uptime": "UP",
|
||||||
|
"months": "mo",
|
||||||
|
"days": "d",
|
||||||
|
"hours": "h",
|
||||||
|
"minutes": "m"
|
||||||
|
},
|
||||||
|
"unifi": {
|
||||||
|
"users": "Users",
|
||||||
|
"uptime": "System Uptime",
|
||||||
|
"days": "Egun",
|
||||||
|
"wan": "WAN",
|
||||||
|
"lan": "LAN",
|
||||||
|
"wlan": "WLAN",
|
||||||
|
"devices": "Gailuak",
|
||||||
|
"lan_devices": "LAN Gailuak",
|
||||||
|
"wlan_devices": "WLAN Gailuak",
|
||||||
|
"lan_users": "LAN Erabiltzaileak",
|
||||||
|
"wlan_users": "WLAN Erabiltzaileak",
|
||||||
|
"up": "UP",
|
||||||
|
"down": "DOWN",
|
||||||
|
"wait": "Itxaron mesedez",
|
||||||
|
"empty_data": "Subsystem status unknown"
|
||||||
|
},
|
||||||
|
"docker": {
|
||||||
|
"rx": "RX",
|
||||||
|
"tx": "TX",
|
||||||
|
"mem": "MEM",
|
||||||
|
"cpu": "CPU",
|
||||||
|
"running": "Running",
|
||||||
|
"offline": "Offline",
|
||||||
|
"error": "Error",
|
||||||
|
"unknown": "Ezezaguna",
|
||||||
|
"healthy": "Osasuntsu",
|
||||||
|
"starting": "Abiarazten",
|
||||||
|
"unhealthy": "Unhealthy",
|
||||||
|
"not_found": "Not Found",
|
||||||
|
"exited": "Exited",
|
||||||
|
"partial": "Partial"
|
||||||
|
},
|
||||||
|
"ping": {
|
||||||
|
"error": "Errorea",
|
||||||
|
"ping": "Ping"
|
||||||
|
},
|
||||||
|
"emby": {
|
||||||
|
"playing": "Playing",
|
||||||
|
"transcoding": "Transcoding",
|
||||||
|
"bitrate": "Bit-tasa",
|
||||||
|
"no_active": "No Active Streams",
|
||||||
|
"movies": "Movies",
|
||||||
|
"series": "Series",
|
||||||
|
"episodes": "Episodes",
|
||||||
|
"songs": "Abestiak"
|
||||||
|
},
|
||||||
|
"evcc": {
|
||||||
|
"pv_power": "Production",
|
||||||
|
"battery_soc": "Battery",
|
||||||
|
"grid_power": "Grid",
|
||||||
|
"home_power": "Consumption",
|
||||||
|
"charge_power": "Charger",
|
||||||
|
"watt_hour": "Wh"
|
||||||
|
},
|
||||||
|
"flood": {
|
||||||
|
"download": "Download",
|
||||||
|
"upload": "Upload",
|
||||||
|
"leech": "Leech",
|
||||||
|
"seed": "Seed"
|
||||||
|
},
|
||||||
|
"freshrss": {
|
||||||
|
"subscriptions": "Subscriptions",
|
||||||
|
"unread": "Unread"
|
||||||
|
},
|
||||||
|
"caddy": {
|
||||||
|
"upstreams": "Upstreams",
|
||||||
|
"requests": "Current requests",
|
||||||
|
"requests_failed": "Failed requests"
|
||||||
|
},
|
||||||
|
"changedetectionio": {
|
||||||
|
"totalObserved": "Total Observed",
|
||||||
|
"diffsDetected": "Diffs Detected"
|
||||||
|
},
|
||||||
|
"channelsdvrserver": {
|
||||||
|
"shows": "Shows",
|
||||||
|
"recordings": "Recordings",
|
||||||
|
"scheduled": "Scheduled",
|
||||||
|
"passes": "Passes"
|
||||||
|
},
|
||||||
|
"tautulli": {
|
||||||
|
"playing": "Playing",
|
||||||
|
"transcoding": "Transcoding",
|
||||||
|
"bitrate": "Bitrate",
|
||||||
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
|
},
|
||||||
|
"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",
|
||||||
|
"albums": "Albums",
|
||||||
|
"movies": "Movies",
|
||||||
|
"tv": "TV Shows"
|
||||||
|
},
|
||||||
|
"sabnzbd": {
|
||||||
|
"rate": "Rate",
|
||||||
|
"queue": "Queue",
|
||||||
|
"timeleft": "Time Left"
|
||||||
|
},
|
||||||
|
"rutorrent": {
|
||||||
|
"active": "Active",
|
||||||
|
"upload": "Kargatu",
|
||||||
|
"download": "Deskargatu"
|
||||||
|
},
|
||||||
|
"transmission": {
|
||||||
|
"download": "Download",
|
||||||
|
"upload": "Upload",
|
||||||
|
"leech": "Leech",
|
||||||
|
"seed": "Seed"
|
||||||
|
},
|
||||||
|
"qbittorrent": {
|
||||||
|
"download": "Download",
|
||||||
|
"upload": "Upload",
|
||||||
|
"leech": "Leech",
|
||||||
|
"seed": "Seed"
|
||||||
|
},
|
||||||
|
"qnap": {
|
||||||
|
"cpuUsage": "CPU Usage",
|
||||||
|
"memUsage": "MEM Usage",
|
||||||
|
"systemTempC": "System Temp",
|
||||||
|
"poolUsage": "Pool Usage",
|
||||||
|
"volumeUsage": "Volume Usage",
|
||||||
|
"invalid": "Invalid"
|
||||||
|
},
|
||||||
|
"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",
|
||||||
|
"queue": "Queue",
|
||||||
|
"unknown": "Unknown"
|
||||||
|
},
|
||||||
|
"radarr": {
|
||||||
|
"wanted": "Wanted",
|
||||||
|
"missing": "Missing",
|
||||||
|
"queued": "Queued",
|
||||||
|
"movies": "Movies",
|
||||||
|
"queue": "Queue",
|
||||||
|
"unknown": "Unknown"
|
||||||
|
},
|
||||||
|
"lidarr": {
|
||||||
|
"wanted": "Wanted",
|
||||||
|
"queued": "Queued",
|
||||||
|
"artists": "Artists"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"pialert": {
|
||||||
|
"total": "Total",
|
||||||
|
"connected": "Connected",
|
||||||
|
"new_devices": "New Devices",
|
||||||
|
"down_alerts": "Down Alerts"
|
||||||
|
},
|
||||||
|
"pihole": {
|
||||||
|
"queries": "Queries",
|
||||||
|
"blocked": "Blocked",
|
||||||
|
"blocked_percent": "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"
|
||||||
|
},
|
||||||
|
"tailscale": {
|
||||||
|
"address": "Address",
|
||||||
|
"expires": "Expires",
|
||||||
|
"never": "Never",
|
||||||
|
"last_seen": "Last Seen",
|
||||||
|
"now": "Now",
|
||||||
|
"years": "{{number}}y",
|
||||||
|
"weeks": "{{number}}w",
|
||||||
|
"days": "{{number}}d",
|
||||||
|
"hours": "{{number}}h",
|
||||||
|
"minutes": "{{number}}m",
|
||||||
|
"seconds": "{{number}}s",
|
||||||
|
"ago": "{{value}} Ago"
|
||||||
|
},
|
||||||
|
"tdarr": {
|
||||||
|
"queue": "Queue",
|
||||||
|
"processed": "Processed",
|
||||||
|
"errored": "Errored",
|
||||||
|
"saved": "Saved"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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": "Jokalariak",
|
||||||
|
"version": "Version",
|
||||||
|
"status": "Status",
|
||||||
|
"up": "Online",
|
||||||
|
"down": "Offline"
|
||||||
|
},
|
||||||
|
"miniflux": {
|
||||||
|
"read": "Read",
|
||||||
|
"unread": "Unread"
|
||||||
|
},
|
||||||
|
"authentik": {
|
||||||
|
"users": "Users",
|
||||||
|
"loginsLast24H": "Logins (24h)",
|
||||||
|
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||||
|
},
|
||||||
|
"proxmox": {
|
||||||
|
"mem": "MEM",
|
||||||
|
"cpu": "CPU",
|
||||||
|
"lxc": "LXC",
|
||||||
|
"vms": "VMs"
|
||||||
|
},
|
||||||
|
"glances": {
|
||||||
|
"cpu": "CPU",
|
||||||
|
"load": "Load",
|
||||||
|
"wait": "Please wait",
|
||||||
|
"temp": "TEMP",
|
||||||
|
"warn": "Warn",
|
||||||
|
"uptime": "UP",
|
||||||
|
"total": "Total",
|
||||||
|
"free": "Free",
|
||||||
|
"used": "Used",
|
||||||
|
"days": "d",
|
||||||
|
"hours": "h"
|
||||||
|
},
|
||||||
|
"quicklaunch": {
|
||||||
|
"bookmark": "Bookmark",
|
||||||
|
"service": "Service",
|
||||||
|
"search": "Search",
|
||||||
|
"custom": "Custom",
|
||||||
|
"visit": "Visit",
|
||||||
|
"url": "URL"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"pfsense": {
|
||||||
|
"load": "Load Avg",
|
||||||
|
"memory": "Mem Usage",
|
||||||
|
"wanStatus": "WAN Status",
|
||||||
|
"up": "Up",
|
||||||
|
"down": "Down",
|
||||||
|
"temp": "Temp",
|
||||||
|
"disk": "Disk Usage",
|
||||||
|
"wanIP": "WAN IP"
|
||||||
|
},
|
||||||
|
"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",
|
||||||
|
"numfiles": "Files",
|
||||||
|
"numshares": "Shared Items"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"pterodactyl": {
|
||||||
|
"servers": "Servers",
|
||||||
|
"nodes": "Nodes"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"homeassistant": {
|
||||||
|
"people_home": "People Home",
|
||||||
|
"lights_on": "Lights On",
|
||||||
|
"switches_on": "Switches On"
|
||||||
|
},
|
||||||
|
"whatsupdocker": {
|
||||||
|
"monitoring": "Monitoring",
|
||||||
|
"updates": "Updates"
|
||||||
|
},
|
||||||
|
"jdownloader": {
|
||||||
|
"downloadCount": "Queue",
|
||||||
|
"downloadBytesRemaining": "Remaining",
|
||||||
|
"downloadTotalBytes": "Size",
|
||||||
|
"downloadSpeed": "Speed"
|
||||||
|
},
|
||||||
|
"kavita": {
|
||||||
|
"seriesCount": "Series",
|
||||||
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
|
}
|
||||||
|
}
|
@ -62,7 +62,8 @@
|
|||||||
"playing": "Toistaa",
|
"playing": "Toistaa",
|
||||||
"transcoding": "Transkoodaa",
|
"transcoding": "Transkoodaa",
|
||||||
"bitrate": "Bittinopeus",
|
"bitrate": "Bittinopeus",
|
||||||
"no_active": "Ei aktiivisia striimejä"
|
"no_active": "Ei aktiivisia striimejä",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Nopeus",
|
"rate": "Nopeus",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Vérifier la connexion à Plex"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Actif",
|
"active": "Actif",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Séries",
|
"seriesCount": "Séries",
|
||||||
"totalFiles": "Fichiers"
|
"totalFiles": "Fichiers"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Résultat",
|
||||||
|
"status": "Statut",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Réussi",
|
||||||
|
"notStarted": "Non démarré",
|
||||||
|
"failed": "Échoué",
|
||||||
|
"canceled": "Annulé",
|
||||||
|
"inProgress": "En cours"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,8 @@
|
|||||||
"playing": "מנגן",
|
"playing": "מנגן",
|
||||||
"transcoding": "מקודד",
|
"transcoding": "מקודד",
|
||||||
"bitrate": "סיביות",
|
"bitrate": "סיביות",
|
||||||
"no_active": "אין הזרמות פעילות"
|
"no_active": "אין הזרמות פעילות",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "יחס",
|
"rate": "יחס",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rate",
|
"rate": "Rate",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,8 @@
|
|||||||
"playing": "Reprodukcija",
|
"playing": "Reprodukcija",
|
||||||
"transcoding": "Prekodiranje",
|
"transcoding": "Prekodiranje",
|
||||||
"bitrate": "Stopa bitova",
|
"bitrate": "Stopa bitova",
|
||||||
"no_active": "Nema aktivnih prijenosa"
|
"no_active": "Nema aktivnih prijenosa",
|
||||||
|
"plex_connection_error": "Provjeri Plex vezu"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Stopa",
|
"rate": "Stopa",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Serije",
|
"seriesCount": "Serije",
|
||||||
"totalFiles": "Datoteke"
|
"totalFiles": "Datoteke"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,15 +4,15 @@
|
|||||||
"free": "Szabad",
|
"free": "Szabad",
|
||||||
"used": "Használt",
|
"used": "Használt",
|
||||||
"load": "Terhelés",
|
"load": "Terhelés",
|
||||||
"cpu": "CPU",
|
"cpu": "Processzor",
|
||||||
"mem": "MEM",
|
"mem": "MEM",
|
||||||
"temp": "TEMP",
|
"temp": "TEMP",
|
||||||
"max": "Max",
|
"max": "Max",
|
||||||
"uptime": "UP",
|
"uptime": "FUT",
|
||||||
"months": "mo",
|
"months": "hó",
|
||||||
"days": "d",
|
"days": "n",
|
||||||
"hours": "h",
|
"hours": "ó",
|
||||||
"minutes": "m"
|
"minutes": "p"
|
||||||
},
|
},
|
||||||
"docker": {
|
"docker": {
|
||||||
"rx": "RX",
|
"rx": "RX",
|
||||||
@ -20,20 +20,20 @@
|
|||||||
"mem": "MEM",
|
"mem": "MEM",
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"error": "Error",
|
"error": "Hiba",
|
||||||
"unknown": "Unknown",
|
"unknown": "Ismeretlen",
|
||||||
"unhealthy": "Unhealthy",
|
"unhealthy": "Egészségtelen",
|
||||||
"running": "Running",
|
"running": "Futó",
|
||||||
"starting": "Starting",
|
"starting": "Indul",
|
||||||
"not_found": "Not Found",
|
"not_found": "Nem található",
|
||||||
"exited": "Exited",
|
"exited": "Kilépett",
|
||||||
"partial": "Partial",
|
"partial": "Részleges",
|
||||||
"healthy": "Healthy"
|
"healthy": "Egészséges"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Keresett",
|
"wanted": "Keresett",
|
||||||
"queued": "Sorban áll",
|
"queued": "Sorban áll",
|
||||||
"artists": "Artists"
|
"artists": "Előadók"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
"wanted": "Keresett",
|
"wanted": "Keresett",
|
||||||
@ -48,16 +48,16 @@
|
|||||||
"missing_type": "Hiányzó Widget Típus: {{type}}",
|
"missing_type": "Hiányzó Widget Típus: {{type}}",
|
||||||
"api_error": "API Hiba",
|
"api_error": "API Hiba",
|
||||||
"status": "Státusz",
|
"status": "Státusz",
|
||||||
"information": "Information",
|
"information": "Információ",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"raw_error": "Raw Error",
|
"raw_error": "Nyers hiba",
|
||||||
"response_data": "Response Data"
|
"response_data": "Válaszadatok"
|
||||||
},
|
},
|
||||||
"weather": {
|
"weather": {
|
||||||
"current": "Aktuális hely",
|
"current": "Aktuális hely",
|
||||||
"allow": "Kattints az engedélyezéshez",
|
"allow": "Kattints az engedélyezéshez",
|
||||||
"updating": "Frissítés",
|
"updating": "Frissítés",
|
||||||
"wait": "Kérlek várj"
|
"wait": "Kérjük várjon"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"placeholder": "Keresés…"
|
"placeholder": "Keresés…"
|
||||||
@ -76,7 +76,8 @@
|
|||||||
"playing": "Lejátszás folyamatban",
|
"playing": "Lejátszás folyamatban",
|
||||||
"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",
|
||||||
|
"plex_connection_error": "Plex kapcsolat ellenőrzése"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Ráta",
|
"rate": "Ráta",
|
||||||
@ -109,16 +110,16 @@
|
|||||||
"wanted": "Keresett",
|
"wanted": "Keresett",
|
||||||
"queued": "Sorban áll",
|
"queued": "Sorban áll",
|
||||||
"series": "Sorozat",
|
"series": "Sorozat",
|
||||||
"queue": "Queue",
|
"queue": "Várólista",
|
||||||
"unknown": "Unknown"
|
"unknown": "Ismeretlen"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Keresett",
|
"wanted": "Keresett",
|
||||||
"queued": "Sorban áll",
|
"queued": "Sorban áll",
|
||||||
"movies": "Filmek",
|
"movies": "Filmek",
|
||||||
"missing": "Missing",
|
"missing": "Hiányzik",
|
||||||
"queue": "Queue",
|
"queue": "Várólista",
|
||||||
"unknown": "Unknown"
|
"unknown": "Ismeretlen"
|
||||||
},
|
},
|
||||||
"ombi": {
|
"ombi": {
|
||||||
"pending": "Függőben",
|
"pending": "Függőben",
|
||||||
@ -134,13 +135,13 @@
|
|||||||
"pending": "Függőben",
|
"pending": "Függőben",
|
||||||
"approved": "Engedélyezett",
|
"approved": "Engedélyezett",
|
||||||
"available": "Elérhető",
|
"available": "Elérhető",
|
||||||
"processing": "Processing"
|
"processing": "Feldolgozás"
|
||||||
},
|
},
|
||||||
"pihole": {
|
"pihole": {
|
||||||
"queries": "Lekérdezések",
|
"queries": "Lekérdezések",
|
||||||
"blocked": "Blokkolt",
|
"blocked": "Blokkolt",
|
||||||
"gravity": "Gravitáció",
|
"gravity": "Gravitáció",
|
||||||
"blocked_percent": "Blocked %"
|
"blocked_percent": "Blokkolt %"
|
||||||
},
|
},
|
||||||
"adguard": {
|
"adguard": {
|
||||||
"queries": "Lekérdezések",
|
"queries": "Lekérdezések",
|
||||||
@ -192,184 +193,184 @@
|
|||||||
"errored": "Hibás"
|
"errored": "Hibás"
|
||||||
},
|
},
|
||||||
"mastodon": {
|
"mastodon": {
|
||||||
"user_count": "Users",
|
"user_count": "Felhasználók",
|
||||||
"status_count": "Posts",
|
"status_count": "Posztok",
|
||||||
"domain_count": "Domains"
|
"domain_count": "Domainek"
|
||||||
},
|
},
|
||||||
"strelaysrv": {
|
"strelaysrv": {
|
||||||
"numActiveSessions": "Sessions",
|
"numActiveSessions": "Munkamenetek",
|
||||||
"numConnections": "Connections",
|
"numConnections": "Csatlakozások",
|
||||||
"dataRelayed": "Relayed",
|
"dataRelayed": "Átirányított",
|
||||||
"transferRate": "Rate"
|
"transferRate": "Ráta"
|
||||||
},
|
},
|
||||||
"authentik": {
|
"authentik": {
|
||||||
"users": "Users",
|
"users": "Felhasználók",
|
||||||
"loginsLast24H": "Logins (24h)",
|
"loginsLast24H": "Bejelentkezések (24 óra)",
|
||||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
"failedLoginsLast24H": "Sikertelen bejelentkezések (24h)"
|
||||||
},
|
},
|
||||||
"proxmox": {
|
"proxmox": {
|
||||||
"mem": "MEM",
|
"mem": "RAM",
|
||||||
"cpu": "CPU",
|
"cpu": "Processzor",
|
||||||
"lxc": "LXC",
|
"lxc": "LXC",
|
||||||
"vms": "VMs"
|
"vms": "VM-ek"
|
||||||
},
|
},
|
||||||
"unifi": {
|
"unifi": {
|
||||||
"users": "Users",
|
"users": "Felhasználók",
|
||||||
"uptime": "System Uptime",
|
"uptime": "Rendszer üzemidő",
|
||||||
"days": "Days",
|
"days": "Napok",
|
||||||
"wan": "WAN",
|
"wan": "WAN",
|
||||||
"lan_users": "LAN Users",
|
"lan_users": "LAN Felhasználók",
|
||||||
"wlan_users": "WLAN Users",
|
"wlan_users": "WLAN Felhasználók",
|
||||||
"up": "UP",
|
"up": "FUT",
|
||||||
"down": "DOWN",
|
"down": "ÁLL",
|
||||||
"wait": "Please wait",
|
"wait": "Kérjük várjon",
|
||||||
"lan": "LAN",
|
"lan": "LAN",
|
||||||
"wlan": "WLAN",
|
"wlan": "WLAN",
|
||||||
"devices": "Devices",
|
"devices": "Eszközök",
|
||||||
"lan_devices": "LAN Devices",
|
"lan_devices": "LAN Eszközök",
|
||||||
"wlan_devices": "WLAN Devices",
|
"wlan_devices": "WLAN Eszközök",
|
||||||
"empty_data": "Subsystem status unknown"
|
"empty_data": "Az alrendszer állapota ismeretlen"
|
||||||
},
|
},
|
||||||
"plex": {
|
"plex": {
|
||||||
"streams": "Active Streams",
|
"streams": "Aktív Stream-ek",
|
||||||
"movies": "Movies",
|
"movies": "Filmek",
|
||||||
"tv": "TV Shows",
|
"tv": "TV műsorok",
|
||||||
"albums": "Albums"
|
"albums": "Albumok"
|
||||||
},
|
},
|
||||||
"glances": {
|
"glances": {
|
||||||
"cpu": "CPU",
|
"cpu": "Processzor",
|
||||||
"wait": "Please wait",
|
"wait": "Kérjük várjon",
|
||||||
"temp": "TEMP",
|
"temp": "HŐMÉRSÉKLET",
|
||||||
"uptime": "UP",
|
"uptime": "FUT",
|
||||||
"days": "d",
|
"days": "n",
|
||||||
"hours": "h",
|
"hours": "ó",
|
||||||
"load": "Load",
|
"load": "Kapacitáskihasználás",
|
||||||
"warn": "Warn",
|
"warn": "Figyelmeztet",
|
||||||
"total": "Total",
|
"total": "Összes",
|
||||||
"free": "Free",
|
"free": "Szabad",
|
||||||
"used": "Used"
|
"used": "Felhasznált"
|
||||||
},
|
},
|
||||||
"changedetectionio": {
|
"changedetectionio": {
|
||||||
"totalObserved": "Total Observed",
|
"totalObserved": "Összes Megfigyelt",
|
||||||
"diffsDetected": "Diffs Detected"
|
"diffsDetected": "Észlelt különbségek"
|
||||||
},
|
},
|
||||||
"wmo": {
|
"wmo": {
|
||||||
"0-day": "Napos",
|
"0-day": "Napos",
|
||||||
"0-night": "Derült",
|
"0-night": "Derült",
|
||||||
"3-day": "Cloudy",
|
"3-day": "Felhős",
|
||||||
"3-night": "Cloudy",
|
"3-night": "Felhős",
|
||||||
"45-day": "Foggy",
|
"45-day": "Ködös",
|
||||||
"53-day": "Drizzle",
|
"53-day": "Szitálás",
|
||||||
"56-night": "Light Freezing Drizzle",
|
"56-night": "Enyhe fagyos szitálás",
|
||||||
"57-day": "Freezing Drizzle",
|
"57-day": "Fagyos szitálás",
|
||||||
"1-day": "Többnyire napos",
|
"1-day": "Többnyire napos",
|
||||||
"1-night": "Többnyire derült",
|
"1-night": "Többnyire derült",
|
||||||
"2-day": "Partly Cloudy",
|
"2-day": "Részben felhős",
|
||||||
"2-night": "Partly Cloudy",
|
"2-night": "Részben felhős",
|
||||||
"45-night": "Foggy",
|
"45-night": "Ködös",
|
||||||
"48-day": "Foggy",
|
"48-day": "Ködös",
|
||||||
"48-night": "Foggy",
|
"48-night": "Ködös",
|
||||||
"51-day": "Light Drizzle",
|
"51-day": "Enyhe szitálás",
|
||||||
"51-night": "Light Drizzle",
|
"51-night": "Enyhe szitálás",
|
||||||
"57-night": "Freezing Drizzle",
|
"57-night": "Fagyos szitálás",
|
||||||
"61-day": "Light Rain",
|
"61-day": "Enyhe eső",
|
||||||
"61-night": "Light Rain",
|
"61-night": "Enyhe eső",
|
||||||
"53-night": "Drizzle",
|
"53-night": "Szitálás",
|
||||||
"55-day": "Heavy Drizzle",
|
"55-day": "Erős szitálás",
|
||||||
"55-night": "Heavy Drizzle",
|
"55-night": "Erős szitálás",
|
||||||
"56-day": "Light Freezing Drizzle",
|
"56-day": "Enyhe fagyos szitálás",
|
||||||
"63-day": "Rain",
|
"63-day": "Eső",
|
||||||
"63-night": "Rain",
|
"63-night": "Eső",
|
||||||
"65-day": "Heavy Rain",
|
"65-day": "Heves eső",
|
||||||
"65-night": "Heavy Rain",
|
"65-night": "Heves eső",
|
||||||
"66-day": "Freezing Rain",
|
"66-day": "Ónos eső",
|
||||||
"66-night": "Freezing Rain",
|
"66-night": "Ónos eső",
|
||||||
"67-day": "Freezing Rain",
|
"67-day": "Ónos eső",
|
||||||
"67-night": "Freezing Rain",
|
"67-night": "Ónos eső",
|
||||||
"71-day": "Light Snow",
|
"71-day": "Enyhe havazás",
|
||||||
"71-night": "Light Snow",
|
"71-night": "Enyhe havazás",
|
||||||
"73-day": "Snow",
|
"73-day": "Hó",
|
||||||
"73-night": "Snow",
|
"73-night": "Hó",
|
||||||
"75-day": "Heavy Snow",
|
"75-day": "Erős havazás",
|
||||||
"75-night": "Heavy Snow",
|
"75-night": "Erős havazás",
|
||||||
"77-day": "Snow Grains",
|
"77-day": "Hódara",
|
||||||
"77-night": "Snow Grains",
|
"77-night": "Hódara",
|
||||||
"80-day": "Light Showers",
|
"80-day": "Enyhe záporok",
|
||||||
"80-night": "Light Showers",
|
"80-night": "Enyhe záporok",
|
||||||
"81-day": "Showers",
|
"81-day": "Záporok",
|
||||||
"81-night": "Showers",
|
"81-night": "Záporok",
|
||||||
"82-day": "Heavy Showers",
|
"82-day": "Heves záporok",
|
||||||
"82-night": "Heavy Showers",
|
"82-night": "Heves záporok",
|
||||||
"85-day": "Snow Showers",
|
"85-day": "Hózáporok",
|
||||||
"85-night": "Snow Showers",
|
"85-night": "Hózáporok",
|
||||||
"86-day": "Snow Showers",
|
"86-day": "Hózáporok",
|
||||||
"86-night": "Snow Showers",
|
"86-night": "Hózáporok",
|
||||||
"95-day": "Thunderstorm",
|
"95-day": "Zivatar",
|
||||||
"95-night": "Thunderstorm",
|
"95-night": "Zivatar",
|
||||||
"96-day": "Thunderstorm With Hail",
|
"96-day": "Zivatar jégesővel",
|
||||||
"96-night": "Thunderstorm With Hail",
|
"96-night": "Zivatar jégesővel",
|
||||||
"99-day": "Thunderstorm With Hail",
|
"99-day": "Zivatar jégesővel",
|
||||||
"99-night": "Thunderstorm With Hail"
|
"99-night": "Zivatar jégesővel"
|
||||||
},
|
},
|
||||||
"quicklaunch": {
|
"quicklaunch": {
|
||||||
"bookmark": "Bookmark",
|
"bookmark": "Könyvjelző",
|
||||||
"service": "Service",
|
"service": "Szolgáltatás",
|
||||||
"search": "Search",
|
"search": "Keresés",
|
||||||
"custom": "Custom",
|
"custom": "Egyedi",
|
||||||
"visit": "Visit",
|
"visit": "Megnéz",
|
||||||
"url": "URL"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"homebridge": {
|
"homebridge": {
|
||||||
"available_update": "System",
|
"available_update": "Rendszer",
|
||||||
"updates": "Updates",
|
"updates": "Frissítések",
|
||||||
"update_available": "Update Available",
|
"update_available": "Elérhető Frissítés",
|
||||||
"up_to_date": "Up to Date",
|
"up_to_date": "Naprakész",
|
||||||
"child_bridges": "Child Bridges",
|
"child_bridges": "Gyerek Hidak",
|
||||||
"child_bridges_status": "{{ok}}/{{total}}",
|
"child_bridges_status": "{{ok}}/{{total}}",
|
||||||
"up": "Up",
|
"up": "Fut",
|
||||||
"pending": "Pending",
|
"pending": "Függőben",
|
||||||
"down": "Down"
|
"down": "Áll"
|
||||||
},
|
},
|
||||||
"autobrr": {
|
"autobrr": {
|
||||||
"approvedPushes": "Approved",
|
"approvedPushes": "Jóváhagyott",
|
||||||
"rejectedPushes": "Rejected",
|
"rejectedPushes": "Elutasított",
|
||||||
"filters": "Filters",
|
"filters": "Szűrők",
|
||||||
"indexers": "Indexers"
|
"indexers": "Indexelők"
|
||||||
},
|
},
|
||||||
"watchtower": {
|
"watchtower": {
|
||||||
"containers_scanned": "Scanned",
|
"containers_scanned": "Beolvasott",
|
||||||
"containers_updated": "Updated",
|
"containers_updated": "Frissített",
|
||||||
"containers_failed": "Failed"
|
"containers_failed": "Sikertelen"
|
||||||
},
|
},
|
||||||
"tubearchivist": {
|
"tubearchivist": {
|
||||||
"downloads": "Queue",
|
"downloads": "Várólista",
|
||||||
"videos": "Videos",
|
"videos": "Videók",
|
||||||
"channels": "Channels",
|
"channels": "Csatornák",
|
||||||
"playlists": "Playlists"
|
"playlists": "Lejátszási listák"
|
||||||
},
|
},
|
||||||
"truenas": {
|
"truenas": {
|
||||||
"load": "System Load",
|
"load": "Rendszerterheltség",
|
||||||
"uptime": "Uptime",
|
"uptime": "Üzemidő",
|
||||||
"alerts": "Alerts",
|
"alerts": "Riasztások",
|
||||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||||
},
|
},
|
||||||
"navidrome": {
|
"navidrome": {
|
||||||
"nothing_streaming": "No Active Streams",
|
"nothing_streaming": "Nincsenek Aktív Stream-ek",
|
||||||
"please_wait": "Please Wait"
|
"please_wait": "Kérjük Várjon"
|
||||||
},
|
},
|
||||||
"pyload": {
|
"pyload": {
|
||||||
"speed": "Speed",
|
"speed": "Sebesség",
|
||||||
"active": "Active",
|
"active": "Aktív",
|
||||||
"queue": "Queue",
|
"queue": "Várólista",
|
||||||
"total": "Total"
|
"total": "Összes"
|
||||||
},
|
},
|
||||||
"gluetun": {
|
"gluetun": {
|
||||||
"public_ip": "Public IP",
|
"public_ip": "Nyilvános IP-cím",
|
||||||
"region": "Region",
|
"region": "Régió",
|
||||||
"country": "Country"
|
"country": "Ország"
|
||||||
},
|
},
|
||||||
"hdhomerun": {
|
"hdhomerun": {
|
||||||
"channels": "Channels",
|
"channels": "Csatornák",
|
||||||
"hd": "HD"
|
"hd": "HD"
|
||||||
},
|
},
|
||||||
"ping": {
|
"ping": {
|
||||||
@ -377,197 +378,197 @@
|
|||||||
"ping": "Ping"
|
"ping": "Ping"
|
||||||
},
|
},
|
||||||
"scrutiny": {
|
"scrutiny": {
|
||||||
"passed": "Passed",
|
"passed": "Megfelelt",
|
||||||
"failed": "Failed",
|
"failed": "Sikertelen",
|
||||||
"unknown": "Unknown"
|
"unknown": "Ismeretlen"
|
||||||
},
|
},
|
||||||
"paperlessngx": {
|
"paperlessngx": {
|
||||||
"inbox": "Inbox",
|
"inbox": "Beérkezett",
|
||||||
"total": "Total"
|
"total": "Összes"
|
||||||
},
|
},
|
||||||
"deluge": {
|
"deluge": {
|
||||||
"download": "Download",
|
"download": "Letöltés",
|
||||||
"seed": "Seed",
|
"seed": "Seed",
|
||||||
"upload": "Upload",
|
"upload": "Feltöltés",
|
||||||
"leech": "Leech"
|
"leech": "Leech"
|
||||||
},
|
},
|
||||||
"flood": {
|
"flood": {
|
||||||
"download": "Download",
|
"download": "Letöltés",
|
||||||
"upload": "Upload",
|
"upload": "Feltöltés",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
"queue": "Queue",
|
"queue": "Várólista",
|
||||||
"processed": "Processed",
|
"processed": "Feldolgozott",
|
||||||
"errored": "Errored",
|
"errored": "Hibás",
|
||||||
"saved": "Saved"
|
"saved": "Mentett"
|
||||||
},
|
},
|
||||||
"miniflux": {
|
"miniflux": {
|
||||||
"read": "Read",
|
"read": "Olvasott",
|
||||||
"unread": "Unread"
|
"unread": "Olvasatlan"
|
||||||
},
|
},
|
||||||
"nextdns": {
|
"nextdns": {
|
||||||
"wait": "Please Wait",
|
"wait": "Kérjük Várjon",
|
||||||
"no_devices": "No Device Data Received"
|
"no_devices": "Nincs fogadott eszközadat"
|
||||||
},
|
},
|
||||||
"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": {
|
||||||
"activeUser": "Active devices",
|
"activeUser": "Aktív eszközök",
|
||||||
"alerts": "Alerts",
|
"alerts": "Riasztások",
|
||||||
"connectedAp": "Connected APs",
|
"connectedAp": "Csatlakoztatott AP-k",
|
||||||
"connectedGateway": "Connected gateways",
|
"connectedGateway": "Csatlakoztatott gateway-ek",
|
||||||
"connectedSwitches": "Connected switches"
|
"connectedSwitches": "Csatlakoztatott switch-ek"
|
||||||
},
|
},
|
||||||
"downloadstation": {
|
"downloadstation": {
|
||||||
"download": "Download",
|
"download": "Letöltés",
|
||||||
"upload": "Upload",
|
"upload": "Feltöltés",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
"mikrotik": {
|
"mikrotik": {
|
||||||
"cpuLoad": "CPU Load",
|
"cpuLoad": "Processzor Terhelés",
|
||||||
"memoryUsed": "Memory Used",
|
"memoryUsed": "Felhasznált Memória",
|
||||||
"uptime": "Uptime",
|
"uptime": "Üzemidő",
|
||||||
"numberOfLeases": "Leases"
|
"numberOfLeases": "Bérletek"
|
||||||
},
|
},
|
||||||
"xteve": {
|
"xteve": {
|
||||||
"streams_all": "All Streams",
|
"streams_all": "Minden Stream",
|
||||||
"streams_active": "Active Streams",
|
"streams_active": "Aktív Stream-ek",
|
||||||
"streams_xepg": "XEPG Channels"
|
"streams_xepg": "XEPG Csatornák"
|
||||||
},
|
},
|
||||||
"opnsense": {
|
"opnsense": {
|
||||||
"cpu": "CPU Load",
|
"cpu": "Processzor Terhelés",
|
||||||
"memory": "Active Memory",
|
"memory": "Aktív Memória",
|
||||||
"wanUpload": "WAN Upload",
|
"wanUpload": "WAN Feltöltés",
|
||||||
"wanDownload": "WAN Download"
|
"wanDownload": "WAN Letöltés"
|
||||||
},
|
},
|
||||||
"moonraker": {
|
"moonraker": {
|
||||||
"layers": "Layers",
|
"layers": "Rétegek",
|
||||||
"printer_state": "Printer State",
|
"printer_state": "Nyomtató Állapota",
|
||||||
"print_status": "Print Status",
|
"print_status": "Nyomtatás Állapota",
|
||||||
"print_progress": "Progress"
|
"print_progress": "Folyamat"
|
||||||
},
|
},
|
||||||
"medusa": {
|
"medusa": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Keresett",
|
||||||
"queued": "Queued",
|
"queued": "Sorba állítva",
|
||||||
"series": "Series"
|
"series": "Sorozatok"
|
||||||
},
|
},
|
||||||
"octoprint": {
|
"octoprint": {
|
||||||
"printer_state": "Status",
|
"printer_state": "Állapot",
|
||||||
"temp_tool": "Tool temp",
|
"temp_tool": "Szerszám hőmérséklet",
|
||||||
"temp_bed": "Bed temp",
|
"temp_bed": "Ágy Hőmérséklet",
|
||||||
"job_completion": "Completion"
|
"job_completion": "Teljesítés"
|
||||||
},
|
},
|
||||||
"cloudflared": {
|
"cloudflared": {
|
||||||
"origin_ip": "Origin IP",
|
"origin_ip": "Eredeti IP",
|
||||||
"status": "Status"
|
"status": "Állapot"
|
||||||
},
|
},
|
||||||
"proxmoxbackupserver": {
|
"proxmoxbackupserver": {
|
||||||
"datastore_usage": "Datastore",
|
"datastore_usage": "Adattár",
|
||||||
"failed_tasks_24h": "Failed Tasks 24h",
|
"failed_tasks_24h": "Sikertelen feladatok 24h",
|
||||||
"cpu_usage": "CPU",
|
"cpu_usage": "Processzor",
|
||||||
"memory_usage": "Memory"
|
"memory_usage": "Memória"
|
||||||
},
|
},
|
||||||
"immich": {
|
"immich": {
|
||||||
"users": "Users",
|
"users": "Felhasználók",
|
||||||
"photos": "Photos",
|
"photos": "Fényképek",
|
||||||
"videos": "Videos",
|
"videos": "Videók",
|
||||||
"storage": "Storage"
|
"storage": "Tárhely"
|
||||||
},
|
},
|
||||||
"uptimekuma": {
|
"uptimekuma": {
|
||||||
"up": "Sites Up",
|
"up": "Futó Webhelyek",
|
||||||
"down": "Sites Down",
|
"down": "Nem Elérhető Webhelyek",
|
||||||
"uptime": "Uptime",
|
"uptime": "Üzemidő",
|
||||||
"incident": "Incident",
|
"incident": "Incidens",
|
||||||
"m": "m"
|
"m": "perc"
|
||||||
},
|
},
|
||||||
"komga": {
|
"komga": {
|
||||||
"libraries": "Libraries",
|
"libraries": "Könyvtárak",
|
||||||
"series": "Series",
|
"series": "Sorozatok",
|
||||||
"books": "Books"
|
"books": "Könyvek"
|
||||||
},
|
},
|
||||||
"mylar": {
|
"mylar": {
|
||||||
"series": "Series",
|
"series": "Sorozatok",
|
||||||
"issues": "Issues",
|
"issues": "Problémák",
|
||||||
"wanted": "Wanted"
|
"wanted": "Keresett"
|
||||||
},
|
},
|
||||||
"photoprism": {
|
"photoprism": {
|
||||||
"albums": "Albums",
|
"albums": "Albumok",
|
||||||
"photos": "Photos",
|
"photos": "Fényképek",
|
||||||
"videos": "Videos",
|
"videos": "Videók",
|
||||||
"people": "People"
|
"people": "Emberek"
|
||||||
},
|
},
|
||||||
"diskstation": {
|
"diskstation": {
|
||||||
"days": "Days",
|
"days": "Napok",
|
||||||
"uptime": "Uptime",
|
"uptime": "Üzemidő",
|
||||||
"volumeAvailable": "Available"
|
"volumeAvailable": "Elérhető"
|
||||||
},
|
},
|
||||||
"fileflows": {
|
"fileflows": {
|
||||||
"queue": "Queue",
|
"queue": "Várólista",
|
||||||
"processing": "Processing",
|
"processing": "Feldolgozás",
|
||||||
"processed": "Processed",
|
"processed": "Feldolgozott",
|
||||||
"time": "Time"
|
"time": "Idő"
|
||||||
},
|
},
|
||||||
"grafana": {
|
"grafana": {
|
||||||
"dashboards": "Dashboards",
|
"dashboards": "Műszerfalak",
|
||||||
"datasources": "Data Sources",
|
"datasources": "Adatforrások",
|
||||||
"totalalerts": "Total Alerts",
|
"totalalerts": "Összes Riasztás",
|
||||||
"alertstriggered": "Alerts Triggered"
|
"alertstriggered": "Aktivált riasztások"
|
||||||
},
|
},
|
||||||
"nextcloud": {
|
"nextcloud": {
|
||||||
"cpuload": "Cpu Load",
|
"cpuload": "Processzor Terhelés",
|
||||||
"memoryusage": "Memory Usage",
|
"memoryusage": "Memória Használat",
|
||||||
"freespace": "Free Space",
|
"freespace": "Szabad hely",
|
||||||
"activeusers": "Active Users",
|
"activeusers": "Aktív Felhasználók",
|
||||||
"numfiles": "Files",
|
"numfiles": "Fájlok",
|
||||||
"numshares": "Shared Items"
|
"numshares": "Megosztott Elemek"
|
||||||
},
|
},
|
||||||
"kopia": {
|
"kopia": {
|
||||||
"status": "Status",
|
"status": "Állapot",
|
||||||
"size": "Size",
|
"size": "Méret",
|
||||||
"lastrun": "Last Run",
|
"lastrun": "Legutóbbi futtatás",
|
||||||
"nextrun": "Next Run",
|
"nextrun": "Következő Futtatás",
|
||||||
"failed": "Failed"
|
"failed": "Sikertelen"
|
||||||
},
|
},
|
||||||
"unmanic": {
|
"unmanic": {
|
||||||
"active_workers": "Active Workers",
|
"active_workers": "Aktív Dolgozók",
|
||||||
"total_workers": "Total Workers",
|
"total_workers": "Összes Dolgozó",
|
||||||
"records_total": "Queue Length"
|
"records_total": "Várólista Hossza"
|
||||||
},
|
},
|
||||||
"healthchecks": {
|
"healthchecks": {
|
||||||
"new": "New",
|
"new": "Új",
|
||||||
"up": "Online",
|
"up": "Online",
|
||||||
"grace": "In Grace Period",
|
"grace": "Türelmi idő alatt",
|
||||||
"down": "Offline",
|
"down": "Offline",
|
||||||
"paused": "Paused",
|
"paused": "Szünetel",
|
||||||
"status": "Status",
|
"status": "Állapot",
|
||||||
"last_ping": "Last Ping",
|
"last_ping": "Legutóbbi Ping",
|
||||||
"never": "No pings yet"
|
"never": "Még nincsenek ping-ek"
|
||||||
},
|
},
|
||||||
"pterodactyl": {
|
"pterodactyl": {
|
||||||
"servers": "Servers",
|
"servers": "Szerverek",
|
||||||
"nodes": "Nodes"
|
"nodes": "Node-ok"
|
||||||
},
|
},
|
||||||
"prometheus": {
|
"prometheus": {
|
||||||
"targets_up": "Targets Up",
|
"targets_up": "Célpontok Futnak",
|
||||||
"targets_down": "Targets Down",
|
"targets_down": "Célpontok Állnak",
|
||||||
"targets_total": "Total Targets"
|
"targets_total": "Összes Célpont"
|
||||||
},
|
},
|
||||||
"minecraft": {
|
"minecraft": {
|
||||||
"players": "Players",
|
"players": "Lejátszók",
|
||||||
"version": "Version",
|
"version": "Verzió",
|
||||||
"status": "Status",
|
"status": "Állapot",
|
||||||
"up": "Online",
|
"up": "Online",
|
||||||
"down": "Offline"
|
"down": "Offline"
|
||||||
},
|
},
|
||||||
"ghostfolio": {
|
"ghostfolio": {
|
||||||
"gross_percent_today": "Today",
|
"gross_percent_today": "Ma",
|
||||||
"gross_percent_1y": "One year",
|
"gross_percent_1y": "Egy év",
|
||||||
"gross_percent_max": "All time"
|
"gross_percent_max": "Mindig"
|
||||||
},
|
},
|
||||||
"audiobookshelf": {
|
"audiobookshelf": {
|
||||||
"podcasts": "Podcast",
|
"podcasts": "Podcast",
|
||||||
@ -576,83 +577,93 @@
|
|||||||
"booksDuration": "Időtartam"
|
"booksDuration": "Időtartam"
|
||||||
},
|
},
|
||||||
"homeassistant": {
|
"homeassistant": {
|
||||||
"people_home": "People Home",
|
"people_home": "Emberek otthon",
|
||||||
"lights_on": "Lights On",
|
"lights_on": "Fények bekapcsolva",
|
||||||
"switches_on": "Switches On"
|
"switches_on": "Kapcsolók felkapcsolva"
|
||||||
},
|
},
|
||||||
"freshrss": {
|
"freshrss": {
|
||||||
"subscriptions": "Subscriptions",
|
"subscriptions": "Előfizetések",
|
||||||
"unread": "Unread"
|
"unread": "Olvasatlan"
|
||||||
},
|
},
|
||||||
"channelsdvrserver": {
|
"channelsdvrserver": {
|
||||||
"shows": "Shows",
|
"shows": "Műsorok",
|
||||||
"recordings": "Recordings",
|
"recordings": "Felvételek",
|
||||||
"scheduled": "Scheduled",
|
"scheduled": "Ütemezett",
|
||||||
"passes": "Passes"
|
"passes": "Engedélyek"
|
||||||
},
|
},
|
||||||
"whatsupdocker": {
|
"whatsupdocker": {
|
||||||
"monitoring": "Monitoring",
|
"monitoring": "Nyomonkövetés",
|
||||||
"updates": "Updates"
|
"updates": "Frissítések"
|
||||||
},
|
},
|
||||||
"tailscale": {
|
"tailscale": {
|
||||||
"address": "Address",
|
"address": "Cím",
|
||||||
"expires": "Expires",
|
"expires": "Lejár",
|
||||||
"never": "Never",
|
"never": "Soha",
|
||||||
"last_seen": "Last Seen",
|
"last_seen": "Utoljára látott",
|
||||||
"now": "Now",
|
"now": "Most",
|
||||||
"years": "{{number}}y",
|
"years": "{{number}}y",
|
||||||
"weeks": "{{number}}w",
|
"weeks": "{{number}}w",
|
||||||
"days": "{{number}}d",
|
"days": "{{number}}d",
|
||||||
"minutes": "{{number}}m",
|
"minutes": "{{number}}m",
|
||||||
"seconds": "{{number}}s",
|
"seconds": "{{number}}s",
|
||||||
"ago": "{{value}} Ago",
|
"ago": "{{value}} Ezelőtt",
|
||||||
"hours": "{{number}}h"
|
"hours": "{{number}}h"
|
||||||
},
|
},
|
||||||
"qnap": {
|
"qnap": {
|
||||||
"cpuUsage": "CPU Usage",
|
"cpuUsage": "Processzor Használat",
|
||||||
"memUsage": "MEM Usage",
|
"memUsage": "Memória Használat",
|
||||||
"systemTempC": "System Temp",
|
"systemTempC": "Rendszerhőmérséklet",
|
||||||
"poolUsage": "Pool Usage",
|
"poolUsage": "Pool Használat",
|
||||||
"volumeUsage": "Volume Usage",
|
"volumeUsage": "Kötet Használat",
|
||||||
"invalid": "Invalid"
|
"invalid": "Érvénytelen"
|
||||||
},
|
},
|
||||||
"pfsense": {
|
"pfsense": {
|
||||||
"load": "Load Avg",
|
"load": "Átlagos terhelés",
|
||||||
"memory": "Mem Usage",
|
"memory": "RAM Használat",
|
||||||
"wanStatus": "WAN Status",
|
"wanStatus": "WAN Állapot",
|
||||||
"up": "Up",
|
"up": "Fut",
|
||||||
"down": "Down",
|
"down": "Áll",
|
||||||
"temp": "Temp",
|
"temp": "Hőmérséklet",
|
||||||
"disk": "Disk Usage",
|
"disk": "Lemezhasználat",
|
||||||
"wanIP": "WAN IP"
|
"wanIP": "WAN IP"
|
||||||
},
|
},
|
||||||
"caddy": {
|
"caddy": {
|
||||||
"upstreams": "Upstreams",
|
"upstreams": "Upstreamek",
|
||||||
"requests": "Current requests",
|
"requests": "Jelenlegi kérelmek",
|
||||||
"requests_failed": "Failed requests"
|
"requests_failed": "Sikertelen kérelmek"
|
||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"pv_power": "Production",
|
"pv_power": "Termelés",
|
||||||
"battery_soc": "Battery",
|
"battery_soc": "Akkumulátor",
|
||||||
"grid_power": "Grid",
|
"grid_power": "Rács",
|
||||||
"home_power": "Consumption",
|
"home_power": "Fogyasztás",
|
||||||
"charge_power": "Charger",
|
"charge_power": "Töltő",
|
||||||
"watt_hour": "Wh"
|
"watt_hour": "Wh"
|
||||||
},
|
},
|
||||||
"pialert": {
|
"pialert": {
|
||||||
"total": "Total",
|
"total": "Összes",
|
||||||
"connected": "Connected",
|
"connected": "Csatlakoztatott",
|
||||||
"new_devices": "New Devices",
|
"new_devices": "Új Eszközök",
|
||||||
"down_alerts": "Down Alerts"
|
"down_alerts": "Leállási Figyelmeztetések"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadSpeed": "Download Speed",
|
"downloadSpeed": "Sebesség",
|
||||||
"downloadCount": "Queue Count",
|
"downloadCount": "Összes függőben lévő",
|
||||||
"downloadTotalBytes": "Size",
|
"downloadTotalBytes": "Méret",
|
||||||
"downloadBytesRemaining": "Remaining"
|
"downloadBytesRemaining": "Fennmaradó"
|
||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Sorozatok",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Fájlok"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Eredmény",
|
||||||
|
"status": "Állapot",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Sikeres",
|
||||||
|
"notStarted": "Nincs elindítva",
|
||||||
|
"failed": "Sikertelen",
|
||||||
|
"canceled": "Megszakítva",
|
||||||
|
"inProgress": "Folyamatban"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -643,7 +643,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadCount": "Queue Count",
|
"downloadCount": "Queue Count",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,8 @@
|
|||||||
"playing": "In riproduzione",
|
"playing": "In riproduzione",
|
||||||
"transcoding": "Transcodifica",
|
"transcoding": "Transcodifica",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Nessuno Stream Attivo"
|
"no_active": "Nessuno Stream Attivo",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"speedtest": {
|
"speedtest": {
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Serie",
|
"seriesCount": "Serie",
|
||||||
"totalFiles": "File"
|
"totalFiles": "File"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,8 @@
|
|||||||
"playing": "再生中",
|
"playing": "再生中",
|
||||||
"transcoding": "変換中",
|
"transcoding": "変換中",
|
||||||
"bitrate": "ビットレート",
|
"bitrate": "ビットレート",
|
||||||
"no_active": "アクティブストリームなし"
|
"no_active": "アクティブストリームなし",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "接続されたAP",
|
"connectedAp": "接続されたAP",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,8 @@
|
|||||||
"playing": "재생 중",
|
"playing": "재생 중",
|
||||||
"transcoding": "트랜스코딩",
|
"transcoding": "트랜스코딩",
|
||||||
"bitrate": "비트레이트",
|
"bitrate": "비트레이트",
|
||||||
"no_active": "활성 스트림 없음"
|
"no_active": "활성 스트림 없음",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "연결된 AP",
|
"connectedAp": "연결된 AP",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "Savienotie piekļuves punkti",
|
"connectedAp": "Savienotie piekļuves punkti",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"result": "Result",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"plex": {
|
"plex": {
|
||||||
"streams": "Strim Aktif",
|
"streams": "Strim Aktif",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"playing": "Spiller",
|
"playing": "Spiller",
|
||||||
"transcoding": "Transkoding",
|
"transcoding": "Transkoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Ingen aktive strømmer"
|
"no_active": "Ingen aktive strømmer",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Aktiv",
|
"active": "Aktiv",
|
||||||
@ -653,6 +654,16 @@
|
|||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Filer"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,8 @@
|
|||||||
"playing": "Afspelen",
|
"playing": "Afspelen",
|
||||||
"transcoding": "Transcodering",
|
"transcoding": "Transcodering",
|
||||||
"bitrate": "Bitsnelheid",
|
"bitrate": "Bitsnelheid",
|
||||||
"no_active": "Geen Actieve Streams"
|
"no_active": "Geen Actieve Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Actief",
|
"active": "Actief",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,8 @@
|
|||||||
"playing": "Odtwarzanie",
|
"playing": "Odtwarzanie",
|
||||||
"transcoding": "Transkodowanie",
|
"transcoding": "Transkodowanie",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Brak aktywnych strumieni"
|
"no_active": "Brak aktywnych strumieni",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"speedtest": {
|
"speedtest": {
|
||||||
"download": "Pobieranie",
|
"download": "Pobieranie",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Taxa",
|
"rate": "Taxa",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"playing": "Reproduzindo",
|
"playing": "Reproduzindo",
|
||||||
"transcoding": "Transcodificação",
|
"transcoding": "Transcodificação",
|
||||||
"bitrate": "Taxa de bits",
|
"bitrate": "Taxa de bits",
|
||||||
"no_active": "Sem streams ativas"
|
"no_active": "Sem streams ativas",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Ativo",
|
"active": "Ativo",
|
||||||
@ -663,5 +664,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,8 @@
|
|||||||
"no_active": "Niciun stream activ",
|
"no_active": "Niciun stream activ",
|
||||||
"playing": "Activ",
|
"playing": "Activ",
|
||||||
"transcoding": "Transcodare",
|
"transcoding": "Transcodare",
|
||||||
"bitrate": "Bitrate"
|
"bitrate": "Bitrate",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rată",
|
"rate": "Rată",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"playing": "Воспроизведение",
|
"playing": "Воспроизведение",
|
||||||
"transcoding": "Транскодирование",
|
"transcoding": "Транскодирование",
|
||||||
"bitrate": "Битрейт",
|
"bitrate": "Битрейт",
|
||||||
"no_active": "Нет активных трансляций"
|
"no_active": "Нет активных трансляций",
|
||||||
|
"plex_connection_error": "Проверьте соединение с Plex"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Активный",
|
"active": "Активный",
|
||||||
@ -64,22 +65,22 @@
|
|||||||
"download": "Загрузка"
|
"download": "Загрузка"
|
||||||
},
|
},
|
||||||
"sonarr": {
|
"sonarr": {
|
||||||
"wanted": "Хотел",
|
"wanted": "Желаемое",
|
||||||
"queued": "В очереди",
|
"queued": "В очереди",
|
||||||
"series": "Серии",
|
"series": "Серии",
|
||||||
"queue": "Queue",
|
"queue": "Очередь",
|
||||||
"unknown": "Unknown"
|
"unknown": "Unknown"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Хотел",
|
"wanted": "Желаемое",
|
||||||
"queued": "В очереди",
|
"queued": "В очереди",
|
||||||
"movies": "Фильмы",
|
"movies": "Фильмы",
|
||||||
"missing": "Пропущено",
|
"missing": "Пропущено",
|
||||||
"queue": "Queue",
|
"queue": "Очередь",
|
||||||
"unknown": "Unknown"
|
"unknown": "Unknown"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
"wanted": "Хотел",
|
"wanted": "Желаемое",
|
||||||
"queued": "В очереди",
|
"queued": "В очереди",
|
||||||
"books": "Книги"
|
"books": "Книги"
|
||||||
},
|
},
|
||||||
@ -175,9 +176,9 @@
|
|||||||
"missingMovies": "Отсутствующие фильмы"
|
"missingMovies": "Отсутствующие фильмы"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Хотел",
|
"wanted": "Желаемое",
|
||||||
"queued": "В очереди",
|
"queued": "В очереди",
|
||||||
"artists": "Artists"
|
"artists": "Артисты"
|
||||||
},
|
},
|
||||||
"adguard": {
|
"adguard": {
|
||||||
"queries": "Запросы",
|
"queries": "Запросы",
|
||||||
@ -612,8 +613,8 @@
|
|||||||
"cpuUsage": "CPU Usage",
|
"cpuUsage": "CPU Usage",
|
||||||
"memUsage": "MEM Usage",
|
"memUsage": "MEM Usage",
|
||||||
"systemTempC": "System Temp",
|
"systemTempC": "System Temp",
|
||||||
"poolUsage": "Pool Usage",
|
"poolUsage": "Использование пула",
|
||||||
"volumeUsage": "Volume Usage",
|
"volumeUsage": "Использование тома",
|
||||||
"invalid": "Invalid"
|
"invalid": "Invalid"
|
||||||
},
|
},
|
||||||
"pfsense": {
|
"pfsense": {
|
||||||
@ -627,23 +628,23 @@
|
|||||||
"temp": "Temp"
|
"temp": "Temp"
|
||||||
},
|
},
|
||||||
"caddy": {
|
"caddy": {
|
||||||
"upstreams": "Upstreams",
|
"upstreams": "Апстримы",
|
||||||
"requests": "Current requests",
|
"requests": "Текущие запросы",
|
||||||
"requests_failed": "Failed requests"
|
"requests_failed": "Неудачные запросы"
|
||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"home_power": "Consumption",
|
"home_power": "Потребление",
|
||||||
"pv_power": "Production",
|
"pv_power": "Production",
|
||||||
"battery_soc": "Battery",
|
"battery_soc": "Battery",
|
||||||
"grid_power": "Grid",
|
"grid_power": "Grid",
|
||||||
"charge_power": "Charger",
|
"charge_power": "Зарядка",
|
||||||
"watt_hour": "Wh"
|
"watt_hour": "Wh"
|
||||||
},
|
},
|
||||||
"pialert": {
|
"pialert": {
|
||||||
"total": "Total",
|
"total": "Total",
|
||||||
"connected": "Connected",
|
"connected": "Connected",
|
||||||
"new_devices": "New Devices",
|
"new_devices": "Новые устройства",
|
||||||
"down_alerts": "Down Alerts"
|
"down_alerts": "Оповещения о сбоях"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadCount": "Queue Count",
|
"downloadCount": "Queue Count",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"inProgress": "In Progress",
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "Connected APs",
|
"connectedAp": "Connected APs",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,8 @@
|
|||||||
"transcoding": "Transkodira",
|
"transcoding": "Transkodira",
|
||||||
"bitrate": "Pasovna širina",
|
"bitrate": "Pasovna širina",
|
||||||
"playing": "Predvaja",
|
"playing": "Predvaja",
|
||||||
"no_active": "Ni aktivne vsebine"
|
"no_active": "Ni aktivne vsebine",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"flood": {
|
"flood": {
|
||||||
"download": "Prenos",
|
"download": "Prenos",
|
||||||
@ -236,21 +237,21 @@
|
|||||||
"wanted": "Iskano",
|
"wanted": "Iskano",
|
||||||
"queued": "V vrsti",
|
"queued": "V vrsti",
|
||||||
"series": "Serije",
|
"series": "Serije",
|
||||||
"queue": "Queue",
|
"queue": "Vrsta",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznano"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Iskano",
|
"wanted": "Iskano",
|
||||||
"missing": "Manjka",
|
"missing": "Manjka",
|
||||||
"queued": "V vrsti",
|
"queued": "V vrsti",
|
||||||
"movies": "Filmi",
|
"movies": "Filmi",
|
||||||
"queue": "Queue",
|
"queue": "Vrsta",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznano"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Iskano",
|
"wanted": "Iskano",
|
||||||
"queued": "V vrsti",
|
"queued": "V vrsti",
|
||||||
"artists": "Artists"
|
"artists": "Avtorji"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
"wanted": "Iskano",
|
"wanted": "Iskano",
|
||||||
@ -359,11 +360,11 @@
|
|||||||
"uptime": "UP",
|
"uptime": "UP",
|
||||||
"days": "d",
|
"days": "d",
|
||||||
"hours": "u",
|
"hours": "u",
|
||||||
"free": "Free",
|
"free": "Prosto",
|
||||||
"load": "Load",
|
"load": "Obremenitev",
|
||||||
"warn": "Warn",
|
"warn": "Opoz.",
|
||||||
"total": "Total",
|
"total": "Skupaj",
|
||||||
"used": "Used"
|
"used": "V uporabi"
|
||||||
},
|
},
|
||||||
"authentik": {
|
"authentik": {
|
||||||
"users": "Uporabniki",
|
"users": "Uporabniki",
|
||||||
@ -613,8 +614,8 @@
|
|||||||
"memUsage": "MEM",
|
"memUsage": "MEM",
|
||||||
"systemTempC": "Temperatura",
|
"systemTempC": "Temperatura",
|
||||||
"poolUsage": "Prostor",
|
"poolUsage": "Prostor",
|
||||||
"volumeUsage": "Volume Usage",
|
"volumeUsage": "Prostora",
|
||||||
"invalid": "Invalid"
|
"invalid": "Neveljavno"
|
||||||
},
|
},
|
||||||
"pfsense": {
|
"pfsense": {
|
||||||
"load": "Povp. obremenitev",
|
"load": "Povp. obremenitev",
|
||||||
@ -640,19 +641,29 @@
|
|||||||
"watt_hour": "Wh"
|
"watt_hour": "Wh"
|
||||||
},
|
},
|
||||||
"pialert": {
|
"pialert": {
|
||||||
"total": "Total",
|
"total": "Skupaj",
|
||||||
"connected": "Connected",
|
"connected": "Povezanih",
|
||||||
"new_devices": "New Devices",
|
"new_devices": "Nove naprave",
|
||||||
"down_alerts": "Down Alerts"
|
"down_alerts": "Izključeno"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadCount": "Queue Count",
|
"downloadCount": "Vrsta",
|
||||||
"downloadSpeed": "Download Speed",
|
"downloadSpeed": "Hitrost prenosa",
|
||||||
"downloadBytesRemaining": "Remaining",
|
"downloadBytesRemaining": "Še ostane",
|
||||||
"downloadTotalBytes": "Size"
|
"downloadTotalBytes": "Velikost"
|
||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Serije",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Datoteke"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Rate",
|
"rate": "Rate",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,8 @@
|
|||||||
"playing": "Spelar",
|
"playing": "Spelar",
|
||||||
"transcoding": "Omkodning",
|
"transcoding": "Omkodning",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "Inga aktiva strömmar"
|
"no_active": "Inga aktiva strömmar",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Hastighet",
|
"rate": "Hastighet",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"totalFiles": "Files",
|
"totalFiles": "Files",
|
||||||
"seriesCount": "Series"
|
"seriesCount": "Series"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,8 @@
|
|||||||
"playing": "ఆడుతున్నారు",
|
"playing": "ఆడుతున్నారు",
|
||||||
"transcoding": "ట్రాన్స్కోడింగ్",
|
"transcoding": "ట్రాన్స్కోడింగ్",
|
||||||
"bitrate": "బిట్రేట్",
|
"bitrate": "బిట్రేట్",
|
||||||
"no_active": "యాక్టివ్ స్ట్రీమ్లు లేవు"
|
"no_active": "యాక్టివ్ స్ట్రీమ్లు లేవు",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "రేట్",
|
"rate": "రేట్",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"totalFiles": "Files",
|
"totalFiles": "Files",
|
||||||
"seriesCount": "Series"
|
"seriesCount": "Series"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,8 @@
|
|||||||
"playing": "Playing",
|
"playing": "Playing",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Transcoding",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bitrate",
|
||||||
"no_active": "No Active Streams"
|
"no_active": "No Active Streams",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "Connected APs",
|
"connectedAp": "Connected APs",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Oran",
|
"rate": "Oran",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,8 @@
|
|||||||
"playing": "Відтворення",
|
"playing": "Відтворення",
|
||||||
"transcoding": "Перекодування",
|
"transcoding": "Перекодування",
|
||||||
"bitrate": "Бітрейт",
|
"bitrate": "Бітрейт",
|
||||||
"no_active": "Немає активних потоків"
|
"no_active": "Немає активних потоків",
|
||||||
|
"plex_connection_error": "Перевірте з'єднання Plex"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
"rate": "Швидкість",
|
"rate": "Швидкість",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Серій",
|
"seriesCount": "Серій",
|
||||||
"totalFiles": "Файлів"
|
"totalFiles": "Файлів"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"failed": "Невдача",
|
||||||
|
"result": "Результат",
|
||||||
|
"status": "Стан",
|
||||||
|
"buildId": "ID збірки",
|
||||||
|
"succeeded": "Успішно",
|
||||||
|
"notStarted": "Не розпочато",
|
||||||
|
"canceled": "Скасовано",
|
||||||
|
"inProgress": "В процесі"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"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",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Hoạt động",
|
"active": "Hoạt động",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
"playing": "播放緊",
|
"playing": "播放緊",
|
||||||
"no_active": "無任何活動",
|
"no_active": "無任何活動",
|
||||||
"transcoding": "轉碼緊",
|
"transcoding": "轉碼緊",
|
||||||
"bitrate": "比特率"
|
"bitrate": "比特率",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"transmission": {
|
"transmission": {
|
||||||
"download": "下載速度",
|
"download": "下載速度",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"playing": "播放中",
|
"playing": "播放中",
|
||||||
"transcoding": "转码",
|
"transcoding": "转码",
|
||||||
"bitrate": "比特率",
|
"bitrate": "比特率",
|
||||||
"no_active": "暂无播放"
|
"no_active": "暂无播放",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "活动中",
|
"active": "活动中",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,8 @@
|
|||||||
"playing": "正在播放",
|
"playing": "正在播放",
|
||||||
"transcoding": "轉碼",
|
"transcoding": "轉碼",
|
||||||
"bitrate": "位元率",
|
"bitrate": "位元率",
|
||||||
"no_active": "無播放活動"
|
"no_active": "無播放活動",
|
||||||
|
"plex_connection_error": "Check Plex Connection"
|
||||||
},
|
},
|
||||||
"jellyseerr": {
|
"jellyseerr": {
|
||||||
"pending": "待下載",
|
"pending": "待下載",
|
||||||
@ -654,5 +655,15 @@
|
|||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Files"
|
||||||
|
},
|
||||||
|
"azurePipelines": {
|
||||||
|
"result": "Result",
|
||||||
|
"status": "Status",
|
||||||
|
"buildId": "Build ID",
|
||||||
|
"succeeded": "Succeeded",
|
||||||
|
"notStarted": "Not Started",
|
||||||
|
"failed": "Failed",
|
||||||
|
"canceled": "Canceled",
|
||||||
|
"inProgress": "In Progress"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { useRef } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { Disclosure, Transition } from '@headlessui/react';
|
import { Disclosure, Transition } from '@headlessui/react';
|
||||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||||
@ -6,6 +7,7 @@ import ErrorBoundary from "components/errorboundry";
|
|||||||
import List from "components/bookmarks/list";
|
import List from "components/bookmarks/list";
|
||||||
|
|
||||||
export default function BookmarksGroup({ group, disableCollapse }) {
|
export default function BookmarksGroup({ group, disableCollapse }) {
|
||||||
|
const panel = useRef();
|
||||||
return (
|
return (
|
||||||
<div key={group.name} className="flex-1">
|
<div key={group.name} className="flex-1">
|
||||||
<Disclosure defaultOpen>
|
<Disclosure defaultOpen>
|
||||||
@ -15,19 +17,24 @@ export default function BookmarksGroup({ group, disableCollapse }) {
|
|||||||
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{group.name}</h2>
|
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{group.name}</h2>
|
||||||
<MdKeyboardArrowDown className={classNames(
|
<MdKeyboardArrowDown className={classNames(
|
||||||
disableCollapse ? 'hidden' : '',
|
disableCollapse ? 'hidden' : '',
|
||||||
'transition-opacity opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||||
open ? 'rotate-180 transform' : ''
|
open ? '' : 'rotate-90'
|
||||||
)} />
|
)} />
|
||||||
</Disclosure.Button>
|
</Disclosure.Button>
|
||||||
<Transition
|
<Transition
|
||||||
enter="transition duration-200 ease-out"
|
// Otherwise the transition group does display: none and cancels animation
|
||||||
enterFrom="transform scale-75 opacity-0"
|
className="!block"
|
||||||
enterTo="transform scale-100 opacity-100"
|
unmount={false}
|
||||||
leave="transition duration-75 ease-out"
|
beforeLeave={() => {
|
||||||
leaveFrom="transform scale-100 opacity-100"
|
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||||
leaveTo="transform scale-75 opacity-0"
|
setTimeout(() => {panel.current.style.height = `0`}, 1);
|
||||||
|
}}
|
||||||
|
beforeEnter={() => {
|
||||||
|
panel.current.style.height = `0px`;
|
||||||
|
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Disclosure.Panel>
|
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
<List bookmarks={group.bookmarks} />
|
<List bookmarks={group.bookmarks} />
|
||||||
</ErrorBoundary>
|
</ErrorBoundary>
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { useRef } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { Disclosure, Transition } from '@headlessui/react';
|
import { Disclosure, Transition } from '@headlessui/react';
|
||||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||||
@ -7,6 +8,8 @@ import ResolvedIcon from "components/resolvedicon";
|
|||||||
|
|
||||||
export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse }) {
|
export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse }) {
|
||||||
|
|
||||||
|
const panel = useRef();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={services.name}
|
key={services.name}
|
||||||
@ -28,19 +31,24 @@ export default function ServicesGroup({ group, services, layout, fiveColumns, di
|
|||||||
<h2 className="flex text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
|
<h2 className="flex text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
|
||||||
<MdKeyboardArrowDown className={classNames(
|
<MdKeyboardArrowDown className={classNames(
|
||||||
disableCollapse ? 'hidden' : '',
|
disableCollapse ? 'hidden' : '',
|
||||||
'transition-opacity opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
|
||||||
open ? 'rotate-180 transform' : ''
|
open ? '' : 'rotate-90'
|
||||||
)} />
|
)} />
|
||||||
</Disclosure.Button>
|
</Disclosure.Button>
|
||||||
<Transition
|
<Transition
|
||||||
enter="transition duration-200 ease-out"
|
// Otherwise the transition group does display: none and cancels animation
|
||||||
enterFrom="transform scale-75 opacity-0"
|
className="!block"
|
||||||
enterTo="transform scale-100 opacity-100"
|
unmount={false}
|
||||||
leave="transition duration-75 ease-out"
|
beforeLeave={() => {
|
||||||
leaveFrom="transform scale-100 opacity-100"
|
panel.current.style.height = `${panel.current.scrollHeight}px`;
|
||||||
leaveTo="transform scale-75 opacity-0"
|
setTimeout(() => {panel.current.style.height = `0`}, 1);
|
||||||
|
}}
|
||||||
|
beforeEnter={() => {
|
||||||
|
panel.current.style.height = `0px`;
|
||||||
|
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Disclosure.Panel>
|
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
|
||||||
<List group={group} services={services.services} layout={layout} />
|
<List group={group} services={services.services} layout={layout} />
|
||||||
</Disclosure.Panel>
|
</Disclosure.Panel>
|
||||||
</Transition>
|
</Transition>
|
||||||
|
@ -18,7 +18,8 @@ export default function Container({ error = false, children, service }) {
|
|||||||
const childrenArray = Array.isArray(children) ? children : [children];
|
const childrenArray = Array.isArray(children) ? children : [children];
|
||||||
|
|
||||||
let visibleChildren = childrenArray;
|
let visibleChildren = childrenArray;
|
||||||
const fields = service?.widget?.fields;
|
let fields = service?.widget?.fields;
|
||||||
|
if (typeof service.widget.fields === 'string') fields = JSON.parse(service.widget.fields);
|
||||||
const type = service?.widget?.type;
|
const type = service?.widget?.type;
|
||||||
if (fields && type) {
|
if (fields && type) {
|
||||||
// if the field contains a "." then it most likely contains a common loc value
|
// if the field contains a "." then it most likely contains a common loc value
|
||||||
|
@ -37,7 +37,7 @@ export default function Widget({ options }) {
|
|||||||
<Resource icon={FaMemory} label={t("glances.wait")} percentage="0" />
|
<Resource icon={FaMemory} label={t("glances.wait")} percentage="0" />
|
||||||
{ options.cputemp && <Resource icon={FaThermometerHalf} label={t("glances.wait")} percentage="0" /> }
|
{ options.cputemp && <Resource icon={FaThermometerHalf} label={t("glances.wait")} percentage="0" /> }
|
||||||
{ options.disk && !Array.isArray(options.disk) && <Resource key={options.disk} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> }
|
{ options.disk && !Array.isArray(options.disk) && <Resource key={options.disk} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> }
|
||||||
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={disk.mnt_point} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> )}
|
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={`disk_${disk.mnt_point}`} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> ) }
|
||||||
{ options.uptime && <Resource icon={FaRegClock} label={t("glances.wait")} percentage="0" /> }
|
{ options.uptime && <Resource icon={FaRegClock} label={t("glances.wait")} percentage="0" /> }
|
||||||
{ options.label && <WidgetLabel label={options.label} /> }
|
{ options.label && <WidgetLabel label={options.label} /> }
|
||||||
</Resources>;
|
</Resources>;
|
||||||
@ -50,7 +50,7 @@ export default function Widget({ options }) {
|
|||||||
if (options.cputemp && cpuSensors) {
|
if (options.cputemp && cpuSensors) {
|
||||||
try {
|
try {
|
||||||
mainTemp = cpuSensors.reduce((acc, s) => acc + s.value, 0) / cpuSensors.length;
|
mainTemp = cpuSensors.reduce((acc, s) => acc + s.value, 0) / cpuSensors.length;
|
||||||
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + s.warning, 0) / cpuSensors.length, maxTemp);
|
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + (s.warning > 0 ? s.warning : 0), 0) / cpuSensors.length, maxTemp);
|
||||||
if (unit === "fahrenheit") {
|
if (unit === "fahrenheit") {
|
||||||
mainTemp = convertToFahrenheit(mainTemp);
|
mainTemp = convertToFahrenheit(mainTemp);
|
||||||
maxTemp = convertToFahrenheit(maxTemp);
|
maxTemp = convertToFahrenheit(maxTemp);
|
||||||
@ -108,7 +108,7 @@ export default function Widget({ options }) {
|
|||||||
expanded={options.expanded}
|
expanded={options.expanded}
|
||||||
/>
|
/>
|
||||||
{disks.map((disk) => (
|
{disks.map((disk) => (
|
||||||
<Resource key={disk.mnt_point}
|
<Resource key={`disk_${disk.mnt_point}`}
|
||||||
icon={FiHardDrive}
|
icon={FiHardDrive}
|
||||||
value={t("common.bytes", { value: disk.free })}
|
value={t("common.bytes", { value: disk.free })}
|
||||||
label={t("glances.free")}
|
label={t("glances.free")}
|
||||||
|
@ -10,6 +10,7 @@ export default function Logo({ options }) {
|
|||||||
{options.icon ?
|
{options.icon ?
|
||||||
<ResolvedIcon icon={options.icon} width={48} height={48} /> :
|
<ResolvedIcon icon={options.icon} width={48} height={48} /> :
|
||||||
// fallback to homepage logo
|
// fallback to homepage logo
|
||||||
|
<div className="w-12 h-12">
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 1024 1024"
|
viewBox="0 0 1024 1024"
|
||||||
@ -60,6 +61,7 @@ export default function Logo({ options }) {
|
|||||||
/>
|
/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
</div>
|
||||||
}
|
}
|
||||||
</Raw>
|
</Raw>
|
||||||
</Container>
|
</Container>
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
import mapIcon from "utils/weather/openmeteo-condition-map";
|
|
||||||
|
|
||||||
export default function Icon({ condition, timeOfDay }) {
|
|
||||||
const IconComponent = mapIcon(condition, timeOfDay);
|
|
||||||
|
|
||||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
|
||||||
}
|
|
@ -10,8 +10,7 @@ import ContainerButton from "../widget/container_button";
|
|||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
|
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
|
||||||
import Icon from "./icon";
|
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
@ -33,10 +32,8 @@ function Widget({ options }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||||
const weatherInfo = {
|
const condition = data.current_weather.weathercode;
|
||||||
condition: data.current_weather.weathercode,
|
const timeOfDay = data.current_weather.time > data.daily.sunrise[0] && data.current_weather.time < data.daily.sunset[0] ? "day" : "night";
|
||||||
timeOfDay: data.current_weather.time > data.daily.sunrise[0] && data.current_weather.time < data.daily.sunset[0] ? "day" : "night"
|
|
||||||
};
|
|
||||||
|
|
||||||
return <Container options={options}>
|
return <Container options={options}>
|
||||||
<PrimaryText>
|
<PrimaryText>
|
||||||
@ -47,8 +44,8 @@ function Widget({ options }) {
|
|||||||
unit,
|
unit,
|
||||||
})}
|
})}
|
||||||
</PrimaryText>
|
</PrimaryText>
|
||||||
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${weatherInfo.timeOfDay}`)}</SecondaryText>
|
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText>
|
||||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||||
</Container>;
|
</Container>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
import mapIcon from "utils/weather/owm-condition-map";
|
|
||||||
|
|
||||||
export default function Icon({ condition, timeOfDay }) {
|
|
||||||
const IconComponent = mapIcon(condition, timeOfDay);
|
|
||||||
|
|
||||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
|
||||||
}
|
|
@ -10,9 +10,7 @@ import ContainerButton from "../widget/container_button";
|
|||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
|
import mapIcon from "../../../utils/weather/owm-condition-map";
|
||||||
import Icon from "./icon";
|
|
||||||
|
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
@ -35,15 +33,13 @@ function Widget({ options }) {
|
|||||||
|
|
||||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||||
|
|
||||||
const weatherInfo = {
|
const condition = data.weather[0].id;
|
||||||
condition: data.weather[0].id,
|
const timeOfDay = data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night";
|
||||||
timeOfDay: data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night"
|
|
||||||
};
|
|
||||||
|
|
||||||
return <Container options={options}>
|
return <Container options={options}>
|
||||||
<PrimaryText>{options.label && `${options.label}, ` }{t("common.number", { value: data.main.temp, style: "unit", unit })}</PrimaryText>
|
<PrimaryText>{options.label && `${options.label}, ` }{t("common.number", { value: data.main.temp, style: "unit", unit })}</PrimaryText>
|
||||||
<SecondaryText>{data.weather[0].description}</SecondaryText>
|
<SecondaryText>{data.weather[0].description}</SecondaryText>
|
||||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||||
</Container>;
|
</Container>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
import mapIcon from "utils/weather/condition-map";
|
|
||||||
|
|
||||||
export default function Icon({ condition, timeOfDay }) {
|
|
||||||
const IconComponent = mapIcon(condition, timeOfDay);
|
|
||||||
|
|
||||||
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
|
|
||||||
}
|
|
@ -10,8 +10,7 @@ import PrimaryText from "../widget/primary_text";
|
|||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
import ContainerButton from "../widget/container_button";
|
import ContainerButton from "../widget/container_button";
|
||||||
|
import mapIcon from "../../../utils/weather/condition-map";
|
||||||
import Icon from "./icon";
|
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
@ -33,10 +32,8 @@ function Widget({ options }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
|
||||||
const weatherInfo = {
|
const condition = data.current.condition.code;
|
||||||
condition: data.current.condition.code,
|
const timeOfDay = data.current.is_day ? "day" : "night";
|
||||||
timeOfDay: data.current.is_day ? "day" : "night",
|
|
||||||
};
|
|
||||||
|
|
||||||
return <Container options={options}>
|
return <Container options={options}>
|
||||||
<PrimaryText>
|
<PrimaryText>
|
||||||
@ -48,7 +45,7 @@ function Widget({ options }) {
|
|||||||
})}
|
})}
|
||||||
</PrimaryText>
|
</PrimaryText>
|
||||||
<SecondaryText>{data.current.condition.text}</SecondaryText>
|
<SecondaryText>{data.current.condition.text}</SecondaryText>
|
||||||
<WidgetIcon icon={Icon} size="xl" weatherInfo={weatherInfo} />
|
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
|
||||||
</Container>;
|
</Container>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
export default function WidgetIcon({ icon, size = "s", pulse = false, weatherInfo = {} }) {
|
export default function WidgetIcon({ icon, size = "s", pulse = false }) {
|
||||||
const Icon = icon;
|
const Icon = icon;
|
||||||
const { condition, timeOfDay } = weatherInfo;
|
|
||||||
let additionalClasses = "text-theme-800 dark:text-theme-200 ";
|
let additionalClasses = "text-theme-800 dark:text-theme-200 ";
|
||||||
|
|
||||||
switch (size) {
|
switch (size) {
|
||||||
@ -14,5 +13,5 @@ export default function WidgetIcon({ icon, size = "s", pulse = false, weatherInf
|
|||||||
additionalClasses += "animate-pulse ";
|
additionalClasses += "animate-pulse ";
|
||||||
}
|
}
|
||||||
|
|
||||||
return <Icon className={additionalClasses} condition={condition} timeOfDay={timeOfDay} />;
|
return <Icon className={additionalClasses} />;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ import { join } from "path";
|
|||||||
import { createHash } from "crypto";
|
import { createHash } from "crypto";
|
||||||
import { readFileSync } from "fs";
|
import { readFileSync } from "fs";
|
||||||
|
|
||||||
import checkAndCopyConfig from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR } from "utils/config/config";
|
||||||
|
|
||||||
const configs = ["docker.yaml", "settings.yaml", "services.yaml", "bookmarks.yaml", "widgets.yaml"];
|
const configs = ["docker.yaml", "settings.yaml", "services.yaml", "bookmarks.yaml", "widgets.yaml"];
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ function hash(buffer) {
|
|||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const hashes = configs.map((config) => {
|
const hashes = configs.map((config) => {
|
||||||
checkAndCopyConfig(config);
|
checkAndCopyConfig(config);
|
||||||
const configYaml = join(process.cwd(), "config", config);
|
const configYaml = join(CONF_DIR, config);
|
||||||
return hash(readFileSync(configYaml, "utf8"));
|
return hash(readFileSync(configYaml, "utf8"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ export default async function handler(req, res) {
|
|||||||
if (widget?.mappings) {
|
if (widget?.mappings) {
|
||||||
const mapping = widget?.mappings?.[req.query.endpoint];
|
const mapping = widget?.mappings?.[req.query.endpoint];
|
||||||
const mappingParams = mapping?.params;
|
const mappingParams = mapping?.params;
|
||||||
|
const optionalParams = mapping?.optionalParams;
|
||||||
const map = mapping?.map;
|
const map = mapping?.map;
|
||||||
const endpoint = mapping?.endpoint;
|
const endpoint = mapping?.endpoint;
|
||||||
const endpointProxy = mapping?.proxyHandler || serviceProxyHandler;
|
const endpointProxy = mapping?.proxyHandler || serviceProxyHandler;
|
||||||
@ -40,9 +41,17 @@ export default async function handler(req, res) {
|
|||||||
req.query.endpoint = formatApiCall(endpoint, segments);
|
req.query.endpoint = formatApiCall(endpoint, segments);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.query.query && mappingParams) {
|
if (req.query.query && (mappingParams || optionalParams)) {
|
||||||
const queryParams = JSON.parse(req.query.query);
|
const queryParams = JSON.parse(req.query.query);
|
||||||
const query = new URLSearchParams(mappingParams.map((p) => [p, queryParams[p]]));
|
|
||||||
|
let filteredOptionalParams = []
|
||||||
|
if (optionalParams) filteredOptionalParams = optionalParams.filter(p => queryParams[p] !== undefined);
|
||||||
|
|
||||||
|
let params = [];
|
||||||
|
if (mappingParams) params = params.concat(mappingParams);
|
||||||
|
if (filteredOptionalParams) params = params.concat(filteredOptionalParams);
|
||||||
|
|
||||||
|
const query = new URLSearchParams(params.map((p) => [p, queryParams[p]]));
|
||||||
req.query.endpoint = `${req.query.endpoint}?${query}`;
|
req.query.endpoint = `${req.query.endpoint}?${query}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import path from "path";
|
|||||||
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
import checkAndCopyConfig, { getSettings, substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { getSettings, substituteEnvironmentVars, CONF_DIR } from "utils/config/config";
|
||||||
import {
|
import {
|
||||||
servicesFromConfig,
|
servicesFromConfig,
|
||||||
servicesFromDocker,
|
servicesFromDocker,
|
||||||
@ -27,7 +27,7 @@ function compareServices(service1, service2) {
|
|||||||
export async function bookmarksResponse() {
|
export async function bookmarksResponse() {
|
||||||
checkAndCopyConfig("bookmarks.yaml");
|
checkAndCopyConfig("bookmarks.yaml");
|
||||||
|
|
||||||
const bookmarksYaml = path.join(process.cwd(), "config", "bookmarks.yaml");
|
const bookmarksYaml = path.join(CONF_DIR, "bookmarks.yaml");
|
||||||
const rawFileContents = await fs.readFile(bookmarksYaml, "utf8");
|
const rawFileContents = await fs.readFile(bookmarksYaml, "utf8");
|
||||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||||
const bookmarks = yaml.load(fileContents);
|
const bookmarks = yaml.load(fileContents);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { existsSync, readFileSync, copyFileSync } from "fs";
|
import { copyFileSync, existsSync, mkdirSync, readFileSync } from "fs";
|
||||||
|
|
||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
@ -9,8 +9,14 @@ const cacheKey = "homepageEnvironmentVariables";
|
|||||||
const homepageVarPrefix = "HOMEPAGE_VAR_";
|
const homepageVarPrefix = "HOMEPAGE_VAR_";
|
||||||
const homepageFilePrefix = "HOMEPAGE_FILE_";
|
const homepageFilePrefix = "HOMEPAGE_FILE_";
|
||||||
|
|
||||||
|
export const CONF_DIR = process.env.HOMEPAGE_CONFIG_DIR ? process.env.HOMEPAGE_CONFIG_DIR : join(process.cwd(), "config");
|
||||||
|
|
||||||
export default function checkAndCopyConfig(config) {
|
export default function checkAndCopyConfig(config) {
|
||||||
const configYaml = join(process.cwd(), "config", config);
|
if (!existsSync(CONF_DIR)) {
|
||||||
|
mkdirSync(CONF_DIR, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
const configYaml = join(CONF_DIR, config);
|
||||||
if (!existsSync(configYaml)) {
|
if (!existsSync(configYaml)) {
|
||||||
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
||||||
try {
|
try {
|
||||||
@ -62,7 +68,7 @@ export function substituteEnvironmentVars(str) {
|
|||||||
export function getSettings() {
|
export function getSettings() {
|
||||||
checkAndCopyConfig("settings.yaml");
|
checkAndCopyConfig("settings.yaml");
|
||||||
|
|
||||||
const settingsYaml = join(process.cwd(), "config", "settings.yaml");
|
const settingsYaml = join(CONF_DIR, "settings.yaml");
|
||||||
const rawFileContents = readFileSync(settingsYaml, "utf8");
|
const rawFileContents = readFileSync(settingsYaml, "utf8");
|
||||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||||
const initialSettings = yaml.load(fileContents) ?? {};
|
const initialSettings = yaml.load(fileContents) ?? {};
|
||||||
@ -79,6 +85,5 @@ export function getSettings() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return initialSettings
|
return initialSettings
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,12 @@ import { readFileSync } from "fs";
|
|||||||
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
||||||
|
|
||||||
export default function getDockerArguments(server) {
|
export default function getDockerArguments(server) {
|
||||||
checkAndCopyConfig("docker.yaml");
|
checkAndCopyConfig("docker.yaml");
|
||||||
|
|
||||||
const configFile = path.join(process.cwd(), "config", "docker.yaml");
|
const configFile = path.join(CONF_DIR, "docker.yaml");
|
||||||
const rawConfigData = readFileSync(configFile, "utf8");
|
const rawConfigData = readFileSync(configFile, "utf8");
|
||||||
const configData = substituteEnvironmentVars(rawConfigData);
|
const configData = substituteEnvironmentVars(rawConfigData);
|
||||||
const servers = yaml.load(configData);
|
const servers = yaml.load(configData);
|
||||||
@ -37,9 +37,9 @@ export default function getDockerArguments(server) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (servers[server].tls){
|
if (servers[server].tls){
|
||||||
res.conn.ca = readFileSync(path.join(process.cwd(), "config", servers[server].tls.caFile));
|
res.conn.ca = readFileSync(path.join(CONF_DIR, servers[server].tls.caFile));
|
||||||
res.conn.cert = readFileSync(path.join(process.cwd(), "config", servers[server].tls.certFile));
|
res.conn.cert = readFileSync(path.join(CONF_DIR, servers[server].tls.certFile));
|
||||||
res.conn.key = readFileSync(path.join(process.cwd(), "config", servers[server].tls.keyFile));
|
res.conn.key = readFileSync(path.join(CONF_DIR, servers[server].tls.keyFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
@ -4,12 +4,12 @@ import { readFileSync } from "fs";
|
|||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
import { KubeConfig } from "@kubernetes/client-node";
|
import { KubeConfig } from "@kubernetes/client-node";
|
||||||
|
|
||||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
||||||
|
|
||||||
export default function getKubeConfig() {
|
export default function getKubeConfig() {
|
||||||
checkAndCopyConfig("kubernetes.yaml");
|
checkAndCopyConfig("kubernetes.yaml");
|
||||||
|
|
||||||
const configFile = path.join(process.cwd(), "config", "kubernetes.yaml");
|
const configFile = path.join(CONF_DIR, "kubernetes.yaml");
|
||||||
const rawConfigData = readFileSync(configFile, "utf8");
|
const rawConfigData = readFileSync(configFile, "utf8");
|
||||||
const configData = substituteEnvironmentVars(rawConfigData);
|
const configData = substituteEnvironmentVars(rawConfigData);
|
||||||
const config = yaml.load(configData);
|
const config = yaml.load(configData);
|
||||||
|
@ -7,7 +7,7 @@ import * as shvl from "shvl";
|
|||||||
import { CustomObjectsApi, NetworkingV1Api } from "@kubernetes/client-node";
|
import { CustomObjectsApi, NetworkingV1Api } from "@kubernetes/client-node";
|
||||||
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
||||||
import getDockerArguments from "utils/config/docker";
|
import getDockerArguments from "utils/config/docker";
|
||||||
import getKubeConfig from "utils/config/kubernetes";
|
import getKubeConfig from "utils/config/kubernetes";
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ const logger = createLogger("service-helpers");
|
|||||||
export async function servicesFromConfig() {
|
export async function servicesFromConfig() {
|
||||||
checkAndCopyConfig("services.yaml");
|
checkAndCopyConfig("services.yaml");
|
||||||
|
|
||||||
const servicesYaml = path.join(process.cwd(), "config", "services.yaml");
|
const servicesYaml = path.join(CONF_DIR, "services.yaml");
|
||||||
const rawFileContents = await fs.readFile(servicesYaml, "utf8");
|
const rawFileContents = await fs.readFile(servicesYaml, "utf8");
|
||||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||||
const services = yaml.load(fileContents);
|
const services = yaml.load(fileContents);
|
||||||
@ -51,7 +51,7 @@ export async function servicesFromConfig() {
|
|||||||
export async function servicesFromDocker() {
|
export async function servicesFromDocker() {
|
||||||
checkAndCopyConfig("docker.yaml");
|
checkAndCopyConfig("docker.yaml");
|
||||||
|
|
||||||
const dockerYaml = path.join(process.cwd(), "config", "docker.yaml");
|
const dockerYaml = path.join(CONF_DIR, "docker.yaml");
|
||||||
const rawDockerFileContents = await fs.readFile(dockerYaml, "utf8");
|
const rawDockerFileContents = await fs.readFile(dockerYaml, "utf8");
|
||||||
const dockerFileContents = substituteEnvironmentVars(rawDockerFileContents);
|
const dockerFileContents = substituteEnvironmentVars(rawDockerFileContents);
|
||||||
const servers = yaml.load(dockerFileContents);
|
const servers = yaml.load(dockerFileContents);
|
||||||
@ -279,6 +279,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
container,
|
container,
|
||||||
currency, // coinmarketcap widget
|
currency, // coinmarketcap widget
|
||||||
symbols,
|
symbols,
|
||||||
|
slugs,
|
||||||
defaultinterval,
|
defaultinterval,
|
||||||
site, // unifi widget
|
site, // unifi widget
|
||||||
namespace, // kubernetes widget
|
namespace, // kubernetes widget
|
||||||
@ -289,6 +290,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
enableNowPlaying,
|
enableNowPlaying,
|
||||||
volume, // diskstation widget,
|
volume, // diskstation widget,
|
||||||
enableQueue, // sonarr/radarr
|
enableQueue, // sonarr/radarr
|
||||||
|
node, // Proxmox
|
||||||
} = cleanedService.widget;
|
} = cleanedService.widget;
|
||||||
|
|
||||||
let fieldsList = fields;
|
let fieldsList = fields;
|
||||||
@ -308,9 +310,12 @@ export function cleanServiceGroups(groups) {
|
|||||||
service_group: serviceGroup.name,
|
service_group: serviceGroup.name,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (type === "coinmarketcap") {
|
||||||
if (currency) cleanedService.widget.currency = currency;
|
if (currency) cleanedService.widget.currency = currency;
|
||||||
if (symbols) cleanedService.widget.symbols = symbols;
|
if (symbols) cleanedService.widget.symbols = symbols;
|
||||||
|
if (slugs) cleanedService.widget.slugs = slugs;
|
||||||
if (defaultinterval) cleanedService.widget.defaultinterval = defaultinterval;
|
if (defaultinterval) cleanedService.widget.defaultinterval = defaultinterval;
|
||||||
|
}
|
||||||
|
|
||||||
if (type === "docker") {
|
if (type === "docker") {
|
||||||
if (server) cleanedService.widget.server = server;
|
if (server) cleanedService.widget.server = server;
|
||||||
@ -319,6 +324,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (type === "unifi") {
|
if (type === "unifi") {
|
||||||
if (site) cleanedService.widget.site = site;
|
if (site) cleanedService.widget.site = site;
|
||||||
}
|
}
|
||||||
|
if (type === "proxmox") {
|
||||||
|
if (node) cleanedService.widget.node = node;
|
||||||
|
}
|
||||||
if (type === "kubernetes") {
|
if (type === "kubernetes") {
|
||||||
if (namespace) cleanedService.widget.namespace = namespace;
|
if (namespace) cleanedService.widget.namespace = namespace;
|
||||||
if (app) cleanedService.widget.app = app;
|
if (app) cleanedService.widget.app = app;
|
||||||
|
@ -3,12 +3,12 @@ import path from "path";
|
|||||||
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
||||||
|
|
||||||
export async function widgetsFromConfig() {
|
export async function widgetsFromConfig() {
|
||||||
checkAndCopyConfig("widgets.yaml");
|
checkAndCopyConfig("widgets.yaml");
|
||||||
|
|
||||||
const widgetsYaml = path.join(process.cwd(), "config", "widgets.yaml");
|
const widgetsYaml = path.join(CONF_DIR, "widgets.yaml");
|
||||||
const rawFileContents = await fs.readFile(widgetsYaml, "utf8");
|
const rawFileContents = await fs.readFile(widgetsYaml, "utf8");
|
||||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||||
const widgets = yaml.load(fileContents);
|
const widgets = yaml.load(fileContents);
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import { join } from "path";
|
|
||||||
import { format as utilFormat } from "node:util";
|
import { format as utilFormat } from "node:util";
|
||||||
|
|
||||||
import winston from "winston";
|
import winston from "winston";
|
||||||
|
|
||||||
import checkAndCopyConfig, { getSettings } from "utils/config/config";
|
import checkAndCopyConfig, { getSettings, CONF_DIR } from "utils/config/config";
|
||||||
|
|
||||||
|
|
||||||
let winstonLogger;
|
let winstonLogger;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
const configPath = join(process.cwd(), "config");
|
|
||||||
checkAndCopyConfig("settings.yaml");
|
checkAndCopyConfig("settings.yaml");
|
||||||
const settings = getSettings();
|
const settings = getSettings();
|
||||||
const logpath = settings.logpath || configPath;
|
const logpath = settings.logpath || CONF_DIR;
|
||||||
|
|
||||||
function combineMessageAndSplat() {
|
function combineMessageAndSplat() {
|
||||||
return {
|
return {
|
||||||
|
@ -61,6 +61,9 @@ export default async function credentialedProxyHandler(req, res, map) {
|
|||||||
} else {
|
} else {
|
||||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (widget.type === "azurePipelines") {
|
||||||
|
headers.Authorization = `Basic ${Buffer.from(`$:${widget.key}`).toString("base64")}`;
|
||||||
} else {
|
} else {
|
||||||
headers["X-API-Key"] = `${widget.key}`;
|
headers["X-API-Key"] = `${widget.key}`;
|
||||||
}
|
}
|
||||||
|
36
src/widgets/azurePipelines/component.jsx
Normal file
36
src/widgets/azurePipelines/component.jsx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
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: pipelineData, error: pipelineError } = useWidgetAPI(widget);
|
||||||
|
|
||||||
|
if (pipelineError) {
|
||||||
|
return <Container service={service} error={pipelineError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pipelineData || !Array.isArray(pipelineData.value)) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="azurePipelines.result" />
|
||||||
|
<Block label="azurePipelines.buildId" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
{pipelineData.value[0].result ?
|
||||||
|
<Block label="azurePipelines.result" value={t(`azurePipelines.${pipelineData.value[0].result.toString()}`)} /> :
|
||||||
|
<Block label="azurePipelines.status" value={t(`azurePipelines.${pipelineData.value[0].status.toString()}`)} />
|
||||||
|
}
|
||||||
|
<Block label="azurePipelines.buildId" value= { pipelineData.value[0].id } />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
8
src/widgets/azurePipelines/widget.js
Normal file
8
src/widgets/azurePipelines/widget.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "https://dev.azure.com/{organization}/{project}/_apis/build/Builds?branchName={branchName}&definitions={definitionId}",
|
||||||
|
proxyHandler: credentialedProxyHandler,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
@ -19,17 +19,26 @@ export default function Component({ service }) {
|
|||||||
|
|
||||||
const { widget } = service;
|
const { widget } = service;
|
||||||
const { symbols } = widget;
|
const { symbols } = widget;
|
||||||
|
const { slugs } = widget;
|
||||||
const currencyCode = widget.currency ?? "USD";
|
const currencyCode = widget.currency ?? "USD";
|
||||||
const interval = widget.defaultinterval ?? dateRangeOptions[0].value;
|
const interval = widget.defaultinterval ?? dateRangeOptions[0].value;
|
||||||
|
|
||||||
const [dateRange, setDateRange] = useState(interval);
|
const [dateRange, setDateRange] = useState(interval);
|
||||||
|
|
||||||
const { data: statsData, error: statsError } = useWidgetAPI(widget, "v1/cryptocurrency/quotes/latest", {
|
const params = {
|
||||||
symbol: `${symbols.join(",")}`,
|
|
||||||
convert: `${currencyCode}`,
|
convert: `${currencyCode}`,
|
||||||
});
|
}
|
||||||
|
|
||||||
if (!symbols || symbols.length === 0) {
|
// slugs >> symbols, not both
|
||||||
|
if (slugs?.length) {
|
||||||
|
params.slug = slugs.join(",");
|
||||||
|
} else if (symbols?.length) {
|
||||||
|
params.symbol = symbols.join(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
const { data: statsData, error: statsError } = useWidgetAPI(widget, "v1/cryptocurrency/quotes/latest", params);
|
||||||
|
|
||||||
|
if ((!symbols && !slugs) || (symbols?.length === 0 && slugs?.length === 0)) {
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<Block value={t("coinmarketcap.configure")} />
|
<Block value={t("coinmarketcap.configure")} />
|
||||||
@ -50,6 +59,7 @@ export default function Component({ service }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { data } = statsData;
|
const { data } = statsData;
|
||||||
|
const validCryptos = Object.values(data).filter(crypto => crypto.quote[currencyCode][`percent_change_${dateRange}`] !== null)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
@ -58,28 +68,28 @@ export default function Component({ service }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-col w-full">
|
<div className="flex flex-col w-full">
|
||||||
{symbols.map((symbol) => (
|
{validCryptos.map((crypto) => (
|
||||||
<div
|
<div
|
||||||
key={data[symbol].symbol}
|
key={crypto.id}
|
||||||
className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-row items-center justify-between p-1 text-xs"
|
className="bg-theme-200/50 dark:bg-theme-900/20 rounded m-1 flex-1 flex flex-row items-center justify-between p-1 text-xs"
|
||||||
>
|
>
|
||||||
<div className="font-thin pl-2">{data[symbol].name}</div>
|
<div className="font-thin pl-2">{crypto.name}</div>
|
||||||
<div className="flex flex-row text-right">
|
<div className="flex flex-row text-right">
|
||||||
<div className="font-bold mr-2">
|
<div className="font-bold mr-2">
|
||||||
{t("common.number", {
|
{t("common.number", {
|
||||||
value: data[symbol].quote[currencyCode].price,
|
value: crypto.quote[currencyCode].price,
|
||||||
style: "currency",
|
style: "currency",
|
||||||
currency: currencyCode,
|
currency: currencyCode,
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={`font-bold w-10 mr-2 ${
|
className={`font-bold w-10 mr-2 ${
|
||||||
data[symbol].quote[currencyCode][`percent_change_${dateRange}`] > 0
|
crypto.quote[currencyCode][`percent_change_${dateRange}`] > 0
|
||||||
? "text-emerald-300"
|
? "text-emerald-300"
|
||||||
: "text-rose-300"
|
: "text-rose-300"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{data[symbol].quote[currencyCode][`percent_change_${dateRange}`].toFixed(2)}%
|
{crypto.quote[currencyCode][`percent_change_${dateRange}`].toFixed(2)}%
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,7 +7,8 @@ const widget = {
|
|||||||
mappings: {
|
mappings: {
|
||||||
"v1/cryptocurrency/quotes/latest": {
|
"v1/cryptocurrency/quotes/latest": {
|
||||||
endpoint: "v1/cryptocurrency/quotes/latest",
|
endpoint: "v1/cryptocurrency/quotes/latest",
|
||||||
params: ["symbol", "convert"],
|
params: ["convert"],
|
||||||
|
optionalParams: ["symbol", "slug"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,7 @@ const components = {
|
|||||||
audiobookshelf: dynamic(() => import("./audiobookshelf/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")),
|
||||||
|
azurePipelines: dynamic(() => import("./azurePipelines/component")),
|
||||||
bazarr: dynamic(() => import("./bazarr/component")),
|
bazarr: dynamic(() => import("./bazarr/component")),
|
||||||
caddy: dynamic(() => import("./caddy/component")),
|
caddy: dynamic(() => import("./caddy/component")),
|
||||||
changedetectionio: dynamic(() => import("./changedetectionio/component")),
|
changedetectionio: dynamic(() => import("./changedetectionio/component")),
|
||||||
|
@ -4,6 +4,7 @@ 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";
|
||||||
|
|
||||||
|
|
||||||
function calcRunning(total, current) {
|
function calcRunning(total, current) {
|
||||||
return current.status === "running" ? total + 1 : total;
|
return current.status === "running" ? total + 1 : total;
|
||||||
}
|
}
|
||||||
@ -25,29 +26,40 @@ export default function Component({ service }) {
|
|||||||
<Block label="proxmox.vms" />
|
<Block label="proxmox.vms" />
|
||||||
<Block label="proxmox.lxc" />
|
<Block label="proxmox.lxc" />
|
||||||
<Block label="resources.cpu" />
|
<Block label="resources.cpu" />
|
||||||
<Block label="resources.ram" />
|
<Block label="resources.mem" />
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data } = clusterData ;
|
const { data } = clusterData ;
|
||||||
const vms = data.filter(item => item.type === "qemu" && item.template === 0) || [];
|
const vms = data.filter(item => item.type === "qemu" && item.template === 0 && (widget.node === undefined || widget.node === item.node)) || [];
|
||||||
const lxc = data.filter(item => item.type === "lxc" && item.template === 0) || [];
|
const lxc = data.filter(item => item.type === "lxc" && item.template === 0 && (widget.node === undefined || widget.node === item.node)) || [];
|
||||||
const nodes = data.filter(item => item.type === "node") || [];
|
const nodes = data.filter(item => item.type === "node" && (widget.node === undefined || widget.node === item.node)) || [];
|
||||||
|
|
||||||
const runningVMs = vms.reduce(calcRunning, 0);
|
const runningVMs = vms.reduce(calcRunning, 0);
|
||||||
const runningLXC = lxc.reduce(calcRunning, 0);
|
const runningLXC = lxc.reduce(calcRunning, 0);
|
||||||
|
|
||||||
// TODO: support more than one node
|
if (nodes.length === 0) {
|
||||||
// TODO: better handling of cluster with zero nodes
|
return (
|
||||||
const node = nodes.length > 0 ? nodes[0] : { cpu: 0.0, mem: 0, maxmem: 0 };
|
<Container service={service}>
|
||||||
|
<Block label="proxmox.vms" value={`${runningVMs} / ${vms.length}`} />
|
||||||
|
<Block label="proxmox.lxc" value={`${runningLXC} / ${lxc.length}`} />
|
||||||
|
<Block label="resources.cpu" />
|
||||||
|
<Block label="resources.mem" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const maxMemory = nodes.reduce((sum, n) => n.maxmem + sum, 0);
|
||||||
|
const usedMemory = nodes.reduce((sum, n) => n.mem + sum, 0);
|
||||||
|
const maxCpu = nodes.reduce((sum, n) => n.maxcpu + sum, 0);
|
||||||
|
const usedCpu = nodes.reduce((sum, n) => (n.cpu * n.maxcpu) + sum, 0);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<Block label="proxmox.vms" value={`${runningVMs} / ${vms.length}`} />
|
<Block label="proxmox.vms" value={`${runningVMs} / ${vms.length}`} />
|
||||||
<Block label="proxmox.lxc" value={`${runningLXC} / ${lxc.length}`} />
|
<Block label="proxmox.lxc" value={`${runningLXC} / ${lxc.length}`} />
|
||||||
<Block label="resources.cpu" value={t("common.percent", { value: (node.cpu * 100) })} />
|
<Block label="resources.cpu" value={t("common.percent", { value: ((usedCpu / maxCpu) * 100) })} />
|
||||||
<Block label="resources.mem" value={t("common.percent", { value: ((node.mem / node.maxmem) * 100) })} />
|
<Block label="resources.mem" value={t("common.percent", { value: ((usedMemory / maxMemory) * 100) })} />
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -122,8 +122,8 @@ export default function Component({ service }) {
|
|||||||
refreshInterval: 5000,
|
refreshInterval: 5000,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (activityError) {
|
if (activityError || (activityData && Object.keys(activityData.response.data).length === 0)) {
|
||||||
return <Container service={service} error={activityError} />;
|
return <Container service={service} error={activityError ?? { message: t("tautulli.plex_connection_error") } } />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!activityData) {
|
if (!activityData) {
|
||||||
|
@ -2,6 +2,7 @@ import adguard from "./adguard/widget";
|
|||||||
import audiobookshelf from "./audiobookshelf/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 azurePipelines from "./azurePipelines/widget";
|
||||||
import bazarr from "./bazarr/widget";
|
import bazarr from "./bazarr/widget";
|
||||||
import caddy from "./caddy/widget";
|
import caddy from "./caddy/widget";
|
||||||
import changedetectionio from "./changedetectionio/widget";
|
import changedetectionio from "./changedetectionio/widget";
|
||||||
@ -95,6 +96,7 @@ const widgets = {
|
|||||||
audiobookshelf,
|
audiobookshelf,
|
||||||
authentik,
|
authentik,
|
||||||
autobrr,
|
autobrr,
|
||||||
|
azurePipelines,
|
||||||
bazarr,
|
bazarr,
|
||||||
caddy,
|
caddy,
|
||||||
changedetectionio,
|
changedetectionio,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user