diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 6d337f0da..66b62d24c 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -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", diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index a600b3d5a..615c9dd9d 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -451,7 +451,7 @@ "crit": "Krytyczyny", "read": "Read", "write": "Zapis", - "gpu": "Karta graficzna", + "gpu": "GPU", "mem": "Pamięć", "swap": "Swap" }, diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 07395970a..c338c5a9f 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -241,7 +241,7 @@ "sonarr": { "wanted": "Розыск", "queued": "В очереди", - "series": "Серии", + "series": "Сериалы", "queue": "Очередь", "unknown": "Неизвестно" }, diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 8d7cd1370..91a79e205 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -421,7 +421,7 @@ "down": "Offline" }, "miniflux": { - "read": "Okunmayan", + "read": "Okunmuş", "unread": "Okunmamış" }, "authentik": { diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index adde8e7f2..5b996cdab 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -112,7 +112,7 @@ "offline_alt": "Offline", "online": "Онлайн", "total": "Total", - "unknown": "Unknown" + "unknown": "Невідомо" }, "evcc": { "pv_power": "Виробництво", diff --git a/public/locales/zh-Hans/common.json b/public/locales/zh-Hans/common.json index 4f067d274..0ded722c3 100644 --- a/public/locales/zh-Hans/common.json +++ b/public/locales/zh-Hans/common.json @@ -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" diff --git a/src/components/widgets/openmeteo/openmeteo.jsx b/src/components/widgets/openmeteo/openmeteo.jsx index a46f53abd..27b6a40f1 100644 --- a/src/components/widgets/openmeteo/openmeteo.jsx +++ b/src/components/widgets/openmeteo/openmeteo.jsx @@ -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 ( diff --git a/src/components/widgets/openweathermap/weather.jsx b/src/components/widgets/openweathermap/weather.jsx index 3336ed4fc..4e7987844 100644 --- a/src/components/widgets/openweathermap/weather.jsx +++ b/src/components/widgets/openweathermap/weather.jsx @@ -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 ( diff --git a/src/components/widgets/weather/weather.jsx b/src/components/widgets/weather/weather.jsx index 98768963d..45e6d8159 100644 --- a/src/components/widgets/weather/weather.jsx +++ b/src/components/widgets/weather/weather.jsx @@ -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 ( diff --git a/src/widgets/iframe/component.jsx b/src/widgets/iframe/component.jsx index 9d2d60ca2..96dd69432 100644 --- a/src/widgets/iframe/component.jsx +++ b/src/widgets/iframe/component.jsx @@ -24,7 +24,7 @@ export default function Component({ service }) {
diff --git a/src/widgets/tandoor/component.jsx b/src/widgets/tandoor/component.jsx index 4a02d539c..d7f8ead72 100644 --- a/src/widgets/tandoor/component.jsx +++ b/src/widgets/tandoor/component.jsx @@ -23,10 +23,13 @@ export default function Component({ service }) { ); } + + const space = spaceData.results ? spaceData.results[0] : spaceData[0]; + return ( - - + + );