3x-ui/web/translation/es-ES.json
Aleksei Sidorenko 29fa28bf75 fix(tgbot): resolve client creation race conditions and localization bugs
- Refactored Telegram bot client creation state to use a concurrent-safe map (\clientStates map[int64]*ClientState\), replacing package-level global variables. This prevents data races when multiple administrators interact with the bot simultaneously.
- Fixed hardcoded English strings in \BuildInboundClientDataMessage\ by utilizing the \	.I18nBot()\ localization wrapper.
- Implemented \UpdateBotLocalizer\ to dynamically refresh the bot's language whenever the \	gLang\ setting is updated in the web panel, eliminating the need for a service restart.
- Synchronized missing translation keys for \Sub ID\ and \Flow\ across all non-English/Russian localization files to prevent missing interface elements.
2026-05-13 00:25:35 +03:00

977 lines
No EOL
54 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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