Merge branch 'dev'

This commit is contained in:
shamoon 2025-08-08 11:32:29 -04:00
commit c0ddb5f816
No known key found for this signature in database
11 changed files with 167 additions and 134 deletions

View File

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

View File

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

View File

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

View File

@ -421,7 +421,7 @@
"down": "Offline"
},
"miniflux": {
"read": "Okunmayan",
"read": "Okunm",
"unread": "Okunmamış"
},
"authentik": {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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