/*
 * CoolerControl - monitor and control your cooling and other devices
 * Copyright (c) 2021-2025  Guy Boldon and contributors
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

export default {
    common: {
        save: 'Guardar',
        cancel: 'Cancelar',
        confirm: 'Confirmar',
        delete: 'Eliminar',
        edit: 'Editar',
        add: 'Añadir',
        remove: 'Eliminar',
        yes: 'Sí',
        no: 'No',
        ok: 'Aceptar',
        error: 'Error',
        success: 'Éxito',
        warning: 'Advertencia',
        loading: 'Cargando...',
        restarting: 'Reiniciando...',
        noData: 'No hay datos disponibles',
        retry: 'Reintentar',
        saveAndRefresh: 'Guardar y actualizar',
        reset: 'Restablecer',
        back: 'Atrás',
        sslTls: 'SSL/TLS',
        protocol: 'Protocolo',
        address: 'Dirección',
        port: 'Puerto',
        search: 'Buscar',
        selected: 'Seleccionado',
        clear: 'Limpiar',
        finish: 'Finalizar',
        next: 'Siguiente',
        previous: 'Anterior',
        apply: 'Aplicar',
        defaults: 'Predeterminados',
        unmanaged: 'Sin gestión',
        readOnly: 'Solo lectura',
        rename: 'Renombrar',
        password: 'Contraseña',
        currentPassword: 'Contraseña actual',
        newPassword: 'Nueva contraseña',
        confirmPassword: 'Confirmar contraseña',
        passwordPrompt: 'Ingrese una contraseña',
        passwordWeak: 'Débil',
        passwordMedium: 'Medio',
        passwordStrong: 'Fuerte',
        savePassword: 'Guardar contraseña',
        editName: 'Editar nombre',
        state: 'Estado',
        name: 'Nombre',
        message: 'Mensaje',
        timestamp: 'Marca de tiempo',
        overview: 'Resumen',
        login: 'Iniciar sesión',
        logout: 'Cerrar sesión',
        temperature: 'Temperatura',
        duty: 'Velocidad',
        offset: 'Desplazamiento',
        stay: 'Quedarse',
        discard: 'Descartar',
        blankNameResetDefault:
            'Un nombre en blanco lo restablecerá al valor predeterminado del sistema.',
        copy: '(copia)',
        minuteAbbr: 'min',
        rpmAbbr: 'rpm',
        mhzAbbr: 'MHz',
        ghzAbbr: 'GHz',
        tempUnit: '°C',
        percentUnit: '%',
        secondAbbr: 's',
        wattAbbr: 'W',
        toast: {
            modeCreated: 'Modo Creado',
            modeDuplicated: 'Modo Duplicado',
            modeNameUpdated: 'Nombre del Modo Actualizado',
            modeUpdated: 'Modo actualizado con la configuración actual',
            modeDeleted: 'Modo Eliminado',
            modeActivated: 'Modo Activado',
            customSensorSaved: 'Sensor Personalizado Guardado y Actualizando UI...',
            customSensorUpdated:
                'Sensor Personalizado actualizado correctamente y Actualizando UI...',
            customSensorDeleted:
                'Sensor Personalizado eliminado correctamente y Actualizando UI...',
            alertSaved: 'Alerta Guardada',
            alertUpdated: 'Alerta Actualizada',
            alertDeleted: 'Alerta Eliminada',
            alertNotFound: 'No se encontró la Alerta para actualizar',
            settingsUpdated: 'Configuración actualizada correctamente y aplicada al dispositivo',
            settingsError: 'Hubo un error al intentar aplicar esta configuración',
            thinkPadFanControlApplied: 'Control de Ventilador ThinkPad aplicado correctamente',
        },
    },
    layout: {
        topbar: {
            login: 'Iniciar sesión',
            logout: 'Cerrar sesión',
            changePassword: 'Cambiar contraseña',
            accessTokens: 'Tokens de acceso',
            restartUI: 'Reiniciar interfaz',
            restartDaemonAndUI: 'Reiniciar daemon e interfaz',
            restartConfirmMessage: '¿Está seguro de que desea reiniciar el daemon y la interfaz?',
            restartConfirmHeader: 'Reinicio del daemon',
            shutdownSuccess: 'Señal de apagado del daemon aceptada',
            shutdownError:
                'Error desconocido al enviar la señal de apagado. Consulte los registros para más detalles.',
            quitDesktopApp: 'Salir de la aplicación',
            applicationInfo: 'Info y Herramientas',
            back: 'Atrás',
            expandMenu: 'Expandir menú',
            collapseMenu: 'Contraer menú',
            controls: 'Controles',
            alerts: 'Alertas',
            settings: 'Configuración',
            openInBrowser: 'Abrir en navegador',
            modes: 'Modos',
            loginSuccessful: 'Inicio de sesión exitoso',
        },
        settings: {
            title: 'Configuración',
            userInterface: 'Interfaz de Usuario',
            device: 'Dispositivos',
            daemon: 'Daemon',
            devices: {
                devicesAndSensors: 'Dispositivos y sensores',
                detectionIssues: '¿Problemas de detección? Consulte la',
                hardwareSupportDoc: 'documentación de soporte de hardware',
                toggleRequiresRestart:
                    'Cambiar dispositivos o sensores requiere un reinicio del daemon y la interfaz. ¿Está seguro de que desea hacer esto ahora?',
                enableDevices: 'Habilitar dispositivos',
                selectTooltip:
                    'Seleccione dispositivos y sensores para deshabilitar o habilitar.\nSe recomienda encarecidamente deshabilitar los dispositivos y sensores no utilizados.',
                unknownError:
                    'Error desconocido al intentar aplicar cambios a todos los dispositivos. Consulte los registros para más detalles.',
            },
            plugin: 'Plugins (beta)',
            plugins: {
                device: 'Plugin de servicio de dispositivo',
                integration: 'Plugin de integración',
                privileged: 'Acceso privilegiado',
                pluginUrl: 'Página de inicio',
                restricted: 'Acceso restringido',
                settingsSaved: 'Configuración del plugin guardada correctamente',
                settingsNotSaved: 'Error al guardar la configuración del plugin',
            },
            profiles: 'Perfiles',
            alerts: 'Alertas',
            dashboards: 'Paneles',
            modes: 'Modos',
            appearance: 'Apariencia',
            language: 'Idioma',
            selectLanguage: 'Seleccionar idioma',
            english: 'Inglés',
            chinese: 'Chino (Simplificado)',
            japanese: 'Japonés',
            chineseTrad: 'Chino (Tradicional)',
            russian: 'Ruso',
            german: 'Alemán',
            french: 'Francés',
            spanish: 'Español',
            arabic: 'Árabe',
            portuguese: 'Portugués',
            hindi: 'Hindi',
            theme: 'Tema',
            themeLight: 'Claro',
            themeDark: 'Oscuro',
            themeSystem: 'Sistema',
            themeCustom: 'Personalizado',
            themeHighContrastDark: 'Oscuro de alto contraste',
            themeHighContrastLight: 'Claro de alto contraste',
            lineThickness: 'Grosor de línea',
            fullScreen: 'Pantalla completa',
            menuBarAlwaysVisible: 'Barra de menú siempre visible',
            hideMenuCollapseIcon: 'Ocultar icono de contracción del menú',
            eyeCandy: 'Efectos visuales',
            showOnboarding: 'Mostrar introducción al inicio',
            introduction: 'Introducción',
            startTour: 'Iniciar tour',
            timeFormat: 'Formato de hora',
            time24h: '24 horas',
            time12h: '12 horas',
            frequencyPrecision: 'Precisión de frecuencia',
            startupPage: 'Página de inicio',
            sidebarToCollapse: 'Barra lateral a contraer',
            entitiesBelowSensors: 'Entidades debajo de sensores',
            dashboardLineSize: 'Tamaño de línea del panel',
            themeStyle: 'Estilo del tema',
            themeMode: {
                system: 'Sistema',
                dark: 'Oscuro',
                light: 'Claro',
                highContrastDark: 'Oscuro de alto contraste',
                highContrastLight: 'Claro de alto contraste',
                custom: 'Personalizado',
            },
            desktop: 'Escritorio',
            startInTray: 'Iniciar en bandeja',
            closeToTray: 'Cerrar a bandeja',
            zoom: 'Zoom',
            desktopStartupDelay: 'Retraso de inicio de escritorio',
            applySettingsOnStartup: 'Aplicar configuración al inicio',
            deviceDelayAtStartup: 'Retraso de dispositivo al inicio',
            pollingRate: 'Tasa de sondeo',
            compressApiPayload: 'Comprimir carga útil de API',
            liquidctlIntegration: 'Integración con Liquidctl',
            liquidctlDeviceInit: 'Inicialización de dispositivos Liquidctl',
            hideDuplicateDevices: 'Ocultar dispositivos duplicados',
            drivePowerState: 'Estado de energía del disco',
            sensorsAutoDetect: 'Detección automática de sensores',
            deviceListener: 'Listener de cambios de dispositivos',
            customTheme: {
                title: 'Tema Personalizado',
                accent: 'Color de Acento',
                bgOne: 'Fondo Primario',
                bgTwo: 'Fondo Secundario',
                border: 'Color del Borde',
                text: 'Color del Texto',
                textSecondary: 'Color del Texto Secundario',
                export: 'Exportar Tema',
                import: 'Importar Tema',
                copyCode: 'Copiar Código',
                pasteCode: 'Pegar Código',
                themeCodeCopied: 'Código del tema copiado',
                themeApplied: 'Tema aplicado',
                invalidThemeCode: 'Código de tema no válido',
            },
            tooltips: {
                introduction: 'Iniciar el recorrido de introducción de la aplicación.',
                timeFormat: 'Formato de hora: 12 horas (AM/PM) o 24 horas',
                frequencyPrecision: 'Ajustar la precisión de los valores de frecuencia mostrados.',
                startupPage: 'La página que se muestra después de cargar la aplicación.',
                eyeCandy:
                    'Habilitar animaciones visuales como iconos de ventiladores giratorios.\nEsto utilizará algunos recursos adicionales de la GPU.',
                sidebarCollapse:
                    'Si mostrar un icono de colapso del menú en la barra lateral,\no usar el área vacía de la barra lateral para expandir o colapsar el menú principal.',
                entitiesBelowSensors:
                    'Si mostrar entidades debajo de los sensores del dispositivo en el menú principal.',
                fullScreen: 'Alternar el modo de pantalla completa',
                lineThickness: 'Ajustar el grosor de las líneas de los gráficos en el panel',
                startInTray:
                    'Al iniciar, la ventana principal de la interfaz de usuario estará oculta y solo\nserá visible el icono de la bandeja del sistema.',
                closeToTray:
                    'Cerrar la ventana de la aplicación dejará la aplicación ejecutándose en la bandeja del sistema',
                zoom: 'Establecer manualmente el nivel de zoom de la interfaz de usuario.',
                desktopStartupDelay:
                    'Agrega un retraso antes de iniciar la aplicación de escritorio (en segundos).\nAyuda con problemas que surgen al tener la aplicación de escritorio\niniciada automáticamente al iniciar sesión o al iniciar demasiado rápido',
                applySettingsOnStartup:
                    'Aplicar automáticamente la configuración al iniciar el daemon y al despertar del sueño',
                deviceDelayAtStartup:
                    'Retraso antes de comenzar la comunicación del dispositivo (en segundos).\nAyuda con dispositivos que tardan en inicializarse o se detectan de manera intermitente',
                pollingRate:
                    'La tasa a la que se sondean los datos del sensor (en segundos).\nUna tasa de sondeo más alta reducirá el uso de recursos, y una más baja aumentará la capacidad de respuesta.\nSe debe usar con precaución una tasa inferior a 1.0.',
                compressApiPayload: 'Habilitar la compresión de la carga útil de la API',
                liquidctlIntegration:
                    'Deshabilitar esto desactivará completamente la integración de Liquidctl,\nindependientemente del estado de instalación del paquete coolercontrol-liqctld. Si está disponible, se utilizarán controladores HWMon en su lugar.',
                liquidctlDeviceInit:
                    'Precaución: Deshabilite esto SOLO si usted, o otro programa,\nestán manejando la inicialización del dispositivo liquidctl.\nEsto puede ayudar a evitar conflictos con otros programas.',
                hideDuplicateDevices:
                    'Algunos dispositivos son compatibles tanto con los controladores Liquidctl como con los HWMon.\nLiquidctl se usa por defecto por sus características adicionales. Para usar controladores HWMon en su lugar,\ndeshabilite esto y el dispositivo liquidctl para evitar conflictos de controladores.',
                drivePowerState:
                    'Los SSD y los HDD en particular pueden detenerse y entrar en un estado de bajo consumo.\nEsta opción, cuando está habilitada y la unidad lo soporta, informará las temperaturas de la unidad\ncomo 0°C cuando esté detenida para que los perfiles del ventilador puedan ajustarse en consecuencia.',
                sensorsAutoDetect:
                    'Detectar automáticamente sensores de hardware Super-I/O y cargar\nmódulos del kernel al iniciar. (solo x86_64)',
                deviceListener:
                    'Escuchar eventos de adición/eliminación de dispositivos (ej. conexión USB)\ny notificar cuando se detecten cambios de hardware.',
                daemonAddress:
                    'La dirección IP o el nombre de dominio del daemon para establecer una conexión.\nAdmite IPv4, IPv6 y nombres de host resolubles por DNS.',
                daemonPort: 'El puerto utilizado para establecer una conexión con el daemon.',
                sslTls: 'Si conectarse al daemon usando SSL/TLS.\nSe requiere una configuración de proxy.',
                triggersRestart: 'Activa un reinicio automático',
                triggersUIRestart: 'Activa un reinicio automático de la interfaz de usuario',
                triggersDaemonRestart: 'Activa un reinicio automático del daemon',
                resetToDefaults: 'Restablecer a la configuración predeterminada',
                saveAndReload: 'Guardar y recargar la interfaz de usuario',
                copyThemeCode:
                    'Copia un código compacto que representa tu tema personalizado actual.\nCompártelo en chats o foros.',
                pasteThemeCode:
                    'Aplica un tema personalizado desde un código (cct1:...) que te hayan compartido.',
                exportThemeFile: 'Guarda el tema personalizado actual en un archivo JSON.',
                importThemeFile: 'Carga un tema personalizado desde un archivo JSON.',
            },
            applySettingAndRestart:
                'Cambiar esta configuración requiere un reinicio del daemon y la interfaz de usuario. ¿Está seguro de que desea hacer esto ahora?',
            restartHeader: 'Aplicar configuración y reiniciar',
            restartSuccess: 'Reiniciando ahora',
            success: 'Éxito',
            successDetail: 'Operación completada con éxito',
            settingsAppliedSuccess: 'Configuraciones aplicadas con éxito',
            restartRequestSuccess: 'Solicitud de reinicio enviada con éxito',
            colorPickerDialogTitle: 'Seleccionar color',
            colorPickerConfirm: 'Confirmar',
            colorPickerCancel: 'Cancelar',
            languageChangeConfirm: '¿Cambiar idioma?',
            languageChangeConfirmMessage:
                '¿Está seguro de que desea continuar? Si algunos elementos de la interfaz no se muestran correctamente, actualice la página manualmente.',
            languageChangeSuccess: 'Idioma cambiado con éxito.',
            languageChangeError: 'Error al cambiar el idioma. Por favor, inténtelo de nuevo.',
            themeChangeSuccess: 'Tema cambiado con éxito.',
            entitiesBelowSensorsEnabledMessage:
                'Las entidades ahora se mostrarán debajo de los sensores.',
            entitiesBelowSensorsDisabledMessage:
                'Las entidades ya no se mostrarán debajo de los sensores.',
        },
        menu: {
            system: 'Sistema',
            dashboards: 'Paneles',
            profiles: 'Perfiles',
            functions: 'Funciones',
            customSensors: 'Sensores personalizados',
            modes: 'Modos',
            alerts: 'Alertas',
            pinned: 'Fijado',
            tooltips: {
                delete: 'Eliminar',
                createMode: 'Crear modo desde configuración actual',
                addProfile: 'Añadir perfil',
                editName: 'Editar nombre',
                addAlert: 'Añadir alerta',
                deleteFunction: 'Eliminar función',
                addDashboard: 'Añadir panel',
                deleteDashboard: 'Eliminar panel',
                duplicate: 'Duplicar',
                setAsHome: 'Establecer como inicio',
                save: 'Guardar',
                deleteMode: 'Eliminar modo',
                updateWithCurrentSettings: 'Actualizar con configuración actual',
                rename: 'Renombrar',
                createModeFromCurrentSettings: 'Crear modo desde configuración actual',
                addCustomSensor: 'Añadir sensor personalizado',
                addFunction: 'Añadir función',
                chooseColor: 'Elegir color',
                deviceSettings: 'Configuración Avanzada del Dispositivo',
                options: 'Más Opciones',
                moveTop: 'Mover al Inicio',
                moveBottom: 'Mover al Final',
                disable: 'Deshabilitar',
                pin: 'Fijar al Inicio',
                unpin: 'Desfijar',
                profileApply: 'Aplicar Perfil a ventiladores',
                tags: 'Gestionar Etiquetas',
            },
        },
        plugins: {
            plugins: 'Plugins',
            notFound: 'Plugin no encontrado',
            type: 'Tipo',
            address: 'Dirección',
            privileges: 'Privilegios',
            url: 'URL',
            start: 'Iniciar',
            stop: 'Detener',
            restart: 'Reiniciar',
            started: 'Plugin iniciado',
            stopped: 'Plugin detenido',
            restarted: 'Plugin reiniciado',
            startFailed: 'Error al iniciar el plugin',
            stopFailed: 'Error al detener el plugin',
            restartFailed: 'Error al reiniciar el plugin',
            overview: 'Vista General de Plugins',
            gettingStarted:
                'Los plugins amplían CoolerControl con soporte adicional de dispositivos, integraciones y automatización. Pueden proporcionar nuevos sensores y controles de dispositivos, conectarse a servicios externos o agregar páginas de interfaz personalizadas.',
            docsLink: 'Documentación de Plugins',
            restartNote:
                'Si recientemente agregó un nuevo plugin y no aparece aquí, reinicie el demonio de CoolerControl.',
            containerNote:
                'Al ejecutar CoolerControl en un contenedor, los plugins deben colocarse en la carpeta compartida virtual persistente para que sobrevivan a los reinicios del contenedor.',
            installedPlugins: 'Plugins Instalados',
            noPlugins: 'No hay plugins instalados',
            info: 'Info',
            description: 'Descripción',
            enable: 'Habilitar',
            disable: 'Deshabilitar',
            disabled: 'Deshabilitado',
            pluginDisabled: 'Plugin deshabilitado.',
            pluginEnabled: 'Plugin habilitado.',
            pluginDisabledRestart: 'Plugin deshabilitado. Reinicie el daemon para aplicar.',
            pluginEnabledRestart: 'Plugin habilitado. Reinicie el daemon para aplicar.',
            disableFailed: 'Error al deshabilitar el plugin',
            enableFailed: 'Error al habilitar el plugin',
            serviceLogs: 'Registros del servicio',
            commandCopied: 'Comando copiado al portapapeles',
        },
        add: {
            dashboard: 'Panel',
            mode: 'Modo',
            profile: 'Perfil',
            function: 'Función',
            alert: 'Alerta',
            customSensor: 'Sensor personalizado',
        },
    },
    views: {
        daemon: {
            title: 'Daemon',
            daemonErrors: 'Errores del Daemon',
            daemonErrorsDetail:
                'El daemon ha reportado errores. Consulte los registros para más detalles.',
            daemonDisconnected: 'Daemon Desconectado',
            daemonDisconnectedDetail:
                'No se puede conectar al daemon. Por favor, compruebe si el daemon está en ejecución.',
            connectionRestored: 'Conexión Restaurada',
            connectionRestoredMessage: 'La conexión al daemon ha sido restaurada.',
            thinkpadFanControl: 'Control de Ventilador ThinkPad',
            pollRate: 'Tasa de Sondeo',
            applySettingAndRestart: 'Aplicar Configuración y Reiniciar',
            changeSetting:
                'Cambiar esta configuración requiere un reinicio del daemon y la interfaz. ¿Está seguro de que desea hacerlo ahora?',
            status: {
                ok: 'Ok',
                hasWarnings: 'Tiene Advertencias',
                hasErrors: 'Tiene Errores',
            },
        },
        devices: {
            detectionIssues: 'Problemas de detección? Consulte la',
            hardwareSupportDocs: 'Documentación de Soporte de Hardware',
            selectDevices:
                'Seleccione dispositivos y sensores para deshabilitar o habilitar.\nSe recomienda encarecidamente deshabilitar los dispositivos y sensores no utilizados.',
            devicesAndSensors: 'Dispositivos y Sensores',
            apply: 'Aplicar',
            applySettingsAndReload: 'Aplicar configuración y recargar',
            triggersAutoRestart: 'Activa reinicio automático',
            restartPrompt:
                'Cambiar dispositivos o sensores requiere un reinicio del daemon y la interfaz. ¿Está seguro de que desea hacerlo ahora?',
            enableDevices: 'Habilitar Dispositivos',
        },
        speed: {
            automatic: 'Automático',
            manual: 'Manual',
            unsavedChanges: 'Cambios no guardados',
            unsavedChangesMessage: 'Hay cambios no guardados realizados en este canal de control.',
            manualDuty: 'Ciclo Manual',
            profileToApply: 'Perfil a aplicar',
            controlModeAutomaticTooltip: 'Aplicar un Perfil de ventilador a este canal',
            controlModeManualTooltip: 'Establecer un porcentaje de ciclo fijo manualmente',
            controlModeUnmanagedTooltip:
                'Dejar de gestionar este canal, dejando que el hardware o controlador del dispositivo decida',
            driverNoSupportControl:
                'Canal de solo lectura. El controlador actual no admite ajustar la velocidad de este canal.',
            amdOverdriveNotEnabled:
                'AMD GPU overdrive no está habilitado. Habilítelo en la configuración avanzada de este dispositivo (requiere reinicio).',
            controlOrView: 'Controlar o Ver',
            applySetting: 'Aplicar Configuración',
            defaultProfileInfo:
                'Seleccionar "Sin gestión" indica a CoolerControl que deje de controlar<br/>este ventilador y devuelva el control al controlador del dispositivo.<br/><br/><b>Advertencia:</b> Muchos controladores <i>no</i> tienen control automático<br/>de ventilador. En esos dispositivos, el ventilador permanecerá<br/>a su última velocidad configurada.',
        },
        customSensors: {
            newSensor: 'Nuevo Sensor',
            sensorType: 'Tipo de Sensor',
            type: 'Tipo',
            mixFunction: 'Función de Mezcla',
            howCalculateValue: 'Cómo calcular el valor resultante del sensor',
            tempFileLocation: 'Ubicación del Archivo de Temperatura',
            tempFile: 'Archivo de Temperatura',
            filePathTooltip:
                'Introduzca la ruta absoluta al archivo de temperatura a utilizar para este sensor.\nEl archivo debe usar el formato de datos sysfs estándar:\nUn número de punto fijo en miligrados Celsius.\np.ej. 80000 para 80°C.\nEl archivo se verifica al enviarse.',
            browse: 'Explorar',
            browseCustomSensorFile: 'Explorar un archivo de sensor personalizado',
            tempSources: 'Fuentes de Temperatura',
            tempSource: 'Fuente de Temperatura',
            tempSourcesTooltip:
                'Fuentes de temperatura que se usarán en la función de mezcla<br/><i>Nota: Al combinar varios Sensores Personalizados solo se permiten relaciones directas de padre e hijo.<br/>Use Perfiles de Mezcla para configuraciones más complejas.</i>',
            offset: 'Desplazamiento',
            offsetTooltip:
                'Introduzca un desplazamiento negativo o positivo que se aplicará al sensor de origen.<br/><i>Nota: El valor final se limita a rangos normales de temperatura.</i>',
            timeWindow: 'Ventana de Suavizado',
            timeWindowTooltip:
                'Cuántos segundos de muestras recientes se suavizarán juntas.<br/><i>Nota: Debe estar entre 1 y 300 segundos.</i>',
            helpText: {
                mix: 'Combina múltiples fuentes de temperatura mediante la función elegida (Mín/Máx/Promedio/Delta/Promedio Ponderado). Use para controlar ventiladores desde el más caliente de varios sensores, o para equilibrar entre zonas.',
                file: 'Lee la temperatura desde una ruta de archivo. Use para sensores no detectados automáticamente por CoolerControl.',
                offset: 'Suma o resta un valor fijo a una fuente de temperatura. Use para calibrar una imprecisión conocida del sensor.',
                timeAverage:
                    'Media aritmética en una ventana de tiempo fija. La salida está acotada por el rango de entrada y nunca lo excede. Para ventiladores que deben ignorar picos breves de temperatura.',
                exponentialMovingAvg:
                    'Promedio ponderado que favorece las lecturas recientes. Más suave que el Promedio Temporal con la misma ventana, pero tarda aproximadamente 3 veces la longitud de la ventana en seguir completamente un cambio sostenido. Para ventiladores que deben seguir tendencias reales sin fluctuaciones.',
            },
            tempWeights: 'Pesos de Temperatura',
            tempWeightsTooltip: 'El peso individual de cada fuente de temperatura seleccionada.',
            tempName: 'Nombre de Temperatura',
            weight: 'Peso',
            saveSensor: 'Guardar Sensor',
            saveCustomSensor: 'Guardar Sensor Personalizado',
            unsavedChanges: 'Hay cambios no guardados realizados en este Sensor Personalizado.',
            unsavedChangesHeader: 'Cambios no guardados',
            stay: 'Quedarse',
            discard: 'Descartar',
            selectCustomSensorFile: 'Seleccionar Archivo de Sensor Personalizado',
            deleteCustomSensor: 'Eliminar Sensor Personalizado',
            deleteCustomSensorConfirm:
                '¿Está seguro de que desea eliminar el sensor personalizado: "{name}"?',
        },
        dashboard: {
            timeRange: 'Rango de Tiempo',
            minutes: 'min',
            chartType: 'Tipo de Gráfico',
            dataType: 'Tipo de Datos',
            filterSensors: 'Filtrar Sensores',
            showControls: 'Mostrar Controles',
            mouseActions:
                'Acciones del ratón en el panel:\n- Resaltar selección para hacer zoom.\n- Desplazar para hacer zoom.\n- Clic derecho para mover cuando se hace zoom.\n- Doble clic para restablecer y reanudar la actualización.\n- Ctrl+clic o clic medio para mostrar todos los sensores en la herramienta de ayuda.',
            fullPage: 'Página Completa',
            filterTags: 'Filtrar Etiquetas',
            filterByTag: 'Filtrar por Etiqueta',
            filterBySensor: 'Filtrar por Sensor',
            search: 'Buscar',
            filterTypes: 'Filtrar Tipos',
            filterByDataType: 'Filtrar por Tipo de Datos',
            selectChartType: 'Seleccionar un Tipo de Gráfico',
            exitFullPage: 'Salir de Página Completa',
            controls: 'Controles',
            sensorValues: 'Valores de Sensores',
            selected: 'Seleccionado',
            clear: 'Limpiar',
            deleteDashboard: 'Eliminar Panel',
            deleteDashboardConfirm: '¿Está seguro de que desea eliminar el panel: "{name}"?',
            dashboardDeleted: 'Panel Eliminado',
            setAsHome: 'Establecer como Inicio',
            duplicateDashboard: 'Duplicar Panel',
        },
        appInfo: {
            title: 'Info y Herramientas',
            noWarranty: 'Este programa viene sin absolutamente ninguna garantía.',
            changeStartupPage: 'Cambiar la página de inicio en Ajustes',
            daemonStatus: 'Estado del Daemon',
            acknowledgeIssues: 'Reconocer Problemas',
            status: 'Estado',
            processStatus: 'Estado del Proceso',
            host: 'Host',
            uptime: 'Tiempo de funcionamiento',
            version: 'Versión',
            processId: 'ID del Proceso',
            memoryUsage: 'Uso de Memoria',
            liquidctl: 'Liquidctl',
            connected: 'Conectado',
            disconnected: 'Desconectado',
            helpfulLinks: 'Enlaces Útiles',
            uiTour: 'Recorrido por la UI',
            uiTourDesc: 'Realice un recorrido guiado por la aplicación',
            gettingStarted: 'Primeros Pasos',
            gettingStartedGraphProfile: 'Perfil de Gráfico',
            gettingStartedControlsPage: 'Página de Controles',
            gettingStartedStep1:
                'Cree un {profile} en Perfiles de ventilador y ajuste la curva del ventilador.',
            gettingStartedStep2:
                'Asígnelo en la {controls} (o en la página del ventilador). Los Perfiles no se aplican automáticamente.',
            gettingStartedStep3: 'Reutilice el mismo Perfil en tantos ventiladores como desee.',
            helpSettingUp: 'Ayuda para configurar el control de ventiladores',
            hardwareSupport: 'Soporte de Hardware',
            hardwareSupportDesc: 'Dispositivos compatibles e instalación de controladores',
            gitRepository: 'Repositorio Git',
            gitRepositoryDesc: 'Reportar problemas o solicitar funciones',
            discord: 'Discord',
            discordDesc: 'Únete a nuestra comunidad de Discord',
            whatsNew: 'Novedades',
            whatsNewDesc: 'Ver las últimas notas de la versión',
            logsAndDiagnostics: 'Registros y Diagnósticos',
            downloadCurrentLog: 'Descargar Registro Actual',
            stressTest: 'Pruebas de estrés térmico',
            stressTestTooltip:
                'Genera carga térmica sostenida para validar<br>curvas de ventilador y perfiles de enfriamiento.<br>Los resultados pueden variar según el hardware.<br>Instale stress-ng para backends adicionales.',
            cpuStress: 'Estrés de CPU',
            gpuStress: 'Estrés de GPU',
            gpuStressTooltip:
                'Puede requerir controladores Vulkan o OpenGL ES<br>al usar el backend integrado.',
            ramStress: 'Estrés de RAM',
            driveStress: 'Estrés de disco',
            driveStressTooltip:
                'Estrés de E/S en un dispositivo de bloque para generar<br>calor en los controladores de disco.<br>stress-ng requiere que el dispositivo esté montado.',
            builtInBackend: 'integrado',
            stressNgBackend: 'stress-ng',
            backendTooltip:
                'Elija el backend de la prueba de estrés.<br>El backend integrado funciona sin dependencias externas.<br>stress-ng (cuando está instalado) proporciona variantes adicionales de estresores.',
            selectDrive: 'Seleccionar disco',
            threadCount: 'Hilos',
            duration: 'Duración (s)',
            start: 'Iniciar',
            stop: 'Detener',
            stopAll: 'Detener todo',
            active: 'Activo',
            inactive: 'Inactivo',
            allCores: 'Todos los núcleos',
            psuWarningHeader: 'Advertencia de alto consumo',
            psuWarningMessage:
                'Ejecutar las pruebas de estrés de CPU y GPU simultáneamente generará una carga significativa en la fuente de alimentación. Si hace overclocking o usa una fuente de bajo vataje, puede producirse inestabilidad del sistema. ¿Desea continuar?',
            proceed: 'Continuar',
        },
        alerts: {
            createAlert: 'Crear Alerta',
            editAlert: 'Editar Alerta',
            deleteAlert: 'Eliminar Alerta',
            noAlerts: 'No hay alertas configuradas',
            alertsOverview: 'Resumen de Alertas',
            alertLogs: 'Registros de Alertas',
            alertTriggered: 'Alerta Activada',
            alertRecovered: 'Alerta Recuperada',
            deleteAlertConfirm: '¿Está seguro de que desea eliminar: "{name}"?',
            saveAlert: 'Guardar Alerta',
            channelSource: 'Fuente de Canal para Alerta',
            channelSourceTooltip: 'La fuente de canal a utilizar para la Alerta',
            triggerConditions: 'Condiciones de Activación',
            maxValueTooltip: 'Los valores por encima de esto activarán la alerta.',
            minValueTooltip: 'Los valores por debajo de esto activarán la alerta.',
            warmupDurationTooltip:
                'Cuánto tiempo debe estar activa una condición para que la alerta se considere activa.\nSe verifica solo a intervalos regulares de sondeo,\npor lo que puede no tener exactamente esta duración.',
            greaterThan: 'mayor que',
            lessThan: 'menor que',
            newAlert: 'Nueva Alerta',
            warmupGreaterThan: 'condición activada por más tiempo que',
            unsavedChanges: 'Hay cambios no guardados realizados en esta Alerta.',
            unsavedChangesHeader: 'Cambios no guardados',
            createFailAlert: 'Alerta de fallo',
            desktopNotify: 'notificación de escritorio',
            desktopNotifyTooltip:
                'Habilitar notificaciones de escritorio cuando se active la alerta.\n(Si es compatible)',
            desktopNotifyRecovery: 'notificación de escritorio en recuperación',
            desktopNotifyRecoveryTooltip:
                'Habilitar notificaciones de escritorio cuando la alerta se recupere.\n(Si es compatible)',
            desktopNotifyAudio: 'audio de notificación de escritorio',
            desktopNotifyAudioTooltip:
                'Habilitar audio de notificación de escritorio cuando se active la alerta.\n(Si es compatible)',
            shutdownOnActivation: 'apagar en activación',
            shutdownOnActivationTooltip:
                'Habilitar el apagado del sistema cuando se active la alerta.\nEl apagado del sistema comenzará un minuto después de que se active la alerta\ny se cancelará si la alerta se recupera.',
        },
        profiles: {
            createProfile: 'Crear Perfil',
            editProfile: 'Editar Perfil',
            deleteProfile: 'Eliminar Perfil',
            noProfiles: 'No hay perfiles configurados',
            profileType: 'Tipo de Perfil',
            fixedDuty: 'Velocidad Fija del Ventilador',
            selectedPointDuty: 'Velocidad del Punto Seleccionado',
            selectedPointTemp: 'Temperatura del Punto Seleccionado',
            tempSource: 'Fuente de Temperatura',
            memberProfiles: 'Perfiles Miembros',
            mixFunction: 'Función de Mezcla',
            applyMixFunction: 'Aplicar función de mezcla a los perfiles seleccionados',
            profilesToMix: 'Perfiles para mezclar',
            saveProfile: 'Guardar Perfil',
            function: 'Función',
            functionToApply: 'Función a aplicar',
            graphProfileMouseActions:
                'Acciones del ratón en el Perfil Gráfico:\n- Desplazar para zoom.\n- Clic izquierdo en la línea para añadir punto.\n- Clic derecho en el punto para eliminar.\n- Arrastrar punto para mover.',
            unsavedChanges: 'Hay cambios no guardados en este Perfil.',
            unsavedChangesHeader: 'Cambios No Guardados',
            appliedFunction: 'Función Aplicada',
            newProfile: 'Nuevo Perfil',
            tooltip: {
                profileType:
                    'Tipos de Perfiles:<br/>- Predeterminado: Sin gestión, devuelve el control al controlador del dispositivo<br/>- Fijo: Establece una velocidad constante<br/>- Gráfico: Curva de ventilador personalizable<br/>- Mezcla: Combina múltiples perfiles<br/>- Superposición: aplica un desplazamiento a la salida de un perfil existente',
            },
            profileDeleted: 'Perfil Eliminado',
            profileDuplicated: 'Perfil Duplicado',
            deleteProfileConfirm: '¿Está seguro de que desea eliminar: "{name}"?',
            deleteProfileWithChannelsConfirm:
                '"{name}" está siendo utilizado actualmente por: {channels}.\nEliminar este Perfil restablecerá la configuración de esos canales.\n¿Está seguro de que desea eliminar "{name}"?',
            profileUpdated: 'Perfil actualizado correctamente',
            profileUpdateError: 'Hubo un error al intentar actualizar este Perfil',
            tempSourceRequired: 'Se requiere una Fuente de Temperatura para un Perfil Gráfico.',
            memberProfilesRequired:
                'Se requieren al menos 2 Perfiles Miembros para un Perfil de Mezcla.',
            minProfileTemp: 'Temperatura Mínima del Perfil',
            maxProfileTemp: 'Temperatura Máxima del Perfil',
            staticOffset: 'Desplazamiento estático',
            offsetType: 'Tipo de desplazamiento',
            offsetTypeStatic: 'Desplazamiento estático',
            offsetTypeGraph: 'Desplazamiento de gráfico',
            baseProfile: 'Perfil base',
            baseProfileRequired: 'Se requiere un Perfil base para un Perfil de superposición.',
            selectedPointOutputDuty: 'Velocidad de salida del perfil del punto seleccionado',
            selectedPointOffset: 'Velocidad de desplazamiento del punto seleccionado',
            profileOutputDuty: 'Velocidad de salida del perfil',
            offsetDuty: 'Velocidad de desplazamiento',
            points: 'Puntos',
            moveTable: 'Mover a otra esquina',
            addPointAfter: 'Añadir punto después',
            removePoint: 'Eliminar punto',
            curvePointLimitBadge: 'máx {n} pts',
            curveLimitedByAmdGpu:
                'Curva limitada a {n} puntos por la curva de ventilador del hardware AMD GPU.',
            curveLimitedByFirmware:
                'Curva limitada a {n} puntos por la curva de ventilador del firmware del dispositivo.',
        },
        controls: {
            viewType: 'Tipo de Vista',
            controlOrView: 'Controlar o Ver',
            title: 'Controles del Sistema',
            noControllableChannels: 'No se encontraron canales controlables.',
            noControlChain: 'No se encontró cadena de control para este canal.',
            controlFlow: 'Flujo de Control',
            backToOverview: 'Volver a la vista de controles',
            viewControlFlow: 'Ver flujo de control',
            switchProfile: 'Cambiar perfil',
            switchTempSource: 'Cambiar fuente de temperatura',
            switchFunction: 'Cambiar función',
            switchMembers: 'Cambiar perfiles miembros',
            switchBaseProfile: 'Cambiar perfil base',
            adjustFixedSpeed: 'Ajustar velocidad fija',
            editSources: 'Editar fuentes',
        },
        modes: {
            createMode: 'Crear Modo',
            editMode: 'Editar Modo',
            deleteMode: 'Eliminar Modo',
            noModes: 'No hay modos configurados',
            deleteModeConfirm: '¿Está seguro de que desea eliminar el modo: "{name}"?',
            updateModeConfirm:
                '¿Está seguro de que desea sobrescribir "{name}" con la configuración actual?',
            duplicateMode: 'Duplicar Modo',
        },
        functions: {
            createFunction: 'Crear Función',
            editFunction: 'Editar Función',
            deleteFunction: 'Eliminar Función',
            noFunctions: 'No hay funciones configuradas',
            saveFunction: 'Guardar Función',
            functionType: 'Tipo de Función',
            functionTypeTooltip:
                'Tipos de función:<br/>' +
                '- <b>Identidad</b>: Aplica límites de tamaño de paso pero por lo demás pasa el valor del perfil sin cambios.<br/>' +
                '- <b>Estándar</b>: Aplica límites de tamaño de paso y configuración de histéresis para un control preciso del tiempo de respuesta y estabilidad del ventilador.<br/>' +
                '- <b>Promedio Móvil Exponencial</b>: Suaviza las fluctuaciones de temperatura usando un promedio ponderado. Más simple pero menos preciso que Estándar.',
            stepSizeTitle: 'Tamaño de Paso',
            fixedStepSize: 'Fijo',
            fixedStepSizeTooltip:
                'Activado usa un tamaño de paso fijo para todos los cambios.\nDesactivado permite establecer un rango mínimo y máximo de tamaño de paso.',
            asymmetric: 'Asimétrico',
            asymmetricTooltip:
                'Cuando está activado, se pueden configurar límites de tamaño de paso separados para aumentos y disminuciones de velocidad.\nÚtil cuando desea que los ventiladores aceleren rápidamente pero desaceleren gradualmente, o viceversa.',
            stepSizeMin: 'Mínimo',
            stepSizeMinTooltip:
                'El cambio de velocidad del ventilador más pequeño que se aplicará.\nLos cambios menores se ignoran para reducir ajustes innecesarios.',
            stepSizeMax: 'Máximo',
            stepSizeMaxTooltip:
                'El cambio de velocidad del ventilador más grande permitido por actualización.\nLos cambios mayores se limitan a este valor para transiciones más suaves.',
            stepSizeFixed: 'Tamaño',
            stepSizeFixedTooltip:
                'Un único tamaño de paso aplicado a todos los cambios de velocidad del ventilador.\nTodos los ajustes se limitarán exactamente a este valor.',
            stepSizeFixedIncreasing: 'Aumentando',
            stepSizeFixedIncreasingTooltip:
                'Tamaño de paso fijo cuando la velocidad del ventilador está aumentando.\nTodos los ajustes ascendentes se limitarán exactamente a este valor.',
            stepSizeFixedDecreasing: 'Disminuyendo',
            stepSizeFixedDecreasingTooltip:
                'Tamaño de paso fijo cuando la velocidad del ventilador está disminuyendo.\nTodos los ajustes descendentes se limitarán exactamente a este valor.',
            stepSizeMinIncreasing: 'Mínimo Aumentando',
            stepSizeMinIncreasingTooltip:
                'Tamaño de paso mínimo cuando la velocidad del ventilador está aumentando.\nLos cambios calculados menores se ignoran para reducir ajustes innecesarios.',
            stepSizeMaxIncreasing: 'Máximo Aumentando',
            stepSizeMaxIncreasingTooltip:
                'Tamaño de paso máximo cuando la velocidad del ventilador está aumentando.\nLimita la rapidez con la que los ventiladores pueden acelerar por actualización.',
            stepSizeMinDecreasing: 'Mínimo Disminuyendo',
            stepSizeMinDecreasingTooltip:
                'Tamaño de paso mínimo cuando la velocidad del ventilador está disminuyendo.\nLos cambios calculados menores se ignoran para reducir ajustes innecesarios.',
            stepSizeMaxDecreasing: 'Máximo Disminuyendo',
            stepSizeMaxDecreasingTooltip:
                'Tamaño de paso máximo cuando la velocidad del ventilador está disminuyendo.\nLimita la rapidez con la que los ventiladores pueden desacelerar por actualización.',
            windowSize: 'Tamaño de Ventana',
            windowSizeTooltip:
                'Tamaño de muestra de temperatura de ventana usado en el cálculo del promedio móvil exponencial.\nValores más pequeños = respuesta más rápida, más reactivo a picos de temperatura.\nValores más grandes = respuesta más lenta, transiciones de velocidad del ventilador más suaves.\nConsejo: Use una Función Estándar para control preciso sobre el tiempo de respuesta.',
            emaCustomSensorAvailableNote:
                'EMA también está disponible como tipo de Sensor Personalizado, lo que permite graficar la temperatura suavizada directamente.',
            emaDeprecatedWarning:
                'El tipo de Función EMA está obsoleto. Por favor, cambie al tipo de Sensor Personalizado EMA.',
            hysteresis: 'Histéresis Avanzada',
            hysteresisThreshold: 'Umbral',
            hysteresisThresholdTooltip:
                'Cambio mínimo de temperatura (°C) requerido antes de ajustar la velocidad del ventilador.\nAyuda a prevenir fluctuaciones rápidas de velocidad del ventilador por pequeñas variaciones de temperatura.',
            hysteresisDelay: 'Retraso',
            hysteresisDelayTooltip:
                'Retraso de respuesta (segundos) antes de aplicar cambios de velocidad del ventilador.\nLos picos de temperatura temporales dentro de este retraso se ignoran, suavizando las fluctuaciones.',
            onlyDownward: 'Solo Descendente',
            onlyDownwardTooltip:
                'Solo aplicar configuración de histéresis cuando la temperatura está disminuyendo.',
            general: 'General',
            thresholdHopping: 'Salto de Umbral',
            thresholdHoppingTooltip:
                'Cuando la velocidad del ventilador permanece sin cambios durante 30+ segundos, los límites de tamaño de paso e histéresis se omiten temporalmente.\nEsto asegura que los ventiladores eventualmente alcancen su velocidad objetivo, incluso con configuraciones de umbral conservadoras.',
            stepOverrides: 'Anulaciones de paso',
            bypassMinAtExtremes: 'Aplicar siempre 0% / 100%',
            bypassMinAtExtremesTooltip:
                'Cuando está habilitado, los ciclos de trabajo objetivo de 0% o 100% se aplican incluso cuando el cambio es menor que el tamaño de paso mínimo.\nÚtil para garantizar que los ventiladores se detengan completamente o alcancen las RPM máximas. Deshabilitado por defecto.',
            unsavedChanges: 'Hay cambios no guardados realizados en esta Función.',
            unsavedChangesHeader: 'Cambios no guardados',
            functionError: 'Error al intentar actualizar esta función',
            newFunction: 'Nueva Función',
            functionDeleted: 'Función Eliminada',
            functionDuplicated: 'Función Duplicada',
            deleteFunctionConfirm: '¿Está seguro de que desea eliminar "{name}"?',
            deleteFunctionWithProfilesConfirm:
                '"{name}" está siendo utilizada actualmente por los Perfiles: {profiles}.\nEliminar esta Función restablecerá las Funciones de esos Perfiles.\n¿Está seguro de que desea eliminar "{name}"?',
            functionUpdated: 'Función Actualizada',
            functionUpdateError: 'Hubo un error al intentar actualizar esta Función',
        },
        error: {
            accessDenied: 'Acceso Denegado',
            accessDeniedMessage:
                'La autenticación falló. Por favor, verifique su contraseña e intente nuevamente.',
            connectionError: 'Error de Conexión CoolerControl',
            connectionToast: 'No se puede conectar al daemon',
            connectionToastDetail:
                'No se puede conectar al daemon. Por favor, asegúrese de que el servicio está en ejecución e intente reconectarse.',
            connectionRetryFailure: 'Fallo de conexión - reintento fallido',
            connectionRetryDetail: 'No se pudo conectar al daemon después de múltiples intentos.',
            errorLoadingGraph: 'Error al cargar el gráfico',
            highCpuUsageWarning: 'Uso elevado de CPU detectado',
            highCpuUsageDetail:
                'El uso actual de CPU es alto.\nPara reducir el impacto en el sistema, considere:\n1. Reducir el número de gráficos mostrados\n2. Reducir el número de sensores monitoreados\n3. Aumentar el intervalo de sondeo',
            pageNotFound: 'Página No Encontrada',
            returnToDashboard: 'Volver al Panel',
            connectionErrorMessage: 'No se pudo conectar al Daemon CoolerControl.',
            serviceRunningMessage: 'Por favor, compruebe si el servicio daemon está en ejecución.',
            checkProjectPage: 'Para obtener ayuda configurando el daemon, consulte la',
            projectPage: 'página del proyecto',
            helpfulCommands: 'Comandos útiles:',
            nonStandardAddress:
                'Si tiene una dirección de daemon no estándar, puede especificarla a continuación:',
            daemonAddressDesktop: 'Dirección del Daemon (Aplicación de Escritorio)',
            daemonAddressWeb: 'Dirección del Daemon (Interfaz Web)',
            addressTooltip: 'La dirección IP o nombre de dominio para establecer una conexión.',
            portTooltip: 'El puerto para establecer una conexión.',
            sslTooltip: 'Si conectarse al daemon usando SSL/TLS.',
            saveTooltip: 'Guardar configuración y recargar la interfaz de usuario',
            resetTooltip: 'Restablecer a la configuración predeterminada',
        },
        singleDashboard: {
            minutes: 'min',
            chartMouseActions:
                'Acciones del ratón en el panel:\n- Resaltar para hacer zoom.\n- Desplazar para hacer zoom.\n- Clic derecho para mover cuando se hace zoom.\n- Doble clic para restablecer y reanudar la actualización.',
            timeRange: 'Rango de tiempo',
            chartType: 'Tipo de gráfico',
        },
        mode: {
            activateMode: 'Activar modo',
            currentlyActive: 'Actualmente activo',
            modeHint:
                'Nota: Los modos no incluyen configuraciones de Perfil o Función, solo configuraciones de canal.',
        },
        lighting: {
            saveLightingSettings: 'Guardar configuración de iluminación',
            lightingMode: 'Modo de iluminación',
            speed: 'Velocidad',
            direction: 'Dirección',
            forward: 'Adelante',
            backward: 'Atrás',
            numberOfColors: 'Número de colores',
            numberOfColorsTooltip: 'Número de colores a usar para el modo de iluminación elegido.',
        },
        lcd: {
            saveLcdSettings: 'Guardar configuración de LCD',
            lcdMode: 'Modo LCD',
            brightness: 'Brillo',
            brightnessPercent: 'Porcentaje de brillo',
            orientation: 'Orientación',
            orientationDegrees: 'Orientación en grados',
            chooseImage: 'Elegir imagen',
            dragAndDrop: 'Arrastre y suelte archivos aquí.',
            tempSource: 'Fuente de temperatura',
            tempSourceTooltip: 'Fuente de temperatura para usar en la pantalla LCD.',
            imagesPath: 'Ruta de imágenes',
            imagesPathTooltip:
                'Introduzca la ruta absoluta al directorio que contiene las imágenes.\nEl directorio debe contener al menos un archivo de imagen, y pueden\nser imágenes estáticas o gifs. El Carrusel los recorrerá\ncon el retraso seleccionado. Todos los archivos se procesan\nal enviarse para garantizar la máxima compatibilidad.',
            browse: 'Explorar',
            browseTooltip: 'Explorar un directorio de imágenes',
            delayInterval: 'Intervalo de retraso',
            delayIntervalTooltip:
                'Número mínimo de segundos de retraso entre cambios de imagen.\nTenga en cuenta que el retraso real puede ser mayor debido a la tasa de sondeo del daemon.',
            processing: 'Procesando...',
            applying: 'Aplicando...',
            unsavedChanges: 'Hay cambios no guardados realizados en esta configuración de LCD.',
            unsavedChangesHeader: 'Cambios no guardados',
            imageTooLarge: 'La imagen es demasiado grande. Por favor, elija una más pequeña.',
            notImageType: 'La imagen no se registra como un tipo de imagen',
        },
        shortcuts: {
            shortcuts: 'Atajos de teclado',
            ctrl: 'Ctrl',
            alt: 'Alt',
            left: 'Izquierda',
            right: 'Derecha',
            comma: ',',
            h: 'h',
            a: 'a',
            c: 'c',
            i: 'i',
            slash: '/',
            one: '1',
            two: '2',
            three: '3',
            four: '4',
            f11: 'F11',
            viewShortcuts: 'Atajos de teclado',
            home: 'Inicio',
            settings: 'Ajustes',
            info: 'Información de la aplicación',
            dashboardOne: 'Panel 1',
            dashboardTwo: 'Panel 2',
            dashboardThree: 'Panel 3',
            dashboardFour: 'Panel 4',
            alerts: 'Alertas',
            controls: 'Controles',
            sideMenuCollapse: 'Contraer menú lateral',
            sideMenuExpand: 'Expandir menú lateral',
            fullScreen: 'Pantalla completa',
        },
    },
    components: {
        confirmation: {
            title: 'Confirmación',
            message: '¿Está seguro?',
        },
        aseTek690: {
            sameDeviceID:
                'Los NZXT Kraken antiguos y los EVGA CLC tienen el mismo ID de dispositivo y CoolerControl no puede determinar qué dispositivo está conectado. Esto es necesario para una comunicación adecuada con el dispositivo.',
            restartRequired:
                'Puede ser necesario reiniciar los servicios systemd de CoolerControl y se manejará automáticamente si es necesario.',
            deviceModel: '¿Es el dispositivo Liquidctl uno de los siguientes modelos?',
            modelList: 'NZXT Kraken X40, X60, X31, X41, X51 o X61',
            acceptLabel: 'Sí, es un dispositivo Kraken antiguo',
            rejectLabel: 'No, es un dispositivo EVGA CLC',
        },
        password: {
            title: 'Introduzca Su Contraseña',
            newPasswordTitle: 'Introduzca Una Nueva Contraseña',
            invalidPassword: 'Contraseña Inválida',
            forgotPassword: '¿Olvidó su contraseña?',
            forgotPasswordHelpIntro:
                'Ejecute este comando en una terminal como root y luego haga clic en Recargar UI:',
            forgotPasswordCopyCommand: 'Copiar comando',
            forgotPasswordCommandCopied: 'Comando copiado al portapapeles',
            forgotPasswordReloadButton: 'Recargar UI',
            continueButton: 'Continuar',
            backButton: 'Atrás',
            passwordMismatch: 'Las contraseñas no coinciden',
        },
        notFound: {
            message: 'Al igual que la distribución perfecta de Linux 🐧,\nesta página no existe.',
        },
        helloWorld: {
            message: 'Ha creado con éxito un proyecto con Vite + Vue 3. ¿Qué sigue?',
        },
        dashboardInfo: {
            description:
                'Los paneles le permiten ver los datos de los sensores de su sistema según sus preferencias. Puede elegir entre gráficos basados en tiempo o en tablas y ajustar los filtros y configuraciones para cada gráfico para centrarse en los datos específicos que desea ver. Además, puede crear múltiples paneles personalizados según sus necesidades.',
        },
        modeInfo: {
            description:
                "Los modos le permiten guardar la configuración de canales de dispositivos para una aplicación rápida y fácil. Por ejemplo, puede crear un Modo 'Gaming' y un Modo 'Silencioso', permitiéndole cambiar fácilmente entre ellos.",
            note: 'Tenga en cuenta que puede ser necesario crear diferentes Perfiles de Ventilador para cada Modo, ya que los Modos solo incluyen configuraciones de canales y no abarcan la configuración interna de Perfiles o Funciones.',
        },
        alertInfo: {
            description:
                'Las alertas se utilizan para notificarle cuando ocurren condiciones específicas. Pueden monitorear temperaturas y velocidades de ventiladores para asegurar que su sistema esté funcionando correctamente. Las alertas están configuradas para rangos de valores de sensores específicos y envían notificaciones cuando los valores exceden o vuelven a rangos de umbral aceptables.',
        },
        customSensorInfo: {
            title: 'Visión General de Sensores Personalizados',
            description:
                'Los sensores personalizados le permiten combinar sensores existentes de varias maneras, mejorando su control y eficiencia sobre la refrigeración del sistema. Además, admiten datos basados en archivos, lo que le permite crear scripts para entradas de sensores externos para mayor flexibilidad.',
            note: 'Nota: Puede usar Perfiles de Mezcla para combinar múltiples salidas de Sensores Personalizados.',
        },
        functionInfo: {
            title: 'Visión General de Funciones',
            description:
                'Las funciones son algoritmos configurables aplicados a las salidas de perfil. Le permiten gestionar cuándo ocurren los cambios de velocidad del ventilador, ajustar la configuración de histéresis y utilizar promedios móviles para temperaturas dinámicas.',
            identityFunction:
                'La función Identidad es la opción más simple ya que no modifica la salida calculada del perfil; solo le permite establecer rangos mínimos y máximos de cambio de velocidad. Esto es particularmente beneficioso para minimizar las fluctuaciones constantes de velocidad del ventilador.',
        },
        profileInfo: {
            title: 'Visión General de Perfiles',
            description:
                'Los perfiles definen configuraciones personalizables para controlar las velocidades de los ventiladores, pudiendo usar el mismo perfil para múltiples ventiladores. Los tipos incluyen:',
            type: {
                fixed: 'Velocidad Fija',
                fanCurve: 'Curva de Ventilador/Gráfico',
                mix: 'Perfil de Mezcla',
                default: 'Configuración Predeterminada del Dispositivo',
            },
            additionalInfo:
                'Los perfiles son la base para controlar las velocidades de los ventiladores y pueden mejorarse aún más aplicando funciones de algoritmo más avanzadas.',
        },
        deviceInfo: {
            details: 'Detalles del Dispositivo',
            systemName: 'Nombre del Sistema',
            deviceType: 'Tipo de Dispositivo',
            deviceUID: 'UID del Dispositivo',
            firmwareVersion: 'Versión de Firmware',
            model: 'Modelo',
            driverName: 'Nombre del Controlador',
            driverType: 'Tipo de Controlador',
            driverVersion: 'Versión del Controlador',
            locations: 'Ubicaciones',
        },
        onboarding: {
            welcome: '¡Bienvenido a CoolerControl!',
            gettingStartedIntro:
                'Elija un recorrido para orientarse. El Recorrido Rápido cubre lo esencial en pocos pasos. El Recorrido Detallado lo guía por cada menú y botón.',
            startTourAgain:
                'Puede iniciar este recorrido nuevamente en cualquier momento desde la página Información y Herramientas.',
            quickTour: 'Recorrido Rápido',
            thoroughTour: 'Recorrido Detallado',
            maybeLater: 'Quizás más tarde',
            openGettingStarted: 'Abrir Documentación de Inicio',
            finishLater: 'Lo haré yo mismo',
            appInfo: 'Información y Herramientas',
            appInfoDesc:
                'Vea información de la app, estado del daemon, registros, enlaces útiles y herramientas de prueba de carga. Una insignia en el logo le alerta sobre problemas.',
            controls: 'Controles',
            controlsDesc:
                'Ajuste velocidades de ventiladores, aplique Perfiles y gestione cada canal detectado desde un solo lugar.',
            profiles: 'Perfiles',
            profilesDesc:
                'Los Perfiles definen cómo responde un ventilador a los cambios de temperatura. Los Perfiles Gráficos le permiten dibujar curvas personalizadas y reutilizarlas en múltiples dispositivos.',
            functions: 'Funciones',
            functionsDesc:
                'Las Funciones se aplican a los Perfiles para suavizar las transiciones de velocidad del ventilador y reducir el ruido.',
            systemMenu: 'Menú del Sistema',
            systemMenuDesc:
                'El menú principal lista los dispositivos y sensores de este sistema. Cada sección puede expandirse para ver sus canales y controles asignados.',
            dashboards: 'Paneles',
            dashboardsDesc:
                'Los Paneles permiten crear vistas personalizadas con gráficos para monitorear temperaturas, velocidades de ventiladores y otros datos de sensores en tiempo real.',
            modes: 'Modos',
            modesDesc:
                'Los Modos son colecciones guardadas de sus configuraciones. Cambie entre configuraciones como Silencioso y Rendimiento con un solo clic.',
            alerts: 'Alertas',
            alertsDesc:
                'Las Alertas le notifican cuando los valores de los sensores superan los umbrales que elija, para que pueda reaccionar antes de que se conviertan en problemas.',
            customSensors: 'Sensores Personalizados',
            customSensorsDesc:
                'Los Sensores Personalizados combinan datos de sensores existentes de diferentes maneras, o ejecutan su propia salida con script como fuente de temperatura.',
            quickAdd: 'Agregar Rápido',
            quickAddDesc: 'Cree rápidamente nuevos Paneles, Perfiles, Funciones y más.',
            dashboardQuick: 'Menú Rápido de Panel',
            dashboardQuickDesc:
                'Salte a cualquier panel, incluso cuando el menú principal esté contraído.',
            modesQuick: 'Menú Rápido de Modos',
            modesQuickDesc:
                'Cambie entre sus Modos guardados desde cualquier lugar de la aplicación.',
            alertsQuick: 'Resumen de Alertas',
            alertsQuickDesc:
                'Vea el estado actual de cada alerta e inspeccione su actividad reciente.',
            pluginsQuick: 'Resumen de Plugins',
            pluginsQuickDesc:
                'Explore los plugins instalados y acceda a cualquiera de ellos desde cualquier lugar de la aplicación.',
            settings: 'Configuración',
            settingsDesc:
                'Configure preferencias de interfaz, opciones del daemon y comportamiento del sistema.',
            access: 'Acceso',
            accessDesc: 'Gestione su contraseña y confirme su nivel de acceso actual.',
            restartMenu: 'Menú de Reinicio',
            restartMenuDesc:
                'Recargue la interfaz o reinicie el daemon del sistema cuando sea necesario.',
            collapseMenu: 'Contraer Menú',
            collapseMenuDesc:
                'Expanda o contraiga el menú principal para dar más espacio al resto de la app.',
            thatsIt: '¡Eso es todo!',
            startNow:
                'Ya está todo listo. Abra la documentación de Inicio para aprender más, o comience a configurar sus dispositivos.',
        },
        axisOptions: {
            title: 'Opciones de Ejes',
            autoScale: 'AutoEscala',
            max: 'Máx',
            min: 'Mín',
            dutyTemperature: 'Ciclo / Temperatura',
            rpmMhz: 'rpm / MHz',
            krpmGhz: 'krpm / GHz',
            watts: 'vatios',
        },
        sensorTable: {
            device: 'Dispositivo',
            channel: 'Canal',
            current: 'Actual',
            min: 'Mín',
            max: 'Máx',
            average: 'Promedio',
        },
        modeTable: {
            setting: 'Configuración',
        },
        menuTagAssign: {
            title: 'Asignar Etiquetas',
            noTags: 'No hay etiquetas aún.',
            newTag: 'Crear Nueva Etiqueta',
            tagName: 'Nombre de etiqueta',
            editTag: 'Editar etiqueta',
            deleteTag: 'Eliminar etiqueta',
        },
        wizards: {
            fanControl: {
                fanControlWizard: 'Asistente de Control de Ventiladores',
                editCurrentProfile: 'Editar Perfil',
                editCurrentFunction: 'Editar Función',
                currentSettings: 'Configuración Actual',
                manualSpeed: 'Velocidad Manual',
                createNewProfile: 'Nuevo Perfil',
                existingProfile: 'Elegir Perfil',
                resetSettings: 'Restablecer a Sin gestión',
                chooseProfileNameType: 'Elegir un Nombre y Tipo de Perfil',
                newDefaultProfile: 'Nuevo Perfil Predeterminado',
                profileCreatedApplied: 'Perfil Creado y Aplicado',
                willCreatedAndAppliedTo: 'será creado y aplicado a',
                newFixedProfile: 'Nuevo Perfil Fijo',
                withSettings: 'con la siguiente configuración',
                selectSpeed: 'Seleccione su velocidad',
                newMixProfile: 'Nuevo Perfil de Mezcla',
                newGraphProfile: 'Nuevo Perfil Gráfico',
                newOverlayProfile: 'Nuevo Perfil de Superposición',
                functionFor: 'Elija una Función para aplicar a',
                functionDescription:
                    'Las funciones ajustan cómo se aplica su Perfil, como el tiempo de respuesta y la velocidad mínima.',
                createNewFunction: 'Nueva Función',
                existingFunction: 'Elegir Función',
                defaultFunction: 'Función Predeterminada',
                chooseFunctionNameType: 'Elegir un Nombre y Tipo de Función',
                newFunctionName: 'Función para {profileName}',
                summary: 'Resumen',
                aNewProfile: 'Un nuevo Perfil',
                andFunction: 'y Función',
            },
            profile: {
                willCreated: 'será creado.',
            },
            profileApply: {
                applyProfile: 'Aplicar Perfil',
                channelsApply: 'Canales para Aplicar Perfil',
                selectChannels: 'Seleccionar Canales',
                channelsTooltip: 'Seleccione uno o más canales para aplicar este Perfil.',
                selectByTag: 'Seleccionar por etiqueta',
                selectByChannel: 'Seleccionar por canal',
                tagFanCount: '{count} canal | {count} canales',
                noTags: 'No hay etiquetas configuradas.',
            },
            functionApply: {
                applyFunction: 'Aplicar Función',
                profilesApply: 'Perfiles para Aplicar Función',
                selectProfiles: 'Seleccionar Perfiles',
                profilesTooltip: 'Seleccione uno o más Perfiles para aplicar esta Función.',
            },
            customSensor: {
                new: 'Nuevo Sensor Personalizado',
            },
        },
        channelExtensionSettings: {
            title: 'Ajustes del canal del dispositivo',
            firmwareControlledProfile: 'Perfil controlado por firmware',
            firmwareControlledProfileDesc:
                'Cuando está habilitado, el firmware del dispositivo gestiona el perfil del ventilador.\nÚtil para hardware que no responde bien a cambios de velocidad frecuentes realizados por software.\nSolo disponible para Perfiles de gráfico que utilizan sensores de temperatura internos del dispositivo.\nLos ajustes de Función no se aplican.',
            saveError: 'Error al guardar los ajustes de la extensión del canal',
            firmwareControlDisabled:
                'El control por firmware no está disponible con la configuración actual.\nUse un Perfil de gráfico para este dispositivo con un sensor de temperatura interno compatible.',
        },
        deviceExtensionSettings: {
            title: 'Configuración Avanzada del Dispositivo',
            directAccess: 'Acceso Directo',
            directAccessDesc:
                'Cuando está habilitado, el controlador liquidctl ignorará el controlador del kernel HWMon\ny se comunicará directamente con el dispositivo.\nEsto puede ser útil para dispositivos que tienen conflictos al usar ambos controladores.',
            useHwmon: 'Usar controlador HWMon',
            useHwmonDesc:
                'Cambia el controlador de este dispositivo de liquidctl al controlador del kernel HWMon.\nEsto puede mejorar el rendimiento y la estabilidad, pero puede reducir las funciones disponibles.',
            disableDevice: 'Deshabilitar dispositivo liquidctl',
            disableInfo:
                'Deshabilitar el controlador liquidctl deshabilitará este dispositivo. Aparecerá un nuevo dispositivo basado en HWMon en la parte inferior del menú de dispositivos. Puede volver a habilitar el dispositivo liquidctl en cualquier momento desde el menú de configuración.',
            commandDelay: 'Retardo de comando',
            commandDelayDesc:
                'Retardo en milisegundos entre comandos enviados a este dispositivo.\nEsto puede ayudar con dispositivos que tienen problemas de comunicación\ncuando se envían múltiples comandos en rápida sucesión.',
            overdrive: 'GPU Overdrive',
            overdriveDesc:
                'Las GPU AMD RDNA3/4 requieren que overdrive esté habilitado para el control de ventiladores.\nEsto configura el parámetro del kernel amdgpu.ppfeaturemask\ny requiere un reinicio del sistema.',
            overdriveEnable: 'Habilitar',
            overdriveActive: 'Activo',
            overdriveSuccess: 'Overdrive configurado',
            thinkPadFanControl: 'Control del ventilador',
            thinkPadFanControlDesc:
                'Habilita el control del ventilador ACPI de ThinkPad.\nEl control del ventilador está deshabilitado por defecto por razones de seguridad.\nProceda bajo su propio riesgo.',
            thinkPadFullSpeed: 'Velocidad máxima',
            thinkPadFullSpeedDesc:
                'Habilita el modo de velocidad máxima para los ventiladores ThinkPad.\nPermite que los ventiladores giren al máximo absoluto al 100%,\npero opera los ventiladores fuera de especificación con mayor desgaste.',
        },
    },
    auth: {
        enterPassword: 'Introduzca Su Contraseña',
        setNewPassword: 'Introduzca Una Nueva Contraseña',
        changeDefaultPassword:
            'Por favor, establezca una contraseña para prevenir el acceso no autorizado. Esta es independiente de su cuenta del sistema.',
        loginFailed: 'Inicio de Sesión Fallido',
        invalidPassword: 'Contraseña Inválida',
        passwordSetFailed: 'Establecer Contraseña Falló',
        passwordSetSuccessfully: 'Nueva contraseña establecida correctamente',
        logoutSuccessful: 'Ha cerrado sesión correctamente.',
        unauthorizedAction: 'Necesita iniciar sesión para completar esta acción',
        accessTokens: 'Tokens de acceso',
        tokenLabel: 'Etiqueta (ej. cctv)',
        tokenExpiry: 'Fecha de expiración (opcional)',
        createToken: 'Crear token',
        tokenCreated: 'Token creado',
        tokenCreatedDetail: 'Copie este token ahora. No se mostrará de nuevo.',
        tokenCopied: 'Token copiado al portapapeles',
        tokenDeleted: 'Token eliminado',
        tokenCreateError: 'Error al crear el token',
        tokenDeleteError: 'Error al eliminar el token',
        tokenLoadError: 'Error al cargar los tokens',
        tokenDeleteConfirm:
            '¿Está seguro de que desea eliminar este token? Los servicios que lo usen perderán el acceso.',
        tokenDeleteHeader: 'Eliminar token',
        noTokens: 'Aún no se han creado tokens de acceso.',
        expires: 'Expira',
        expired: 'Expirado',
        active: 'Activo',
        never: 'Nunca',
        lastUsed: 'Último uso',
        neverUsed: 'Nunca usado',
        created: 'Creado',
        label: 'Etiqueta',
        actions: 'Acciones',
        writeAccess: 'Acceso de escritura',
        writeAccessTooltip:
            'Cuando está activado, este token puede realizar cambios. Cuando está desactivado, el token solo puede leer datos.',
    },
    daemon: {
        status: {
            ok: 'Ok',
            hasWarnings: 'Tiene Advertencias',
            hasErrors: 'Tiene Errores',
        },
    },
    device_store: {
        unauthorized: {
            summary: 'Sesión expirada',
            detail: 'Su sesión ha expirado. Recargando para iniciar sesión nuevamente.',
        },
        login: {
            success: {
                summary: 'Éxito',
                detail: 'Inicio de sesión exitoso.',
            },
            failed: {
                summary: 'Inicio de Sesión Fallido',
                detail: 'Contraseña Inválida',
            },
            rate_limited: {
                summary: 'Inicio de Sesión Temporalmente Bloqueado',
            },
        },
        logout: {
            summary: 'Cierre de Sesión',
            detail: 'Ha cerrado sesión correctamente.',
        },
        password: {
            set_success: {
                summary: 'Contraseña',
                detail: 'Nueva contraseña establecida correctamente',
            },
            set_failed: {
                summary: 'Establecer Contraseña Falló',
            },
        },
        asetek: {
            header: 'Dispositivo Desconocido Detectado',
            success: {
                summary: 'Éxito',
                detail_legacy:
                    'Tipo de modelo de dispositivo establecido correctamente. Reinicio en progreso.',
                detail_evga: 'Tipo de modelo de dispositivo establecido correctamente.',
            },
            error: {
                summary: 'Error',
                detail: 'Proceso interrumpido.',
            },
        },
    },
    models: {
        chartType: {
            timeChart: 'Gráfico de Tiempo',
            table: 'Tabla',
        },
        dataType: {
            temp: 'Temp',
            duty: 'Ciclo',
            load: 'Carga',
            rpm: 'RPM',
            freq: 'Frec',
            watts: 'Vatios',
        },
        profile: {
            profileType: {
                default: 'Predeterminado',
                fixed: 'Fijo',
                graph: 'Gráfico',
                mix: 'Mezcla',
                overlay: 'Superposición',
            },
            functionType: {
                identity: 'Identidad',
                standard: 'Estándar',
                exponentialMovingAvg: 'Promedio Móvil Exponencial',
            },
            mixFunctionType: {
                min: 'Mínimo',
                max: 'Máximo',
                avg: 'Promedio',
                diff: 'Diferencia',
                sum: 'Suma',
            },
        },
        customSensor: {
            sensorType: {
                mix: 'Mezcla',
                file: 'Archivo',
                offset: 'Desplazamiento',
                timeAverage: 'Promedio Temporal',
                exponentialMovingAvg: 'Promedio Móvil Exponencial',
            },
            mixFunctionType: {
                min: 'Mínimo',
                max: 'Máximo',
                delta: 'Delta',
                avg: 'Promedio',
                weightedAvg: 'Promedio Ponderado',
            },
        },
        themeMode: {
            system: 'Sistema',
            dark: 'Oscuro',
            light: 'Claro',
            highContrastDark: 'Oscuro de Alto Contraste',
            highContrastLight: 'Claro de Alto Contraste',
            custom: 'Tema Personalizado',
        },
        channelViewType: {
            control: 'Control',
            dashboard: 'Panel',
        },
        startupPage: {
            appInfo: 'Info y Herramientas',
            homeDashboard: 'Panel principal',
            controls: 'Controles',
        },
        alertState: {
            active: 'Activo',
            inactive: 'Inactivo',
            error: 'Error',
        },
        pluginStatus: {
            running: 'En ejecución',
            stopped: 'Detenido',
            unmanaged: 'No gestionado',
            disabled: 'Deshabilitado',
        },
        deviceType: {
            customSensors: 'Sensores Personalizados',
            cpu: 'CPU',
            gpu: 'GPU',
            liquidctl: 'Liquidctl',
            hwmon: 'Hwmon',
            servicePlugin: 'Complemento de Servicio',
        },
        driverType: {
            kernel: 'Kernel',
            liquidctl: 'Liquidctl',
            nvml: 'NVML',
            nvidiaCli: 'Nvidia CLI',
            coolercontrol: 'CoolerControl',
            external: 'Externo',
        },
        lcdModeType: {
            none: 'Ninguno',
            liquidctl: 'Liquidctl',
            custom: 'Personalizado',
        },
        channelType: {
            lcd: 'LCD',
            lighting: 'Iluminación',
        },
    },
}
