mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-27 02:24:40 +00:00 
			
		
		
		
	
							parent
							
								
									f57b8da691
								
							
						
					
					
						commit
						0c7d5af5ad
					
				
					 3 changed files with 501 additions and 1 deletions
				
			
		|  | @ -8,7 +8,7 @@ | ||||||
| [](#) | [](#) | ||||||
| [](https://www.gnu.org/licenses/gpl-3.0.en.html) | [](https://www.gnu.org/licenses/gpl-3.0.en.html) | ||||||
| 
 | 
 | ||||||
| 3x-ui panel supporting multi-protocol, **Multi-lang (English,Farsi,Chinese,Russian,Vietnamese)** | 3x-ui panel supporting multi-protocol, **Multi-lang (English,Farsi,Chinese,Russian,Vietnamese,Spanish)** | ||||||
| **If you think this project is helpful to you, you may wish to give a** :star2: | **If you think this project is helpful to you, you may wish to give a** :star2: | ||||||
| 
 | 
 | ||||||
| **Buy Me a Coffee :** | **Buy Me a Coffee :** | ||||||
|  |  | ||||||
|  | @ -24,6 +24,11 @@ const supportLangs = [ | ||||||
|         value: 'vi-VN', |         value: 'vi-VN', | ||||||
|         icon: '🇻🇳', |         icon: '🇻🇳', | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         name: 'española', | ||||||
|  |         value: 'es-ES', | ||||||
|  |         icon: '🇪🇸', | ||||||
|  |     }, | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| function getLang() { | function getLang() { | ||||||
|  |  | ||||||
							
								
								
									
										495
									
								
								web/translation/translate.es_ES.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										495
									
								
								web/translation/translate.es_ES.toml
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,495 @@ | ||||||
|  | "username" = "Nombre de Usuario" | ||||||
|  | "password" = "Contraseña" | ||||||
|  | "login" = "Acceso" | ||||||
|  | "confirm" = "Confirmar" | ||||||
|  | "cancel" = "Cancelar" | ||||||
|  | "close" = "Cerrar" | ||||||
|  | "copy" = "Copiar" | ||||||
|  | "copied" = "Copiado" | ||||||
|  | "download" = "Descargar" | ||||||
|  | "remark" = "Nota" | ||||||
|  | "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" = "Ninguno" | ||||||
|  | "qrCode" = "Código QR" | ||||||
|  | "info" = "Más Información" | ||||||
|  | "edit" = "Editar" | ||||||
|  | "delete" = "Eliminar" | ||||||
|  | "reset" = "Restablecer" | ||||||
|  | "copySuccess" = "Copiado exitosamente" | ||||||
|  | "sure" = "Seguro" | ||||||
|  | "encryption" = "Encriptación" | ||||||
|  | "transmission" = "Transmisión" | ||||||
|  | "host" = "Anfitrión" | ||||||
|  | "path" = "Ruta" | ||||||
|  | "camouflage" = "Camuflaje" | ||||||
|  | "status" = "Estado" | ||||||
|  | "enabled" = "Habilitado" | ||||||
|  | "disabled" = "Deshabilitado" | ||||||
|  | "depleted" = "Agotado" | ||||||
|  | "depletingSoon" = "Agotándose pronto" | ||||||
|  | "domainName" = "Nombre de dominio" | ||||||
|  | "monitor" = "Listening IP" | ||||||
|  | "certificate" = "Certificado" | ||||||
|  | "fail" = "Falló" | ||||||
|  | "success" = "Éxito" | ||||||
|  | "getVersion" = "Obtener versión" | ||||||
|  | "install" = "Instalar" | ||||||
|  | "clients" = "Clientes" | ||||||
|  | "usage" = "Uso" | ||||||
|  | "secretToken" = "Token Secreto" | ||||||
|  | "remained" = "Restante" | ||||||
|  | 
 | ||||||
|  | [menu] | ||||||
|  | "dashboard" = "Estado del Sistema" | ||||||
|  | "inbounds" = "Entradas" | ||||||
|  | "settings" = "Configuraciones del Panel" | ||||||
|  | "logout" = "Cerrar Sesión" | ||||||
|  | "link" = "Otro" | ||||||
|  | 
 | ||||||
|  | [pages.login] | ||||||
|  | "title" = "Iniciar Sesión" | ||||||
|  | "loginAgain" = "El límite de tiempo de inicio de sesión ha expirado. Por favor, inicia sesión nuevamente." | ||||||
|  | 
 | ||||||
|  | [pages.login.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 o contraseña inválidos." | ||||||
|  | "successLogin" = "Inicio de Sesión Exitoso" | ||||||
|  | 
 | ||||||
|  | [pages.index] | ||||||
|  | "title" = "Estado del Sistema" | ||||||
|  | "memory" = "Memoria" | ||||||
|  | "hard" = "Disco Duro" | ||||||
|  | "xrayStatus" = "Estado de Xray" | ||||||
|  | "stopXray" = "Detener Xray" | ||||||
|  | "restartXray" = "Reiniciar" | ||||||
|  | "xraySwitch" = "Cambiar 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." | ||||||
|  | "operationHours" = "Tiempo de Funcionamiento" | ||||||
|  | "systemLoad" = "Carga del Sistema" | ||||||
|  | "systemLoadDesc" = "promedio de carga del sistema en los últimos 1, 5 y 15 minutos" | ||||||
|  | "connectionTcpCountDesc" = "Conexiones TCP totales en todas las tarjetas de red." | ||||||
|  | "connectionUdpCountDesc" = "Conexiones UDP totales en todas las tarjetas de red." | ||||||
|  | "connectionCount" = "Número de Conexiones" | ||||||
|  | "upSpeed" = "Velocidad de Subida Total para Todas las Tarjetas de Red." | ||||||
|  | "downSpeed" = "Velocidad de Bajada Total para Todas las Tarjetas de Red." | ||||||
|  | "totalSent" = "Tráfico Total de Subida de Todas las Tarjetas de Red desde el inicio del sistema." | ||||||
|  | "totalReceive" = "Datos Descargados Totales en Todas las Tarjetas de Red desde el inicio del sistema." | ||||||
|  | "xraySwitchVersionDialog" = "Cambiar Versión de Xray" | ||||||
|  | "xraySwitchVersionDialogDesc" = "¿Estás seguro de que deseas cambiar la versión de Xray a" | ||||||
|  | "dontRefresh" = "La instalación está en progreso, por favor no actualices esta página." | ||||||
|  | "logs" = "Registros" | ||||||
|  | "config" = "Configuración" | ||||||
|  | "backup" = "Copia de Seguridad y Restauración" | ||||||
|  | "backupTitle" = "Copia de Seguridad y Restauración de la Base de Datos" | ||||||
|  | "backupDescription" = "Recuerda hacer una copia de seguridad antes de importar una nueva base de datos." | ||||||
|  | "exportDatabase" = "Descargar Base de Datos" | ||||||
|  | "importDatabase" = "Cargar Base de Datos" | ||||||
|  | 
 | ||||||
|  | [pages.inbounds] | ||||||
|  | "title" = "Entradas" | ||||||
|  | "totalDownUp" = "Subidas/Descargas Totales" | ||||||
|  | "totalUsage" = "Uso Total" | ||||||
|  | "inboundCount" = "Número de Entradas" | ||||||
|  | "operate" = "Menú" | ||||||
|  | "enable" = "Habilitar" | ||||||
|  | "remark" = "Notas" | ||||||
|  | "protocol" = "Protocolo" | ||||||
|  | "port" = "Puerto" | ||||||
|  | "traffic" = "Tráfico" | ||||||
|  | "details" = "Detalles" | ||||||
|  | "transportConfig" = "Transporte" | ||||||
|  | "expireDate" = "Fecha de Expiración" | ||||||
|  | "resetTraffic" = "Restablecer Tráfico" | ||||||
|  | "addInbound" = "Agregar Entrada" | ||||||
|  | "generalActions" = "Acciones Generales" | ||||||
|  | "create" = "Crear" | ||||||
|  | "update" = "Actualizar" | ||||||
|  | "modifyInbound" = "Modificar Entrada" | ||||||
|  | "deleteInbound" = "Eliminar Entrada" | ||||||
|  | "deleteInboundContent" = "¿Confirmar eliminación de entrada?" | ||||||
|  | "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" = "Significa Sin Límite" | ||||||
|  | "totalFlow" = "Flujo Total" | ||||||
|  | "leaveBlankToNeverExpire" = "Dejar en Blanco para Nunca Expirar" | ||||||
|  | "noRecommendKeepDefault" = "No hay requisitos especiales para mantener la configuración predeterminada" | ||||||
|  | "certificatePath" = "Ruta del Archivo de Certificado" | ||||||
|  | "certificateContent" = "Contenido del Archivo de Certificado" | ||||||
|  | "publicKeyPath" = "Ruta de la Clave Pública" | ||||||
|  | "publicKeyContent" = "Contenido de la Clave Pública" | ||||||
|  | "keyPath" = "Ruta de la Clave Privada" | ||||||
|  | "keyContent" = "Contenido de la Clave Privada" | ||||||
|  | "clickOnQRcode" = "Haz clic en el Código QR para Copiar" | ||||||
|  | "client" = "Client" | ||||||
|  | "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" | ||||||
|  | "xtlsDesc" = "La versión del núcleo de Xray debe ser 1.7.5" | ||||||
|  | "realityDesc" = "La versión del núcleo de Xray debe ser 1.8.0 o superior." | ||||||
|  | "telegramDesc" = "Utiliza el ID de Telegram sin @ o los IDs de chat (puedes obtenerlo aquí @userinfobot o usando el comando '/id' en el bot)." | ||||||
|  | "subscriptionDesc" = "Puedes encontrar tu enlace de suscripción en Detalles, también puedes usar el mismo nombre para varias configuraciones." | ||||||
|  | 
 | ||||||
|  | [pages.client] | ||||||
|  | "add" = "Agregar Cliente" | ||||||
|  | "edit" = "Editar Cliente" | ||||||
|  | "submitAdd" = "Agregar Cliente" | ||||||
|  | "submitEdit" = "Guardar Cambios" | ||||||
|  | "clientCount" = "Número de Clientes" | ||||||
|  | "bulk" = "Agregar en Lote" | ||||||
|  | "method" = "Método" | ||||||
|  | "first" = "Primero" | ||||||
|  | "last" = "Último" | ||||||
|  | "prefix" = "Prefijo" | ||||||
|  | "postfix" = "Sufijo" | ||||||
|  | "delayedStart" = "Iniciar después del primer uso" | ||||||
|  | "expireDays" = "Días de Expiración" | ||||||
|  | "days" = "día(s)" | ||||||
|  | 
 | ||||||
|  | [pages.inbounds.toasts] | ||||||
|  | "obtain" = "Recibir" | ||||||
|  | 
 | ||||||
|  | [pages.inbounds.stream.general] | ||||||
|  | "requestHeader" = "Encabezado de la Petición" | ||||||
|  | "name" = "Nombre" | ||||||
|  | "value" = "Valor" | ||||||
|  | 
 | ||||||
|  | [pages.inbounds.stream.tcp] | ||||||
|  | "requestVersion" = "Versión de la Petición" | ||||||
|  | "requestMethod" = "Método de la Petición" | ||||||
|  | "requestPath" = "Ruta de la Petición" | ||||||
|  | "responseVersion" = "Versión de la Respuesta" | ||||||
|  | "responseStatus" = "Estado de la Respuesta" | ||||||
|  | "responseStatusDescription" = "Descripción del Estado de la Respuesta" | ||||||
|  | "responseHeader" = "Encabezado de la Respuesta" | ||||||
|  | 
 | ||||||
|  | [pages.inbounds.stream.quic] | ||||||
|  | "encryption" = "Cifrado" | ||||||
|  | 
 | ||||||
|  | [pages.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." | ||||||
|  | "actions" = "Acciones" | ||||||
|  | "resetDefaultConfig" = "Restablecer a Configuración Predeterminada" | ||||||
|  | "panelSettings" = "Configuraciones del Panel" | ||||||
|  | "securitySettings" = "Configuraciones de Seguridad" | ||||||
|  | "xrayConfiguration" = "Configuración de Xray" | ||||||
|  | "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." | ||||||
|  | "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." | ||||||
|  | "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." | ||||||
|  | "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." | ||||||
|  | 
 | ||||||
|  | [pages.settings.templates] | ||||||
|  | "title" = "Plantillas" | ||||||
|  | "basicTemplate" = "Plantilla Básica" | ||||||
|  | "advancedTemplate" = "Plantilla Avanzada" | ||||||
|  | "completeTemplate" = "Plantilla Completa" | ||||||
|  | "generalConfigs" = "Configuraciones Generales" | ||||||
|  | "generalConfigsDesc" = "Estas opciones proporcionarán ajustes generales." | ||||||
|  | "blockConfigs" = "Configuraciones de Bloqueo" | ||||||
|  | "blockConfigsDesc" = "Estas opciones evitarán que los usuarios se conecten a protocolos y sitios web específicos." | ||||||
|  | "blockCountryConfigs" = "Configuraciones de Bloqueo por País" | ||||||
|  | "blockCountryConfigsDesc" = "Estas opciones evitarán que los usuarios se conecten a dominios de países específicos." | ||||||
|  | "directCountryConfigs" = "Configuraciones de Conexión Directa por País" | ||||||
|  | "directCountryConfigsDesc" = "Estas opciones conectarán a los usuarios directamente a dominios de países específicos." | ||||||
|  | "ipv4Configs" = "Configuraciones IPv4" | ||||||
|  | "ipv4ConfigsDesc" = "Estas opciones solo enrutarán a los dominios objetivo a través de IPv4." | ||||||
|  | "warpConfigs" = "Configuraciones de WARP" | ||||||
|  | "warpConfigsDesc" = "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." | ||||||
|  | "xrayConfigTemplate" = "Plantilla de Configuración de Xray" | ||||||
|  | "xrayConfigTemplateDesc" = "Genera el archivo de configuración final de Xray basado en esta plantilla." | ||||||
|  | "xrayConfigFreedomStrategy" = "Configurar Estrategia para el Protocolo Freedom" | ||||||
|  | "xrayConfigFreedomStrategyDesc" = "Establece la estrategia de salida de la red en el Protocolo Freedom." | ||||||
|  | "xrayConfigRoutingStrategy" = "Configurar Estrategia de Enrutamiento de Dominios" | ||||||
|  | "xrayConfigRoutingStrategyDesc" = "Establece la estrategia general de enrutamiento para la resolución de DNS." | ||||||
|  | "xrayConfigTorrent" = "Prohibir Uso de BitTorrent" | ||||||
|  | "xrayConfigTorrentDesc" = "Cambia la plantilla de configuración para evitar el uso de BitTorrent por parte de los usuarios." | ||||||
|  | "xrayConfigPrivateIp" = "Prohibir Conexiones a Rangos de IP Privadas" | ||||||
|  | "xrayConfigPrivateIpDesc" = "Cambia la plantilla de configuración para evitar la conexión a rangos de IP privadas." | ||||||
|  | "xrayConfigAds" = "Bloquear Anuncios" | ||||||
|  | "xrayConfigAdsDesc" = "Cambia la plantilla de configuración para bloquear anuncios." | ||||||
|  | "xrayConfigFamily" = "Bloquear Malware y Contenido para Adultos" | ||||||
|  | "xrayConfigFamilyDesc" = "Resolvedores de DNS para bloquear malware y contenido para adultos para protección familiar." | ||||||
|  | "xrayConfigSpeedtest" = "Bloquear Sitios Web de Pruebas de Velocidad" | ||||||
|  | "xrayConfigSpeedtestDesc" = "Cambia la plantilla de configuración para evitar la conexión a sitios web de pruebas de velocidad." | ||||||
|  | "xrayConfigIRIp" = "Desactivar Conexión a Rangos de IP de Irán" | ||||||
|  | "xrayConfigIRIpDesc" = "Cambia la plantilla de configuración para evitar la conexión a rangos de IP de Irán." | ||||||
|  | "xrayConfigIRDomain" = "Desactivar Conexión a Dominios de Irán" | ||||||
|  | "xrayConfigIRDomainDesc" = "Cambia la plantilla de configuración para evitar la conexión a dominios de Irán." | ||||||
|  | "xrayConfigChinaIp" = "Desactivar Conexión a Rangos de IP de China" | ||||||
|  | "xrayConfigChinaIpDesc" = "Cambia la plantilla de configuración para evitar la conexión a rangos de IP de China." | ||||||
|  | "xrayConfigChinaDomain" = "Desactivar Conexión a Dominios de China" | ||||||
|  | "xrayConfigChinaDomainDesc" = "Cambia la plantilla de configuración para evitar la conexión a dominios de China." | ||||||
|  | "xrayConfigRussiaIp" = "Desactivar Conexión a Rangos de IP de Rusia" | ||||||
|  | "xrayConfigRussiaIpDesc" = "Cambia la plantilla de configuración para evitar la conexión a rangos de IP de Rusia." | ||||||
|  | "xrayConfigRussiaDomain" = "Desactivar Conexión a Dominios de Rusia" | ||||||
|  | "xrayConfigRussiaDomainDesc" = "Cambia la plantilla de configuración para evitar la conexión a dominios de Rusia." | ||||||
|  | "xrayConfigDirectIRIp" = "Conexión Directa a Rangos de IP de Irán" | ||||||
|  | "xrayConfigDirectIRIpDesc" = "Cambia la plantilla de configuración para conectarse directamente a rangos de IP de Irán." | ||||||
|  | "xrayConfigDirectIRDomain" = "Conexión Directa a Dominios de Irán" | ||||||
|  | "xrayConfigDirectIRDomainDesc" = "Cambia la plantilla de configuración para conectarse directamente a dominios de Irán." | ||||||
|  | "xrayConfigDirectChinaIp" = "Conexión Directa a Rangos de IP de China" | ||||||
|  | "xrayConfigDirectChinaIpDesc" = "Cambia la plantilla de configuración para conectarse directamente a rangos de IP de China." | ||||||
|  | "xrayConfigDirectChinaDomain" = "Conexión Directa a Dominios de China" | ||||||
|  | "xrayConfigDirectChinaDomainDesc" = "Cambia la plantilla de configuración para conectarse directamente a dominios de China." | ||||||
|  | "xrayConfigDirectRussiaIp" = "Conexión Directa a Rangos de IP de Rusia" | ||||||
|  | "xrayConfigDirectRussiaIpDesc" = "Cambia la plantilla de configuración para conectarse directamente a rangos de IP de Rusia." | ||||||
|  | "xrayConfigDirectRussiaDomain" = "Conexión Directa a Dominios de Rusia" | ||||||
|  | "xrayConfigDirectRussiaDomainDesc" = "Cambia la plantilla de configuración para conectarse directamente a dominios de Rusia." | ||||||
|  | "xrayConfigGoogleIPv4" = "Usar IPv4 para Google" | ||||||
|  | "xrayConfigGoogleIPv4Desc" = "Agregar enrutamiento para que Google se conecte con IPv4." | ||||||
|  | "xrayConfigNetflixIPv4" = "Usar IPv4 para Netflix" | ||||||
|  | "xrayConfigNetflixIPv4Desc" = "Agregar enrutamiento para que Netflix se conecte con IPv4." | ||||||
|  | "xrayConfigGoogleWARP" = "Rutear Google a través de WARP." | ||||||
|  | "xrayConfigGoogleWARPDesc" = "Agregar enrutamiento para Google a través de WARP." | ||||||
|  | "xrayConfigOpenAIWARP" = "Rutear OpenAI (ChatGPT) a través de WARP." | ||||||
|  | "xrayConfigOpenAIWARPDesc" = "Agregar enrutamiento para OpenAI (ChatGPT) a través de WARP." | ||||||
|  | "xrayConfigNetflixWARP" = "Rutear Netflix a través de WARP." | ||||||
|  | "xrayConfigNetflixWARPDesc" = "Agregar enrutamiento para Netflix a través de WARP." | ||||||
|  | "xrayConfigSpotifyWARP" = "Rutear Spotify a través de WARP." | ||||||
|  | "xrayConfigSpotifyWARPDesc" = "Agregar enrutamiento para Spotify a través de WARP." | ||||||
|  | "xrayConfigIRWARP" = "Rutear dominios de Irán a través de WARP." | ||||||
|  | "xrayConfigIRWARPDesc" = "Agregar enrutamiento para dominios de Irán a través de WARP." | ||||||
|  | "xrayConfigInbounds" = "Configuración de Entradas" | ||||||
|  | "xrayConfigInboundsDesc" = "Cambia la plantilla de configuración para aceptar clientes específicos." | ||||||
|  | "xrayConfigOutbounds" = "Configuración de Salidas" | ||||||
|  | "xrayConfigOutboundsDesc" = "Cambia la plantilla de configuración para definir formas de salida para este servidor." | ||||||
|  | "xrayConfigRoutings" = "Configuración de Reglas de Enrutamiento" | ||||||
|  | "xrayConfigRoutingsDesc" = "Cambia la plantilla de configuración para definir reglas de enrutamiento para este servidor." | ||||||
|  | "manualLists" = "Listas Manuales" | ||||||
|  | "manualListsDesc" = "Por favor, utilice el formato de matriz JSON." | ||||||
|  | "manualBlockedIPs" = "Lista de IPs Bloqueadas" | ||||||
|  | "manualBlockedDomains" = "Lista de Dominios Bloqueados" | ||||||
|  | "manualDirectIPs" = "Lista de IPs Directas" | ||||||
|  | "manualDirectDomains" = "Lista de Dominios Directos" | ||||||
|  | "manualIPv4Domains" = "Lista de Dominios IPv4" | ||||||
|  | "manualWARPDomains" = "Lista de Dominios de WARP" | ||||||
|  | 
 | ||||||
|  | [pages.settings.security] | ||||||
|  | "admin" = "Administrador" | ||||||
|  | "secret" = "Token Secreto" | ||||||
|  | "loginSecurity" = "Seguridad de Inicio de Sesión" | ||||||
|  | "loginSecurityDesc" = "Habilitar un paso adicional de seguridad para el inicio de sesión de usuarios." | ||||||
|  | "secretToken" = "Token Secreto" | ||||||
|  | "secretTokenDesc" = "Por favor, copia y guarda este token de forma segura en un lugar seguro. Este token es necesario para iniciar sesión y no se puede recuperar con la herramienta de comando x-ui." | ||||||
|  | 
 | ||||||
|  | [pages.settings.toasts] | ||||||
|  | "modifySettings" = "Modificar Configuraciones " | ||||||
|  | "getSettings" = "Obtener Configuraciones " | ||||||
|  | "modifyUser" = "Modificar Usuario " | ||||||
|  | "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" | ||||||
|  | 
 | ||||||
|  | [tgbot] | ||||||
|  | "keyboardClosed" = "❌ ¡Teclado personalizado cerrado!" | ||||||
|  | "noResult" = "❗ ¡Sin resultados!" | ||||||
|  | "noQuery" = "❌ ¡Consulta no encontrada! ¡Por favor utiliza el comando nuevamente!" | ||||||
|  | "wentWrong" = "❌ ¡Algo salió mal!" | ||||||
|  | "noIpRecord" = "❗ ¡Sin Registro de IP!" | ||||||
|  | "noInbounds" = "❗ ¡No se encontraron entradas!" | ||||||
|  | "unlimited" = "♾ Ilimitado" | ||||||
|  | "month" = "Mes" | ||||||
|  | "months" = "Meses" | ||||||
|  | "day" = "Día" | ||||||
|  | "days" = "Días" | ||||||
|  | "hours" = "Horas" | ||||||
|  | "unknown" = "Desconocido" | ||||||
|  | "inbounds" = "Entradas" | ||||||
|  | "clients" = "Clients" | ||||||
|  | 
 | ||||||
|  | [tgbot.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" = "Buscar un correo electrónico de cliente:\r\n<code>/usage [Email]</code>\r\n \r\nBuscar entradas (con estadísticas de cliente):\r\n<code>/inbound [Nota]</code>" | ||||||
|  | "helpClientCommands" = "Para buscar estadísticas, simplemente usa el siguiente comando:\r\n \r\n<code>/usage [UUID|Contraseña]</code>\r\n \r\nUsa UUID para vmess/vless y Contraseña para Trojan." | ||||||
|  | 
 | ||||||
|  | [tgbot.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" | ||||||
|  | "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" | ||||||
|  | "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" | ||||||
|  | "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: ✅ Sí\r\n" | ||||||
|  | "inactive" = "💡 Activo: ❌ No\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" | ||||||
|  | "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" | ||||||
|  | 
 | ||||||
|  | [tgbot.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?" | ||||||
|  | "dbBackup" = "Obtener Copia de Seguridad de BD" | ||||||
|  | "serverUsage" = "Uso del Servidor" | ||||||
|  | "getInbounds" = "Obtener Entradas" | ||||||
|  | "depleteSoon" = "Pronto se Agotará" | ||||||
|  | "clientUsage" = "Obtener Uso" | ||||||
|  | "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" = "📅 Reiniciar Días de Vencimiento" | ||||||
|  | "ipLog" = "🔢 Registro de IP" | ||||||
|  | "ipLimit" = "🔢 Límite de IP" | ||||||
|  | "setTGUser" = "👤 Establecer Usuario de Telegram" | ||||||
|  | "toggle" = "🔘 Habilitar / Deshabilitar" | ||||||
|  | 
 | ||||||
|  | [tgbot.answers] | ||||||
|  | "errorOperation" = "❗ Error en la Operación." | ||||||
|  | "getInboundsFailed" = "❌ Error al obtener las entradas" | ||||||
|  | "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." | ||||||
|  | "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 ID de usuario de Telegram en su(s) configuración(es).\r\n\r\nSu ID de usuario: <b>{{ .TgUserID }}</b>" | ||||||
|  | "askToAddUserName" = "¡No se encuentra su configuración!\r\nPor favor, pídale a su administrador que use su nombre de usuario o ID de usuario de Telegram en su(s) configuración(es).\r\n\r\nSu nombre de usuario: <b>@{{ .TgUserName }}</b>\r\n\r\nSu ID de usuario: <b>{{ .TgUserID }}</b>" | ||||||
		Loading…
	
		Reference in a new issue
	
	 emirjorge
						emirjorge