diff --git a/web/translation/translate.ar_EG.toml b/web/translation/translate.ar_EG.toml
index 23dacf77..956a4bdd 100644
--- a/web/translation/translate.ar_EG.toml
+++ b/web/translation/translate.ar_EG.toml
@@ -748,3 +748,5 @@
"broadcastUserNoTgId" = "❌ المستخدم لا يحتوي على معرف Telegram، لا يمكن الإرسال الجماعي."
"broadcastEnterText" = "أدخل نص الرسالة للمستخدم المحدد"
"broadcastSentToUser" = "تم إرسال الرسالة إلى المستخدم: {{ .Email }}"
+"chooseSend" = "اختر طريقة إرسال الإشعار"
+"chooseUser" = "اختر مستخدمًا أو أدخل بريده الإلكتروني"
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index ccbf78f2..86b5b066 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -745,3 +745,5 @@
"broadcastUserNoTgId" = "❌ User does not have a Telegram ID, broadcast not possible."
"broadcastEnterText" = "Enter the message text for the selected user"
"broadcastSentToUser" = "Message sent to user: {{ .Email }}"
+"chooseSend" = "Choose how to send notification"
+"chooseUser" = "Select a user or enter their email"
\ No newline at end of file
diff --git a/web/translation/translate.es_ES.toml b/web/translation/translate.es_ES.toml
index 91c77f1c..49400706 100644
--- a/web/translation/translate.es_ES.toml
+++ b/web/translation/translate.es_ES.toml
@@ -1,752 +1,754 @@
-"username" = "Nombre de Usuario"
-"password" = "Contraseña"
-"login" = "Acceder"
-"confirm" = "Confirmar"
-"cancel" = "Cancelar"
-"close" = "Cerrar"
-"create" = "Crear"
-"update" = "Actualizar"
-"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" = "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" = "Anfitrión"
-"path" = "Ruta"
-"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"
-"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"
-
-[menu]
-"theme" = "Tema"
-"dark" = "Oscuro"
-"ultraDark" = "Ultra Oscuro"
-"dashboard" = "Estado del Sistema"
-"inbounds" = "Entradas"
-"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."
-
-[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, contraseña o código de dos factores incorrecto."
-"successLogin" = "Has iniciado sesión en tu cuenta correctamente."
-
-[pages.index]
-"title" = "Estado del Sistema"
-"cpu" = "CPU"
-"logicalProcessors" = "Procesadores lógicos"
-"frequency" = "Frecuencia"
-"swap" = "Intercambio"
-"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."
-"xrayStatusUnknown" = "Desconocido"
-"xrayStatusRunning" = "En ejecución"
-"xrayStatusStop" = "Detenido"
-"xrayStatusError" = "Error"
-"xrayErrorPopoverTitle" = "Se produjo un error al ejecutar Xray"
-"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"
-"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"
-"geofileUpdateDialog" = "¿Realmente deseas actualizar el geofichero?"
-"geofileUpdateDialogDesc" = "Esto actualizará el archivo #filename#."
-"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 de Seguridad y Restauración de la Base de Datos"
-"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"
-
-[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"
-"autoRefresh" = "Auto-actualizar"
-"autoRefreshInterval" = "Intervalo"
-"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?"
-"inboundUpdateSuccess" = "La entrada se ha actualizado correctamente."
-"inboundCreateSuccess" = "La entrada se ha creado correctamente."
-"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"
-
-[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" = "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)"
-
-[pages.inbounds.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 agotados 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."
-
-[pages.inbounds.stream.general]
-"request" = "Pedido"
-"response" = "Respuesta"
-"name" = "Nombre"
-"value" = "Valor"
-
-[pages.inbounds.stream.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"
-
-[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."
-"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."
-"subTitle" = "Título de la Suscripción"
-"subTitleDesc" = "Título mostrado en el cliente de VPN"
-"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."
-"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 Noises."
-"noisesSett" = "Configuración de Noises"
-"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"
-
-[pages.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" = "Plantilla Básica"
-"advancedTemplate" = "Plantilla Avanzada"
-"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."
-"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."
-"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."
-
-[pages.xray.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"
-
-[pages.xray.outbound]
-"addOutbound" = "Agregar salida"
-"addReverse" = "Agregar reverso"
-"editOutbound" = "Editar salida"
-"editReverse" = "Editar reverso"
-"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"
-
-[pages.xray.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."
-
-[pages.xray.wireguard]
-"secretKey" = "Llave secreta"
-"publicKey" = "Llave pública"
-"allowedIPs" = "IP permitidas"
-"endpoint" = "Punto final"
-"psk" = "Clave precompartida"
-"domainStrategy" = "Estrategia de dominio"
-
-[pages.xray.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"
-"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"
-
-[pages.xray.fakedns]
-"add" = "Agregar DNS Falso"
-"edit" = "Editar DNS Falso"
-"ipPool" = "Subred del grupo de IP"
-"poolSize" = "Tamaño del grupo"
-
-[pages.settings.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"
-
-[pages.settings.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"
-
-[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"
-"add" = "Agregar"
-"month" = "Mes"
-"months" = "Meses"
-"day" = "Día"
-"days" = "Días"
-"hours" = "Horas"
-"unknown" = "Desconocido"
-"inbounds" = "Entradas"
-"clients" = "Clientes"
-"offline" = "🔴 Sin conexión"
-"online" = "🟢 En línea"
-
-[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 {{ .Firstname }}.\r\n"
-"welcome" = "🤖 Bienvenido al bot de gestión de {{ .Hostname }}.\r\n"
-"status" = "✅ ¡El bot está bien!"
-"usage" = "❗ ¡Por favor proporciona un texto para buscar!"
-"getID" = "🆔 Tu ID: {{ .ID }}
"
-"helpAdminCommands" = "Para reiniciar Xray Core:\r\n/restart
\r\n\r\nPara buscar un correo electrónico de cliente:\r\n/usage [Correo electrónico]
\r\n\r\nPara buscar entradas (con estadísticas de cliente):\r\n/inbound [Observación]
\r\n\r\nID de Chat de Telegram:\r\n/id
"
-"helpClientCommands" = "Para buscar estadísticas, utiliza el siguiente comando:\r\n/usage [Correo electrónico]
\r\n\r\nID de Chat de Telegram:\r\n/id
"
-"restartUsage" = "\r\n\r\n/restart
"
-"restartSuccess" = "✅ ¡Operación exitosa!"
-"restartFailed" = "❗ Error en la operación.\r\n\r\nError: {{ .Error }}
."
-"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"
-
-[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"
-"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"
-"password" = "👤 Contraseña: {{ .Password }}\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"
-"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."
-
-
-[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?"
-"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"
-"msgSend" = "💬 Enviar notificaciones"
-"msgUser" = "👤 A usuario"
-"msgAll" = "👥 A todos los usuarios del bot"
-
-"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"
-
-
-[tgbot.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: {{ .TgUserID }}
"
-"chooseClient" = "Elige un Cliente para Inbound {{ .Inbound }}"
-"chooseInbound" = "Elige un Inbound"
-
-"enterText" = "Introduce el texto del mensaje que deseas enviar a todos los usuarios"
-"inboundError" = "❌ Error al obtener los inbounds"
-"clientError" = "❌ Error al obtener los usuarios"
-"broadcastMessageSent" = "Mensaje enviado a {{ .Count }} usuarios"
-"chooseBroadcastInbound" = "Elige el inbound para el broadcast"
-"chooseBroadcastUser" = "Elige el usuario para el broadcast o introduce el correo electrónico manualmente"
-"broadcastUserNotFound" = "❌ No se encontró un usuario con este correo electrónico en el inbound seleccionado."
-"broadcastUserNoTgId" = "❌ El usuario no tiene Telegram ID, no es posible el broadcast."
-"broadcastEnterText" = "Introduce el texto del mensaje para el usuario seleccionado"
-"broadcastSentToUser" = "Mensaje enviado al usuario: {{ .Email }}"
+"username" = "Nombre de Usuario"
+"password" = "Contraseña"
+"login" = "Acceder"
+"confirm" = "Confirmar"
+"cancel" = "Cancelar"
+"close" = "Cerrar"
+"create" = "Crear"
+"update" = "Actualizar"
+"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" = "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" = "Anfitrión"
+"path" = "Ruta"
+"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"
+"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"
+
+[menu]
+"theme" = "Tema"
+"dark" = "Oscuro"
+"ultraDark" = "Ultra Oscuro"
+"dashboard" = "Estado del Sistema"
+"inbounds" = "Entradas"
+"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."
+
+[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, contraseña o código de dos factores incorrecto."
+"successLogin" = "Has iniciado sesión en tu cuenta correctamente."
+
+[pages.index]
+"title" = "Estado del Sistema"
+"cpu" = "CPU"
+"logicalProcessors" = "Procesadores lógicos"
+"frequency" = "Frecuencia"
+"swap" = "Intercambio"
+"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."
+"xrayStatusUnknown" = "Desconocido"
+"xrayStatusRunning" = "En ejecución"
+"xrayStatusStop" = "Detenido"
+"xrayStatusError" = "Error"
+"xrayErrorPopoverTitle" = "Se produjo un error al ejecutar Xray"
+"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"
+"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"
+"geofileUpdateDialog" = "¿Realmente deseas actualizar el geofichero?"
+"geofileUpdateDialogDesc" = "Esto actualizará el archivo #filename#."
+"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 de Seguridad y Restauración de la Base de Datos"
+"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"
+
+[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"
+"autoRefresh" = "Auto-actualizar"
+"autoRefreshInterval" = "Intervalo"
+"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?"
+"inboundUpdateSuccess" = "La entrada se ha actualizado correctamente."
+"inboundCreateSuccess" = "La entrada se ha creado correctamente."
+"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"
+
+[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" = "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)"
+
+[pages.inbounds.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 agotados 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."
+
+[pages.inbounds.stream.general]
+"request" = "Pedido"
+"response" = "Respuesta"
+"name" = "Nombre"
+"value" = "Valor"
+
+[pages.inbounds.stream.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"
+
+[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."
+"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."
+"subTitle" = "Título de la Suscripción"
+"subTitleDesc" = "Título mostrado en el cliente de VPN"
+"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."
+"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 Noises."
+"noisesSett" = "Configuración de Noises"
+"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"
+
+[pages.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" = "Plantilla Básica"
+"advancedTemplate" = "Plantilla Avanzada"
+"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."
+"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."
+"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."
+
+[pages.xray.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"
+
+[pages.xray.outbound]
+"addOutbound" = "Agregar salida"
+"addReverse" = "Agregar reverso"
+"editOutbound" = "Editar salida"
+"editReverse" = "Editar reverso"
+"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"
+
+[pages.xray.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."
+
+[pages.xray.wireguard]
+"secretKey" = "Llave secreta"
+"publicKey" = "Llave pública"
+"allowedIPs" = "IP permitidas"
+"endpoint" = "Punto final"
+"psk" = "Clave precompartida"
+"domainStrategy" = "Estrategia de dominio"
+
+[pages.xray.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"
+"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"
+
+[pages.xray.fakedns]
+"add" = "Agregar DNS Falso"
+"edit" = "Editar DNS Falso"
+"ipPool" = "Subred del grupo de IP"
+"poolSize" = "Tamaño del grupo"
+
+[pages.settings.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"
+
+[pages.settings.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"
+
+[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"
+"add" = "Agregar"
+"month" = "Mes"
+"months" = "Meses"
+"day" = "Día"
+"days" = "Días"
+"hours" = "Horas"
+"unknown" = "Desconocido"
+"inbounds" = "Entradas"
+"clients" = "Clientes"
+"offline" = "🔴 Sin conexión"
+"online" = "🟢 En línea"
+
+[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 {{ .Firstname }}.\r\n"
+"welcome" = "🤖 Bienvenido al bot de gestión de {{ .Hostname }}.\r\n"
+"status" = "✅ ¡El bot está bien!"
+"usage" = "❗ ¡Por favor proporciona un texto para buscar!"
+"getID" = "🆔 Tu ID: {{ .ID }}
"
+"helpAdminCommands" = "Para reiniciar Xray Core:\r\n/restart
\r\n\r\nPara buscar un correo electrónico de cliente:\r\n/usage [Correo electrónico]
\r\n\r\nPara buscar entradas (con estadísticas de cliente):\r\n/inbound [Observación]
\r\n\r\nID de Chat de Telegram:\r\n/id
"
+"helpClientCommands" = "Para buscar estadísticas, utiliza el siguiente comando:\r\n/usage [Correo electrónico]
\r\n\r\nID de Chat de Telegram:\r\n/id
"
+"restartUsage" = "\r\n\r\n/restart
"
+"restartSuccess" = "✅ ¡Operación exitosa!"
+"restartFailed" = "❗ Error en la operación.\r\n\r\nError: {{ .Error }}
."
+"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"
+
+[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"
+"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"
+"password" = "👤 Contraseña: {{ .Password }}\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"
+"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."
+
+
+[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?"
+"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"
+"msgSend" = "💬 Enviar notificaciones"
+"msgUser" = "👤 A usuario"
+"msgAll" = "👥 A todos los usuarios del bot"
+
+"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"
+
+
+[tgbot.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: {{ .TgUserID }}
"
+"chooseClient" = "Elige un Cliente para Inbound {{ .Inbound }}"
+"chooseInbound" = "Elige un Inbound"
+
+"enterText" = "Introduce el texto del mensaje que deseas enviar a todos los usuarios"
+"inboundError" = "❌ Error al obtener los inbounds"
+"clientError" = "❌ Error al obtener los usuarios"
+"broadcastMessageSent" = "Mensaje enviado a {{ .Count }} usuarios"
+"chooseBroadcastInbound" = "Elige el inbound para el broadcast"
+"chooseBroadcastUser" = "Elige el usuario para el broadcast o introduce el correo electrónico manualmente"
+"broadcastUserNotFound" = "❌ No se encontró un usuario con este correo electrónico en el inbound seleccionado."
+"broadcastUserNoTgId" = "❌ El usuario no tiene Telegram ID, no es posible el broadcast."
+"broadcastEnterText" = "Introduce el texto del mensaje para el usuario seleccionado"
+"broadcastSentToUser" = "Mensaje enviado al usuario: {{ .Email }}"
+"chooseSend" = "Elija cómo enviar la notificación"
+"chooseUser" = "Seleccione un usuario o ingrese su correo electrónico"
\ No newline at end of file
diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml
index 7eda9260..799e5615 100644
--- a/web/translation/translate.fa_IR.toml
+++ b/web/translation/translate.fa_IR.toml
@@ -750,3 +750,5 @@
"broadcastUserNoTgId" = "❌ کاربر Telegram ID ندارد، ارسال پیام ممکن نیست."
"broadcastEnterText" = "متن پیام برای کاربر انتخاب شده را وارد کنید"
"broadcastSentToUser" = "پیام به کاربر ارسال شد: {{ .Email }}"
+"chooseSend" = "روش ارسال اعلان را انتخاب کنید"
+"chooseUser" = "یک کاربر را انتخاب کنید یا ایمیل او را وارد کنید"
\ No newline at end of file
diff --git a/web/translation/translate.id_ID.toml b/web/translation/translate.id_ID.toml
index 23fad564..46deeaed 100644
--- a/web/translation/translate.id_ID.toml
+++ b/web/translation/translate.id_ID.toml
@@ -751,3 +751,5 @@
"broadcastUserNoTgId" = "❌ Pengguna tidak memiliki Telegram ID, siaran tidak dapat dilakukan."
"broadcastEnterText" = "Masukkan teks pesan untuk pengguna yang dipilih"
"broadcastSentToUser" = "Pesan telah dikirim ke pengguna: {{ .Email }}"
+"chooseSend" = "Pilih cara mengirim notifikasi"
+"chooseUser" = "Pilih pengguna atau masukkan emailnya"
\ No newline at end of file
diff --git a/web/translation/translate.ja_JP.toml b/web/translation/translate.ja_JP.toml
index 5b7879e0..c370f07c 100644
--- a/web/translation/translate.ja_JP.toml
+++ b/web/translation/translate.ja_JP.toml
@@ -751,3 +751,5 @@
"broadcastUserNoTgId" = "❌ ユーザーにTelegram IDが設定されていないため、ブロードキャストできません。"
"broadcastEnterText" = "選択したユーザーに送信するメッセージのテキストを入力してください"
"broadcastSentToUser" = "メッセージはユーザーに送信されました: {{ .Email }}"
+"chooseSend" = "通知の送信方法を選択してください"
+"chooseUser" = "ユーザーを選択するか、メールアドレスを入力してください"
\ No newline at end of file
diff --git a/web/translation/translate.pt_BR.toml b/web/translation/translate.pt_BR.toml
index 8da2dc69..4739f113 100644
--- a/web/translation/translate.pt_BR.toml
+++ b/web/translation/translate.pt_BR.toml
@@ -750,3 +750,5 @@
"broadcastUserNoTgId" = "❌ O usuário não possui Telegram ID, broadcast não é possível."
"broadcastEnterText" = "Digite o texto da mensagem para o usuário selecionado"
"broadcastSentToUser" = "Mensagem enviada para o usuário: {{ .Email }}"
+"chooseSend" = "Escolha como enviar a notificação"
+"chooseUser" = "Selecione um usuário ou insira o e-mail dele"
\ No newline at end of file
diff --git a/web/translation/translate.tr_TR.toml b/web/translation/translate.tr_TR.toml
index 4b66ae86..72093bbd 100644
--- a/web/translation/translate.tr_TR.toml
+++ b/web/translation/translate.tr_TR.toml
@@ -750,3 +750,5 @@
"broadcastUserNoTgId" = "❌ Kullanıcının Telegram ID'si yok, yayın yapılamaz."
"broadcastEnterText" = "Seçilen kullanıcı için mesaj metnini girin"
"broadcastSentToUser" = "Mesaj kullanıcıya gönderildi: {{ .Email }}"
+"chooseSend" = "Bildirimi gönderme yöntemini seçin"
+"chooseUser" = "Bir kullanıcı seçin veya e-posta adresini girin"
\ No newline at end of file
diff --git a/web/translation/translate.uk_UA.toml b/web/translation/translate.uk_UA.toml
index a6797c3b..6c17d0ac 100644
--- a/web/translation/translate.uk_UA.toml
+++ b/web/translation/translate.uk_UA.toml
@@ -750,3 +750,5 @@
"broadcastUserNoTgId" = "❌ У користувача не вказано Telegram ID, розсилка неможлива."
"broadcastEnterText" = "Введіть текст повідомлення для вибраного користувача"
"broadcastSentToUser" = "Повідомлення надіслано користувачу: {{ .Email }}"
+"chooseSend" = "Виберіть спосіб надсилання сповіщення"
+"chooseUser" = "Виберіть користувача або введіть його email"
\ No newline at end of file
diff --git a/web/translation/translate.vi_VN.toml b/web/translation/translate.vi_VN.toml
index e60ee875..fcb809f5 100644
--- a/web/translation/translate.vi_VN.toml
+++ b/web/translation/translate.vi_VN.toml
@@ -1,752 +1,754 @@
-"username" = "Tên người dùng"
-"password" = "Mật khẩu"
-"login" = "Đăng nhập"
-"confirm" = "Xác nhận"
-"cancel" = "Hủy bỏ"
-"close" = "Đóng"
-"create" = "Tạo"
-"update" = "Cập nhật"
-"copy" = "Sao chép"
-"copied" = "Đã sao chép"
-"download" = "Tải xuống"
-"remark" = "Ghi chú"
-"enable" = "Kích hoạt"
-"protocol" = "Giao thức"
-"search" = "Tìm kiếm"
-"filter" = "Bộ lọc"
-"loading" = "Đang tải"
-"second" = "Giây"
-"minute" = "Phút"
-"hour" = "Giờ"
-"day" = "Ngày"
-"check" = "Kiểm tra"
-"indefinite" = "Không xác định"
-"unlimited" = "Không giới hạn"
-"none" = "None"
-"qrCode" = "Mã QR"
-"info" = "Thông tin thêm"
-"edit" = "Chỉnh sửa"
-"delete" = "Xóa"
-"reset" = "Đặt lại"
-"noData" = "Không có dữ liệu."
-"copySuccess" = "Đã sao chép thành công"
-"sure" = "Chắc chắn"
-"encryption" = "Mã hóa"
-"useIPv4ForHost" = "Sử dụng IPv4 cho máy chủ"
-"transmission" = "Truyền tải"
-"host" = "Máy chủ"
-"path" = "Đường dẫn"
-"camouflage" = "Ngụy trang"
-"status" = "Trạng thái"
-"enabled" = "Đã kích hoạt"
-"disabled" = "Đã tắt"
-"depleted" = "Depleted"
-"depletingSoon" = "Depleting..."
-"offline" = "Ngoại tuyến"
-"online" = "Trực tuyến"
-"domainName" = "Tên miền"
-"monitor" = "Listening IP"
-"certificate" = "Chứng chỉ số"
-"fail" = "Thất bại"
-"comment" = "Bình luận"
-"success" = "Thành công"
-"getVersion" = "Lấy phiên bản"
-"install" = "Cài đặt"
-"clients" = "Các khách hàng"
-"usage" = "Sử dụng"
-"twoFactorCode" = "Mã"
-"remained" = "Còn lại"
-"security" = "Bảo vệ"
-"secAlertTitle" = "Cảnh báo an ninh-Tiếng Việt by Ohoang7"
-"secAlertSsl" = "Kết nối này không an toàn; Vui lòng không nhập thông tin nhạy cảm cho đến khi TLS được kích hoạt để bảo vệ dữ liệu của Bạn"
-"secAlertConf" = "Một số cài đặt có thể dễ bị tấn công. Đề xuất tăng cường các giao thức bảo mật để ngăn chặn các vi phạm tiềm ẩn."
-"secAlertSSL" = "Bảng điều khiển thiếu kết nối an toàn. Vui lòng cài đặt chứng chỉ TLS để bảo vệ dữ liệu."
-"secAlertPanelPort" = "Cổng mặc định của bảng điều khiển có thể dễ bị tấn công. Vui lòng cấu hình một cổng ngẫu nhiên hoặc cụ thể."
-"secAlertPanelURI" = "Đường dẫn URI mặc định của bảng điều khiển không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
-"secAlertSubURI" = "Đường dẫn URI mặc định của đăng ký không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
-"secAlertSubJsonURI" = "Đường dẫn URI JSON mặc định của đăng ký không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
-"emptyDnsDesc" = "Không có máy chủ DNS nào được thêm."
-"emptyFakeDnsDesc" = "Không có máy chủ Fake DNS nào được thêm."
-"emptyBalancersDesc" = "Không có bộ cân bằng tải nào được thêm."
-"emptyReverseDesc" = "Không có proxy ngược nào được thêm."
-"somethingWentWrong" = "Đã xảy ra lỗi"
-
-[menu]
-"theme" = "Chủ đề"
-"dark" = "Tối"
-"ultraDark" = "Siêu tối"
-"dashboard" = "Trạng thái hệ thống"
-"inbounds" = "Đầu vào khách hàng"
-"settings" = "Cài đặt bảng điều khiển"
-"logout" = "Đăng xuất"
-"xray" = "Cài đặt Xray"
-"link" = "Quản lý"
-
-[pages.login]
-"hello" = "Xin chào"
-"title" = "Chào mừng"
-"loginAgain" = "Thời hạn đăng nhập đã hết. Vui lòng đăng nhập lại."
-
-[pages.login.toasts]
-"invalidFormData" = "Dạng dữ liệu nhập không hợp lệ."
-"emptyUsername" = "Vui lòng nhập tên người dùng."
-"emptyPassword" = "Vui lòng nhập mật khẩu."
-"wrongUsernameOrPassword" = "Tên người dùng, mật khẩu hoặc mã xác thực hai yếu tố không hợp lệ."
-"successLogin" = "Bạn đã đăng nhập vào tài khoản thành công."
-
-[pages.index]
-"title" = "Trạng thái hệ thống"
-"cpu" = "CPU"
-"logicalProcessors" = "Bộ xử lý logic"
-"frequency" = "Tần số"
-"swap" = "Swap"
-"storage" = "Lưu trữ"
-"memory" = "RAM"
-"threads" = "Luồng"
-"xrayStatus" = "Xray"
-"stopXray" = "Dừng lại"
-"restartXray" = "Khởi động lại"
-"xraySwitch" = "Phiên bản"
-"xraySwitchClick" = "Chọn phiên bản mà bạn muốn chuyển đổi sang."
-"xraySwitchClickDesk" = "Hãy lựa chọn thận trọng, vì các phiên bản cũ có thể không tương thích với các cấu hình hiện tại."
-"xrayStatusUnknown" = "Không xác định"
-"xrayStatusRunning" = "Đang chạy"
-"xrayStatusStop" = "Dừng"
-"xrayStatusError" = "Lỗi"
-"xrayErrorPopoverTitle" = "Đã xảy ra lỗi khi chạy Xray"
-"operationHours" = "Thời gian hoạt động"
-"systemLoad" = "Tải hệ thống"
-"systemLoadDesc" = "trung bình tải hệ thống trong 1, 5 và 15 phút qua"
-"connectionTcpCountDesc" = "Tổng số kết nối TCP trên tất cả các thẻ mạng."
-"connectionUdpCountDesc" = "Tổng số kết nối UDP trên tất cả các thẻ mạng."
-"connectionCount" = "Số lượng kết nối"
-"ipAddresses" = "Địa chỉ IP"
-"toggleIpVisibility" = "Chuyển đổi hiển thị IP"
-"overallSpeed" = "Tốc độ tổng thể"
-"upload" = "Tải lên"
-"download" = "Tải xuống"
-"totalData" = "Tổng dữ liệu"
-"sent" = "Đã gửi"
-"received" = "Đã nhận"
-"documentation" = "Tài liệu"
-"xraySwitchVersionDialog" = "Bạn có chắc chắn muốn thay đổi phiên bản Xray không?"
-"xraySwitchVersionDialogDesc" = "Hành động này sẽ thay đổi phiên bản Xray thành #version#."
-"xraySwitchVersionPopover" = "Xray đã được cập nhật thành công"
-"geofileUpdateDialog" = "Bạn có chắc chắn muốn cập nhật geofile không?"
-"geofileUpdateDialogDesc" = "Hành động này sẽ cập nhật tệp #filename#."
-"geofileUpdatePopover" = "Geofile đã được cập nhật thành công"
-"dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này."
-"logs" = "Nhật ký"
-"config" = "Cấu hình"
-"backup" = "Sao lưu"
-"backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu"
-"exportDatabase" = "Sao lưu"
-"exportDatabaseDesc" = "Nhấp để tải xuống tệp .db chứa bản sao lưu cơ sở dữ liệu hiện tại của bạn vào thiết bị."
-"importDatabase" = "Khôi phục"
-"importDatabaseDesc" = "Nhấp để chọn và tải lên tệp .db từ thiết bị của bạn để khôi phục cơ sở dữ liệu từ bản sao lưu."
-"importDatabaseSuccess" = "Đã nhập cơ sở dữ liệu thành công"
-"importDatabaseError" = "Lỗi xảy ra khi nhập cơ sở dữ liệu"
-"readDatabaseError" = "Lỗi xảy ra khi đọc cơ sở dữ liệu"
-"getDatabaseError" = "Lỗi xảy ra khi truy xuất cơ sở dữ liệu"
-"getConfigError" = "Lỗi xảy ra khi truy xuất tệp cấu hình"
-
-[pages.inbounds]
-"title" = "Điểm vào (Inbounds)"
-"totalDownUp" = "Tổng tải lên/tải xuống"
-"totalUsage" = "Tổng sử dụng"
-"inboundCount" = "Số lượng điểm vào"
-"operate" = "Thao tác"
-"enable" = "Kích hoạt"
-"remark" = "Chú thích"
-"protocol" = "Giao thức"
-"port" = "Cổng"
-"traffic" = "Lưu lượng"
-"details" = "Chi tiết"
-"transportConfig" = "Giao vận"
-"expireDate" = "Ngày hết hạn"
-"resetTraffic" = "Đặt lại lưu lượng"
-"addInbound" = "Thêm điểm vào"
-"generalActions" = "Hành động chung"
-"autoRefresh" = "Tự động làm mới"
-"autoRefreshInterval" = "Khoảng thời gian"
-"modifyInbound" = "Chỉnh sửa điểm vào (Inbound)"
-"deleteInbound" = "Xóa điểm vào (Inbound)"
-"deleteInboundContent" = "Xác nhận xóa điểm vào? (Inbound)"
-"deleteClient" = "Xóa người dùng"
-"deleteClientContent" = "Bạn có chắc chắn muốn xóa người dùng không?"
-"resetTrafficContent" = "Xác nhận đặt lại lưu lượng?"
-"inboundUpdateSuccess" = "Đã cập nhật kết nối inbound thành công."
-"inboundCreateSuccess" = "Đã tạo kết nối inbound thành công."
-"copyLink" = "Sao chép liên kết"
-"address" = "Địa chỉ"
-"network" = "Mạng"
-"destinationPort" = "Cổng đích"
-"targetAddress" = "Địa chỉ mục tiêu"
-"monitorDesc" = "Mặc định để trống"
-"meansNoLimit" = "= Không giới hạn (đơn vị: GB)"
-"totalFlow" = "Tổng lưu lượng"
-"leaveBlankToNeverExpire" = "Để trống để không bao giờ hết hạn"
-"noRecommendKeepDefault" = "Không yêu cầu đặc biệt để giữ nguyên cài đặt mặc định"
-"certificatePath" = "Đường dẫn tập"
-"certificateContent" = "Nội dung tập"
-"publicKey" = "Khóa công khai"
-"privatekey" = "Khóa cá nhân"
-"clickOnQRcode" = "Nhấn vào Mã QR để sao chép"
-"client" = "Người dùng"
-"export" = "Xuất liên kết"
-"clone" = "Sao chép"
-"cloneInbound" = "Sao chép điểm vào (Inbound)"
-"cloneInboundContent" = "Tất cả cài đặt của điểm vào này, trừ Cổng, IP nghe và máy khách, sẽ được áp dụng cho bản sao."
-"cloneInboundOk" = "Sao chép"
-"resetAllTraffic" = "Đặt lại lưu lượng cho tất cả điểm vào"
-"resetAllTrafficTitle" = "Đặt lại lưu lượng cho tất cả điểm vào"
-"resetAllTrafficContent" = "Bạn có chắc chắn muốn đặt lại lưu lượng cho tất cả điểm vào không?"
-"resetInboundClientTraffics" = "Đặt lại lưu lượng toàn bộ người dùng của điểm vào"
-"resetInboundClientTrafficTitle" = "Đặt lại lưu lượng cho toàn bộ người dùng của điểm vào"
-"resetInboundClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho các người dùng của điểm vào này không?"
-"resetAllClientTraffics" = "Đặt lại lưu lượng cho toàn bộ người dùng"
-"resetAllClientTrafficTitle" = "Đặt lại lưu lượng cho toàn bộ người dùng"
-"resetAllClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho toàn bộ người dùng không?"
-"delDepletedClients" = "Xóa các người dùng đã cạn kiệt"
-"delDepletedClientsTitle" = "Xóa các người dùng đã cạn kiệt"
-"delDepletedClientsContent" = "Bạn có chắc chắn muốn xóa toàn bộ người dùng đã cạn kiệt không?"
-"email" = "Email"
-"emailDesc" = "Vui lòng cung cấp một địa chỉ email duy nhất."
-"IPLimit" = "Giới hạn IP"
-"IPLimitDesc" = "Vô hiệu hóa điểm vào nếu số lượng vượt quá giá trị đã nhập (nhập 0 để vô hiệu hóa giới hạn IP)."
-"IPLimitlog" = "Lịch sử IP"
-"IPLimitlogDesc" = "Lịch sử đăng nhập IP (trước khi kích hoạt điểm vào sau khi bị vô hiệu hóa bởi giới hạn IP, bạn nên xóa lịch sử)."
-"IPLimitlogclear" = "Xóa Lịch sử"
-"setDefaultCert" = "Đặt chứng chỉ từ bảng điều khiển"
-"telegramDesc" = "Vui lòng cung cấp ID Trò chuyện Telegram. (sử dụng lệnh '/id' trong bot) hoặc (@userinfobot)"
-"subscriptionDesc" = "Bạn có thể tìm liên kết gói đăng ký của mình trong Chi tiết, cũng như bạn có thể sử dụng cùng tên cho nhiều cấu hình khác nhau"
-"info" = "Thông tin"
-"same" = "Giống nhau"
-"inboundData" = "Dữ liệu gửi đến"
-"exportInbound" = "Xuất nhập khẩu"
-"import" = "Nhập"
-"importInbound" = "Nhập inbound"
-
-[pages.client]
-"add" = "Thêm người dùng"
-"edit" = "Chỉnh sửa người dùng"
-"submitAdd" = "Thêm"
-"submitEdit" = "Lưu thay đổi"
-"clientCount" = "Số lượng người dùng"
-"bulk" = "Thêm hàng loạt"
-"method" = "Phương pháp"
-"first" = "Đầu tiên"
-"last" = "Cuối cùng"
-"prefix" = "Tiền tố"
-"postfix" = "Hậu tố"
-"delayedStart" = "Bắt đầu ở Lần Đầu"
-"expireDays" = "Khoảng thời gian"
-"days" = "ngày"
-"renew" = "Tự động gia hạn"
-"renewDesc" = "Tự động gia hạn sau khi hết hạn. (0 = tắt)(đơn vị: ngày)"
-
-[pages.inbounds.toasts]
-"obtain" = "Nhận"
-"updateSuccess" = "Cập nhật thành công"
-"logCleanSuccess" = "Đã xóa nhật ký"
-"inboundsUpdateSuccess" = "Đã cập nhật thành công các kết nối inbound"
-"inboundUpdateSuccess" = "Đã cập nhật thành công kết nối inbound"
-"inboundCreateSuccess" = "Đã tạo thành công kết nối inbound"
-"inboundDeleteSuccess" = "Đã xóa thành công kết nối inbound"
-"inboundClientAddSuccess" = "Đã thêm client inbound"
-"inboundClientDeleteSuccess" = "Đã xóa client inbound"
-"inboundClientUpdateSuccess" = "Đã cập nhật client inbound"
-"delDepletedClientsSuccess" = "Đã xóa tất cả client hết hạn"
-"resetAllClientTrafficSuccess" = "Đã đặt lại toàn bộ lưu lượng client"
-"resetAllTrafficSuccess" = "Đã đặt lại toàn bộ lưu lượng"
-"resetInboundClientTrafficSuccess" = "Đã đặt lại lưu lượng"
-"trafficGetError" = "Lỗi khi lấy thông tin lưu lượng"
-"getNewX25519CertError" = "Lỗi khi lấy chứng chỉ X25519."
-"getNewmldsa65Error" = "Lỗi khi lấy chúng tôi mldsa65."
-
-[pages.inbounds.stream.general]
-"request" = "Lời yêu cầu"
-"response" = "Phản ứng"
-"name" = "Tên"
-"value" = "Giá trị"
-
-[pages.inbounds.stream.tcp]
-"version" = "Phiên bản"
-"method" = "Phương pháp"
-"path" = "Đường dẫn"
-"status" = "Trạng thái"
-"statusDescription" = "Tình trạng Mô tả"
-"requestHeader" = "Header yêu cầu"
-"responseHeader" = "Header phản hồi"
-
-[pages.settings]
-"title" = "Cài đặt"
-"save" = "Lưu"
-"infoDesc" = "Mọi thay đổi được thực hiện ở đây cần phải được lưu. Vui lòng khởi động lại bảng điều khiển để áp dụng các thay đổi."
-"restartPanel" = "Khởi động lại bảng điều khiển"
-"restartPanelDesc" = "Bạn có chắc chắn muốn khởi động lại bảng điều khiển? Nhấn OK để khởi động lại sau 3 giây. Nếu bạn không thể truy cập bảng điều khiển sau khi khởi động lại, vui lòng xem thông tin nhật ký của bảng điều khiển trên máy chủ."
-"restartPanelSuccess" = "Đã khởi động lại bảng điều khiển thành công"
-"actions" = "Hành động"
-"resetDefaultConfig" = "Đặt lại cấu hình mặc định"
-"panelSettings" = "Bảng điều khiển"
-"securitySettings" = "Bảo mật"
-"TGBotSettings" = "Bot Telegram"
-"panelListeningIP" = "IP Nghe của bảng điều khiển"
-"panelListeningIPDesc" = "Mặc định để trống để nghe tất cả các IP."
-"panelListeningDomain" = "Tên miền của nghe bảng điều khiển"
-"panelListeningDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP"
-"panelPort" = "Cổng bảng điều khiển"
-"panelPortDesc" = "Cổng được sử dụng để kết nối với bảng điều khiển này"
-"publicKeyPath" = "Đường dẫn file chứng chỉ bảng điều khiển"
-"publicKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu từ '/')"
-"privateKeyPath" = "Đường dẫn file khóa của chứng chỉ bảng điều khiển"
-"privateKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu từ '/')"
-"panelUrlPath" = "Đường dẫn gốc URL bảng điều khiển"
-"panelUrlPathDesc" = "Phải bắt đầu và kết thúc bằng '/'"
-"pageSize" = "Kích thước phân trang"
-"pageSizeDesc" = "Xác định kích thước trang cho bảng gửi đến. Đặt 0 để tắt"
-"remarkModel" = "Ghi chú mô hình và ký tự phân tách"
-"datepicker" = "Kiểu lịch"
-"datepickerPlaceholder" = "Chọn ngày"
-"datepickerDescription" = "Tác vụ chạy theo lịch trình sẽ chạy theo kiểu lịch này."
-"sampleRemark" = "Nhận xét mẫu"
-"oldUsername" = "Tên người dùng hiện tại"
-"currentPassword" = "Mật khẩu hiện tại"
-"newUsername" = "Tên người dùng mới"
-"newPassword" = "Mật khẩu mới"
-"telegramBotEnable" = "Bật Bot Telegram"
-"telegramBotEnableDesc" = "Kết nối với các tính năng của bảng điều khiển này thông qua bot Telegram"
-"telegramToken" = "Token Telegram"
-"telegramTokenDesc" = "Bạn phải nhận token từ quản lý bot Telegram @botfather"
-"telegramProxy" = "Socks5 Proxy"
-"telegramProxyDesc" = "Nếu bạn cần socks5 proxy để kết nối với Telegram. Điều chỉnh cài đặt của nó theo hướng dẫn."
-"telegramAPIServer" = "Telegram API Server"
-"telegramAPIServerDesc" = "Máy chủ API Telegram để sử dụng. Để trống để sử dụng máy chủ mặc định."
-"telegramChatId" = "Chat ID Telegram của quản trị viên"
-"telegramChatIdDesc" = "Nhiều Chat ID phân tách bằng dấu phẩy. Sử dụng @userinfobot hoặc sử dụng lệnh '/id' trong bot để lấy Chat ID của bạn."
-"telegramNotifyTime" = "Thời gian thông báo của bot Telegram"
-"telegramNotifyTimeDesc" = "Sử dụng định dạng thời gian Crontab."
-"tgNotifyBackup" = "Sao lưu Cơ sở dữ liệu"
-"tgNotifyBackupDesc" = "Bao gồm tệp sao lưu cơ sở dữ liệu với thông báo báo cáo."
-"tgNotifyLogin" = "Thông báo Đăng nhập"
-"tgNotifyLoginDesc" = "Hiển thị tên người dùng, địa chỉ IP và thời gian khi ai đó cố gắng đăng nhập vào bảng điều khiển của bạn."
-"sessionMaxAge" = "Thời gian tối đa của phiên"
-"sessionMaxAgeDesc" = "Thời gian của phiên đăng nhập (đơn vị: phút)"
-"expireTimeDiff" = "Ngưỡng hết hạn cho thông báo"
-"expireTimeDiffDesc" = "Nhận thông báo về việc hết hạn tài khoản trước ngưỡng này (đơn vị: ngày)"
-"trafficDiff" = "Ngưỡng lưu lượng cho thông báo"
-"trafficDiffDesc" = "Nhận thông báo về việc cạn kiệt lưu lượng trước khi đạt đến ngưỡng này (đơn vị: GB)"
-"tgNotifyCpu" = "Ngưỡng cảnh báo tỷ lệ CPU"
-"tgNotifyCpuDesc" = "Nhận thông báo nếu tỷ lệ sử dụng CPU vượt quá ngưỡng này (đơn vị: %)"
-"timeZone" = "Múi giờ"
-"timeZoneDesc" = "Các tác vụ được lên lịch chạy theo thời gian trong múi giờ này."
-"subSettings" = "Gói đăng ký"
-"subEnable" = "Bật dịch vụ"
-"subEnableDesc" = "Tính năng gói đăng ký với cấu hình riêng"
-"subTitle" = "Tiêu đề Đăng ký"
-"subTitleDesc" = "Tiêu đề hiển thị trong ứng dụng VPN"
-"subListen" = "Listening IP"
-"subListenDesc" = "Mặc định để trống để nghe tất cả các IP"
-"subPort" = "Cổng gói đăng ký"
-"subPortDesc" = "Số cổng dịch vụ đăng ký phải chưa được sử dụng trên máy chủ"
-"subCertPath" = "Đường dẫn file chứng chỉ gói đăng ký"
-"subCertPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu với '/')"
-"subKeyPath" = "Đường dẫn file khóa của chứng chỉ gói đăng ký"
-"subKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu với '/')"
-"subPath" = "Đường dẫn gốc URL gói đăng ký"
-"subPathDesc" = "Phải bắt đầu và kết thúc bằng '/'"
-"subDomain" = "Tên miền con"
-"subDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP"
-"subUpdates" = "Khoảng thời gian cập nhật gói đăng ký"
-"subUpdatesDesc" = "Số giờ giữa các cập nhật trong ứng dụng khách"
-"subEncrypt" = "Mã hóa cấu hình"
-"subEncryptDesc" = "Mã hóa các cấu hình được trả về trong gói đăng ký"
-"subShowInfo" = "Hiển thị thông tin sử dụng"
-"subShowInfoDesc" = "Hiển thị lưu lượng truy cập còn lại và ngày sau tên cấu hình"
-"subURI" = "URI proxy trung gian"
-"subURIDesc" = "Thay đổi URI cơ sở của URL gói đăng ký để sử dụng cho proxy trung gian"
-"externalTrafficInformEnable" = "Thông báo giao thông bên ngoài"
-"externalTrafficInformEnableDesc" = "Thông báo cho API bên ngoài về mọi cập nhật lưu lượng truy cập."
-"externalTrafficInformURI" = "URI thông báo lưu lượng truy cập bên ngoài"
-"externalTrafficInformURIDesc" = "Cập nhật lưu lượng truy cập được gửi tới URI này."
-"fragment" = "Sự phân mảnh"
-"fragmentDesc" = "Kích hoạt phân mảnh cho gói TLS hello"
-"fragmentSett" = "Cài đặt phân mảnh"
-"noisesDesc" = "Bật Noises."
-"noisesSett" = "Cài đặt Noises"
-"mux" = "Mux"
-"muxDesc" = "Truyền nhiều luồng dữ liệu độc lập trong luồng dữ liệu đã thiết lập."
-"muxSett" = "Mux Cài đặt"
-"direct" = "Kết nối trực tiếp"
-"directDesc" = "Trực tiếp thiết lập kết nối với tên miền hoặc dải IP của một quốc gia cụ thể."
-"notifications" = "Thông báo"
-"certs" = "Chứng chỉ"
-"externalTraffic" = "Lưu lượng bên ngoài"
-"dateAndTime" = "Ngày và giờ"
-"proxyAndServer" = "Proxy và máy chủ"
-"intervals" = "Khoảng thời gian"
-"information" = "Thông tin"
-"language" = "Ngôn ngữ"
-"telegramBotLanguage" = "Ngôn ngữ của Bot Telegram"
-
-[pages.xray]
-"title" = "Cài đặt Xray"
-"save" = "Lưu cài đặt"
-"restart" = "Khởi động lại Xray"
-"restartSuccess" = "Đã khởi động lại Xray thành công"
-"stopSuccess" = "Xray đã được dừng thành công"
-"restartError" = "Đã xảy ra lỗi khi khởi động lại Xray."
-"stopError" = "Đã xảy ra lỗi khi dừng Xray."
-"basicTemplate" = "Mẫu Cơ bản"
-"advancedTemplate" = "Mẫu Nâng cao"
-"generalConfigs" = "Cấu hình Chung"
-"generalConfigsDesc" = "Những tùy chọn này sẽ cung cấp điều chỉnh tổng quát."
-"logConfigs" = "Nhật ký"
-"logConfigsDesc" = "Nhật ký có thể ảnh hưởng đến hiệu suất máy chủ của bạn. Bạn chỉ nên kích hoạt nó một cách khôn ngoan trong trường hợp bạn cần"
-"blockConfigsDesc" = "Những tùy chọn này sẽ ngăn người dùng kết nối đến các giao thức và trang web cụ thể."
-"basicRouting" = "Định tuyến Cơ bản"
-"blockConnectionsConfigsDesc" = "Các tùy chọn này sẽ chặn lưu lượng truy cập dựa trên quốc gia được yêu cầu cụ thể."
-"directConnectionsConfigsDesc" = "Kết nối trực tiếp đảm bảo rằng lưu lượng truy cập cụ thể không được định tuyến qua máy chủ khác."
-"blockips" = "Chặn IP"
-"blockdomains" = "Chặn Tên Miền"
-"directips" = "IP Trực Tiếp"
-"directdomains" = "Tên Miền Trực Tiếp"
-"ipv4Routing" = "Định tuyến IPv4"
-"ipv4RoutingDesc" = "Những tùy chọn này sẽ chỉ định kết nối đến các tên miền mục tiêu qua IPv4."
-"warpRouting" = "Định tuyến WARP"
-"warpRoutingDesc" = "Cảnh báo: Trước khi sử dụng những tùy chọn này, hãy cài đặt WARP ở chế độ proxy socks5 trên máy chủ của bạn bằng cách làm theo các bước trên GitHub của bảng điều khiển. WARP sẽ định tuyến lưu lượng đến các trang web qua máy chủ Cloudflare."
-"Template" = "Mẫu Cấu hình Xray"
-"TemplateDesc" = "Tạo tệp cấu hình Xray cuối cùng dựa trên mẫu này."
-"FreedomStrategy" = "Cấu hình Chiến lược cho Giao thức Freedom"
-"FreedomStrategyDesc" = "Đặt chiến lược đầu ra của mạng trong Giao thức Freedom."
-"RoutingStrategy" = "Cấu hình Chiến lược Định tuyến Tên miền"
-"RoutingStrategyDesc" = "Đặt chiến lược định tuyến tổng thể cho việc giải quyết DNS."
-"Torrent" = "Cấu hình sử dụng BitTorrent"
-"Inbounds" = "Đầu vào"
-"InboundsDesc" = "Thay đổi mẫu cấu hình để chấp nhận các máy khách cụ thể."
-"Outbounds" = "Đầu ra"
-"Balancers" = "Cân bằng"
-"OutboundsDesc" = "Thay đổi mẫu cấu hình để xác định các cách ra đi cho máy chủ này."
-"Routings" = "Quy tắc định tuyến"
-"RoutingsDesc" = "Mức độ ưu tiên của mỗi quy tắc đều quan trọng!"
-"completeTemplate" = "All"
-"logLevel" = "Mức đăng nhập"
-"logLevelDesc" = "Cấp độ nhật ký cho nhật ký lỗi, cho biết thông tin cần được ghi lại."
-"accessLog" = "Nhật ký truy cập"
-"accessLogDesc" = "Đường dẫn tệp cho nhật ký truy cập. Nhật ký truy cập bị vô hiệu hóa có giá trị đặc biệt 'không'"
-"errorLog" = "Nhật ký lỗi"
-"errorLogDesc" = "Đường dẫn tệp cho nhật ký lỗi. Nhật ký lỗi bị vô hiệu hóa có giá trị đặc biệt 'không'"
-"dnsLog" = "Nhật ký DNS"
-"dnsLogDesc" = "Có bật nhật ký truy vấn DNS không"
-"maskAddress" = "Ẩn Địa Chỉ"
-"maskAddressDesc" = "Mặt nạ địa chỉ IP, khi được bật, sẽ tự động thay thế địa chỉ IP xuất hiện trong nhật ký."
-"statistics" = "Thống kê"
-"statsInboundUplink" = "Thống kê tải lên đầu vào"
-"statsInboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu vào."
-"statsInboundDownlink" = "Thống kê tải xuống đầu vào"
-"statsInboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu vào."
-"statsOutboundUplink" = "Thống kê tải lên đầu ra"
-"statsOutboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu ra."
-"statsOutboundDownlink" = "Thống kê tải xuống đầu ra"
-"statsOutboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu ra."
-
-[pages.xray.rules]
-"first" = "Đầu tiên"
-"last" = "Cuối cùng"
-"up" = "Lên"
-"down" = "Xuống"
-"source" = "Nguồn"
-"dest" = "Đích"
-"inbound" = "Vào"
-"outbound" = "Ra"
-"balancer" = "Cân bằng"
-"info" = "Thông tin"
-"add" = "Thêm quy tắc"
-"edit" = "Chỉnh sửa quy tắc"
-"useComma" = "Các mục được phân tách bằng dấu phẩy"
-
-[pages.xray.outbound]
-"addOutbound" = "Thêm thư đi"
-"addReverse" = "Thêm đảo ngược"
-"editOutbound" = "Chỉnh sửa gửi đi"
-"editReverse" = "Chỉnh sửa ngược lại"
-"tag" = "Thẻ"
-"tagDesc" = "thẻ duy nhất"
-"address" = "Địa chỉ"
-"reverse" = "Đảo ngược"
-"domain" = "Miền"
-"type" = "Loại"
-"bridge" = "Cầu"
-"portal" = "Cổng thông tin"
-"link" = "Liên kết"
-"intercon" = "Kết nối"
-"settings" = "cài đặt"
-"accountInfo" = "Thông tin tài khoản"
-"outboundStatus" = "Trạng thái đầu ra"
-"sendThrough" = "Gửi qua"
-
-[pages.xray.balancer]
-"addBalancer" = "Thêm cân bằng"
-"editBalancer" = "Chỉnh sửa cân bằng"
-"balancerStrategy" = "Chiến lược"
-"balancerSelectors" = "Bộ chọn"
-"tag" = "Thẻ"
-"tagDesc" = "thẻ duy nhất"
-"balancerDesc" = "Không thể sử dụng balancerTag và outboundTag cùng một lúc. Nếu sử dụng cùng lúc thì chỉ outboundTag mới hoạt động."
-
-[pages.xray.wireguard]
-"secretKey" = "Khoá bí mật"
-"publicKey" = "Khóa công khai"
-"allowedIPs" = "IP được phép"
-"endpoint" = "Điểm cuối"
-"psk" = "Khóa chia sẻ"
-"domainStrategy" = "Chiến lược tên miền"
-
-[pages.xray.dns]
-"enable" = "Kích hoạt DNS"
-"enableDesc" = "Kích hoạt máy chủ DNS tích hợp"
-"tag" = "Thẻ gửi đến DNS"
-"tagDesc" = "Thẻ này sẽ có sẵn dưới dạng thẻ Gửi đến trong quy tắc định tuyến."
-"clientIp" = "IP khách hàng"
-"clientIpDesc" = "Được sử dụng để thông báo cho máy chủ về vị trí IP được chỉ định trong các truy vấn DNS"
-"disableCache" = "Tắt bộ nhớ đệm"
-"disableCacheDesc" = "Tắt bộ nhớ đệm DNS"
-"disableFallback" = "Tắt Fallback"
-"disableFallbackDesc" = "Tắt các truy vấn DNS Fallback"
-"disableFallbackIfMatch" = "Tắt Fallback Nếu Khớp"
-"disableFallbackIfMatchDesc" = "Tắt các truy vấn DNS Fallback khi danh sách tên miền khớp của máy chủ DNS được kích hoạt"
-"strategy" = "Chiến lược truy vấn"
-"strategyDesc" = "Chiến lược tổng thể để phân giải tên miền"
-"add" = "Thêm máy chủ"
-"edit" = "Chỉnh sửa máy chủ"
-"domains" = "Tên miền"
-"expectIPs" = "Các IP Dự Kiến"
-"unexpectIPs" = "IP không mong muốn"
-"useSystemHosts" = "Sử dụng Hosts hệ thống"
-"useSystemHostsDesc" = "Sử dụng file hosts từ hệ thống đã cài đặt"
-"usePreset" = "Dùng mẫu"
-"dnsPresetTitle" = "Mẫu DNS"
-"dnsPresetFamily" = "Gia đình"
-
-[pages.xray.fakedns]
-"add" = "Thêm DNS giả"
-"edit" = "Chỉnh sửa DNS giả"
-"ipPool" = "Mạng con nhóm IP"
-"poolSize" = "Kích thước bể bơi"
-
-[pages.settings.security]
-"admin" = "Thông tin đăng nhập quản trị viên"
-"twoFactor" = "Xác thực hai yếu tố"
-"twoFactorEnable" = "Bật 2FA"
-"twoFactorEnableDesc" = "Thêm một lớp bảo mật bổ sung để tăng cường an toàn."
-"twoFactorModalSetTitle" = "Bật xác thực hai yếu tố"
-"twoFactorModalDeleteTitle" = "Tắt xác thực hai yếu tố"
-"twoFactorModalSteps" = "Để thiết lập xác thực hai yếu tố, hãy thực hiện các bước sau:"
-"twoFactorModalFirstStep" = "1. Quét mã QR này trong ứng dụng xác thực hoặc sao chép mã token gần mã QR và dán vào ứng dụng"
-"twoFactorModalSecondStep" = "2. Nhập mã từ ứng dụng"
-"twoFactorModalRemoveStep" = "Nhập mã từ ứng dụng để xóa xác thực hai yếu tố."
-"twoFactorModalChangeCredentialsTitle" = "Thay đổi thông tin xác thực"
-"twoFactorModalChangeCredentialsStep" = "Nhập mã từ ứng dụng để thay đổi thông tin xác thực quản trị viên."
-"twoFactorModalSetSuccess" = "Xác thực hai yếu tố đã được thiết lập thành công"
-"twoFactorModalDeleteSuccess" = "Xác thực hai yếu tố đã được xóa thành công"
-"twoFactorModalError" = "Mã sai"
-
-[pages.settings.toasts]
-"modifySettings" = "Các tham số đã được thay đổi."
-"getSettings" = "Lỗi xảy ra khi truy xuất tham số."
-"modifyUserError" = "Đã xảy ra lỗi khi thay đổi thông tin đăng nhập quản trị viên."
-"modifyUser" = "Bạn đã thay đổi thông tin đăng nhập quản trị viên thành công."
-"originalUserPassIncorrect" = "Tên người dùng hoặc mật khẩu gốc không đúng"
-"userPassMustBeNotEmpty" = "Tên người dùng mới và mật khẩu mới không thể để trống"
-"getOutboundTrafficError" = "Lỗi khi lấy lưu lượng truy cập đi"
-"resetOutboundTrafficError" = "Lỗi khi đặt lại lưu lượng truy cập đi"
-
-[tgbot]
-"keyboardClosed" = "❌ Bàn phím tùy chỉnh đã đóng!"
-"noResult" = "❗ Không có kết quả!"
-"noQuery" = "❌ Không tìm thấy truy vấn! Vui lòng sử dụng lệnh lại!"
-"wentWrong" = "❌ Đã xảy ra lỗi!"
-"noIpRecord" = "❗ Không có bản ghi IP!"
-"noInbounds" = "❗ Không tìm thấy inbound!"
-"unlimited" = "♾ Không giới hạn"
-"add" = "Thêm"
-"month" = "Tháng"
-"months" = "Tháng"
-"day" = "Ngày"
-"days" = "Ngày"
-"hours" = "Giờ"
-"unknown" = "Không rõ"
-"inbounds" = "Vào"
-"clients" = "Các người dùng"
-"offline" = "🔴 Ngoại tuyến"
-"online" = "🟢 Trực tuyến"
-
-[tgbot.commands]
-"unknown" = "❗ Lệnh không rõ"
-"pleaseChoose" = "👇 Vui lòng chọn:\r\n"
-"help" = "🤖 Chào mừng bạn đến với bot này! Bot được thiết kế để cung cấp cho bạn dữ liệu cụ thể từ máy chủ và cho phép bạn thực hiện các thay đổi cần thiết.\r\n\r\n"
-"start" = "👋 Xin chào {{ .Firstname }}.\r\n"
-"welcome" = "🤖 Chào mừng đến với bot quản lý của {{ .Hostname }}.\r\n"
-"status" = "✅ Bot hoạt động bình thường!"
-"usage" = "❗ Vui lòng cung cấp văn bản để tìm kiếm!"
-"getID" = "🆔 ID của bạn: {{ .ID }}
"
-"helpAdminCommands" = "Để khởi động lại Xray Core:\r\n/restart
\r\n\r\nĐể tìm kiếm email của khách hàng:\r\n/usage [Email]
\r\n\r\nĐể tìm kiếm các nhập (với số liệu thống kê của khách hàng):\r\n/inbound [Ghi chú]
\r\n\r\nID Trò chuyện Telegram:\r\n/id
"
-"helpClientCommands" = "Để tìm kiếm thống kê, sử dụng lệnh sau:\r\n/usage [Email]
\r\n\r\nID Trò chuyện Telegram:\r\n/id
"
-"restartUsage" = "\r\n\r\n/restart
"
-"restartSuccess" = "✅ Hoạt động thành công!"
-"restartFailed" = "❗ Lỗi trong quá trình hoạt động.\r\n\r\nLỗi: {{ .Error }}
."
-"xrayNotRunning" = "❗ Xray Core không chạy."
-"startDesc" = "Hiển thị menu chính"
-"helpDesc" = "Trợ giúp bot"
-"statusDesc" = "Kiểm tra trạng thái bot"
-"idDesc" = "Hiển thị ID Telegram của bạn"
-
-[tgbot.messages]
-"cpuThreshold" = "🔴 Sử dụng CPU {{ .Percent }}% vượt quá ngưỡng {{ .Threshold }}%"
-"selectUserFailed" = "❌ Lỗi khi chọn người dùng!"
-"userSaved" = "✅ Người dùng Telegram đã được lưu."
-"loginSuccess" = "✅ Đăng nhập thành công vào bảng điều khiển.\r\n"
-"loginFailed" = "❗️ Đăng nhập vào bảng điều khiển thất bại.\r\n"
-"report" = "🕰 Báo cáo định kỳ: {{ .RunTime }}\r\n"
-"datetime" = "⏰ Ngày-Giờ: {{ .DateTime }}\r\n"
-"hostname" = "💻 Tên máy chủ: {{ .Hostname }}\r\n"
-"version" = "🚀 Phiên bản X-UI: {{ .Version }}\r\n"
-"xrayVersion" = "📡 Phiên bản Xray: {{ .XrayVersion }}\r\n"
-"ipv6" = "🌐 IPv6: {{ .IPv6 }}\r\n"
-"ipv4" = "🌐 IPv4: {{ .IPv4 }}\r\n"
-"ip" = "🌐 IP: {{ .IP }}\r\n"
-"ips" = "🔢 Các IP:\r\n{{ .IPs }}\r\n"
-"serverUpTime" = "⏳ Thời gian hoạt động của máy chủ: {{ .UpTime }} {{ .Unit }}\r\n"
-"serverLoad" = "📈 Tải máy chủ: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n"
-"serverMemory" = "📋 Bộ nhớ máy chủ: {{ .Current }}/{{ .Total }}\r\n"
-"tcpCount" = "🔹 Số lượng kết nối TCP: {{ .Count }}\r\n"
-"udpCount" = "🔸 Số lượng kết nối UDP: {{ .Count }}\r\n"
-"traffic" = "🚦 Lưu lượng: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n"
-"xrayStatus" = "ℹ️ Trạng thái Xray: {{ .State }}\r\n"
-"username" = "👤 Tên người dùng: {{ .Username }}\r\n"
-"password" = "👤 Mật khẩu: {{ .Password }}\r\n"
-"time" = "⏰ Thời gian: {{ .Time }}\r\n"
-"inbound" = "📍 Inbound: {{ .Remark }}\r\n"
-"port" = "🔌 Cổng: {{ .Port }}\r\n"
-"expire" = "📅 Ngày hết hạn: {{ .Time }}\r\n"
-"expireIn" = "📅 Hết hạn sau: {{ .Time }}\r\n"
-"active" = "💡 Đang hoạt động: {{ .Enable }}\r\n"
-"enabled" = "🚨 Đã bật: {{ .Enable }}\r\n"
-"online" = "🌐 Trạng thái kết nối: {{ .Status }}\r\n"
-"email" = "📧 Email: {{ .Email }}\r\n"
-"upload" = "🔼 Tải lên: ↑{{ .Upload }}\r\n"
-"download" = "🔽 Tải xuống: ↓{{ .Download }}\r\n"
-"total" = "📊 Tổng cộng: ↑↓{{ .UpDown }} / {{ .Total }}\r\n"
-"TGUser" = "👤 Người dùng Telegram: {{ .TelegramID }}\r\n"
-"exhaustedMsg" = "🚨 Sự cạn kiệt {{ .Type }}:\r\n"
-"exhaustedCount" = "🚨 Số lần cạn kiệt {{ .Type }}:\r\n"
-"onlinesCount" = "🌐 Khách hàng trực tuyến: {{ .Count }}\r\n"
-"disabled" = "🛑 Vô hiệu hóa: {{ .Disabled }}\r\n"
-"depleteSoon" = "🔜 Sắp cạn kiệt: {{ .Deplete }}\r\n\r\n"
-"backupTime" = "🗄 Thời gian sao lưu: {{ .Time }}\r\n"
-"refreshedOn" = "\r\n📋🔄 Đã cập nhật lần cuối vào: {{ .Time }}\r\n\r\n"
-"yes" = "✅ Có"
-"no" = "❌ Không"
-
-"received_id" = "🔑📥 ID đã được cập nhật."
-"received_password" = "🔑📥 Mật khẩu đã được cập nhật."
-"received_email" = "📧📥 Email đã được cập nhật."
-"received_comment" = "💬📥 Bình luận đã được cập nhật."
-"id_prompt" = "🔑 ID mặc định: {{ .ClientId }}\n\nVui lòng nhập ID của bạn."
-"pass_prompt" = "🔑 Mật khẩu mặc định: {{ .ClientPassword }}\n\nVui lòng nhập mật khẩu của bạn."
-"email_prompt" = "📧 Email mặc định: {{ .ClientEmail }}\n\nVui lòng nhập email của bạn."
-"comment_prompt" = "💬 Bình luận mặc định: {{ .ClientComment }}\n\nVui lòng nhập bình luận của bạn."
-"inbound_client_data_id" = "🔄 Kết nối vào: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Dung lượng: {{ .ClientTraffic }}\n📅 Ngày hết hạn: {{ .ClientExp }}\n🌐 Giới hạn IP: {{ .IpLimit }}\n💬 Ghi chú: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào inbound!"
-"inbound_client_data_pass" = "🔄 Kết nối vào: {{ .InboundRemark }}\n\n🔑 Mật khẩu: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Dung lượng: {{ .ClientTraffic }}\n📅 Ngày hết hạn: {{ .ClientExp }}\n🌐 Giới hạn IP: {{ .IpLimit }}\n💬 Ghi chú: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào inbound!"
-"cancel" = "❌ Quá trình đã bị hủy! \n\nBạn có thể bắt đầu lại bất cứ lúc nào bằng cách nhập /start. 🔄"
-"error_add_client" = "⚠️ Lỗi:\n\n {{ .error }}"
-"using_default_value" = "Được rồi, tôi sẽ sử dụng giá trị mặc định. 😊"
-"incorrect_input" ="Dữ liệu bạn nhập không hợp lệ.\nCác chuỗi phải liền mạch và không có dấu cách.\nVí dụ đúng: aaaaaa\nVí dụ sai: aaa aaa 🚫"
-"AreYouSure" = "Bạn có chắc không? 🤔"
-"SuccessResetTraffic" = "📧 Email: {{ .ClientEmail }}\n🏁 Kết quả: ✅ Thành công"
-"FailedResetTraffic" = "📧 Email: {{ .ClientEmail }}\n🏁 Kết quả: ❌ Thất bại \n\n🛠️ Lỗi: [ {{ .ErrorMessage }} ]"
-"FinishProcess" = "🔚 Quá trình đặt lại lưu lượng đã hoàn tất cho tất cả khách hàng."
-
-
-[tgbot.buttons]
-"closeKeyboard" = "❌ Đóng Bàn Phím"
-"cancel" = "❌ Hủy"
-"cancelReset" = "❌ Hủy Đặt Lại"
-"cancelIpLimit" = "❌ Hủy Giới Hạn IP"
-"confirmResetTraffic" = "✅ Xác Nhận Đặt Lại Lưu Lượng?"
-"confirmClearIps" = "✅ Xác Nhận Xóa Các IP?"
-"confirmRemoveTGUser" = "✅ Xác Nhận Xóa Người Dùng Telegram?"
-"confirmToggle" = "✅ Xác nhận Bật/Tắt người dùng?"
-"dbBackup" = "Tải bản sao lưu cơ sở dữ liệu"
-"serverUsage" = "Sử Dụng Máy Chủ"
-"getInbounds" = "Lấy cổng vào"
-"depleteSoon" = "Depleted Soon"
-"clientUsage" = "Lấy Sử Dụng"
-"onlines" = "Khách hàng trực tuyến"
-"commands" = "Lệnh"
-"refresh" = "🔄 Cập Nhật"
-"clearIPs" = "❌ Xóa IP"
-"removeTGUser" = "❌ Xóa Người Dùng Telegram"
-"selectTGUser" = "👤 Chọn Người Dùng Telegram"
-"selectOneTGUser" = "👤 Chọn một người dùng telegram:"
-"resetTraffic" = "📈 Đặt Lại Lưu Lượng"
-"resetExpire" = "📅 Thay đổi ngày hết hạn"
-"ipLog" = "🔢 Nhật ký địa chỉ IP"
-"ipLimit" = "🔢 Giới Hạn địa chỉ IP"
-"setTGUser" = "👤 Đặt Người Dùng Telegram"
-"toggle" = "🔘 Bật / Tắt"
-"custom" = "🔢 Tùy chỉnh"
-"confirmNumber" = "✅ Xác nhận: {{ .Num }}"
-"confirmNumberAdd" = "✅ Xác nhận thêm: {{ .Num }}"
-"limitTraffic" = "🚧 Giới hạn lưu lượng"
-"getBanLogs" = "Cấm nhật ký"
-"allClients" = "Tất cả Khách hàng"
-"msgSend" = "💬 Gửi thông báo"
-"msgUser" = "👤 Đến người dùng"
-"msgAll" = "👥 Đến tất cả người dùng bot"
-
-"addClient" = "Thêm Khách Hàng"
-"submitDisable" = "Gửi Dưới Dạng Vô Hiệu ☑️"
-"submitEnable" = "Gửi Dưới Dạng Kích Hoạt ✅"
-"use_default" = "🏷️ Sử Dụng Mặc Định"
-"change_id" = "⚙️🔑 ID"
-"change_password" = "⚙️🔑 Mật Khẩu"
-"change_email" = "⚙️📧 Email"
-"change_comment" = "⚙️💬 Bình Luận"
-"ResetAllTraffics" = "Đặt lại tất cả lưu lượng"
-"SortedTrafficUsageReport" = "Báo cáo sử dụng lưu lượng đã sắp xếp"
-
-
-[tgbot.answers]
-"successfulOperation" = "✅ Thành công!"
-"errorOperation" = "❗ Lỗi Trong Quá Trình Thực Hiện."
-"getInboundsFailed" = "❌ Không Thể Lấy Được Inbounds"
-"getClientsFailed" = "❌ Không thể lấy khách hàng."
-"canceled" = "❌ {{ .Email }} : Thao Tác Đã Bị Hủy."
-"clientRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho Khách Hàng."
-"IpRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho IPs."
-"TGIdRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho Người Dùng Telegram."
-"resetTrafficSuccess" = "✅ {{ .Email }} : Đặt Lại Lưu Lượng Thành Công."
-"setTrafficLimitSuccess" = "✅ {{ .Email }} : Đã lưu thành công giới hạn lưu lượng."
-"expireResetSuccess" = "✅ {{ .Email }} : Đặt Lại Ngày Hết Hạn Thành Công."
-"resetIpSuccess" = "✅ {{ .Email }} : Giới Hạn IP {{ .Count }} Đã Được Lưu Thành Công."
-"clearIpSuccess" = "✅ {{ .Email }} : IP Đã Được Xóa Thành Công."
-"getIpLog" = "✅ {{ .Email }} : Lấy nhật ký IP Thành Công."
-"getUserInfo" = "✅ {{ .Email }} : Lấy Thông Tin Người Dùng Telegram Thành Công."
-"removedTGUserSuccess" = "✅ {{ .Email }} : Người Dùng Telegram Đã Được Xóa Thành Công."
-"enableSuccess" = "✅ {{ .Email }} : Đã Bật Thành Công."
-"disableSuccess" = "✅ {{ .Email }} : Đã Tắt Thành Công."
-"askToAddUserId" = "Cấu hình của bạn không được tìm thấy!\r\nVui lòng yêu cầu Quản trị viên sử dụng ID người dùng telegram của bạn trong cấu hình của bạn.\r\n\r\nID người dùng của bạn: {{ .TgUserID }}
"
-"chooseClient" = "Chọn một Khách hàng cho Inbound {{ .Inbound }}"
-"chooseInbound" = "Chọn một Inbound"
-
-"enterText" = "Nhập nội dung tin nhắn muốn gửi cho tất cả người dùng"
-"inboundError" = "❌ Lỗi khi lấy dữ liệu inbound"
-"clientError" = "❌ Lỗi khi lấy người dùng"
-"broadcastMessageSent" = "Tin nhắn đã được gửi đến {{ .Count }} người dùng"
-"chooseBroadcastInbound" = "Chọn inbound để gửi broadcast"
-"chooseBroadcastUser" = "Chọn người dùng để gửi broadcast hoặc nhập email thủ công"
-"broadcastUserNotFound" = "❌ Không tìm thấy người dùng với email này trong inbound đã chọn."
-"broadcastUserNoTgId" = "❌ Người dùng không có Telegram ID, không thể gửi broadcast."
-"broadcastEnterText" = "Nhập nội dung tin nhắn cho người dùng đã chọn"
-"broadcastSentToUser" = "Tin nhắn đã được gửi đến người dùng: {{ .Email }}"
+"username" = "Tên người dùng"
+"password" = "Mật khẩu"
+"login" = "Đăng nhập"
+"confirm" = "Xác nhận"
+"cancel" = "Hủy bỏ"
+"close" = "Đóng"
+"create" = "Tạo"
+"update" = "Cập nhật"
+"copy" = "Sao chép"
+"copied" = "Đã sao chép"
+"download" = "Tải xuống"
+"remark" = "Ghi chú"
+"enable" = "Kích hoạt"
+"protocol" = "Giao thức"
+"search" = "Tìm kiếm"
+"filter" = "Bộ lọc"
+"loading" = "Đang tải"
+"second" = "Giây"
+"minute" = "Phút"
+"hour" = "Giờ"
+"day" = "Ngày"
+"check" = "Kiểm tra"
+"indefinite" = "Không xác định"
+"unlimited" = "Không giới hạn"
+"none" = "None"
+"qrCode" = "Mã QR"
+"info" = "Thông tin thêm"
+"edit" = "Chỉnh sửa"
+"delete" = "Xóa"
+"reset" = "Đặt lại"
+"noData" = "Không có dữ liệu."
+"copySuccess" = "Đã sao chép thành công"
+"sure" = "Chắc chắn"
+"encryption" = "Mã hóa"
+"useIPv4ForHost" = "Sử dụng IPv4 cho máy chủ"
+"transmission" = "Truyền tải"
+"host" = "Máy chủ"
+"path" = "Đường dẫn"
+"camouflage" = "Ngụy trang"
+"status" = "Trạng thái"
+"enabled" = "Đã kích hoạt"
+"disabled" = "Đã tắt"
+"depleted" = "Depleted"
+"depletingSoon" = "Depleting..."
+"offline" = "Ngoại tuyến"
+"online" = "Trực tuyến"
+"domainName" = "Tên miền"
+"monitor" = "Listening IP"
+"certificate" = "Chứng chỉ số"
+"fail" = "Thất bại"
+"comment" = "Bình luận"
+"success" = "Thành công"
+"getVersion" = "Lấy phiên bản"
+"install" = "Cài đặt"
+"clients" = "Các khách hàng"
+"usage" = "Sử dụng"
+"twoFactorCode" = "Mã"
+"remained" = "Còn lại"
+"security" = "Bảo vệ"
+"secAlertTitle" = "Cảnh báo an ninh-Tiếng Việt by Ohoang7"
+"secAlertSsl" = "Kết nối này không an toàn; Vui lòng không nhập thông tin nhạy cảm cho đến khi TLS được kích hoạt để bảo vệ dữ liệu của Bạn"
+"secAlertConf" = "Một số cài đặt có thể dễ bị tấn công. Đề xuất tăng cường các giao thức bảo mật để ngăn chặn các vi phạm tiềm ẩn."
+"secAlertSSL" = "Bảng điều khiển thiếu kết nối an toàn. Vui lòng cài đặt chứng chỉ TLS để bảo vệ dữ liệu."
+"secAlertPanelPort" = "Cổng mặc định của bảng điều khiển có thể dễ bị tấn công. Vui lòng cấu hình một cổng ngẫu nhiên hoặc cụ thể."
+"secAlertPanelURI" = "Đường dẫn URI mặc định của bảng điều khiển không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
+"secAlertSubURI" = "Đường dẫn URI mặc định của đăng ký không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
+"secAlertSubJsonURI" = "Đường dẫn URI JSON mặc định của đăng ký không an toàn. Vui lòng cấu hình một đường dẫn URI phức tạp."
+"emptyDnsDesc" = "Không có máy chủ DNS nào được thêm."
+"emptyFakeDnsDesc" = "Không có máy chủ Fake DNS nào được thêm."
+"emptyBalancersDesc" = "Không có bộ cân bằng tải nào được thêm."
+"emptyReverseDesc" = "Không có proxy ngược nào được thêm."
+"somethingWentWrong" = "Đã xảy ra lỗi"
+
+[menu]
+"theme" = "Chủ đề"
+"dark" = "Tối"
+"ultraDark" = "Siêu tối"
+"dashboard" = "Trạng thái hệ thống"
+"inbounds" = "Đầu vào khách hàng"
+"settings" = "Cài đặt bảng điều khiển"
+"logout" = "Đăng xuất"
+"xray" = "Cài đặt Xray"
+"link" = "Quản lý"
+
+[pages.login]
+"hello" = "Xin chào"
+"title" = "Chào mừng"
+"loginAgain" = "Thời hạn đăng nhập đã hết. Vui lòng đăng nhập lại."
+
+[pages.login.toasts]
+"invalidFormData" = "Dạng dữ liệu nhập không hợp lệ."
+"emptyUsername" = "Vui lòng nhập tên người dùng."
+"emptyPassword" = "Vui lòng nhập mật khẩu."
+"wrongUsernameOrPassword" = "Tên người dùng, mật khẩu hoặc mã xác thực hai yếu tố không hợp lệ."
+"successLogin" = "Bạn đã đăng nhập vào tài khoản thành công."
+
+[pages.index]
+"title" = "Trạng thái hệ thống"
+"cpu" = "CPU"
+"logicalProcessors" = "Bộ xử lý logic"
+"frequency" = "Tần số"
+"swap" = "Swap"
+"storage" = "Lưu trữ"
+"memory" = "RAM"
+"threads" = "Luồng"
+"xrayStatus" = "Xray"
+"stopXray" = "Dừng lại"
+"restartXray" = "Khởi động lại"
+"xraySwitch" = "Phiên bản"
+"xraySwitchClick" = "Chọn phiên bản mà bạn muốn chuyển đổi sang."
+"xraySwitchClickDesk" = "Hãy lựa chọn thận trọng, vì các phiên bản cũ có thể không tương thích với các cấu hình hiện tại."
+"xrayStatusUnknown" = "Không xác định"
+"xrayStatusRunning" = "Đang chạy"
+"xrayStatusStop" = "Dừng"
+"xrayStatusError" = "Lỗi"
+"xrayErrorPopoverTitle" = "Đã xảy ra lỗi khi chạy Xray"
+"operationHours" = "Thời gian hoạt động"
+"systemLoad" = "Tải hệ thống"
+"systemLoadDesc" = "trung bình tải hệ thống trong 1, 5 và 15 phút qua"
+"connectionTcpCountDesc" = "Tổng số kết nối TCP trên tất cả các thẻ mạng."
+"connectionUdpCountDesc" = "Tổng số kết nối UDP trên tất cả các thẻ mạng."
+"connectionCount" = "Số lượng kết nối"
+"ipAddresses" = "Địa chỉ IP"
+"toggleIpVisibility" = "Chuyển đổi hiển thị IP"
+"overallSpeed" = "Tốc độ tổng thể"
+"upload" = "Tải lên"
+"download" = "Tải xuống"
+"totalData" = "Tổng dữ liệu"
+"sent" = "Đã gửi"
+"received" = "Đã nhận"
+"documentation" = "Tài liệu"
+"xraySwitchVersionDialog" = "Bạn có chắc chắn muốn thay đổi phiên bản Xray không?"
+"xraySwitchVersionDialogDesc" = "Hành động này sẽ thay đổi phiên bản Xray thành #version#."
+"xraySwitchVersionPopover" = "Xray đã được cập nhật thành công"
+"geofileUpdateDialog" = "Bạn có chắc chắn muốn cập nhật geofile không?"
+"geofileUpdateDialogDesc" = "Hành động này sẽ cập nhật tệp #filename#."
+"geofileUpdatePopover" = "Geofile đã được cập nhật thành công"
+"dontRefresh" = "Đang tiến hành cài đặt, vui lòng không làm mới trang này."
+"logs" = "Nhật ký"
+"config" = "Cấu hình"
+"backup" = "Sao lưu"
+"backupTitle" = "Sao lưu & Khôi phục Cơ sở dữ liệu"
+"exportDatabase" = "Sao lưu"
+"exportDatabaseDesc" = "Nhấp để tải xuống tệp .db chứa bản sao lưu cơ sở dữ liệu hiện tại của bạn vào thiết bị."
+"importDatabase" = "Khôi phục"
+"importDatabaseDesc" = "Nhấp để chọn và tải lên tệp .db từ thiết bị của bạn để khôi phục cơ sở dữ liệu từ bản sao lưu."
+"importDatabaseSuccess" = "Đã nhập cơ sở dữ liệu thành công"
+"importDatabaseError" = "Lỗi xảy ra khi nhập cơ sở dữ liệu"
+"readDatabaseError" = "Lỗi xảy ra khi đọc cơ sở dữ liệu"
+"getDatabaseError" = "Lỗi xảy ra khi truy xuất cơ sở dữ liệu"
+"getConfigError" = "Lỗi xảy ra khi truy xuất tệp cấu hình"
+
+[pages.inbounds]
+"title" = "Điểm vào (Inbounds)"
+"totalDownUp" = "Tổng tải lên/tải xuống"
+"totalUsage" = "Tổng sử dụng"
+"inboundCount" = "Số lượng điểm vào"
+"operate" = "Thao tác"
+"enable" = "Kích hoạt"
+"remark" = "Chú thích"
+"protocol" = "Giao thức"
+"port" = "Cổng"
+"traffic" = "Lưu lượng"
+"details" = "Chi tiết"
+"transportConfig" = "Giao vận"
+"expireDate" = "Ngày hết hạn"
+"resetTraffic" = "Đặt lại lưu lượng"
+"addInbound" = "Thêm điểm vào"
+"generalActions" = "Hành động chung"
+"autoRefresh" = "Tự động làm mới"
+"autoRefreshInterval" = "Khoảng thời gian"
+"modifyInbound" = "Chỉnh sửa điểm vào (Inbound)"
+"deleteInbound" = "Xóa điểm vào (Inbound)"
+"deleteInboundContent" = "Xác nhận xóa điểm vào? (Inbound)"
+"deleteClient" = "Xóa người dùng"
+"deleteClientContent" = "Bạn có chắc chắn muốn xóa người dùng không?"
+"resetTrafficContent" = "Xác nhận đặt lại lưu lượng?"
+"inboundUpdateSuccess" = "Đã cập nhật kết nối inbound thành công."
+"inboundCreateSuccess" = "Đã tạo kết nối inbound thành công."
+"copyLink" = "Sao chép liên kết"
+"address" = "Địa chỉ"
+"network" = "Mạng"
+"destinationPort" = "Cổng đích"
+"targetAddress" = "Địa chỉ mục tiêu"
+"monitorDesc" = "Mặc định để trống"
+"meansNoLimit" = "= Không giới hạn (đơn vị: GB)"
+"totalFlow" = "Tổng lưu lượng"
+"leaveBlankToNeverExpire" = "Để trống để không bao giờ hết hạn"
+"noRecommendKeepDefault" = "Không yêu cầu đặc biệt để giữ nguyên cài đặt mặc định"
+"certificatePath" = "Đường dẫn tập"
+"certificateContent" = "Nội dung tập"
+"publicKey" = "Khóa công khai"
+"privatekey" = "Khóa cá nhân"
+"clickOnQRcode" = "Nhấn vào Mã QR để sao chép"
+"client" = "Người dùng"
+"export" = "Xuất liên kết"
+"clone" = "Sao chép"
+"cloneInbound" = "Sao chép điểm vào (Inbound)"
+"cloneInboundContent" = "Tất cả cài đặt của điểm vào này, trừ Cổng, IP nghe và máy khách, sẽ được áp dụng cho bản sao."
+"cloneInboundOk" = "Sao chép"
+"resetAllTraffic" = "Đặt lại lưu lượng cho tất cả điểm vào"
+"resetAllTrafficTitle" = "Đặt lại lưu lượng cho tất cả điểm vào"
+"resetAllTrafficContent" = "Bạn có chắc chắn muốn đặt lại lưu lượng cho tất cả điểm vào không?"
+"resetInboundClientTraffics" = "Đặt lại lưu lượng toàn bộ người dùng của điểm vào"
+"resetInboundClientTrafficTitle" = "Đặt lại lưu lượng cho toàn bộ người dùng của điểm vào"
+"resetInboundClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho các người dùng của điểm vào này không?"
+"resetAllClientTraffics" = "Đặt lại lưu lượng cho toàn bộ người dùng"
+"resetAllClientTrafficTitle" = "Đặt lại lưu lượng cho toàn bộ người dùng"
+"resetAllClientTrafficContent" = "Bạn có chắc chắn muốn đặt lại tất cả lưu lượng cho toàn bộ người dùng không?"
+"delDepletedClients" = "Xóa các người dùng đã cạn kiệt"
+"delDepletedClientsTitle" = "Xóa các người dùng đã cạn kiệt"
+"delDepletedClientsContent" = "Bạn có chắc chắn muốn xóa toàn bộ người dùng đã cạn kiệt không?"
+"email" = "Email"
+"emailDesc" = "Vui lòng cung cấp một địa chỉ email duy nhất."
+"IPLimit" = "Giới hạn IP"
+"IPLimitDesc" = "Vô hiệu hóa điểm vào nếu số lượng vượt quá giá trị đã nhập (nhập 0 để vô hiệu hóa giới hạn IP)."
+"IPLimitlog" = "Lịch sử IP"
+"IPLimitlogDesc" = "Lịch sử đăng nhập IP (trước khi kích hoạt điểm vào sau khi bị vô hiệu hóa bởi giới hạn IP, bạn nên xóa lịch sử)."
+"IPLimitlogclear" = "Xóa Lịch sử"
+"setDefaultCert" = "Đặt chứng chỉ từ bảng điều khiển"
+"telegramDesc" = "Vui lòng cung cấp ID Trò chuyện Telegram. (sử dụng lệnh '/id' trong bot) hoặc (@userinfobot)"
+"subscriptionDesc" = "Bạn có thể tìm liên kết gói đăng ký của mình trong Chi tiết, cũng như bạn có thể sử dụng cùng tên cho nhiều cấu hình khác nhau"
+"info" = "Thông tin"
+"same" = "Giống nhau"
+"inboundData" = "Dữ liệu gửi đến"
+"exportInbound" = "Xuất nhập khẩu"
+"import" = "Nhập"
+"importInbound" = "Nhập inbound"
+
+[pages.client]
+"add" = "Thêm người dùng"
+"edit" = "Chỉnh sửa người dùng"
+"submitAdd" = "Thêm"
+"submitEdit" = "Lưu thay đổi"
+"clientCount" = "Số lượng người dùng"
+"bulk" = "Thêm hàng loạt"
+"method" = "Phương pháp"
+"first" = "Đầu tiên"
+"last" = "Cuối cùng"
+"prefix" = "Tiền tố"
+"postfix" = "Hậu tố"
+"delayedStart" = "Bắt đầu ở Lần Đầu"
+"expireDays" = "Khoảng thời gian"
+"days" = "ngày"
+"renew" = "Tự động gia hạn"
+"renewDesc" = "Tự động gia hạn sau khi hết hạn. (0 = tắt)(đơn vị: ngày)"
+
+[pages.inbounds.toasts]
+"obtain" = "Nhận"
+"updateSuccess" = "Cập nhật thành công"
+"logCleanSuccess" = "Đã xóa nhật ký"
+"inboundsUpdateSuccess" = "Đã cập nhật thành công các kết nối inbound"
+"inboundUpdateSuccess" = "Đã cập nhật thành công kết nối inbound"
+"inboundCreateSuccess" = "Đã tạo thành công kết nối inbound"
+"inboundDeleteSuccess" = "Đã xóa thành công kết nối inbound"
+"inboundClientAddSuccess" = "Đã thêm client inbound"
+"inboundClientDeleteSuccess" = "Đã xóa client inbound"
+"inboundClientUpdateSuccess" = "Đã cập nhật client inbound"
+"delDepletedClientsSuccess" = "Đã xóa tất cả client hết hạn"
+"resetAllClientTrafficSuccess" = "Đã đặt lại toàn bộ lưu lượng client"
+"resetAllTrafficSuccess" = "Đã đặt lại toàn bộ lưu lượng"
+"resetInboundClientTrafficSuccess" = "Đã đặt lại lưu lượng"
+"trafficGetError" = "Lỗi khi lấy thông tin lưu lượng"
+"getNewX25519CertError" = "Lỗi khi lấy chứng chỉ X25519."
+"getNewmldsa65Error" = "Lỗi khi lấy chúng tôi mldsa65."
+
+[pages.inbounds.stream.general]
+"request" = "Lời yêu cầu"
+"response" = "Phản ứng"
+"name" = "Tên"
+"value" = "Giá trị"
+
+[pages.inbounds.stream.tcp]
+"version" = "Phiên bản"
+"method" = "Phương pháp"
+"path" = "Đường dẫn"
+"status" = "Trạng thái"
+"statusDescription" = "Tình trạng Mô tả"
+"requestHeader" = "Header yêu cầu"
+"responseHeader" = "Header phản hồi"
+
+[pages.settings]
+"title" = "Cài đặt"
+"save" = "Lưu"
+"infoDesc" = "Mọi thay đổi được thực hiện ở đây cần phải được lưu. Vui lòng khởi động lại bảng điều khiển để áp dụng các thay đổi."
+"restartPanel" = "Khởi động lại bảng điều khiển"
+"restartPanelDesc" = "Bạn có chắc chắn muốn khởi động lại bảng điều khiển? Nhấn OK để khởi động lại sau 3 giây. Nếu bạn không thể truy cập bảng điều khiển sau khi khởi động lại, vui lòng xem thông tin nhật ký của bảng điều khiển trên máy chủ."
+"restartPanelSuccess" = "Đã khởi động lại bảng điều khiển thành công"
+"actions" = "Hành động"
+"resetDefaultConfig" = "Đặt lại cấu hình mặc định"
+"panelSettings" = "Bảng điều khiển"
+"securitySettings" = "Bảo mật"
+"TGBotSettings" = "Bot Telegram"
+"panelListeningIP" = "IP Nghe của bảng điều khiển"
+"panelListeningIPDesc" = "Mặc định để trống để nghe tất cả các IP."
+"panelListeningDomain" = "Tên miền của nghe bảng điều khiển"
+"panelListeningDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP"
+"panelPort" = "Cổng bảng điều khiển"
+"panelPortDesc" = "Cổng được sử dụng để kết nối với bảng điều khiển này"
+"publicKeyPath" = "Đường dẫn file chứng chỉ bảng điều khiển"
+"publicKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu từ '/')"
+"privateKeyPath" = "Đường dẫn file khóa của chứng chỉ bảng điều khiển"
+"privateKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu từ '/')"
+"panelUrlPath" = "Đường dẫn gốc URL bảng điều khiển"
+"panelUrlPathDesc" = "Phải bắt đầu và kết thúc bằng '/'"
+"pageSize" = "Kích thước phân trang"
+"pageSizeDesc" = "Xác định kích thước trang cho bảng gửi đến. Đặt 0 để tắt"
+"remarkModel" = "Ghi chú mô hình và ký tự phân tách"
+"datepicker" = "Kiểu lịch"
+"datepickerPlaceholder" = "Chọn ngày"
+"datepickerDescription" = "Tác vụ chạy theo lịch trình sẽ chạy theo kiểu lịch này."
+"sampleRemark" = "Nhận xét mẫu"
+"oldUsername" = "Tên người dùng hiện tại"
+"currentPassword" = "Mật khẩu hiện tại"
+"newUsername" = "Tên người dùng mới"
+"newPassword" = "Mật khẩu mới"
+"telegramBotEnable" = "Bật Bot Telegram"
+"telegramBotEnableDesc" = "Kết nối với các tính năng của bảng điều khiển này thông qua bot Telegram"
+"telegramToken" = "Token Telegram"
+"telegramTokenDesc" = "Bạn phải nhận token từ quản lý bot Telegram @botfather"
+"telegramProxy" = "Socks5 Proxy"
+"telegramProxyDesc" = "Nếu bạn cần socks5 proxy để kết nối với Telegram. Điều chỉnh cài đặt của nó theo hướng dẫn."
+"telegramAPIServer" = "Telegram API Server"
+"telegramAPIServerDesc" = "Máy chủ API Telegram để sử dụng. Để trống để sử dụng máy chủ mặc định."
+"telegramChatId" = "Chat ID Telegram của quản trị viên"
+"telegramChatIdDesc" = "Nhiều Chat ID phân tách bằng dấu phẩy. Sử dụng @userinfobot hoặc sử dụng lệnh '/id' trong bot để lấy Chat ID của bạn."
+"telegramNotifyTime" = "Thời gian thông báo của bot Telegram"
+"telegramNotifyTimeDesc" = "Sử dụng định dạng thời gian Crontab."
+"tgNotifyBackup" = "Sao lưu Cơ sở dữ liệu"
+"tgNotifyBackupDesc" = "Bao gồm tệp sao lưu cơ sở dữ liệu với thông báo báo cáo."
+"tgNotifyLogin" = "Thông báo Đăng nhập"
+"tgNotifyLoginDesc" = "Hiển thị tên người dùng, địa chỉ IP và thời gian khi ai đó cố gắng đăng nhập vào bảng điều khiển của bạn."
+"sessionMaxAge" = "Thời gian tối đa của phiên"
+"sessionMaxAgeDesc" = "Thời gian của phiên đăng nhập (đơn vị: phút)"
+"expireTimeDiff" = "Ngưỡng hết hạn cho thông báo"
+"expireTimeDiffDesc" = "Nhận thông báo về việc hết hạn tài khoản trước ngưỡng này (đơn vị: ngày)"
+"trafficDiff" = "Ngưỡng lưu lượng cho thông báo"
+"trafficDiffDesc" = "Nhận thông báo về việc cạn kiệt lưu lượng trước khi đạt đến ngưỡng này (đơn vị: GB)"
+"tgNotifyCpu" = "Ngưỡng cảnh báo tỷ lệ CPU"
+"tgNotifyCpuDesc" = "Nhận thông báo nếu tỷ lệ sử dụng CPU vượt quá ngưỡng này (đơn vị: %)"
+"timeZone" = "Múi giờ"
+"timeZoneDesc" = "Các tác vụ được lên lịch chạy theo thời gian trong múi giờ này."
+"subSettings" = "Gói đăng ký"
+"subEnable" = "Bật dịch vụ"
+"subEnableDesc" = "Tính năng gói đăng ký với cấu hình riêng"
+"subTitle" = "Tiêu đề Đăng ký"
+"subTitleDesc" = "Tiêu đề hiển thị trong ứng dụng VPN"
+"subListen" = "Listening IP"
+"subListenDesc" = "Mặc định để trống để nghe tất cả các IP"
+"subPort" = "Cổng gói đăng ký"
+"subPortDesc" = "Số cổng dịch vụ đăng ký phải chưa được sử dụng trên máy chủ"
+"subCertPath" = "Đường dẫn file chứng chỉ gói đăng ký"
+"subCertPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu với '/')"
+"subKeyPath" = "Đường dẫn file khóa của chứng chỉ gói đăng ký"
+"subKeyPathDesc" = "Điền vào đường dẫn đầy đủ (bắt đầu với '/')"
+"subPath" = "Đường dẫn gốc URL gói đăng ký"
+"subPathDesc" = "Phải bắt đầu và kết thúc bằng '/'"
+"subDomain" = "Tên miền con"
+"subDomainDesc" = "Mặc định để trống để nghe tất cả các tên miền và IP"
+"subUpdates" = "Khoảng thời gian cập nhật gói đăng ký"
+"subUpdatesDesc" = "Số giờ giữa các cập nhật trong ứng dụng khách"
+"subEncrypt" = "Mã hóa cấu hình"
+"subEncryptDesc" = "Mã hóa các cấu hình được trả về trong gói đăng ký"
+"subShowInfo" = "Hiển thị thông tin sử dụng"
+"subShowInfoDesc" = "Hiển thị lưu lượng truy cập còn lại và ngày sau tên cấu hình"
+"subURI" = "URI proxy trung gian"
+"subURIDesc" = "Thay đổi URI cơ sở của URL gói đăng ký để sử dụng cho proxy trung gian"
+"externalTrafficInformEnable" = "Thông báo giao thông bên ngoài"
+"externalTrafficInformEnableDesc" = "Thông báo cho API bên ngoài về mọi cập nhật lưu lượng truy cập."
+"externalTrafficInformURI" = "URI thông báo lưu lượng truy cập bên ngoài"
+"externalTrafficInformURIDesc" = "Cập nhật lưu lượng truy cập được gửi tới URI này."
+"fragment" = "Sự phân mảnh"
+"fragmentDesc" = "Kích hoạt phân mảnh cho gói TLS hello"
+"fragmentSett" = "Cài đặt phân mảnh"
+"noisesDesc" = "Bật Noises."
+"noisesSett" = "Cài đặt Noises"
+"mux" = "Mux"
+"muxDesc" = "Truyền nhiều luồng dữ liệu độc lập trong luồng dữ liệu đã thiết lập."
+"muxSett" = "Mux Cài đặt"
+"direct" = "Kết nối trực tiếp"
+"directDesc" = "Trực tiếp thiết lập kết nối với tên miền hoặc dải IP của một quốc gia cụ thể."
+"notifications" = "Thông báo"
+"certs" = "Chứng chỉ"
+"externalTraffic" = "Lưu lượng bên ngoài"
+"dateAndTime" = "Ngày và giờ"
+"proxyAndServer" = "Proxy và máy chủ"
+"intervals" = "Khoảng thời gian"
+"information" = "Thông tin"
+"language" = "Ngôn ngữ"
+"telegramBotLanguage" = "Ngôn ngữ của Bot Telegram"
+
+[pages.xray]
+"title" = "Cài đặt Xray"
+"save" = "Lưu cài đặt"
+"restart" = "Khởi động lại Xray"
+"restartSuccess" = "Đã khởi động lại Xray thành công"
+"stopSuccess" = "Xray đã được dừng thành công"
+"restartError" = "Đã xảy ra lỗi khi khởi động lại Xray."
+"stopError" = "Đã xảy ra lỗi khi dừng Xray."
+"basicTemplate" = "Mẫu Cơ bản"
+"advancedTemplate" = "Mẫu Nâng cao"
+"generalConfigs" = "Cấu hình Chung"
+"generalConfigsDesc" = "Những tùy chọn này sẽ cung cấp điều chỉnh tổng quát."
+"logConfigs" = "Nhật ký"
+"logConfigsDesc" = "Nhật ký có thể ảnh hưởng đến hiệu suất máy chủ của bạn. Bạn chỉ nên kích hoạt nó một cách khôn ngoan trong trường hợp bạn cần"
+"blockConfigsDesc" = "Những tùy chọn này sẽ ngăn người dùng kết nối đến các giao thức và trang web cụ thể."
+"basicRouting" = "Định tuyến Cơ bản"
+"blockConnectionsConfigsDesc" = "Các tùy chọn này sẽ chặn lưu lượng truy cập dựa trên quốc gia được yêu cầu cụ thể."
+"directConnectionsConfigsDesc" = "Kết nối trực tiếp đảm bảo rằng lưu lượng truy cập cụ thể không được định tuyến qua máy chủ khác."
+"blockips" = "Chặn IP"
+"blockdomains" = "Chặn Tên Miền"
+"directips" = "IP Trực Tiếp"
+"directdomains" = "Tên Miền Trực Tiếp"
+"ipv4Routing" = "Định tuyến IPv4"
+"ipv4RoutingDesc" = "Những tùy chọn này sẽ chỉ định kết nối đến các tên miền mục tiêu qua IPv4."
+"warpRouting" = "Định tuyến WARP"
+"warpRoutingDesc" = "Cảnh báo: Trước khi sử dụng những tùy chọn này, hãy cài đặt WARP ở chế độ proxy socks5 trên máy chủ của bạn bằng cách làm theo các bước trên GitHub của bảng điều khiển. WARP sẽ định tuyến lưu lượng đến các trang web qua máy chủ Cloudflare."
+"Template" = "Mẫu Cấu hình Xray"
+"TemplateDesc" = "Tạo tệp cấu hình Xray cuối cùng dựa trên mẫu này."
+"FreedomStrategy" = "Cấu hình Chiến lược cho Giao thức Freedom"
+"FreedomStrategyDesc" = "Đặt chiến lược đầu ra của mạng trong Giao thức Freedom."
+"RoutingStrategy" = "Cấu hình Chiến lược Định tuyến Tên miền"
+"RoutingStrategyDesc" = "Đặt chiến lược định tuyến tổng thể cho việc giải quyết DNS."
+"Torrent" = "Cấu hình sử dụng BitTorrent"
+"Inbounds" = "Đầu vào"
+"InboundsDesc" = "Thay đổi mẫu cấu hình để chấp nhận các máy khách cụ thể."
+"Outbounds" = "Đầu ra"
+"Balancers" = "Cân bằng"
+"OutboundsDesc" = "Thay đổi mẫu cấu hình để xác định các cách ra đi cho máy chủ này."
+"Routings" = "Quy tắc định tuyến"
+"RoutingsDesc" = "Mức độ ưu tiên của mỗi quy tắc đều quan trọng!"
+"completeTemplate" = "All"
+"logLevel" = "Mức đăng nhập"
+"logLevelDesc" = "Cấp độ nhật ký cho nhật ký lỗi, cho biết thông tin cần được ghi lại."
+"accessLog" = "Nhật ký truy cập"
+"accessLogDesc" = "Đường dẫn tệp cho nhật ký truy cập. Nhật ký truy cập bị vô hiệu hóa có giá trị đặc biệt 'không'"
+"errorLog" = "Nhật ký lỗi"
+"errorLogDesc" = "Đường dẫn tệp cho nhật ký lỗi. Nhật ký lỗi bị vô hiệu hóa có giá trị đặc biệt 'không'"
+"dnsLog" = "Nhật ký DNS"
+"dnsLogDesc" = "Có bật nhật ký truy vấn DNS không"
+"maskAddress" = "Ẩn Địa Chỉ"
+"maskAddressDesc" = "Mặt nạ địa chỉ IP, khi được bật, sẽ tự động thay thế địa chỉ IP xuất hiện trong nhật ký."
+"statistics" = "Thống kê"
+"statsInboundUplink" = "Thống kê tải lên đầu vào"
+"statsInboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu vào."
+"statsInboundDownlink" = "Thống kê tải xuống đầu vào"
+"statsInboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu vào."
+"statsOutboundUplink" = "Thống kê tải lên đầu ra"
+"statsOutboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu ra."
+"statsOutboundDownlink" = "Thống kê tải xuống đầu ra"
+"statsOutboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu ra."
+
+[pages.xray.rules]
+"first" = "Đầu tiên"
+"last" = "Cuối cùng"
+"up" = "Lên"
+"down" = "Xuống"
+"source" = "Nguồn"
+"dest" = "Đích"
+"inbound" = "Vào"
+"outbound" = "Ra"
+"balancer" = "Cân bằng"
+"info" = "Thông tin"
+"add" = "Thêm quy tắc"
+"edit" = "Chỉnh sửa quy tắc"
+"useComma" = "Các mục được phân tách bằng dấu phẩy"
+
+[pages.xray.outbound]
+"addOutbound" = "Thêm thư đi"
+"addReverse" = "Thêm đảo ngược"
+"editOutbound" = "Chỉnh sửa gửi đi"
+"editReverse" = "Chỉnh sửa ngược lại"
+"tag" = "Thẻ"
+"tagDesc" = "thẻ duy nhất"
+"address" = "Địa chỉ"
+"reverse" = "Đảo ngược"
+"domain" = "Miền"
+"type" = "Loại"
+"bridge" = "Cầu"
+"portal" = "Cổng thông tin"
+"link" = "Liên kết"
+"intercon" = "Kết nối"
+"settings" = "cài đặt"
+"accountInfo" = "Thông tin tài khoản"
+"outboundStatus" = "Trạng thái đầu ra"
+"sendThrough" = "Gửi qua"
+
+[pages.xray.balancer]
+"addBalancer" = "Thêm cân bằng"
+"editBalancer" = "Chỉnh sửa cân bằng"
+"balancerStrategy" = "Chiến lược"
+"balancerSelectors" = "Bộ chọn"
+"tag" = "Thẻ"
+"tagDesc" = "thẻ duy nhất"
+"balancerDesc" = "Không thể sử dụng balancerTag và outboundTag cùng một lúc. Nếu sử dụng cùng lúc thì chỉ outboundTag mới hoạt động."
+
+[pages.xray.wireguard]
+"secretKey" = "Khoá bí mật"
+"publicKey" = "Khóa công khai"
+"allowedIPs" = "IP được phép"
+"endpoint" = "Điểm cuối"
+"psk" = "Khóa chia sẻ"
+"domainStrategy" = "Chiến lược tên miền"
+
+[pages.xray.dns]
+"enable" = "Kích hoạt DNS"
+"enableDesc" = "Kích hoạt máy chủ DNS tích hợp"
+"tag" = "Thẻ gửi đến DNS"
+"tagDesc" = "Thẻ này sẽ có sẵn dưới dạng thẻ Gửi đến trong quy tắc định tuyến."
+"clientIp" = "IP khách hàng"
+"clientIpDesc" = "Được sử dụng để thông báo cho máy chủ về vị trí IP được chỉ định trong các truy vấn DNS"
+"disableCache" = "Tắt bộ nhớ đệm"
+"disableCacheDesc" = "Tắt bộ nhớ đệm DNS"
+"disableFallback" = "Tắt Fallback"
+"disableFallbackDesc" = "Tắt các truy vấn DNS Fallback"
+"disableFallbackIfMatch" = "Tắt Fallback Nếu Khớp"
+"disableFallbackIfMatchDesc" = "Tắt các truy vấn DNS Fallback khi danh sách tên miền khớp của máy chủ DNS được kích hoạt"
+"strategy" = "Chiến lược truy vấn"
+"strategyDesc" = "Chiến lược tổng thể để phân giải tên miền"
+"add" = "Thêm máy chủ"
+"edit" = "Chỉnh sửa máy chủ"
+"domains" = "Tên miền"
+"expectIPs" = "Các IP Dự Kiến"
+"unexpectIPs" = "IP không mong muốn"
+"useSystemHosts" = "Sử dụng Hosts hệ thống"
+"useSystemHostsDesc" = "Sử dụng file hosts từ hệ thống đã cài đặt"
+"usePreset" = "Dùng mẫu"
+"dnsPresetTitle" = "Mẫu DNS"
+"dnsPresetFamily" = "Gia đình"
+
+[pages.xray.fakedns]
+"add" = "Thêm DNS giả"
+"edit" = "Chỉnh sửa DNS giả"
+"ipPool" = "Mạng con nhóm IP"
+"poolSize" = "Kích thước bể bơi"
+
+[pages.settings.security]
+"admin" = "Thông tin đăng nhập quản trị viên"
+"twoFactor" = "Xác thực hai yếu tố"
+"twoFactorEnable" = "Bật 2FA"
+"twoFactorEnableDesc" = "Thêm một lớp bảo mật bổ sung để tăng cường an toàn."
+"twoFactorModalSetTitle" = "Bật xác thực hai yếu tố"
+"twoFactorModalDeleteTitle" = "Tắt xác thực hai yếu tố"
+"twoFactorModalSteps" = "Để thiết lập xác thực hai yếu tố, hãy thực hiện các bước sau:"
+"twoFactorModalFirstStep" = "1. Quét mã QR này trong ứng dụng xác thực hoặc sao chép mã token gần mã QR và dán vào ứng dụng"
+"twoFactorModalSecondStep" = "2. Nhập mã từ ứng dụng"
+"twoFactorModalRemoveStep" = "Nhập mã từ ứng dụng để xóa xác thực hai yếu tố."
+"twoFactorModalChangeCredentialsTitle" = "Thay đổi thông tin xác thực"
+"twoFactorModalChangeCredentialsStep" = "Nhập mã từ ứng dụng để thay đổi thông tin xác thực quản trị viên."
+"twoFactorModalSetSuccess" = "Xác thực hai yếu tố đã được thiết lập thành công"
+"twoFactorModalDeleteSuccess" = "Xác thực hai yếu tố đã được xóa thành công"
+"twoFactorModalError" = "Mã sai"
+
+[pages.settings.toasts]
+"modifySettings" = "Các tham số đã được thay đổi."
+"getSettings" = "Lỗi xảy ra khi truy xuất tham số."
+"modifyUserError" = "Đã xảy ra lỗi khi thay đổi thông tin đăng nhập quản trị viên."
+"modifyUser" = "Bạn đã thay đổi thông tin đăng nhập quản trị viên thành công."
+"originalUserPassIncorrect" = "Tên người dùng hoặc mật khẩu gốc không đúng"
+"userPassMustBeNotEmpty" = "Tên người dùng mới và mật khẩu mới không thể để trống"
+"getOutboundTrafficError" = "Lỗi khi lấy lưu lượng truy cập đi"
+"resetOutboundTrafficError" = "Lỗi khi đặt lại lưu lượng truy cập đi"
+
+[tgbot]
+"keyboardClosed" = "❌ Bàn phím tùy chỉnh đã đóng!"
+"noResult" = "❗ Không có kết quả!"
+"noQuery" = "❌ Không tìm thấy truy vấn! Vui lòng sử dụng lệnh lại!"
+"wentWrong" = "❌ Đã xảy ra lỗi!"
+"noIpRecord" = "❗ Không có bản ghi IP!"
+"noInbounds" = "❗ Không tìm thấy inbound!"
+"unlimited" = "♾ Không giới hạn"
+"add" = "Thêm"
+"month" = "Tháng"
+"months" = "Tháng"
+"day" = "Ngày"
+"days" = "Ngày"
+"hours" = "Giờ"
+"unknown" = "Không rõ"
+"inbounds" = "Vào"
+"clients" = "Các người dùng"
+"offline" = "🔴 Ngoại tuyến"
+"online" = "🟢 Trực tuyến"
+
+[tgbot.commands]
+"unknown" = "❗ Lệnh không rõ"
+"pleaseChoose" = "👇 Vui lòng chọn:\r\n"
+"help" = "🤖 Chào mừng bạn đến với bot này! Bot được thiết kế để cung cấp cho bạn dữ liệu cụ thể từ máy chủ và cho phép bạn thực hiện các thay đổi cần thiết.\r\n\r\n"
+"start" = "👋 Xin chào {{ .Firstname }}.\r\n"
+"welcome" = "🤖 Chào mừng đến với bot quản lý của {{ .Hostname }}.\r\n"
+"status" = "✅ Bot hoạt động bình thường!"
+"usage" = "❗ Vui lòng cung cấp văn bản để tìm kiếm!"
+"getID" = "🆔 ID của bạn: {{ .ID }}
"
+"helpAdminCommands" = "Để khởi động lại Xray Core:\r\n/restart
\r\n\r\nĐể tìm kiếm email của khách hàng:\r\n/usage [Email]
\r\n\r\nĐể tìm kiếm các nhập (với số liệu thống kê của khách hàng):\r\n/inbound [Ghi chú]
\r\n\r\nID Trò chuyện Telegram:\r\n/id
"
+"helpClientCommands" = "Để tìm kiếm thống kê, sử dụng lệnh sau:\r\n/usage [Email]
\r\n\r\nID Trò chuyện Telegram:\r\n/id
"
+"restartUsage" = "\r\n\r\n/restart
"
+"restartSuccess" = "✅ Hoạt động thành công!"
+"restartFailed" = "❗ Lỗi trong quá trình hoạt động.\r\n\r\nLỗi: {{ .Error }}
."
+"xrayNotRunning" = "❗ Xray Core không chạy."
+"startDesc" = "Hiển thị menu chính"
+"helpDesc" = "Trợ giúp bot"
+"statusDesc" = "Kiểm tra trạng thái bot"
+"idDesc" = "Hiển thị ID Telegram của bạn"
+
+[tgbot.messages]
+"cpuThreshold" = "🔴 Sử dụng CPU {{ .Percent }}% vượt quá ngưỡng {{ .Threshold }}%"
+"selectUserFailed" = "❌ Lỗi khi chọn người dùng!"
+"userSaved" = "✅ Người dùng Telegram đã được lưu."
+"loginSuccess" = "✅ Đăng nhập thành công vào bảng điều khiển.\r\n"
+"loginFailed" = "❗️ Đăng nhập vào bảng điều khiển thất bại.\r\n"
+"report" = "🕰 Báo cáo định kỳ: {{ .RunTime }}\r\n"
+"datetime" = "⏰ Ngày-Giờ: {{ .DateTime }}\r\n"
+"hostname" = "💻 Tên máy chủ: {{ .Hostname }}\r\n"
+"version" = "🚀 Phiên bản X-UI: {{ .Version }}\r\n"
+"xrayVersion" = "📡 Phiên bản Xray: {{ .XrayVersion }}\r\n"
+"ipv6" = "🌐 IPv6: {{ .IPv6 }}\r\n"
+"ipv4" = "🌐 IPv4: {{ .IPv4 }}\r\n"
+"ip" = "🌐 IP: {{ .IP }}\r\n"
+"ips" = "🔢 Các IP:\r\n{{ .IPs }}\r\n"
+"serverUpTime" = "⏳ Thời gian hoạt động của máy chủ: {{ .UpTime }} {{ .Unit }}\r\n"
+"serverLoad" = "📈 Tải máy chủ: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n"
+"serverMemory" = "📋 Bộ nhớ máy chủ: {{ .Current }}/{{ .Total }}\r\n"
+"tcpCount" = "🔹 Số lượng kết nối TCP: {{ .Count }}\r\n"
+"udpCount" = "🔸 Số lượng kết nối UDP: {{ .Count }}\r\n"
+"traffic" = "🚦 Lưu lượng: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n"
+"xrayStatus" = "ℹ️ Trạng thái Xray: {{ .State }}\r\n"
+"username" = "👤 Tên người dùng: {{ .Username }}\r\n"
+"password" = "👤 Mật khẩu: {{ .Password }}\r\n"
+"time" = "⏰ Thời gian: {{ .Time }}\r\n"
+"inbound" = "📍 Inbound: {{ .Remark }}\r\n"
+"port" = "🔌 Cổng: {{ .Port }}\r\n"
+"expire" = "📅 Ngày hết hạn: {{ .Time }}\r\n"
+"expireIn" = "📅 Hết hạn sau: {{ .Time }}\r\n"
+"active" = "💡 Đang hoạt động: {{ .Enable }}\r\n"
+"enabled" = "🚨 Đã bật: {{ .Enable }}\r\n"
+"online" = "🌐 Trạng thái kết nối: {{ .Status }}\r\n"
+"email" = "📧 Email: {{ .Email }}\r\n"
+"upload" = "🔼 Tải lên: ↑{{ .Upload }}\r\n"
+"download" = "🔽 Tải xuống: ↓{{ .Download }}\r\n"
+"total" = "📊 Tổng cộng: ↑↓{{ .UpDown }} / {{ .Total }}\r\n"
+"TGUser" = "👤 Người dùng Telegram: {{ .TelegramID }}\r\n"
+"exhaustedMsg" = "🚨 Sự cạn kiệt {{ .Type }}:\r\n"
+"exhaustedCount" = "🚨 Số lần cạn kiệt {{ .Type }}:\r\n"
+"onlinesCount" = "🌐 Khách hàng trực tuyến: {{ .Count }}\r\n"
+"disabled" = "🛑 Vô hiệu hóa: {{ .Disabled }}\r\n"
+"depleteSoon" = "🔜 Sắp cạn kiệt: {{ .Deplete }}\r\n\r\n"
+"backupTime" = "🗄 Thời gian sao lưu: {{ .Time }}\r\n"
+"refreshedOn" = "\r\n📋🔄 Đã cập nhật lần cuối vào: {{ .Time }}\r\n\r\n"
+"yes" = "✅ Có"
+"no" = "❌ Không"
+
+"received_id" = "🔑📥 ID đã được cập nhật."
+"received_password" = "🔑📥 Mật khẩu đã được cập nhật."
+"received_email" = "📧📥 Email đã được cập nhật."
+"received_comment" = "💬📥 Bình luận đã được cập nhật."
+"id_prompt" = "🔑 ID mặc định: {{ .ClientId }}\n\nVui lòng nhập ID của bạn."
+"pass_prompt" = "🔑 Mật khẩu mặc định: {{ .ClientPassword }}\n\nVui lòng nhập mật khẩu của bạn."
+"email_prompt" = "📧 Email mặc định: {{ .ClientEmail }}\n\nVui lòng nhập email của bạn."
+"comment_prompt" = "💬 Bình luận mặc định: {{ .ClientComment }}\n\nVui lòng nhập bình luận của bạn."
+"inbound_client_data_id" = "🔄 Kết nối vào: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Dung lượng: {{ .ClientTraffic }}\n📅 Ngày hết hạn: {{ .ClientExp }}\n🌐 Giới hạn IP: {{ .IpLimit }}\n💬 Ghi chú: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào inbound!"
+"inbound_client_data_pass" = "🔄 Kết nối vào: {{ .InboundRemark }}\n\n🔑 Mật khẩu: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Dung lượng: {{ .ClientTraffic }}\n📅 Ngày hết hạn: {{ .ClientExp }}\n🌐 Giới hạn IP: {{ .IpLimit }}\n💬 Ghi chú: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào inbound!"
+"cancel" = "❌ Quá trình đã bị hủy! \n\nBạn có thể bắt đầu lại bất cứ lúc nào bằng cách nhập /start. 🔄"
+"error_add_client" = "⚠️ Lỗi:\n\n {{ .error }}"
+"using_default_value" = "Được rồi, tôi sẽ sử dụng giá trị mặc định. 😊"
+"incorrect_input" ="Dữ liệu bạn nhập không hợp lệ.\nCác chuỗi phải liền mạch và không có dấu cách.\nVí dụ đúng: aaaaaa\nVí dụ sai: aaa aaa 🚫"
+"AreYouSure" = "Bạn có chắc không? 🤔"
+"SuccessResetTraffic" = "📧 Email: {{ .ClientEmail }}\n🏁 Kết quả: ✅ Thành công"
+"FailedResetTraffic" = "📧 Email: {{ .ClientEmail }}\n🏁 Kết quả: ❌ Thất bại \n\n🛠️ Lỗi: [ {{ .ErrorMessage }} ]"
+"FinishProcess" = "🔚 Quá trình đặt lại lưu lượng đã hoàn tất cho tất cả khách hàng."
+
+
+[tgbot.buttons]
+"closeKeyboard" = "❌ Đóng Bàn Phím"
+"cancel" = "❌ Hủy"
+"cancelReset" = "❌ Hủy Đặt Lại"
+"cancelIpLimit" = "❌ Hủy Giới Hạn IP"
+"confirmResetTraffic" = "✅ Xác Nhận Đặt Lại Lưu Lượng?"
+"confirmClearIps" = "✅ Xác Nhận Xóa Các IP?"
+"confirmRemoveTGUser" = "✅ Xác Nhận Xóa Người Dùng Telegram?"
+"confirmToggle" = "✅ Xác nhận Bật/Tắt người dùng?"
+"dbBackup" = "Tải bản sao lưu cơ sở dữ liệu"
+"serverUsage" = "Sử Dụng Máy Chủ"
+"getInbounds" = "Lấy cổng vào"
+"depleteSoon" = "Depleted Soon"
+"clientUsage" = "Lấy Sử Dụng"
+"onlines" = "Khách hàng trực tuyến"
+"commands" = "Lệnh"
+"refresh" = "🔄 Cập Nhật"
+"clearIPs" = "❌ Xóa IP"
+"removeTGUser" = "❌ Xóa Người Dùng Telegram"
+"selectTGUser" = "👤 Chọn Người Dùng Telegram"
+"selectOneTGUser" = "👤 Chọn một người dùng telegram:"
+"resetTraffic" = "📈 Đặt Lại Lưu Lượng"
+"resetExpire" = "📅 Thay đổi ngày hết hạn"
+"ipLog" = "🔢 Nhật ký địa chỉ IP"
+"ipLimit" = "🔢 Giới Hạn địa chỉ IP"
+"setTGUser" = "👤 Đặt Người Dùng Telegram"
+"toggle" = "🔘 Bật / Tắt"
+"custom" = "🔢 Tùy chỉnh"
+"confirmNumber" = "✅ Xác nhận: {{ .Num }}"
+"confirmNumberAdd" = "✅ Xác nhận thêm: {{ .Num }}"
+"limitTraffic" = "🚧 Giới hạn lưu lượng"
+"getBanLogs" = "Cấm nhật ký"
+"allClients" = "Tất cả Khách hàng"
+"msgSend" = "💬 Gửi thông báo"
+"msgUser" = "👤 Đến người dùng"
+"msgAll" = "👥 Đến tất cả người dùng bot"
+
+"addClient" = "Thêm Khách Hàng"
+"submitDisable" = "Gửi Dưới Dạng Vô Hiệu ☑️"
+"submitEnable" = "Gửi Dưới Dạng Kích Hoạt ✅"
+"use_default" = "🏷️ Sử Dụng Mặc Định"
+"change_id" = "⚙️🔑 ID"
+"change_password" = "⚙️🔑 Mật Khẩu"
+"change_email" = "⚙️📧 Email"
+"change_comment" = "⚙️💬 Bình Luận"
+"ResetAllTraffics" = "Đặt lại tất cả lưu lượng"
+"SortedTrafficUsageReport" = "Báo cáo sử dụng lưu lượng đã sắp xếp"
+
+
+[tgbot.answers]
+"successfulOperation" = "✅ Thành công!"
+"errorOperation" = "❗ Lỗi Trong Quá Trình Thực Hiện."
+"getInboundsFailed" = "❌ Không Thể Lấy Được Inbounds"
+"getClientsFailed" = "❌ Không thể lấy khách hàng."
+"canceled" = "❌ {{ .Email }} : Thao Tác Đã Bị Hủy."
+"clientRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho Khách Hàng."
+"IpRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho IPs."
+"TGIdRefreshSuccess" = "✅ {{ .Email }} : Cập Nhật Thành Công Cho Người Dùng Telegram."
+"resetTrafficSuccess" = "✅ {{ .Email }} : Đặt Lại Lưu Lượng Thành Công."
+"setTrafficLimitSuccess" = "✅ {{ .Email }} : Đã lưu thành công giới hạn lưu lượng."
+"expireResetSuccess" = "✅ {{ .Email }} : Đặt Lại Ngày Hết Hạn Thành Công."
+"resetIpSuccess" = "✅ {{ .Email }} : Giới Hạn IP {{ .Count }} Đã Được Lưu Thành Công."
+"clearIpSuccess" = "✅ {{ .Email }} : IP Đã Được Xóa Thành Công."
+"getIpLog" = "✅ {{ .Email }} : Lấy nhật ký IP Thành Công."
+"getUserInfo" = "✅ {{ .Email }} : Lấy Thông Tin Người Dùng Telegram Thành Công."
+"removedTGUserSuccess" = "✅ {{ .Email }} : Người Dùng Telegram Đã Được Xóa Thành Công."
+"enableSuccess" = "✅ {{ .Email }} : Đã Bật Thành Công."
+"disableSuccess" = "✅ {{ .Email }} : Đã Tắt Thành Công."
+"askToAddUserId" = "Cấu hình của bạn không được tìm thấy!\r\nVui lòng yêu cầu Quản trị viên sử dụng ID người dùng telegram của bạn trong cấu hình của bạn.\r\n\r\nID người dùng của bạn: {{ .TgUserID }}
"
+"chooseClient" = "Chọn một Khách hàng cho Inbound {{ .Inbound }}"
+"chooseInbound" = "Chọn một Inbound"
+
+"enterText" = "Nhập nội dung tin nhắn muốn gửi cho tất cả người dùng"
+"inboundError" = "❌ Lỗi khi lấy dữ liệu inbound"
+"clientError" = "❌ Lỗi khi lấy người dùng"
+"broadcastMessageSent" = "Tin nhắn đã được gửi đến {{ .Count }} người dùng"
+"chooseBroadcastInbound" = "Chọn inbound để gửi broadcast"
+"chooseBroadcastUser" = "Chọn người dùng để gửi broadcast hoặc nhập email thủ công"
+"broadcastUserNotFound" = "❌ Không tìm thấy người dùng với email này trong inbound đã chọn."
+"broadcastUserNoTgId" = "❌ Người dùng không có Telegram ID, không thể gửi broadcast."
+"broadcastEnterText" = "Nhập nội dung tin nhắn cho người dùng đã chọn"
+"broadcastSentToUser" = "Tin nhắn đã được gửi đến người dùng: {{ .Email }}"
+"chooseSend" = "Chọn cách gửi thông báo"
+"chooseUser" = "Chọn người dùng hoặc nhập email của họ"
\ No newline at end of file
diff --git a/web/translation/translate.zh_CN.toml b/web/translation/translate.zh_CN.toml
index d46ab9f4..44d31ec8 100644
--- a/web/translation/translate.zh_CN.toml
+++ b/web/translation/translate.zh_CN.toml
@@ -750,3 +750,5 @@
"broadcastUserNoTgId" = "❌ 用户未设置 Telegram ID,无法广播。"
"broadcastEnterText" = "请输入为所选用户发送的消息文本"
"broadcastSentToUser" = "消息已发送给用户: {{ .Email }}"
+"chooseSend" = "选择通知发送方式"
+"chooseUser" = "选择用户或输入其邮箱"
\ No newline at end of file
diff --git a/web/translation/translate.zh_TW.toml b/web/translation/translate.zh_TW.toml
index 61e192a8..498ba985 100644
--- a/web/translation/translate.zh_TW.toml
+++ b/web/translation/translate.zh_TW.toml
@@ -752,3 +752,5 @@
"broadcastUserNoTgId" = "❌ 用戶未設置 Telegram ID,無法廣播。"
"broadcastEnterText" = "請輸入要發送給所選用戶的訊息內容"
"broadcastSentToUser" = "訊息已發送給用戶: {{ .Email }}"
+"chooseSend" = "選擇通知發送方式"
+"chooseUser" = "選擇用戶或輸入其電子郵件"
\ No newline at end of file