mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-13 17:46:02 +00:00
- DNS server modal: rename expectIPs -> expectedIPs (per docs); add per-server tag, clientIP, serveStale, serveExpiredTTL, timeoutMs; flip skipFallback default to false; hydration still accepts legacy expectIPs for back-compat. - DNS tab: add hosts editor (domain -> IP/array), serveStale + serveExpiredTTL controls, "Use Preset" button bringing back the legacy preset gallery (Google / Cloudflare / AdGuard + Family variants — fixed AdGuard Family IPs that were wrong in legacy), and a "Delete All" button to wipe the server list at once. - i18n: add 15 new dns.* keys across all 13 locales. - Frontend-wide formatter pass on Vue components (whitespace and attribute layout only, no behavior changes). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
957 lines
52 KiB
JSON
957 lines
52 KiB
JSON
{
|
||
"username": "Nombre de Usuario",
|
||
"password": "Contraseña",
|
||
"login": "Acceder",
|
||
"confirm": "Confirmar",
|
||
"cancel": "Cancelar",
|
||
"close": "Cerrar",
|
||
"save": "Guardar",
|
||
"logout": "Cerrar Sesión",
|
||
"create": "Crear",
|
||
"update": "Actualizar",
|
||
"copy": "Copiar",
|
||
"copied": "Copiado",
|
||
"download": "Descargar",
|
||
"remark": "Notas",
|
||
"enable": "Habilitar",
|
||
"protocol": "Protocolo",
|
||
"search": "Buscar",
|
||
"filter": "Filtrar",
|
||
"loading": "Cargando...",
|
||
"second": "Segundo",
|
||
"minute": "Minuto",
|
||
"hour": "Hora",
|
||
"day": "Día",
|
||
"check": "Verificar",
|
||
"indefinite": "Indefinido",
|
||
"unlimited": "Ilimitado",
|
||
"none": "None",
|
||
"qrCode": "Código QR",
|
||
"info": "Más Información",
|
||
"edit": "Editar",
|
||
"delete": "Eliminar",
|
||
"reset": "Restablecer",
|
||
"noData": "Sin datos",
|
||
"copySuccess": "Copiado exitosamente",
|
||
"sure": "Seguro",
|
||
"encryption": "Encriptación",
|
||
"useIPv4ForHost": "Usar IPv4 para el host",
|
||
"transmission": "Transmisión",
|
||
"host": "Host",
|
||
"path": "Path",
|
||
"camouflage": "Camuflaje",
|
||
"status": "Estado",
|
||
"enabled": "Habilitado",
|
||
"disabled": "Deshabilitado",
|
||
"depleted": "Agotado",
|
||
"depletingSoon": "Agotándose",
|
||
"offline": "fuera de línea",
|
||
"online": "en línea",
|
||
"domainName": "Nombre de dominio",
|
||
"monitor": "Listening IP",
|
||
"certificate": "Certificado Digital",
|
||
"fail": "Falló",
|
||
"comment": "Comentario",
|
||
"success": "Éxito",
|
||
"lastOnline": "Última conexión",
|
||
"getVersion": "Obtener versión",
|
||
"install": "Instalar",
|
||
"clients": "Clientes",
|
||
"usage": "Uso",
|
||
"twoFactorCode": "Código",
|
||
"remained": "Restante",
|
||
"security": "Seguridad",
|
||
"secAlertTitle": "Alerta de Seguridad",
|
||
"secAlertSsl": "Esta conexión no es segura. Por favor, evite ingresar información sensible hasta que se active TLS para la protección de datos.",
|
||
"secAlertConf": "Ciertas configuraciones son vulnerables a ataques. Se recomienda reforzar los protocolos de seguridad para prevenir posibles violaciones.",
|
||
"secAlertSSL": "El panel carece de una conexión segura. Por favor, instale un certificado TLS para la protección de datos.",
|
||
"secAlertPanelPort": "El puerto predeterminado del panel es vulnerable. Por favor, configure un puerto aleatorio o específico.",
|
||
"secAlertPanelURI": "La ruta URI predeterminada del panel no es segura. Por favor, configure una ruta URI compleja.",
|
||
"secAlertSubURI": "La ruta URI predeterminada de la suscripción no es segura. Por favor, configure una ruta URI compleja.",
|
||
"secAlertSubJsonURI": "La ruta URI JSON predeterminada de la suscripción no es segura. Por favor, configure una ruta URI compleja.",
|
||
"emptyDnsDesc": "No hay servidores DNS añadidos.",
|
||
"emptyFakeDnsDesc": "No hay servidores Fake DNS añadidos.",
|
||
"emptyBalancersDesc": "No hay balanceadores añadidos.",
|
||
"emptyReverseDesc": "No hay proxies inversos añadidos.",
|
||
"somethingWentWrong": "Algo salió mal",
|
||
"subscription": {
|
||
"title": "Información de suscripción",
|
||
"subId": "ID de suscripción",
|
||
"status": "Estado",
|
||
"downloaded": "Descargado",
|
||
"uploaded": "Subido",
|
||
"expiry": "Caducidad",
|
||
"totalQuota": "Cuota total",
|
||
"individualLinks": "Enlaces individuales",
|
||
"active": "Activo",
|
||
"inactive": "Inactivo",
|
||
"unlimited": "Ilimitado",
|
||
"noExpiry": "Sin caducidad"
|
||
},
|
||
"menu": {
|
||
"theme": "Tema",
|
||
"dark": "Oscuro",
|
||
"ultraDark": "Ultra Oscuro",
|
||
"dashboard": "Estado del Sistema",
|
||
"inbounds": "Entradas",
|
||
"nodes": "Nodos",
|
||
"settings": "Configuraciones",
|
||
"xray": "Ajustes Xray",
|
||
"logout": "Cerrar Sesión",
|
||
"link": "Gestionar"
|
||
},
|
||
"pages": {
|
||
"login": {
|
||
"hello": "Hola",
|
||
"title": "Bienvenido",
|
||
"loginAgain": "El límite de tiempo de inicio de sesión ha expirado. Por favor, inicia sesión nuevamente.",
|
||
"toasts": {
|
||
"invalidFormData": "El formato de los datos de entrada es inválido.",
|
||
"emptyUsername": "Por favor ingresa el nombre de usuario.",
|
||
"emptyPassword": "Por favor ingresa la contraseña.",
|
||
"wrongUsernameOrPassword": "Nombre de usuario, contraseña o código de dos factores incorrecto.",
|
||
"successLogin": "Has iniciado sesión en tu cuenta correctamente."
|
||
}
|
||
},
|
||
"index": {
|
||
"title": "Estado del Sistema",
|
||
"cpu": "CPU",
|
||
"logicalProcessors": "Procesadores lógicos",
|
||
"frequency": "Frecuencia",
|
||
"swap": "Memoria Virtual",
|
||
"storage": "Almacenamiento",
|
||
"memory": "RAM",
|
||
"threads": "Hilos",
|
||
"xrayStatus": "Xray",
|
||
"stopXray": "Detener",
|
||
"restartXray": "Reiniciar",
|
||
"xraySwitch": "Versión",
|
||
"xraySwitchClick": "Elige la versión a la que deseas cambiar.",
|
||
"xraySwitchClickDesk": "Elige sabiamente, ya que las versiones anteriores pueden no ser compatibles con las configuraciones actuales.",
|
||
"xrayUpdates": "Actualizaciones de Xray",
|
||
"updatePanel": "Actualizar panel",
|
||
"panelUpdateDesc": "Esto actualizará 3X-UI a la última versión y reiniciará el servicio del panel.",
|
||
"currentPanelVersion": "Versión actual del panel",
|
||
"latestPanelVersion": "Última versión del panel",
|
||
"panelUpToDate": "El panel está actualizado",
|
||
"upToDate": "Actualizado",
|
||
"xrayStatusUnknown": "Desconocido",
|
||
"xrayStatusRunning": "En ejecución",
|
||
"xrayStatusStop": "Detenido",
|
||
"xrayStatusError": "Error",
|
||
"xrayErrorPopoverTitle": "Se produjo un error al ejecutar Xray",
|
||
"operationHours": "Tiempo de Funcionamiento",
|
||
"systemHistoryTitle": "Historial del Sistema",
|
||
"trendLast2Min": "Últimos 2 minutos",
|
||
"systemLoad": "Carga del Sistema",
|
||
"systemLoadDesc": "promedio de carga del sistema en los últimos 1, 5 y 15 minutos",
|
||
"connectionCount": "Número de Conexiones",
|
||
"ipAddresses": "Direcciones IP",
|
||
"toggleIpVisibility": "Alternar visibilidad de la IP",
|
||
"overallSpeed": "Velocidad general",
|
||
"upload": "Subida",
|
||
"download": "Descarga",
|
||
"totalData": "Datos totales",
|
||
"sent": "Enviado",
|
||
"received": "Recibido",
|
||
"documentation": "Documentación",
|
||
"xraySwitchVersionDialog": "¿Realmente deseas cambiar la versión de Xray?",
|
||
"xraySwitchVersionDialogDesc": "Esto cambiará la versión de Xray a #version#.",
|
||
"xraySwitchVersionPopover": "Xray se actualizó correctamente",
|
||
"panelUpdateDialog": "¿Deseas actualizar el panel?",
|
||
"panelUpdateDialogDesc": "Esto actualizará 3X-UI a la versión #version# y reiniciará el servicio del panel.",
|
||
"panelUpdateCheckPopover": "Fallo al comprobar actualización del panel",
|
||
"panelUpdateStartedPopover": "Actualización del panel iniciada",
|
||
"geofileUpdateDialog": "¿Realmente deseas actualizar el geofichero?",
|
||
"geofileUpdateDialogDesc": "Esto actualizará el archivo #filename#.",
|
||
"geofilesUpdateDialogDesc": "Esto actualizará todos los archivos.",
|
||
"geofilesUpdateAll": "Actualizar todo",
|
||
"geofileUpdatePopover": "Geofichero actualizado correctamente",
|
||
"dontRefresh": "La instalación está en progreso, por favor no actualices esta página.",
|
||
"logs": "Registros",
|
||
"config": "Configuración",
|
||
"backup": "Сopia de Seguridad",
|
||
"backupTitle": "Copia & Restauración",
|
||
"exportDatabase": "Copia de seguridad",
|
||
"exportDatabaseDesc": "Haz clic para descargar un archivo .db que contiene una copia de seguridad de tu base de datos actual en tu dispositivo.",
|
||
"importDatabase": "Restaurar",
|
||
"importDatabaseDesc": "Haz clic para seleccionar y cargar un archivo .db desde tu dispositivo para restaurar tu base de datos desde una copia de seguridad.",
|
||
"importDatabaseSuccess": "La base de datos se ha importado correctamente",
|
||
"importDatabaseError": "Ocurrió un error al importar la base de datos",
|
||
"readDatabaseError": "Ocurrió un error al leer la base de datos",
|
||
"getDatabaseError": "Ocurrió un error al obtener la base de datos",
|
||
"getConfigError": "Ocurrió un error al obtener el archivo de configuración",
|
||
"customGeoTitle": "GeoSite / GeoIP personalizados",
|
||
"customGeoAdd": "Añadir",
|
||
"customGeoType": "Tipo",
|
||
"customGeoAlias": "Alias",
|
||
"customGeoUrl": "URL",
|
||
"customGeoEnabled": "Activado",
|
||
"customGeoLastUpdated": "Última actualización",
|
||
"customGeoExtColumn": "Enrutamiento (ext:…)",
|
||
"customGeoToastUpdateAll": "Todas las fuentes personalizadas se actualizaron",
|
||
"customGeoActions": "Acciones",
|
||
"customGeoEdit": "Editar",
|
||
"customGeoDelete": "Eliminar",
|
||
"customGeoDownload": "Actualizar ahora",
|
||
"customGeoModalAdd": "Añadir geo personalizado",
|
||
"customGeoModalEdit": "Editar geo personalizado",
|
||
"customGeoModalSave": "Guardar",
|
||
"customGeoDeleteConfirm": "¿Eliminar esta fuente geo personalizada?",
|
||
"customGeoRoutingHint": "En reglas de enrutamiento use la columna de valor como ext:archivo.dat:etiqueta (sustituya la etiqueta).",
|
||
"customGeoInvalidId": "Id de recurso no válido",
|
||
"customGeoAliasesError": "No se pudieron cargar los alias geo personalizados",
|
||
"customGeoValidationAlias": "El alias solo puede contener letras minúsculas, dígitos, - y _",
|
||
"customGeoValidationUrl": "La URL debe comenzar con http:// o https://",
|
||
"customGeoAliasPlaceholder": "a-z 0-9 _ -",
|
||
"customGeoAliasLabelSuffix": " (personalizado)",
|
||
"customGeoToastList": "Lista de geo personalizado",
|
||
"customGeoToastAdd": "Añadir geo personalizado",
|
||
"customGeoToastUpdate": "Actualizar geo personalizado",
|
||
"customGeoToastDelete": "Geofile personalizado «{{ .fileName }}» eliminado",
|
||
"customGeoToastDownload": "Geofile «{{ .fileName }}» actualizado",
|
||
"customGeoErrInvalidType": "El tipo debe ser geosite o geoip",
|
||
"customGeoErrAliasRequired": "El alias es obligatorio",
|
||
"customGeoErrAliasPattern": "El alias contiene caracteres no permitidos",
|
||
"customGeoErrAliasReserved": "Este alias está reservado",
|
||
"customGeoErrUrlRequired": "La URL es obligatoria",
|
||
"customGeoErrInvalidUrl": "La URL no es válida",
|
||
"customGeoErrUrlScheme": "La URL debe usar http o https",
|
||
"customGeoErrUrlHost": "El host de la URL no es válido",
|
||
"customGeoErrDuplicateAlias": "Este alias ya se usa para este tipo",
|
||
"customGeoErrNotFound": "Fuente geo personalizada no encontrada",
|
||
"customGeoErrDownload": "Error de descarga",
|
||
"customGeoErrUpdateAllIncomplete": "No se pudieron actualizar una o más fuentes geo personalizadas",
|
||
"customGeoEmpty": "Aún no hay fuentes geo personalizadas — haz clic en Añadir para crear una"
|
||
},
|
||
"inbounds": {
|
||
"allTimeTraffic": "Tráfico Total",
|
||
"allTimeTrafficUsage": "Uso de datos histórico",
|
||
"title": "Entradas",
|
||
"totalDownUp": "Subidas/Descargas Totales",
|
||
"totalUsage": "Uso Total",
|
||
"inboundCount": "Número de Entradas",
|
||
"operate": "Menú",
|
||
"enable": "Habilitar",
|
||
"remark": "Notas",
|
||
"node": "Nodo",
|
||
"deployTo": "Desplegar en",
|
||
"localPanel": "Panel local",
|
||
"protocol": "Protocolo",
|
||
"port": "Puerto",
|
||
"portMap": "Puertos de Destino",
|
||
"traffic": "Tráfico",
|
||
"details": "Detalles",
|
||
"transportConfig": "Transporte",
|
||
"expireDate": "Fecha de Expiración",
|
||
"createdAt": "Creado",
|
||
"updatedAt": "Actualizado",
|
||
"resetTraffic": "Restablecer Tráfico",
|
||
"addInbound": "Agregar Entrada",
|
||
"generalActions": "Acciones Generales",
|
||
"modifyInbound": "Modificar Entrada",
|
||
"deleteInbound": "Eliminar Entrada",
|
||
"deleteInboundContent": "¿Confirmar eliminación de entrada?",
|
||
"deleteClient": "Eliminar cliente",
|
||
"deleteClientContent": "¿Está seguro de que desea eliminar el cliente?",
|
||
"resetTrafficContent": "¿Confirmar restablecimiento de tráfico?",
|
||
"copyLink": "Copiar Enlace",
|
||
"address": "Dirección",
|
||
"network": "Red",
|
||
"destinationPort": "Puerto de Destino",
|
||
"targetAddress": "Dirección de Destino",
|
||
"monitorDesc": "Dejar en blanco por defecto",
|
||
"meansNoLimit": " = illimitata. (unidad: GB)",
|
||
"totalFlow": "Flujo Total",
|
||
"leaveBlankToNeverExpire": "Dejar en Blanco para Nunca Expirar",
|
||
"noRecommendKeepDefault": "No hay requisitos especiales para mantener la configuración predeterminada",
|
||
"certificatePath": "Ruta Cert",
|
||
"certificateContent": "Datos Cert",
|
||
"publicKey": "Clave Pública",
|
||
"privatekey": "Clave Privada",
|
||
"clickOnQRcode": "Haz clic en el Código QR para Copiar",
|
||
"client": "Cliente",
|
||
"export": "Exportar Enlaces",
|
||
"clone": "Clonar",
|
||
"cloneInbound": "Clonar Entradas",
|
||
"cloneInboundContent": "Se aplicarán todas las configuraciones de esta entrada, excepto el Puerto, la IP de Escucha y los Clientes, al clon.",
|
||
"cloneInboundOk": "Clonar",
|
||
"resetAllTraffic": "Restablecer Tráfico de Todas las Entradas",
|
||
"resetAllTrafficTitle": "Restablecer tráfico de todas las entradas",
|
||
"resetAllTrafficContent": "¿Estás seguro de que deseas restablecer el tráfico de todas las entradas?",
|
||
"resetInboundClientTraffics": "Restablecer Tráfico de Clientes",
|
||
"resetInboundClientTrafficTitle": "Restablecer todo el tráfico de clientes",
|
||
"resetInboundClientTrafficContent": "¿Estás seguro de que deseas restablecer todo el tráfico para los clientes de esta entrada?",
|
||
"resetAllClientTraffics": "Restablecer Tráfico de Todos los Clientes",
|
||
"resetAllClientTrafficTitle": "Restablecer todo el tráfico de clientes",
|
||
"resetAllClientTrafficContent": "¿Estás seguro de que deseas restablecer todo el tráfico para todos los clientes?",
|
||
"delDepletedClients": "Eliminar Clientes Agotados",
|
||
"delDepletedClientsTitle": "Eliminar clientes agotados",
|
||
"delDepletedClientsContent": "¿Estás seguro de que deseas eliminar todos los clientes agotados?",
|
||
"email": "Email",
|
||
"emailDesc": "Por favor proporciona una dirección de correo electrónico única.",
|
||
"IPLimit": "Límite de IP",
|
||
"IPLimitDesc": "Desactiva la entrada si la cantidad supera el valor ingresado (ingresa 0 para desactivar el límite de IP).",
|
||
"IPLimitlog": "Registro de IP",
|
||
"IPLimitlogDesc": "Registro de historial de IPs (antes de habilitar la entrada después de que haya sido desactivada por el límite de IP, debes borrar el registro).",
|
||
"IPLimitlogclear": "Limpiar el Registro",
|
||
"setDefaultCert": "Establecer certificado desde el panel",
|
||
"telegramDesc": "Por favor, proporciona el ID de Chat de Telegram. (usa el comando '/id' en el bot) o ({'@'}userinfobot)",
|
||
"subscriptionDesc": "Puedes encontrar tu enlace de suscripción en Detalles, también puedes usar el mismo nombre para varias configuraciones.",
|
||
"info": "Info",
|
||
"same": "misma",
|
||
"inboundData": "Datos de entrada",
|
||
"exportInbound": "Exportación entrante",
|
||
"import": "Importar",
|
||
"importInbound": "Importar un entrante",
|
||
"periodicTrafficResetTitle": "Reset de Tráfico",
|
||
"periodicTrafficResetDesc": "Reiniciar automáticamente el contador de tráfico en intervalos especificados",
|
||
"lastReset": "Último reinicio",
|
||
"periodicTrafficReset": {
|
||
"never": "Nunca",
|
||
"daily": "Diariamente",
|
||
"weekly": "Semanalmente",
|
||
"monthly": "Mensualmente",
|
||
"hourly": "Cada hora"
|
||
},
|
||
"toasts": {
|
||
"obtain": "Recibir",
|
||
"updateSuccess": "La actualización fue exitosa",
|
||
"logCleanSuccess": "El registro ha sido limpiado",
|
||
"inboundsUpdateSuccess": "Entradas actualizadas correctamente",
|
||
"inboundUpdateSuccess": "Entrada actualizada correctamente",
|
||
"inboundCreateSuccess": "Entrada creada correctamente",
|
||
"inboundDeleteSuccess": "Entrada eliminada correctamente",
|
||
"inboundClientAddSuccess": "Cliente(s) de entrada añadido(s)",
|
||
"inboundClientDeleteSuccess": "Cliente de entrada eliminado",
|
||
"inboundClientUpdateSuccess": "Cliente de entrada actualizado",
|
||
"delDepletedClientsSuccess": "Todos los clientes con tráfico agotado fueron eliminados",
|
||
"resetAllClientTrafficSuccess": "Todo el tráfico del cliente ha sido reiniciado",
|
||
"resetAllTrafficSuccess": "Todo el tráfico ha sido reiniciado",
|
||
"resetInboundClientTrafficSuccess": "El tráfico ha sido reiniciado",
|
||
"trafficGetError": "Error al obtener los tráficos",
|
||
"getNewX25519CertError": "Error al obtener el certificado X25519.",
|
||
"getNewmldsa65Error": "Error al obtener el certificado mldsa65.",
|
||
"getNewVlessEncError": "Error al obtener el certificado VlessEnc."
|
||
},
|
||
"stream": {
|
||
"general": {
|
||
"request": "Pedido",
|
||
"response": "Respuesta",
|
||
"name": "Nombre",
|
||
"value": "Valor"
|
||
},
|
||
"tcp": {
|
||
"version": "Versión",
|
||
"method": "Método",
|
||
"path": "Camino",
|
||
"status": "Estado",
|
||
"statusDescription": "Descripción de la Situación",
|
||
"requestHeader": "Encabezado de solicitud",
|
||
"responseHeader": "Encabezado de respuesta"
|
||
}
|
||
}
|
||
},
|
||
"client": {
|
||
"add": "Agregar Cliente",
|
||
"edit": "Editar Cliente",
|
||
"submitAdd": "Agregar Cliente",
|
||
"submitEdit": "Guardar Cambios",
|
||
"clientCount": "Número de Clientes",
|
||
"bulk": "Agregar en Lote",
|
||
"copyFromInbound": "Copiar clientes desde entrada",
|
||
"copyToInbound": "Copiar clientes a",
|
||
"copySelected": "Copiar seleccionados",
|
||
"copySource": "Origen",
|
||
"copyEmailPreview": "Vista previa del email resultante",
|
||
"copySelectSourceFirst": "Seleccione primero una entrada de origen.",
|
||
"copyResult": "Resultado de la copia",
|
||
"copyResultSuccess": "Copiado correctamente",
|
||
"copyResultNone": "Nada que copiar: ningún cliente seleccionado o el origen está vacío",
|
||
"copyResultErrors": "Errores al copiar",
|
||
"copyFlowLabel": "Flow para nuevos clientes (VLESS)",
|
||
"copyFlowHint": "Se aplica a todos los clientes copiados. Déjelo vacío para omitir.",
|
||
"selectAll": "Seleccionar todo",
|
||
"clearAll": "Limpiar todo",
|
||
"method": "Método",
|
||
"first": "Primero",
|
||
"last": "Último",
|
||
"prefix": "Prefijo",
|
||
"postfix": "Sufijo",
|
||
"delayedStart": "Iniciar después del primer uso",
|
||
"expireDays": "Duración",
|
||
"days": "Día(s)",
|
||
"renew": "Renovación automática",
|
||
"renewDesc": "Renovación automática después de la expiración. (0 = desactivar) (unidad: día)"
|
||
},
|
||
"nodes": {
|
||
"title": "Nodos",
|
||
"addNode": "Agregar nodo",
|
||
"editNode": "Editar nodo",
|
||
"totalNodes": "Total de nodos",
|
||
"onlineNodes": "En línea",
|
||
"offlineNodes": "Desconectado",
|
||
"avgLatency": "Latencia media",
|
||
"name": "Nombre",
|
||
"namePlaceholder": "p. ej. de-frankfurt-1",
|
||
"addressPlaceholder": "panel.example.com o 1.2.3.4",
|
||
"remark": "Notas",
|
||
"scheme": "Esquema",
|
||
"address": "Dirección",
|
||
"port": "Puerto",
|
||
"basePath": "Ruta base",
|
||
"apiToken": "Token de API",
|
||
"apiTokenPlaceholder": "Token desde la página de Configuración del panel remoto",
|
||
"apiTokenHint": "El panel remoto expone su token de API en Configuración → Token de API.",
|
||
"regenerate": "Regenerar token",
|
||
"regenerateConfirm": "Regenerar invalida el token actual. Cualquier panel central que lo use perderá el acceso hasta que se actualice. ¿Continuar?",
|
||
"enable": "Habilitado",
|
||
"status": "Estado",
|
||
"cpu": "CPU",
|
||
"mem": "Memoria",
|
||
"uptime": "Tiempo activo",
|
||
"latency": "Latencia",
|
||
"lastHeartbeat": "Último latido",
|
||
"xrayVersion": "Versión de Xray",
|
||
"actions": "Acciones",
|
||
"probe": "Sondear ahora",
|
||
"testConnection": "Probar conexión",
|
||
"connectionOk": "Conexión correcta ({ms} ms)",
|
||
"connectionFailed": "Conexión fallida",
|
||
"never": "nunca",
|
||
"justNow": "ahora mismo",
|
||
"deleteConfirmTitle": "¿Eliminar el nodo \"{name}\"?",
|
||
"deleteConfirmContent": "Esto detiene la monitorización del nodo. El panel remoto en sí no se ve afectado.",
|
||
"statusValues": {
|
||
"online": "En línea",
|
||
"offline": "Desconectado",
|
||
"unknown": "Desconocido"
|
||
},
|
||
"toasts": {
|
||
"list": "Error al cargar los nodos",
|
||
"obtain": "Error al cargar el nodo",
|
||
"add": "Agregar nodo",
|
||
"update": "Actualizar nodo",
|
||
"delete": "Eliminar nodo",
|
||
"deleted": "Nodo eliminado",
|
||
"test": "Probar conexión",
|
||
"fillRequired": "El nombre, la dirección, el puerto y el token de API son obligatorios",
|
||
"probeFailed": "Sondeo fallido"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Configuraciones",
|
||
"save": "Guardar",
|
||
"infoDesc": "Cada cambio realizado aquí debe ser guardado. Por favor, reinicie el panel para aplicar los cambios.",
|
||
"restartPanel": "Reiniciar Panel",
|
||
"restartPanelDesc": "¿Está seguro de que desea reiniciar el panel? Haga clic en Aceptar para reiniciar después de 3 segundos. Si no puede acceder al panel después de reiniciar, por favor, consulte la información de registro del panel en el servidor.",
|
||
"restartPanelSuccess": "El panel se reinició correctamente",
|
||
"actions": "Acciones",
|
||
"resetDefaultConfig": "Restablecer a Configuración Predeterminada",
|
||
"panelSettings": "Configuraciones del Panel",
|
||
"securitySettings": "Configuraciones de Seguridad",
|
||
"TGBotSettings": "Configuraciones de Bot de Telegram",
|
||
"panelListeningIP": "IP de Escucha del Panel",
|
||
"panelListeningIPDesc": "Dejar en blanco por defecto para monitorear todas las IPs.",
|
||
"panelListeningDomain": "Dominio de Escucha del Panel",
|
||
"panelListeningDomainDesc": "Dejar en blanco por defecto para monitorear todos los dominios e IPs.",
|
||
"panelPort": "Puerto del Panel",
|
||
"panelPortDesc": "El puerto utilizado para mostrar este panel.",
|
||
"publicKeyPath": "Ruta del Archivo de Clave Pública del Certificado del Panel",
|
||
"publicKeyPathDesc": "Complete con una ruta absoluta que comience con.",
|
||
"privateKeyPath": "Ruta del Archivo de Clave Privada del Certificado del Panel",
|
||
"privateKeyPathDesc": "Complete con una ruta absoluta que comience con.",
|
||
"panelUrlPath": "Ruta Raíz de la URL del Panel",
|
||
"panelUrlPathDesc": "Debe empezar con '/' y terminar con.",
|
||
"pageSize": "Tamaño de paginación",
|
||
"pageSizeDesc": "Defina el tamaño de página para la tabla de entradas. Establezca 0 para desactivar",
|
||
"remarkModel": "Modelo de observación y carácter de separación",
|
||
"datepicker": "selector de fechas",
|
||
"datepickerPlaceholder": "Seleccionar fecha",
|
||
"datepickerDescription": "El tipo de calendario selector especifica la fecha de vencimiento",
|
||
"sampleRemark": "Observación de muestra",
|
||
"oldUsername": "Nombre de Usuario Actual",
|
||
"currentPassword": "Contraseña Actual",
|
||
"newUsername": "Nuevo Nombre de Usuario",
|
||
"newPassword": "Nueva Contraseña",
|
||
"telegramBotEnable": "Habilitar bot de Telegram",
|
||
"telegramBotEnableDesc": "Conéctese a las funciones de este panel a través del bot de Telegram.",
|
||
"telegramToken": "Token de Telegram",
|
||
"telegramTokenDesc": "Debe obtener el token del administrador de bots de Telegram {'@'}botfather.",
|
||
"telegramProxy": "Socks5 Proxy",
|
||
"telegramProxyDesc": "Si necesita el proxy Socks5 para conectarse a Telegram. Ajuste su configuración según la guía.",
|
||
"telegramAPIServer": "API Server de Telegram",
|
||
"telegramAPIServerDesc": "El servidor API de Telegram a utilizar. Déjelo en blanco para utilizar el servidor predeterminado.",
|
||
"telegramChatId": "IDs de Chat de Telegram para Administradores",
|
||
"telegramChatIdDesc": "IDs de Chat múltiples separados por comas. Use {'@'}userinfobot o use el comando '/id' en el bot para obtener sus IDs de Chat.",
|
||
"telegramNotifyTime": "Hora de Notificación del Bot de Telegram",
|
||
"telegramNotifyTimeDesc": "Usar el formato de tiempo de Crontab.",
|
||
"tgNotifyBackup": "Respaldo de Base de Datos",
|
||
"tgNotifyBackupDesc": "Incluir archivo de respaldo de base de datos con notificación de informe.",
|
||
"tgNotifyLogin": "Notificación de Inicio de Sesión",
|
||
"tgNotifyLoginDesc": "Muestra el nombre de usuario, dirección IP y hora cuando alguien intenta iniciar sesión en su panel.",
|
||
"sessionMaxAge": "Edad Máxima de Sesión",
|
||
"sessionMaxAgeDesc": "La duración de una sesión de inicio de sesión (unidad: minutos).",
|
||
"expireTimeDiff": "Umbral de Expiración para Notificación",
|
||
"expireTimeDiffDesc": "Reciba notificaciones sobre la expiración de la cuenta antes del umbral (unidad: días).",
|
||
"trafficDiff": "Umbral de Tráfico para Notificación",
|
||
"trafficDiffDesc": "Reciba notificaciones sobre el agotamiento del tráfico antes de alcanzar el umbral (unidad: GB).",
|
||
"tgNotifyCpu": "Umbral de Alerta de Porcentaje de CPU",
|
||
"tgNotifyCpuDesc": "Reciba notificaciones si el uso de la CPU supera este umbral (unidad: %).",
|
||
"timeZone": "Zona Horaria",
|
||
"timeZoneDesc": "Las tareas programadas se ejecutan de acuerdo con la hora en esta zona horaria.",
|
||
"subSettings": "Suscripción",
|
||
"subEnable": "Habilitar Servicio",
|
||
"subEnableDesc": "Función de suscripción con configuración separada.",
|
||
"subJsonEnable": "Habilitar/Deshabilitar el endpoint de suscripción JSON de forma independiente.",
|
||
"subTitle": "Título de la Suscripción",
|
||
"subTitleDesc": "Título mostrado en el cliente VPN",
|
||
"subSupportUrl": "URL de soporte",
|
||
"subSupportUrlDesc": "Enlace de soporte técnico mostrado en el cliente VPN",
|
||
"subProfileUrl": "URL del perfil",
|
||
"subProfileUrlDesc": "Un enlace a tu sitio web mostrado en el cliente VPN",
|
||
"subAnnounce": "Anuncio",
|
||
"subAnnounceDesc": "El texto del anuncio mostrado en el cliente VPN",
|
||
"subEnableRouting": "Habilitar enrutamiento",
|
||
"subEnableRoutingDesc": "Configuración global para habilitar el enrutamiento en el cliente VPN. (Solo para Happ)",
|
||
"subRoutingRules": "Reglas de enrutamiento",
|
||
"subRoutingRulesDesc": "Reglas de enrutamiento globales para el cliente VPN. (Solo para Happ)",
|
||
"subListen": "Listening IP",
|
||
"subListenDesc": "Dejar en blanco por defecto para monitorear todas las IPs.",
|
||
"subPort": "Puerto de Suscripción",
|
||
"subPortDesc": "El número de puerto para el servicio de suscripción debe estar sin usar en el servidor.",
|
||
"subCertPath": "Ruta del Archivo de Clave Pública del Certificado de Suscripción",
|
||
"subCertPathDesc": "Complete con una ruta absoluta que comience con '/'",
|
||
"subKeyPath": "Ruta del Archivo de Clave Privada del Certificado de Suscripción",
|
||
"subKeyPathDesc": "Complete con una ruta absoluta que comience con '/'",
|
||
"subPath": "Ruta Raíz de la URL de Suscripción",
|
||
"subPathDesc": "Debe empezar con '/' y terminar con '/'",
|
||
"subDomain": "Dominio de Escucha",
|
||
"subDomainDesc": "Dejar en blanco por defecto para monitorear todos los dominios e IPs.",
|
||
"subUpdates": "Intervalos de Actualización de Suscripción",
|
||
"subUpdatesDesc": "Horas de intervalo entre actualizaciones en la aplicación del cliente.",
|
||
"subEncrypt": "Encriptar configuraciones",
|
||
"subEncryptDesc": "Encriptar las configuraciones devueltas en la suscripción.",
|
||
"subShowInfo": "Mostrar información de uso",
|
||
"subShowInfoDesc": "Mostrar tráfico restante y fecha después del nombre de configuración.",
|
||
"subURI": "URI de proxy inverso",
|
||
"externalTrafficInformEnable": "Informe de tráfico externo",
|
||
"externalTrafficInformEnableDesc": "Informar a la API externa sobre cada actualización de tráfico.",
|
||
"externalTrafficInformURI": "URI de información de tráfico externo",
|
||
"externalTrafficInformURIDesc": "Las actualizaciones de tráfico se envían a este URI.",
|
||
"restartXrayOnClientDisable": "Reiniciar Xray tras desactivación automática",
|
||
"restartXrayOnClientDisableDesc": "Cuando un cliente se desactive automáticamente por vencimiento o límite de tráfico, reiniciar Xray.",
|
||
"subURIDesc": "Cambiar el URI base de la URL de suscripción para usar detrás de los servidores proxy",
|
||
"fragment": "Fragmentación",
|
||
"fragmentDesc": "Habilitar la fragmentación para el paquete de saludo de TLS",
|
||
"fragmentSett": "Configuración de Fragmentación",
|
||
"noisesDesc": "Activar Sonidos",
|
||
"noisesSett": "Configuración de Sonidos",
|
||
"mux": "Mux",
|
||
"muxDesc": "Transmite múltiples flujos de datos independientes dentro de un flujo de datos establecido.",
|
||
"muxSett": "Configuración Mux",
|
||
"direct": "Conexión Directa",
|
||
"directDesc": "Establece conexiones directas con dominios o rangos de IP de un país específico.",
|
||
"notifications": "Notificaciones",
|
||
"certs": "Certificados",
|
||
"externalTraffic": "Tráfico Externo",
|
||
"dateAndTime": "Fecha y Hora",
|
||
"proxyAndServer": "Proxy y Servidor",
|
||
"intervals": "Intervalos",
|
||
"information": "Información",
|
||
"language": "Idioma",
|
||
"telegramBotLanguage": "Idioma del Bot de Telegram",
|
||
"security": {
|
||
"admin": "Credenciales de administrador",
|
||
"twoFactor": "Autenticación de dos factores",
|
||
"twoFactorEnable": "Habilitar 2FA",
|
||
"twoFactorEnableDesc": "Añade una capa adicional de autenticación para mayor seguridad.",
|
||
"twoFactorModalSetTitle": "Activar autenticación de dos factores",
|
||
"twoFactorModalDeleteTitle": "Desactivar autenticación de dos factores",
|
||
"twoFactorModalSteps": "Para configurar la autenticación de dos factores, sigue estos pasos:",
|
||
"twoFactorModalFirstStep": "1. Escanea este código QR en la aplicación de autenticación o copia el token cerca del código QR y pégalo en la aplicación",
|
||
"twoFactorModalSecondStep": "2. Ingresa el código de la aplicación",
|
||
"twoFactorModalRemoveStep": "Ingresa el código de la aplicación para eliminar la autenticación de dos factores.",
|
||
"twoFactorModalChangeCredentialsTitle": "Cambiar credenciales",
|
||
"twoFactorModalChangeCredentialsStep": "Ingrese el código de la aplicación para cambiar las credenciales del administrador.",
|
||
"twoFactorModalSetSuccess": "La autenticación de dos factores se ha establecido con éxito",
|
||
"twoFactorModalDeleteSuccess": "La autenticación de dos factores se ha eliminado con éxito",
|
||
"twoFactorModalError": "Código incorrecto"
|
||
},
|
||
"toasts": {
|
||
"modifySettings": "Los parámetros han sido modificados.",
|
||
"getSettings": "Ocurrió un error al obtener los parámetros.",
|
||
"modifyUserError": "Ocurrió un error al cambiar las credenciales del administrador.",
|
||
"modifyUser": "Has cambiado exitosamente las credenciales del administrador.",
|
||
"originalUserPassIncorrect": "Nombre de usuario o contraseña original incorrectos",
|
||
"userPassMustBeNotEmpty": "El nuevo nombre de usuario y la nueva contraseña no pueden estar vacíos",
|
||
"getOutboundTrafficError": "Error al obtener el tráfico saliente",
|
||
"resetOutboundTrafficError": "Error al reiniciar el tráfico saliente"
|
||
}
|
||
},
|
||
"xray": {
|
||
"title": "Xray Configuración",
|
||
"save": "Guardar configuración",
|
||
"restart": "Reiniciar Xray",
|
||
"restartSuccess": "Xray se ha reiniciado correctamente",
|
||
"stopSuccess": "Xray se ha detenido correctamente",
|
||
"restartError": "Ocurrió un error al reiniciar Xray.",
|
||
"stopError": "Ocurrió un error al detener Xray.",
|
||
"basicTemplate": "Perfil Básico",
|
||
"advancedTemplate": "Perfil Avanzado",
|
||
"generalConfigs": "Configuraciones Generales",
|
||
"generalConfigsDesc": "Estas opciones proporcionarán ajustes generales.",
|
||
"logConfigs": "Registro",
|
||
"logConfigsDesc": "Los registros pueden afectar la eficiencia de su servidor. Se recomienda habilitarlos sabiamente solo en caso de sus necesidades.",
|
||
"blockConfigsDesc": "Estas opciones evitarán que los usuarios se conecten a protocolos y sitios web específicos.",
|
||
"basicRouting": "Enrutamiento Básico",
|
||
"blockConnectionsConfigsDesc": "Estas opciones bloquearán el tráfico según el país solicitado específico.",
|
||
"directConnectionsConfigsDesc": "Una conexión directa asegura que el tráfico específico no sea enrutado a través de otro servidor.",
|
||
"blockips": "Bloquear IPs",
|
||
"blockdomains": "Bloquear Dominios",
|
||
"directips": "IPs Directas",
|
||
"directdomains": "Dominios Directos",
|
||
"ipv4Routing": "Enrutamiento IPv4",
|
||
"ipv4RoutingDesc": "Estas opciones solo enrutarán a los dominios objetivo a través de IPv4.",
|
||
"warpRouting": "Enrutamiento WARP",
|
||
"warpRoutingDesc": "Precaución: Antes de usar estas opciones, instale WARP en modo de proxy socks5 en su servidor siguiendo los pasos en el GitHub del panel. WARP enrutará el tráfico a los sitios web a través de los servidores de Cloudflare.",
|
||
"nordRouting": "Enrutamiento NordVPN",
|
||
"nordRoutingDesc": "Estas opciones enrutarán el tráfico basado en un destino específico a través de NordVPN.",
|
||
"Template": "Plantilla de Configuración de Xray",
|
||
"TemplateDesc": "Genera el archivo de configuración final de Xray basado en esta plantilla.",
|
||
"FreedomStrategy": "Configurar Estrategia para el Protocolo Freedom",
|
||
"FreedomStrategyDesc": "Establece la estrategia de salida de la red en el Protocolo Freedom.",
|
||
"RoutingStrategy": "Configurar Estrategia de Enrutamiento de Dominios",
|
||
"RoutingStrategyDesc": "Establece la estrategia general de enrutamiento para la resolución de DNS.",
|
||
"outboundTestUrl": "URL de prueba de outbound",
|
||
"outboundTestUrlDesc": "URL usada al probar la conectividad del outbound",
|
||
"Torrent": "Prohibir Uso de BitTorrent",
|
||
"Inbounds": "Entrante",
|
||
"InboundsDesc": "Cambia la plantilla de configuración para aceptar clientes específicos.",
|
||
"Outbounds": "Salidas",
|
||
"Balancers": "Equilibradores",
|
||
"OutboundsDesc": "Cambia la plantilla de configuración para definir formas de salida para este servidor.",
|
||
"Routings": "Reglas de enrutamiento",
|
||
"RoutingsDesc": "¡La prioridad de cada regla es importante!",
|
||
"completeTemplate": "Todos",
|
||
"logLevel": "Nivel de registro",
|
||
"logLevelDesc": "El nivel de registro para registros de errores, que indica la información que debe registrarse.",
|
||
"accessLog": "Registro de acceso",
|
||
"accessLogDesc": "La ruta del archivo para el registro de acceso. El valor especial 'ninguno' deshabilita los registros de acceso",
|
||
"errorLog": "Registro de Errores",
|
||
"errorLogDesc": "La ruta del archivo para el registro de errores. El valor especial 'none' desactiva los registros de errores.",
|
||
"dnsLog": "Registro DNS",
|
||
"dnsLogDesc": "Si habilitar los registros de consulta DNS",
|
||
"maskAddress": "Enmascarar Dirección",
|
||
"maskAddressDesc": "Máscara de dirección IP, cuando se habilita, reemplazará automáticamente la dirección IP que aparece en el registro.",
|
||
"statistics": "Estadísticas",
|
||
"statsInboundUplink": "Estadísticas de Subida de Entrada",
|
||
"statsInboundUplinkDesc": "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de entrada.",
|
||
"statsInboundDownlink": "Estadísticas de Bajada de Entrada",
|
||
"statsInboundDownlinkDesc": "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de entrada.",
|
||
"statsOutboundUplink": "Estadísticas de Subida de Salida",
|
||
"statsOutboundUplinkDesc": "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de salida.",
|
||
"statsOutboundDownlink": "Estadísticas de Bajada de Salida",
|
||
"statsOutboundDownlinkDesc": "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de salida.",
|
||
"rules": {
|
||
"first": "Primero",
|
||
"last": "Último",
|
||
"up": "Arriba",
|
||
"down": "Abajo",
|
||
"source": "Fuente",
|
||
"dest": "Destino",
|
||
"inbound": "Entrante",
|
||
"outbound": "Saliente",
|
||
"balancer": "Equilibrador",
|
||
"info": "Información",
|
||
"add": "Agregar Regla",
|
||
"edit": "Editar Regla",
|
||
"useComma": "Elementos separados por comas"
|
||
},
|
||
"outbound": {
|
||
"addOutbound": "Agregar salida",
|
||
"addReverse": "Agregar reverso",
|
||
"editOutbound": "Editar salida",
|
||
"editReverse": "Editar reverso",
|
||
"reverseTag": "Etiqueta Reverso",
|
||
"reverseTagDesc": "Etiqueta de salida del proxy inverso simple VLESS. Dejar vacío para deshabilitar. Cuando se establece, las conexiones de este cliente pueden usarse como túnel de proxy inverso.",
|
||
"reverseTagPlaceholder": "etiqueta de salida (vacío para deshabilitar)",
|
||
"tag": "Etiqueta",
|
||
"tagDesc": "etiqueta única",
|
||
"address": "Dirección",
|
||
"reverse": "Reverso",
|
||
"domain": "Dominio",
|
||
"type": "Tipo",
|
||
"bridge": "puente",
|
||
"portal": "portal",
|
||
"link": "Enlace",
|
||
"intercon": "Interconexión",
|
||
"settings": "Configuración",
|
||
"accountInfo": "Información de la Cuenta",
|
||
"outboundStatus": "Estado de Salida",
|
||
"sendThrough": "Enviar a través de",
|
||
"test": "Probar",
|
||
"testResult": "Resultado de la prueba",
|
||
"testing": "Probando conexión...",
|
||
"testSuccess": "Prueba exitosa",
|
||
"testFailed": "Prueba fallida",
|
||
"testError": "Error al probar la salida",
|
||
"nordvpn": "NordVPN",
|
||
"accessToken": "Token de acceso",
|
||
"country": "País",
|
||
"server": "Servidor",
|
||
"city": "Ciudad",
|
||
"allCities": "Todas las ciudades",
|
||
"privateKey": "Clave privada",
|
||
"load": "Carga"
|
||
},
|
||
"balancer": {
|
||
"addBalancer": "Agregar equilibrador",
|
||
"editBalancer": "Editar balanceador",
|
||
"balancerStrategy": "Estrategia",
|
||
"balancerSelectors": "Selectores",
|
||
"tag": "Etiqueta",
|
||
"tagDesc": "etiqueta única",
|
||
"balancerDesc": "No es posible utilizar balancerTag y outboundTag al mismo tiempo. Si se utilizan al mismo tiempo, sólo funcionará outboundTag."
|
||
},
|
||
"wireguard": {
|
||
"secretKey": "Llave secreta",
|
||
"publicKey": "Llave pública",
|
||
"allowedIPs": "IP permitidas",
|
||
"endpoint": "Punto final",
|
||
"psk": "Clave precompartida",
|
||
"domainStrategy": "Estrategia de dominio"
|
||
},
|
||
"tun": {
|
||
"nameDesc": "El nombre de la interfaz TUN. El valor predeterminado es 'xray0'",
|
||
"mtuDesc": "Unidad Máxima de Transmisión. El tamaño máximo de los paquetes de datos. El valor predeterminado es 1500",
|
||
"userLevel": "Nivel de Usuario",
|
||
"userLevelDesc": "Todas las conexiones realizadas a través de este entrada utilizarán este nivel de usuario. El valor predeterminado es 0"
|
||
},
|
||
"dns": {
|
||
"enable": "Habilitar DNS",
|
||
"enableDesc": "Habilitar servidor DNS incorporado",
|
||
"tag": "Etiqueta de Entrada DNS",
|
||
"tagDesc": "Esta etiqueta estará disponible como una etiqueta de entrada en las reglas de enrutamiento.",
|
||
"clientIp": "IP del cliente",
|
||
"clientIpDesc": "Se utiliza para notificar al servidor la ubicación IP especificada durante las consultas DNS",
|
||
"disableCache": "Desactivar caché",
|
||
"disableCacheDesc": "Desactiva el almacenamiento en caché de DNS",
|
||
"disableFallback": "Desactivar respaldo",
|
||
"disableFallbackDesc": "Desactiva las consultas DNS de respaldo",
|
||
"disableFallbackIfMatch": "Desactivar respaldo si coincide",
|
||
"disableFallbackIfMatchDesc": "Desactiva las consultas DNS de respaldo cuando se acierta en la lista de dominios coincidentes del servidor DNS",
|
||
"enableParallelQuery": "Habilitar consulta paralela",
|
||
"enableParallelQueryDesc": "Habilitar consultas DNS paralelas a múltiples servidores para una resolución más rápida",
|
||
"strategy": "Estrategia de Consulta",
|
||
"strategyDesc": "Estrategia general para resolver nombres de dominio",
|
||
"add": "Agregar Servidor",
|
||
"edit": "Editar Servidor",
|
||
"domains": "Dominios",
|
||
"expectIPs": "IPs esperadas",
|
||
"unexpectIPs": "IPs inesperadas",
|
||
"useSystemHosts": "Usar Hosts del sistema",
|
||
"useSystemHostsDesc": "Usar el archivo hosts de un sistema instalado",
|
||
"usePreset": "Usar plantilla",
|
||
"dnsPresetTitle": "Plantillas DNS",
|
||
"dnsPresetFamily": "Familiar",
|
||
"serveStale": "Servir caducados",
|
||
"serveStaleDesc": "Devolver resultados caducados de la caché mientras se actualiza en segundo plano",
|
||
"serveExpiredTTL": "TTL de caducados",
|
||
"serveExpiredTTLDesc": "Validez (segundos) de las entradas caducadas en la caché; 0 = nunca caduca",
|
||
"timeoutMs": "Tiempo de espera (ms)",
|
||
"skipFallback": "Omitir respaldo",
|
||
"finalQuery": "Consulta final",
|
||
"hosts": "Hosts",
|
||
"hostsAdd": "Agregar Host",
|
||
"hostsEmpty": "No hay Hosts definidos",
|
||
"hostsDomain": "Dominio (ej. domain:example.com)",
|
||
"hostsValues": "IP o dominio — escribe y presiona Enter",
|
||
"clearAll": "Eliminar todos",
|
||
"clearAllTitle": "¿Eliminar todos los servidores DNS?",
|
||
"clearAllConfirm": "Esto eliminará todos los servidores DNS de la lista. No se puede deshacer."
|
||
},
|
||
"fakedns": {
|
||
"add": "Agregar DNS Falso",
|
||
"edit": "Editar DNS Falso",
|
||
"ipPool": "Subred del grupo de IP",
|
||
"poolSize": "Tamaño del grupo"
|
||
}
|
||
}
|
||
},
|
||
"tgbot": {
|
||
"keyboardClosed": "❌ Teclado cerrado!",
|
||
"noResult": "❗ ¡Sin resultados!",
|
||
"noQuery": "❌ ¡Consulta no encontrada! ¡Por favor, use el comando nuevamente!",
|
||
"wentWrong": "❌ ¡Algo salió mal!",
|
||
"noIpRecord": "❗ ¡No hay registro de IP!",
|
||
"noInbounds": "❗ ¡No se encontraron entradas!",
|
||
"unlimited": "♾ Ilimitado (Restablecer)",
|
||
"add": "Añadir",
|
||
"month": "Mes",
|
||
"months": "Meses",
|
||
"day": "Día",
|
||
"days": "Días",
|
||
"hours": "Horas",
|
||
"minutes": "Minutos",
|
||
"unknown": "Desconocido",
|
||
"inbounds": "Entradas",
|
||
"clients": "Clientes",
|
||
"offline": "🔴 Desconectado",
|
||
"online": "🟢 En línea",
|
||
"commands": {
|
||
"unknown": "❗ Comando desconocido",
|
||
"pleaseChoose": "👇 Por favor elige:\r\n",
|
||
"help": "🤖 ¡Bienvenido a este bot! Está diseñado para ofrecerte datos específicos del servidor y te permite hacer modificaciones según sea necesario.\r\n\r\n",
|
||
"start": "👋 Hola <i>{{ .Firstname }}</i>.\r\n",
|
||
"welcome": "🤖 Bienvenido al bot de gestión de <b>{{ .Hostname }}</b>.\r\n",
|
||
"status": "✅ ¡El bot está bien!",
|
||
"usage": "❗ ¡Por favor proporciona un texto para buscar!",
|
||
"getID": "🆔 Tu ID: <code>{{ .ID }}</code>",
|
||
"helpAdminCommands": "Para reiniciar Xray Core:\r\n<code>/restart</code>\r\n\r\nPara buscar un correo electrónico de cliente:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nPara buscar entradas (con estadísticas de cliente):\r\n<code>/inbound [Observación]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>",
|
||
"helpClientCommands": "Para buscar estadísticas, utiliza el siguiente comando:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>",
|
||
"restartUsage": "\r\n\r\n<code>/restart</code>",
|
||
"restartSuccess": "✅ ¡Operación exitosa!",
|
||
"restartFailed": "❗ Error en la operación.\r\n\r\n<code>Error: {{ .Error }}</code>.",
|
||
"xrayNotRunning": "❗ Xray Core no está en ejecución.",
|
||
"startDesc": "Mostrar el menú principal",
|
||
"helpDesc": "Ayuda del bot",
|
||
"statusDesc": "Comprobar el estado del bot",
|
||
"idDesc": "Mostrar tu ID de Telegram"
|
||
},
|
||
"messages": {
|
||
"cpuThreshold": "🔴 El uso de CPU {{ .Percent }}% es mayor que el umbral {{ .Threshold }}%",
|
||
"selectUserFailed": "❌ ¡Error al seleccionar usuario!",
|
||
"userSaved": "✅ Usuario de Telegram guardado.",
|
||
"loginSuccess": "✅ Has iniciado sesión en el panel con éxito.\r\n",
|
||
"loginFailed": "❗️ Falló el inicio de sesión en el panel.\r\n",
|
||
"2faFailed": "Error de 2FA",
|
||
"report": "🕰 Informes programados: {{ .RunTime }}\r\n",
|
||
"datetime": "⏰ Fecha y Hora: {{ .DateTime }}\r\n",
|
||
"hostname": "💻 Nombre del Host: {{ .Hostname }}\r\n",
|
||
"version": "🚀 Versión de X-UI: {{ .Version }}\r\n",
|
||
"xrayVersion": "📡 Versión de Xray: {{ .XrayVersion }}\r\n",
|
||
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
|
||
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
|
||
"ip": "🌐 IP: {{ .IP }}\r\n",
|
||
"ips": "🔢 IPs:\r\n{{ .IPs }}\r\n",
|
||
"serverUpTime": "⏳ Tiempo de actividad del servidor: {{ .UpTime }} {{ .Unit }}\r\n",
|
||
"serverLoad": "📈 Carga del servidor: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
|
||
"serverMemory": "📋 Memoria del servidor: {{ .Current }}/{{ .Total }}\r\n",
|
||
"tcpCount": "🔹 Conteo de TCP: {{ .Count }}\r\n",
|
||
"udpCount": "🔸 Conteo de UDP: {{ .Count }}\r\n",
|
||
"traffic": "🚦 Tráfico: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
|
||
"xrayStatus": "ℹ️ Estado de Xray: {{ .State }}\r\n",
|
||
"username": "👤 Nombre de usuario: {{ .Username }}\r\n",
|
||
"reason": "❗️ Motivo: {{ .Reason }}\r\n",
|
||
"time": "⏰ Hora: {{ .Time }}\r\n",
|
||
"inbound": "📍 Inbound: {{ .Remark }}\r\n",
|
||
"port": "🔌 Puerto: {{ .Port }}\r\n",
|
||
"expire": "📅 Fecha de Vencimiento: {{ .Time }}\r\n",
|
||
"expireIn": "📅 Vence en: {{ .Time }}\r\n",
|
||
"active": "💡 Activo: {{ .Enable }}\r\n",
|
||
"enabled": "🚨 Habilitado: {{ .Enable }}\r\n",
|
||
"online": "🌐 Estado de conexión: {{ .Status }}\r\n",
|
||
"lastOnline": "🔙 Última conexión: {{ .Time }}\r\n",
|
||
"email": "📧 Email: {{ .Email }}\r\n",
|
||
"upload": "🔼 Subida: ↑{{ .Upload }}\r\n",
|
||
"download": "🔽 Bajada: ↓{{ .Download }}\r\n",
|
||
"total": "📊 Total: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
|
||
"TGUser": "👤 Usuario de Telegram: {{ .TelegramID }}\r\n",
|
||
"exhaustedMsg": "🚨 Agotado {{ .Type }}:\r\n",
|
||
"exhaustedCount": "🚨 Cantidad de Agotados {{ .Type }}:\r\n",
|
||
"onlinesCount": "🌐 Clientes en línea: {{ .Count }}\r\n",
|
||
"disabled": "🛑 Desactivado: {{ .Disabled }}\r\n",
|
||
"depleteSoon": "🔜 Se agotará pronto: {{ .Deplete }}\r\n\r\n",
|
||
"backupTime": "🗄 Hora de la Copia de Seguridad: {{ .Time }}\r\n",
|
||
"refreshedOn": "\r\n📋🔄 Actualizado en: {{ .Time }}\r\n\r\n",
|
||
"yes": "✅ Sí",
|
||
"no": "❌ No",
|
||
"received_id": "🔑📥 ID actualizado.",
|
||
"received_password": "🔑📥 Contraseña actualizada.",
|
||
"received_email": "📧📥 Correo electrónico actualizado.",
|
||
"received_comment": "💬📥 Comentario actualizado.",
|
||
"id_prompt": "🔑 ID predeterminado: {{ .ClientId }}\n\nIntroduce tu ID.",
|
||
"pass_prompt": "🔑 Contraseña predeterminada: {{ .ClientPassword }}\n\nIntroduce tu contraseña.",
|
||
"email_prompt": "📧 Correo electrónico predeterminado: {{ .ClientEmail }}\n\nIntroduce tu correo electrónico.",
|
||
"comment_prompt": "💬 Comentario predeterminado: {{ .ClientComment }}\n\nIntroduce tu comentario.",
|
||
"inbound_client_data_id": "🔄 Entrada: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Correo: {{ .ClientEmail }}\n📊 Tráfico: {{ .ClientTraffic }}\n📅 Fecha de expiración: {{ .ClientExp }}\n🌐 Límite de IP: {{ .IpLimit }}\n💬 Comentario: {{ .ClientComment }}\n\n¡Ahora puedes agregar al cliente a la entrada!",
|
||
"inbound_client_data_pass": "🔄 Entrada: {{ .InboundRemark }}\n\n🔑 Contraseña: {{ .ClientPass }}\n📧 Correo: {{ .ClientEmail }}\n📊 Tráfico: {{ .ClientTraffic }}\n📅 Fecha de expiración: {{ .ClientExp }}\n🌐 Límite de IP: {{ .IpLimit }}\n💬 Comentario: {{ .ClientComment }}\n\n¡Ahora puedes agregar al cliente a la entrada!",
|
||
"cancel": "❌ ¡Proceso cancelado! \n\nPuedes /start de nuevo en cualquier momento. 🔄",
|
||
"error_add_client": "⚠️ Error:\n\n {{ .error }}",
|
||
"using_default_value": "Está bien, me quedaré con el valor predeterminado. 😊",
|
||
"incorrect_input": "Tu entrada no es válida.\nLas frases deben ser continuas sin espacios.\nEjemplo correcto: aaaaaa\nEjemplo incorrecto: aaa aaa 🚫",
|
||
"AreYouSure": "¿Estás seguro? 🤔",
|
||
"SuccessResetTraffic": "📧 Correo: {{ .ClientEmail }}\n🏁 Resultado: ✅ Éxito",
|
||
"FailedResetTraffic": "📧 Correo: {{ .ClientEmail }}\n🏁 Resultado: ❌ Fallido \n\n🛠️ Error: [ {{ .ErrorMessage }} ]",
|
||
"FinishProcess": "🔚 Proceso de reinicio de tráfico finalizado para todos los clientes."
|
||
},
|
||
"buttons": {
|
||
"closeKeyboard": "❌ Cerrar Teclado",
|
||
"cancel": "❌ Cancelar",
|
||
"cancelReset": "❌ Cancelar Reinicio",
|
||
"cancelIpLimit": "❌ Cancelar Límite de IP",
|
||
"confirmResetTraffic": "✅ ¿Confirmar Reinicio de Tráfico?",
|
||
"confirmClearIps": "✅ ¿Confirmar Limpiar IPs?",
|
||
"confirmRemoveTGUser": "✅ ¿Confirmar Eliminar Usuario de Telegram?",
|
||
"confirmToggle": "✅ ¿Confirmar habilitar/deshabilitar usuario?",
|
||
"dbBackup": "Obtener Copia de Seguridad de BD",
|
||
"serverUsage": "Uso del Servidor",
|
||
"getInbounds": "Obtener Entradas",
|
||
"depleteSoon": "Pronto se Agotará",
|
||
"clientUsage": "Obtener Uso",
|
||
"onlines": "Clientes en línea",
|
||
"commands": "Comandos",
|
||
"refresh": "🔄 Actualizar",
|
||
"clearIPs": "❌ Limpiar IPs",
|
||
"removeTGUser": "❌ Eliminar Usuario de Telegram",
|
||
"selectTGUser": "👤 Seleccionar Usuario de Telegram",
|
||
"selectOneTGUser": "👤 Selecciona un usuario de telegram:",
|
||
"resetTraffic": "📈 Reiniciar Tráfico",
|
||
"resetExpire": "📅 Cambiar fecha de Vencimiento",
|
||
"ipLog": "🔢 Registro de IP",
|
||
"ipLimit": "🔢 Límite de IP",
|
||
"setTGUser": "👤 Establecer Usuario de Telegram",
|
||
"toggle": "🔘 Habilitar / Deshabilitar",
|
||
"custom": "🔢 Costumbre",
|
||
"confirmNumber": "✅ Confirmar: {{ .Num }}",
|
||
"confirmNumberAdd": "✅ Confirmar agregando: {{ .Num }}",
|
||
"limitTraffic": "🚧 Límite de tráfico",
|
||
"getBanLogs": "Registros de prohibición",
|
||
"allClients": "Todos los Clientes",
|
||
"addClient": "Añadir cliente",
|
||
"submitDisable": "Enviar como deshabilitado ☑️",
|
||
"submitEnable": "Enviar como habilitado ✅",
|
||
"use_default": "🏷️ Usar por defecto",
|
||
"change_id": "⚙️🔑 ID",
|
||
"change_password": "⚙️🔑 Contraseña",
|
||
"change_email": "⚙️📧 Correo electrónico",
|
||
"change_comment": "⚙️💬 Comentario",
|
||
"ResetAllTraffics": "Reiniciar todo el tráfico",
|
||
"SortedTrafficUsageReport": "Informe de uso de tráfico ordenado"
|
||
},
|
||
"answers": {
|
||
"successfulOperation": "✅ ¡Exitosa!",
|
||
"errorOperation": "❗ Error en la Operación.",
|
||
"getInboundsFailed": "❌ Error al obtener las entradas",
|
||
"getClientsFailed": "❌ No se pudo obtener los clientes.",
|
||
"canceled": "❌ {{ .Email }} : Operación cancelada.",
|
||
"clientRefreshSuccess": "✅ {{ .Email }} : Cliente actualizado exitosamente.",
|
||
"IpRefreshSuccess": "✅ {{ .Email }} : IPs actualizadas exitosamente.",
|
||
"TGIdRefreshSuccess": "✅ {{ .Email }} : Usuario de Telegram del cliente actualizado exitosamente.",
|
||
"resetTrafficSuccess": "✅ {{ .Email }} : Tráfico reiniciado exitosamente.",
|
||
"setTrafficLimitSuccess": "✅ {{ .Email }} : Límite de Tráfico guardado exitosamente.",
|
||
"expireResetSuccess": "✅ {{ .Email }} : Días de vencimiento reiniciados exitosamente.",
|
||
"resetIpSuccess": "✅ {{ .Email }} : Límite de IP {{ .Count }} guardado exitosamente.",
|
||
"clearIpSuccess": "✅ {{ .Email }} : IPs limpiadas exitosamente.",
|
||
"getIpLog": "✅ {{ .Email }} : Obtener Registro de IP.",
|
||
"getUserInfo": "✅ {{ .Email }} : Obtener Información de Usuario de Telegram.",
|
||
"removedTGUserSuccess": "✅ {{ .Email }} : Usuario de Telegram eliminado exitosamente.",
|
||
"enableSuccess": "✅ {{ .Email }} : Habilitado exitosamente.",
|
||
"disableSuccess": "✅ {{ .Email }} : Deshabilitado exitosamente.",
|
||
"askToAddUserId": "¡No se encuentra su configuración!\r\nPor favor, pídale a su administrador que use su ChatID de usuario de Telegram en su(s) configuración(es).\r\n\r\nSu ChatID de usuario: <code>{{ .TgUserID }}</code>",
|
||
"chooseClient": "Elige un Cliente para Inbound {{ .Inbound }}",
|
||
"chooseInbound": "Elige un Inbound"
|
||
}
|
||
}
|
||
}
|