mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 08:03:55 +08:00
5469 lines
313 KiB
Go
5469 lines
313 KiB
Go
import { getFuLocaleMessage } from '@/lang/fu';
|
||
|
||
const message = {
|
||
commons: {
|
||
true: 'Verdadero',
|
||
false: 'Falso',
|
||
colon: ': ',
|
||
example: 'p.ej., ',
|
||
fit2cloud: 'FIT2CLOUD',
|
||
lingxia: 'LXware',
|
||
button: {
|
||
run: 'Ejecutar',
|
||
prev: 'Anterior',
|
||
next: 'Siguiente',
|
||
create: 'Crear',
|
||
add: 'Agregar',
|
||
save: 'Guardar',
|
||
set: 'Configuración',
|
||
sync: 'Sincronizar',
|
||
delete: 'Eliminar',
|
||
edit: 'Editar',
|
||
enable: 'Habilitar',
|
||
disable: 'Deshabilitar',
|
||
confirm: 'Confirmar',
|
||
cancel: 'Cancelar',
|
||
reset: 'Restablecer',
|
||
setDefault: 'Restaurar valores predeterminados',
|
||
restart: 'Reiniciar',
|
||
conn: 'Conectar',
|
||
disconn: 'Desconectar',
|
||
clean: 'Limpiar',
|
||
cleanAll: 'Limpiar todo',
|
||
selectAll: 'Seleccionar todo',
|
||
login: 'Iniciar sesión',
|
||
close: 'Cerrar',
|
||
stop: 'Detener',
|
||
start: 'Iniciar',
|
||
view: 'Ver',
|
||
watch: 'Seguir',
|
||
handle: 'Ejecutar',
|
||
clone: 'Clonar',
|
||
expand: 'Expandir',
|
||
collapse: 'Colapsar',
|
||
log: 'Registros',
|
||
back: 'Atrás',
|
||
backup: 'Respaldar',
|
||
recover: 'Restaurar',
|
||
retry: 'Reintentar',
|
||
upload: 'Subir',
|
||
download: 'Descargar',
|
||
init: 'Inicializar',
|
||
verify: 'Verificar',
|
||
saveAndEnable: 'Guardar y habilitar',
|
||
import: 'Importar',
|
||
export: 'Exportar',
|
||
power: 'Enviar',
|
||
search: 'Buscar',
|
||
refresh: 'Actualizar',
|
||
get: 'Obtener',
|
||
upgrade: 'Actualizar',
|
||
update: 'Actualizar',
|
||
updateNow: 'Actualizar Ahora',
|
||
ignore: 'Ignorar actualización',
|
||
copy: 'Copiar',
|
||
random: 'Generar',
|
||
install: 'Instalar',
|
||
uninstall: 'Desinstalar',
|
||
fullscreen: 'Pantalla completa',
|
||
quitFullscreen: 'Salir de pantalla completa',
|
||
showAll: 'Mostrar todo',
|
||
hideSome: 'Ocultar algunos',
|
||
agree: 'Aceptar',
|
||
notAgree: 'No aceptar',
|
||
preview: 'Vista previa',
|
||
open: 'Abrir',
|
||
notSave: 'No guardar',
|
||
createNewFolder: 'Crear nueva carpeta',
|
||
createNewFile: 'Crear nuevo archivo',
|
||
helpDoc: 'Documentación',
|
||
bind: 'Vincular',
|
||
unbind: 'Desvincular',
|
||
cover: 'Sobrescribir',
|
||
skip: 'Omitir',
|
||
fix: 'Arreglar',
|
||
down: 'Detener',
|
||
up: 'Iniciar',
|
||
sure: 'Confirmar',
|
||
show: 'Mostrar',
|
||
hide: 'Ocultar',
|
||
migrate: 'Migrar',
|
||
disConn: 'Desconectar',
|
||
visit: 'Abrir',
|
||
tip: 'Aviso',
|
||
},
|
||
operate: {
|
||
start: 'Iniciar',
|
||
stop: 'Detener',
|
||
restart: 'Reiniciar',
|
||
reload: 'Recargar',
|
||
rebuild: 'Reconstruir',
|
||
sync: 'Sincronizar',
|
||
up: 'Subir',
|
||
down: 'Bajar',
|
||
delete: 'Eliminar',
|
||
},
|
||
search: {
|
||
timeStart: 'Hora de inicio',
|
||
timeEnd: 'Hora de fin',
|
||
timeRange: 'Hasta',
|
||
dateStart: 'Fecha de inicio',
|
||
dateEnd: 'Fecha de fin',
|
||
date: 'Fecha',
|
||
},
|
||
table: {
|
||
all: 'Todo',
|
||
total: 'Total {0}',
|
||
name: 'Nombre',
|
||
type: 'Tipo',
|
||
status: 'Estado',
|
||
statusSuccess: 'Éxito',
|
||
statusFailed: 'Fallido',
|
||
statusWaiting: 'Esperando...',
|
||
records: 'Registros',
|
||
group: 'Grupo',
|
||
default: 'Predeterminado',
|
||
createdAt: 'Fecha de creación',
|
||
publishedAt: 'Fecha de publicación',
|
||
date: 'Fecha',
|
||
updatedAt: 'Fecha de actualización',
|
||
operate: 'Operaciones',
|
||
message: 'Mensaje',
|
||
description: 'Descripción',
|
||
interval: 'Intervalo',
|
||
user: 'Propietario',
|
||
title: 'Título',
|
||
port: 'Puerto',
|
||
forward: 'Reenviar',
|
||
protocol: 'Protocolo',
|
||
tableSetting: 'Configuración de tabla',
|
||
refreshRate: 'Frecuencia de actualización',
|
||
noRefresh: 'Sin actualización',
|
||
selectColumn: 'Seleccionar columna',
|
||
local: 'local',
|
||
serialNumber: 'Número de serie',
|
||
manageGroup: 'Gestionar grupos',
|
||
backToList: 'Volver a la lista',
|
||
keepEdit: 'Continuar Editando',
|
||
},
|
||
loadingText: {
|
||
Upgrading: 'Actualizando el sistema, por favor espere...',
|
||
Restarting: 'Reiniciando el sistema, por favor espere...',
|
||
Recovering: 'Recuperando desde instantánea, por favor espere...',
|
||
Rollbacking: 'Revirtiendo desde instantánea, por favor espere...',
|
||
},
|
||
msg: {
|
||
noneData: 'No hay datos disponibles',
|
||
delete: 'Esta operación de eliminación no se puede deshacer. ¿Desea continuar?',
|
||
clean: 'Esta operación de limpieza no se puede deshacer. ¿Desea continuar?',
|
||
closeDrawerHelper: 'Es posible que el sistema no guarde los cambios que realizó. ¿Desea continuar?',
|
||
deleteSuccess: 'Eliminación completada correctamente',
|
||
loginSuccess: 'Inicio de sesión completado correctamente',
|
||
operationSuccess: 'Operación completada correctamente',
|
||
copySuccess: 'Copiado completado correctamente',
|
||
notSupportOperation: 'Esta operación no es compatible',
|
||
requestTimeout: 'La solicitud caducó, inténtalo más tarde',
|
||
infoTitle: 'Aviso',
|
||
notRecords: 'No hay registros de ejecución para esta tarea',
|
||
sureLogOut: '¿Está seguro de que desea cerrar sesión?',
|
||
createSuccess: 'Creación completada correctamente',
|
||
updateSuccess: 'Actualización completada correctamente',
|
||
uploadSuccess: 'Carga completada correctamente',
|
||
operateConfirm: 'Para confirmar, escribe: ',
|
||
inputOrSelect: 'Selecciona o ingresa',
|
||
selectOne: 'Selecciona un(a) {0}',
|
||
copyFailed: 'Error al copiar',
|
||
operatorHelper: 'Ejecuta "{1}" en "{0}". Esto no se puede deshacer. ¿Continuar?',
|
||
notFound: 'Lo sentimos, la página que solicitó no existe.',
|
||
unSupportType: 'El tipo de archivo actual no es compatible.',
|
||
unSupportSize: 'El archivo subido supera los {0}M, ¡por favor verifique!',
|
||
fileExist: 'El archivo ya existe en la carpeta actual. No se permite subirlo de nuevo.',
|
||
fileNameErr:
|
||
'Solo puede subir archivos cuyo nombre contenga de 1 a 256 caracteres, incluyendo inglés, chino, dígitos o los caracteres .-_',
|
||
confirmNoNull: 'Asegúrese de que el valor {0} no esté vacío.',
|
||
errPort: 'Información de puerto incorrecta, ¡por favor verifique!',
|
||
remove: 'Eliminar',
|
||
backupHelper: 'La operación actual respaldará {0}. ¿Proceder?',
|
||
recoverHelper: 'Restaurar desde {0}. Esto es irreversible. ¿Continuar?',
|
||
refreshSuccess: 'Actualizado correctamente',
|
||
rootInfoErr: 'Ya se encuentra en el directorio raíz',
|
||
resetSuccess: 'Restablecimiento completado correctamente',
|
||
creatingInfo: 'Creando, no es necesario realizar esta operación',
|
||
installSuccess: 'Instalado correctamente',
|
||
uninstallSuccess: 'Desinstalado correctamente',
|
||
offlineTips: 'La edición sin conexión no admite esta acción',
|
||
errImportFormat: 'Los datos de importación o el formato son incorrectos, verifica y vuelve a intentarlo',
|
||
importHelper: 'Si hay conflictos, los datos importados sobrescribirán los existentes.',
|
||
errImport: 'El contenido del archivo es anormal:',
|
||
backupSuccess: 'Copia completada',
|
||
restoreSuccess: 'Restauración completada',
|
||
},
|
||
login: {
|
||
username: 'Usuario',
|
||
password: 'Contraseña',
|
||
passkey: 'Inicio de sesión con Passkey',
|
||
welcome: 'Bienvenido de nuevo. Inicia sesión con tu usuario y contraseña.',
|
||
errorAuthInfo: 'Usuario o contraseña incorrectos, inténtalo nuevamente.',
|
||
errorMfaInfo: 'Información de autenticación inválida, inténtalo nuevamente.',
|
||
captchaHelper: 'Captcha',
|
||
errorCaptcha: 'Código captcha inválido',
|
||
codeInput: 'Por favor, ingrese el código de verificación de 6 dígitos del validador MFA',
|
||
mfaTitle: 'Autenticación MFA',
|
||
mfaCode: 'Código de verificación MFA',
|
||
title: 'Panel de gestión de servidores Linux',
|
||
licenseHelper: '<Acuerdo de Licencia Comunitaria>',
|
||
errorAgree: 'Haga clic para aceptar la Licencia de Software Comunitaria',
|
||
logout: 'Cerrar sesión',
|
||
agreeTitle: 'Acuerdo',
|
||
agreeContent:
|
||
'Para proteger mejor sus derechos e intereses legítimos, por favor lea y acepte el siguiente acuerdo « <a href = "https://www.fit2cloud.com/legal/licenses.html" target = "_blank" > Acuerdo de Licencia Comunitaria </a> »',
|
||
passkeyFailed: 'El inicio de sesión con Passkey falló, inténtalo de nuevo',
|
||
passkeyNotSupported: 'El navegador o entorno actual no admite Passkey',
|
||
passkeyToPassword: '¿Tienes problemas para usar una passkey? Usa la contraseña en su lugar',
|
||
},
|
||
rule: {
|
||
username: 'Introduzca un nombre de usuario',
|
||
password: 'Introduzca una contraseña',
|
||
rePassword: 'La confirmación de la contraseña no coincide con la contraseña.',
|
||
requiredInput: 'Este campo es obligatorio.',
|
||
requiredSelect: 'Seleccione un elemento de la lista',
|
||
illegalChar: 'Actualmente no se admite la inyección de caracteres & ; $ \' ` ( ) " > < |',
|
||
illegalInput: 'Este campo no debe contener caracteres no permitidos.',
|
||
commonName:
|
||
'Este campo debe comenzar con un carácter no especial y debe estar compuesto por letras, caracteres chinos, números, ".", "-", y "_" con una longitud de 1 a 128.',
|
||
userName:
|
||
'Este campo debe estar compuesto por letras, caracteres chinos, números y "_" con una longitud de 3 a 30.',
|
||
simpleName:
|
||
'Este campo no debe comenzar con el carácter "_" y debe estar compuesto por letras, números y "_" con una longitud de 3 a 30.',
|
||
simplePassword:
|
||
'Este campo no debe comenzar con el carácter "_" y debe estar compuesto por letras, números y "_" con una longitud de 1 a 30.',
|
||
dbName: 'Este campo no debe comenzar con el carácter "_" y debe estar compuesto por letras, números y "_" con una longitud de 1 a 64.',
|
||
imageName:
|
||
'Este campo debe estar compuesto por letras, números, ":", "@", "/", ".", "-", y "_" con una longitud de 1 a 256.',
|
||
volumeName:
|
||
'Este campo debe estar compuesto por letras, números, ".", "-", y "_" con una longitud de 2 a 30.',
|
||
supervisorName:
|
||
'Este campo debe comenzar con un carácter no especial y debe estar compuesto por letras, números, "-", y "_" con una longitud de 1 a 128.',
|
||
composeName:
|
||
'Debe comenzar con un carácter no especial, permite minúsculas, números, - y _, longitud de 1 a 256',
|
||
complexityPassword:
|
||
'Admite combinaciones de contraseña de 8 a 30 caracteres que contengan al menos dos de estos tipos: letras, números y caracteres especiales.',
|
||
commonPassword: 'La longitud de este campo debe ser mayor a 6.',
|
||
linuxName:
|
||
'La longitud de este campo debe estar entre 1 y 128. El campo no debe contener los siguientes caracteres especiales: "{0}".',
|
||
email: 'Este campo debe ser una dirección de correo electrónico válida.',
|
||
number: 'Este campo debe ser un número.',
|
||
integer: 'Este campo debe ser un número entero positivo.',
|
||
ip: 'Este campo debe ser una dirección IP válida.',
|
||
host: 'Este campo debe ser una dirección IP válida o un nombre de dominio.',
|
||
hostHelper: 'Admite introducir dirección IP o nombre de dominio',
|
||
port: 'Este campo debe ser un número de puerto válido.',
|
||
selectHelper: 'Por favor seleccione el archivo {0} correcto',
|
||
domain: 'Este campo debe tener el formato: ejemplo.com o ejemplo.com:8080.',
|
||
databaseName: 'Este campo debe estar compuesto por letras, números y "_" con una longitud de 1 a 30.',
|
||
ipErr: 'Este campo debe ser una dirección IP válida.',
|
||
numberRange: 'Este campo debe ser un número entre {0} y {1}.',
|
||
paramName:
|
||
'Este campo debe estar compuesto por letras, números, ".", "-", y "_" con una longitud de 2 a 30.',
|
||
paramComplexity:
|
||
'Este campo no debe comenzar ni terminar con caracteres especiales y debe estar compuesto por letras, números y los caracteres "{0}", con una longitud de 6 a 128.',
|
||
paramUrlAndPort: 'Este campo debe tener el formato "http(s)://(nombre de dominio/ip):(puerto)".',
|
||
nginxDoc: 'Este campo debe estar compuesto por letras, números y ".".',
|
||
appName:
|
||
'Este campo no debe comenzar ni terminar con "-" o "_" y debe estar compuesto por letras, números, "-", y "_" con una longitud de 2 a 30.',
|
||
containerName: 'Permite letras, números, -, _ y .; no puede comenzar con - _ o .; longitud: 2-128',
|
||
mirror: 'La dirección de aceleración del mirror debe comenzar con http(s)://, soporta letras (mayúsculas y minúsculas), números, . / y -, y no debe contener líneas en blanco.',
|
||
disableFunction: 'Solo admite letras, guiones bajos y comas',
|
||
leechExts: 'Solo admite letras, números y comas',
|
||
paramSimple: 'Admite letras minúsculas y números, longitud de 1 a 128',
|
||
filePermission: 'Error en el permiso del archivo',
|
||
formatErr: 'Error de formato, por favor verifique e intente nuevamente',
|
||
phpExtension: 'Solo admite _, letras minúsculas en inglés y números',
|
||
paramHttp: 'Debe comenzar con http:// o https://',
|
||
phone: 'El formato del número de teléfono es incorrecto',
|
||
authBasicPassword: 'Admite letras, números y caracteres especiales comunes, longitud de 1 a 72',
|
||
length128Err: 'La longitud no puede exceder los 128 caracteres',
|
||
maxLength: 'La longitud no puede exceder los {0} caracteres',
|
||
alias: 'Soporta A->Z, números, - and _, largo 1-128 carácteres, no puede empezar ni terminar con -_.',
|
||
},
|
||
res: {
|
||
paramError: 'La solicitud falló, por favor intente de nuevo más tarde.',
|
||
forbidden: 'El usuario actual no tiene permisos',
|
||
serverError: 'Excepción del servicio',
|
||
notFound: 'El recurso no existe',
|
||
commonError: 'La solicitud falló',
|
||
},
|
||
service: {
|
||
serviceNotStarted: 'El servicio {0} no está iniciado.',
|
||
},
|
||
status: {
|
||
running: 'En ejecución',
|
||
done: 'Completado',
|
||
scanFailed: 'Incompleto',
|
||
success: 'Completado con éxito',
|
||
waiting: 'En espera',
|
||
waitForUpgrade: 'Esperar Actualización',
|
||
failed: 'Fallido',
|
||
stopped: 'Detenido',
|
||
error: 'Error',
|
||
created: 'Creado',
|
||
restarting: 'Reiniciando',
|
||
uploading: 'Cargando',
|
||
unhealthy: 'No saludable',
|
||
removing: 'Eliminando',
|
||
paused: 'Pausado',
|
||
exited: 'Finalizado',
|
||
partial: 'Parcial',
|
||
dead: 'Muerto',
|
||
installing: 'Instalando',
|
||
enabled: 'Habilitado',
|
||
disabled: 'Deshabilitado',
|
||
normal: 'Normal',
|
||
building: 'Construyendo',
|
||
upgrading: 'Actualizando',
|
||
pending: 'Pendiente de editarse',
|
||
rebuilding: 'Reconstruyendo',
|
||
deny: 'Denegado',
|
||
accept: 'Aceptado',
|
||
used: 'En uso',
|
||
unused: 'Sin usar',
|
||
starting: 'Iniciando',
|
||
recreating: 'Recreando',
|
||
creating: 'Creando',
|
||
init: 'Esperando aplicación',
|
||
ready: 'normal',
|
||
applying: 'Aplicando',
|
||
uninstalling: 'Desinstalando',
|
||
lost: 'Contacto perdido',
|
||
bound: 'Vinculado',
|
||
unbind: 'Desvinculado',
|
||
exceptional: 'Excepcional',
|
||
free: 'Libre',
|
||
enable: 'Habilitado',
|
||
disable: 'Deshabilitado',
|
||
deleted: 'Eliminado',
|
||
downloading: 'Descargando',
|
||
packing: 'Empaquetando',
|
||
sending: 'Enviando',
|
||
healthy: 'Normal',
|
||
executing: 'Ejecutando',
|
||
installerr: 'Instalación fallida',
|
||
applyerror: 'Aplicación fallida',
|
||
systemrestart: 'Interrumpido',
|
||
starterr: 'Error al iniciar',
|
||
uperr: 'Error al iniciar',
|
||
new: 'Nuevo',
|
||
conflict: 'Conflicto',
|
||
duplicate: 'Duplicado',
|
||
unexecuted: 'No Ejecutado',
|
||
canceled: 'Cancelado',
|
||
},
|
||
units: {
|
||
second: ' segundo | segundo | segundos',
|
||
minute: 'minuto | minuto | minutos',
|
||
hour: 'hora | hora | horas',
|
||
day: 'día | día | días',
|
||
week: 'semana | semana | semanas',
|
||
month: 'mes | mes | meses',
|
||
year: 'año | año | años',
|
||
time: 'rqm',
|
||
core: 'núcleo | núcleo | núcleos',
|
||
millisecond: 'milisegundo | milisegundos',
|
||
secondUnit: 's',
|
||
minuteUnit: 'min',
|
||
hourUnit: 'h',
|
||
dayUnit: 'd',
|
||
semicolon: ';',
|
||
},
|
||
log: {
|
||
noLog: 'No logs available',
|
||
},
|
||
},
|
||
menu: {
|
||
home: 'Panel',
|
||
apps: 'Tienda de aplicaciones',
|
||
website: 'Sitio | Sitios',
|
||
project: 'Proyecto | Proyectos',
|
||
config: 'Configuración | Configuraciones',
|
||
ssh: 'Configuración SSH',
|
||
firewall: 'Cortafuegos',
|
||
ssl: 'Certificado | Certificados',
|
||
database: 'Base de datos | Bases de datos',
|
||
aiTools: 'IA',
|
||
mcp: 'MCP',
|
||
container: 'Contenedor | Contenedores',
|
||
cronjob: 'Tarea programada | Tareas programadas',
|
||
system: 'Sistema',
|
||
security: 'Seguridad',
|
||
files: 'Explorador de archivos',
|
||
monitor: 'Monitoreo',
|
||
terminal: 'Terminal | Terminales',
|
||
settings: 'Configuración',
|
||
toolbox: 'Caja de herramientas',
|
||
logs: 'Registro | Registros',
|
||
runtime: 'Ejecución | Entornos de ejecución',
|
||
processManage: 'Proceso | Procesos',
|
||
process: 'Proceso | Procesos',
|
||
network: 'Red | Redes',
|
||
supervisor: 'Supervisor',
|
||
tamper: 'Antimanipulación',
|
||
app: 'Aplicación',
|
||
msgCenter: 'Tareas',
|
||
disk: 'Disco',
|
||
filter: 'Filtro',
|
||
},
|
||
home: {
|
||
recommend: 'Recomendado',
|
||
dir: 'Directorio',
|
||
quickDir: 'Acceso rápido',
|
||
minQuickJump: 'Agrega al menos una entrada de acceso rápido',
|
||
maxQuickJump: 'Puedes agregar hasta cuatro entradas de acceso rápido',
|
||
database: 'Database - All',
|
||
restart_1panel: 'Reiniciar panel',
|
||
restart_system: 'Reiniciar servidor',
|
||
operationSuccess: 'Completado con éxito. Reiniciando ahora, actualiza el navegador luego.',
|
||
entranceHelper:
|
||
'La entrada segura no está habilitada. Actívala en "Configuraciones -> Seguridad" para mejorar la seguridad.',
|
||
appInstalled: 'Aplicaciones',
|
||
systemInfo: 'Información del sistema',
|
||
hostname: 'Nombre del host',
|
||
platformVersion: 'Sistema operativo',
|
||
kernelVersion: 'Kernel',
|
||
kernelArch: 'Arquitectura',
|
||
network: 'Red',
|
||
io: 'Disco I/O',
|
||
ip: 'IP local',
|
||
proxy: 'Proxy del sistema',
|
||
baseInfo: 'Información básica',
|
||
totalSend: 'Total enviado',
|
||
totalRecv: 'Total recibido',
|
||
rwPerSecond: 'Operaciones de E/S',
|
||
ioDelay: 'Latencia de E/S',
|
||
uptime: 'Tiempo en funcionamiento',
|
||
runningTime: 'Desde',
|
||
mem: 'Memoria del Sistema',
|
||
swapMem: 'Partición swap',
|
||
runSmoothly: 'Carga baja',
|
||
runNormal: 'Carga moderada',
|
||
runSlowly: 'Carga alta',
|
||
runJam: 'Carga pesada',
|
||
core: 'Núcleo físico',
|
||
logicCore: 'Núcleo lógico',
|
||
corePercent: 'Uso del Núcleo',
|
||
cpuFrequency: 'Frecuencia CPU',
|
||
cpuDetailedPercent: 'Distribución del Tiempo de CPU',
|
||
cpuUser: 'Usuario',
|
||
cpuSystem: 'Sistema',
|
||
cpuIdle: 'Inactivo',
|
||
cpuIrq: 'IRQ',
|
||
cpuSoftirq: 'Soft IRQ',
|
||
cpuSteal: 'Robado',
|
||
cpuTop: 'Top 5 de Procesos por Uso de CPU',
|
||
memTop: 'Top 5 de Procesos por Uso de Memoria',
|
||
loadAverage: 'Promedio de carga en el último minuto | Promedio de carga en los últimos {n} minutos',
|
||
load: 'Carga',
|
||
mount: 'Punto de montaje',
|
||
fileSystem: 'Sistema de archivos',
|
||
total: 'Total',
|
||
used: 'En uso',
|
||
cache: 'Cache',
|
||
free: 'Libre',
|
||
shard: 'Fragmentado',
|
||
available: 'Disponible',
|
||
percent: 'Utilización',
|
||
goInstall: 'Ir a instalar',
|
||
networkCard: 'Tarjeta de red',
|
||
disk: 'Disco',
|
||
memo: 'Memo',
|
||
memoPlaceholder: 'Haz clic en el botón de editar para habilitar la edición.',
|
||
carouselSetting: 'Configuración del carrusel',
|
||
tooltipSensitiveInfo: 'Mostrar/Ocultar información sensible',
|
||
alias: 'Alias',
|
||
},
|
||
tabs: {
|
||
more: 'Más',
|
||
hide: 'Ocultar',
|
||
closeLeft: 'Cerrar izquierda',
|
||
closeRight: 'Cerrar derecha',
|
||
closeCurrent: 'Cerrar actual',
|
||
closeOther: 'Cerrar otras',
|
||
closeAll: 'Cerrar todo',
|
||
},
|
||
header: {
|
||
logout: 'Cerrar sesión',
|
||
},
|
||
database: {
|
||
manage: 'Administrar base de datos',
|
||
deleteBackupHelper: 'Eliminar copias de seguridad de la base de datos simultáneamente',
|
||
delete: 'La operación de eliminación no se puede revertir, por favor introduzca "',
|
||
deleteHelper: '" para eliminar esta base de datos',
|
||
noMysql: 'Servicio de base de datos (MySQL o MariaDB)',
|
||
noPostgresql: 'Servicio de base de datos PostgreSQL',
|
||
goUpgrade: 'Ir a actualizar',
|
||
goInstall: 'Ir a instalar',
|
||
isDelete: 'Eliminada',
|
||
permission: 'Cambiar permisos',
|
||
format: 'Juego de Caracteres',
|
||
collation: 'Intercalación',
|
||
collationHelper: 'Si está vacío, use la intercalación predeterminada del juego de caracteres {0}',
|
||
permissionForIP: 'IP',
|
||
permissionAll: 'Todos (%)',
|
||
localhostHelper:
|
||
'Configurar los permisos de la base de datos como "localhost" para el despliegue en contenedores impedirá el acceso externo al contenedor. ¡Por favor elija cuidadosamente!',
|
||
databaseConnInfo: 'Conexión',
|
||
rootPassword: 'Contraseña root',
|
||
serviceName: 'Nombre del servicio',
|
||
serviceNameHelper: 'Acceso entre contenedores en la misma red.',
|
||
backupList: 'Respaldo',
|
||
loadBackup: 'Importar',
|
||
localUpload: 'Subida local',
|
||
hostSelect: 'Server Selection',
|
||
selectHelper: 'Estas seguro de importar el archivo de backup {0}?',
|
||
remoteAccess: 'Acceso remoto',
|
||
remoteHelper: 'Múltiples IP separadas por comas, ejemplo: 172.16.10.111, 172.16.10.112',
|
||
remoteConnHelper:
|
||
'Conectarse remotamente como usuario root en MySQL puede presentar riesgos de seguridad. Por lo tanto, realice esta operación con precaución.',
|
||
changePassword: 'Cambiar contraseña',
|
||
changeConnHelper: 'Esta operación modificará la base de datos actual {0}. ¿Desea continuar?',
|
||
changePasswordHelper:
|
||
'La base de datos ha sido asociada a una aplicación. Cambiar la contraseña también cambiará la contraseña de la base de datos en la aplicación. El cambio se aplica después de reiniciar la aplicación.',
|
||
recoverTimeoutHelper: '-1 significa sin límite de tiempo de espera',
|
||
confChange: 'Configuración',
|
||
confNotFound:
|
||
'No se pudo encontrar el archivo de configuración. Por favor actualice la aplicación a la última versión en la tienda y vuelva a intentarlo.',
|
||
portHelper:
|
||
'Este puerto es el puerto expuesto del contenedor. Debe guardar la modificación por separado y reiniciar el contenedor.',
|
||
loadFromRemote: 'Sincronizar desde el servidor',
|
||
userBind: 'Vincular usuario',
|
||
pgBindHelper:
|
||
'Esta operación se utiliza para crear un nuevo usuario y vincularlo a la base de datos destino. Actualmente no se admite seleccionar usuarios ya existentes en la base de datos.',
|
||
pgSuperUser: 'Superusuario',
|
||
loadFromRemoteHelper:
|
||
'Esto sincronizará la información de la base de datos del servidor a 1Panel. ¿Desea continuar?',
|
||
passwordHelper: 'No se puede obtener, haga clic para modificar',
|
||
remote: 'Remoto',
|
||
remoteDB: 'Servidor remoto | Servidores remotos',
|
||
manageRemoteDB: 'Administrar servidores remotos',
|
||
createRemoteDB: 'Vincular @.lower:database.remoteDB',
|
||
unBindRemoteDB: 'Desvincular @.lower:database.remoteDB',
|
||
unBindForce: 'Forzar desvinculación',
|
||
unBindForceHelper:
|
||
'Ignorar todos los errores durante la desvinculación para asegurar que la operación final sea exitosa',
|
||
unBindRemoteHelper:
|
||
'Desvincular la base de datos remota solo eliminará la relación de vinculación y no eliminará directamente la base de datos remota',
|
||
editRemoteDB: 'Editar servidor remoto',
|
||
localDB: 'Base de datos local',
|
||
address: 'Dirección de la base de datos',
|
||
version: 'Versión de la base de datos',
|
||
userHelper: 'El usuario root o un usuario con privilegios de root puede acceder a la base de datos remota.',
|
||
mongodbPermissionDbOwner: 'Propietario de la base de datos',
|
||
mongodbPermissionRead: 'Leer datos',
|
||
mongodbPermissionReadWrite: 'Leer y escribir datos',
|
||
mongodbPermissionUserAdmin: 'Administrador de usuarios',
|
||
pgUserHelper: 'Usuario de base de datos con privilegios de superusuario.',
|
||
ssl: 'Usar SSL',
|
||
clientKey: 'Clave privada del cliente',
|
||
clientCert: 'Certificado del cliente',
|
||
caCert: 'Certificado CA',
|
||
hasCA: 'Posee certificado CA',
|
||
skipVerify: 'Omitir la verificación de validez del certificado',
|
||
initialDB: 'Base de Datos Inicial',
|
||
formatHelper:
|
||
'El conjunto de caracteres actual de la base de datos es {0}, la inconsistencia de conjuntos puede causar errores al recuperar',
|
||
dropHelper: 'Puede arrastrar y soltar el archivo aquí o',
|
||
clickHelper: 'hacer clic para subir',
|
||
supportUpType:
|
||
'Solo se admiten los formatos de archivo sql, sql.gz, tar.gz y .zip. El archivo comprimido importado debe contener solo un archivo .sql o incluir test.sql.',
|
||
currentStatus: 'Estado actual',
|
||
baseParam: 'Parámetro básico',
|
||
performanceParam: 'Parámetro de rendimiento',
|
||
runTime: 'Tiempo de inicio',
|
||
connections: 'Total de conexiones',
|
||
bytesSent: 'Bytes enviados',
|
||
bytesReceived: 'Bytes recibidos',
|
||
queryPerSecond: 'Consultas por segundo',
|
||
txPerSecond: 'Tx por segundo',
|
||
connInfo: 'Conexiones activas/pico',
|
||
connInfoHelper: 'Si el valor es demasiado grande, aumente "max_connections".',
|
||
threadCacheHit: 'Cache de hilos exitoso',
|
||
threadCacheHitHelper: 'Si es muy bajo, aumente "thread_cache_size".',
|
||
indexHit: 'Índice exitoso',
|
||
indexHitHelper: 'Si es muy bajo, aumente "key_buffer_size".',
|
||
innodbIndexHit: 'Tasa de aciertos del índice Innodb',
|
||
innodbIndexHitHelper: 'Si es muy bajo, aumente "innodb_buffer_pool_size".',
|
||
cacheHit: 'Aciertos en caché de consulta',
|
||
cacheHitHelper: 'Si es muy bajo, aumente "query_cache_size".',
|
||
tmpTableToDB: 'Tabla temporal en disco',
|
||
tmpTableToDBHelper: 'Si es muy alto, intente aumentar "tmp_table_size".',
|
||
openTables: 'Tablas abiertas',
|
||
openTablesHelper: 'El valor de configuración de "table_open_cache" debe ser mayor o igual a este valor.',
|
||
selectFullJoin: 'Seleccionar join completo',
|
||
selectFullJoinHelper: 'Si el valor no es 0, verifique si el índice de la tabla es correcto.',
|
||
selectRangeCheck: 'Uniones sin índice',
|
||
selectRangeCheckHelper: 'Si el valor no es 0, verifique si el índice de la tabla es correcto.',
|
||
sortMergePasses: 'Cantidad de merges ordenados',
|
||
sortMergePassesHelper: 'Si es muy alto, aumente "sort_buffer_size".',
|
||
tableLocksWaited: 'Bloqueos de tabla',
|
||
tableLocksWaitedHelper: 'Si el valor es muy alto, considere mejorar el rendimiento de su base de datos.',
|
||
performanceTuning: 'Ajuste de rendimiento',
|
||
optimizationScheme: 'Esquema de optimización',
|
||
keyBufferSizeHelper: 'Tamaño del buffer para índices',
|
||
queryCacheSizeHelper: 'Caché de consulta. Si la función está deshabilitada, establezca este parámetro en 0.',
|
||
tmpTableSizeHelper: 'Tamaño del caché de tabla temporal',
|
||
innodbBufferPoolSizeHelper: 'Tamaño del buffer Innodb',
|
||
innodbLogBufferSizeHelper: 'Tamaño del buffer de logs de Innodb',
|
||
sortBufferSizeHelper: '* conexiones, tamaño del buffer de ordenamiento por hilo',
|
||
readBufferSizeHelper: '* conexiones, tamaño del buffer de lectura',
|
||
readRndBufferSizeHelper: '* conexiones, tamaño del buffer de lectura aleatoria',
|
||
joinBufferSizeHelper: '* conexiones, tamaño del caché de asociación de tablas',
|
||
threadStackelper: '* conexiones, tamaño de pila por hilo',
|
||
binlogCacheSizeHelper: '* conexiones, caché del log binario (múltiplos de 4096)',
|
||
threadCacheSizeHelper: 'Tamaño del pool de hilos',
|
||
tableOpenCacheHelper: 'Caché de tablas',
|
||
maxConnectionsHelper: 'Máximo de conexiones',
|
||
restart: 'Reiniciar',
|
||
slowLog: 'Registros lentos',
|
||
noData: 'Aún no hay registros lentos.',
|
||
isOn: 'Activado',
|
||
longQueryTime: 'umbral(es)',
|
||
thresholdRangeHelper: 'Por favor, introduzca el umbral correcto (1 - 600).',
|
||
timeout: 'Tiempo de espera',
|
||
timeoutHelper: 'Tiempo de espera de conexión inactiva. 0 indica que la conexión está siempre activa.',
|
||
maxclients: 'Máximo de clientes',
|
||
requirepassHelper:
|
||
'Déjelo en blanco si no se ha establecido ninguna contraseña. Los cambios deben guardarse por separado y el contenedor debe reiniciarse.',
|
||
databases: 'Cantidad de bases de datos',
|
||
maxmemory: 'Uso máximo de memoria',
|
||
maxmemoryHelper: '0 indica sin restricción.',
|
||
tcpPort: 'Puerto de escucha actual.',
|
||
uptimeInDays: 'Días en operación.',
|
||
connectedClients: 'Cantidad de clientes conectados.',
|
||
usedMemory: 'Uso de memoria actual de Redis.',
|
||
usedMemoryRss: 'Tamaño de memoria solicitado al sistema operativo.',
|
||
usedMemoryPeak: 'Pico de uso de memoria de Redis.',
|
||
memFragmentationRatio: 'Ratio de fragmentación de memoria.',
|
||
totalConnectionsReceived: 'Total de clientes conectados desde el inicio.',
|
||
totalCommandsProcessed: 'Total de comandos ejecutados desde el inicio.',
|
||
instantaneousOpsPerSec: 'Comandos ejecutados por el servidor por segundo.',
|
||
keyspaceHits: 'Cantidad de veces que se encontró la clave de la base de datos.',
|
||
keyspaceMisses: 'Cantidad de intentos fallidos para encontrar la clave.',
|
||
hit: 'Proporción de aciertos de clave de la base de datos.',
|
||
latestForkUsec: 'Microsegundos consumidos en la última operación fork().',
|
||
redisCliHelper: 'No se detectó el servicio "redis-cli". Primero habilite el servicio.',
|
||
redisQuickCmd: 'Comandos rápidos de Redis',
|
||
recoverHelper: 'Esto sobrescribirá los datos con [{0}]. ¿Desea continuar?',
|
||
mongodbRecoverDropAllCollections: 'Vaciar la base de datos actual antes de restaurar',
|
||
mongodbRecoverDropAllCollectionsHelper:
|
||
'De forma predeterminada, solo se sobrescriben las colecciones existentes y se conservan las colecciones nuevas. Al activarlo, se vacía la base de datos actual y luego se restaura desde la copia de seguridad.',
|
||
submitIt: 'Sobrescribir los datos',
|
||
baseConf: 'Básico',
|
||
allConf: 'Todos',
|
||
restartNow: 'Reiniciar ahora',
|
||
restartNowHelper1:
|
||
'Necesita reiniciar el sistema después de que los cambios de configuración tengan efecto. Si necesita persistir los datos, guarde antes de reiniciar.',
|
||
restartNowHelper: 'Esto solo surtirá efecto después de reiniciar el sistema.',
|
||
persistence: 'Persistencia',
|
||
rdbHelper1: 'segundo(s), insertar',
|
||
rdbHelper2: 'piezas de datos',
|
||
rdbHelper3: 'Cumplir cualquiera de las condiciones activará la persistencia RDB.',
|
||
rdbInfo: 'Asegúrese de que el valor de la regla esté entre 1 y 100000',
|
||
containerConn: 'Conexión del contenedor',
|
||
copyConnURL: 'Copiar URL de conexión',
|
||
connAddress: 'Dirección',
|
||
containerConnHelper:
|
||
'Esta dirección de conexión es usada por aplicaciones en entorno de ejecución PHP o instalaciones en contenedores.',
|
||
remoteConn: 'Conexión externa',
|
||
remoteConnHelper2:
|
||
'Esta dirección de conexión puede ser usada por aplicaciones fuera del contenedor o externas.',
|
||
remoteConnHelper3:
|
||
'La dirección de acceso predeterminada es la IP del host. Para modificarla, diríjase a la configuración de "Dirección de acceso predeterminada" en la página de ajustes del panel.',
|
||
localIP: 'IP local',
|
||
},
|
||
aiTools: {
|
||
agents: {
|
||
agent: 'Agente',
|
||
account: 'Cuenta de modelo',
|
||
noAccountHint: 'Selecciona una cuenta de modelo existente o agrega una nueva.',
|
||
accountCount: '{0} cuentas de modelo',
|
||
syncAgents: 'Sincronizar agentes vinculados',
|
||
syncAgentsHelper: 'Actualiza openclaw.json para los agentes que usan esta cuenta de modelo',
|
||
openclawType: 'OpenClaw',
|
||
copawType: 'QwenPaw',
|
||
hermesType: 'Hermes Agent',
|
||
appVersion: 'Versión de la app',
|
||
webuiPort: 'Puerto WebUI',
|
||
allowedOrigins: 'Direcciones de acceso',
|
||
allowedOriginsRequired: 'Introduce al menos una dirección de acceso',
|
||
allowedOriginsInvalid: 'Usa el formato http(s)://host-o-ip[:puerto]',
|
||
provider: 'Proveedor de modelos',
|
||
accountModelsHelper:
|
||
'Configure los modelos que esta cuenta expone a OpenClaw para el cambio y la configuración',
|
||
accountModelsRequired: 'Configure al menos un modelo',
|
||
accountModelsDuplicate: 'Existen modelos duplicados en el catálogo',
|
||
modelPool: 'Pool de modelos',
|
||
fallbackModels: 'Modelos de respaldo',
|
||
addFallbackModel: 'Agregar modelo de respaldo',
|
||
fallbackModelsEmpty: 'No hay modelos de respaldo configurados',
|
||
modelInputTypes: 'Tipos de entrada',
|
||
reasoning: 'Modelo de razonamiento',
|
||
manualModel: 'Entrada manual de modelo',
|
||
verified: 'Verificado',
|
||
verifySkipped: 'Sin verificación',
|
||
skillsTab: 'Habilidades',
|
||
securityTab: 'Seguridad',
|
||
otherTab: 'Otros',
|
||
timeZone: 'Zona horaria',
|
||
browserEnabled: 'Navegador habilitado',
|
||
npmRegistry: 'Registro NPM',
|
||
npmRegistryHelper:
|
||
'Se usa para instalar plugins de OpenClaw. Puede elegir un registro predefinido o introducir uno personalizado.',
|
||
npmRegistryInvalid: 'Introduzca una URL válida del registro NPM que empiece por http:// o https://',
|
||
pluginInstallNPMRegistryHelper:
|
||
'Vaya a Configuración -> Otros para configurar el registro NPM y acelerar la instalación de plugins',
|
||
skillsSearchPlaceholder: 'Buscar habilidades...',
|
||
skillsEmpty: 'Sin habilidades',
|
||
skillsMarket: 'Mercado de habilidades',
|
||
skillsMarketHint: 'Seleccione una fuente y busque habilidades',
|
||
skillsMarketEmpty: 'No se encontraron habilidades relacionadas',
|
||
skillsMarketSourceClawhubGlobal: 'ClawHub (Global)',
|
||
skillsMarketSourceClawhubChina: 'ClawHub (China)',
|
||
skillsMarketSourceSkillhub: 'SkillHub (Tencent)',
|
||
skillsMarketSourceLocalHub: 'Tienda local de Skills',
|
||
skillsScore: 'Puntuación',
|
||
skillsMarketSourceOfficial: 'Oficial',
|
||
versionUnsupportedTitle: 'Esta función no es compatible con la versión actual',
|
||
versionUnsupportedHelper: 'Actualice OpenClaw a la versión {0} o posterior.',
|
||
skillsStatusDisabled: 'Deshabilitado',
|
||
skillsGroupBuiltIn: 'Integradas',
|
||
skillsGroupExternal: 'Externas',
|
||
skillsGroupWorkspace: 'Espacio de trabajo',
|
||
switchModelSuccess: 'Modelo cambiado correctamente',
|
||
channelsTab: 'Canales',
|
||
agentRoleTab: 'Agentes',
|
||
agentRoleUnsupported: 'La gestión de roles actualmente solo es compatible con OpenClaw.',
|
||
workspace: 'Directorio del espacio de trabajo',
|
||
agentDir: 'Directorio del agente',
|
||
roleMarkdownDescriptions: {
|
||
'AGENTS.md': [
|
||
'Instrucciones operativas para el agente y cómo debe usar la memoria.',
|
||
'Se carga al inicio de cada sesión.',
|
||
'Buen lugar para reglas, prioridades y detalles sobre cómo debe comportarse.',
|
||
],
|
||
'SOUL.md': ['Personalidad, tono y límites.', 'Se carga en cada sesión.'],
|
||
'USER.md': ['Quién es el usuario y cómo dirigirse a él.', 'Se carga en cada sesión.'],
|
||
'IDENTITY.md': [
|
||
'El nombre, estilo y emoji del agente.',
|
||
'Se crea o actualiza durante el ritual de inicio.',
|
||
],
|
||
'TOOLS.md': [
|
||
'Notas sobre las herramientas locales y las convenciones.',
|
||
'No controla la disponibilidad de herramientas; solo sirve de guía.',
|
||
],
|
||
'HEARTBEAT.md': [
|
||
'Lista de comprobación opcional para ejecuciones heartbeat.',
|
||
'Manténgala corta para evitar gastar tokens.',
|
||
],
|
||
'BOOT.md': [
|
||
'Lista de inicio opcional que se ejecuta al reiniciar el gateway cuando los hooks internos están habilitados.',
|
||
'Manténgala corta; use la herramienta de mensajes para envíos externos.',
|
||
],
|
||
'BOOTSTRAP.md': [
|
||
'Ritual único de la primera ejecución.',
|
||
'Solo se crea para un espacio de trabajo completamente nuevo.',
|
||
'Elimínelo cuando el ritual se complete.',
|
||
],
|
||
},
|
||
bindings: 'Vinculaciones',
|
||
duplicateBinding: 'La combinacion de canal e ID de cuenta debe ser unica',
|
||
accountIdOptional: 'ID de cuenta (opcional)',
|
||
saveAllMd: 'Guardar todo',
|
||
roleMarkdownRestartHelper:
|
||
'Guardar todos los archivos markdown actuales requiere reiniciar el contenedor para surtir efecto. Elija si reiniciar ahora o más tarde.',
|
||
configFileRestartHelper:
|
||
'Guardar el archivo de configuración requiere reiniciar inmediatamente el contenedor para surtir efecto.',
|
||
overviewSnapshot: 'Resumen',
|
||
primaryModel: 'Modelo principal',
|
||
defaultModel: 'Modelo predeterminado',
|
||
channelCount: 'Canales configurados',
|
||
skillCount: 'Habilidades',
|
||
jobCount: 'Tareas programadas',
|
||
sessionCount: 'Sesiones',
|
||
hermesChatAction: 'Conversación',
|
||
hermesChatTitle: 'Conversación de Hermes',
|
||
hermesChatDialogTitle: 'Conversación de Hermes - {0}',
|
||
hermesChatNewChat: 'Nueva conversación',
|
||
hermesChatNoSessions: 'No hay sesiones',
|
||
hermesChatMessageCount: '{0} mensajes',
|
||
hermesChatEmptyHint: 'Seleccione una sesión a la izquierda o haga clic en Nueva conversación',
|
||
hermesChatTitlePlaceholder: 'Introduzca el título de la sesión',
|
||
hermesChatRenameSuccess: 'El título de la sesión se ha actualizado',
|
||
hermesChatDeleteConfirm: '¿Eliminar la sesión {0}?',
|
||
hermesChatDeleteSuccess: 'Sesión eliminada',
|
||
weixin: 'Weixin',
|
||
qq: 'QQ',
|
||
wecom: 'WeCom',
|
||
dingtalk: 'DingTalk',
|
||
feishu: 'Feishu',
|
||
pluginNotInstalled: 'El plugin no está instalado. Instálalo primero.',
|
||
dmPolicy: 'Política de MD',
|
||
threadSession: 'Sesión por hilo',
|
||
replyMode: 'Modo de respuesta',
|
||
requireMention: 'Requerir mención',
|
||
requireMentionTrue: "Requiere {'@'}",
|
||
requireMentionFalse: "No requiere {'@'}",
|
||
requireMentionOpen: 'Según la configuración del grupo',
|
||
groupPolicy: 'Política de grupo',
|
||
policyAllowlist: 'Lista permitida',
|
||
policyOpen: 'Abierto',
|
||
policyDisabled: 'Deshabilitado',
|
||
bots: 'Bots',
|
||
addBot: 'Agregar bot',
|
||
accountId: 'ID de cuenta',
|
||
accountIdPlaceholder:
|
||
'Un ID único para distinguir bots y usarlo después en la configuración y el enrutamiento.',
|
||
setDefaultBot: 'Establecer como predeterminado',
|
||
botDuplicateAccountId: 'El ID de cuenta ya existe',
|
||
botDuplicateField: '{field} ya existe',
|
||
botRequired: 'Agregue al menos un bot',
|
||
botId: 'ID del bot',
|
||
allowFrom: 'Lista permitida de MD',
|
||
allowFromHelper: 'Un ID de remitente por línea. Solo se usa cuando la política de MD es Lista permitida.',
|
||
allowFromPlaceholder: 'Un ID de remitente por línea',
|
||
systemPrompt: 'Prompt del sistema',
|
||
groupAllowFrom: 'Lista permitida de grupos',
|
||
groupAllowFromHelper:
|
||
'Un ID de grupo por línea. Solo se usa cuando la política de grupo es Lista permitida.',
|
||
groupAllowFromPlaceholder: 'Un ID de grupo por línea',
|
||
separateSessionByConversation: 'Sesión separada por conversación',
|
||
groupSessionScope: 'Ámbito de sesión de grupo',
|
||
groupSessionScopeGroup: 'Compartido por grupo',
|
||
groupSessionScopeGroupSender: 'Por remitente',
|
||
sharedMemoryAcrossConversations: 'Compartir memoria entre conversaciones',
|
||
asyncMode: 'Modo asíncrono',
|
||
ackText: 'Texto de confirmación',
|
||
ackTextDefault: 'Tarea recibida, procesando...',
|
||
streaming: 'Streaming',
|
||
streamingOff: 'Desactivado',
|
||
streamingPartial: 'Parcial',
|
||
streamingBlock: 'Bloqueante',
|
||
streamingProgress: 'Progreso',
|
||
allowFromRequired: 'Introduzca al menos una entrada en la lista permitida',
|
||
saveAndRestartGateway: 'Guardar y reiniciar gateway',
|
||
pairingCode: 'Código de emparejamiento',
|
||
pairingCodePlaceholder: 'Introduzca el código de emparejamiento',
|
||
approvePairing: 'Aprobar emparejamiento',
|
||
saveSuccess: 'Guardado correctamente',
|
||
saveAndRestartSuccess: 'Guardado correctamente. El contenedor se está reiniciando automáticamente.',
|
||
pairingApproveSuccess: 'Emparejamiento aprobado correctamente',
|
||
scanConnect: 'Escanear para conectar',
|
||
scanConnectHelper:
|
||
'Haga clic para iniciar la tarea de inicio de sesión por QR. El código QR aparecerá en el registro de tareas y el contenedor se reiniciará automáticamente después de completar el escaneo.',
|
||
channelAutoRestartHelper:
|
||
'Al guardar, el contenedor se reiniciará automáticamente para que la configuración surta efecto.',
|
||
channelDeleteConfirm: '¿Eliminar la configuración del canal {0}?',
|
||
deleteAndRestartSuccess: 'Se eliminó correctamente. El contenedor se está reiniciando automáticamente.',
|
||
customProviderHelper: 'En el proveedor de modelo personalizado no se valida si la cuenta está disponible',
|
||
},
|
||
model: {
|
||
model: 'Modelo',
|
||
localModel: 'Modelos locales',
|
||
create: 'Agregar modelo',
|
||
create_helper: 'Descargar "{0}"',
|
||
ollama_doc: 'Puede visitar el sitio oficial de Ollama para buscar y encontrar más modelos.',
|
||
container_conn_helper: 'Utilice esta dirección para el acceso o conexión entre contenedores',
|
||
ollama_sync:
|
||
'Al sincronizar modelos de Ollama, se detectaron los siguientes modelos que no existen. ¿Desea eliminarlos?',
|
||
from_remote: 'Este modelo no fue descargado vía 1Panel, no hay registros de descarga relacionados.',
|
||
no_logs: 'Los registros de descarga de este modelo han sido eliminados y no se pueden consultar.',
|
||
vllmVersionHelper: 'Para servidores FusionXpark GB 10, seleccione la versión -cu130.',
|
||
downloader: 'Descargador',
|
||
modelDir: 'Directorio del modelo',
|
||
manualDownload: 'Descarga manual',
|
||
modelSource: 'Fuente del modelo',
|
||
repoID: 'ID del repositorio',
|
||
modelScopeEndpoint: 'Endpoint de ModelScope',
|
||
modelScopeToken: 'Token de ModelScope (opcional)',
|
||
hfToken: 'HF Token (opcional)',
|
||
hfEndpoint: 'Endpoint de aceleración de HuggingFace',
|
||
hfEndpointHelper:
|
||
'Configure un endpoint de aceleración cuando el acceso a HuggingFace sea inestable. La búsqueda, los detalles y las descargas lo utilizarán.',
|
||
searchModelScope: 'Buscar en ModelScope',
|
||
searchHuggingFace: 'Buscar en HuggingFace',
|
||
sortTrending: 'Tendencias',
|
||
sortLikes: 'Más valorados',
|
||
sortDownloads: 'Más descargados',
|
||
sortUpdated: 'Actualizados recientemente',
|
||
sortCreated: 'Más recientes',
|
||
downloadsCount: 'Descargas',
|
||
likes: 'Me gusta',
|
||
taskQueue: 'Cola de descargas',
|
||
progress: 'Progreso',
|
||
localDownloaded: 'Descargados',
|
||
modelInfo: 'Detalles del modelo',
|
||
modelCard: 'Tarjeta del modelo',
|
||
downloading: 'Descargando',
|
||
canceled: 'Cancelado',
|
||
downloadQueued: 'Agregado a la cola de descargas',
|
||
cancelTaskConfirm: '¿Cancelar esta tarea de descarga?',
|
||
deleteLocalModelConfirm: '¿Eliminar el modelo local {0}?',
|
||
},
|
||
proxy: {
|
||
proxy: 'Mejoras de gateway de IA',
|
||
proxyHelper1: 'Vincule un dominio y habilite HTTPS para mejorar la seguridad de la transmisión',
|
||
proxyHelper2: 'Limite el acceso por IP para evitar exposición pública',
|
||
proxyHelper3: 'Habilitar transmisión en tiempo real',
|
||
proxyHelper4: 'Una vez creado, puede verlo y gestionarlo en la lista de sitios web',
|
||
proxyHelper5:
|
||
'Después de habilitarlo, puede deshabilitar el acceso externo al puerto en Tienda de Aplicaciones - Instaladas - Ollama - Parámetros para mejorar la seguridad.',
|
||
proxyHelper6:
|
||
'Para deshabilitar la configuración del proxy, puede eliminarla desde la lista de sitios web.',
|
||
whiteListHelper: 'Restringir el acceso solo a las IP incluidas en la lista blanca',
|
||
},
|
||
aiProxy: {
|
||
title: 'Gateway de IA',
|
||
notInstalled: 'No instalado',
|
||
usage: 'Uso',
|
||
importModelAccount: 'Importar cuenta de modelo',
|
||
editModelAccount: 'Editar cuenta de modelo',
|
||
selectModelAccount: 'Seleccionar una cuenta de modelo existente',
|
||
priority: 'Prioridad',
|
||
healthStatus: 'Estado de salud',
|
||
failureCount: 'Fallos',
|
||
lastError: 'Último error',
|
||
modelMap: 'Mapeo de modelos',
|
||
apiKeyKeepEmpty: 'API Key (dejar vacío para no cambiar)',
|
||
apiKeyOnceHint: 'La API Key solo se muestra una vez al crearla. Cópiela y guárdela ahora.',
|
||
apiKeyOnceSave: 'La API Key solo se muestra una vez. Guárdela ahora:',
|
||
qpsLimit: 'Límite de QPS',
|
||
unlimited: 'Ilimitado',
|
||
lastUsedAt: 'Último uso',
|
||
settingTitle: 'Configuración del gateway de IA',
|
||
lbPolicy: 'Estrategia de balanceo',
|
||
lbPolicyRoundRobin: 'Round Robin',
|
||
lbPolicyRoundRobinDesc:
|
||
'Selecciona las cuentas de modelo disponibles en orden. Úselo cuando los backends tengan capacidad similar.',
|
||
lbPolicyWeightedRoundRobin: 'Round Robin ponderado',
|
||
lbPolicyWeightedRoundRobinDesc:
|
||
'Distribuye solicitudes según el peso de la cuenta de modelo. Un peso mayor recibe más tráfico; úselo cuando la capacidad de los backends sea diferente.',
|
||
lbPolicyFailover: 'Conmutación por error',
|
||
lbPolicyFailoverDesc:
|
||
'Usa primero la cuenta de modelo con mayor prioridad y cambia a la siguiente disponible tras un fallo o periodo de enfriamiento.',
|
||
productionProtection: 'Protección de producción',
|
||
maxConcurrency: 'Concurrencia máxima',
|
||
queueSize: 'Tamaño de cola',
|
||
queueTimeoutSeconds: 'Tiempo de espera en cola (s)',
|
||
requestTimeoutSeconds: 'Timeout de solicitud no streaming (s)',
|
||
streamIdleTimeoutSeconds: 'Timeout de inactividad streaming (s)',
|
||
maxBodyMb: 'Tamaño máximo del cuerpo (MB)',
|
||
runtimeRefreshSeconds: 'Intervalo de actualización runtime (s)',
|
||
logRetention: 'Retención de logs',
|
||
usageRetentionDays: 'Retención de estadísticas de uso (días)',
|
||
contentAuditRetentionDays: 'Retención de auditoría de cumplimiento de contenido (días)',
|
||
logCleanupIntervalHours: 'Intervalo de limpieza de logs (horas)',
|
||
statusTitle: 'Estado del gateway de IA',
|
||
serviceEnabled: 'Inicio automático del servicio',
|
||
proxyEnabled: 'Gateway habilitado',
|
||
statusMessage: 'Mensaje de estado',
|
||
serviceOperateConfirm: '¿Confirmar {0} el servicio de gateway de IA?',
|
||
deleteBackendConfirm: '¿Eliminar la cuenta de modelo {0}?',
|
||
deleteBackendTitle: 'Eliminar cuenta de modelo',
|
||
deleteUserConfirm: '¿Eliminar el usuario {0}?',
|
||
userFallback: 'Usuario {0}',
|
||
requestModel: 'Modelo solicitado',
|
||
upstreamModel: 'Modelo upstream',
|
||
requestModelPlaceholder: 'p. ej. qwen2.5-coder',
|
||
upstreamModelPlaceholder: 'p. ej. Qwen/Qwen2.5-Coder-32B-Instruct',
|
||
addMapping: 'Agregar mapeo',
|
||
usageTrend: 'Tendencia de uso',
|
||
providerDistribution: 'Distribución por proveedor',
|
||
unmatched: 'Sin coincidencia',
|
||
modelDistribution: 'Distribución por modelo',
|
||
serviceProvider: 'Proveedor',
|
||
tokenUsage: 'Uso de tokens',
|
||
percent: 'Porcentaje',
|
||
ranking: 'Ranking',
|
||
rank: 'Rango',
|
||
promptToken: 'Tokens de entrada',
|
||
completionToken: 'Tokens de salida',
|
||
inputTokens: 'Tokens de entrada',
|
||
outputTokens: 'Tokens de salida',
|
||
totalToken: 'Tokens totales',
|
||
activeUsers: 'Usuarios activos',
|
||
activeModels: 'Modelos activos',
|
||
failedRequests: 'Solicitudes fallidas',
|
||
averageTokenPerRequest: 'Tokens promedio/solicitud',
|
||
callLogs: 'Registros de llamadas',
|
||
usageKeywordPlaceholder: 'Buscar Request ID / modelo / modelo upstream / mensaje de error',
|
||
attemptChain: 'Cadena de intentos',
|
||
attemptIndex: 'Orden de llamada',
|
||
noAttemptDetails: 'Esta solicitud acertó en el primer intento; no hay detalles de fallback',
|
||
input: 'Entrada',
|
||
output: 'Salida',
|
||
total: 'Total',
|
||
healthHealthy: 'Saludable',
|
||
healthCooldown: 'En enfriamiento',
|
||
healthUnhealthy: 'Anómalo',
|
||
healthDeleted: 'Eliminado',
|
||
healthUnknown: 'Desconocido',
|
||
validationModelMapEmpty: 'Los nombres del mapeo de modelos no pueden estar vacíos',
|
||
validationModelMapDuplicate: 'El modelo solicitado {0} está duplicado',
|
||
contentCompliance: 'Content Compliance',
|
||
contentAction: 'Action',
|
||
actionBlock: 'Block',
|
||
actionAuditOnly: 'Audit only',
|
||
actionDropHistory: 'Eliminar historial',
|
||
severity: 'Severity',
|
||
severityHigh: 'High',
|
||
severityMedium: 'Medium',
|
||
severityLow: 'Low',
|
||
sensitiveWord: 'Sensitive word',
|
||
sensitiveGroup: 'Sensitive word group',
|
||
sensitiveWordCount: 'Words',
|
||
normalizedWord: 'Normalized word',
|
||
matchedWords: 'Matched words',
|
||
matchedGroups: 'Matched groups',
|
||
importResult: 'Imported {0}, duplicated {1}, invalid {2}',
|
||
auditLogs: 'Audit Logs',
|
||
},
|
||
skillsHub: {
|
||
title: 'Tienda de Skills',
|
||
upload: 'Subir Skill',
|
||
importSkill: 'Importar Skill',
|
||
repositoryAddress: 'Dirección del repositorio',
|
||
repositoryGithubOnly: 'Solo se admiten direcciones de repositorios de GitHub',
|
||
repositoryRef: 'Rama o Tag',
|
||
repositoryRefPlaceholder: 'Predeterminado main; si falla, se intentará master',
|
||
repositoryDownloadPreview: 'URL de descarga de destino:',
|
||
packageURL: 'URL del paquete',
|
||
packageURLPlaceholder: 'Introduzca la dirección del paquete .zip',
|
||
importSuccess: 'Skill importado correctamente y en estado pendiente de revisión.',
|
||
source: 'Fuente',
|
||
applicableAgent: 'Agente aplicable',
|
||
riskLevel: 'Nivel de riesgo',
|
||
riskReferenceHint:
|
||
'El nivel de riesgo se genera automáticamente según el contenido del paquete Skill y es solo una referencia.\nBajo: sin riesgos evidentes\nMedio: scripts, dependencias, URL externas o variables de entorno\nAlto: ejecución remota, información sensible o comandos peligrosos',
|
||
riskCheckResult: 'Resultado de seguridad',
|
||
noRiskFound: 'No se encontraron riesgos evidentes.',
|
||
riskFilePath: 'Ruta del archivo',
|
||
riskKeyword: 'Palabra clave o regla coincidente',
|
||
riskDescription: 'Descripción del riesgo',
|
||
publishHighRiskConfirm:
|
||
'Este Skill tiene elementos de alto riesgo y puede contener ejecución de scripts, descargas externas o acceso a información sensible. ¿Publicarlo de todos modos?',
|
||
approve: 'Aprobar',
|
||
reject: 'Rechazar',
|
||
publish: 'Publicar',
|
||
disable: 'Retirar',
|
||
customTarget: 'Agente personalizado',
|
||
addCustomTarget: 'Agregar agente',
|
||
installToTarget: 'Instalar en agente personalizado',
|
||
containerized: 'En contenedor',
|
||
containerName: 'Nombre del contenedor',
|
||
hostSkillDir: 'Directorio de Skills',
|
||
hostSkillDirHelper:
|
||
'Introduzca la ruta del directorio de Skills en el servidor donde está instalado 1Panel.',
|
||
containerSkillDir: 'Directorio de Skills en el contenedor',
|
||
installMethod: 'Método de instalación',
|
||
copy: 'Copiar',
|
||
extract: 'Extraer',
|
||
postInstallCommand: 'Comando posterior a la instalación',
|
||
localSource: 'Carga local',
|
||
uploadDragTitle: 'Arrastre el paquete Skill aquí o haga clic para subirlo',
|
||
uploadFormatLabel: 'Formatos:',
|
||
uploadFormatValue: '.zip, .7z, .tar, .tar.gz',
|
||
uploadSizeLabel: 'Tamaño:',
|
||
uploadSizeValue: 'No más de 5 MB por archivo',
|
||
uploadRequirementLabel: 'Requisito:',
|
||
uploadRequirementPrefix: 'El paquete Skill debe contener',
|
||
onlySupportedArchive: 'Solo se pueden subir paquetes Skill .zip, .7z, .tar y .tar.gz',
|
||
uploadSizeExceeded: 'Un paquete Skill no puede superar los 5 MB',
|
||
uploadSuccess: 'Skill subido correctamente y en estado pendiente de revisión.',
|
||
offlineNotice: 'El entorno actual está sin conexión. Solo se pueden instalar Skills desde la tienda local.',
|
||
publishConfirm: '¿Publicar este Skill? Después se podrá instalar desde la tienda local de Skills.',
|
||
disableConfirm: '¿Retirar este Skill? Los Skills ya instalados en agentes no se verán afectados.',
|
||
deleteConfirm:
|
||
'¿Eliminar este Skill? Esta acción no se puede deshacer. Los Skills ya instalados en agentes no se verán afectados.',
|
||
rejectConfirm: '¿Rechazar la revisión de este Skill? Pasará al estado rechazado.',
|
||
downloadPublishedOnly: 'Solo se pueden descargar paquetes Skill publicados.',
|
||
containerNameRequired: 'Los destinos en contenedor requieren un nombre de contenedor.',
|
||
deleteTargetConfirm:
|
||
'¿Eliminar este agente personalizado? Los usuarios ya no podrán seleccionar este destino de instalación.',
|
||
noInstallTarget: 'No hay agentes personalizados disponibles. Configure primero un destino de instalación.',
|
||
postInstallConfirm:
|
||
'Este destino tiene un comando posterior a la instalación. Confirme que el comando es confiable antes de ejecutarlo.',
|
||
status: {
|
||
pending: 'Pendiente',
|
||
approved: 'Aprobado',
|
||
published: 'Publicado',
|
||
disabled: 'Retirado',
|
||
rejected: 'Rechazado',
|
||
},
|
||
agent: {
|
||
common: 'Común',
|
||
},
|
||
risk: {
|
||
low: 'Bajo',
|
||
medium: 'Medio',
|
||
high: 'Alto',
|
||
},
|
||
riskType: {
|
||
script_file: 'Archivo de script',
|
||
dependency_manifest: 'Declaración de dependencias',
|
||
external_url: 'URL externa',
|
||
environment_variable: 'Variable de entorno',
|
||
dockerfile: 'Dockerfile',
|
||
command_execution: 'Ejecución de comandos',
|
||
remote_script_execution: 'Ejecución de script remoto',
|
||
eval_execution: 'Ejecución dinámica',
|
||
base64_execution: 'Ejecución tras decodificar Base64',
|
||
privileged_command: 'Comando privilegiado',
|
||
dangerous_delete: 'Eliminación peligrosa',
|
||
world_writable_permission: 'Permiso de alto riesgo',
|
||
credential: 'Credencial sospechosa',
|
||
sensitive_path: 'Ruta sensible',
|
||
suspicious_download_execute: 'Descarga y ejecución sospechosa',
|
||
binary_content: 'Contenido binario',
|
||
scan_truncated: 'Escaneo truncado',
|
||
},
|
||
riskDescriptionText: {
|
||
script_file: 'Contiene archivos de script que pueden ejecutar comandos locales.',
|
||
dependency_manifest:
|
||
'Contiene declaraciones de dependencias que pueden descargar dependencias externas.',
|
||
external_url: 'Contiene URL externas. Verifique que las direcciones de salida sean confiables.',
|
||
environment_variable: 'Declara variables de entorno. Verifique su uso y valores predeterminados.',
|
||
dockerfile: 'Contiene un Dockerfile que puede definir compilación de imagen o lógica de ejecución.',
|
||
command_execution:
|
||
'Contiene llamadas relacionadas con ejecución de comandos. Verifique que sean confiables.',
|
||
remote_script_execution: 'Contiene lógica que descarga y ejecuta directamente un script remoto.',
|
||
eval_execution: 'Contiene ejecución dinámica mediante eval.',
|
||
base64_execution: 'Contiene lógica que ejecuta contenido después de decodificar Base64.',
|
||
privileged_command: 'Contiene comandos sudo de elevación de privilegios.',
|
||
dangerous_delete: 'Contiene comandos de eliminación peligrosos.',
|
||
world_writable_permission: 'Contiene cambios de permisos chmod 777.',
|
||
credential: 'Contiene posibles API Key, Token, Secret o Password.',
|
||
sensitive_path: 'Contiene acceso a directorios o archivos sensibles.',
|
||
suspicious_download_execute: 'Contiene lógica sospechosa de descarga externa o descarga y ejecución.',
|
||
binary_content: 'El archivo contiene bytes NUL y puede ocultar contenido ejecutable o binario.',
|
||
scan_truncated:
|
||
'El archivo supera el límite de escaneo. El contenido no escaneado requiere revisión manual.',
|
||
},
|
||
},
|
||
benchmark: {
|
||
title: 'Benchmark',
|
||
create: 'Crear',
|
||
launchCommand: 'Comando de inicio',
|
||
retest: 'Volver a probar',
|
||
statusRunning: 'En ejecución',
|
||
statusWaiting: 'En espera',
|
||
base: 'Información básica',
|
||
backend: 'Backend',
|
||
baseUrl: 'URL base',
|
||
endpoint: 'Endpoint',
|
||
tokenizer: 'Tokenizador',
|
||
tokenizerPlaceholder:
|
||
'Seleccione o introduzca un directorio local de tokenizador, p. ej. /opt/1panel/tokenizers/DeepSeek-V3',
|
||
runConfig: 'Configuración de ejecución',
|
||
rawResult: 'Resultado bruto',
|
||
resultMetrics: 'Métricas de resultado',
|
||
contextTokens: 'Longitud de contexto',
|
||
contextTokensHelper: 'Suma del límite de tokens de entrada y salida de este benchmark.',
|
||
outputThroughput: 'Rendimiento de salida',
|
||
outputThroughputHelper: 'Tokens de salida generados por segundo. Un valor mayor indica más velocidad.',
|
||
totalThroughput: 'Rendimiento total',
|
||
totalThroughputHelper:
|
||
'Tokens de entrada y salida procesados por segundo. Se usa para medir la capacidad general.',
|
||
firstTokenLatency: 'Latencia del primer token',
|
||
firstTokenLatencyHelper:
|
||
'Tiempo desde el envío de la solicitud hasta recibir el primer token. Un valor menor indica respuesta más rápida.',
|
||
inputTokens: 'Tokens de entrada',
|
||
outputTokens: 'Tokens de salida',
|
||
tokenValueHelper: 'Introduzca un entero positivo o valor con k, p. ej. 512, 1k, 32k',
|
||
numPrompts: 'Prompts',
|
||
concurrency: 'Concurrencia',
|
||
requestRate: 'Tasa de solicitudes',
|
||
requestRateUnlimited: 'Ilimitado (máximo rendimiento)',
|
||
requestRateCustom: 'QPS personalizado',
|
||
requestRateCustomPlaceholder: 'Solicitudes por segundo, p. ej. 2.5',
|
||
successfulRequests: 'Solicitudes correctas',
|
||
failedRequests: 'Solicitudes fallidas',
|
||
requestThroughput: 'Rendimiento de solicitudes',
|
||
ttftMean: 'TTFT promedio',
|
||
ttftMedian: 'TTFT mediana',
|
||
ttftP99: 'TTFT P99',
|
||
tpotMean: 'TPOT promedio',
|
||
tpotMedian: 'TPOT mediana',
|
||
tpotP99: 'TPOT P99',
|
||
itlMean: 'ITL promedio',
|
||
itlMedian: 'ITL mediana',
|
||
itlP99: 'ITL P99',
|
||
timeout: 'Tiempo de espera (segundos)',
|
||
image: 'Imagen vLLM',
|
||
ignoreEos: 'Ignorar EOS',
|
||
extraHeaders: 'Encabezados adicionales',
|
||
},
|
||
gpu: {
|
||
gpu: 'Monitoreo de GPU',
|
||
gpuHelper: 'El sistema no detectó comandos NVIDIA-SMI o XPU-SMI. ¡Compruebe e inténtelo de nuevo!',
|
||
process: 'Información del Proceso',
|
||
type: 'Tipo',
|
||
typeG: 'Gráficos',
|
||
typeC: 'Cómputo',
|
||
typeCG: 'Cómputo+Gráficos',
|
||
processName: 'Nombre del Proceso',
|
||
shr: 'Memoria Compartida',
|
||
temperatureHelper: 'La alta temperatura de la GPU puede causar una reducción de la frecuencia de la GPU',
|
||
gpuUtil: 'Utilización de GPU',
|
||
temperature: 'Temperatura',
|
||
performanceState: 'Estado de Rendimiento',
|
||
powerUsage: 'Consumo de Energía',
|
||
memoryUsage: 'Utilización de Memoria',
|
||
fanSpeed: 'Velocidad del Ventilador',
|
||
power: 'Energía',
|
||
powerCurrent: 'Energía Actual',
|
||
powerLimit: 'Límite de Energía',
|
||
memory: 'Memoria',
|
||
memoryUsed: 'Memoria Utilizada',
|
||
memoryTotal: 'Memoria Total',
|
||
percent: 'Utilización',
|
||
base: 'Información Básica',
|
||
driverVersion: 'Versión del Controlador',
|
||
cudaVersion: 'Versión de CUDA',
|
||
processMemoryUsage: 'Uso de Memoria',
|
||
performanceStateHelper: 'Desde P0 (rendimiento máximo) hasta P12 (rendimiento mínimo)',
|
||
busID: 'Dirección del Bus',
|
||
persistenceMode: 'Modo de Persistencia',
|
||
enabled: 'Habilitado',
|
||
disabled: 'Deshabilitado',
|
||
persistenceModeHelper:
|
||
'El modo de persistencia responde a las tareas más rápidamente, pero el consumo de energía en espera aumentará en consecuencia',
|
||
displayActive: 'Inicialización de GPU',
|
||
displayActiveT: 'Sí',
|
||
displayActiveF: 'No',
|
||
ecc: 'Tecnología de Corrección de Errores',
|
||
computeMode: 'Modo de Computación',
|
||
default: 'Predeterminado',
|
||
exclusiveProcess: 'Proceso Exclusivo',
|
||
exclusiveThread: 'Hilo Exclusivo',
|
||
prohibited: 'Prohibido',
|
||
defaultHelper: 'Predeterminado: Los procesos pueden ejecutarse concurrentemente',
|
||
exclusiveProcessHelper:
|
||
'Proceso Exclusivo: Solo un contexto CUDA puede usar la GPU, pero puede ser compartido por múltiples hilos',
|
||
exclusiveThreadHelper: 'Hilo Exclusivo: Solo un hilo en un contexto CUDA puede usar la GPU',
|
||
prohibitedHelper: 'Prohibido: No se permite la ejecución concurrente de procesos',
|
||
migModeHelper:
|
||
'Se utiliza para crear instancias MIG, implementando aislamiento físico de GPU en la capa de usuario.',
|
||
migModeNA: 'No Compatible',
|
||
current: 'Monitoreo en Tiempo Real',
|
||
history: 'Registros Históricos',
|
||
notSupport: 'La versión actual o el controlador no admiten mostrar este parámetro.',
|
||
processCount: 'Procesos',
|
||
},
|
||
mcp: {
|
||
server: 'Servidor MCP',
|
||
baseUrl: 'Ruta de acceso externa',
|
||
baseUrlHelper: 'Por ejemplo: http://192.168.1.2:8000',
|
||
ssePath: 'Ruta SSE',
|
||
ssePathHelper: 'Por ejemplo: /sse, asegúrese de que no se repita con otros servidores',
|
||
environment: 'Variables de entorno',
|
||
envKey: 'Nombre de la variable',
|
||
envValue: 'Valor de la variable',
|
||
externalUrl: 'Dirección de conexión externa',
|
||
operatorHelper: 'Se realizará la operación {1} en {0}, ¿desea continuar?',
|
||
domain: 'Dirección de acceso predeterminada',
|
||
domainHelper: 'Por ejemplo: 192.168.1.1 o ejemplo.com',
|
||
bindDomain: 'Vincular sitio web',
|
||
commandPlaceHolder: 'Actualmente solo se admiten comandos de inicio npx y binarios',
|
||
importMcpJson: 'Importar configuración del servidor MCP',
|
||
importMcpJsonError: 'La estructura de mcpServers es incorrecta',
|
||
bindDomainHelper:
|
||
'Al vincular el sitio web, se modificará la dirección de acceso de todos los servidores MCP instalados y se cerrará el acceso externo a los puertos',
|
||
outputTransport: 'Tipo de salida',
|
||
streamableHttpPath: 'Ruta de transmisión',
|
||
streamableHttpPathHelper:
|
||
'Por ejemplo: /mcp, tenga en cuenta que no debe superponerse con otros servidores',
|
||
npxHelper: 'Adecuado para mcp iniciado con npx o binario',
|
||
uvxHelper: 'Adecuado para mcp iniciado con uvx',
|
||
},
|
||
tensorRT: {
|
||
llm: 'TensorRT LLM',
|
||
modelDir: 'Directorio del Modelo',
|
||
commandHelper:
|
||
'Si se necesita acceso externo, establezca el puerto en el comando para que sea el mismo que el puerto de la aplicación',
|
||
imageAlert:
|
||
'Debido al gran tamaño de la imagen, se recomienda descargar manualmente la imagen al servidor antes de la instalación',
|
||
modelSpeedup: 'Habilitar aceleración de modelo',
|
||
modelType: 'Tipo de modelo',
|
||
},
|
||
},
|
||
container: {
|
||
createByCommand: 'Crear por comando',
|
||
importContainerBackupTip: 'Importar archivo de copia de seguridad de contenedor, solo se admite .tar.gz',
|
||
importComposeBackupTip: 'Importar archivo de copia de seguridad de compose, solo se admite .tar.gz',
|
||
stopContainerBeforeBackup: 'Detener contenedor antes de la copia de seguridad',
|
||
stopComposeBeforeBackup: 'Detener compose antes de la copia de seguridad',
|
||
stopBeforeBackupHelper:
|
||
'Al habilitarlo, se detendrá el contenedor o servicio compose antes del respaldo y se restaurará automáticamente al finalizar para garantizar la consistencia de datos.',
|
||
commandInput: 'Introducir comando',
|
||
commandRule: 'Por favor introduzca el comando correcto para crear el contenedor con docker run.',
|
||
commandHelper: 'Este comando se ejecutará en el servidor para crear el contenedor. ¿Desea continuar?',
|
||
updateHelper1:
|
||
'Se detectó que este contenedor proviene de la tienda de aplicaciones. Tenga en cuenta lo siguiente:',
|
||
updateHelper2:
|
||
'1. Las modificaciones actuales no se sincronizarán con las aplicaciones instaladas en la tienda.',
|
||
updateHelper3:
|
||
'2. Si modifica la aplicación en la página de instalados, el contenido editado actualmente quedará inválido.',
|
||
updateHelper4:
|
||
'Editar el contenedor requiere reconstruirlo y se perderán los datos no persistentes. ¿Desea continuar?',
|
||
containerList: 'Lista de contenedores',
|
||
operatorHelper: 'Se realizará {0} en el siguiente contenedor, ¿desea continuar?',
|
||
operatorAppHelper:
|
||
'La operación "{0}" se realizará en los siguientes contenedores y puede afectar los servicios en ejecución. ¿Desea continuar?',
|
||
containerDeleteHelper:
|
||
"Se detectó que el contenedor proviene de la Tienda de Aplicaciones. Eliminar el contenedor no lo eliminará completamente de 1Panel. Para eliminarlo por completo, vaya a la Tienda de Aplicaciones -> menús 'Instalado' o 'Entorno de Ejecución'. ¿Continuar?",
|
||
start: 'Iniciar',
|
||
stop: 'Detener',
|
||
restart: 'Reiniciar',
|
||
kill: 'Finalizar',
|
||
pause: 'Pausar',
|
||
unpause: 'Reanudar',
|
||
rename: 'Renombrar',
|
||
remove: 'Eliminar',
|
||
removeAll: 'Eliminar todos',
|
||
containerPrune: 'Limpiar',
|
||
containerPruneHelper1: 'Esto eliminará todos los contenedores que estén detenidos.',
|
||
containerPruneHelper2:
|
||
'Si los contenedores son de la tienda de aplicaciones, vaya a "Tienda de Aplicaciones -> Instaladas" y haga clic en "Reconstruir" para reinstalarlos después de la limpieza.',
|
||
containerPruneHelper3: 'Esta operación no se puede deshacer. ¿Desea continuar?',
|
||
imagePrune: 'Limpiar',
|
||
imagePruneSome: 'Limpiar sin etiqueta',
|
||
imagePruneSomeEmpty: 'No hay imágenes con la etiqueta "none" para limpiar.',
|
||
imagePruneSomeHelper:
|
||
'Limpia las imágenes con la etiqueta "none" que no estén siendo usadas por ningún contenedor.',
|
||
imagePruneAll: 'Limpiar no usadas',
|
||
imagePruneAllEmpty: 'No hay imágenes sin uso para limpiar.',
|
||
imagePruneAllHelper: 'Limpia las imágenes que no estén siendo usadas por ningún contenedor.',
|
||
networkPrune: 'Limpiar',
|
||
networkPruneHelper: 'Esto eliminará todas las redes no utilizadas. ¿Desea continuar?',
|
||
volumePrune: 'Limpiar',
|
||
volumePruneHelper: 'Esto eliminará todos los volúmenes locales no utilizados. ¿Desea continuar?',
|
||
cleanSuccess: 'La operación se completó correctamente, cantidad limpiada: {0}!',
|
||
cleanSuccessWithSpace:
|
||
'La operación se completó correctamente. El número de discos limpiados esta vez es {0}. El espacio liberado es {1}!',
|
||
unExposedPort: 'La dirección de mapeo del puerto actual es 127.0.0.1, lo que impide el acceso externo.',
|
||
upTime: 'Tiempo activo',
|
||
fetch: 'Obtener',
|
||
lines: 'Líneas',
|
||
linesHelper: 'Por favor introduzca el número correcto de líneas de logs a recuperar.',
|
||
downloadLinesHelper: 'Seleccione o introduzca el número de líneas de log para descargar.',
|
||
lastDay: 'Último día',
|
||
last4Hour: 'Últimas 4 horas',
|
||
lastHour: 'Última hora',
|
||
last10Min: 'Últimos 10 minutos',
|
||
cleanLog: 'Limpiar logs',
|
||
downLogHelper1: 'Esto descargará todos los logs del contenedor {0}. ¿Desea continuar?',
|
||
downLogHelper2: 'Esto descargará los últimos {0} logs del contenedor {0}. ¿Desea continuar?',
|
||
cleanLogHelper: 'Esto requerirá reiniciar el contenedor y no se puede deshacer. ¿Desea continuar?',
|
||
newName: 'Nuevo nombre',
|
||
workingDir: 'Directorio de trabajo',
|
||
composeFileMissing: 'No se detecto el archivo de Compose',
|
||
source: 'Uso de recursos',
|
||
cpuUsage: 'Uso de CPU',
|
||
cpuTotal: 'CPU total',
|
||
core: 'Núcleo',
|
||
memUsage: 'Uso de memoria',
|
||
memTotal: 'Límite de memoria',
|
||
memCache: 'Caché de memoria',
|
||
loadSize: 'Obtener Tamaño del Contenedor',
|
||
ip: 'Dirección IP',
|
||
cpuShare: 'Proporción de CPU',
|
||
cpuShareHelper:
|
||
'El motor de contenedores usa un valor base de 1024 para la proporción de CPU. Puede aumentarlo para darle al contenedor más tiempo de CPU.',
|
||
inputIpv4: 'Ejemplo: 192.168.1.1',
|
||
inputIpv6: 'Ejemplo: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
|
||
diskUsage: 'Uso del Disco',
|
||
localVolume: 'Volumen de Almacenamiento Local',
|
||
buildCache: 'Caché de Construcción',
|
||
usage: 'Usado: {0}, Liberable: {1}',
|
||
clean: 'Liberar',
|
||
imageClean:
|
||
'Limpiar imágenes eliminará todas las imágenes no utilizadas. Esta operación no se puede deshacer. ¿Continuar?',
|
||
containerClean:
|
||
'Limpiar contenedores eliminará todos los contenedores detenidos (incluidas las aplicaciones detenidas de la Tienda de Aplicaciones). Esta operación no se puede deshacer. ¿Continuar?',
|
||
sizeRw: 'Tamaño de Capa de Contenedor',
|
||
sizeRwHelper: 'Tamaño de la capa escribible exclusiva del contenedor',
|
||
sizeRootFs: 'Tamaño Virtual',
|
||
sizeRootFsHelper:
|
||
'Tamaño total de todas las capas de imagen de las que depende el contenedor + capa del contenedor',
|
||
containerFromAppHelper:
|
||
'Se detectó que este contenedor proviene de la tienda de aplicaciones. Las operaciones sobre la app pueden invalidar los cambios actuales.',
|
||
containerFromAppHelper1:
|
||
'Haga clic en el botón [Parámetros] en la lista de aplicaciones instaladas para acceder a la página de edición y modificar el nombre del contenedor.',
|
||
command: 'Comando',
|
||
console: 'Interacción con el contenedor',
|
||
tty: 'Asignar un pseudo-TTY (-t)',
|
||
openStdin: 'Mantener STDIN abierto (-i)',
|
||
custom: 'Personalizado',
|
||
emptyUser: 'Si está vacío, iniciará sesión como predeterminado',
|
||
privileged: 'Privilegiado',
|
||
privilegedHelper:
|
||
'Permite que el contenedor realice ciertas operaciones privilegiadas en el host, lo que puede aumentar los riesgos. ¡Úselo con precaución!',
|
||
upgradeHelper: 'Nombre de repositorio/imagen: versión de la imagen',
|
||
upgradeWarning2:
|
||
'La operación de actualización requiere reconstruir el contenedor, cualquier dato no persistente se perderá. ¿Desea continuar?',
|
||
oldImage: 'Imagen actual',
|
||
sameImageContainer: 'Contenedores de la misma imagen',
|
||
sameImageHelper:
|
||
'Los contenedores que usan la misma imagen pueden actualizarse en lote después de seleccionarlos',
|
||
targetImage: 'Imagen objetivo',
|
||
imageLoadErr: 'No se detectó un nombre de imagen para el contenedor',
|
||
imageUpdateTagEmpty: 'No se detectaron etiquetas de imagen actualizables',
|
||
appHelper:
|
||
'El contenedor proviene de la tienda de aplicaciones, y al actualizar podría hacer que el servicio no esté disponible.',
|
||
resource: 'Recurso',
|
||
input: 'Introducir manualmente',
|
||
forcePull: 'Siempre descargar imagen',
|
||
forcePullHelper:
|
||
'Esto ignorará las imágenes existentes en el servidor y descargará la más reciente desde el repositorio.',
|
||
imageUpdateHelper:
|
||
'Comprobar la misma etiqueta en el registro y, si hay cambios, descargar y actualizar la imagen local.',
|
||
server: 'Servidor',
|
||
serverExample: '80, 80-88, ip:80 o ip:80-88',
|
||
containerExample: '80 o 80-88',
|
||
exposePort: 'Exponer puerto',
|
||
exposeAll: 'Exponer todos',
|
||
cmdHelper: 'Ejemplo: nginx -g "daemon off;"',
|
||
entrypointHelper: 'Ejemplo: docker-entrypoint.sh',
|
||
autoRemove: 'Eliminar automáticamente',
|
||
cpuQuota: 'Cantidad de núcleos de CPU',
|
||
memoryLimit: 'Memoria',
|
||
limitHelper: 'Si se establece en 0, no hay limitación. El valor máximo es {0}',
|
||
macAddr: 'Dirección MAC',
|
||
mount: 'Montaje',
|
||
volumeOption: 'Volumen',
|
||
hostOption: 'Host',
|
||
serverPath: 'Ruta en el servidor',
|
||
containerDir: 'Ruta en el contenedor',
|
||
volumeHelper: 'Asegúrese de que el contenido del volumen de almacenamiento sea correcto',
|
||
networkEmptyHelper: 'Por favor confirme que la selección de red del contenedor es correcta',
|
||
modeRW: 'RW',
|
||
modeR: 'R',
|
||
sharedLabel: 'Modo de Propagación',
|
||
private: 'Privado',
|
||
privateHelper: 'Los cambios de montaje en el contenedor y el host no se afectan mutuamente',
|
||
rprivate: 'Privado Recursivo',
|
||
rprivateHelper: 'Todos los montajes en el contenedor están completamente aislados del host',
|
||
shared: 'Compartido',
|
||
sharedHelper: 'Los cambios de montaje en el host y el contenedor son visibles entre sí',
|
||
rshared: 'Compartido Recursivo',
|
||
rsharedHelper: 'Todos los cambios de montaje en el host y el contenedor son visibles entre sí',
|
||
slave: 'Esclavo',
|
||
slaveHelper:
|
||
'El contenedor puede ver los cambios de montaje del host, pero sus propios cambios no afectan al host',
|
||
rslave: 'Esclavo Recursivo',
|
||
rslaveHelper: 'Todos los montajes en el contenedor pueden ver los cambios del host, pero no afectan al host',
|
||
mode: 'Modo',
|
||
env: 'Entornos',
|
||
restartPolicy: 'Política de reinicio',
|
||
always: 'siempre',
|
||
unlessStopped: 'a menos que se detenga',
|
||
onFailure: 'al fallar (cinco veces por defecto)',
|
||
no: 'nunca',
|
||
refreshTime: 'Intervalo de actualización',
|
||
cache: 'Caché',
|
||
image: 'Imagen | Imágenes',
|
||
imagePull: 'Descargar',
|
||
imagePullHelper:
|
||
'Admite seleccionar múltiples imágenes para descargar, presione Enter después de ingresar cada imagen para continuar',
|
||
imagePush: 'Subir',
|
||
imagePushHelper:
|
||
'Detected that this image has multiple tags. Please confirm that the image name used for pushing is: {0}',
|
||
imageDelete: 'Eliminar imagen',
|
||
repoName: 'Repositorio de contenedores',
|
||
imageName: 'Nombre de la imagen',
|
||
pull: 'Descargar',
|
||
path: 'Ruta',
|
||
importImage: 'Importar',
|
||
buildArgs: 'Argumentos de Construcción',
|
||
imageBuild: 'Construir',
|
||
pathSelect: 'Ruta',
|
||
label: 'Etiqueta',
|
||
imageTag: 'Etiqueta de imagen',
|
||
imageTagHelper:
|
||
'Admite configurar múltiples etiquetas de imagen, presione Enter después de ingresar cada etiqueta para continuar',
|
||
push: 'Subir',
|
||
fileName: 'Nombre de archivo',
|
||
export: 'Exportar',
|
||
exportImage: 'Exportar imagen',
|
||
size: 'Tamaño',
|
||
tag: 'Etiquetas',
|
||
tagHelper: 'Una por línea. Por ejemplo,\nkey1=value1\nkey2=value2',
|
||
imageNameHelper: 'Nombre de imagen y etiqueta, por ejemplo: nginx:latest',
|
||
cleanBuildCache: 'Limpiar caché de compilación',
|
||
delBuildCacheHelper:
|
||
'Esto eliminará todos los artefactos almacenados en caché generados durante las compilaciones y no se puede deshacer. ¿Desea continuar?',
|
||
urlWarning: 'El prefijo de la URL no debe incluir http:// o https://. Por favor modifique.',
|
||
network: 'Red | Redes',
|
||
networkHelper:
|
||
'Esto puede causar que algunas aplicaciones o entornos no funcionen correctamente. ¿Desea continuar?',
|
||
networkName: 'Nombre',
|
||
driver: 'Driver',
|
||
option: 'Opción',
|
||
attachable: 'Adjuntable',
|
||
parentNetworkCard: 'Tarjeta de Red Principal',
|
||
subnet: 'Subred',
|
||
scope: 'Rango de IP',
|
||
gateway: 'Puerta de enlace',
|
||
auxAddress: 'Excluir IP',
|
||
volume: 'Volumen | Volúmenes',
|
||
volumeDir: 'Directorio de volumen',
|
||
nfsEnable: 'Habilitar almacenamiento NFS',
|
||
nfsAddress: 'Dirección',
|
||
mountpoint: 'Punto de montaje',
|
||
mountpointNFSHelper: 'ej: /nfs, /nfs-share',
|
||
options: 'Opciones',
|
||
repo: 'Repositorio | Repositorios',
|
||
httpRepoHelper: 'Operar un repositorio tipo HTTP requiere reiniciar el servicio Docker.',
|
||
httpRepo:
|
||
'Elegir el protocolo HTTP requiere reiniciar el servicio Docker para agregarlo a los registros inseguros.',
|
||
delInsecure: 'Eliminar registro inseguro',
|
||
delInsecureHelper:
|
||
'Esto reiniciará el servicio Docker para quitarlo de los registros inseguros. ¿Desea continuar?',
|
||
downloadUrl: 'Servidor',
|
||
imageRepo: 'Repositorio de imágenes',
|
||
repoHelper: '¿Incluye un repositorio/organización/proyecto mirror?',
|
||
auth: 'Requiere autenticación',
|
||
mirrorHelper:
|
||
'Si hay varios mirrors, deben estar en líneas separadas. Ejemplo:\nhttp://xxxxxx.m.daocloud.io\nhttps://xxxxxx.mirror.aliyuncs.com',
|
||
registrieHelper:
|
||
'Si existen varios repositorios privados, deben estar en líneas separadas. Ejemplo:\n172.16.10.111:8081\n172.16.10.112:8081',
|
||
compose: 'Compose | Composes',
|
||
composeFile: 'Archivo de Orquestación',
|
||
fromChangeHelper: 'Cambiar la fuente limpiará el contenido actualmente editado. ¿Desea continuar?',
|
||
composePathHelper: 'Ruta de guardado del archivo de configuración: {0}',
|
||
composeHelper:
|
||
'La composición creada mediante el editor o plantilla de 1Panel se guardará en el directorio {0}/docker/compose.',
|
||
deleteFile: 'Eliminar archivo',
|
||
deleteComposeHelper:
|
||
'Elimina todos los archivos relacionados con la composición de contenedores, incluidos los archivos de configuración y los persistentes. ¡Proceda con precaución!',
|
||
deleteCompose: '" Eliminar esta composición.',
|
||
composeDirectory: 'Directorio de compose',
|
||
template: 'Plantilla',
|
||
composeTemplate: 'Plantilla de compose | Plantillas de compose',
|
||
content: 'Contenido',
|
||
contentEmpty: 'El contenido de Compose no puede estar vacío, por favor introduzca algo y vuelva a intentarlo.',
|
||
containerNumber: 'Número de contenedores',
|
||
containerStatus: 'Estado del contenedor',
|
||
exited: 'Finalizado',
|
||
running: 'En ejecución',
|
||
composeDetailHelper:
|
||
'La composición fue creada externamente a 1Panel. Las operaciones de inicio y detención no son compatibles.',
|
||
composeOperatorHelper: 'La operación {1} se realizará en {0}. ¿Desea continuar?',
|
||
composeDownHelper:
|
||
'Esto detendrá y eliminará todos los contenedores y redes bajo la composición {0}. ¿Desea continuar?',
|
||
composeEnvHelper2:
|
||
'Esta orquestación fue creada por la Tienda de Aplicaciones 1Panel. Modifique las variables de entorno en las aplicaciones instaladas.',
|
||
composeContentPlaceholder: 'Escriba o pegue el contenido de su archivo docker-compose aquí',
|
||
setting: 'Configuración | Configuraciones',
|
||
goSetting: 'Ir a configuración',
|
||
restartHelper: 'Los cambios de configuración requieren reiniciar el servicio Docker para surtir efecto',
|
||
operatorStatusHelper: 'Esto "{0}" el servicio Docker. ¿Desea continuar?',
|
||
dockerStatus: 'Servicio Docker',
|
||
daemonJsonPathHelper:
|
||
'Asegúrese de que la ruta de configuración sea la misma que la especificada en docker.service.',
|
||
mirrors: 'Mirrors del registro',
|
||
mirrorsHelper: '',
|
||
mirrorsHelper2: 'Para más detalles, consulte la documentación oficial.',
|
||
registries: 'Registros inseguros',
|
||
ipv6Helper:
|
||
'Al habilitar IPv6, necesita agregar una red de contenedores IPv6. Consulte la documentación oficial para pasos específicos de configuración.',
|
||
ipv6CidrHelper: 'Rango de pool de direcciones IPv6 para contenedores',
|
||
ipv6TablesHelper: 'Configuración automática de reglas iptables para Docker IPv6.',
|
||
experimentalHelper:
|
||
'Para habilitar ip6tables, debe activar esta configuración; de lo contrario, se ignorará ip6tables.',
|
||
cutLog: 'Opción de logs',
|
||
cutLogHelper1: 'La configuración actual solo afectará a los contenedores nuevos.',
|
||
cutLogHelper2: 'Los contenedores existentes deben ser recreados para que la configuración surta efecto.',
|
||
cutLogHelper3:
|
||
'Tenga en cuenta que recrear los contenedores puede provocar la pérdida de datos. Si contienen información importante, realice una copia de seguridad antes de reconstruir.',
|
||
maxSize: 'Tamaño máximo',
|
||
maxFile: 'Archivo máximo',
|
||
liveHelper:
|
||
'Por defecto, cuando el demonio Docker termina, detiene los contenedores en ejecución. Puede configurar el demonio para que los contenedores sigan en ejecución si el demonio no está disponible. Esta función se llama "live restore" y ayuda a reducir el tiempo fuera de servicio por caídas, mantenimientos o actualizaciones.',
|
||
liveWithSwarmHelper: 'La configuración live-restore es incompatible con el modo swarm.',
|
||
iptablesDisable: 'Desactivar iptables',
|
||
iptablesHelper1: 'Configuración automática de reglas iptables para Docker.',
|
||
iptablesHelper2: 'Deshabilitar iptables impedirá que los contenedores se comuniquen con redes externas.',
|
||
daemonJsonPath: 'Ruta de configuración',
|
||
serviceUnavailable: 'El servicio Docker no está iniciado actualmente.',
|
||
startIn: ' para iniciar',
|
||
sockPath: 'Socket Unix',
|
||
sockPathHelper: 'Canal de comunicación entre el demonio Docker y el cliente.',
|
||
sockPathHelper1: 'Ruta predeterminada: /var/run/docker-x.sock',
|
||
sockPathMsg:
|
||
'Guardar la configuración del Socket puede dejar el servicio Docker fuera de servicio. ¿Desea continuar?',
|
||
sockPathErr: 'Por favor seleccione o introduzca la ruta correcta del archivo Docker sock',
|
||
related: 'Relacionado',
|
||
includeAppstore: 'Mostrar contenedores de la tienda',
|
||
excludeAppstore: 'Ocultar contenedores de la tienda',
|
||
cleanDockerDiskZone: 'Limpiar el espacio en disco usado por Docker',
|
||
cleanImagesHelper: '( Limpia todas las imágenes que no están siendo usadas por ningún contenedor )',
|
||
cleanContainersHelper: '( Limpia todos los contenedores detenidos )',
|
||
cleanVolumesHelper: '( Limpia todos los volúmenes locales no utilizados )',
|
||
makeImage: 'Crear imagen',
|
||
newImageName: 'Nuevo nombre de imagen',
|
||
commitMessage: 'Mensaje de commit',
|
||
author: 'Autor',
|
||
ifPause: '¿Pausar el contenedor durante la creación?',
|
||
ifMakeImageWithContainer: '¿Crear nueva imagen a partir de este contenedor?',
|
||
finishTime: 'Hora de la última detención',
|
||
exportHelper: 'Exporta las imágenes seleccionadas en un solo archivo tar.',
|
||
},
|
||
cronjob: {
|
||
importHelper:
|
||
'Las tareas programadas duplicadas se omitirán automáticamente durante la importación. Las tareas se establecerán en estado [Deshabilitado] por defecto, y en estado [Pendiente de edición] cuando la asociación de datos sea anormal.',
|
||
changeStatus: 'Cambiar estado',
|
||
disableMsg: 'Esto detendrá la ejecución automática de la tarea programada. ¿Desea continuar?',
|
||
enableMsg: 'Esto permitirá la ejecución automática de la tarea programada. ¿Desea continuar?',
|
||
taskType: 'Tipo',
|
||
nextTime: 'Próximas 5 ejecuciones',
|
||
record: 'Registros',
|
||
viewRecords: 'Ver registros',
|
||
shell: 'Shell',
|
||
stop: 'Detención Manual',
|
||
stopHelper: 'Esta operación forzará la detención de la ejecución de la tarea actual. ¿Continuar?',
|
||
log: 'Registros de respaldo',
|
||
logHelper: 'Registro del sistema de copias de seguridad',
|
||
ogHelper1: '1. Registro del sistema de 1Panel',
|
||
logHelper2: '2. Registro de inicio de sesión SSH del servidor',
|
||
logHelper3: '3. Todos los registros del sitio web',
|
||
containerCheckBox: 'En contenedor (no necesita introducir el comando del contenedor)',
|
||
containerName: 'Nombre del contenedor',
|
||
ntp: 'Sincronización horaria',
|
||
ntp_helper: 'Puede configurar el servidor NTP en la página de Configuración Rápida de la Caja de Herramientas.',
|
||
app: 'Respaldo de aplicación',
|
||
website: 'Respaldo de sitio web',
|
||
rulesHelper:
|
||
'Si hay varias reglas de exclusión de compresión, deben estar en líneas separadas. Ejemplo:\n*.log\n*.sql',
|
||
lastRecordTime: 'Hora de la última ejecución',
|
||
all: 'Todos',
|
||
failedRecord: 'Registros fallidos',
|
||
successRecord: 'Registros completados correctamente',
|
||
database: 'Respaldo de base de datos',
|
||
backupArgs: 'Argumentos de Copia de Seguridad',
|
||
backupArgsHelper:
|
||
'Los argumentos de copia de seguridad no listados pueden ser ingresados y seleccionados manualmente. Por ejemplo: Ingrese --no-data y seleccione la primera opción de la lista desplegable.',
|
||
singleTransaction:
|
||
'Copia de seguridad de tablas InnoDB utilizando una única transacción, adecuada para copias de seguridad de datos de gran volumen',
|
||
quick: 'Lee datos fila por fila en lugar de cargar la tabla completa en memoria, adecuado para copias de seguridad de datos de gran volumen y máquinas con poca memoria',
|
||
skipLockTables:
|
||
'Copia de seguridad sin bloquear todas las tablas, adecuada para bases de datos altamente concurrentes',
|
||
missBackupAccount: 'No se pudo encontrar la cuenta de respaldo',
|
||
syncDate: 'Hora de sincronización',
|
||
clean: 'Limpiar caché',
|
||
curl: 'Acceder a URL',
|
||
taskName: 'Nombre',
|
||
cronSpec: 'Ciclo de ejecución',
|
||
cronSpecDoc:
|
||
'Los ciclos de ejecución personalizados solo admiten el formato [minuto hora día mes semana], por ejemplo, 0 0 * * *. Para más detalles, consulte la documentación oficial.',
|
||
cronSpecHelper: 'Introduzca el periodo de ejecución correcto',
|
||
cleanHelper:
|
||
'Esta operación registra todos los registros de ejecución de tareas, archivos de respaldo y archivos de registro. ¿Desea continuar?',
|
||
backupContent: 'Contenido de respaldo',
|
||
directory: 'Directorio de respaldo',
|
||
sourceDir: 'Directorio de respaldo',
|
||
snapshot: 'Instantánea del sistema',
|
||
allOptionHelper:
|
||
'El plan actual es respaldar todos los [{0}]. La descarga directa no está soportada por ahora. Puede consultar la lista de respaldos en el menú [{0}].',
|
||
exclusionRules: 'Reglas de exclusión',
|
||
exclusionRulesHelper:
|
||
'Seleccione o ingrese reglas de exclusión, presione Enter después de cada conjunto para continuar. Las reglas de exclusión se aplicarán a todas las operaciones de compresión en esta copia de seguridad',
|
||
default_download_path: 'Enlace de descarga predeterminado',
|
||
saveLocal: 'Retener respaldos locales (igual al número de copias en la nube)',
|
||
url: 'Dirección URL',
|
||
urlHelper: 'Por favor ingrese una dirección URL válida',
|
||
targetHelper: 'Las cuentas de respaldo se gestionan en los ajustes del panel.',
|
||
withImageHelper:
|
||
'Respalda imágenes de la tienda de aplicaciones, pero esto aumentará el tamaño del archivo de la instantánea.',
|
||
ignoreApp: 'Excluir aplicaciones',
|
||
withImage: 'Copia de Seguridad de la Imagen de la Aplicación',
|
||
retainCopies: 'Retener registros',
|
||
retryTimes: 'Intentos de reintento',
|
||
timeout: 'Tiempo de espera',
|
||
ignoreErr: 'Ignorar errores',
|
||
ignoreErrHelper: 'Ignora los errores durante el respaldo para asegurar que todas las tareas se completen',
|
||
retryTimesHelper: '0 significa que no habrá reintentos tras un fallo',
|
||
retainCopiesHelper: 'Número de copias a retener para registros y logs de ejecución',
|
||
retainCopiesHelper1: 'Número de copias a retener para los archivos de respaldo',
|
||
retainCopiesUnit: ' copias (Ver)',
|
||
cronSpecRule:
|
||
'El formato del periodo de ejecución en la línea {0} es incorrecto. ¡Por favor verifique e intente nuevamente!',
|
||
cronSpecRule2: 'El formato del periodo de ejecución es incorrecto, por favor verifique e intente nuevamente.',
|
||
perMonthHelper: 'Ejecutar el día {0} de cada mes a las {1}:{2}',
|
||
perWeekHelper: 'Ejecutar cada semana el {0} a las {1}:{2}',
|
||
perDayHelper: 'Ejecutar todos los días a las {0}:{1}',
|
||
perHourHelper: 'Ejecutar cada hora en el minuto {0}',
|
||
perNDayHelper: 'Ejecutar cada {0} días a las {1}:{2}',
|
||
perNHourHelper: 'Ejecutar cada {0} horas en el minuto {1}',
|
||
perNMinuteHelper: 'Ejecutar cada {0} minutos',
|
||
perNSecondHelper: 'Ejecutar cada {0} segundos',
|
||
perMonth: 'Cada mes',
|
||
perWeek: 'Cada semana',
|
||
perHour: 'Cada hora',
|
||
perNDay: 'Cada N días',
|
||
perDay: 'Cada día',
|
||
perNHour: 'Cada N horas',
|
||
perNMinute: 'Cada N minutos',
|
||
perNSecond: 'Cada N segundos',
|
||
day: 'día(s)',
|
||
monday: 'Lunes',
|
||
tuesday: 'Martes',
|
||
wednesday: 'Miércoles',
|
||
thursday: 'Jueves',
|
||
friday: 'Viernes',
|
||
saturday: 'Sábado',
|
||
sunday: 'Domingo',
|
||
shellContent: 'Script',
|
||
executor: 'Ejecutor',
|
||
errRecord: 'Registro incorrecto',
|
||
errHandle: 'Fallo en la ejecución de la tarea programada',
|
||
noRecord: 'Al activar la tarea programada, verá aquí los registros.',
|
||
cleanData: 'Limpiar datos',
|
||
cleanRemoteData: 'Eliminar datos remotos',
|
||
cleanDataHelper: 'Elimina el archivo de respaldo generado por esta tarea.',
|
||
noLogs: 'Aún no hay salida de tareas...',
|
||
errPath: '¡Error en la ruta de respaldo [{0}], no se puede descargar!',
|
||
cutWebsiteLog: 'Rotación de logs del sitio',
|
||
cutWebsiteLogHelper: 'Los archivos de log rotados se respaldarán en el directorio de respaldos de 1Panel.',
|
||
syncIpGroup: 'Sincronizar grupos de IP de WAF',
|
||
requestExpirationTime: 'Tiempo de expiración de solicitud de subida (Horas)',
|
||
unitHours: 'Unidad: Horas',
|
||
alertTitle: 'Tarea programada - {0} 「{1}」 Alerta de fallo',
|
||
library: {
|
||
script: 'Script',
|
||
syncNow: 'Sincronizar Ahora',
|
||
turnOnSync: 'Activar Sincronización Automática',
|
||
turnOnSyncHelper:
|
||
'Activar la sincronización automática realizará sincronizaciones automáticas durante las primeras horas de la madrugada diariamente',
|
||
turnOffSync: 'Desactivar Sincronización Automática',
|
||
turnOffSyncHelper:
|
||
'Desactivar la sincronización automática puede causar retrasos en la sincronización de scripts, ¿confirmar?',
|
||
isInteractive: 'Interactivo',
|
||
interactive: 'Script interactivo',
|
||
interactiveHelper:
|
||
'Requiere introducir datos durante la ejecución y no puede ser usada en tareas programadas.',
|
||
remoteLibrary: 'Biblioteca de Scripts Remota',
|
||
library: 'Librería de scripts',
|
||
create: 'Agregar script',
|
||
edit: 'Editar script',
|
||
groupHelper:
|
||
'Establezca diferentes grupos según las características de los scripts, esto facilita el filtrado.',
|
||
handleHelper: 'Ejecutar el script {1} en {0}, ¿desea continuar?',
|
||
noSuchApp: 'No se detectó el servicio {0}. ¡Por favor instálelo desde la librería de scripts!',
|
||
syncHelper:
|
||
'Se va a sincronizar la librería de scripts del sistema. Solo afecta a los scripts del sistema. ¿Desea continuar?',
|
||
},
|
||
logHelper1: '1. Registro del sistema de 1Panel',
|
||
cleanLog: 'Limpieza automática de logs',
|
||
cleanLogscope: 'Retención de logs',
|
||
},
|
||
monitor: {
|
||
globalFilter: 'Filtro Global',
|
||
enableMonitor: 'Estado de Monitoreo',
|
||
storeDays: 'Días de Retención',
|
||
defaultNetwork: 'Tarjeta de Red Predeterminada',
|
||
defaultNetworkHelper:
|
||
'Opción de tarjeta de red predeterminada mostrada en las interfaces de monitoreo y resumen',
|
||
defaultIO: 'Disco Predeterminado',
|
||
defaultIOHelper: 'Opción de disco predeterminada mostrada en las interfaces de monitoreo y resumen',
|
||
cleanMonitor: 'Limpiar Registros de Monitoreo',
|
||
cleanHelper: 'Esta operación borrará todos los registros de monitoreo, incluidos los de GPU. ¿Continuar?',
|
||
avgLoad: 'Carga promedio',
|
||
loadDetail: 'Detalle de carga',
|
||
resourceUsage: 'Utilización',
|
||
networkCard: 'Interfaz de red',
|
||
read: 'Lectura',
|
||
write: 'Escritura',
|
||
readWriteCount: 'Operaciones de E/S',
|
||
readWriteTime: 'Latencia de E/S',
|
||
today: 'Hoy',
|
||
yesterday: 'Ayer',
|
||
lastNDay: 'Últimos {0} días',
|
||
lastNMonth: 'Últimos {0} meses',
|
||
lastHalfYear: 'Último semestre',
|
||
memory: 'Memoria',
|
||
percent: 'Porcentaje',
|
||
cache: 'Caché',
|
||
disk: 'Disco',
|
||
network: 'Red',
|
||
up: 'Subida',
|
||
down: 'Bajada',
|
||
interval: 'Intervalo de Recolección',
|
||
intervalHelper: 'Ingrese un intervalo de recolección de monitoreo apropiado (10 segundos - 12 horas)',
|
||
},
|
||
terminal: {
|
||
local: 'Local',
|
||
defaultConn: 'Conexión predeterminada',
|
||
defaultConnHelper:
|
||
'Esta operación conectará automáticamente al terminal del nodo después de abrir el terminal para 【{0}】. ¿Continuar?',
|
||
withReset: 'Restablecer Información de Conexión',
|
||
localConnJump:
|
||
'La información de conexión predeterminada se mantiene en [Terminal - Configuración]. Si la conexión falla, ¡edite allí!',
|
||
nodeAdminLocalOnly: 'Los administradores de nodo solo pueden usar terminal local.',
|
||
localHelper: 'El nombre `local` se utiliza solo para identificación interna del sistema',
|
||
connLocalErr:
|
||
'No se puede autenticar automáticamente, por favor introduzca la información de inicio de sesión del servidor local.',
|
||
testConn: 'Probar conexión',
|
||
saveAndConn: 'Guardar y conectar',
|
||
connTestOk: 'La información de conexión es válida',
|
||
connTestFailed: 'Conexión no disponible, por favor revise la información de conexión.',
|
||
host: 'Host | Hosts',
|
||
createConn: 'Nueva conexión',
|
||
noHost: 'Sin host',
|
||
groupChange: 'Cambiar grupo',
|
||
expand: 'Expandir todo',
|
||
fold: 'Contraer todo',
|
||
batchInput: 'Procesamiento por lotes',
|
||
quickCommand: 'Comando rápido | Comandos rápidos',
|
||
noSuchCommand:
|
||
'No se encontraron datos de comandos rápidos en el archivo CSV importado, ¡compruebe e inténtelo de nuevo!',
|
||
quickCommandHelper: 'Puede usar comandos rápidos en la parte inferior de "Terminales -> Terminales".',
|
||
groupDeleteHelper:
|
||
'Después de eliminar el grupo, todas las conexiones pasarán al grupo predeterminado. ¿Desea continuar?',
|
||
quickCommandBatchHelper:
|
||
'Un comando rápido por línea, usando el formato Nombre---Comando, por ejemplo: Ver disco---df -h',
|
||
command: 'Comando',
|
||
quickCmd: 'Comando rápido',
|
||
addHost: 'Agregar',
|
||
localhost: 'Localhost',
|
||
ip: 'Dirección',
|
||
authMode: 'Autenticación',
|
||
passwordMode: 'Contraseña',
|
||
rememberPassword: 'Recordar autenticación',
|
||
keyMode: 'Clave privada',
|
||
key: 'Clave privada',
|
||
keyPassword: 'Contraseña de la clave privada',
|
||
emptyTerminal: 'No hay ninguna terminal conectada actualmente.',
|
||
lineHeight: 'Altura de línea',
|
||
letterSpacing: 'Espaciado de letras',
|
||
fontSize: 'Tamaño de fuente',
|
||
fontFamily: 'Conjunto de fuentes',
|
||
fontFamilySupportHelper:
|
||
'Seleccione o introduzca fuentes. El efecto depende de si el sistema del navegador tiene instalada la fuente; si no, se usará una de respaldo. Si queda vacío, se usará la fuente predeterminada.',
|
||
backgroundColor: 'Color de fondo',
|
||
foregroundColor: 'Color de primer plano',
|
||
cursorBlink: 'Parpadeo del cursor',
|
||
cursorStyle: 'Estilo de cursor',
|
||
cursorUnderline: 'Subrayado',
|
||
cursorBlock: 'Bloque',
|
||
cursorBar: 'Barra',
|
||
scrollback: 'Scrollback',
|
||
scrollSensitivity: 'Sensibilidad de scroll',
|
||
aiAssistant: 'Asistente de IA',
|
||
aiAccountHelper:
|
||
'Use la cuenta de modelo seleccionada para generar y rellenar comandos. Para modelos locales como Ollama y vLLM, use una cuenta de modelo personalizada.',
|
||
aiPrefix: 'Prefijo de activación',
|
||
aiPrefixHelper:
|
||
'Introduzca "prefijo + espacio" y pulse Enter para activar la generación de comandos por IA; por ejemplo: {0} ayúdame a consultar la información del disco.',
|
||
aiRiskCommands: 'Intercepción de comandos de riesgo',
|
||
aiRiskCommandsHelper:
|
||
'Configure los comandos de riesgo que se deben interceptar, uno por línea. Si coinciden, se bloqueará la generación y se devolverán como comentarios.',
|
||
aiSummary:
|
||
'Cuando una línea comienza con el prefijo {0} y pulsa Enter, se activa la generación de comandos por IA.',
|
||
aiPrefixAsciiVisible:
|
||
'Solo se admiten caracteres ASCII visibles. No se permiten espacios, caracteres CJK ni símbolos de ancho completo.',
|
||
saveHelper: '¿Está seguro de que desea guardar la configuración actual de la terminal?',
|
||
},
|
||
toolbox: {
|
||
common: {
|
||
toolboxHelper: 'Para dudas de instalación y uso, consulte',
|
||
},
|
||
swap: {
|
||
swap: 'Partición Swap',
|
||
swapHelper1: 'El tamaño de swap debe ser de 1 a 2 veces la memoria física, ajustable según necesidades.',
|
||
swapHelper2:
|
||
'Antes de crear un archivo swap, asegúrese de que el disco tenga espacio suficiente, ya que el archivo ocupará ese espacio.',
|
||
swapHelper3:
|
||
'El swap ayuda a aliviar la presión de memoria, pero es solo un suplemento. Un uso excesivo puede afectar el rendimiento. Se recomienda aumentar memoria o optimizar el uso.',
|
||
swapHelper4: 'Se recomienda monitorear regularmente el uso de swap para asegurar el funcionamiento normal.',
|
||
swapDeleteHelper:
|
||
'Esta operación eliminará la partición Swap {0}. Por seguridad, el archivo no se borrará automáticamente. Si requiere borrarlo, hágalo manualmente.',
|
||
saveHelper: '¡Por favor guarde primero la configuración!',
|
||
saveSwap: 'Guardar la configuración ajustará la partición Swap {0} a {1}. ¿Desea continuar?',
|
||
swapMin: 'El tamaño mínimo es de 40 KB. ¡Por favor modifique y vuelva a intentar!',
|
||
swapMax: 'El tamaño máximo es {0}. ¡Por favor modifique y vuelva a intentar!',
|
||
swapOff: 'El tamaño mínimo es de 40 KB. Si lo pone en 0, desactivará la partición Swap.',
|
||
},
|
||
device: {
|
||
dnsHelper: 'Servidor DNS',
|
||
dnsAlert: '¡Atención! Modificar el archivo /etc/resolv.conf lo restaurará tras reiniciar el sistema.',
|
||
dnsHelper1: 'Si hay varios DNS, deben ir en líneas nuevas. Ejemplo:\n114.114.114.114\n8.8.8.8',
|
||
hostsHelper: 'Resolución de host',
|
||
hosts: 'Dominio',
|
||
hostAlert: 'Registros comentados ocultos, haga clic en Configuración completa para verlos o modificarlos.',
|
||
toolbox: 'Configuraciones rápidas',
|
||
hostname: 'Nombre del host',
|
||
passwd: 'Contraseña del sistema',
|
||
passwdHelper: 'Los caracteres no pueden incluir $ y &',
|
||
timeZone: 'Zona horaria del sistema',
|
||
localTime: 'Hora del servidor',
|
||
timeZoneChangeHelper: 'Cambiar la zona horaria requiere reiniciar el servicio. ¿Continuar?',
|
||
timeZoneHelper:
|
||
'Si no tiene instalado "timedatectl", no podrá cambiar la zona horaria porque el sistema lo usa.',
|
||
timeZoneCN: 'Beijing',
|
||
timeZoneAM: 'Los Ángeles',
|
||
timeZoneNY: 'Nueva York',
|
||
ntpALi: 'Alibaba',
|
||
ntpGoogle: 'Google',
|
||
syncSite: 'Servidor NTP',
|
||
hostnameHelper: 'El cambio de nombre depende de "hostnamectl". Si no está instalado, podría fallar.',
|
||
userHelper: 'El nombre de usuario depende de "whoami". Si no está instalado, podría fallar.',
|
||
passwordHelper: 'El cambio de contraseña depende de "chpasswd". Si no está instalado, podría fallar.',
|
||
hostHelper: 'Hay un valor vacío en el contenido. Por favor, revise y modifique.',
|
||
dnsCheck: 'Probar disponibilidad',
|
||
dnsOK: '¡La configuración DNS es válida!',
|
||
dnsTestFailed: 'La configuración DNS no es válida.',
|
||
syncSiteHelper: '¿Sincronizar la hora del sistema con {0}?',
|
||
},
|
||
fail2ban: {
|
||
sshPort: 'Puerto SSH',
|
||
sshPortHelper: 'Fail2ban escucha el puerto SSH del host',
|
||
unActive: 'El servicio Fail2ban no está habilitado actualmente.',
|
||
operation: 'Va a realizar la operación "{0}" en Fail2ban. ¿Desea continuar?',
|
||
fail2banChange: 'Modificación de configuración de Fail2ban',
|
||
ignoreHelper: 'La lista de IPs permitidas será ignorada para el bloqueo. ¿Desea continuar?',
|
||
bannedHelper: 'La lista de IPs bloqueadas será bloqueada por el servidor. ¿Desea continuar?',
|
||
maxRetry: 'Intentos máximos',
|
||
banTime: 'Tiempo de bloqueo',
|
||
banTimeHelper: 'El tiempo por defecto es 10 minutos, -1 es bloqueo permanente',
|
||
banTimeRule: 'Por favor, introduzca un tiempo válido o -1',
|
||
banAllTime: 'Bloqueo permanente',
|
||
findTime: 'Periodo de detección',
|
||
banAction: 'Acción de bloqueo',
|
||
banActionOption: 'Bloquear las IP especificadas usando {0}',
|
||
allPorts: ' (Todos los puertos)',
|
||
ignoreIP: 'Lista blanca de IP',
|
||
bannedIP: 'Lista negra de IP',
|
||
logPath: 'Ruta del log',
|
||
logPathHelper: 'Por defecto /var/log/secure o /var/log/auth.log',
|
||
},
|
||
ftp: {
|
||
ftp: 'Cuenta FTP | Cuentas FTP',
|
||
notStart: 'El servicio FTP no está iniciado, ¡inícielo primero!',
|
||
operation: 'Se realizará la operación "{0}" en el servicio FTP. ¿Desea continuar?',
|
||
noPasswdMsg: 'No se pudo obtener la contraseña actual de la cuenta FTP, ¡asigne una y vuelva a intentar!',
|
||
enableHelper: 'Habilitar la cuenta FTP restaurará los permisos de acceso. ¿Desea continuar?',
|
||
disableHelper: 'Deshabilitar la cuenta FTP revocará los permisos de acceso. ¿Desea continuar?',
|
||
syncHelper: 'Sincronizar datos de cuentas FTP entre servidor y base de datos. ¿Desea continuar?',
|
||
dirSystem:
|
||
'Este directorio es reservado por el sistema. Modificarlo podría causar errores. ¡Modifíquelo con cuidado!',
|
||
dirHelper: 'Habilitar FTP requiere cambios en los permisos de directorio - elija cuidadosamente',
|
||
dirMsg: 'Habilitar FTP modificará los permisos de todo el directorio {0}. ¿Desea continuar?',
|
||
},
|
||
clam: {
|
||
clam: 'Escaneo de virus',
|
||
cron: 'Escaneo programado',
|
||
cronHelper: 'La edición comercial admite escaneos programados',
|
||
specErr: 'Formato de horario incorrecto, ¡verifique e intente nuevamente!',
|
||
disableMsg:
|
||
'Detener la ejecución programada impedirá que esta tarea se ejecute automáticamente. ¿Desea continuar?',
|
||
enableMsg:
|
||
'Habilitar la ejecución programada permitirá que esta tarea se ejecute automáticamente. ¿Desea continuar?',
|
||
showFresh: 'Mostrar servicio de actualización de firmas',
|
||
hideFresh: 'Ocultar servicio de actualización de firmas',
|
||
clamHelper:
|
||
'La configuración recomendada para ClamAV es: al menos 3 GiB de RAM, CPU de un núcleo a 2.0 GHz o más, y al menos 5 GiB de disco disponible.',
|
||
notStart: 'El servicio ClamAV no está iniciado, ¡inícielo primero!',
|
||
removeRecord: 'Eliminar archivos de informe',
|
||
noRecords: 'Haga clic en "Ejecutar" para iniciar el escaneo y aquí verá los registros.',
|
||
removeInfected: 'Eliminar archivos infectados',
|
||
removeInfectedHelper:
|
||
'Elimina los archivos infectados detectados durante la tarea para asegurar el servidor.',
|
||
clamCreate: 'Crear regla de escaneo',
|
||
infectedStrategy: 'Estrategia para infectados',
|
||
removeHelper: 'Eliminar archivos infectados, ¡elija cuidadosamente!',
|
||
move: 'Mover',
|
||
moveHelper: 'Mover archivos infectados a un directorio específico',
|
||
copyHelper: 'Copiar archivos infectados a un directorio específico',
|
||
none: 'No hacer nada',
|
||
noneHelper: 'No realizar acciones sobre los archivos infectados',
|
||
scanDir: 'Directorio a escanear',
|
||
infectedDir: 'Directorio de infectados',
|
||
scanDate: 'Fecha de escaneo',
|
||
scanResult: 'Cola de logs de escaneo',
|
||
tail: 'Líneas',
|
||
infectedFiles: 'Archivos infectados',
|
||
log: 'Detalles',
|
||
clamConf: 'Clam AV daemon',
|
||
clamLog: '@:toolbox.clam.clamConf logs',
|
||
freshClam: 'FreshClam',
|
||
freshClamLog: '@:toolbox.clam.freshClam logs',
|
||
alertHelper: 'La edición comercial admite escaneos programados y alertas por SMS',
|
||
alertTitle: 'La tarea de escaneo de virus 「{0}」 detectó archivos infectados',
|
||
},
|
||
},
|
||
logs: {
|
||
core: 'Servicio del panel',
|
||
agent: 'Monitoreo de nodo',
|
||
panelLog: 'Logs del panel',
|
||
operation: 'Logs de operación',
|
||
login: 'Logs de acceso',
|
||
loginIP: 'IP de acceso',
|
||
loginAddress: 'Dirección de acceso',
|
||
loginAgent: 'Agente de acceso',
|
||
loginStatus: 'Estado',
|
||
system: 'Logs del sistema',
|
||
deleteLogs: 'Limpiar logs',
|
||
resource: 'Recurso',
|
||
detail: {
|
||
dashboard: 'Resumen general',
|
||
ai: 'IA',
|
||
groups: 'Grupo',
|
||
hosts: 'Host',
|
||
apps: 'Aplicación',
|
||
openresty: 'OpenResty',
|
||
websites: 'Sitio web',
|
||
containers: 'Contenedor',
|
||
files: 'Archivo',
|
||
runtimes: 'Runtime',
|
||
process: 'Proceso',
|
||
toolbox: 'Caja de herramientas',
|
||
backups: 'Respaldo / Restaurar',
|
||
tampers: 'Antimanipulación',
|
||
xsetting: 'Configuración de interfaz',
|
||
logs: 'Log',
|
||
settings: 'Configuración',
|
||
cronjobs: 'Tarea programada',
|
||
databases: 'Base de datos',
|
||
waf: 'WAF',
|
||
licenses: 'Licencia',
|
||
nodes: 'Nodo',
|
||
commands: 'Comandos rápidos',
|
||
opsReport: 'Informe de operaciones',
|
||
},
|
||
websiteLog: 'Logs de sitio web',
|
||
runLog: 'Logs de ejecución',
|
||
errLog: 'Logs de errores',
|
||
task: 'Log de tareas',
|
||
taskName: 'Nombre de la tarea',
|
||
taskRunning: 'En ejecución',
|
||
},
|
||
file: {
|
||
fileDirNum: '{0} directorios, {1} archivos,',
|
||
currentDir: 'Directorio',
|
||
dir: 'Carpeta',
|
||
fileName: 'Nombre del archivo',
|
||
search: 'Buscar',
|
||
mode: 'Permisos',
|
||
editPermissions: 'Editar permisos',
|
||
owner: 'Propietario',
|
||
file: 'Archivo',
|
||
remoteFile: 'Descargar de remoto',
|
||
share: 'Compartir',
|
||
sync: 'Sincronización de datos',
|
||
size: 'Tamaño',
|
||
updateTime: 'Modificado',
|
||
rename: 'Renombrar',
|
||
role: 'Permisos',
|
||
info: 'Ver atributos',
|
||
linkFile: 'Enlace simbólico',
|
||
shareList: 'Lista de compartidos',
|
||
fileTools: 'Herramientas de archivos',
|
||
aiSearchHitLines: 'Líneas coincidentes',
|
||
aiSearch: 'Búsqueda con IA',
|
||
aiSearchTitle: 'Búsqueda con IA',
|
||
aiSearchHint:
|
||
'Busca el contenido del archivo línea por línea. Usa los botones a la derecha de la fila de búsqueda y las "Condiciones avanzadas" debajo. Cuando la cuenta de IA esté activada y guardada, también se podrá generar un resumen en Markdown.',
|
||
aiSearchAccountTitle: 'Cuenta de IA',
|
||
aiSearchAccountIntro: 'Elige una cuenta de modelo grande para generar resúmenes y guarda los cambios.',
|
||
aiSearchAccountEnable: 'Activar búsqueda de IA en archivos',
|
||
aiSearchSaveAccount: 'Guardar configuración de la cuenta',
|
||
aiSearchSectionQuery: 'Búsqueda',
|
||
aiSearchSectionConditions: 'Condiciones de búsqueda',
|
||
aiSearchResultsSection: 'Resultados del análisis',
|
||
aiSearchContentLabel: 'Contenido de búsqueda',
|
||
aiSearchDirLabel: 'Directorio',
|
||
aiSearchExtLabel: 'Extensión del archivo',
|
||
aiSearchModifiedPreset: 'Hora de modificación',
|
||
aiSearchSizePresetLabel: 'Tamaño del archivo',
|
||
aiSearchTimeAny: 'Cualquier momento',
|
||
aiSearchTime3h: 'Últimas 3 horas',
|
||
aiSearchTime1d: 'Último 1 día',
|
||
aiSearchTime7d: 'Últimos 7 días',
|
||
aiSearchTime30d: 'Últimos 30 días',
|
||
aiSearchTimeCustom: 'Personalizado',
|
||
aiSearchSizeAny: 'Sin límite de tamaño',
|
||
aiSearchSize0_10mb: '0 ~ 10 MB',
|
||
aiSearchSize10_100mb: '10 MB ~ 100 MB',
|
||
aiSearchSize100_1gb: '100 MB ~ 1 GB',
|
||
aiSearchSizeGte1gb: '≥ 1 GB',
|
||
aiSearchSizeCustom: 'Personalizado (bytes)',
|
||
aiSearchPlaceholder: 'Introduce el contenido de la búsqueda',
|
||
aiSearchContainSub: 'Incluir subdirectorios',
|
||
aiSearchMaxItems: 'Límite de rutas/archivos incluidos en la búsqueda (enumeración de directorio, 1–2000)',
|
||
aiSearchRun: 'Iniciar análisis',
|
||
aiSearchTruncated: 'Hay demasiados elementos del directorio; solo se incluyó parte de la lista.',
|
||
aiSearchPreFiltered: 'Las rutas relativas se filtraron previamente por palabra clave.',
|
||
aiSearchMeta: 'Elementos analizados: {0} | Duración {1} | Tokens {2}',
|
||
aiSearchQueryRequired: 'Introduce una descripción de búsqueda o palabras clave',
|
||
aiSearchContentHits: 'Coincidencias de contenido',
|
||
aiSearchContentScanMeta: 'Análisis de contenido: se leyeron {0} archivos de texto.',
|
||
aiSearchNoLineHits: 'No se encontraron líneas que coincidan en los archivos de texto analizados.',
|
||
aiSearchHitsTruncated: 'Algunos archivos no se analizaron o la lista de coincidencias se truncó por límites.',
|
||
aiSearchHitFiles: 'Archivos con coincidencias',
|
||
aiSearchOpenFile: 'Abrir en el editor',
|
||
aiSearchOpenAtLine: 'Abrir e ir a esta línea',
|
||
aiSearchGrepOnlyHint:
|
||
'La IA de archivos está desactivada: solo se ejecuta la búsqueda determinista de contenido, sin llamar al modelo. Activa y guarda la cuenta de IA arriba para obtener resúmenes. La fila de búsqueda y las opciones de abajo siguen aplicando.',
|
||
aiSearchMatchCase: 'Distinguir mayúsculas y minúsculas',
|
||
aiSearchWholeWord: 'Palabra completa (límites de palabra en inglés \\b)',
|
||
aiSearchUseRegex: 'Expresión regular (sintaxis Go RE2)',
|
||
aiSearchExtensions: 'Extensiones de archivo (separadas por comas, p. ej. go,ts,md)',
|
||
aiSearchMinSize: 'Tamaño mínimo del archivo (bytes, 0 = sin límite)',
|
||
aiSearchMaxSize: 'Tamaño máximo del archivo (bytes, 0 = sin límite)',
|
||
aiSearchSectionAdvanced: 'Condiciones avanzadas',
|
||
aiSearchLimitMaxItems: 'Total de archivos a buscar',
|
||
aiSearchLimitMaxScan: 'Archivos para escanear contenido',
|
||
aiSearchLimitMaxBytes: 'Límite de lectura por archivo',
|
||
aiSearchLimitHitsPerFile: 'Líneas coincidentes por archivo',
|
||
aiSearchLimitTotalHits: 'Total de líneas coincidentes',
|
||
aiSearchLimitUnitEntries: 'elementos',
|
||
aiSearchLimitUnitFiles: 'archivos',
|
||
aiSearchLimitUnitBytes: 'B',
|
||
aiSearchLimitUnitLines: 'líneas',
|
||
aiSearchMaxScanFiles: 'Máximo de archivos para escanear contenido',
|
||
aiSearchMaxFileBytes:
|
||
'Máximo de bytes leídos de cada archivo durante el escaneo de contenido. A diferencia del filtro de tamaño anterior (el tamaño en disco decide si entra en la lista), este limita cuánto se lee realmente para la coincidencia.',
|
||
aiSearchMaxHitsPerFile: 'Máximo de líneas coincidentes por archivo',
|
||
aiSearchMaxTotalHits: 'Límite total de líneas coincidentes',
|
||
aiSearchGrepMetaContent:
|
||
'Escaneo de contenido: {0} elementos totales, {1} archivos de texto leídos (según las condiciones actuales; se aplican límites de tamaño/cantidad). Duración {2}',
|
||
aiSearchAdvancedResetDefaults: 'Restablecer límites predeterminados',
|
||
zip: 'Comprimido',
|
||
group: 'Grupo',
|
||
path: 'Ruta',
|
||
public: 'Otros',
|
||
setRole: 'Asignar permisos',
|
||
link: 'Enlace de archivo',
|
||
rRole: 'Lectura',
|
||
wRole: 'Escritura',
|
||
xRole: 'Ejecutable',
|
||
name: 'Nombre',
|
||
compress: 'Comprimir',
|
||
deCompress: 'Descomprimir',
|
||
compressType: 'Formato de compresión',
|
||
compressDst: 'Ruta de compresión',
|
||
replace: 'Sobrescribir archivos existentes',
|
||
compressSuccess: 'Compresión completada correctamente',
|
||
deCompressSuccess: 'Descompresión completada correctamente',
|
||
deCompressDst: 'Ruta de descompresión',
|
||
linkType: 'Tipo de enlace',
|
||
softLink: 'Enlace simbólico',
|
||
hardLink: 'Enlace físico',
|
||
linkPath: 'Ruta del enlace',
|
||
selectFile: 'Seleccionar archivo',
|
||
downloadUrl: 'URL remota',
|
||
downloadStart: 'Descarga iniciada',
|
||
wgetUrlInvalid: 'Introduzca una URL de descarga http(s) válida',
|
||
moveSuccess: 'Movido correctamente',
|
||
copySuccess: 'Copiado correctamente',
|
||
pasteMsg: 'Por favor haz clic en el botón [Pegar] en la parte superior derecha del directorio de destino',
|
||
move: 'Mover',
|
||
calculate: 'Calcular',
|
||
remark: 'Observación',
|
||
setRemark: 'Establecer observación',
|
||
remarkPrompt: 'Ingrese una observación',
|
||
remarkPlaceholder: 'Observación',
|
||
remarkToggle: 'Notas',
|
||
remarkToggleTip: 'Cargar notas del archivo',
|
||
canNotDeCompress: 'No se puede descomprimir este archivo',
|
||
uploadSuccess: 'Carga completada correctamente',
|
||
downloadProcess: 'Progreso de descarga',
|
||
downloading: 'Descargando...',
|
||
infoDetail: 'Propiedades del archivo',
|
||
root: 'Directorio raíz',
|
||
list: 'Lista de archivos',
|
||
sub: 'Incluir subdirectorios',
|
||
downloadSuccess: 'Descarga completada correctamente',
|
||
theme: 'Tema',
|
||
language: 'Idioma',
|
||
eol: 'Fin de línea',
|
||
history: 'Historial de versiones',
|
||
historyTitle: 'Historial de versiones',
|
||
historyHint:
|
||
'Registra la versión anterior a cada cambio de archivo, lo que permite revisar el historial de cambios de contenido y revertir versiones de contenido.',
|
||
historySettingTitle: 'Política de versiones',
|
||
historyEnable: 'Habilitar historial de versiones',
|
||
historyMaxPerPath: 'Conservar por archivo',
|
||
historyDiskQuota: 'Cuota global de disco (MB)',
|
||
historyCurrentScope: 'Archivo actual',
|
||
historyAllScope: 'Todos los archivos',
|
||
historyDeleteConfirm: '¿Está seguro de que desea eliminar los registros de historial seleccionados?',
|
||
historyNeedFile: 'Abra un archivo primero',
|
||
historyRestore: 'Restaurar esta versión',
|
||
historyOperationOnlyHint:
|
||
'El elemento seleccionado es una operación de archivo y no admite restauración de versiones.',
|
||
historyCurrentFile: 'Archivo actual',
|
||
historyLatestVersion:
|
||
'El lado izquierdo muestra el contenido de la versión histórica y el lado derecho muestra la última versión ' +
|
||
'del archivo seleccionado',
|
||
historyCompareTarget: 'Destino de comparación',
|
||
historyCompareTargetPath: 'Ruta de comparación',
|
||
historyRestoreConfirm: '¿Restaurar esta versión al archivo actual?',
|
||
historyRestoreDirtyConfirm:
|
||
'El archivo actual tiene cambios sin guardar. Al restaurar se sobrescribirán. ¿Continuar?',
|
||
historyRestoreSuccess: 'Versión restaurada correctamente',
|
||
historyDirtyHint: 'El editor actual tiene cambios sin guardar. Al restaurar una versión se sobrescribirán.',
|
||
historyDiffHintCurrent:
|
||
'El lado izquierdo muestra el contenido de la versión histórica y el lado derecho muestra el contenido ' +
|
||
'del archivo actual',
|
||
historyDiffHintAll:
|
||
'El lado izquierdo muestra el contenido de la versión histórica y el lado derecho muestra la última ' +
|
||
'versión del archivo seleccionado',
|
||
copyDir: 'Copiar',
|
||
shareFile: 'Compartir archivo',
|
||
shareExpire: 'Expires in',
|
||
shareExpire1h: '1 hour',
|
||
shareExpire6h: '6 hours',
|
||
shareExpire24h: '24 hours',
|
||
shareExpire3d: '3 days',
|
||
shareExpire7d: '7 days',
|
||
sharePassword: 'Password',
|
||
sharePasswordPlaceholder: 'Leave empty for no password',
|
||
shareMaxDownloads: 'Max downloads',
|
||
shareMaxDownloadsHint: '0 means unlimited',
|
||
shareGenerate: 'Create link',
|
||
shareRegenerate: 'Share again',
|
||
shareClose: 'Close',
|
||
shareCancel: 'Cancelar uso compartido',
|
||
shareCancelConfirm: '¿Seguro que quieres cancelar este uso compartido de archivo?',
|
||
shareDetail: 'Details',
|
||
shareCopyLink: 'Copy link',
|
||
shareLinkLabel: 'Share link',
|
||
shareQrCode: 'QR code',
|
||
shareQrDialogTitle: 'Share link QR code',
|
||
shareQrDialogHelper: 'Scan this QR code with your mobile device',
|
||
shareSaveImage: 'Save image',
|
||
shareOpenImage: 'Open image',
|
||
shareExtractFile: 'Extract file',
|
||
shareDownloadingHint: 'Preparing your file, download will begin shortly.',
|
||
shareInvalid: 'Invalid or expired share link',
|
||
shareDownloadFailed: 'Download failed, please try again later',
|
||
sharePasswordRequired: 'Password',
|
||
sharePasswordRequiredInput: 'Please enter the share password',
|
||
sharePasswordLengthHint: 'Share password length must be 4-256 characters',
|
||
shareDownloadPasswordTip: 'This link is password-protected. Enter the password before downloading.',
|
||
shareRiskAlert:
|
||
'Shared links may carry security risks. Only share with trusted people and avoid exposing sensitive information.',
|
||
sharePasswordSeparate:
|
||
'A password is set. Share it securely. Recipients must add &password=... to the URL or use a client that can pass the password query parameter.',
|
||
shareExpiresAt: 'Expires at',
|
||
paste: 'Pegar',
|
||
changeOwner: 'Modificar usuario y grupo',
|
||
containSub: 'Aplicar cambio de permisos recursivamente',
|
||
ownerHelper:
|
||
'El usuario predeterminado del entorno PHP: el grupo es 1000:1000, es normal que haya diferencias entre usuario dentro y fuera del contenedor',
|
||
searchHelper: 'Soporta comodines como *',
|
||
uploadFailed: '[{0}] Fallo en la carga del archivo',
|
||
fileUploadStart: 'Cargando [{0}]...',
|
||
uploadOverallProgress: 'Progreso total',
|
||
uploadCurrentFileProgress: 'Archivo actual',
|
||
currentSelect: 'Selección actual: ',
|
||
unsupportedType: 'Tipo de archivo no soportado',
|
||
deleteHelper: '¿Está seguro de eliminar los siguientes archivos? Por defecto irán a la papelera de reciclaje.',
|
||
fileHelper:
|
||
'Nota:\n1. Los resultados de búsqueda no pueden ordenarse.\n2. Las carpetas no pueden ordenarse por tamaño.',
|
||
forceDeleteHelper: 'Eliminar permanentemente el archivo (sin pasar por la papelera, lo elimina directamente)',
|
||
recycleBin: 'Papelera',
|
||
sourcePath: 'Ruta original',
|
||
deleteTime: 'Hora de eliminación',
|
||
confirmReduce: '¿Desea restaurar los siguientes archivos?',
|
||
reduceSuccess: 'Restauración completada correctamente',
|
||
reduce: 'Restaurar',
|
||
reduceHelper:
|
||
'Si hay un archivo o directorio con el mismo nombre en la ruta original, será sobrescrito. ¿Desea continuar?',
|
||
clearRecycleBin: 'Vaciar',
|
||
clearRecycleBinHelper: '¿Desea vaciar la papelera?',
|
||
favorite: 'Favoritos',
|
||
removeFavorite: '¿Eliminar de favoritos?',
|
||
addFavorite: 'Agregar/Quitar de favoritos',
|
||
addFavoriteAction: 'Agregar a favoritos',
|
||
removeFavoriteAction: 'Quitar de favoritos',
|
||
clearList: 'Limpiar lista',
|
||
deleteRecycleHelper: '¿Está seguro de eliminar permanentemente los siguientes archivos?',
|
||
typeErrOrEmpty: 'El archivo [{0}] es de tipo incorrecto o carpeta vacía',
|
||
dropHelper: 'Arrastre aquí los archivos que desea cargar',
|
||
fileRecycleBin: 'Habilitar papelera de reciclaje',
|
||
fileRecycleBinMsg: '{0} papelera',
|
||
wordWrap: 'Ajuste de línea',
|
||
deleteHelper2: '¿Está seguro de eliminar el archivo seleccionado? No se puede deshacer.',
|
||
ignoreCertificate: 'Permitir conexiones inseguras',
|
||
ignoreCertificateHelper:
|
||
'Permitir conexiones inseguras puede provocar fugas o alteraciones de datos. Úselo solo si confía en la fuente.',
|
||
uploadOverLimit: '¡El número de archivos supera los 1000! Por favor, comprima y cargue',
|
||
clashDidNotSupport: 'Los nombres de archivo no pueden contener .1panel_clash',
|
||
clashDeleteAlert: 'No se puede eliminar la carpeta "Papelera"',
|
||
clashOpenAlert: 'Haga clic en "Papelera" para abrir la carpeta de papelera',
|
||
right: 'Adelante',
|
||
back: 'Atrás',
|
||
top: 'Volver arriba',
|
||
up: 'Subir',
|
||
openWithVscode: 'Abrir con VS Code',
|
||
vscodeHelper:
|
||
'Confirme el modo de autenticación, el host, el puerto y el usuario. La autenticación con clave requiere configurar SSH en el equipo donde se ejecuta VS Code antes de usarla.',
|
||
vscodeCopyConfig: 'Copiar script de configuración',
|
||
vscodeKeyHelper:
|
||
'El nombre de descarga de la clave privada se deriva de la ruta configurada. Guarde el archivo en esa ruta; el script de configuración lo verificará y aplicará permisos.',
|
||
vscodeKeyPath: 'Ruta de la clave privada SSH',
|
||
vscodeKeyPathPlaceholder: 'Por ejemplo: ~/.ssh/id_ed25519',
|
||
vscodeSelectKey: 'Clave privada SSH',
|
||
vscodeScriptPreview: 'Script de configuración SSH',
|
||
vscodePasswordHelper:
|
||
'La autenticación por contraseña no escribe en la configuración SSH local. Introduzca la contraseña en VS Code al conectarse al host remoto.',
|
||
vscodePasswordHint:
|
||
'La autenticación por contraseña conecta con el host, puerto y usuario configurados. No requiere script de configuración ni archivo de clave privada.',
|
||
vscodeScriptPreviewHint:
|
||
'Ejecute el script de configuración en el equipo donde se ejecuta VS Code para registrar el alias SSH de conexión remota. Vuelva a ejecutarlo si cambia el host, puerto, usuario, clave privada o ruta de la clave.',
|
||
vscodePasswordModeTitle: 'Autenticación por contraseña',
|
||
vscodePasswordModeHint:
|
||
'La autenticación por contraseña conecta con el host, puerto y usuario configurados. No requiere script de configuración ni archivo de clave privada.',
|
||
vscodePasswordStep1: 'Confirme el host, el puerto y el usuario.',
|
||
vscodePasswordStep2: 'Abra VS Code e introduzca la contraseña cuando se le solicite.',
|
||
vscodePasswordStep3: 'No es necesario descargar la clave privada.',
|
||
saveContentAndClose: 'El archivo se ha modificado, ¿desea guardar y cerrar?',
|
||
saveAndOpenNewFile: 'El archivo se ha modificado, ¿desea guardar y abrir el nuevo archivo?',
|
||
noEdit: 'El archivo no ha sido modificado, ¡no es necesario hacer esto!',
|
||
noNameFolder: 'Carpeta sin nombre',
|
||
noNameFile: 'Archivo sin nombre',
|
||
minimap: 'Mapa de código',
|
||
fileCanNotRead: 'No se puede leer el archivo',
|
||
previewTruncated: 'El archivo es demasiado grande, solo se muestra la última parte',
|
||
previewEmpty: 'El archivo está vacío o no es un archivo de texto',
|
||
previewLargeFile: 'Vista previa',
|
||
panelInstallDir: 'El directorio de instalación de 1Panel no puede eliminarse',
|
||
wgetTask: 'Tarea de descarga',
|
||
stopWgetConfirm: '¿Confirmar que desea detener esta tarea de descarga?',
|
||
existFileTitle: 'Archivo con el mismo nombre',
|
||
existFileHelper: 'El archivo cargado contiene un archivo con el mismo nombre, ¿desea sobrescribirlo?',
|
||
existFileSize: 'Tamaño del archivo (nuevo -> viejo)',
|
||
existFileDirHelper: 'El archivo o carpeta seleccionado tiene nombre duplicado. ¡Proceda con precaución!\n',
|
||
coverDirHelper: '¡Las carpetas seleccionadas para reemplazo se copiarán en la ruta de destino!',
|
||
noSuchFile: 'No se encontró el archivo o directorio. Por favor verifique e intente de nuevo.',
|
||
setting: 'Configuración',
|
||
showHide: 'Mostrar archivos ocultos',
|
||
noShowHide: 'No mostrar archivos ocultos',
|
||
cancelUpload: 'Cancelar carga',
|
||
cancelUploadHelper: 'Indica si se cancela la carga; después de la cancelación, la lista de cargas se borrará.',
|
||
keepOneTab: 'Mantener al menos una pestaña',
|
||
notCanTab: 'No se pueden añadir más pestañas',
|
||
convert: 'Convertir Formato',
|
||
converting: 'Convirtiendo',
|
||
fileCanNotConvert: 'Este archivo no admite conversión de formato',
|
||
formatType: 'Tipo de Formato',
|
||
sourceFormat: 'Formato de Origen',
|
||
sourceFile: 'Archivo de Origen',
|
||
saveDir: 'Directorio de Guardado',
|
||
deleteSourceFile: 'Eliminar Archivo de Origen',
|
||
convertHelper: 'Convertir los archivos seleccionados a otro formato',
|
||
convertHelper1: 'Por favor, seleccione los archivos a convertir',
|
||
execConvert: 'Iniciar conversión. Puede ver los registros de conversión en el Centro de Tareas',
|
||
convertLogs: 'Registros de Conversión',
|
||
formatConvert: 'Conversión de Formato',
|
||
},
|
||
ssh: {
|
||
autoStart: 'Inicio automático',
|
||
enable: 'Habilitar inicio automático',
|
||
disable: 'Deshabilitar inicio automático',
|
||
sshAlert:
|
||
'La lista se ordena por fecha de inicio de sesión. Cambiar la zona horaria u otras operaciones pueden afectar las fechas.',
|
||
sshAlert2:
|
||
'Puede usar "Fail2ban" en "Caja de Herramientas" para bloquear IPs que intentan ataques de fuerza bruta y así mejorar la seguridad.',
|
||
sshOperate: 'Se realizará la operación "{0}" en el servicio SSH. ¿Desea continuar?',
|
||
sshChange: 'Configuración SSH',
|
||
sshChangeHelper: 'Esta acción cambió "{0}" a "{1}". ¿Desea continuar?',
|
||
sshFileChangeHelper:
|
||
'Modificar el archivo de configuración puede afectar la disponibilidad del servicio. Ejecute esta acción con precaución. ¿Desea continuar?',
|
||
port: 'Puerto',
|
||
portHelper: 'Especifique el puerto en el que escucha el servicio SSH.',
|
||
listenAddress: 'Dirección de escucha',
|
||
allV4V6: '0.0.0.0:{0}(IPv4) y :::{0}(IPv6)',
|
||
listenHelper: 'Si deja ambos campos en blanco, escuchará en "0.0.0.0:{0}(IPv4)" y ":::{0}(IPv6)".',
|
||
addressHelper: 'Especifique la dirección en la que escucha el servicio SSH.',
|
||
permitRootLogin: 'Permitir inicio de sesión root',
|
||
rootSettingHelper: 'El método predeterminado para root es "Permitir inicio de sesión SSH".',
|
||
rootHelper1: 'Permitir inicio SSH',
|
||
rootHelper2: 'Deshabilitar inicio SSH',
|
||
rootHelper3: 'Solo clave permitida',
|
||
rootHelper4: 'Solo se pueden ejecutar comandos predefinidos. No se permite ninguna otra operación.',
|
||
passwordAuthentication: 'Autenticación por contraseña',
|
||
pwdAuthHelper: 'Si habilitar o no la autenticación por contraseña. Por defecto está activada.',
|
||
pubkeyAuthentication: 'Autenticación por clave',
|
||
privateKey: 'Clave privada',
|
||
publicKey: 'Clave pública',
|
||
password: 'Contraseña',
|
||
createMode: 'Método de creación',
|
||
generate: 'Autogenerar',
|
||
unSyncPass: 'La contraseña de la clave no se puede sincronizar',
|
||
syncHelper:
|
||
'La operación de sincronización limpiará las claves inválidas y sincronizará nuevos pares de claves completos. ¿Desea continuar?',
|
||
input: 'Entrada manual',
|
||
import: 'Subir archivo',
|
||
authKeys: 'Claves de Autorización',
|
||
authKeysHelper: '¿Guardar información actual de clave pública?',
|
||
pubkey: 'Información de clave',
|
||
pubKeyHelper: 'La información de la clave actual solo tiene efecto para el usuario {0}',
|
||
encryptionMode: 'Modo de cifrado',
|
||
passwordHelper: 'Puede contener entre 6 y 10 dígitos y letras en inglés',
|
||
reGenerate: 'Regenerar clave',
|
||
keyAuthHelper: 'Indica si se habilita la autenticación por clave.',
|
||
useDNS: 'useDNS',
|
||
dnsHelper:
|
||
'Controla si la función de resolución DNS está habilitada en el servidor SSH para verificar la identidad de la conexión.',
|
||
confFileOrderHelper:
|
||
'Use el desplegable para cambiar de archivo de configuración y editar/guardar; se aplica por orden de carga y prevalece el valor cargado antes.',
|
||
confFileOrderLabel: '{0} (Orden de carga #{1})',
|
||
analysis: 'Información estadística',
|
||
denyHelper:
|
||
"Se realizará una operación de 'denegar' sobre las siguientes direcciones. Tras la configuración, la IP quedará prohibida de acceder al servidor. ¿Desea continuar?",
|
||
acceptHelper:
|
||
"Se realizará una operación de 'aceptar' sobre las siguientes direcciones. Tras la configuración, la IP recuperará el acceso normal. ¿Desea continuar?",
|
||
noAddrWarning:
|
||
'Actualmente no se han seleccionado direcciones [{0}]. ¡Por favor verifique e inténtelo de nuevo!',
|
||
loginLogs: 'Registros de SSH',
|
||
loginMode: 'Modo',
|
||
authenticating: 'Clave',
|
||
publickey: 'Clave',
|
||
belong: 'Pertenece',
|
||
local: 'Local',
|
||
session: 'Sesión | Sesiones',
|
||
loginTime: 'Hora de inicio de sesión',
|
||
loginIP: 'IP de inicio de sesión',
|
||
stopSSHWarn: 'Indica si se debe desconectar esta conexión SSH',
|
||
remote: 'SSH remoto',
|
||
},
|
||
setting: {
|
||
panel: 'Panel',
|
||
user: 'Usuario del panel',
|
||
userChange: 'Cambiar usuario del panel',
|
||
userChangeHelper: 'Cambiar el usuario del panel cerrará tu sesión. ¿Deseas continuar?',
|
||
passwd: 'Contraseña del panel',
|
||
emailHelper: 'Para recuperación de contraseña',
|
||
watermark: 'Configuración de marca de agua',
|
||
watermarkContent: 'Contenido de la marca de agua',
|
||
contentHelper:
|
||
'{0} representa el nombre del nodo, {1} representa la dirección del nodo. Puede usar variables o ingresar nombres personalizados.',
|
||
watermarkColor: 'Color de la marca de agua',
|
||
watermarkFont: 'Tamaño de fuente de la marca de agua',
|
||
watermarkHeight: 'Altura de la marca de agua',
|
||
watermarkWidth: 'Anchura de la marca de agua',
|
||
watermarkRotate: 'Ángulo de rotación',
|
||
watermarkGap: 'Espaciado',
|
||
watermarkCloseHelper: '¿Seguro que deseas desactivar la configuración de marca de agua del sistema?',
|
||
watermarkOpenHelper: '¿Seguro que deseas guardar la configuración actual de marca de agua del sistema?',
|
||
title: 'Alias del panel',
|
||
panelPort: 'Puerto del panel',
|
||
titleHelper:
|
||
'Admite de 3 a 30 caracteres, incluyendo letras, números, espacios y caracteres especiales comunes',
|
||
portHelper:
|
||
'El rango recomendado de puertos es de 8888 a 65535. Nota: si el servidor tiene un grupo de seguridad, permite el nuevo puerto en el grupo de seguridad previamente',
|
||
portChange: 'Cambio de puerto',
|
||
portChangeHelper: 'Modificará el puerto del servicio y reiniciará el servicio. ¿Deseas continuar?',
|
||
theme: 'Tema',
|
||
menuTabs: 'Pestañas de menú',
|
||
dark: 'Oscuro',
|
||
darkGold: 'Dorado oscuro',
|
||
light: 'Claro',
|
||
auto: 'Seguir sistema',
|
||
language: 'Idioma',
|
||
runtimeEnv: 'Entorno de ejecución',
|
||
offlineEnv: 'Entorno sin conexión',
|
||
offlineEnvHelper:
|
||
'Después de habilitarlo, recursos como la Tienda de aplicaciones se leerán de forma predeterminada desde el directorio local del servidor.\nLas actualizaciones del sistema y de agentes requieren paquetes sin conexión descargados manualmente.',
|
||
offlineEnvOpenHelper: '¿Seguro que quieres habilitar el entorno sin conexión?',
|
||
offlineEnvCloseHelper: '¿Seguro que quieres deshabilitar el entorno sin conexión?',
|
||
docSource: 'Fuente de documentación',
|
||
withByRegion: 'Seguir región de operación (Predeterminado)',
|
||
withByLang: 'Seguir idioma del sistema',
|
||
region: 'Región de operación',
|
||
cn: 'China continental',
|
||
intl: 'Global',
|
||
regionHelper: 'Al cambiar la región, se ajustarán las siguientes fuentes de recursos:',
|
||
regionHelper1: 'Paquetes de instalación del sistema',
|
||
regionHelper2: 'Tienda de aplicaciones y biblioteca de scripts',
|
||
regionHelper3: 'Manual de usuario y documentación relacionada',
|
||
regionHelper4: 'Esto puede afectar futuras descargas y accesos. Proceda con precaución.',
|
||
regionTip:
|
||
'La región de operación afecta la fuente de actualización del sistema y la dirección de descarga de paquetes de instalación.',
|
||
docSourceTip:
|
||
'La fuente de documentación determina el idioma de los enlaces de documentación y registro de actualizaciones.',
|
||
languageHelper:
|
||
'Por defecto sigue el idioma del navegador. Este parámetro solo tiene efecto en el navegador actual',
|
||
sessionTimeout: 'Tiempo de espera de sesión',
|
||
sessionTimeoutError: 'El tiempo mínimo de espera de sesión es de 300 segundos',
|
||
sessionTimeoutHelper:
|
||
'El panel cerrará la sesión automáticamente si no hay actividad durante más de {0} segundo(s).',
|
||
systemIP: 'Dirección del sistema',
|
||
systemIPHelper:
|
||
'La dirección se utilizará para la redirección de aplicaciones, el acceso a contenedores y otras funciones. Cada nodo puede configurarse con una dirección diferente.',
|
||
proxy: 'Proxy del servidor',
|
||
proxyHelper: 'Tendrá efecto en los siguientes escenarios después de configurar el servidor proxy:',
|
||
proxyHelper1:
|
||
'Descarga de paquetes de instalación y sincronización de la tienda de aplicaciones (solo edición comercial)',
|
||
proxyHelper2: 'Actualización del sistema y comprobación de actualizaciones (solo edición comercial)',
|
||
proxyHelper3: 'Verificación y sincronización de licencias del sistema',
|
||
proxyHelper4:
|
||
'Las solicitudes de red, como la descarga de imágenes de Docker, pasarán por el servidor proxy (solo edición comercial)',
|
||
proxyHelper5: 'Descarga y sincronización unificadas de bibliotecas de scripts del sistema (función comercial)',
|
||
proxyHelper6: 'Solicitud de certificado (función comercial)',
|
||
proxyType: 'Tipo de proxy',
|
||
proxyUrl: 'Dirección del proxy',
|
||
proxyPort: 'Puerto del proxy',
|
||
proxyPasswdKeep: 'Recordar contraseña',
|
||
proxyDocker: 'Proxy de Docker',
|
||
proxyDockerHelper:
|
||
'Sincroniza la configuración del servidor proxy con Docker, admite la extracción de imágenes en servidores offline y otras operaciones',
|
||
syncToNode: 'Sincronizar con nodo',
|
||
syncToNodeHelper: 'Sincroniza la configuración con otros nodos',
|
||
nodes: 'Nodo',
|
||
selectNode: 'Seleccionar nodo',
|
||
selectNodeError: 'Por favor selecciona un nodo',
|
||
apiInterface: 'Habilitar API',
|
||
apiInterfaceClose: 'Una vez cerrado, no se podrá acceder a las interfaces de API. ¿Deseas continuar?',
|
||
apiInterfaceHelper: 'Permite que aplicaciones de terceros accedan a la API.',
|
||
apiInterfaceAlert1:
|
||
'No lo habilites en entornos de producción ya que puede aumentar riesgos de seguridad en el servidor.',
|
||
apiInterfaceAlert2:
|
||
'No uses aplicaciones de terceros para llamar a la API y evitar posibles amenazas de seguridad.',
|
||
apiInterfaceAlert3: 'Documentación de la API',
|
||
apiInterfaceAlert4: 'Guía de uso',
|
||
apiKey: 'Clave de API',
|
||
apiKeyHelper: 'La clave API se utiliza para que aplicaciones de terceros accedan a la API.',
|
||
ipWhiteList: 'Lista blanca de IP',
|
||
ipWhiteListEgs: 'Una por línea. Por ejemplo,\n172.161.10.111\n172.161.10.0/24',
|
||
ipWhiteListHelper:
|
||
'Las IP en la lista blanca pueden acceder a la API, 0.0.0.0/0 (todas IPv4), ::/0 (todas IPv6)',
|
||
apiKeyValidityTime: 'Periodo de validez de la clave de interfaz',
|
||
apiKeyValidityTimeEgs: 'Periodo de validez de la clave de interfaz (en minutos)',
|
||
apiKeyValidityTimeHelper:
|
||
'La marca de tiempo de la interfaz es válida si la diferencia con la actual (en minutos) está dentro del rango permitido. Un valor 0 desactiva la verificación.',
|
||
apiKeyReset: 'Restablecer clave de interfaz',
|
||
apiKeyResetHelper:
|
||
'El servicio asociado con la clave quedará inválido. Por favor añade una nueva clave al servicio',
|
||
confDockerProxy: 'Configurar proxy de Docker',
|
||
restartNowHelper: 'Configurar el proxy de Docker requiere reiniciar el servicio de Docker.',
|
||
restartNow: 'Reiniciar ahora',
|
||
restartLater: 'Reiniciar manualmente después',
|
||
systemIPWarning: 'La dirección del servidor no está configurada. Configúrala primero en el panel de control.',
|
||
systemIPWarning1:
|
||
'La dirección del servidor actual está configurada en {0}, ¡y la redirección rápida no es posible!',
|
||
syncTime: 'Hora del servidor',
|
||
timeZone: 'Zona horaria',
|
||
timeZoneChangeHelper: 'Cambiar la zona horaria requiere reiniciar el servicio. ¿Deseas continuar?',
|
||
timeZoneHelper:
|
||
'La modificación de zona horaria depende del servicio system timedatectl. Tomará efecto después de reiniciar el servicio 1Panel.',
|
||
timeZoneCN: 'Pekín',
|
||
timeZoneAM: 'Los Ángeles',
|
||
timeZoneNY: 'Nueva York',
|
||
ntpALi: 'Alibaba',
|
||
ntpGoogle: 'Google',
|
||
syncSite: 'Servidor NTP',
|
||
syncSiteHelper:
|
||
'Esta operación usará {0} como fuente para la sincronización horaria del sistema. ¿Deseas continuar?',
|
||
changePassword: 'Cambiar contraseña',
|
||
oldPassword: 'Contraseña original',
|
||
newPassword: 'Nueva contraseña',
|
||
retryPassword: 'Confirmar contraseña',
|
||
passwordEmptyTip: 'Déjalo vacío para no modificar la contraseña actual',
|
||
noSpace: 'La información ingresada no puede incluir espacios',
|
||
duplicatePassword: 'La nueva contraseña no puede ser igual a la original, por favor vuelve a introducirla',
|
||
diskClean: 'Limpieza de caché',
|
||
developerMode: 'Programa de vista previa',
|
||
developerModeHelper:
|
||
'Podrás experimentar nuevas funciones y correcciones antes de su lanzamiento general y dar retroalimentación anticipada.',
|
||
thirdParty: 'Cuentas de terceros',
|
||
scope: 'Ámbito',
|
||
public: 'Pública',
|
||
publicHelper:
|
||
'Las cuentas de respaldo de tipo público se sincronizarán en cada subnodo, y estos podrán usarlas conjuntamente',
|
||
private: 'Privada',
|
||
privateHelper:
|
||
'Las cuentas de respaldo de tipo privado solo se crean en el nodo actual y son para uso exclusivo de este nodo',
|
||
noTypeForCreate: 'Actualmente no se ha creado ningún tipo de respaldo',
|
||
LOCAL: 'Disco del servidor',
|
||
OSS: 'Ali OSS',
|
||
S3: 'Amazon S3',
|
||
mode: 'Modo',
|
||
MINIO: 'MinIO',
|
||
SFTP: 'SFTP',
|
||
WebDAV: 'WebDAV',
|
||
WebDAVAlist: 'La conexión WebDAV a Alist puede consultarse en la documentación oficial',
|
||
UPYUN: 'UPYUN',
|
||
ALIYUN: 'Aliyun Drive',
|
||
ALIYUNHelper:
|
||
'El límite máximo actual para descargas sin cliente en Aliyun Drive es de 100 MB. Superarlo requiere descargar mediante el cliente.',
|
||
ALIYUNRecover:
|
||
'El límite máximo actual para descargas sin cliente en Aliyun Drive es de 100 MB. Superarlo requiere descargar mediante el cliente al dispositivo local y luego sincronizar la instantánea para la recuperación.',
|
||
GoogleDrive: 'Google Drive',
|
||
analysis: 'Análisis',
|
||
analysisHelper:
|
||
'Pega el contenido completo del token para analizar automáticamente las partes requeridas. Para operaciones específicas, consulta la documentación oficial.',
|
||
serviceName: 'Nombre del servicio',
|
||
operator: 'Operador',
|
||
OneDrive: 'Microsoft OneDrive',
|
||
isCN: 'Versión Century Internet',
|
||
isNotCN: 'Versión internacional',
|
||
client_id: 'ID de cliente',
|
||
client_secret: 'Secreto de cliente',
|
||
redirect_uri: 'URL de redirección',
|
||
onedrive_helper: 'La configuración personalizada puede consultarse en la documentación oficial',
|
||
clickToRefresh: 'Haz clic para refrescar',
|
||
refreshTime: 'Tiempo de actualización del token',
|
||
refreshStatus: 'Estado de actualización del token',
|
||
backupDir: 'Directorio de respaldo',
|
||
codeWarning: 'El formato del código de autorización es incorrecto, ¡por favor confírmalo de nuevo!',
|
||
code: 'Código de autorización',
|
||
codeHelper:
|
||
'Haz clic en el botón "Obtener", luego inicia sesión en {0} y copia el contenido después de "code" en el enlace redirigido. Pégalo en este campo. Para instrucciones específicas, consulta la documentación oficial.',
|
||
googleHelper:
|
||
'Primero crea una aplicación de Google y obtén la información del cliente, completa el formulario y haz clic en obtener. Para operaciones específicas, consulta la documentación oficial.',
|
||
loadCode: 'Obtener',
|
||
COS: 'Tencent COS',
|
||
ap_beijing_1: 'Zona 1 Pekín',
|
||
ap_beijing: 'Pekín',
|
||
ap_nanjing: 'Nankín',
|
||
ap_shanghai: 'Shanghái',
|
||
ap_guangzhou: 'Cantón',
|
||
ap_chengdu: 'Chengdú',
|
||
ap_chongqing: 'Chongqing',
|
||
ap_shenzhen_fsi: 'Shenzhen Financiero',
|
||
ap_shanghai_fsi: 'Shanghái Financiero',
|
||
ap_beijing_fsi: 'Pekín Financiero',
|
||
ap_hongkong: 'Hong Kong, China',
|
||
ap_singapore: 'Singapur',
|
||
ap_mumbai: 'Bombay',
|
||
ap_jakarta: 'Yakarta',
|
||
ap_seoul: 'Seúl',
|
||
ap_bangkok: 'Bangkok',
|
||
ap_tokyo: 'Tokio',
|
||
na_siliconvalley: 'Silicon Valley (EE. UU. Oeste)',
|
||
na_ashburn: 'Ashburn (EE. UU. Este)',
|
||
na_toronto: 'Toronto',
|
||
sa_saopaulo: 'São Paulo',
|
||
eu_frankfurt: 'Fráncfort',
|
||
KODO: 'Qiniu Kodo',
|
||
scType: 'Tipo de almacenamiento',
|
||
typeStandard: 'Estándar',
|
||
typeStandard_IA: 'Estándar_IA',
|
||
typeArchive: 'Archivo',
|
||
typeDeep_Archive: 'Archivo profundo',
|
||
scLighthouse: 'Por defecto, el almacenamiento ligero de objetos solo admite este tipo de almacenamiento',
|
||
scStandard:
|
||
'Almacenamiento estándar, adecuado para escenarios con grandes volúmenes de archivos de acceso frecuente y alta interacción de datos.',
|
||
scStandard_IA:
|
||
'Almacenamiento de acceso infrecuente, adecuado para escenarios con baja frecuencia de acceso (ej., 1-2 veces por mes), con duración mínima de 30 días.',
|
||
scArchive: 'Almacenamiento de archivo, adecuado para escenarios con frecuencia de acceso extremadamente baja.',
|
||
scDeep_Archive:
|
||
'Almacenamiento en frío duradero, adecuado para escenarios con frecuencia de acceso extremadamente baja.',
|
||
archiveHelper:
|
||
'Los archivos de almacenamiento de archivo no pueden descargarse directamente, deben restaurarse primero desde la web del proveedor de la nube correspondiente. ¡Úsalo con precaución!',
|
||
backupAlert:
|
||
'Si un proveedor de nube es compatible con el protocolo S3, puedes usar Amazon S3 directamente para el respaldo. ',
|
||
domain: 'Dominio de aceleración',
|
||
backupAccount: 'Cuenta de respaldo | Cuentas de respaldo',
|
||
loadBucket: 'Obtener bucket',
|
||
accountName: 'Nombre de la cuenta',
|
||
accountKey: 'Clave de la cuenta',
|
||
address: 'Dirección',
|
||
path: 'Ruta',
|
||
safe: 'Seguridad',
|
||
passkey: 'Passkey',
|
||
passkeyManage: 'Administrar',
|
||
passkeyKeyManagement: 'Gestión de claves',
|
||
passkeyHelper: 'Para inicio rápido, se pueden vincular hasta 5 passkeys',
|
||
passkeyRequireSSL: 'Los passkeys requieren un dominio vinculado y acceso por HTTPS',
|
||
passkeyTrustedProxies: 'Proxies confiables',
|
||
passkeyTrustedProxiesHelper:
|
||
'Solo las solicitudes desde estas IP/CIDR confiarán en Forwarded y X-Forwarded-Proto para detectar HTTPS',
|
||
passkeyNotSupported: 'El navegador o entorno actual no admite passkeys',
|
||
passkeyPrereqTitle: 'Se requieren los siguientes requisitos previos para Passkey',
|
||
passkeyPrereqBindDomain: 'Vinculación de dominio de 1Panel configurada',
|
||
passkeyPrereqHttps: 'Acceso seguro mediante HTTPS',
|
||
passkeyPrereqBrowser: 'El entorno admite Passkey (WebAuthn + autenticador de plataforma)',
|
||
passkeyPrereqBrowserDetailWebAuthnUnavailable:
|
||
'Usa un navegador del sistema y confirma que el panel se abre por HTTPS con un dominio vinculado.',
|
||
passkeyPrereqBrowserDetailPlatformCapabilityUnavailable:
|
||
'Este entorno no puede usar autenticación del dispositivo. Prueba un navegador del sistema en una versión más nueva del SO.',
|
||
passkeyPrereqBrowserDetailNoPlatformAuthenticator:
|
||
'Activa bloqueo de pantalla / huella / reconocimiento facial / Windows Hello y vuelve a intentarlo.',
|
||
passkeyPrereqBrowserDetailDetectFailed:
|
||
'La detección falló. Recarga la página y vuelve a intentarlo, o cambia a un navegador del sistema.',
|
||
passkeyPrereqGoSetup: 'Configurar',
|
||
passkeyCount: 'Vinculadas {0}/{1}',
|
||
passkeyName: 'Nombre',
|
||
passkeyNameHelper: 'Introduce un nombre para distinguir dispositivos',
|
||
passkeyAdd: 'Agregar Passkey',
|
||
passkeyCreatedAt: 'Creado',
|
||
passkeyLastUsedAt: 'Último uso',
|
||
passkeyDeleteConfirm: 'Después de eliminar, no podrás iniciar sesión con esta passkey. ¿Continuar?',
|
||
passkeyLimit: 'Se pueden vincular hasta 5 passkeys',
|
||
passkeyFailed:
|
||
'El registro de passkey falló, por favor, asegúrate de que el certificado SSL del panel es confiable',
|
||
bindInfo: 'Información de enlace',
|
||
bindAll: 'Escuchar en todas',
|
||
bindInfoHelper:
|
||
'Cambiar la dirección o el protocolo de escucha del servicio puede causar indisponibilidad. ¿Deseas continuar?',
|
||
ipv6: 'Escuchar IPv6',
|
||
bindAddress: 'Dirección de escucha',
|
||
entrance: 'Entrada',
|
||
showEntrance: 'Mostrar alerta de deshabilitado en la página "Resumen"',
|
||
entranceHelper:
|
||
'Habilitar entrada de seguridad solo permitirá iniciar sesión en el panel mediante la entrada especificada.',
|
||
entranceError: 'Introduce un punto de entrada seguro de 5 a 116 caracteres, solo se admiten números o letras.',
|
||
entranceInputHelper: 'Déjalo en blanco para desactivar la entrada de seguridad.',
|
||
randomGenerate: 'Aleatorio',
|
||
expirationTime: 'Fecha de expiración',
|
||
unSetting: 'No configurado',
|
||
noneSetting:
|
||
'Establece el tiempo de expiración para la contraseña del panel. Tras expirar, deberás restablecer la contraseña',
|
||
expirationHelper:
|
||
'Si el tiempo de expiración de la contraseña es 0 días, la función de expiración estará desactivada',
|
||
days: 'Días de expiración de contraseña',
|
||
expiredHelper: 'La contraseña actual ha expirado. Por favor cámbiala de nuevo.',
|
||
timeoutHelper: 'La contraseña del panel expirará en {0} días. Tras expirar, deberás restablecerla',
|
||
complexity: 'Validación de complejidad',
|
||
complexityHelper:
|
||
'Tras habilitarlo, la contraseña debe tener entre 8 y 30 caracteres y contener al menos dos de estos tipos: letras, números y caracteres especiales.',
|
||
bindDomain: 'Vincular dominio',
|
||
unBindDomain: 'Desvincular dominio',
|
||
panelSSL: 'SSL del panel',
|
||
unBindDomainHelper:
|
||
'La acción de desvincular un dominio puede provocar inseguridad en el sistema. ¿Deseas continuar?',
|
||
bindDomainHelper: 'Tras vincular el dominio, solo ese dominio podrá acceder al servicio de 1Panel.',
|
||
bindDomainHelper1: 'Déjalo en blanco para desactivar la vinculación de dominio.',
|
||
bindDomainWarning:
|
||
'Tras la vinculación del dominio, se cerrará la sesión y solo se podrá acceder al servicio 1Panel mediante el dominio especificado. ¿Deseas continuar?',
|
||
allowIPs: 'IP autorizada',
|
||
unAllowIPs: 'IP no autorizada',
|
||
unAllowIPsWarning:
|
||
'Autorizar una IP vacía permitirá que todas las IP accedan al sistema, lo cual puede provocar inseguridad. ¿Deseas continuar?',
|
||
allowIPsHelper: 'Tras configurar la lista de IP autorizadas, solo las IP en la lista podrán acceder al panel.',
|
||
allowIPsWarning:
|
||
'Tras configurar la lista de IP autorizadas, solo las IP en la lista podrán acceder al panel. ¿Deseas continuar?',
|
||
allowIPsHelper1: 'Déjalo en blanco para desactivar la restricción por IP.',
|
||
allowIPEgs: 'Una por línea. Por ejemplo,\n172.16.10.111\n172.16.10.0/24',
|
||
mfa: 'Autenticación en Dos Pasos',
|
||
mfaClose: 'Desactivar MFA reducirá la seguridad del servicio. ¿Deseas continuar?',
|
||
secret: 'Secreto',
|
||
mfaInterval: 'Intervalo de refresco',
|
||
mfaTitleHelper:
|
||
'El título se usa para distinguir diferentes hosts de 1Panel. Tras modificarlo, vuelve a escanear o añade la clave secreta manualmente.',
|
||
mfaIntervalHelper:
|
||
'Tras modificar el intervalo de refresco, vuelve a escanear o añade la clave secreta manualmente.\nAlgunas apps de autenticación solo admiten un intervalo de 30 segundos (por ejemplo, Google/Microsoft Authenticator).',
|
||
mfaAlert:
|
||
'El token de un solo uso es un número dinámico de 6 dígitos basado en la hora actual. Asegúrate de que la hora del servidor esté sincronizada.',
|
||
mfaHelper: 'Tras habilitarlo, será necesario verificar el token de un solo uso.',
|
||
mfaHelper1: 'Descarga una app de autenticación, por ejemplo,',
|
||
mfaHelper2:
|
||
'Para obtener el token, escanea el siguiente código QR con tu app de autenticación o copia la clave secreta en la aplicación.',
|
||
mfaHelper3: 'Introduce los seis dígitos de la app',
|
||
mfaCode: 'Token de un solo uso',
|
||
sslChangeHelper: 'Modificará la configuración https y reiniciará el servicio. ¿Deseas continuar?',
|
||
sslDisable: 'Deshabilitar',
|
||
sslDisableHelper:
|
||
'Si el servicio https está deshabilitado, deberás reiniciar el panel para que surta efecto. ¿Deseas continuar?',
|
||
noAuthSetting: 'Configuración no autorizada',
|
||
noAuthSettingHelper:
|
||
'Cuando los usuarios no inician sesión desde la entrada de seguridad especificada, o no acceden al panel desde la IP o dominio especificados, esta respuesta puede ocultar características del panel.',
|
||
responseSetting: 'Configuración de respuesta',
|
||
help200: 'Página de ayuda',
|
||
error400: 'Solicitud incorrecta',
|
||
error401: 'No autorizado',
|
||
error403: 'Prohibido',
|
||
error404: 'No encontrado',
|
||
error408: 'Tiempo de espera de la solicitud',
|
||
error416: 'Rango no satisfactorio',
|
||
error444: 'Conexión cerrada',
|
||
error500: 'Error interno del servidor',
|
||
https: 'Configurar HTTPS para el panel mejora la seguridad de acceso',
|
||
strictHelper: 'El tráfico no HTTPS no puede conectarse al panel',
|
||
muxHelper:
|
||
'El panel escuchará en los protocolos HTTP y HTTPS y redirigirá HTTP a HTTPS, pero esto puede reducir la seguridad del panel',
|
||
certType: 'Tipo de certificado',
|
||
selfSigned: 'Autofirmado',
|
||
selfSignedHelper:
|
||
'Los navegadores pueden no confiar en certificados autofirmados y mostrar advertencias de seguridad.',
|
||
select: 'Seleccionar',
|
||
domainOrIP: 'Dominio o IP:',
|
||
timeOut: 'Tiempo de espera',
|
||
rootCrtDownload: 'Descargar certificado raíz',
|
||
primaryKey: 'Clave primaria',
|
||
certificate: 'Certificado',
|
||
backupJump:
|
||
'Archivos de respaldo fuera de la lista actual, intenta descargarlos desde el directorio de archivos e importarlos para el respaldo.',
|
||
snapshot: 'Instantánea | Instantáneas',
|
||
noAppData: 'No hay aplicaciones del sistema disponibles para seleccionar',
|
||
noBackupData: 'No hay datos de respaldo disponibles para seleccionar',
|
||
stepBaseData: 'Datos base',
|
||
stepAppData: 'Aplicación del sistema',
|
||
stepPanelData: 'Datos del sistema',
|
||
stepBackupData: 'Datos de respaldo',
|
||
stepOtherData: 'Otros datos',
|
||
operationLog: 'Conservar registro de operaciones',
|
||
loginLog: 'Conservar registro de accesos',
|
||
systemLog: 'Conservar registro del sistema',
|
||
taskLog: 'Conservar registro de tareas',
|
||
monitorData: 'Conservar datos de monitoreo',
|
||
dockerConf: 'Conservar configuración de Docker',
|
||
selectAllImage: 'Respaldar todas las imágenes de aplicaciones',
|
||
logLabel: 'Registro',
|
||
agentLabel: 'Configuración de nodo',
|
||
appDataLabel: 'Datos de aplicación',
|
||
appImage: 'Imagen de aplicación',
|
||
appBackup: 'Respaldo de aplicación',
|
||
backupLabel: 'Directorio de respaldo',
|
||
confLabel: 'Archivo de configuración',
|
||
dockerLabel: 'Contenedor',
|
||
taskLabel: 'Tarea programada',
|
||
resourceLabel: 'Directorio de recursos de aplicación',
|
||
runtimeLabel: 'Entorno de ejecución',
|
||
appLabel: 'Aplicación',
|
||
databaseLabel: 'Base de datos',
|
||
snapshotLabel: 'Archivo de instantánea',
|
||
websiteLabel: 'Sitio web',
|
||
directoryLabel: 'Directorio',
|
||
appStoreLabel: 'Tienda de aplicaciones',
|
||
shellLabel: 'Script',
|
||
tmpLabel: 'Directorio temporal',
|
||
sslLabel: 'Directorio de certificados',
|
||
reCreate: 'No se pudo crear la instantánea',
|
||
reRollback: 'Error al revertir la instantánea',
|
||
deleteHelper:
|
||
'Todos los archivos de instantánea, incluidos los de la cuenta de respaldo de terceros, serán eliminados. ¿Deseas continuar?',
|
||
status: 'Estado de la instantánea',
|
||
ignoreRule: 'Regla de exclusión',
|
||
editIgnoreRule: '@:commons.button.edit @.lower:setting.ignoreRule',
|
||
ignoreHelper:
|
||
'Esta regla se usará para comprimir y respaldar el directorio de datos de 1Panel al crear la instantánea. Por defecto, se ignoran los archivos de socket.',
|
||
ignoreHelper1: 'Una por línea. Por ejemplo,\n*.log\n/opt/1panel/cache',
|
||
panelInfo: 'Escribir información básica de 1Panel',
|
||
panelBin: 'Respaldar archivos del sistema 1Panel',
|
||
daemonJson: 'Respaldar archivo de configuración de Docker',
|
||
appData: 'Respaldar aplicaciones instaladas de 1Panel',
|
||
panelData: 'Respaldar directorio de datos de 1Panel',
|
||
backupData: 'Respaldar directorio local de respaldo de 1Panel',
|
||
compress: 'Crear archivo de instantánea',
|
||
upload: 'Subir archivo de instantánea',
|
||
recoverDetail: 'Detalle de recuperación',
|
||
importHelper: 'Directorio de instantánea: ',
|
||
lastRecoverAt: 'Última hora de recuperación',
|
||
lastRollbackAt: 'Última hora de reversión',
|
||
reDownload: 'Descargar el archivo de respaldo de nuevo',
|
||
recoverErrArch: '¡La recuperación de instantánea entre arquitecturas de servidor diferentes no es compatible!',
|
||
recoverErrSize:
|
||
'Se detectó espacio insuficiente en disco, por favor verifica o libera espacio e inténtalo de nuevo.',
|
||
recoverHelper:
|
||
'Iniciando recuperación desde la instantánea {0}, confirma la siguiente información antes de continuar:',
|
||
recoverHelper1: 'La recuperación requiere reiniciar Docker y los servicios de 1Panel',
|
||
recoverHelper2:
|
||
'Asegúrate de que haya suficiente espacio en disco en el servidor (Tamaño del archivo de instantánea: {0}, Espacio disponible: {1})',
|
||
recoverHelper3:
|
||
'Asegúrate de que la arquitectura del servidor coincida con la del servidor donde se creó la instantánea (Arquitectura actual: {0})',
|
||
rollback: 'Reversión',
|
||
rollbackHelper:
|
||
'Revertir esta recuperación reemplazará todos los archivos de esta recuperación y puede requerir reiniciar Docker y los servicios de 1Panel. ¿Deseas continuar?',
|
||
upgradeRecord: 'Registro de actualización',
|
||
upgrading: ' Actualizando, por favor espera...',
|
||
upgradeHelper: 'La actualización requiere reiniciar el servicio 1Panel. ¿Deseas continuar?',
|
||
noUpgrade: 'Actualmente es la última versión',
|
||
versionHelper:
|
||
'Reglas de nombre: [versión mayor].[versión funcional].[versión de corrección de errores], como se muestra en el siguiente ejemplo:',
|
||
rollbackLocalHelper:
|
||
'El nodo principal no admite reversión directa. ¡Ejecuta manualmente el comando [1pctl restore] para revertir!',
|
||
upgradeCheck: 'Buscar actualizaciones',
|
||
upgradeNotes: 'Notas de la versión',
|
||
upgradeNow: 'Actualizar ahora',
|
||
source: 'Fuente de descarga',
|
||
versionNotSame:
|
||
'La versión del nodo no coincide con la del nodo principal. Actualiza en la gestión de nodos antes de reintentar.',
|
||
versionCompare:
|
||
'Se detectó que el nodo {0} ya está en la última versión actualizable. Verifica la versión del nodo principal e inténtalo de nuevo.',
|
||
about: 'Acerca de',
|
||
versionItem: 'Versión Actual',
|
||
backupCopies: 'Copias de Respaldo',
|
||
backupCopiesHelper:
|
||
'Establezca el número de copias de respaldo de actualización para conservar para la reversión de versión. 0 significa conservar todas.',
|
||
backupCopiesRule: 'Conserve al menos 3 registros de respaldo de actualización',
|
||
release: 'Notas de lanzamiento',
|
||
releaseHelper:
|
||
'No se pudieron obtener las notas de lanzamiento para el entorno actual. Puedes consultarlas manualmente en la documentación oficial.',
|
||
project: 'GitHub',
|
||
issue: 'Comentarios',
|
||
doc: 'Documentación oficial',
|
||
star: 'Estrella',
|
||
description: 'Panel de servidor Linux',
|
||
forum: 'Discusiones',
|
||
doc2: 'Documentación',
|
||
currentVersion: 'Versión',
|
||
license: 'Licencia',
|
||
bindNode: 'Vincular nodo',
|
||
menuSetting: 'Configuración de menú',
|
||
menuSettingHelper: 'Cuando solo exista 1 submenú, la barra de menú mostrará únicamente ese submenú',
|
||
showAll: 'Mostrar todo',
|
||
hideALL: 'Ocultar todo',
|
||
ifShow: 'Mostrar o no',
|
||
menu: 'Menú',
|
||
confirmMessage: 'La página se actualizará para refrescar la lista de menús avanzados. ¿Deseas continuar?',
|
||
recoverMessage:
|
||
'La página se actualizará y la lista de menús se restaurará a su estado inicial. ¿Desea continuar?',
|
||
compressPassword: 'Contraseña de compresión',
|
||
backupRecoverMessage:
|
||
'Introduce la contraseña de compresión o descompresión (déjalo en blanco para no establecerla)',
|
||
componentSize: 'Tamaño del componente',
|
||
recoverFailed: 'Error al restaurar la instantánea',
|
||
},
|
||
license: {
|
||
community: 'OSS',
|
||
oss: 'Software Open Source',
|
||
ee: 'Edición Enterprise',
|
||
pro: 'Pro',
|
||
trial: 'Prueba',
|
||
add: 'Agregar versión Community',
|
||
licenseBindHelper:
|
||
'Las cuotas de nodo gratuitas solo se pueden utilizar cuando la licencia está vinculada a un nodo',
|
||
licenseAlert:
|
||
'Solo se pueden agregar nodos Community cuando la licencia está correctamente vinculada. Solo los nodos vinculados admiten cambios.',
|
||
licenseUnbindHelper: 'Nodos Community detectados en esta licencia. Desvincule e intente nuevamente.',
|
||
subscription: 'Suscripción',
|
||
perpetual: 'Perpetua',
|
||
product: 'Producto',
|
||
versionConstraint: '{0} Compra de versión',
|
||
forceUnbind: 'Desvinculación forzada',
|
||
forceUnbindHelper: 'La desvinculación forzada ignorará errores y liberará la licencia.',
|
||
updateForce: 'Forzar actualización (ignorar errores para liberar la licencia)',
|
||
trialInfo: 'Versión',
|
||
authorizationId: 'ID de autorización',
|
||
authorizedUser: 'Usuario autorizado',
|
||
lostHelper:
|
||
'La licencia alcanzó el máximo de reintentos. Sincronícela manualmente para activar funciones comerciales.',
|
||
exceptionalHelper:
|
||
'Verificación de licencia anómala. Sincronícela manualmente para activar funciones comerciales. detalle: ',
|
||
quickUpdate: 'Actualización rápida',
|
||
import: 'Importar',
|
||
power: 'Autorizar',
|
||
unbindHelper: 'Se eliminarán todos los ajustes comerciales tras desvincular. ¿Desea continuar?',
|
||
importLicense: 'Importar licencia',
|
||
importHelper: 'Haga clic o arrastre el archivo de licencia aquí',
|
||
licenseRequiredTip:
|
||
'La licencia aún no se ha importado. Copie el ID del dispositivo, obtenga la licencia e impórtela antes de iniciar sesión.',
|
||
licenseRequiredShortTip:
|
||
'Primero copie el ID del dispositivo para obtener una licencia. Podrá iniciar sesión después de importarla.',
|
||
licenseRequiredUserTip:
|
||
'La licencia Enterprise Edition no está vinculada. Contacte con un superadministrador para importar la licencia.',
|
||
levelUpPro: 'Actualizar a la edición comercial',
|
||
licenseSync: 'Sincronizar licencia',
|
||
knowMorePro: 'Ver más',
|
||
closeAlert: 'Puede cerrar la página en la configuración del panel',
|
||
introduce: 'Introducción de funciones',
|
||
deviceID: 'ID del dispositivo',
|
||
corporation: 'Empresa autorizada',
|
||
expired: 'Hora de expiración',
|
||
edition: 'Edición',
|
||
standard: 'Estándar',
|
||
enterprise: 'Enterprise',
|
||
count: 'Cantidad autorizada',
|
||
serialNo: 'Número de serie',
|
||
remark: 'Observación',
|
||
waf: 'Actualizar a la edición comercial permite interceptación, logs, geobloqueo, reglas, páginas personalizadas, etc.',
|
||
tamper: 'Actualizar a la edición comercial protege sitios ante modificaciones no autorizadas.',
|
||
tamperHelper:
|
||
'La operación falló, el archivo/carpeta tiene protección antimanipulación. Revise e intente de nuevo.',
|
||
setting: 'Actualizar a la edición comercial permite personalizar logo, mensaje de bienvenida y más.',
|
||
monitor: 'La edición comercial permite ver estado web en tiempo real, tendencias, logs, etc.',
|
||
alert: 'La edición comercial permite recibir alertas SMS y ver logs, control total de eventos clave.',
|
||
node: 'Actualizar a la edición comercial permite administrar varios servidores Linux con 1Panel.',
|
||
nodeApp:
|
||
'Actualizar a la edición comercial permite actualizar versiones de aplicaciones multinodo sin cambiar de nodo manualmente.',
|
||
nodeDashboard:
|
||
'Actualizar a la edición comercial permite la gestión centralizada de aplicaciones, sitios web, bases de datos y tareas programadas multinodo.',
|
||
fileExchange: 'La edición comercial permite transferir archivos entre varios servidores.',
|
||
app: 'La edición comercial permite ver información de servicio, monitoreo, etc. vía app móvil.',
|
||
cluster:
|
||
'Actualizar a la edición comercial permite gestionar clústeres primario-réplica de MySQL/Postgres/Redis.',
|
||
'model-downloader':
|
||
'Actualiza a la edición comercial para buscar, descargar y gestionar archivos de modelos locales desde HuggingFace, ModelScope o espejos compatibles, con directorios de modelos y tareas de descarga centralizados.',
|
||
offLine: 'Sin conexión',
|
||
},
|
||
clean: {
|
||
scan: 'Iniciar escaneo',
|
||
scanHelper: 'Limpie fácilmente archivos basura generados por 1Panel',
|
||
clean: 'Limpiar ahora',
|
||
reScan: 'Volver a escanear',
|
||
cleanHelper:
|
||
'Los archivos y directorios seleccionados no se pueden revertir después de la limpieza. ¿Continuar?',
|
||
statusSuggest: '(Limpieza recomendada)',
|
||
statusClean: '(Muy limpio)',
|
||
statusEmpty: 'Muy limpio, ¡no necesita limpieza!',
|
||
statusWarning: '(Precaución)',
|
||
lastCleanTime: 'Última limpieza: {0}',
|
||
lastCleanHelper: 'Archivos/carpetas limpiados: {0}, total limpiado: {1}',
|
||
cleanSuccessful: 'Limpieza completada correctamente',
|
||
currentCleanHelper: 'En esta sesión: {0} archivos/carpetas, Total: {1}',
|
||
suggest: '(Recomendado)',
|
||
totalScan: 'Total a limpiar: ',
|
||
selectScan: 'Total seleccionado: ',
|
||
system: 'Archivos basura del sistema',
|
||
systemHelper: 'Archivos temporales generados durante instantáneas, actualizaciones y otros procesos',
|
||
panelOriginal: 'Archivos de copia de seguridad antes de restaurar instantánea del sistema',
|
||
upgrade: 'Archivos de copia de seguridad de actualización del sistema',
|
||
agentPackages: 'Paquetes de actualización/instalación de nodos secundarios de versiones históricas',
|
||
upgradeHelper: '(Mantenga el último respaldo para restaurar el sistema)',
|
||
snapshot: 'Archivos temporales de instantáneas',
|
||
rollback: 'Archivos de respaldo antes de recuperación',
|
||
backup: 'Copia de Seguridad del Sistema',
|
||
backupHelper: 'Archivos de copia de seguridad no asociados con cuentas de copia de seguridad locales',
|
||
unknownBackup: 'Copia de Seguridad del Sistema',
|
||
tmpBackup: 'Copia de Seguridad Temporal',
|
||
unknownApp: 'Copia de Seguridad de Aplicación no Asociada',
|
||
unknownDatabase: 'Copia de Seguridad de Base de Datos no Asociada',
|
||
unknownWebsite: 'Copia de Seguridad de Sitio Web no Asociada',
|
||
unknownSnapshot: 'Copia de Seguridad de Instantánea no Asociada',
|
||
upload: 'Archivos temporales de carga',
|
||
uploadHelper: 'Archivos temporales subidos en la lista de respaldos',
|
||
download: 'Archivos temporales de descarga',
|
||
downloadHelper: 'Archivos temporales descargados desde respaldos externos',
|
||
directory: 'Directorio',
|
||
systemLog: 'Archivo de registro',
|
||
systemLogHelper: 'Registros del sistema, registros de tareas, archivos de registro del sitio web',
|
||
dockerLog: 'Archivos de registro de operaciones de contenedores',
|
||
taskLog: 'Archivos de registro de ejecución de tareas programadas',
|
||
shell: 'Tareas programadas de script de shell',
|
||
containerShell: 'Tareas programadas de script de shell ejecutadas dentro de contenedores',
|
||
curl: 'Tareas programadas de CURL',
|
||
docker: 'Basura de contenedores',
|
||
dockerHelper: 'Archivos como contenedores, imágenes, volúmenes, caché de construcción, etc.',
|
||
volumes: 'Volúmenes',
|
||
buildCache: 'Caché de build de contenedores',
|
||
appTmpDownload: 'Archivo de descarga temporal de la aplicación',
|
||
unknownWebsiteLog: 'Archivo de respaldo de registro de sitio web no vinculado',
|
||
},
|
||
app: {
|
||
app: 'Aplicación | Aplicaciones',
|
||
installName: 'Nombre',
|
||
installed: 'Instaladas',
|
||
all: 'Todas',
|
||
version: 'Versión',
|
||
detail: 'Detalles',
|
||
params: 'Editar parámetros',
|
||
author: 'Autor',
|
||
source: 'Origen',
|
||
appName: 'Nombre de la aplicación',
|
||
deleteWarn:
|
||
'La eliminación eliminará todos los datos y respaldos. Esta acción no se puede deshacer. ¿Desea continuar?',
|
||
syncSuccess: 'Sincronizado correctamente',
|
||
canUpgrade: 'Actualizaciones',
|
||
backupName: 'Nombre de archivo',
|
||
backupPath: 'Ruta del archivo',
|
||
backupdate: 'Fecha de respaldo',
|
||
versionSelect: 'Seleccione una versión',
|
||
operatorHelper: 'Se realizará la operación {0} en la aplicación seleccionada. ¿Desea continuar?',
|
||
startOperatorHelper: 'La aplicación se iniciará. ¿Desea continuar?',
|
||
stopOperatorHelper: 'La aplicación se detendrá. ¿Desea continuar?',
|
||
restartOperatorHelper: 'La aplicación se reiniciará. ¿Desea continuar?',
|
||
reloadOperatorHelper: 'La aplicación se recargará. ¿Desea continuar?',
|
||
checkInstalledWarn: 'No se detecta "{0}". Vaya a "Tienda de aplicaciones" para instalar.',
|
||
limitHelper: 'La aplicación ya está instalada.',
|
||
deleteHelper: '"{0}" está asociada con los siguientes recursos y no puede eliminarse',
|
||
checkTitle: 'Aviso',
|
||
defaultConfig: 'Configuración predeterminada',
|
||
defaultConfigHelper: 'Se restauró a configuración predeterminada, surte efecto al guardar',
|
||
forceDelete: 'Forzar eliminación',
|
||
forceDeleteHelper: 'Forzar ignorará errores y eliminará la metadata.',
|
||
deleteBackup: 'Eliminar respaldo',
|
||
deleteBackupHelper: 'También eliminar respaldo de la aplicación',
|
||
deleteDB: 'Eliminar base de datos',
|
||
deleteDBHelper: 'También eliminar la base de datos',
|
||
noService: 'Sin {0}',
|
||
toInstall: 'Ir a instalar',
|
||
param: 'Parámetros',
|
||
alreadyRun: 'Instalada',
|
||
syncAppList: 'Sincronizar',
|
||
less1Minute: 'Menos de 1 minuto',
|
||
appOfficeWebsite: 'Sitio web oficial',
|
||
github: 'GitHub',
|
||
document: 'Documentación',
|
||
updatePrompt: 'No hay actualizaciones disponibles',
|
||
installPrompt: 'Aún no hay apps instaladas',
|
||
updateHelper: 'Editar parámetros puede hacer que la app no inicie. Proceda con precaución.',
|
||
updateWarn: 'Actualizar parámetros requiere reconstruir la app. ¿Desea continuar?',
|
||
busPort: 'Puerto',
|
||
syncStart: '¡Sincronizando! Actualice la tienda después',
|
||
advanced: 'Configuración avanzada',
|
||
cpuCore: 'núcleo(s)',
|
||
containerName: 'Nombre del contenedor',
|
||
containerNameHelper: 'El nombre se generará automáticamente si no se establece',
|
||
allowPort: 'Acceso externo',
|
||
allowPortHelper: 'Permitir acceso externo abrirá el puerto en el firewall',
|
||
appInstallWarn:
|
||
'La aplicación no expone el puerto externo por defecto. Use "Configuración avanzada" para habilitarlo.',
|
||
upgradeStart: '¡Iniciando actualización! Refresque la página después',
|
||
toFolder: 'Abrir directorio de instalación',
|
||
editCompose: 'Editar archivo compose',
|
||
editComposeHelper: 'Editar el compose puede hacer que la instalación falle',
|
||
composeNullErr: 'El compose no puede estar vacío',
|
||
takeDown: 'Retirado',
|
||
allReadyInstalled: 'Instaladas',
|
||
installHelper: 'Si tiene problemas con el pull de imagen, configure aceleración.',
|
||
sortMode: 'Ordenar',
|
||
installWarn: 'Si no habilita el acceso externo, la app no será accesible externamente. ¿Desea continuar?',
|
||
showIgnore: 'Ver aplicaciones ignoradas',
|
||
cancelIgnore: 'Cancelar ignoradas',
|
||
ignoreList: 'Aplicaciones ignoradas',
|
||
appHelper: 'Consulte los detalles de la app para instrucciones de instalación.',
|
||
backupApp: 'Respaldar aplicación antes de actualizar',
|
||
backupAppHelper:
|
||
'Si la actualización falla, el respaldo se revertirá. Revise el motivo en los logs del sistema.',
|
||
openrestyDeleteHelper: 'Eliminar OpenResty forzadamente borrará todos los sitios. ¿Desea continuar?',
|
||
downloadLogHelper1: 'Se descargarán todos los logs de la app {0}. ¿Desea continuar?',
|
||
downloadLogHelper2: 'Se descargarán los últimos {1} logs de la app {0}. ¿Desea continuar?',
|
||
syncAllAppHelper: 'Se sincronizarán todas las aplicaciones. ¿Desea continuar?',
|
||
hostModeHelper: 'El modo de red es host. Si necesita abrir el puerto, hágalo manualmente en el firewall.',
|
||
showLocal: 'Mostrar apps locales',
|
||
reload: 'Recargar',
|
||
upgradeWarn: 'Actualizar reemplazará docker-compose.yml. Si hay cambios, puede ver la comparación.',
|
||
openclawHttpsUpgradeNoticeTitle:
|
||
'Nota: Las siguientes instrucciones solo se aplican a quienes actualicen OpenClaw de las versiones 2026.3.13 a 2026.3.22 hacia la versión 2026.3.23 o posterior:',
|
||
openclawHttpsUpgradeNoticeItem1:
|
||
'Después de la actualización, el acceso del agente vuelve a HTTP. Vaya a Configuración -> Ajustes -> Seguridad y compruebe la dirección de acceso.',
|
||
openclawHttpsUpgradeNoticeItem2:
|
||
'Si antes utilizaba un sitio web con proxy inverso, cambie el destino del proxy a http://IP:Port.',
|
||
newVersion: 'Nueva versión',
|
||
oldVersion: 'Versión actual',
|
||
composeDiff: 'Comparación de archivos',
|
||
showDiff: 'Ver comparación',
|
||
useNew: 'Usar versión personalizada',
|
||
useDefault: 'Usar versión predeterminada',
|
||
useCustom: 'Personalizar docker-compose.yml',
|
||
useCustomHelper:
|
||
'Personalizar docker-compose.yml puede causar errores de actualización. Si no es necesario, no marque.',
|
||
diffHelper: 'Izquierda: versión vieja, Derecha: nueva. Edite y guarde la versión personalizada.',
|
||
pullImage: 'Pull de imagen',
|
||
pullImageHelper: 'Ejecutar docker pull antes de iniciar la app',
|
||
deleteImage: 'Eliminar imagen',
|
||
deleteImageHelper: 'Eliminar imagen asociada a la app. Si falla, la tarea continuará.',
|
||
requireMemory: 'Memoria',
|
||
supportedArchitectures: 'Arquitecturas',
|
||
link: 'Enlace',
|
||
showCurrentArch: 'Arquitectura',
|
||
syncLocalApp: 'Sincronizar app local',
|
||
memoryRequiredHelper: 'La app requiere {0} de memoria',
|
||
gpuConfig: 'Habilitar soporte GPU',
|
||
gpuConfigHelper: 'Asegúrese de tener GPU NVIDIA, drivers y NVIDIA Docker Container Toolkit instalados',
|
||
webUI: 'Dirección web',
|
||
webUIPlaceholder: 'Ejemplo: ejemplo.com:8080/login',
|
||
defaultWebDomain: 'Dirección de acceso predeterminada',
|
||
defaultWebDomainHepler: 'Si el puerto es 8080, el acceso será http(s)://dirección:8080',
|
||
webUIConfig:
|
||
'No hay dirección de acceso predeterminada. Configúrela en los parámetros de la app o en la configuración del panel.',
|
||
toLink: 'Abrir',
|
||
customAppHelper: 'Antes de instalar un paquete personalizado, asegúrese de no tener apps instaladas.',
|
||
forceUninstall: 'Desinstalar forzadamente',
|
||
syncCustomApp: 'Sincronizar app personalizada',
|
||
ignoreAll: 'Ignorar todas las versiones siguientes',
|
||
ignoreVersion: 'Ignorar versión especificada',
|
||
specifyIP: 'Vincular IP de host',
|
||
specifyIPHelper: 'Establece la dirección/red del host para el puerto (si no sabe, no rellene)',
|
||
uninstallDeleteBackup: 'Desinstalar - Eliminar respaldo',
|
||
uninstallDeleteImage: 'Desinstalar - Eliminar imagen',
|
||
upgradeBackup: 'Respaldar app antes de actualizar',
|
||
installAllowPort: 'Abrir el acceso externo al puerto por defecto al instalar apps',
|
||
noAppHelper:
|
||
'No se detectó ninguna aplicación, por favor vaya al centro de tareas para ver el registro de sincronización de la tienda de aplicaciones',
|
||
isEdirWarn: 'Se detectaron cambios en el archivo docker-compose.yml. Revise la comparación.',
|
||
},
|
||
website: {
|
||
primaryDomain: 'Dominio principal',
|
||
otherDomains: 'Otros dominios',
|
||
static: 'Estático',
|
||
deployment: 'Despliegue',
|
||
supportUpType: 'Solo se admite el formato .tar.gz, y el paquete comprimido debe contener el archivo {0}.json',
|
||
proxy: 'Proxy inverso',
|
||
alias: 'Alias',
|
||
ftpUser: 'Cuenta FTP',
|
||
ftpPassword: 'Contraseña FTP',
|
||
ftpHelper:
|
||
'Al crear un sitio web se generará una cuenta FTP correspondiente, cuyo directorio enlazará con el directorio del sitio.',
|
||
remark: 'Observación',
|
||
groupSetting: 'Gestión de grupos',
|
||
createGroup: 'Crear grupo',
|
||
appNew: 'Nueva aplicación',
|
||
appInstalled: 'Aplicación instalada',
|
||
delete: 'Eliminar sitio',
|
||
deleteApp: 'Eliminar aplicación',
|
||
deleteBackup: 'Eliminar copia de seguridad',
|
||
domain: 'Dominio',
|
||
domainHelper: 'Un dominio por línea.\nSoporta comodín "*" y direcciones IP.\nTambién permite añadir puerto.',
|
||
addDomain: 'Añadir dominio',
|
||
domainConfig: 'Dominios',
|
||
defaultDoc: 'Documento predeterminado',
|
||
perserver: 'Concurrencia por servidor',
|
||
perserverHelper: 'Límite de concurrencia máxima para este sitio',
|
||
perip: 'Concurrencia por IP',
|
||
peripHelper: 'Límite de accesos concurrentes desde una misma IP',
|
||
rate: 'Límite de tráfico',
|
||
rateLimit: 'Límite de velocidad por petición',
|
||
rateHelper: 'Limita el flujo de cada petición (unidad: KB)',
|
||
rateLimitHelper: 'Limita la velocidad de transferencia por petición (unidad: KB/s)',
|
||
limitHelper: 'Activar control de flujo',
|
||
other: 'Otros',
|
||
currentSSL: 'Certificado actual',
|
||
dnsAccount: 'Cuenta DNS',
|
||
applySSL: 'Solicitar certificado',
|
||
SSLList: 'Lista de certificados',
|
||
createDnsAccount: 'Cuenta DNS',
|
||
aliyun: 'Aliyun DNS',
|
||
aliEsa: 'Aliyun ESA',
|
||
awsRoute53: 'Amazon Route 53',
|
||
manual: 'Resolución manual',
|
||
key: 'Clave',
|
||
check: 'Ver',
|
||
acmeAccountManage: 'Gestión de cuentas ACME',
|
||
email: 'Correo electrónico',
|
||
acmeAccount: 'Cuenta ACME',
|
||
provider: 'Método de verificación',
|
||
dnsManual: 'Resolución manual',
|
||
expireDate: 'Fecha de expiración',
|
||
brand: 'Organización',
|
||
deploySSL: 'Desplegar certificado',
|
||
deploySSLHelper: '¿Seguro que deseas desplegar este certificado?',
|
||
ssl: 'Certificado | Certificados',
|
||
dnsAccountManage: 'Gestión de proveedores DNS',
|
||
renewSSL: 'Renovar',
|
||
renewHelper: '¿Seguro que deseas renovar el certificado?',
|
||
renewSuccess: 'Certificado renovado',
|
||
enableHTTPS: 'Habilitar',
|
||
aliasHelper: 'El alias es el nombre de directorio del sitio web',
|
||
lastBackupAt: 'Última copia de seguridad',
|
||
null: 'Ninguno',
|
||
nginxConfig: 'Configuración Nginx',
|
||
websiteConfig: 'Configuración del sitio',
|
||
proxySettings: 'Configuración de proxy',
|
||
advancedSettings: 'Configuración avanzada',
|
||
cacheSettings: 'Configuración de caché',
|
||
sniSettings: 'Configuración SNI',
|
||
basic: 'Básico',
|
||
source: 'Configuración',
|
||
security: 'Seguridad',
|
||
nginxPer: 'Optimización de rendimiento',
|
||
neverExpire: 'Nunca expira',
|
||
setDefault: 'Establecer como predeterminado',
|
||
deleteHelper: 'El estado de la aplicación asociada es anómalo, revisa antes de continuar',
|
||
toApp: 'Ir a aplicaciones instaladas',
|
||
cycle: 'Ciclo',
|
||
frequency: 'Frecuencia',
|
||
ccHelper:
|
||
'Si la misma URL recibe más de {1} peticiones en {0} segundos, se activa defensa CC y se bloquea la IP',
|
||
mustSave: 'Los cambios deben guardarse para que surtan efecto',
|
||
fileExt: 'Extensión de archivo',
|
||
fileExtBlock: 'Lista negra de extensiones',
|
||
value: 'Valor',
|
||
enable: 'Habilitar',
|
||
proxyAddress: 'Dirección de proxy',
|
||
proxyHelper: 'Ejemplo: 127.0.0.1:8080',
|
||
forceDelete: 'Forzar eliminación',
|
||
forceDeleteHelper: 'La eliminación forzada ignorará errores y eliminará metadatos igualmente.',
|
||
deleteAppHelper: 'Eliminar también aplicaciones y backups asociados',
|
||
deleteBackupHelper: 'Eliminar también copias de seguridad del sitio',
|
||
deleteDatabaseHelper: 'También eliminar la base de datos asociada al sitio web',
|
||
deleteConfirmHelper:
|
||
'Esta acción es irreversible. Escribe <span style="color:red"> "{0}" </span> para confirmar.',
|
||
staticPath: 'El directorio principal correspondiente es ',
|
||
limit: 'Esquema',
|
||
blog: 'Foro/Blog',
|
||
imageSite: 'Sitio de imágenes',
|
||
downloadSite: 'Sitio de descargas',
|
||
shopSite: 'Tienda',
|
||
doorSite: 'Portal',
|
||
qiteSite: 'Empresa',
|
||
videoSite: 'Video',
|
||
errLog: 'Log de errores',
|
||
stopHelper: 'Al detener el sitio, no será accesible y mostrará una página de parada. ¿Deseas continuar?',
|
||
startHelper: 'Al habilitar el sitio, los usuarios podrán acceder normalmente. ¿Deseas continuar?',
|
||
sitePath: 'Directorio',
|
||
siteAlias: 'Alias del sitio',
|
||
primaryPath: 'Directorio raíz',
|
||
folderTitle: 'El sitio contiene principalmente las siguientes carpetas',
|
||
wafFolder: 'Reglas del firewall',
|
||
indexFolder: 'Directorio raíz del sitio',
|
||
sslFolder: 'Certificados del sitio',
|
||
enableOrNot: 'Habilitar',
|
||
oldSSL: 'Certificado existente',
|
||
manualSSL: 'Importar certificado',
|
||
select: 'Seleccionar',
|
||
selectSSL: 'Seleccionar certificado',
|
||
privateKey: 'Clave privada (KEY)',
|
||
certificate: 'Certificado (formato PEM)',
|
||
HTTPConfig: 'Opciones HTTP',
|
||
HTTPSOnly: 'Bloquear peticiones HTTP',
|
||
HTTPToHTTPS: 'Redirigir a HTTPS',
|
||
HTTPAlso: 'Permitir peticiones HTTP directas',
|
||
sslConfig: 'Opciones SSL',
|
||
disableHTTPS: 'Desactivar HTTPS',
|
||
disableHTTPSHelper: 'Desactivar HTTPS eliminará la configuración del certificado. ¿Quieres continuar?',
|
||
SSLHelper:
|
||
'Nota: No uses certificados SSL en sitios ilegales.\nSi HTTPS no funciona, comprueba que el puerto 443 esté abierto en el firewall.',
|
||
SSLConfig: 'Configuración del certificado',
|
||
SSLProConfig: 'Configuración del protocolo',
|
||
supportProtocol: 'Versión de protocolo',
|
||
encryptionAlgorithm: 'Algoritmo de cifrado',
|
||
notSecurity: '(inseguro)',
|
||
encryptHelper:
|
||
"Let's Encrypt tiene límites de frecuencia para emitir certificados. Consulta la <a target='_blank' href='https://letsencrypt.org/zh-cn/docs/rate-limits/'>documentación oficial</a>.",
|
||
ipValue: 'Valor',
|
||
ext: 'Extensión de archivo',
|
||
wafInputHelper: 'Introduce datos línea por línea',
|
||
data: 'Datos',
|
||
ever: 'Permanente',
|
||
nextYear: 'Un año',
|
||
noLog: 'No se encontraron logs',
|
||
defaultServer: 'Configurar como sitio por defecto',
|
||
noDefaultServer: 'No configurado',
|
||
defaultServerHelper:
|
||
'El sitio por defecto recibirá peticiones de dominios/IP no asociados.\nPreviene resoluciones maliciosas, pero anula la intercepción WAF de dominios no autorizados.',
|
||
restoreHelper: '¿Seguro que deseas restaurar este backup?',
|
||
websiteDeploymentHelper: 'Usa una aplicación instalada o crea una nueva aplicación para desplegar un sitio.',
|
||
websiteStatictHelper: 'Crea un directorio de sitio estático en el host.',
|
||
websiteProxyHelper:
|
||
'Usa un proxy inverso para servicios existentes. Ejemplo: un servicio en el puerto 8080 → "http://127.0.0.1:8080".',
|
||
runtimeProxyHelper: 'Usa un runtime de sitio web para crear un sitio.',
|
||
runtime: 'Runtime',
|
||
deleteRuntimeHelper: 'El runtime debe eliminarse junto con el sitio. Hazlo con precaución.',
|
||
proxyType: 'Tipo de red',
|
||
unix: 'Red Unix',
|
||
tcp: 'Red TCP/IP',
|
||
phpFPM: 'Config FPM',
|
||
phpConfig: 'Config PHP',
|
||
updateConfig: 'Actualizar configuración',
|
||
isOn: 'Activado',
|
||
isOff: 'Desactivado',
|
||
rewrite: 'Reescritura (pseudoestático)',
|
||
rewriteMode: 'Esquema',
|
||
current: 'Actual',
|
||
rewriteHelper: 'Si el pseudoestático causa inaccesibilidad, restaura la configuración predeterminada.',
|
||
runDir: 'Directorio de ejecución',
|
||
runUserHelper:
|
||
'En entornos PHP con contenedor, asigna propietario/grupo 1000 a index y subdirectorios. En PHP local, usa el usuario/grupo de PHP-FPM.',
|
||
userGroup: 'Usuario/Grupo',
|
||
uGroup: 'Grupo',
|
||
proxyPath: 'Ruta de proxy',
|
||
proxyPass: 'URL destino',
|
||
cache: 'Caché',
|
||
cacheTime: 'Duración de caché',
|
||
enableCache: 'Activar caché',
|
||
proxyHost: 'Host de proxy',
|
||
disabled: 'Detenido',
|
||
startProxy: 'Se iniciará el proxy inverso. ¿Deseas continuar?',
|
||
stopProxy: 'Se detendrá el proxy inverso. ¿Deseas continuar?',
|
||
sourceFile: 'Ver origen',
|
||
proxyHelper1: 'Al acceder a este directorio se devolverá el contenido del destino configurado.',
|
||
proxyPassHelper: 'La URL destino debe ser válida y accesible.',
|
||
proxyHostHelper: 'Pasar el dominio en la cabecera Host al servidor proxy.',
|
||
modifier: 'Reglas de coincidencia',
|
||
modifierHelper: 'Ejemplo: "=" coincidencia exacta, "~" regex, "^~" inicio de ruta.',
|
||
replace: 'Reemplazos de texto',
|
||
replaceHelper:
|
||
'Permite sustitución de cadenas en contenido proxy (HTML, CSS, JS, etc.). Soporta regex para casos complejos.',
|
||
addReplace: 'Añadir',
|
||
replaced: 'Cadena de búsqueda (obligatoria)',
|
||
replaceText: 'Reemplazar por',
|
||
replacedErr: 'La cadena de búsqueda no puede estar vacía',
|
||
replacedErr2: 'La cadena de búsqueda no puede repetirse',
|
||
replacedListEmpty: 'Sin reglas de reemplazo',
|
||
proxySslName: 'Nombre SNI de proxy',
|
||
basicAuth: 'Autenticación básica',
|
||
editBasicAuthHelper:
|
||
'La contraseña está cifrada de forma asimétrica y no puede mostrarse. Editar implica restablecerla.',
|
||
antiLeech: 'Anti-hotlink',
|
||
extends: 'Extensiones',
|
||
browserCache: 'Caché de navegador',
|
||
noModify: 'No Modificar',
|
||
serverCache: 'Caché del servidor',
|
||
leechLog: 'Registrar logs anti-hotlink',
|
||
accessDomain: 'Dominios permitidos',
|
||
leechReturn: 'Recurso de respuesta',
|
||
noneRef: 'Permitir Referer vacío',
|
||
disable: 'No habilitado',
|
||
disableLeechHelper: 'Deshabilitar protección anti-hotlink',
|
||
disableLeech: 'Desactivar anti-hotlink',
|
||
ipv6: 'Escuchar IPv6',
|
||
leechReturnError: 'Introduce un código HTTP válido',
|
||
blockedRef: 'Permitir Referer no estándar',
|
||
accessControl: 'Control anti-hotlink',
|
||
leechcacheControl: 'Control de caché',
|
||
logEnableControl: 'Registrar peticiones de estáticos',
|
||
leechSpecialValidHelper:
|
||
'Permitir Referer vacío: peticiones sin Referer no se bloquean. Permitir Referer no estándar: se aceptan Referer que no empiecen con http/https.',
|
||
leechInvalidReturnHelper: 'Código HTTP devuelto tras bloquear hotlinking',
|
||
leechlogControlHelper:
|
||
'Registrar peticiones de estáticos (deshabilitar en producción para evitar exceso de logs).',
|
||
selectAcme: 'Seleccionar cuenta Acme',
|
||
imported: 'Creado manualmente',
|
||
importType: 'Tipo de importación',
|
||
pasteSSL: 'Pegar código',
|
||
localSSL: 'Seleccionar archivo del servidor',
|
||
privateKeyPath: 'Archivo de clave privada',
|
||
certificatePath: 'Archivo de certificado',
|
||
ipWhiteListHelper: 'La lista blanca de IP ignora todas las reglas de bloqueo',
|
||
redirect: 'Redirección',
|
||
sourceDomain: 'Dominio origen',
|
||
targetURL: 'URL destino',
|
||
keepPath: 'Mantener parámetros URI',
|
||
path: 'Ruta',
|
||
redirectType: 'Tipo de redirección',
|
||
redirectWay: 'Modo',
|
||
keep: 'Mantener',
|
||
notKeep: 'No mantener',
|
||
redirectRoot: 'Redirigir a la home',
|
||
redirectHelper: '301 permanente o 302 temporal',
|
||
changePHPVersionWarn: 'Esta acción es irreversible, ¿continuar?',
|
||
changeVersion: 'Cambiar versión',
|
||
retainConfig: 'Conservar php-fpm.conf y php.ini',
|
||
runDirHelper2: 'El directorio secundario debe estar bajo index',
|
||
openrestyHelper:
|
||
'Puertos por defecto de OpenResty → HTTP: {0}, HTTPS: {1}. Esto puede afectar redirecciones y accesos.',
|
||
primaryDomainHelper: 'Ejemplo: ejemplo.com o ejemplo.com:8080',
|
||
acmeAccountType: 'Tipo de cuenta',
|
||
keyType: 'Algoritmo de clave',
|
||
tencentCloud: 'Tencent Cloud',
|
||
containWarn: 'El dominio incluye al principal, corrige la entrada',
|
||
rewriteHelper2:
|
||
'Aplicaciones como WordPress suelen tener configuración pseudoestática predefinida. Cambiarla puede causar errores.',
|
||
websiteBackupWarn: 'Solo se admiten backups locales. Los de otras máquinas pueden fallar en la restauración',
|
||
ipWebsiteWarn: 'Los sitios con IP como dominio deben configurarse como sitio por defecto para funcionar',
|
||
hstsHelper: 'Habilitar HSTS mejora la seguridad',
|
||
includeSubDomains: 'Incluir subdominios',
|
||
hstsIncludeSubDomainsHelper: 'Al habilitarlo, la política HSTS aplicará también a los subdominios.',
|
||
defaultHtml: 'Configurar página por defecto',
|
||
website404: 'Página de error 404',
|
||
domain404: 'Página no encontrada',
|
||
indexHtml: 'Página predeterminada estática',
|
||
stopHtml: 'Página de sitio detenido',
|
||
indexPHP: 'Página predeterminada PHP',
|
||
sslExpireDate: 'Fecha de expiración SSL',
|
||
website404Helper: 'La página 404 solo aplica a sitios PHP o estáticos',
|
||
sni: 'SNI de origen',
|
||
sniHelper:
|
||
'Cuando el backend proxy es HTTPS, puede ser necesario configurar el SNI. Consulta la doc del proveedor CDN.',
|
||
proxySslVerify: 'Verificar certificado SSL del backend',
|
||
proxySslVerifyHelper:
|
||
'Si está activada, el proxy verificará estrictamente el certificado SSL del servidor de origen (desactivada por defecto).',
|
||
huaweicloud: 'Huawei Cloud',
|
||
createDb: 'Crear base de datos',
|
||
enableSSLHelper: 'Si falla, no afectará la creación del sitio',
|
||
batchAdd: 'Añadir múltiples dominios',
|
||
batchInput: 'Entrada por Lotes',
|
||
domainNotFQDN: 'Este dominio puede no ser accesible en la red pública',
|
||
domainInvalid: 'Formato de dominio inválido',
|
||
domainBatchHelper:
|
||
'Un dominio por línea, formato: dominio:puerto@ssl\nEjemplo: example.com:443@ssl o example.com',
|
||
generateDomain: 'Generar',
|
||
global: 'Global',
|
||
subsite: 'Subsitio',
|
||
subsiteHelper: 'Un subsite puede usar un directorio PHP o estático existente como raíz.',
|
||
parentWbeiste: 'Sitio padre',
|
||
deleteSubsite: 'Antes de borrar este sitio elimina los subsitios {0}',
|
||
loadBalance: 'Balanceo de carga',
|
||
server: 'Servidor',
|
||
algorithm: 'Algoritmo',
|
||
ipHash: 'IP Hash',
|
||
ipHashHelper: 'Asigna al mismo servidor las peticiones de un cliente según su IP.',
|
||
leastConn: 'Menos conexiones',
|
||
leastConnHelper: 'Envía peticiones al servidor con menos conexiones activas.',
|
||
leastTime: 'Menor tiempo',
|
||
leastTimeHelper: 'Envía peticiones al servidor con menor tiempo de conexión activa.',
|
||
defaultHelper:
|
||
'Método por defecto: reparte las peticiones equitativamente. Si hay pesos configurados, reparte según ellos.',
|
||
weight: 'Peso',
|
||
maxFails: 'Fallos máximos',
|
||
maxConns: 'Máximo de conexiones',
|
||
strategy: 'Estrategia',
|
||
strategyDown: 'Baja',
|
||
strategyBackup: 'Backup',
|
||
ipHashBackupErr: 'IP hash does not support backup nodes',
|
||
failTimeout: 'Tiempo de espera de fallo',
|
||
failTimeoutHelper:
|
||
'La duración de la ventana de tiempo para las comprobaciones de estado del servidor. Cuando el número acumulado de fallos alcanza el umbral dentro de este período, el servidor se eliminará temporalmente y se reintentará después de la misma duración. Por defecto 10 segundos',
|
||
staticChangePHPHelper: 'Actualmente es un sitio estático, puedes cambiarlo a PHP',
|
||
proxyCache: 'Caché de proxy inverso',
|
||
cacheLimit: 'Límite de espacio de caché',
|
||
shareCahe: 'Tamaño de memoria para conteo de caché',
|
||
cacheExpire: 'Expiración de caché',
|
||
shareCaheHelper: '1M de memoria almacena aprox. 8000 objetos',
|
||
cacheLimitHelper: 'Se eliminará caché antigua al superar el límite',
|
||
cacheExpireJHelper: 'Caché eliminada al expirar si no se usa',
|
||
realIP: 'IP real',
|
||
ipFrom: 'Origen de IP',
|
||
ipFromHelper: 'Definiendo orígenes confiables, OpenResty analizará cabeceras HTTP para identificar la IP real.',
|
||
ipFromExample1: 'Si el frontend es Frp: 127.0.0.1',
|
||
ipFromExample2: 'Si el frontend es un CDN: rango IP del CDN',
|
||
ipFromExample3: 'En caso de duda: 0.0.0.0/0 (IPv4) ::/0 (IPv6) [Nota: poco seguro]',
|
||
http3Helper: 'HTTP/3 ofrece mayor velocidad y rendimiento, pero no todos los navegadores lo soportan.',
|
||
cors: 'Intercambio de Recursos de Origen Cruzado (CORS)',
|
||
enableCors: 'Habilitar CORS',
|
||
allowOrigins: 'Dominios permitidos',
|
||
allowMethods: 'Métodos de solicitud permitidos',
|
||
allowHeaders: 'Encabezados de solicitud permitidos',
|
||
allowCredentials: 'Permitir enviar cookies',
|
||
preflight: 'Respuesta rápida a solicitud de preflight',
|
||
preflightHleper:
|
||
'Cuando está habilitado, cuando el navegador envía una solicitud de preflight de origen cruzado (solicitud OPTIONS), el sistema devolverá automáticamente un código de estado 204 y establecerá los encabezados de respuesta de origen cruzado necesarios',
|
||
changeDatabase: 'Cambiar base de datos',
|
||
changeDatabaseHelper1: 'La asociación se usa en backups/restauraciones.',
|
||
changeDatabaseHelper2: 'Cambiar de DB invalida backups previos.',
|
||
saveCustom: 'Guardar como plantilla',
|
||
rainyun: 'Rain Yun',
|
||
volcengine: 'Volcengine',
|
||
runtimePortHelper: 'Este runtime tiene múltiples puertos, selecciona uno.',
|
||
runtimePortWarn: 'Este runtime no tiene puertos, no se puede usar proxy',
|
||
cacheWarn: 'Desactiva la caché en proxy inverso primero',
|
||
loadBalanceHelper: 'Tras crear balanceo, ve a "Proxy inverso" y añade un backend: http://<nombre balanceo>',
|
||
favorite: 'Favorito',
|
||
cancelFavorite: 'Quitar favorito',
|
||
useProxy: 'Usar proxy',
|
||
useProxyHelper: 'Usa la dirección del proxy configurado en el panel',
|
||
westCN: 'West Digital',
|
||
openBaseDir: 'Prevenir ataques cross-site',
|
||
openBaseDirHelper: 'open_basedir restringe rutas accesibles por PHP, protegiendo contra accesos cruzados',
|
||
serverCacheTime: 'Tiempo de caché en servidor',
|
||
serverCacheTimeHelper: 'Durante este tiempo, peticiones idénticas devuelven caché sin ir al backend.',
|
||
browserCacheTime: 'Tiempo de caché en navegador',
|
||
browserCacheTimeHelper:
|
||
'Recursos estáticos se guardan en caché en el navegador reduciendo solicitudes repetidas.',
|
||
donotLinkeDB: 'No vincular base de datos',
|
||
toWebsiteDir: 'Acceder a directorio del sitio',
|
||
execParameters: 'Parámetros de ejecución',
|
||
extCommand: 'Comando adicional',
|
||
mirror: 'Fuente mirror',
|
||
execUser: 'Usuario de ejecución',
|
||
execDir: 'Directorio de ejecución',
|
||
packagist: 'Mirror China completo',
|
||
batchOperate: 'Operación en Lote',
|
||
batchOperateHelper: 'Lote {0} sitios web, ¿continuar operación?',
|
||
stream: 'Proxy TCP/UDP',
|
||
streamPorts: 'Puertos de escucha',
|
||
streamPortsHelper:
|
||
'Configura el número de puerto de escucha externo, los clientes accederán al servicio a través de este puerto, separado por comas, p. ej., 5222,5223',
|
||
streamHelper: 'Reenvío de Puertos y Balanceo de Carga TCP/UDP',
|
||
udp: 'Habilitar UDP',
|
||
syncHtmlHelper: 'Sincronizar con PHP y sitios web estáticos',
|
||
wafValueHelper: 'Valor',
|
||
},
|
||
php: {
|
||
short_open_tag: 'Soporte de etiquetas cortas',
|
||
max_execution_time: 'Tiempo máximo de ejecución del script',
|
||
max_input_time: 'Tiempo máximo de entrada',
|
||
memory_limit: 'Límite de memoria del script',
|
||
post_max_size: 'Tamaño máximo de datos POST',
|
||
file_uploads: 'Permitir subida de archivos',
|
||
upload_max_filesize: 'Tamaño máximo permitido para subir archivos',
|
||
max_file_uploads: 'Cantidad máxima de archivos a subir al mismo tiempo',
|
||
default_socket_timeout: 'Tiempo de espera del socket',
|
||
error_reporting: 'Nivel de errores',
|
||
display_errors: 'Mostrar información detallada de errores',
|
||
cgi_fix_pathinfo: 'Habilitar pathinfo',
|
||
date_timezone: 'Zona horaria',
|
||
disableFunction: 'Deshabilitar función',
|
||
disableFunctionHelper: 'Introduce la función a deshabilitar, como exec. Para varias, separa con comas',
|
||
uploadMaxSize: 'Límite de subida',
|
||
indexHelper:
|
||
'Para garantizar el funcionamiento correcto del sitio PHP, coloca el código en el directorio index y evita renombrar',
|
||
extensions: 'Gestionar extensiones',
|
||
extension: 'Extensión',
|
||
extensionHelper: 'Para varias extensiones, sepáralas con comas',
|
||
toExtensionsList: 'Ver lista de extensiones',
|
||
containerConfig: 'Configuración del contenedor',
|
||
containerConfigHelper:
|
||
'Las variables de entorno y demás se pueden modificar en Configuración - Configuración del Contenedor después de la creación',
|
||
dateTimezoneHelper: 'Ejemplo: TZ=America/Mexico_City (ajusta según necesites)',
|
||
extensionsHelper: 'Para varias extensiones, sepáralas con comas',
|
||
},
|
||
nginx: {
|
||
serverNamesHashBucketSizeHelper: 'Tamaño de la tabla hash para nombres de servidor',
|
||
clientHeaderBufferSizeHelper: 'Tamaño del buffer de cabecera solicitado por el cliente',
|
||
clientMaxBodySizeHelper: 'Tamaño máximo de archivo subido',
|
||
keepaliveTimeoutHelper: 'Tiempo de espera de la conexión',
|
||
gzipMinLengthHelper: 'Tamaño mínimo para comprimir',
|
||
gzipCompLevelHelper: 'Nivel de compresión',
|
||
gzipHelper: 'Habilitar compresión para transmisión',
|
||
connections: 'Conexiones activas',
|
||
accepts: 'Aceptadas',
|
||
handled: 'Gestionadas',
|
||
requests: 'Solicitudes',
|
||
reading: 'Leyendo',
|
||
writing: 'Escribiendo',
|
||
waiting: 'Esperando',
|
||
status: 'Estado actual',
|
||
configResource: 'Configuración',
|
||
saveAndReload: 'Guardar y recargar',
|
||
clearProxyCache: 'Limpiar caché de proxy inverso',
|
||
clearProxyCacheWarn: 'Esta acción eliminará todos los archivos en el directorio de caché. ¿Deseas continuar?',
|
||
create: 'Agregar nuevo módulo',
|
||
update: 'Editar módulo',
|
||
params: 'Parámetros',
|
||
packages: 'Paquetes',
|
||
script: 'Scripts',
|
||
module: 'Módulos',
|
||
build: 'Compilar',
|
||
buildWarn: 'Compilar OpenResty requiere reservar CPU y memoria, puede tomar tiempo, ten paciencia',
|
||
mirrorUrl: 'Fuente de software',
|
||
paramsHelper: 'Por ejemplo: --add-module=/tmp/ngx_brotli',
|
||
packagesHelper: 'Por ejemplo: git, curl (separados por coma)',
|
||
scriptHelper:
|
||
'Scripts a ejecutar antes de compilar, usualmente para descargar código fuente de módulos, instalar dependencias, etc.',
|
||
buildHelper:
|
||
'Haz clic en compilar después de agregar/modificar un módulo. OpenResty se reiniciará automáticamente tras una compilación exitosa.',
|
||
defaultHttps: 'HTTPS Anti-manipulación',
|
||
defaultHttpsHelper1: 'Habilitar esto puede resolver problemas de manipulación de HTTPS.',
|
||
sslRejectHandshake: 'Rechazar handshake SSL predeterminado',
|
||
sslRejectHandshakeHelper:
|
||
'Habilitar esto puede evitar la fuga de certificados, establecer un sitio web predeterminado invalidará esta configuración',
|
||
},
|
||
ssl: {
|
||
create: 'Solicitar',
|
||
provider: 'Tipo',
|
||
manualCreate: 'Creado manualmente',
|
||
acmeAccount: 'Cuenta ACME',
|
||
resolveDomain: 'Resolver dominio',
|
||
err: 'Error',
|
||
value: 'valor del registro',
|
||
dnsResolveHelper: 'Por favor, agrega los siguientes registros en tu proveedor de DNS:',
|
||
detail: 'Ver detalles',
|
||
msg: 'Información',
|
||
ssl: 'Certificado',
|
||
key: 'Clave privada',
|
||
startDate: 'Fecha de inicio',
|
||
organization: 'Organización emisora',
|
||
renewConfirm: 'Esto renovará un nuevo certificado para el dominio {0}. ¿Deseas continuar?',
|
||
autoRenew: 'Renovación automática',
|
||
autoRenewHelper: 'Renueva automáticamente 30 días antes de la expiración',
|
||
renewSuccess: 'Renovación exitosa',
|
||
renewWebsite: 'Este certificado está asociado a los siguientes sitios y se aplicará en ellos simultáneamente',
|
||
createAcme: 'Crear cuenta',
|
||
acmeHelper: 'La cuenta Acme se usa para solicitar certificados gratuitos',
|
||
upload: 'Importar',
|
||
applyType: 'Método de solicitud',
|
||
apply: 'Renovar',
|
||
applyStart: 'Inicia solicitud de certificado',
|
||
getDnsResolve: 'Obteniendo valor DNS, espera...',
|
||
selfSigned: 'Gestionar CA autofirmada',
|
||
ca: 'Autoridad certificadora',
|
||
commonName: 'Nombre común',
|
||
caName: 'Nombre de CA',
|
||
company: 'Nombre de la organización',
|
||
department: 'Unidad organizativa',
|
||
city: 'Ciudad',
|
||
province: 'Estado o provincia',
|
||
country: 'País (código de 2 letras)',
|
||
commonNameHelper: 'Por ejemplo, ',
|
||
selfSign: 'Emitir certificado',
|
||
days: 'Período de validez',
|
||
domainHelper: 'Un dominio por línea, admite * y dirección IP',
|
||
pushDir: 'Guardar certificado en el directorio local',
|
||
dir: 'Directorio',
|
||
pushDirHelper: 'Se generarán los archivos "fullchain.pem" y "privkey.pem" en este directorio.',
|
||
organizationDetail: 'Detalles de la organización',
|
||
fromWebsite: 'Desde el sitio web',
|
||
dnsMauanlHelper: 'En modo manual, haz clic en solicitar tras la creación para obtener el valor DNS',
|
||
httpHelper: 'El modo HTTP requiere OpenResty instalado y no soporta certificados comodín.',
|
||
buypassHelper: 'Buypass no es accesible desde China continental',
|
||
googleHelper: 'Cómo obtener EAB HmacKey y EAB kid',
|
||
googleCloudHelper: 'La API de Google Cloud no es accesible en la mayoría de China',
|
||
skipDNSCheck: 'Omitir comprobación DNS',
|
||
skipDNSCheckHelper: 'Solo marca si tienes problemas de timeout al solicitar el certificado.',
|
||
cfHelper: 'No uses la clave API Global',
|
||
deprecated: 'será obsoleto',
|
||
deprecatedHelper: 'El soporte se ha detenido y puede eliminarse en el futuro. Usa el método Tencent Cloud.',
|
||
disableCNAME: 'Deshabilitar CNAME',
|
||
disableCNAMEHelper: 'Marca si el dominio tiene un CNAME y falla la solicitud.',
|
||
nameserver: 'Servidor DNS',
|
||
nameserverHelper: 'Usa un DNS personalizado para verificar dominios.',
|
||
edit: 'Editar certificado',
|
||
execShell: 'Ejecutar script tras solicitud de certificado.',
|
||
shell: 'Contenido del script',
|
||
shellHelper:
|
||
'Por defecto, el script se ejecuta en el directorio de instalación de 1Panel. Si se guarda el certificado, será en ese directorio. Timeout: 30 minutos.',
|
||
customAcme: 'Servicio ACME personalizado',
|
||
customAcmeURL: 'URL del servicio ACME',
|
||
baiduCloud: 'Baidu Cloud',
|
||
pushNode: 'Sincronizar con otros nodos',
|
||
pushNodeHelper: 'Enviar a los nodos seleccionados después de la aplicación/renovación',
|
||
fromMaster: 'Envío desde el nodo maestro',
|
||
hostedZoneID: 'Hosted Zone ID',
|
||
isIP: 'Certificado IP',
|
||
useEAB: 'Usar autenticación EAB',
|
||
},
|
||
firewall: {
|
||
create: 'Crear regla',
|
||
edit: 'Editar regla',
|
||
ccDeny: 'Protección CC',
|
||
ipWhiteList: 'Lista blanca de IP',
|
||
ipBlockList: 'Lista negra de IP',
|
||
fileExtBlockList: 'Lista negra de extensiones de archivo',
|
||
urlWhiteList: 'Lista blanca de URL',
|
||
urlBlockList: 'Lista negra de URL',
|
||
argsCheck: 'Verificación de parámetros GET',
|
||
postCheck: 'Verificación de parámetros POST',
|
||
cookieBlockList: 'Lista negra de cookies',
|
||
dockerHelper:
|
||
'El firewall actual no puede deshabilitar el mapeo de puertos de contenedores. Las aplicaciones instaladas pueden ir a la página [Instaladas] para editar los parámetros de la aplicación y configurar reglas de liberación de puertos.',
|
||
iptablesHelper:
|
||
'Se detectó que el sistema está usando el firewall {0}. Para cambiar a iptables, ¡desinstálelo manualmente primero!',
|
||
quickJump: 'Acceso rápido',
|
||
used: 'En uso',
|
||
unUsed: 'No usado',
|
||
dockerRestart: 'Las operaciones del firewall requieren reiniciar el servicio de Docker',
|
||
firewallHelper: 'Firewall del sistema {0}',
|
||
firewallNotStart: 'El firewall del sistema no está habilitado actualmente. Actívalo primero.',
|
||
restartFirewallHelper: 'Esta operación reiniciará el firewall actual. ¿Deseas continuar?',
|
||
stopFirewallHelper: 'Esto hará que el servidor pierda protección de seguridad. ¿Deseas continuar?',
|
||
startFirewallHelper:
|
||
'Tras habilitar el firewall, la seguridad del servidor podrá protegerse mejor. ¿Deseas continuar?',
|
||
noPing: 'Deshabilitar ping',
|
||
enableBanPing: 'Bloquear Ping',
|
||
disableBanPing: 'Desbloquear Ping',
|
||
noPingTitle: 'Deshabilitar ping',
|
||
noPingHelper: 'Esto deshabilitará el ping, y el servidor no responderá con eco ICMP. ¿Deseas continuar?',
|
||
onPingHelper: 'Esto habilitará el ping, y los atacantes podrían descubrir tu servidor. ¿Deseas continuar?',
|
||
changeStrategy: 'Cambiar la estrategia de {0}',
|
||
changeStrategyIPHelper1:
|
||
'Cambiar la estrategia de dirección IP a [denegar]. Después de establecerla, se prohibirá el acceso al servidor. ¿Deseas continuar?',
|
||
changeStrategyIPHelper2:
|
||
'Cambiar la estrategia de dirección IP a [permitir]. Después de establecerla, se restaurará el acceso normal. ¿Deseas continuar?',
|
||
changeStrategyPortHelper1:
|
||
'Cambiar la política de puerto a [rechazar]. Después de establecerla, se denegará el acceso externo. ¿Deseas continuar?',
|
||
changeStrategyPortHelper2:
|
||
'Cambiar la política de puerto a [aceptar]. Después de establecerla, se restaurará el acceso normal. ¿Deseas continuar?',
|
||
stop: 'Detener',
|
||
portFormatError: 'Este campo debe ser un puerto válido.',
|
||
portHelper1: 'Puertos múltiples, ej. 8080 y 8081',
|
||
portHelper2: 'Rango de puertos, ej. 8080-8089',
|
||
changeStrategyHelper:
|
||
'Cambiar estrategia de {0} [{1}] a [{2}]. Después de configurarla, {0} tendrá acceso externo como {2}. ¿Deseas continuar?',
|
||
strategy: 'Estrategia',
|
||
accept: 'Aceptar',
|
||
drop: 'Rechazar',
|
||
anyWhere: 'Cualquiera',
|
||
address: 'IPs especificadas',
|
||
addressHelper: 'Admite dirección IP o segmento de red',
|
||
allow: 'Permitir',
|
||
deny: 'Denegar',
|
||
addressFormatError: 'Este campo debe ser una dirección IP válida.',
|
||
addressHelper1: 'Admite dirección IP o rango de IP. Ejemplo: "172.16.10.11" o "172.16.10.0/24".',
|
||
addressHelper2: 'Para múltiples direcciones IP, sepáralas con comas. Ejemplo: "172.16.10.11, 172.16.0.0/24".',
|
||
allIP: 'Todas las IP',
|
||
portRule: 'Regla | Reglas',
|
||
forwardRule: 'Regla de redirección de puertos | Reglas de redirección de puertos',
|
||
ipRule: 'Regla IP | Reglas IP',
|
||
userAgent: 'Filtro User-Agent',
|
||
sourcePort: 'Puerto de origen',
|
||
targetIP: 'IP de destino',
|
||
targetPort: 'Puerto de destino',
|
||
forwardHelper1: 'Si quieres reenviar al puerto local, la IP de destino debe ser "127.0.0.1".',
|
||
forwardHelper2: 'Deja en blanco la IP de destino para reenviar al puerto local.',
|
||
forwardPortHelper: 'Admite rangos de puertos, ej.: 8080-8089',
|
||
forwardInboundInterface: 'Interfaz de Red de Entrada para Reenvío',
|
||
exportHelper: 'A punto de exportar {0} reglas de firewall. ¿Continuar?',
|
||
importSuccess: 'Se importaron correctamente {0} reglas',
|
||
importPartialSuccess: 'Importación completada: {0} correctas, {1} fallidas',
|
||
ipv4Limit: 'La operación actual solo admite direcciones IPv4',
|
||
basicStatus: 'La cadena actual {0} no está vinculada, ¡vincule primero!',
|
||
baseIptables: 'Servicio iptables',
|
||
forwardIptables: 'Servicio de Reenvío de Puertos iptables',
|
||
advanceIptables: 'Servicio de Configuración Avanzada de iptables',
|
||
initMsg: 'A punto de inicializar {0}, ¿continuar?',
|
||
initHelper:
|
||
'Se detectó que {0} no está inicializado. ¡Haga clic en el botón de inicialización en la barra de estado superior para configurar!',
|
||
bindHelper:
|
||
'Vincular: las reglas de firewall solo surtirán efecto cuando el estado esté vinculado. ¿Confirmar?',
|
||
unbindHelper:
|
||
'Desvincular: al desvincular, todas las reglas de firewall agregadas se volverán inválidas. Proceda con precaución. ¿Confirmar?',
|
||
defaultStrategy: 'La política predeterminada para la cadena actual {0} es {1}',
|
||
defaultStrategy2:
|
||
'La política predeterminada para la cadena actual {0} es {1}, el estado actual es no vinculado. ¡Las reglas de firewall agregadas surtirán efecto después de la vinculación!',
|
||
filterRule: 'Regla de Filtro',
|
||
filterHelper:
|
||
'Las reglas de filtro le permiten controlar el tráfico de red a nivel INPUT/OUTPUT. Configure con cuidado para evitar bloquear el sistema.',
|
||
chain: 'Cadena',
|
||
targetChain: 'Cadena de Destino',
|
||
sourceIP: 'IP de Origen',
|
||
destIP: 'IP de Destino',
|
||
inboundDirection: 'Dirección de Entrada',
|
||
outboundDirection: 'Dirección de Salida',
|
||
destPort: 'Puerto de Destino',
|
||
action: 'Acción',
|
||
reject: 'Rechazar',
|
||
sourceIPHelper: 'Formato CIDR, ej. 192.168.1.0/24. Dejar vacío para todas las direcciones',
|
||
destIPHelper: 'Formato CIDR, ej. 10.0.0.0/8. Dejar vacío para todas las direcciones',
|
||
portHelper: '0 significa cualquier puerto',
|
||
allPorts: 'Todos los Puertos',
|
||
deleteRuleConfirm: 'Se eliminarán {0} reglas. ¿Continuar?',
|
||
advancedControl: 'Control avanzado',
|
||
advancedControlNotAvailable: 'Actualmente se usa el firewall {0}; las reglas avanzadas solo admiten iptables',
|
||
destination: 'Destino',
|
||
},
|
||
runtime: {
|
||
runtime: 'Runtime',
|
||
workDir: 'Directorio de trabajo',
|
||
localHelper: 'Para problemas de instalación en entorno local y uso en entorno sin conexión, consulte ',
|
||
versionHelper: 'Versión de PHP, ej. v8.0',
|
||
buildHelper:
|
||
'Si se seleccionan más extensiones, el uso de CPU será mayor durante el proceso de creación de la imagen. Evita seleccionar todas las extensiones.',
|
||
openrestyWarn: 'PHP necesita actualizarse a OpenResty versión 1.21.4.1 o superior para poder usarse',
|
||
toupgrade: 'Actualizar',
|
||
edit: 'Editar runtime',
|
||
extendHelper:
|
||
'Si las extensiones que necesitas no están en la lista, puedes introducir el nombre manualmente. Ejemplo: "sockets", luego selecciona la primera.',
|
||
rebuildHelper: 'Tras editar la extensión, debes reconstruir la aplicación PHP para que surta efecto',
|
||
rebuild: 'Reconstruir aplicación PHP',
|
||
source: 'Origen de extensiones PHP',
|
||
ustc: 'Universidad de Ciencia y Tecnología de China',
|
||
netease: 'Netease',
|
||
aliyun: 'Alibaba Cloud',
|
||
tsinghua: 'Universidad de Tsinghua',
|
||
xtomhk: 'Espejo XTOM (Hong Kong)',
|
||
xtom: 'Espejo XTOM (Global)',
|
||
phpsourceHelper: 'Elige una fuente adecuada según tu entorno de red.',
|
||
appPort: 'Puerto de la aplicación',
|
||
externalPort: 'Puerto externo',
|
||
packageManager: 'Gestor de paquetes',
|
||
codeDir: 'Directorio del código',
|
||
appPortHelper: 'El puerto usado por la aplicación.',
|
||
externalPortHelper: 'El puerto expuesto al exterior.',
|
||
runScript: 'Script de ejecución',
|
||
runScriptHelper:
|
||
'La lista de comandos de inicio se obtiene desde el archivo package.json en el directorio fuente.',
|
||
open: 'Abrir',
|
||
operatorHelper: 'La operación {0} se ejecutará sobre el entorno de ejecución seleccionado. ¿Deseas continuar?',
|
||
taobao: 'Taobao',
|
||
tencent: 'Tencent',
|
||
imageSource: 'Fuente de imagen',
|
||
moduleManager: 'Gestión de módulos',
|
||
module: 'Módulo',
|
||
nodeOperatorHelper:
|
||
'¿Quieres {0} el módulo {1}? La operación puede causar fallos en el entorno de ejecución, confirma antes de continuar',
|
||
customScript: 'Comando de inicio personalizado',
|
||
customScriptHelper:
|
||
'Por favor, ingresa el comando de inicio completo, por ejemplo: npm run start. Para comandos de inicio de PM2, por favor reemplaza con pm2-runtime, de lo contrario fallará al iniciar.',
|
||
portError: 'No repitas el mismo puerto.',
|
||
systemRestartHelper:
|
||
'Descripción de estado: Interrupción - fallo al obtener estado debido a reinicio del sistema',
|
||
javaScriptHelper:
|
||
'Proporciona un comando de inicio completo. Ejemplo: "java -jar halo.jar -Xmx1024M -Xms256M".',
|
||
javaDirHelper: 'El directorio debe contener archivos .jar, se permiten subdirectorios',
|
||
goHelper: 'Proporciona un comando de inicio completo. Ejemplo: "go run main.go" o "./main".',
|
||
goDirHelper: 'El directorio o subdirectorio debe contener archivos Go o binarios.',
|
||
extension: 'Extensión',
|
||
installExtension: '¿Confirmas instalar la extensión {0}?',
|
||
loadedExtension: 'Extensión cargada',
|
||
popularExtension: 'Extensión popular',
|
||
uninstallExtension: '¿Seguro que quieres desinstalar la extensión {0}?',
|
||
phpConfigHelper: 'Modificar la configuración requiere reiniciar el entorno de ejecución, ¿quieres continuar?',
|
||
operateMode: 'Modo de operación',
|
||
dynamic: 'Dinámico',
|
||
static: 'Estático',
|
||
ondemand: 'Bajo demanda',
|
||
dynamicHelper:
|
||
'Ajusta dinámicamente el número de procesos, alta flexibilidad, adecuado para sitios con grandes fluctuaciones de tráfico o poca memoria',
|
||
staticHelper:
|
||
'Número fijo de procesos, adecuado para sitios con alta concurrencia y tráfico estable, alto consumo de recursos',
|
||
ondemandHelper:
|
||
'Los procesos se inician y destruyen bajo demanda, la utilización de recursos es óptima, pero la respuesta inicial puede ser lenta',
|
||
max_children: 'Número máximo de procesos permitidos',
|
||
start_servers: 'Número de procesos creados al inicio',
|
||
min_spare_servers: 'Número mínimo de procesos inactivos',
|
||
max_spare_servers: 'Número máximo de procesos inactivos',
|
||
envKey: 'Nombre',
|
||
envValue: 'Valor',
|
||
environment: 'Variable de entorno',
|
||
pythonHelper:
|
||
'Proporciona un comando de inicio completo. Ejemplo: "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:5000".',
|
||
dotnetHelper: 'Proporciona un comando de inicio completo. Ejemplo: "dotnet MyWebApp.dll".',
|
||
dirHelper: 'Nota: rellena la ruta del directorio dentro del contenedor',
|
||
concurrency: 'Esquema de concurrencia',
|
||
loadStatus: 'Estado de carga',
|
||
extraHosts: 'Mapeo de host',
|
||
},
|
||
process: {
|
||
pid: 'ID de proceso',
|
||
ppid: 'ID de proceso padre',
|
||
numThreads: 'Hilos',
|
||
memory: 'Memoria',
|
||
diskRead: 'Lectura de disco',
|
||
diskWrite: 'Escritura en disco',
|
||
netSent: 'Tráfico de salida',
|
||
netRecv: 'Tráfico de entrada',
|
||
numConnections: 'Conexiones',
|
||
startTime: 'Hora de inicio',
|
||
running: 'En ejecución',
|
||
sleep: 'En espera',
|
||
stop: 'Detenido',
|
||
idle: 'Inactivo',
|
||
zombie: 'Proceso zombi',
|
||
wait: 'Esperando',
|
||
lock: 'Bloqueo',
|
||
blocked: 'Bloqueado',
|
||
cmdLine: 'Comando de inicio',
|
||
basic: 'Básico',
|
||
mem: 'Memoria',
|
||
openFiles: 'Archivos abiertos',
|
||
env: 'Entorno',
|
||
noenv: 'Ninguno',
|
||
net: 'Conexiones de red',
|
||
laddr: 'Dirección/puerto local',
|
||
raddr: 'Dirección/puerto remoto',
|
||
stopProcess: 'Finalizar',
|
||
viewDetails: 'Ver detalles',
|
||
stopProcessWarn: '¿Seguro que deseas finalizar este proceso (PID:{0})?',
|
||
kill: 'Terminar Proceso',
|
||
killNow: 'Terminar Ahora',
|
||
killHelper: 'Terminar el proceso {0} puede hacer que algunos programas funcionen incorrectamente. ¿Continuar?',
|
||
processName: 'Nombre del proceso',
|
||
},
|
||
tool: {
|
||
supervisor: {
|
||
loadStatusErr: 'No se pudo obtener el estado del proceso, verifica el estado del servicio Supervisor.',
|
||
notSupport:
|
||
'Servicio Supervisor no detectado, ve a la página de librería de scripts para instalarlo manualmente',
|
||
list: 'Procesos en segundo plano',
|
||
config: 'Configuración de Supervisor',
|
||
primaryConfig: 'Ubicación del archivo de configuración principal',
|
||
notSupportCtl:
|
||
'No se detectó supervisorctl, ve a la página de librería de scripts para instalarlo manualmente',
|
||
user: 'Usuario',
|
||
command: 'Comando',
|
||
dir: 'Directorio',
|
||
numprocs: 'Número de procesos',
|
||
initWarn:
|
||
'Esto modificará el valor de "files" en la sección "[include]" del archivo de configuración principal. El directorio de otros archivos de configuración será: "{directorio de instalación de 1Panel}/1panel/tools/supervisord/supervisor.d/".',
|
||
operatorHelper: 'La operación {1} se ejecutará en {0}, ¿quieres continuar?',
|
||
uptime: 'Tiempo en ejecución',
|
||
notStartWarn: 'Supervisor no está iniciado. Inícialo primero.',
|
||
serviceName: 'Nombre del servicio',
|
||
initHelper:
|
||
'El servicio Supervisor está detectado pero no inicializado. Haz clic en el botón de inicialización en la barra de estado superior para configurarlo.',
|
||
serviceNameHelper:
|
||
'Nombre del servicio Supervisor gestionado por systemctl, normalmente supervisor o supervisord',
|
||
restartHelper:
|
||
'Esto reiniciará el servicio después de la inicialización, lo que detendrá todos los procesos en segundo plano existentes.',
|
||
RUNNING: 'En ejecución',
|
||
STOPPED: 'Detenido',
|
||
STOPPING: 'Deteniéndose',
|
||
STARTING: 'Iniciándose',
|
||
FATAL: 'Fallo al iniciar',
|
||
BACKOFF: 'Excepción al iniciar',
|
||
ERROR: 'Error',
|
||
statusCode: 'Código de estado',
|
||
manage: 'Gestión',
|
||
autoRestart: 'Reinicio automático',
|
||
EXITED: 'Finalizado',
|
||
autoRestartHelper: 'Indica si el programa se reinicia automáticamente tras un fallo',
|
||
autoStart: 'Inicio automático',
|
||
autoStartHelper: 'Indica si el servicio se inicia automáticamente cuando arranca Supervisor',
|
||
},
|
||
},
|
||
disk: {
|
||
management: 'Gestión de discos',
|
||
partition: 'Partición',
|
||
unmount: 'Desmontar',
|
||
unmountHelper: '¿Quieres desmontar la partición {0}?',
|
||
mount: 'Montar',
|
||
partitionAlert:
|
||
'El particionado de disco requiere formatearlo, y los datos existentes se eliminarán. Guarda o realiza snapshots de tus datos previamente.',
|
||
mountPoint: 'Directorio de montaje',
|
||
systemDisk: 'Disco del sistema',
|
||
unpartitionedDisk: 'Disco sin particionar',
|
||
handlePartition: 'Particionar ahora',
|
||
filesystem: 'Sistema de archivos',
|
||
unmounted: 'No montado',
|
||
cannotOperate: 'No se puede operar',
|
||
systemDiskHelper: 'Aviso: El disco actual es el disco del sistema. No se puede operar sobre él.',
|
||
autoMount: 'Montaje automático',
|
||
model: 'Modelo del dispositivo',
|
||
diskType: 'Tipo de disco',
|
||
serial: 'Núm. de serie',
|
||
noFail: 'El fallo de montaje no afecta al inicio del sistema',
|
||
},
|
||
xpack: {
|
||
expiresTrialAlert:
|
||
'Aviso: Tu prueba de la edición comercial expirará en {0} días y todas las funciones comerciales dejarán de estar disponibles. Renueva o actualiza a la versión completa a tiempo.',
|
||
expiresAlert:
|
||
'Aviso: Tu licencia la edición comercial expirará en {0} días y todas las funciones comerciales dejarán de estar disponibles. Renueva pronto para asegurar el uso continuo.',
|
||
menu: 'Pro',
|
||
upage: 'Constructor Web con IA',
|
||
proAlert: 'Actualiza a la edición comercial para usar esta función',
|
||
opsReport: {
|
||
name: 'Informe de operaciones',
|
||
overview: 'Resumen',
|
||
system: 'Ejecución del host',
|
||
login: 'Inicio de sesión y seguridad',
|
||
website: 'Protección de sitios web',
|
||
resource: 'Recursos de ejecución',
|
||
cronjob: 'Tareas programadas',
|
||
alert: 'Alert Notifications',
|
||
history: 'Historial de exportación',
|
||
setting: 'Configuración',
|
||
page: {
|
||
enterprise: 'Enterprise',
|
||
scoreMeta: '{0} points deducted · {1} risks',
|
||
hostAddress: 'Host Address',
|
||
panelVersion: 'Panel Version',
|
||
cpuCores: 'Physical Cores',
|
||
coreUnit: '{0} cores',
|
||
memoryTotal: 'Memory Total',
|
||
reportDate: 'Report Date',
|
||
serverSecurityOverview: 'Server Security Operations Overview',
|
||
securityScore: 'Security Score',
|
||
overviewSummary:
|
||
'Current security level: {0}. {1} points deducted, {2} risk items found, {3} objects checked.',
|
||
riskDistribution: 'Risk Distribution',
|
||
totalDeducted: 'Total deducted',
|
||
noRiskDeducted: 'No deductions',
|
||
scoreTrend: 'Score Trend',
|
||
scoreLevelSafe: 'Safe',
|
||
scoreLevelAttention: 'Needs Attention',
|
||
scoreLevelMediumRisk: 'Medium Risk',
|
||
scoreLevelHighRisk: 'High Risk',
|
||
scoreCategoryHost: 'Host Resources',
|
||
scoreCategoryLogin: 'Login Security',
|
||
scoreCategoryWebsite: 'Websites & Certificates',
|
||
scoreCategoryCronjob: 'Cron Jobs',
|
||
scoreCategoryResource: 'Runtime Resources',
|
||
scoreDiskHigh: 'Disk {0} usage is {1}%',
|
||
scoreDiskMedium: 'Disk {0} usage is {1}%',
|
||
scoreResourceHigh: '{0} current usage is {1}%',
|
||
scoreResourceMedium: '{0} current usage is {1}%',
|
||
scoreLoadMedium: 'Current load is {0}',
|
||
scoreMonitorDisabled: 'Host monitoring is disabled',
|
||
scorePanelLoginFailedHigh: 'Panel login failed {0} times',
|
||
scorePanelLoginFailedMedium: 'Panel login failed {0} times',
|
||
scoreSSHLoginFailedHigh: 'SSH login failed {0} times',
|
||
scoreSSHLoginFailedMedium: 'SSH login failed {0} times',
|
||
scoreMFADisabled: 'MFA is disabled',
|
||
scoreAllowIPsOpen: 'Allowed IPs and bound domain are not configured or access is unrestricted',
|
||
scorePasswordExpired: 'Panel password has expired',
|
||
scorePasswordExpiring: 'Panel password expires in {0} days',
|
||
scorePanelHTTPSDisabled: 'Panel HTTPS is disabled',
|
||
scoreSSHRootLogin: 'SSH root login is allowed',
|
||
scoreSSHPasswordAuth: 'SSH password auth is enabled without key auth',
|
||
scoreSSLHigh: '{0} certificate expires in {1} days',
|
||
scoreSSLMedium: '{0} certificate expires in {1} days',
|
||
scoreWebsiteExpire: '{0} website expires in {1} days',
|
||
scoreWebsiteHTTP: '{0} does not use HTTPS',
|
||
scoreWebsiteStopped: '{0} status is abnormal',
|
||
scoreWebsiteMonitorUnavailable: 'Website monitoring detected an unavailable site',
|
||
scoreWebsiteMonitorAvailability: 'Website monitoring availability {0}% is below the threshold',
|
||
scoreWafDisabled: 'WAF is disabled and websites are not protected',
|
||
scoreWafHighRiskHit: 'WAF matched {0} risk rules in the reporting period',
|
||
scoreCronjobFailed: '{0} cron job failure records in the last 7 days',
|
||
scoreAppFailed: '{0} app is abnormal',
|
||
scoreAppStopped: '{0} app has stopped',
|
||
scoreContainerHigh: '{0} container status is abnormal',
|
||
scoreContainerExited: '{0} container has stopped',
|
||
scoreContainerResource: '{0} container resource usage is high',
|
||
attentionItems: 'Attention Items',
|
||
attentionAssets: 'Attention Assets',
|
||
riskItems: 'Risk Items',
|
||
object: 'Object',
|
||
description: 'Description',
|
||
itemUnit: 'items',
|
||
recordUnit: 'records',
|
||
certUnit: 'certs',
|
||
containerUnit: 'containers',
|
||
loginFailed: 'Failed Logins',
|
||
sslExpire: 'Certificate Expiry',
|
||
abnormalContainer: 'Abnormal Containers',
|
||
statAttentionDesc: '{0} points deducted',
|
||
statLoginDesc: 'Panel {0} · SSH {1}',
|
||
statSslDesc: '{0} certificates checked',
|
||
statContainerDesc: '{0} containers checked',
|
||
assetHostDesc: 'Max disk usage {0}%',
|
||
assetWebsiteDesc: '{0} certificates expiring soon, {1} abnormal websites',
|
||
assetResourceDesc: '{0} abnormal apps, {1} stopped apps, {2} abnormal containers',
|
||
assetCronjobDesc: '{0} failure records in the last 7 days, {1} disabled jobs',
|
||
app: 'Apps',
|
||
website: 'Websites',
|
||
websiteSsl: 'Websites / Certificates',
|
||
cronjob: 'Cron Jobs',
|
||
container: 'Containers',
|
||
sslCertificate: 'SSL Certificates',
|
||
loginSecurity: 'Login Security',
|
||
panelLogin: 'Panel Login',
|
||
sshLogin: 'SSH Login',
|
||
failedRecord: 'Failed Records',
|
||
expiredDays: 'Expired {0} days ago',
|
||
remainingDays: '{0} · {1} days left',
|
||
enabled: 'Enabled',
|
||
disabled: 'Disabled',
|
||
exportRecordFailed: 'Failed to save export record',
|
||
hostInfo: 'Host Info',
|
||
hostname: 'Hostname',
|
||
osVersion: 'OS Version',
|
||
kernelVersion: 'Kernel Version',
|
||
arch: 'Architecture',
|
||
uptime: 'Uptime',
|
||
diskUsage: 'Disk Usage',
|
||
mountPoint: 'Mount Point',
|
||
device: 'Device',
|
||
capacity: 'Capacity',
|
||
used: 'Used',
|
||
usageRate: 'Usage',
|
||
memory: 'Memory',
|
||
load: 'Load',
|
||
maxDiskUsage: 'Max Disk Usage',
|
||
panelLoginSecurity: 'Panel Login Security',
|
||
sshSecurity: 'Linux Server SSH Security',
|
||
panelFailedRecords: 'Panel Failed Login Records',
|
||
sshFailedRecords: 'SSH Failed Login Records',
|
||
location: 'Location',
|
||
configItem: 'Config Item',
|
||
currentValue: 'Current Value',
|
||
securityEntrance: 'Security Entrance',
|
||
configured: 'Configured',
|
||
notConfigured: 'Not Configured',
|
||
normal: 'Normal',
|
||
needAttention: 'Needs Attention',
|
||
allowIPs: 'Allowed IPs',
|
||
restricted: 'Restricted',
|
||
unrestricted: 'Unrestricted',
|
||
bindDomain: 'Bound Domain',
|
||
accessRestriction: 'Access Restriction',
|
||
panelHTTPS: 'Panel HTTPS',
|
||
passwordComplexity: 'Password Complexity',
|
||
sshService: 'SSH Service',
|
||
running: 'Running',
|
||
notRunning: 'Not Running',
|
||
listenPort: 'Listen Port',
|
||
read: 'Read',
|
||
rootLogin: 'Root Login',
|
||
passwordAuth: 'Password Auth',
|
||
keyAuth: 'Key Auth',
|
||
panelLoginFailed: 'Panel Failed Logins',
|
||
sshLoginFailed: 'SSH Failed Logins',
|
||
panelSecurityItems: 'Panel Security Items',
|
||
sshSecurityItems: 'SSH Security Items',
|
||
loginSecurityHealthStatus: 'Login Security Health',
|
||
adjustSSHSecurity: 'Adjust SSH Security',
|
||
viewLoginLogs: 'View Login Logs',
|
||
riskLevel: 'Risk Level',
|
||
goConfig: 'Configure',
|
||
viewMore: 'View More',
|
||
involvedIPs: '{0} IPs involved',
|
||
sessionTimeout: 'Session Timeout',
|
||
encryptionMode: 'Key Authentication',
|
||
countUnit: 'times',
|
||
recent24Hours: 'Last 24 hours',
|
||
currentService: 'Servicio actual',
|
||
riskItemsExist: '{0} risk items',
|
||
loginHealthRiskDesc:
|
||
'{0} risky configurations detected. Harden login security to reduce intrusion risk.',
|
||
loginHealthNormalDesc: 'Current login and SSH security configurations are normal',
|
||
loginHealthNormalReason: 'Login security is normal',
|
||
securityEntranceConfiguredDesc: 'Security entrance is configured to reduce default entry exposure',
|
||
securityEntranceRiskDesc: 'Security entrance is disabled. Hide the default login entry',
|
||
allowIPsRestrictedDesc: 'Allowed IPs are restricted for Panel access',
|
||
allowIPsRiskDesc: 'Access IPs are unrestricted. Configure allowed IPs for public environments',
|
||
bindDomainRestrictedDesc: 'Access domain is bound',
|
||
bindDomainRiskDesc: 'Access domain is not bound. Restrict access to a fixed domain',
|
||
accessRestrictionValue: 'Allowed IPs: {0} / Bound Domain: {1}',
|
||
accessRestrictionNormalDesc:
|
||
'Allowed IPs or bound domain is configured to restrict Panel access sources',
|
||
accessRestrictionRiskDesc:
|
||
'Allowed IPs and bound domain are not configured or access is unrestricted. Configure at least one',
|
||
panelHTTPSNormalDesc: 'Panel HTTPS is enabled',
|
||
panelHTTPSRiskDesc: 'Panel HTTPS is disabled. Login traffic may be exposed',
|
||
passwordComplexityNormalDesc: 'Password complexity verification is enabled',
|
||
passwordComplexityRiskDesc:
|
||
'Password complexity verification is disabled, increasing weak password risk',
|
||
sessionTimeoutNormalDesc: 'Session timeout is within a safer range',
|
||
sessionTimeoutRiskDesc: 'Session timeout is long. Limit idle session lifetime',
|
||
sshServiceNormalDesc: 'SSH service is running normally',
|
||
sshServiceRiskDesc: 'SSH service is not running or is abnormal',
|
||
sshPortNormalDesc: 'SSH port is changed from the default port',
|
||
sshPortRiskDesc: 'SSH still uses default port 22. Change it when appropriate',
|
||
rootLoginNormalDesc: 'Root user cannot log in directly',
|
||
rootLoginRiskDesc: 'Root user can log in directly. Disable it',
|
||
passwordAuthNormalDesc: 'SSH password login is disabled',
|
||
passwordAuthRiskDesc: 'Password login is allowed, increasing brute-force risk',
|
||
keyAuthNormalDesc: 'SSH key authentication is enabled',
|
||
keyAuthRiskDesc: 'Key authentication is disabled. Use key-based login',
|
||
encryptionModeNormalDesc: 'Key authentication configuration is enabled',
|
||
encryptionModeRiskDesc: 'Key authentication is disabled or incomplete',
|
||
websiteOverview: 'Website Overview',
|
||
primaryDomain: 'Primary Domain',
|
||
expireTime: 'Expiry Time',
|
||
domain: 'Domain',
|
||
issuer: 'Issuer',
|
||
autoRenew: 'Auto Renew',
|
||
websiteCount: 'Websites',
|
||
httpsWebsite: 'HTTPS Websites',
|
||
certCount: 'Certificates',
|
||
websiteExpire: 'Website Expiry',
|
||
database: 'Databases',
|
||
remoteDatabase: 'Remote Databases',
|
||
address: 'Address',
|
||
containerResourceUsage: 'Container Resource Usage',
|
||
spaceUsage: 'Space Usage',
|
||
reclaimable: 'Reclaimable',
|
||
containerReclaimable: 'Container Reclaimable',
|
||
image: 'Images',
|
||
volume: 'Volumes',
|
||
buildCache: 'Build Cache',
|
||
alert: 'Alert',
|
||
alertConfigured: 'Alerts Configured',
|
||
alertOperations: 'Alert Notifications',
|
||
alertTaskCount: 'Alert Tasks',
|
||
enabledAlertTask: 'Enabled Tasks',
|
||
disabledAlertTask: 'Disabled Tasks',
|
||
alertChannels: 'Notification Channels',
|
||
alertLogCount: 'Alert Logs',
|
||
alertSuccessRate: 'Alert Success Rate',
|
||
alertFailedLogs: 'Failed Alert Logs',
|
||
alertPendingLogs: 'Pending Sync Logs',
|
||
alertPending: 'Pending Sync',
|
||
alertTaskTypeStats: 'Alert Type Statistics',
|
||
alertTaskType: 'Alert Type',
|
||
alertLogStatusStats: 'Alert Execution Status',
|
||
alertHealthNormal: 'Normal',
|
||
alertHealthAttention: 'Needs Attention',
|
||
alertHealthRisk: 'High Risk',
|
||
alertHealthSummary: 'Alert Health',
|
||
alertHealthNormalReason: 'Alert tasks, notification channels, and execution logs are healthy',
|
||
alertNoChannelReason: 'No notification channel is enabled',
|
||
alertFailedLogReason: '{0} failed alert logs found',
|
||
alertPendingReason: '{0} alert logs are pending sync',
|
||
alertDisabledTaskReason: '{0} alert tasks are disabled',
|
||
alertNoTaskReason: 'No alert tasks are configured',
|
||
goAlertConfig: 'Alert Config',
|
||
goAlertLogs: 'Alert Logs',
|
||
configureAlertChannel: 'Configure Channels',
|
||
createAlertTask: 'Create Alert Task',
|
||
viewAlertTasks: 'View Alert Tasks',
|
||
viewFailedAlertLogs: 'View Failed Logs',
|
||
viewAlertLogs: 'View Alert Logs',
|
||
alertChannelSummary: '{0} / {1} channels enabled',
|
||
alertTaskEnabledDesc: '{0} tasks enabled',
|
||
alertTaskSummary: '{0} enabled, {1} disabled',
|
||
alertLogSummary: '{0} successful, {1} failed',
|
||
alertPendingDesc: '{0} logs pending sync',
|
||
alertLogSuccessDesc: 'Notification completed',
|
||
alertLogFailedDesc: 'Check channel configuration or delivery path',
|
||
alertLogPendingDesc: 'Offline or sync path pending',
|
||
failedAlertLogs: 'Failed Alert Logs',
|
||
disabledAlertTasks: 'Disabled Alert Tasks',
|
||
alertTableDisplayDesc: 'Showing {0} of {1}',
|
||
alertMsg: 'Alert Message',
|
||
alertMethod: 'Alert Method',
|
||
alertRule: 'Alert Rule',
|
||
noAlertTask: 'No alert tasks',
|
||
noFailedAlertLog: 'No failed alert logs',
|
||
noDisabledAlertTask: 'No disabled alert tasks',
|
||
alertCronjobType: 'Cron Job: {0}',
|
||
alertAllTargets: 'All Targets',
|
||
alertAllDisks: 'All Disks',
|
||
alertAllCertificates: 'All Certificates',
|
||
alertAllWebsites: 'All Websites',
|
||
alertDiskRuleShort: '{0} exceeds {1}{2}, {3} times per day',
|
||
alertAverageRuleShort: '{0} min average exceeds {1}%, {2} times per day',
|
||
alertTimeRuleShort: 'Trigger within {0} days, send {1} times',
|
||
alertSendCountRuleShort: 'Send {0} times per day',
|
||
alertConfigInvalid: 'Invalid Config',
|
||
scoreCategoryAlert: 'Alert Notifications',
|
||
scoreAlertNoTask: 'No alert tasks are configured',
|
||
scoreAlertNoEnabledTask: 'All alert tasks are disabled',
|
||
scoreAlertDisabledTask: '{0} alert tasks are disabled',
|
||
scoreAlertNoChannel: 'No alert notification channel is enabled',
|
||
scoreAlertFailedHigh: '{0} alert failure logs found',
|
||
scoreAlertFailedMedium: '{0} alert failure logs found',
|
||
scoreAlertPending: '{0} alert logs are pending sync',
|
||
statAlertDesc: '{0} enabled tasks · {1} channels',
|
||
assetAlertDesc: '{0} failed logs, {1} pending sync logs',
|
||
failedExecutionRecords: 'Failed Execution Records',
|
||
taskID: 'Task ID',
|
||
executeTime: 'Execution Time',
|
||
backupTasks: 'Backup Tasks',
|
||
systemMetrics: 'Runtime Metrics',
|
||
cpu: 'CPU',
|
||
thresholdPercent: 'Umbral {0}%',
|
||
recent24HourPeakPercent: 'Last 24h peak {0}',
|
||
loadAverage: '1 / 5 / 15 minute load: {0} / {1} / {2}',
|
||
sourceMount: 'Mount point {0}',
|
||
storageUsage: 'Storage Usage',
|
||
localDisk: 'Local Disk',
|
||
highUsagePeriods: 'High Usage Periods',
|
||
timeRange: 'Time Range',
|
||
threshold: 'Umbral',
|
||
duration: 'Duration',
|
||
peak: 'Peak',
|
||
scoring: 'Scoring',
|
||
counted: 'Counted',
|
||
notCounted: 'Not Counted',
|
||
dataSource: 'Data Source',
|
||
noHighUsagePeriod: 'No high usage periods',
|
||
monitorDisabledOrNoData: 'Host monitoring is disabled or no monitor data is available',
|
||
systemHealthStatus: 'Last 24h Host Runtime Risk',
|
||
mainReasons: 'Main Reasons',
|
||
viewHostMonitor: 'View Host Monitor',
|
||
systemHealthAttentionDesc:
|
||
'{0} risk items detected in the last 24 hours. Prioritize resource peaks and disk usage.',
|
||
systemHealthNormalDesc: 'Host runtime metrics were normal in the last 24 hours',
|
||
monitorEnabled: 'Monitoring Enabled',
|
||
cpuCoreUsage: '{0} / {1} cores',
|
||
load1Minute: '1-min load',
|
||
diskSpaceUsage: 'Disk Space Usage',
|
||
usedCapacity: 'Used / Total',
|
||
fileSystem: 'File System',
|
||
resourceTrendSummary: 'Resource Trend Summary',
|
||
last24Hours: 'Last 24 Hours',
|
||
granularityHour: 'Granularity: 1 hour',
|
||
current: 'Current',
|
||
average: 'Average',
|
||
totalItems: '{0} items',
|
||
to: 'to',
|
||
hoursShort: '{0} h',
|
||
minutesShort: '{0} min',
|
||
websiteStatus: 'Website Status',
|
||
websiteHealthStatus: 'Website Protection Health',
|
||
websiteHealthNormalReason: 'Websites, certificates, WAF, and website monitoring are healthy',
|
||
websiteHealthAttentionDesc:
|
||
'{0} risk items detected. Handle them soon to protect website security and availability.',
|
||
websiteHealthNormalDesc: 'Current website protection metrics are normal',
|
||
handleSslRisk: 'Handle Certificate Risks',
|
||
viewWaf: 'View WAF',
|
||
priority: 'Priority',
|
||
riskDescription: 'Risk Description',
|
||
deductScore: 'Deducted Score',
|
||
remaining: 'Remaining',
|
||
wafSourceIpTop: 'WAF Source IP TOP5',
|
||
wafAffectedSiteTop: 'Affected Sites TOP5',
|
||
sslRisk: 'Certificate Risks',
|
||
sslExpiring: 'Expiring Certificates',
|
||
includedInReport: 'Included in report',
|
||
needRenewal: 'Renewal recommended',
|
||
fromExpireInfo: 'From expiry information',
|
||
runningWebsite: 'Running Websites',
|
||
fromWebsiteStatus: 'From website list status',
|
||
stoppedWebsite: 'Stopped Websites',
|
||
confirmStoppedWebsite: 'Confirm whether this is expected',
|
||
expiringWebsite: 'Expiring Websites',
|
||
expiringSoon: 'Expiring Soon',
|
||
none: 'None',
|
||
noSslRisk: 'No certificates need handling',
|
||
websiteProtection: 'WAF and Website Monitoring',
|
||
websiteMonitor: 'Website Monitoring',
|
||
waf: 'WAF',
|
||
siteAvailability: 'Site Availability',
|
||
monitoredSites: 'Monitored Sites',
|
||
requestCount: 'Requests',
|
||
abnormalSites: 'Abnormal Sites',
|
||
count5xxSource: 'Counted by 5xx requests',
|
||
wafIntercept: 'WAF Blocks',
|
||
highRiskHit: 'High-risk Hits',
|
||
websiteMonitorDisabledOrNoData: 'Website monitoring is disabled or no monitor data is available',
|
||
wafDisabledOrNoData: 'WAF is disabled or no block data is available',
|
||
noWafData: 'No WAF block data',
|
||
sourceIP: 'Source IP',
|
||
hitCount: 'Hits',
|
||
level: 'Level',
|
||
attackType: 'Attack Type',
|
||
requestRatio: 'Request Ratio',
|
||
installed: 'Installed',
|
||
normalRunning: 'Running Normally',
|
||
failedStart: 'Startup Failed',
|
||
manualStopped: 'Manually Stopped',
|
||
failed: 'Failed',
|
||
success: 'Success',
|
||
canUpdate: 'Upgradable',
|
||
listSeparator: ', ',
|
||
containerCount: 'Containers',
|
||
stopped: 'Stopped',
|
||
abnormal: 'Abnormal',
|
||
abnormalContainers: 'Abnormal Containers',
|
||
resourceUsage: 'Resource Usage',
|
||
exposedContainerPorts: 'Exposed Ports',
|
||
portMapping: 'Port Mapping',
|
||
risk: 'Risk',
|
||
noAbnormalContainer: 'No abnormal containers',
|
||
noExposedContainer: 'No exposed ports detected',
|
||
publicExpose: 'Public Exposure',
|
||
privateExpose: 'Private Mapping',
|
||
resourceHealth: 'Estado de recursos en ejecución',
|
||
checkTime: 'Hora de comprobación',
|
||
resourceHealthNormalDesc: 'Las aplicaciones, bases de datos y contenedores están saludables',
|
||
resourceHealthAttentionDesc:
|
||
'Se detectaron {0} elementos de atención. Prioriza recursos detenidos y puertos públicos.',
|
||
resourceHealthRiskDesc:
|
||
'Se detectaron {0} elementos de alto riesgo. Prioriza contenedores anómalos o apps fallidas.',
|
||
resourceReasonAppFailed: '{0} aplicaciones no iniciaron',
|
||
resourceReasonAppStopped: '{0} aplicaciones detenidas',
|
||
resourceReasonContainerAbnormal: '{0} contenedores anómalos',
|
||
resourceReasonContainerStopped: '{0} contenedores detenidos',
|
||
resourceReasonPublicPorts: '{0} puertos expuestos públicamente',
|
||
resourceReasonNormal: 'Aplicaciones, bases de datos y contenedores están saludables',
|
||
viewAbnormalContainers: 'Ver contenedores anómalos',
|
||
viewExposedPorts: 'Ver puertos expuestos',
|
||
viewAppResources: 'Ver recursos de apps',
|
||
viewRuntimeResources: 'Ver recursos en ejecución',
|
||
viewContainerResources: 'Ver recursos de contenedores',
|
||
configuredServices: 'Servicios configurados',
|
||
publicPrivatePorts: '{0} públicos / {1} mapeos privados',
|
||
currentDisplayTotal: 'Mostrando {0} de {1}',
|
||
reclaimableSpace: 'Espacio recuperable',
|
||
estimatedReclaimable: 'Recuperable estimado',
|
||
unusedImageSpace: 'Espacio de imágenes sin usar',
|
||
stoppedContainerSpace: 'Espacio de contenedores detenidos',
|
||
unusedVolumeSpace: 'Espacio de volúmenes sin usar',
|
||
buildCacheSpace: 'Caché de compilación de Docker',
|
||
executionRecords: 'Execution Records',
|
||
successRate: 'Success Rate',
|
||
failedJobs: 'Failed Jobs',
|
||
recentRecoveryPoint: 'Latest Recovery Point',
|
||
remoteCoverage: 'Remote Coverage',
|
||
recent7Days: 'Last 7 days',
|
||
taskTypeStats: 'Task Type Statistics',
|
||
total: 'Total',
|
||
taskTypeDesc: '{0} enabled, {1} disabled',
|
||
failedOrAttentionTasks: 'Failed or Attention Tasks',
|
||
execution: 'Execution',
|
||
latestExecution: 'Latest Execution',
|
||
remoteBackup: 'Remote Backup',
|
||
localOnly: 'Local Only',
|
||
covered: 'Covered',
|
||
noAttentionCronjob: 'No failed or attention cron jobs',
|
||
cronjobHealth: 'Estado de tareas programadas',
|
||
cronjobHealthNormalDesc: 'La ejecución de tareas y la cobertura de copias están saludables',
|
||
cronjobHealthAttentionDesc:
|
||
'Se detectaron {0} elementos de riesgo. Prioriza tareas deshabilitadas y cobertura de copias.',
|
||
cronjobHealthRiskDesc:
|
||
'Se detectaron {0} elementos de riesgo. Prioriza tareas fallidas y deshabilitadas.',
|
||
cronjobReasonFailed: '{0} registros fallidos',
|
||
cronjobReasonDisabled: '{0} tareas deshabilitadas',
|
||
cronjobReasonLocalOnlyBackup: '{0} copias solo locales',
|
||
cronjobReasonNormal: 'La ejecución de tareas y la cobertura de copias son normales',
|
||
viewFailedRecords: 'Ver tareas fallidas',
|
||
viewCronjobTasks: 'Ver tareas programadas',
|
||
checkBackupTasks: 'Comprobar tareas de copia',
|
||
generationRule: 'Generation Rules',
|
||
scheduleDaily: 'Daily',
|
||
scheduleDailyDesc: 'Generate a report for the last 24 hours at 09:00 every day',
|
||
scheduleWeekly: 'Weekly',
|
||
scheduleWeeklyDesc: 'Generate a report for the last 7 days at 09:00 every Monday',
|
||
scheduleMonthly: 'Monthly',
|
||
scheduleMonthlyDesc: 'Generate a report for the previous month at 09:00 on the 1st',
|
||
scheduleCurrentDaily: 'Every day at 09:00, generate the last 24 hours report · Next {0}',
|
||
scheduleCurrentWeekly: 'Every Monday at 09:00, generate the last 7 days report · Next {0}',
|
||
scheduleCurrentMonthly: 'On the 1st at 09:00, generate the previous month report · Next {0}',
|
||
notificationMethod: 'Notification Methods',
|
||
channel: 'Channel',
|
||
receiver: 'Receiver',
|
||
systemThreshold: 'Umbral del sistema',
|
||
metric: 'Metric',
|
||
currentRule: 'Current Rule',
|
||
hostMonitor: 'Host Monitor',
|
||
monitorInterval: 'Monitor Interval',
|
||
exportSettings: 'Export Settings',
|
||
lastExportReport: 'Recent Generated Result',
|
||
noLastExportReport: 'No exported report records',
|
||
lastExportStatus: 'Last Export Status',
|
||
exportFile: 'Export File',
|
||
generateTime: 'Generated At',
|
||
fileSize: 'File Size',
|
||
viewExportHistory: 'View Export History',
|
||
defaultFormat: 'Default Format',
|
||
savePath: 'Save Directory',
|
||
savePathRequired: 'Set the report save directory',
|
||
readOnlyPermissionTip:
|
||
'The current account can only view Ops Report settings. Contact an administrator to make changes.',
|
||
refreshing: 'Refreshing',
|
||
exporting: 'Exporting',
|
||
exportFailed: 'Failed to export report',
|
||
generating: 'Generating',
|
||
saved: 'Saved',
|
||
saveFailed: 'Failed to save settings',
|
||
generateNow: 'Generate Now',
|
||
generateSuccess: 'Report file generated: {0}',
|
||
generateFailed: 'Failed to generate report',
|
||
enabledStatus: 'Enabled',
|
||
disabledStatus: 'Disabled',
|
||
thresholdRule: 'Threshold {0}, trigger after {1} consecutive times',
|
||
hours: '{0} hours',
|
||
minutes: '{0} minutes',
|
||
seconds: '{0} seconds',
|
||
totalExports: 'Total Exports',
|
||
successExports: 'Successful Exports',
|
||
failedExports: 'Failed Exports',
|
||
reportName: 'Report Name',
|
||
exportFormat: 'Export Format',
|
||
operator: 'Operator',
|
||
triggerType: 'Trigger',
|
||
filePath: 'File Path',
|
||
manualExport: 'Manual',
|
||
scheduledExport: 'Scheduled',
|
||
exportResult: 'Export Result',
|
||
exportDetail: 'Export Detail',
|
||
},
|
||
},
|
||
user: {
|
||
user: 'Usuario',
|
||
userInfo: 'Información de usuario',
|
||
userManage: 'Gestión de usuarios',
|
||
superAdmin: 'Superadministrador',
|
||
superAdminDesc:
|
||
'Tiene permisos completos de administración del sistema y puede gestionar todos los recursos y configuraciones.',
|
||
nodeAdmin: 'Administrador de nodo',
|
||
nodeAdminDesc:
|
||
'Tiene permisos de administración para nodos especificados y puede gestionar recursos y configuraciones dentro de esos nodos.',
|
||
readOnly: 'Solo lectura',
|
||
readOnlyDesc: 'Tiene acceso de solo lectura a todos los recursos y configuraciones del sistema.',
|
||
bindNode: 'Vincular nodo',
|
||
boundUsers: 'Usuarios vinculados',
|
||
role: 'Rol',
|
||
roleName: 'Nombre',
|
||
permission: 'Permisos',
|
||
permissionDuplicate: 'Solo se puede asignar un rol a cada nodo',
|
||
nodeAdminMasterConfirm:
|
||
'Los permisos de administrador de nodo en el nodo principal son elevados. Asígnelos con cuidado según las necesidades reales de administración.',
|
||
permissionLinkageTip:
|
||
'Si hay dependencias, los permisos relacionados se seleccionarán automáticamente; tras quitarlos manualmente, algunas funciones pueden mostrar "El usuario actual no tiene permiso".',
|
||
allViewPermissionHelper: 'Concede todos los permisos de visualización para AI Gateway.',
|
||
apiKeyViewPermissionHelper: 'Solo permite ver las API Keys de AI Gateway.',
|
||
masterOnlyPermission: 'Permiso del nodo principal',
|
||
masterOnlyPermissionHelper: 'Este permiso solo tiene efecto en el nodo principal.',
|
||
view: 'Ver',
|
||
manage: 'Gestionar',
|
||
},
|
||
app: {
|
||
app: 'APP',
|
||
title: 'Alias del Panel',
|
||
titleHelper: 'El alias del panel se usa para mostrar en la APP (alias por defecto)',
|
||
qrCode: 'Código QR',
|
||
apiStatusHelper: 'La APP del Panel necesita que la API esté habilitada',
|
||
apiInterfaceHelper: 'Permite acceso a la API del panel (debe estar habilitada para la APP)',
|
||
apiInterfaceHelper1:
|
||
'El acceso requiere añadir el visitante a la lista blanca; para IPs dinámicas se recomienda usar 0.0.0.0/0 (IPv4) o ::/0 (IPv6)',
|
||
qrCodeExpired: 'Tiempo de refresco',
|
||
apiLeakageHelper: 'No divulgues el código QR. Úsalo solo en entornos de confianza.',
|
||
},
|
||
waf: {
|
||
name: 'WAF',
|
||
blackWhite: 'Lista Blanca y Negra',
|
||
globalSetting: 'Configuración Global',
|
||
websiteSetting: 'Configuración del Sitio',
|
||
blockRecords: 'Registros Bloqueados',
|
||
world: 'Mundial',
|
||
china: 'China',
|
||
intercept: 'Intercepciones',
|
||
request: 'Peticiones',
|
||
count4xx: 'Cantidad 4xx',
|
||
count5xx: 'Cantidad 5xx',
|
||
todayStatus: 'Estado de hoy',
|
||
reqMap: 'Mapa de ataques (últimos 30 días)',
|
||
resource: 'Fuente',
|
||
count: 'Cantidad',
|
||
hight: 'Alto',
|
||
low: 'Bajo',
|
||
reqCount: 'Solicitudes',
|
||
interceptCount: 'Número de intercepciones',
|
||
requestTrends: 'Tendencia de solicitudes (últimos 7 días)',
|
||
interceptTrends: 'Tendencia de intercepciones (últimos 7 días)',
|
||
whiteList: 'Whitelist',
|
||
blackList: 'Blacklist',
|
||
ipBlackListHelper: 'Las IP en la blacklist no pueden acceder al sitio web',
|
||
ipWhiteListHelper: 'Las IP en la whitelist saltan todas las restricciones',
|
||
uaBlackListHelper: 'Las peticiones con User-Agent en blacklist serán bloqueadas',
|
||
uaWhiteListHelper: 'Las peticiones con User-Agent en whitelist saltan todas las restricciones',
|
||
urlBlackListHelper: 'Las peticiones a URLs en blacklist serán bloqueadas',
|
||
urlWhiteListHelper: 'Las peticiones a URLs en whitelist saltan todas las restricciones',
|
||
ccHelper:
|
||
'Si un sitio recibe más de {1} peticiones de la misma IP en {0} segundos, la IP será bloqueada por {2}',
|
||
blockTime: 'Duración de bloqueo',
|
||
attackHelper: 'Si las intercepciones acumuladas superan {1} en {0} segundos, la IP se bloquea por {2}',
|
||
notFoundHelper: 'Si el número de errores 404 supera {1} en {0} segundos, la IP será bloqueada por {2}',
|
||
frequencyLimit: 'Límite de frecuencia',
|
||
regionLimit: 'Límite regional',
|
||
defaultRule: 'Reglas por defecto',
|
||
accessFrequencyLimit: 'Límite de frecuencia de acceso',
|
||
attackLimit: 'Límite de frecuencia de ataques',
|
||
notFoundLimit: 'Límite de 404',
|
||
urlLimit: 'Límite de frecuencia por URL',
|
||
urlLimitHelper: 'Configura el límite de acceso para una URL específica',
|
||
sqliDefense: 'Protección contra SQL Injection',
|
||
sqliHelper: 'Detecta SQL Injection en peticiones y las bloquea',
|
||
xssHelper: 'Detecta XSS en peticiones y las bloquea',
|
||
xssDefense: 'Protección contra XSS',
|
||
uaDefense: 'Reglas contra User-Agent malicioso',
|
||
uaHelper: 'Incluye reglas para bots maliciosos comunes',
|
||
argsDefense: 'Reglas contra parámetros maliciosos',
|
||
argsHelper: 'Bloquea peticiones con parámetros maliciosos',
|
||
cookieDefense: 'Reglas contra cookies maliciosas',
|
||
cookieHelper: 'Prohíbe cookies maliciosas en las peticiones',
|
||
headerDefense: 'Reglas contra cabeceras maliciosas',
|
||
headerHelper: 'Prohíbe cabeceras maliciosas en las peticiones',
|
||
httpRule: 'Reglas de métodos HTTP',
|
||
httpHelper:
|
||
'Define qué métodos HTTP están permitidos. Ejemplo: solo GET. Para restringir, desactiva los métodos no deseados',
|
||
geoRule: 'Restricciones geográficas',
|
||
geoHelper: 'Restringe accesos desde ciertas regiones. Ejemplo: permitir solo China, bloqueando el resto',
|
||
ipLocation: 'Ubicación IP',
|
||
action: 'Acción',
|
||
ruleType: 'Tipo de ataque',
|
||
ipHelper: 'Introduce la dirección IP',
|
||
attackLog: 'Log de ataques',
|
||
rule: 'Regla',
|
||
ipArr: 'Rango IPv4',
|
||
ipStart: 'IP inicio',
|
||
ipEnd: 'IP fin',
|
||
ipv4: 'IPv4',
|
||
ipv6: 'IPv6',
|
||
urlDefense: 'Reglas de URL',
|
||
urlHelper: 'URL prohibida',
|
||
dirFilter: 'Filtro de directorios',
|
||
sqlInject: 'SQL Injection',
|
||
xss: 'XSS',
|
||
phpExec: 'Ejecución de scripts PHP',
|
||
oneWordTrojan: 'Troyano de una línea',
|
||
appFilter: 'Filtrado de directorios peligrosos',
|
||
webShell: 'Webshell',
|
||
args: 'Parámetros maliciosos',
|
||
protocolFilter: 'Filtro de protocolos',
|
||
javaFilter: 'Filtro de ficheros Java peligrosos',
|
||
scannerFilter: 'Filtro de escáneres',
|
||
escapeFilter: 'Filtro de escapes',
|
||
customRule: 'Reglas personalizadas',
|
||
httpMethod: 'Filtro de métodos HTTP',
|
||
fileExt: 'Restricción de extensiones',
|
||
fileExtHelper: 'Extensiones prohibidas para subir',
|
||
deny: 'Prohibir',
|
||
allow: 'Permitir',
|
||
field: 'Objeto',
|
||
pattern: 'Condición',
|
||
ruleContent: 'Contenido',
|
||
contain: 'contiene',
|
||
equal: 'igual',
|
||
regex: 'expresión regular',
|
||
notEqual: 'distinto',
|
||
customRuleHelper: 'Acciones basadas en condiciones definidas',
|
||
actionAllow: 'Permitir',
|
||
blockIP: 'Bloquear IP',
|
||
code: 'Código de respuesta',
|
||
noRes: 'Desconectar (444)',
|
||
badReq: 'Parámetros inválidos (400)',
|
||
forbidden: 'Acceso prohibido (403)',
|
||
serverErr: 'Error de servidor (500)',
|
||
resHtml: 'Página de respuesta',
|
||
allowHelper: 'Permitir acceso salta las siguientes reglas del WAF, úsalo con precaución',
|
||
captcha: 'Verificación humano-máquina',
|
||
fiveSeconds: 'Verificación de 5 segundos',
|
||
location: 'Región',
|
||
redisConfig: 'Configuración Redis',
|
||
redisHelper: 'Habilita Redis para persistir IPs bloqueadas temporalmente',
|
||
wafHelper: 'Todos los sitios perderán protección al deshabilitar',
|
||
attackIP: 'IP atacante',
|
||
attackParam: 'Detalles del ataque',
|
||
execRule: 'Regla aplicada',
|
||
acl: 'ACL',
|
||
sql: 'SQL Injection',
|
||
cc: 'Límite de frecuencia de acceso',
|
||
isBlocking: 'Bloqueado',
|
||
isFree: 'Libre',
|
||
unLock: 'Desbloquear',
|
||
unLockHelper: '¿Quieres desbloquear la IP: {0}?',
|
||
saveDefault: 'Guardar por defecto',
|
||
saveToWebsite: 'Aplicar al sitio web',
|
||
saveToWebsiteHelper: '¿Aplicar esta configuración a todos los sitios?',
|
||
websiteHelper:
|
||
'Estas son configuraciones por defecto al crear sitios. Para aplicar, edítalo en el sitio específico',
|
||
websiteHelper2:
|
||
'Configuraciones por defecto para sitios nuevos, modifica en cada sitio para que tengan efecto',
|
||
ipGroup: 'Grupo de IPs',
|
||
ipGroupHelper: 'Una IP o rango por línea. Soporta IPv4 e IPv6. Ejemplo: 192.168.1.1 o 192.168.1.0/24',
|
||
ipBlack: 'IP blacklist',
|
||
openRestyAlert: 'Se requiere versión de OpenResty mayor a {0}',
|
||
initAlert:
|
||
'La primera vez es necesario inicializar. El archivo de configuración será modificado y la configuración previa se perderá. Haz copia de seguridad',
|
||
initHelper: 'La inicialización borrará la configuración existente del WAF. ¿Seguro que quieres continuar?',
|
||
mainSwitch: 'Interruptor principal',
|
||
websiteAlert: 'Crea un sitio primero',
|
||
defaultUrlBlack: 'Reglas de URL',
|
||
htmlRes: 'Página de intercepción',
|
||
urlSearchHelper: 'Introduce la URL (búsqueda difusa)',
|
||
toCreate: 'Crear',
|
||
closeWaf: 'Cerrar WAF',
|
||
closeWafHelper: 'Cerrar WAF desprotege el sitio. ¿Continuar?',
|
||
addblack: 'Añadir a blacklist',
|
||
addwhite: 'Añadir a whitelist',
|
||
addblackHelper: '¿Añadir IP:{0} a la blacklist?',
|
||
addwhiteHelper: '¿Añadir IP:{0} a la whitelist?',
|
||
defaultUaBlack: 'Regla de User-Agent',
|
||
defaultIpBlack: 'Grupo de IPs maliciosas',
|
||
cookie: 'Reglas de cookies',
|
||
urlBlack: 'Blacklist de URL',
|
||
uaBlack: 'Blacklist de User-Agent',
|
||
attackCount: 'Límite de frecuencia de ataques',
|
||
fileExtCheck: 'Restricción de subida',
|
||
geoRestrict: 'Restricción geográfica',
|
||
attacklog: 'Registro de intercepciones',
|
||
unknownWebsite: 'Acceso a dominio no autorizado',
|
||
geoRuleEmpty: 'La región no puede estar vacía',
|
||
unknown: 'Sitio no existe',
|
||
geo: 'Restricción por región',
|
||
revertHtml: '¿Restaurar {0} como página por defecto?',
|
||
five_seconds: 'Verificación de 5 segundos',
|
||
header: 'Reglas de cabeceras',
|
||
methodWhite: 'Reglas HTTP',
|
||
expiryDate: 'Fecha de expiración',
|
||
expiryDateHelper: 'Tras validación exitosa, no se verificará de nuevo durante el periodo de validez',
|
||
defaultIpBlackHelper: 'IPs maliciosas recopiladas de internet para bloquear accesos',
|
||
notFoundCount: 'Límite de errores 404',
|
||
matchValue: 'Valor de coincidencia',
|
||
headerName: 'Debe iniciar con letra o número, admite "-", longitud 3-30',
|
||
cdnHelper: 'Para webs con CDN, obtener IP real aquí',
|
||
clearLogWarn: 'No podrás recuperar los logs borrados. ¿Continuar?',
|
||
commonRuleHelper: 'Las reglas usan coincidencia difusa',
|
||
blockIPHelper:
|
||
'Las IP bloqueadas se guardan temporalmente en OpenResty y se liberan tras reinicio. Para bloqueo permanente usa reglas',
|
||
addWhiteUrlHelper: '¿Añadir URL {0} a la whitelist?',
|
||
dashHelper: 'La versión community también soporta configuraciones globales y de sitio',
|
||
wafStatusHelper: 'WAF no está activo, habilítalo en Configuración Global',
|
||
ccMode: 'Modo',
|
||
global: 'Modo global',
|
||
uriMode: 'Modo URL',
|
||
globalHelper: 'Modo global: cuando el total de peticiones a cualquier URL supera el límite en el periodo',
|
||
uriModeHelper: 'Modo URL: cuando las peticiones a una URL superan el límite en el periodo',
|
||
ip: 'Blacklist de IPs',
|
||
globalSettingHelper:
|
||
'Las configuraciones con etiqueta [Website] requieren activarse también en la Configuración del Sitio',
|
||
globalSettingHelper2: 'Debe habilitarse en [Configuración Global] y [Configuración del Sitio] a la vez',
|
||
urlCCHelper: 'Más de {1} peticiones a esta URL en {0} segundos bloquean la IP por {2}',
|
||
urlCCHelper2: 'La URL no puede contener parámetros',
|
||
notContain: 'No contiene',
|
||
urlcc: 'Límite de frecuencia por URL',
|
||
method: 'Método de petición',
|
||
addIpsToBlock: 'Bloqueo masivo de IPs',
|
||
addUrlsToWhite: 'Añadir URLs en whitelist en lote',
|
||
noBlackIp: 'IP ya bloqueada',
|
||
noWhiteUrl: 'URL ya en whitelist',
|
||
spiderIpHelper:
|
||
'Incluye Baidu, Bing, Google, 360, Shenma, Sogou, ByteDance, DuckDuckGo, Yandex. Al cerrar se bloquea todo acceso de crawlers',
|
||
spiderIp: 'Pool de IPs de crawlers',
|
||
geoIp: 'Base de datos IP',
|
||
geoIpHelper: 'Usada para geolocalizar IPs',
|
||
stat: 'Reporte de ataques',
|
||
statTitle: 'Reporte',
|
||
attackIp: 'IP',
|
||
attackCountNum: 'Cantidad',
|
||
percent: 'Porcentaje',
|
||
addblackUrlHelper: '¿Añadir URL {0} a la blacklist?',
|
||
rce: 'Remote Code Execution',
|
||
software: 'Software',
|
||
cveHelper: 'Incluye vulnerabilidades de software y frameworks comunes',
|
||
vulnCheck: 'Reglas adicionales',
|
||
ssrf: 'Vulnerabilidad SSRF',
|
||
afr: 'Lectura arbitraria de ficheros',
|
||
ua: 'Acceso no autorizado',
|
||
id: 'Divulgación de información',
|
||
aa: 'Bypass de autenticación',
|
||
dr: 'Directory Traversal',
|
||
xxe: 'Vulnerabilidad XXE',
|
||
suid: 'Vulnerabilidad de serialización',
|
||
dos: 'Denegación de servicio',
|
||
afd: 'Descarga arbitraria de ficheros',
|
||
sqlInjection: 'SQL Injection',
|
||
afw: 'Escritura arbitraria de ficheros',
|
||
il: 'Fuga de información',
|
||
clearAllLog: 'Borrar todos los logs',
|
||
exportLog: 'Exportar logs',
|
||
appRule: 'Reglas de aplicación',
|
||
appRuleHelper: 'Reglas de apps comunes, reduce falsos positivos. Un sitio solo puede usar una regla',
|
||
logExternal: 'Excluir tipos de registros',
|
||
ipWhite: 'Whitelist de IPs',
|
||
urlWhite: 'Whitelist de URLs',
|
||
uaWhite: 'Whitelist de User-Agent',
|
||
logExternalHelper:
|
||
'Tipos de registro excluidos no se guardan. Whitelist/blacklist, restricciones regionales y reglas generan muchos logs, se recomienda excluir',
|
||
ssti: 'Ataque SSTI',
|
||
crlf: 'Inyección CRLF',
|
||
strict: 'Modo estricto',
|
||
strictHelper: 'Usa reglas más estrictas para validar peticiones',
|
||
saveLog: 'Guardar log',
|
||
remoteURLHelper: 'La URL remota debe tener solo una IP por línea y sin otros caracteres',
|
||
notFound: 'No encontrado (404)',
|
||
serviceUnavailable: 'Servicio no disponible (503)',
|
||
gatewayTimeout: 'Tiempo de espera de gateway (504)',
|
||
belongToIpGroup: 'Pertenece a grupo de IPs',
|
||
notBelongToIpGroup: 'No pertenece a grupo de IPs',
|
||
unknownWebsiteKey: 'Dominio desconocido',
|
||
special: 'Especial',
|
||
fileToLarge: 'Archivo supera 1MB y no puede subirse',
|
||
uploadOverLimit: 'El archivo supera el límite, máximo 1',
|
||
importRuleHelper: 'Una regla por línea',
|
||
},
|
||
monitor: {
|
||
'360': '360 Search',
|
||
name: 'Monitorización Web',
|
||
pv: 'Page Views (PV)',
|
||
uv: 'Unique Visitors (UV)',
|
||
flow: 'Tráfico',
|
||
ip: 'IP',
|
||
spider: 'Crawler',
|
||
visitors: 'Tendencia de visitantes',
|
||
today: 'Hoy',
|
||
last7days: 'Últimos 7 días',
|
||
last30days: 'Últimos 30 días',
|
||
uvMap: 'Mapa de visitantes (30 días)',
|
||
qps: 'Solicitudes en tiempo real (por minuto)',
|
||
flowSec: 'Tráfico en tiempo real (por minuto)',
|
||
excludeCode: 'Excluir códigos de estado',
|
||
excludeUrl: 'Excluir URLs',
|
||
excludeExt: 'Excluir extensiones',
|
||
cdnHelper: 'Obtiene la IP real desde la cabecera del CDN',
|
||
reqRank: 'Ranking de visitas',
|
||
refererDomain: 'Dominio referente',
|
||
os: 'Sistema operativo',
|
||
browser: 'Navegador/Cliente',
|
||
device: 'Dispositivo',
|
||
showMore: 'Más',
|
||
unknown: 'Otro',
|
||
pc: 'PC',
|
||
mobile: 'Móvil',
|
||
wechat: 'WeChat',
|
||
machine: 'Máquina',
|
||
tencent: 'Navegador Tencent',
|
||
ucweb: 'UC Browser',
|
||
'2345explorer': '2345 Browser',
|
||
huaweibrowser: 'Navegador Huawei',
|
||
log: 'Logs de solicitudes',
|
||
statusCode: 'Código de estado',
|
||
requestTime: 'Tiempo de respuesta',
|
||
flowRes: 'Tráfico de respuesta',
|
||
method: 'Método HTTP',
|
||
statusCodeHelper: 'Introduce el código de estado',
|
||
statusCodeError: 'Código de estado inválido',
|
||
methodHelper: 'Introduce el método HTTP',
|
||
all: 'Todos',
|
||
baidu: 'Baidu',
|
||
google: 'Google',
|
||
bing: 'Bing',
|
||
bytes: 'Bytedance',
|
||
sogou: 'Sogou',
|
||
failed: 'Error',
|
||
ipCount: 'Número de IPs',
|
||
spiderCount: 'Solicitudes de crawlers',
|
||
averageReqTime: 'Tiempo de respuesta medio',
|
||
totalFlow: 'Tráfico total',
|
||
logSize: 'Tamaño de logs',
|
||
realIPType: 'Método de obtención de IP real',
|
||
fromHeader: 'Desde cabecera HTTP',
|
||
fromHeaders: 'Desde lista de cabeceras',
|
||
header: 'Cabecera HTTP',
|
||
cdnConfig: 'Configuración CDN',
|
||
xff1: 'Proxy nivel 1 (X-Forwarded-For)',
|
||
xff2: 'Proxy nivel 2 (X-Forwarded-For)',
|
||
xff3: 'Proxy nivel 3 (X-Forwarded-For)',
|
||
xffHelper: 'Ejemplo: X-Forwarded-For: <cliente>,<proxy1>,<proxy2>,<proxy3>. El último proxy es <proxy3>',
|
||
headersHelper: 'Obtiene la IP real de cabeceras comunes de CDN, tomando la primera disponible',
|
||
monitorCDNHelper: 'Modificar la config de CDN en monitorización también actualiza la del WAF',
|
||
wafCDNHelper: 'Modificar la config de CDN en el WAF también actualiza la monitorización',
|
||
statusErr: 'Formato de código de estado inválido',
|
||
shenma: 'Shenma',
|
||
duckduckgo: 'DuckDuckGo',
|
||
excludeUri: 'Excluir URIs',
|
||
top100Helper: 'Mostrar top 100',
|
||
logSaveDay: 'Retención de logs (días)',
|
||
cros: 'Chrome OS',
|
||
theworld: 'TheWorld Browser',
|
||
edge: 'Microsoft Edge',
|
||
maxthon: 'Maxthon Browser',
|
||
monitorStatusHelper: 'Monitorización no habilitada, actívala en Configuración',
|
||
excludeIp: 'Excluir IPs',
|
||
excludeUa: 'Excluir User-Agent',
|
||
remotePort: 'Puerto remoto',
|
||
unknown_browser: 'Navegador desconocido',
|
||
unknown_os: 'SO desconocido',
|
||
unknown_device: 'Dispositivo desconocido',
|
||
logSaveSize: 'Tamaño máximo de logs',
|
||
logSaveSizeHelper: 'Tamaño máximo de log por sitio',
|
||
'360se': '360 Secure Browser',
|
||
websites: 'Lista de sitios',
|
||
trend: 'Estadísticas de tendencias',
|
||
reqCount: 'Número de solicitudes',
|
||
uriHelper: 'Puedes usar /test/* o /*/index.php para excluir URIs',
|
||
},
|
||
tamper: {
|
||
tamper: 'Anti-manipulación web',
|
||
ignoreTemplate: 'Plantilla de Exclusión',
|
||
protectTemplate: 'Plantilla de Protección',
|
||
ignoreTemplateHelper:
|
||
'Ingrese contenido de exclusión, separado por Enter o espacio. (Directorio específico ./log o nombre de directorio tmp, para excluir archivos necesita ingresar archivo específico ./data/test.html)',
|
||
protectTemplateHelper:
|
||
'Ingrese contenido de protección, separado por Enter o espacio. (Archivo específico ./index.html, extensión de archivo .html, tipo de archivo js, para proteger directorios necesita ingresar directorio específico ./log)',
|
||
templateContent: 'Contenido de Plantilla',
|
||
template: 'Plantilla',
|
||
saveTemplate: 'Guardar como Plantilla',
|
||
tamperHelper1:
|
||
'Para sitios web de implementación con un clic, se recomienda habilitar la protección contra manipulaciones del directorio de aplicaciones; si el sitio web no se puede usar normalmente o falla la copia de seguridad/restauración, desactive primero la protección contra manipulaciones;',
|
||
tamperHelper2:
|
||
'Restringirá las operaciones de lectura/escritura, eliminación, permisos y modificación de propietario para archivos protegidos en directorios no excluidos',
|
||
tamperPath: 'Directorio de Protección',
|
||
tamperPathEdit: 'Modificar Ruta',
|
||
log: 'Registro de Bloqueo',
|
||
totalProtect: 'Protección Total',
|
||
todayProtect: 'Protección de Hoy',
|
||
templateRule: 'Longitud 1-512, el nombre no puede contener {0} y otros símbolos',
|
||
ignore: 'Excluir',
|
||
ignoreHelper:
|
||
'Seleccione o ingrese contenido de exclusión, separado por Enter o espacio. (Directorio específico ./log o nombre de directorio tmp, para excluir archivos necesita ingresar o seleccionar archivo específico ./data/test.html)',
|
||
protect: 'Proteger',
|
||
protectHelper:
|
||
'Seleccione o ingrese contenido de protección, separado por Enter o espacio. (Archivo específico ./index.html, extensión de archivo .html, tipo de archivo js, para proteger directorios necesita ingresar o seleccionar directorio específico ./log)',
|
||
tamperHelper00: 'La exclusión y protección solo admiten rutas relativas;',
|
||
tamperHelper01:
|
||
'Después de habilitar la protección contra manipulaciones, el sistema restringirá las operaciones de creación, edición y eliminación de archivos protegidos en directorios no excluidos;',
|
||
tamperHelper02:
|
||
'Prioridad: Protección de ruta específica > Exclusión de ruta específica > Protección > Exclusión',
|
||
tamperHelper03:
|
||
'Las operaciones de monitoreo solo se dirigen a directorios no excluidos, monitoreando la creación de archivos no protegidos en estos directorios.',
|
||
disableHelper:
|
||
'A punto de desactivar la protección contra manipulaciones para los siguientes sitios web, ¿continuar?',
|
||
appendOnly: 'Solo añadir',
|
||
appendOnlyHelper:
|
||
'Restringe el borrado en este directorio, solo se permite añadir directorios excluidos o archivos no protegidos',
|
||
immutable: 'Inmutable',
|
||
immutableHelper: 'Restringe edición, borrado, permisos y cambio de propietario del archivo',
|
||
onWatch: 'Monitorización',
|
||
onWatchHelper:
|
||
'Monitoriza y bloquea la creación de archivos protegidos o directorios no excluidos en este directorio',
|
||
forceStop: 'Forzar cierre',
|
||
forceStopHelper: 'Se forzará la desactivación de la función anti-manipulación en este sitio. ¿Continuar?',
|
||
},
|
||
setting: {
|
||
setting: 'Configuración del panel',
|
||
title: 'Descripción del panel',
|
||
titleHelper:
|
||
'Se mostrará en la página de login (ej.: Panel de administración de servidores Linux, recomendado 8-15 caracteres)',
|
||
logo: 'Logo (sin texto)',
|
||
logoHelper:
|
||
'Se mostrará arriba a la izquierda cuando el menú esté colapsado (tamaño recomendado: 82px*82px)',
|
||
logoWithText: 'Logo (con texto)',
|
||
logoWithTextHelper:
|
||
'Se mostrará arriba a la izquierda cuando el menú esté expandido (tamaño recomendado: 185px*55px)',
|
||
favicon: 'Icono del sitio',
|
||
faviconHelper: 'Icono del sitio (tamaño recomendado: 16px*16px)',
|
||
setDefault: 'Restaurar por defecto',
|
||
setHelper: 'Se guardará la configuración actual. ¿Continuar?',
|
||
setDefaultHelper: 'Todas las configuraciones se restaurarán a valores por defecto. ¿Continuar?',
|
||
logoGroup: 'Logo',
|
||
imageGroup: 'Imagen',
|
||
loginImage: 'Imagen',
|
||
loginImageHelper: 'Se muestra en la página de login (tamaño recomendado: 500*416px)',
|
||
loginBgType: 'Tipo de fondo',
|
||
loginBgImage: 'Imagen de fondo',
|
||
loginBgImageHelper: 'Se muestra como fondo de la página de login (tamaño recomendado: 1920*1080px)',
|
||
loginBgColor: 'Color de fondo',
|
||
loginBgColorHelper: 'Se muestra como color de fondo en la página de login',
|
||
image: 'Imagen',
|
||
bgColor: 'Color de fondo',
|
||
loginGroup: 'Página de login',
|
||
loginBtnLinkColor: 'Color de botones/enlaces',
|
||
loginBtnLinkColorHelper: 'Se aplica a botones y enlaces en la página de login',
|
||
},
|
||
helper: {
|
||
wafTitle1: 'Mapa de Intercepciones',
|
||
wafContent1: 'Muestra la distribución geográfica de intercepciones en los últimos 30 días',
|
||
wafTitle2: 'Restricciones de Acceso Regional',
|
||
wafContent2: 'Restringe las fuentes de acceso al sitio web según la ubicación geográfica',
|
||
wafTitle3: 'Página de Intercepción Personalizada',
|
||
wafContent3: 'Crea una página personalizada que se muestre tras interceptar una petición',
|
||
wafTitle4: 'Reglas Personalizadas (ACL)',
|
||
wafContent4: 'Intercepta peticiones según reglas definidas por el usuario',
|
||
tamperTitle1: 'Monitoreo de Integridad de Archivos',
|
||
tamperContent1:
|
||
'Supervisa la integridad de los archivos del sitio, incluyendo archivos core, scripts y de configuración.',
|
||
tamperTitle2: 'Escaneo y Detección en Tiempo Real',
|
||
tamperContent2:
|
||
'Detecta archivos anómalos o manipulados escaneando en tiempo real el sistema de archivos del sitio.',
|
||
tamperTitle3: 'Configuración de Permisos de Seguridad',
|
||
tamperContent3:
|
||
'Restringe el acceso a archivos del sitio mediante permisos adecuados y políticas de control de acceso, reduciendo la superficie de ataque.',
|
||
tamperTitle4: 'Registro y Análisis',
|
||
tamperContent4:
|
||
'Registra accesos y operaciones sobre archivos para auditoría y análisis posteriores, ayudando a detectar amenazas de seguridad.',
|
||
settingTitle1: 'Mensaje de Bienvenida Personalizado',
|
||
settingContent1: 'Configura un mensaje de bienvenida en la página de login de 1Panel.',
|
||
settingTitle2: 'Logo Personalizado',
|
||
settingContent2: 'Permite subir logos con nombres de marca u otro texto.',
|
||
settingTitle3: 'Icono del Sitio Web',
|
||
settingContent3:
|
||
'Permite subir un icono personalizado para reemplazar el favicon por defecto, mejorando la experiencia del usuario.',
|
||
monitorTitle1: 'Tendencia de Visitantes',
|
||
monitorContent1: 'Genera estadísticas y muestra la tendencia de visitantes del sitio web',
|
||
monitorTitle2: 'Mapa de Visitantes',
|
||
monitorContent2: 'Muestra la distribución geográfica de los visitantes del sitio',
|
||
monitorTitle3: 'Estadísticas de Acceso',
|
||
monitorContent3:
|
||
'Genera estadísticas de solicitudes al sitio web, incluyendo crawlers, dispositivos de acceso, estados de respuesta, etc.',
|
||
monitorTitle4: 'Monitoreo en Tiempo Real',
|
||
monitorContent4:
|
||
'Supervisa en tiempo real la información de peticiones al sitio web, incluyendo número de solicitudes y tráfico.',
|
||
alertTitle1: 'Alertas por SMS',
|
||
alertContent1:
|
||
'Cuando se detecta uso anómalo de recursos del servidor, expiración de sitios o certificados, nueva versión disponible o expiración de contraseñas, los usuarios son notificados por SMS para garantizar respuesta oportuna.',
|
||
alertTitle2: 'Registro de Alertas',
|
||
alertContent2:
|
||
'Permite a los usuarios consultar el historial de alertas para facilitar el seguimiento y análisis de eventos pasados.',
|
||
alertTitle3: 'Configuración de Alertas',
|
||
alertContent3:
|
||
'Permite configurar números de teléfono, frecuencia y horarios de notificación para alertas más personalizadas.',
|
||
nodeDashTitle1: 'Gestión de Aplicaciones',
|
||
nodeDashContent1:
|
||
'Gestión unificada de aplicaciones multi-nodo, admite monitoreo de estado, inicio/parada rápida, conexión de terminal y copia de seguridad',
|
||
nodeDashTitle2: 'Gestión de Sitios Web',
|
||
nodeDashContent2:
|
||
'Gestión unificada de sitios web multi-nodo, monitoreo de estado en tiempo real, admite inicio/parada por lotes y copia de seguridad rápida',
|
||
nodeDashTitle3: 'Gestión de Bases de Datos',
|
||
nodeDashContent3:
|
||
'Gestión unificada de bases de datos multi-nodo, estado clave de un vistazo, admite copia de seguridad con un clic',
|
||
nodeDashTitle4: 'Gestión de Tareas Programadas',
|
||
nodeDashContent4:
|
||
'Gestión unificada de tareas programadas multi-nodo, admite monitoreo de estado, inicio/parada rápida y ejecución manual por activación',
|
||
nodeTitle1: 'Adición de Nodo en un Clic',
|
||
nodeContent1: 'Integra rápidamente múltiples nodos de servidor',
|
||
nodeTitle2: 'Actualización en Lote',
|
||
nodeContent2: 'Sincroniza y actualiza todos los nodos con una sola operación',
|
||
nodeTitle3: 'Monitoreo del Estado de Nodos',
|
||
nodeContent3: 'Supervisa en tiempo real el estado operativo de cada nodo',
|
||
nodeTitle4: 'Conexión Remota Rápida',
|
||
nodeContent4: 'Conecta directamente a la terminal remota de un nodo con un clic',
|
||
fileExchangeTitle1: 'Transmisión con Autenticación por Claves',
|
||
fileExchangeContent1: 'Autenticación vía claves SSH para garantizar seguridad en la transmisión.',
|
||
fileExchangeTitle2: 'Sincronización de Archivos Eficiente',
|
||
fileExchangeContent2:
|
||
'Solo se sincroniza el contenido modificado, mejorando velocidad y estabilidad de transmisión.',
|
||
fileExchangeTitle3: 'Intercomunicación Multi-Nodo',
|
||
fileExchangeContent3:
|
||
'Permite transferir fácilmente archivos entre diferentes nodos y gestionar múltiples servidores de forma flexible.',
|
||
nodeAppTitle1: 'Gestión de Actualización de Aplicaciones',
|
||
nodeAppContent1:
|
||
'Monitoreo unificado de actualizaciones de aplicaciones multi-nodo, admite actualización con un clic',
|
||
appTitle1: 'Gestión Flexible del Panel',
|
||
appContent1: 'Gestiona tu servidor 1Panel en cualquier momento y lugar.',
|
||
appTitle2: 'Información Completa de Servicios',
|
||
appContent2:
|
||
'Administra aplicaciones básicas, sitios web, Docker, bases de datos, etc., y crea nuevos servicios desde la app móvil.',
|
||
appTitle3: 'Monitoreo de Anomalías en Tiempo Real',
|
||
appContent3:
|
||
'Consulta en la app móvil el estado del servidor, la seguridad WAF, estadísticas de tráfico web y la salud de procesos.',
|
||
clusterTitle1: 'Despliegue Maestro-Esclavo',
|
||
clusterContent1:
|
||
'Soporta creación de instancias maestro-esclavo de MySQL/Postgres/Redis en distintos nodos, completando la asociación e inicialización automáticamente',
|
||
clusterTitle2: 'Gestión Maestro-Esclavo',
|
||
clusterContent2:
|
||
'Página centralizada para gestionar múltiples nodos maestro-esclavo, ver sus roles y estado de ejecución.',
|
||
clusterTitle3: 'Estado de Replicación',
|
||
clusterContent3:
|
||
'Muestra estado de replicación maestro-esclavo y retrasos, ayudando a diagnosticar problemas de sincronización',
|
||
modelDownloaderTitle1: 'Descubrimiento de modelos',
|
||
modelDownloaderContent1:
|
||
'Busca repositorios de modelos de HuggingFace directamente y consulta descargas, me gusta, detalles y archivos.',
|
||
modelDownloaderTitle2: 'Descargas aceleradas',
|
||
modelDownloaderContent2:
|
||
'Configura un endpoint de aceleración de HuggingFace y HF Token para el sitio oficial, espejos y modelos privados.',
|
||
modelDownloaderTitle3: 'Seguimiento de tareas',
|
||
modelDownloaderContent3:
|
||
'Consulta la cola, el estado, el progreso y los errores de descarga, con soporte para cancelar, reintentar y limpiar registros.',
|
||
modelDownloaderTitle4: 'Gestión local',
|
||
modelDownloaderContent4:
|
||
'Gestiona directorios de modelos locales en un solo lugar, incluyendo rutas, tamaños, fechas y eliminación de modelos no usados.',
|
||
},
|
||
node: {
|
||
master: 'Nodo Principal',
|
||
masterBackup: 'Respaldo del Nodo Principal',
|
||
backupNode: 'Nodo de Respaldo',
|
||
backupFrequency: 'Frecuencia de Respaldo (horas)',
|
||
backupCopies: 'Copias de Respaldo',
|
||
noBackupNode: 'Actualmente no hay nodo de respaldo configurado. Selecciona uno y vuelve a intentarlo.',
|
||
masterBackupAlert:
|
||
'No se ha configurado un respaldo del nodo principal. Para garantizar la seguridad de los datos, configura un nodo de respaldo lo antes posible y así facilitar el cambio manual en caso de fallo.',
|
||
node: 'Nodo',
|
||
addr: 'Dirección',
|
||
nodeUpgrade: 'Configuración de Actualización',
|
||
nodeUpgradeHelper:
|
||
'Los nodos seleccionados comenzarán a actualizarse automáticamente después de que se complete la actualización del nodo maestro, sin necesidad de operación manual.',
|
||
nodeUpgradeAuto: 'Actualización Automática',
|
||
nodeUpgradePackageManage: 'Gestión de Paquetes de Actualización',
|
||
nodeUpgradePackageClean: 'Limpiar',
|
||
nodeUpgradePackageFormatHelper:
|
||
'Solo se admiten paquetes de instalación `1panel-agent_v*_*` o `1panel-v*-linux-*`',
|
||
nodeUpgradePackageHostConfirm: 'Se seleccionará el archivo del servidor {0}. ¿Continuar?',
|
||
nodeUpgradePackageCleanHelper:
|
||
'Se limpiarán todos los paquetes de actualización de versiones anteriores. ¿Continuar?',
|
||
nodeUpgradeOfflinePackageHelper:
|
||
'En entornos sin conexión, los nodos con arquitecturas diferentes deben subir primero el paquete de actualización correspondiente.',
|
||
nodeUnhealthy: 'Estado del nodo anómalo',
|
||
deletedNode: 'El nodo eliminado {0} no soporta operaciones de actualización.',
|
||
nodeUnhealthyHelper:
|
||
'Se ha detectado un estado anómalo en el nodo. Revisa [Gestión de Nodos] e inténtalo de nuevo.',
|
||
nodeUnbind: 'Nodo no vinculado a licencia',
|
||
nodeUnbindHelper:
|
||
'Se ha detectado que este nodo no está vinculado a una licencia. Vincúlalo desde [Ajustes del Panel - Licencia] e inténtalo de nuevo.',
|
||
memTotal: 'Memoria Total',
|
||
nodeManagement: 'Gestión Multi-Máquina',
|
||
multiOverview: 'Multimáquina',
|
||
nodeItem: 'Gestión de Nodos',
|
||
panelItem: 'Gestión de Paneles',
|
||
addNode: 'Añadir Nodo',
|
||
connInfo: 'Información de Conexión',
|
||
nodeInfo: 'Información del Nodo',
|
||
withProxy: 'Habilitar Acceso por Proxy',
|
||
withoutProxy: 'Deshabilitar Acceso por Proxy',
|
||
withProxyHelper:
|
||
'Utilizará el proxy del sistema {0} mantenido en la configuración del panel para acceder a los nodos secundarios. ¿Continuar?',
|
||
withoutProxyHelper:
|
||
'Dejará de usar el proxy del sistema mantenido en la configuración del panel para acceder a los nodos secundarios. ¿Continuar?',
|
||
syncInfo: 'Sincronización',
|
||
syncHelper:
|
||
'Cuando cambian los datos en el nodo principal, se sincronizan en tiempo real con este nodo secundario.',
|
||
syncBackupAccount: 'Configuración de Cuentas de Respaldo',
|
||
syncWithMaster:
|
||
'Tras actualizar a la edición comercial, todos los datos se sincronizarán por defecto. Las políticas de sincronización se pueden ajustar manualmente en la gestión de nodos.',
|
||
syncProxy: 'Configuración del Proxy del Sistema',
|
||
syncProxyHelper: 'La sincronización del proxy del sistema requiere reiniciar Docker.',
|
||
syncProxyHelper1: 'Reiniciar Docker puede afectar a los contenedores actualmente en ejecución.',
|
||
syncProxyHelper2: 'Puedes reiniciar manualmente desde la página Contenedores → Configuración.',
|
||
syncProxyHelper3:
|
||
'La sincronización del proxy del sistema requiere reiniciar Docker, lo que puede afectar a servicios en ejecución.',
|
||
syncProxyHelper4:
|
||
'La sincronización del proxy del sistema requiere reinicio de Docker. Puedes reiniciar manualmente más tarde en Contenedores → Configuración.',
|
||
syncCustomApp: 'Sincronizar Repositorio de Apps Personalizadas',
|
||
syncAlertSetting: 'Configuración de Alertas del Sistema',
|
||
syncNodeInfo: 'Datos básicos del nodo,',
|
||
nodeSyncHelper: 'La sincronización de información de nodos incluye:',
|
||
nodeSyncHelper1: '1. Información de cuentas de respaldo públicas',
|
||
nodeSyncHelper2: '2. Información de conexión entre el nodo principal y los nodos secundarios',
|
||
nodeCheck: 'Comprobación de Disponibilidad',
|
||
checkSSH: 'Verificar conexión SSH del nodo',
|
||
checkUserPermission: 'Verificar permisos de usuario en el nodo',
|
||
isNotRoot: 'Se ha detectado que este nodo no soporta sudo sin contraseña y el usuario actual no es root',
|
||
checkLicense: 'Verificar estado de licencia del nodo',
|
||
checkService: 'Verificar servicios existentes en el nodo',
|
||
checkPort: 'Verificar accesibilidad del puerto del nodo',
|
||
panelExist:
|
||
'Se ha detectado que este nodo ejecuta 1Panel V1. Actualiza a V2 usando el script de migración antes de añadirlo.',
|
||
coreExist:
|
||
'Este nodo ya está configurado como nodo principal y no puede añadirse directamente como nodo secundario. Debe degradarse primero a nodo esclavo. Consulta la documentación.',
|
||
agentExist:
|
||
'Se ha detectado que 1panel-agent ya está instalado en este nodo. Continuar conservará los datos y solo reemplazará el servicio de 1panel-agent.',
|
||
agentNotExist:
|
||
'Se ha detectado que 1panel-agent no está instalado en este nodo, por lo que la información no puede editarse directamente. Elimínalo y vuelve a añadirlo.',
|
||
oldDataExist:
|
||
'Se han detectado datos históricos de 1Panel V2 en este nodo. La siguiente información sobrescribirá la configuración actual:',
|
||
errLicense: 'La licencia vinculada a este nodo no es válida. Revisa e inténtalo de nuevo.',
|
||
errNodePort:
|
||
'El puerto del nodo [ {0} ] no es accesible. Verifica si el firewall o el grupo de seguridad permiten este puerto.',
|
||
reinstallHelper: '¿Reinstalar el nodo {0}? ¿Quieres continuar?',
|
||
unhealthyCheck: 'Comprobación Anómala',
|
||
fixOperation: 'Operación de Corrección',
|
||
checkName: 'Elemento de Comprobación',
|
||
checkSSHConn: 'Comprobar disponibilidad de conexión SSH',
|
||
fixSSHConn: 'Edita manualmente el nodo para confirmar la información de conexión',
|
||
checkConnInfo: 'Comprobar información de conexión del agente',
|
||
checkStatus: 'Comprobar disponibilidad de servicios del nodo',
|
||
fixStatus:
|
||
'Ejecuta "systemctl status 1panel-agent.service" para verificar si el servicio está en ejecución.',
|
||
checkAPI: 'Comprobar disponibilidad de la API del nodo',
|
||
fixAPI: 'Revisa los logs del nodo y verifica si los puertos del firewall están abiertos correctamente.',
|
||
forceDelete: 'Eliminación Forzada',
|
||
operateHelper: 'Los siguientes nodos se someterán a la operación {0}, ¿quieres continuar?',
|
||
forceDeleteHelper: 'La eliminación forzada ignorará errores y borrará metadatos de la base de datos.',
|
||
uninstall: 'Eliminar datos del nodo',
|
||
uninstallHelper:
|
||
'Esto eliminará todos los datos relacionados con 1Panel de este nodo. Procede con precaución.',
|
||
baseDir: 'Directorio de Instalación',
|
||
baseDirHelper: 'Si el directorio de instalación está vacío, se instalará en /opt por defecto.',
|
||
nodePort: 'Puerto del Nodo',
|
||
offline: 'Modo Offline',
|
||
freeCount: 'Cuota gratuita [{0}]',
|
||
offlineHelper: 'Usado cuando el nodo está en un entorno sin conexión',
|
||
appUpgrade: 'Actualización de la aplicación',
|
||
appUpgradeHelper: 'Hay {0} aplicaciones que necesitan ser actualizadas',
|
||
addPanel: 'Añadir panel',
|
||
addPanelHelper: 'Tras añadir el panel, podrás acceder rápidamente en [Resumen - Paneles].',
|
||
panel: 'Panel 1Panel',
|
||
others: 'Otros paneles',
|
||
operatePanelHelper: 'Los siguientes paneles ejecutarán {0}. ¿Continuar?',
|
||
},
|
||
customApp: {
|
||
name: 'Repositorio de Apps Personalizadas',
|
||
appStoreType: 'Fuente de Paquetes del App Store',
|
||
appStoreUrl: 'URL del Repositorio',
|
||
local: 'Ruta Local',
|
||
remote: 'Enlace Remoto',
|
||
imagePrefix: 'Prefijo de Imagen',
|
||
imagePrefixHelper:
|
||
'Función: Personaliza el prefijo de la imagen y modifica el campo image en el archivo compose. Ejemplo: si el prefijo es 1panel/custom, la imagen de MaxKB pasará a ser 1panel/custom/maxkb:v1.10.0',
|
||
closeHelper: 'Cancelar el uso del repositorio de apps personalizadas',
|
||
appStoreUrlHelper: 'Solo se admite el formato .tar.gz',
|
||
postNode: 'Sincronizar al nodo secundario',
|
||
postNodeHelper:
|
||
'Sincroniza el paquete del repositorio personalizado en tmp/customApp/apps.tar.gz dentro del directorio de instalación del nodo secundario',
|
||
nodes: 'Nodos',
|
||
selectNode: 'Seleccionar Nodo',
|
||
selectNodeError: 'Por favor, selecciona un nodo',
|
||
licenseHelper: 'La versión comercial admite la función de repositorio de aplicaciones personalizadas',
|
||
databaseHelper: 'Base de datos asociada a la aplicación, seleccione la base de datos del nodo destino',
|
||
nodeHelper: 'No se puede seleccionar el nodo actual',
|
||
migrateHelper:
|
||
'Actualmente solo admite la migración de aplicaciones monolíticas y aplicaciones asociadas únicamente con bases de datos MySQL, MariaDB, PostgreSQL',
|
||
opensslHelper:
|
||
'Si se utiliza copia de seguridad cifrada, las versiones de OpenSSL entre los dos nodos deben ser consistentes, de lo contrario la migración puede fallar.',
|
||
installApp: 'Instalación por lotes',
|
||
installAppHelper: 'Instalar aplicaciones por lotes en los nodos seleccionados',
|
||
},
|
||
alert: {
|
||
isAlert: 'Alerta',
|
||
alertCount: 'Número de alertas',
|
||
clamHelper: 'Generar alerta al detectar archivos infectados en escaneo',
|
||
cronJobHelper: 'Generar alerta cuando falle la ejecución de una tarea programada',
|
||
licenseHelper: 'La versión comercial soporta alertas',
|
||
alertCountHelper: 'Frecuencia máxima diaria de alertas',
|
||
alert: 'Alerta SMS',
|
||
logs: 'Logs de alertas',
|
||
list: 'Lista de alertas',
|
||
addTask: 'Crear alerta',
|
||
editTask: 'Editar alerta',
|
||
alertMethod: 'Método',
|
||
alertMsg: 'Mensaje de alerta',
|
||
alertRule: 'Reglas de alerta',
|
||
titleSearchHelper: 'Introduce el título de alerta para búsqueda difusa',
|
||
taskType: 'Tipo',
|
||
ssl: 'Expiración de certificado',
|
||
siteEndTime: 'Expiración de sitio web',
|
||
panelPwdEndTime: 'Expiración de contraseña del panel',
|
||
panelUpdate: 'Nueva versión de panel disponible',
|
||
cpu: 'Alerta de CPU',
|
||
memory: 'Alerta de memoria',
|
||
load: 'Alerta de carga',
|
||
disk: 'Alerta de disco',
|
||
website: 'Sitio web',
|
||
certificate: 'Certificado SSL',
|
||
remainingDays: 'Días restantes',
|
||
sendCount: 'Envíos',
|
||
sms: 'SMS',
|
||
wechat: 'WeChat',
|
||
dingTalk: 'DingTalk',
|
||
feiShu: 'FeiShu',
|
||
mail: 'Correo',
|
||
weCom: 'WeCom',
|
||
bark: 'Bark',
|
||
sendCountRulesHelper: 'Número total de alertas enviadas antes de expirar (una vez al día)',
|
||
panelUpdateRulesHelper: 'Alertas totales enviadas por nueva versión del panel (una vez al día)',
|
||
oneDaySendCountRulesHelper: 'Número máximo de alertas diarias',
|
||
siteEndTimeRulesHelper: 'Los sitios sin fecha de expiración no generan alertas',
|
||
autoRenewRulesHelper:
|
||
'Los certificados con auto-renovación habilitada y menos de 31 días restantes no generan alerta',
|
||
panelPwdEndTimeRulesHelper:
|
||
'La alerta de expiración de contraseña no aplica si no se ha configurado expiración',
|
||
sslRulesHelper: 'Todos los certificados SSL',
|
||
diskInfo: 'Disco',
|
||
monitoringType: 'Tipo de monitorización',
|
||
autoRenew: 'Auto-renovación',
|
||
useDisk: 'Uso de disco',
|
||
usePercentage: 'Porcentaje de uso',
|
||
changeStatus: 'Cambiar estado',
|
||
disableMsg: 'Detener la tarea de alerta evitará que envíe mensajes. ¿Continuar?',
|
||
enableMsg: 'Al habilitar la tarea podrá enviar mensajes de alerta. ¿Continuar?',
|
||
useExceed: 'Uso excedido',
|
||
useExceedRulesHelper: 'Genera alerta cuando el uso supera el valor configurado',
|
||
cpuUseExceedAvg: 'El uso medio de CPU supera el valor especificado',
|
||
memoryUseExceedAvg: 'El uso medio de memoria supera el valor especificado',
|
||
loadUseExceedAvg: 'La carga media supera el valor especificado',
|
||
cpuUseExceedAvgHelper: 'El uso medio de CPU en el periodo supera el valor configurado',
|
||
memoryUseExceedAvgHelper: 'El uso medio de memoria en el periodo supera el valor configurado',
|
||
loadUseExceedAvgHelper: 'La carga media en el periodo supera el valor configurado',
|
||
resourceAlertRulesHelper: 'Nota: múltiples alertas en 30 minutos se unifican en una',
|
||
specifiedTime: 'Tiempo especificado',
|
||
deleteTitle: 'Eliminar alerta',
|
||
deleteMsg: '¿Seguro que quieres eliminar esta tarea de alerta?',
|
||
allSslTitle: 'Alertas de expiración de certificados SSL en todos los sitios',
|
||
sslTitle: 'Alerta de expiración de certificado SSL en sitio {0}',
|
||
allSiteEndTimeTitle: 'Alertas de expiración de todos los sitios web',
|
||
siteEndTimeTitle: 'Alerta de expiración para sitio {0}',
|
||
panelPwdEndTimeTitle: 'Alerta de expiración de contraseña del panel',
|
||
panelUpdateTitle: 'Notificación de nueva versión de panel',
|
||
cpuTitle: 'Alerta de alta CPU',
|
||
memoryTitle: 'Alerta de alta memoria',
|
||
loadTitle: 'Alerta de alta carga',
|
||
diskTitle: 'Alerta de alto uso de disco en {0}',
|
||
allDiskTitle: 'Alerta de alto uso de disco',
|
||
timeRule: 'Tiempo restante menor a {0} días (si no se gestiona, se reenviará al día siguiente)',
|
||
panelUpdateRule:
|
||
'Al detectar nueva versión del panel se envía una alerta (si no se gestiona, se reenviará al día siguiente)',
|
||
avgRule: 'Uso medio de {1} supera {2}% en {0} minutos, genera alerta, {3} envíos/día',
|
||
diskRule: 'Uso de disco en {0} supera {1}{2}, genera alerta, {3} envíos/día',
|
||
allDiskRule: 'Uso de disco supera {0}{1}, genera alerta, {2} envíos/día',
|
||
cpuName: 'CPU',
|
||
memoryName: 'Memoria',
|
||
loadName: 'Carga',
|
||
diskName: 'Disco',
|
||
syncAlertInfo: 'Push manual',
|
||
syncAlertInfoMsg: '¿Deseas enviar manualmente la tarea de alerta?',
|
||
pushError: 'Error en push',
|
||
pushSuccess: 'Push exitoso',
|
||
syncError: 'Error de sincronización',
|
||
success: 'Alerta enviada',
|
||
pushing: 'Enviando...',
|
||
error: 'Error de alerta',
|
||
cleanLog: 'Limpiar logs',
|
||
cleanAlertLogs: 'Limpiar logs de alertas',
|
||
daily: 'Alertas diarias: {0}',
|
||
cumulative: 'Alertas acumuladas: {0}',
|
||
clams: 'Alerta de escaneo antivirus',
|
||
taskName: 'Nombre de tarea',
|
||
cronJobType: 'Tipo de tarea',
|
||
clamPath: 'Directorio a escanear',
|
||
cronjob: 'Fallo en ejecución de cronjob {0}',
|
||
app: 'Backup de app',
|
||
web: 'Backup de sitio',
|
||
database: 'Backup de base de datos',
|
||
directory: 'Backup de directorio',
|
||
log: 'Backup de logs',
|
||
snapshot: 'Snapshot del sistema',
|
||
clamsRulesHelper: 'Tareas de escaneo antivirus que requieren alerta',
|
||
cronJobRulesHelper: 'Este tipo de tareas programadas necesita configuración',
|
||
clamsTitle: 'Tarea antivirus 「 {0} 」 detectó archivo infectado',
|
||
cronJobAppTitle: 'Cronjob - Backup de app 「 {0} 」 falló',
|
||
cronJobWebsiteTitle: 'Cronjob - Backup de sitio 「 {0} 」 falló',
|
||
cronJobDatabaseTitle: 'Cronjob - Backup de base de datos 「 {0} 」 falló',
|
||
cronJobDirectoryTitle: 'Cronjob - Backup de directorio 「 {0} 」 falló',
|
||
cronJobLogTitle: 'Cronjob - Backup de logs 「 {0} 」 falló',
|
||
cronJobSnapshotTitle: 'Cronjob - Backup de snapshot 「 {0} 」 falló',
|
||
cronJobShellTitle: 'Cronjob - Script shell 「 {0} 」 falló',
|
||
cronJobCurlTitle: 'Cronjob - Acceso URL 「 {0} 」 falló',
|
||
cronJobCutWebsiteLogTitle: 'Cronjob - Corte de logs web 「 {0} 」 falló',
|
||
cronJobCleanTitle: 'Cronjob - Limpieza de caché 「 {0} 」 falló',
|
||
cronJobNtpTitle: 'Cronjob - Sync hora de servidor 「 {0} 」 falló',
|
||
clamsRule: 'Escaneo antivirus detectó infección, {0} envíos/día',
|
||
cronJobAppRule: 'Fallo en backup de app, {0} envíos/día',
|
||
cronJobWebsiteRule: 'Fallo en backup de sitio, {0} envíos/día',
|
||
cronJobDatabaseRule: 'Fallo en backup de base de datos, {0} envíos/día',
|
||
cronJobDirectoryRule: 'Fallo en backup de directorio, {0} envíos/día',
|
||
cronJobLogRule: 'Fallo en backup de logs, {0} envíos/día',
|
||
cronJobSnapshotRule: 'Fallo en backup de snapshot, {0} envíos/día',
|
||
cronJobShellRule: 'Fallo en script shell, {0} envíos/día',
|
||
cronJobCurlRule: 'Fallo en acceso URL, {0} envíos/día',
|
||
cronJobCutWebsiteLogRule: 'Fallo en corte de logs web, {0} envíos/día',
|
||
cronJobCleanRule: 'Fallo en limpieza de caché, {0} envíos/día',
|
||
cronJobNtpRule: 'Fallo en sincronización de hora, {0} envíos/día',
|
||
alertSmsHelper: 'Límite SMS: {0} mensajes totales, {1} usados',
|
||
goBuy: 'Comprar más',
|
||
phone: 'Teléfono',
|
||
phoneHelper: 'Proporciona un número real para SMS de alertas',
|
||
dailyAlertNum: 'Límite diario de alertas',
|
||
dailyAlertNumHelper: 'Máximo de alertas por día (hasta 100)',
|
||
timeRange: 'Rango de tiempo',
|
||
sendTimeRange: 'Rango de envío',
|
||
sendTimeRangeHelper: 'Puede enviarse en {0}',
|
||
to: 'a',
|
||
startTime: 'Hora inicio',
|
||
endTime: 'Hora fin',
|
||
defaultPhone: 'Usar el número vinculado a la licencia',
|
||
noticeAlert: 'Alerta de notificación',
|
||
resourceAlert: 'Alerta de recursos',
|
||
agentOfflineAlertHelper: 'Con alerta offline habilitada, el nodo maestro escaneará cada 30 minutos.',
|
||
offline: 'Alerta offline',
|
||
offlineHelper: 'En modo offline, el nodo maestro escaneará cada 30 minutos para alertas.',
|
||
offlineOff: 'Habilitar alerta offline',
|
||
offlineOffHelper: 'Habilitar alerta offline hace que el nodo maestro ejecute alertas cada 30 minutos.',
|
||
offlineClose: 'Desactivar alerta offline',
|
||
offlineCloseHelper: 'Desactivarla obliga a que los sub-nodos gestionen alertas. Asegura conectividad.',
|
||
alertNotice: 'Notificación de alerta',
|
||
methodConfig: 'Config de métodos de notificación',
|
||
commonConfig: 'Config global',
|
||
smsConfig: 'SMS',
|
||
smsConfigHelper: 'Configura teléfonos para notificaciones SMS',
|
||
emailConfig: 'Correo',
|
||
emailConfigHelper: 'Configura servicio SMTP de envío de correos',
|
||
deleteConfigTitle: 'Eliminar configuración de alerta',
|
||
deleteConfigMsg: '¿Seguro que quieres eliminar esta configuración?',
|
||
test: 'Probar',
|
||
alertTestOk: 'Notificación de prueba exitosa',
|
||
alertTestFailed: 'Notificación de prueba fallida',
|
||
displayName: 'Nombre',
|
||
sender: 'Remitente',
|
||
password: 'Contraseña',
|
||
host: 'SMTP',
|
||
port: 'Puerto',
|
||
encryption: 'Cifrado',
|
||
recipient: 'Destinatario',
|
||
licenseTime: 'Recordatorio de expiración de licencia',
|
||
licenseTimeTitle: 'Recordatorio de expiración de licencia',
|
||
displayNameHelper: 'Nombre remitente para correos',
|
||
senderHelper: 'Correo usado como remitente',
|
||
passwordHelper: 'Código de autorización del servicio de correo',
|
||
hostHelper: 'Servidor SMTP, ej. smtp.qq.com',
|
||
portHelper: 'SSL normalmente 465, TLS normalmente 587',
|
||
sslHelper: 'Si el puerto es 465, requiere SSL',
|
||
tlsHelper: 'Si el puerto es 587, requiere TLS',
|
||
triggerCondition: 'Condición de disparo',
|
||
loginFail: ' fallos de login en',
|
||
nodeException: 'Alerta de excepción de nodo',
|
||
licenseException: 'Alerta de excepción de licencia',
|
||
panelLogin: 'Alerta de login en panel',
|
||
sshLogin: 'Alerta de login SSH',
|
||
panelIpLogin: 'Alerta de login en panel por IP',
|
||
sshIpLogin: 'Alerta de login SSH por IP',
|
||
ipWhiteListHelper: 'Las IPs en whitelist no tienen restricciones ni generan alerta en login exitoso',
|
||
nodeExceptionRule: 'Alerta de nodo anómalo, {0} envíos/día',
|
||
licenseExceptionRule: 'Alerta de licencia anómala, {0} envíos/día',
|
||
panelLoginRule: 'Alerta de login en panel, {0} envíos/día',
|
||
sshLoginRule: 'Alerta de login SSH, {0} envíos/día',
|
||
userNameHelper: 'El nombre de usuario está vacío, se usará la dirección del remitente por defecto',
|
||
alertConfigHelper: 'Configurar canales de notificación de alerta para recibir mensajes push del panel',
|
||
weComConfigHelper: 'Configuración de notificación de alerta WeCom',
|
||
wechatConfigHelper: 'Configuración de notificación de alerta de Cuenta Oficial WeChat',
|
||
dingTalkConfigHelper: 'Configuración de notificación de alerta DingTalk',
|
||
feiShuConfigHelper: 'Configuración de notificación de alerta Feishu',
|
||
barkConfigHelper: 'Configuración de notificación de alerta Bark',
|
||
webhookName: 'Nombre del bot',
|
||
webhookUrl: 'URL de Webhook',
|
||
alertConfigProHelper: 'La edición comercial también admite alertas mediante WeCom, DingTalk, Feishu y SMS.',
|
||
},
|
||
theme: {
|
||
lingXiaGold: 'LXware Gold',
|
||
classicBlue: 'Azul clásico',
|
||
freshGreen: 'Verde fresco',
|
||
customColor: 'Color personalizado',
|
||
setDefault: 'Por defecto',
|
||
setDefaultHelper: 'La paleta de colores volverá al estado inicial. ¿Continuar?',
|
||
setHelper: 'Se guardará la paleta actual como tema. ¿Continuar?',
|
||
},
|
||
exchange: {
|
||
exchange: 'Intercambio de archivos',
|
||
exchangeConfirm: '¿Quieres transferir {1} de {0} a {2}:{3}?',
|
||
},
|
||
cluster: {
|
||
cluster: 'Alta disponibilidad de aplicaciones',
|
||
name: 'Nombre del clúster',
|
||
addCluster: 'Añadir clúster',
|
||
installNode: 'Instalar nodo',
|
||
master: 'Nodo maestro',
|
||
slave: 'Nodo esclavo',
|
||
replicaStatus: 'Estado maestro-esclavo',
|
||
unhealthyDeleteError: 'El nodo tiene estado anómalo, revisa la lista e inténtalo de nuevo',
|
||
replicaStatusError: 'Error al obtener estado, revisa el nodo maestro',
|
||
masterHostError: 'La IP del nodo maestro no puede ser 127.0.0.1',
|
||
},
|
||
},
|
||
};
|
||
|
||
export default {
|
||
...getFuLocaleMessage('es-ES'),
|
||
...message,
|
||
};
|