diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo
new file mode 100644
index 0000000..79eb150
Binary files /dev/null and b/locale/es/LC_MESSAGES/django.mo differ
diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
index bfc6159..138d1a2 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -6,65 +6,66 @@
#, fuzzy
msgid ""
msgstr ""
+
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-04-16 15:41-0300\n"
+"POT-Creation-Date: 2025-04-16 15:55-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME
\n" +" Esta interfaz sirve como una " +"herramienta completa para gestionar reglas de firewall, permitiendo a los " +"usuarios implementar políticas de tráfico avanzadas entre peers de VPN y " +"redes. Simplifica el establecimiento de reglas de firewall, el filtrado de " +"paquetes y las configuraciones de NAT, posibilitando un control preciso de " +"la seguridad de la red. Los usuarios pueden definir direcciones IP de origen " +"y destino, puertos, protocolos y acciones para ajustar el flujo de tráfico, " +"asegurando un entorno de red seguro y eficiente.\n" +"
\n" +" " #: templates/firewall/manage_firewall_rule.html:100 msgid "Interface" -msgstr "" +msgstr "Interfaz" #: templates/firewall/manage_firewall_rule.html:179 msgid "" @@ -705,6 +731,22 @@ msgid "" " \n" " " msgstr "" +"\n" +"\n"
+" Puedes aplicar esta regla a una "
+"dirección IP o red específica y/o a múltiples peers.
\n"
+" Habilitar \"Include peer networks\" "
+"incluirá automáticamente todas las IPs permitidas asociadas a cada peer "
+"seleccionado.
\n"
+" Ten en cuenta que seleccionar "
+"múltiples peers con redes incluidas tanto en origen como en destino puede "
+"incrementar rápidamente el número de reglas generadas, dependiendo de tu "
+"configuración.
\n"
+" La opción \"Not Source\" niega la "
+"IP, red o peer(s) seleccionado(s).\n"
+"
\n"
+" Puedes aplicar esta regla a una "
+"dirección IP o red específica y/o a múltiples peers como destino.
\n"
+" Habilitar \"Include peer networks\" "
+"incluirá automáticamente todas las IPs permitidas asociadas a cada peer "
+"seleccionado como destino.
\n"
+" Ten en cuenta que seleccionar "
+"múltiples peers con redes incluidas tanto en origen como en destino puede "
+"incrementar rápidamente el número de reglas generadas, dependiendo de tu "
+"configuración.
\n"
+" La opción \"Not Destination\" niega "
+"la IP, red o peer(s) seleccionado(s).\n"
+"
\n"
+" Solo se listan los protocolos más "
+"comunes. Si necesitas uno específico, abre un issue en GitHub.
\n"
+" Seleccionar TCP+UDP duplicará las "
+"reglas generadas.
\n"
+" Puedes especificar puertos como "
+"números individuales (por ejemplo, 8080) o rangos (por ejemplo, 8001:8999).\n"
+"
El archivo docker-compose.yml
"
+"predeterminado especifica el rango de puertos TCP 8080-8089. "
+"Si deseas cambiarlo, edita manualmente el archivo docker-compose.yml"
+"code> y vuelve a ejecutar Docker Compose según las instrucciones de despliegue.
La redirección de puerto dará prioridad a la " +"primera IP del peer con prioridad cero.
\n" +"Las reglas redirigirán al IP especificado. " +"Recuerda asignar esa IP o red a un peer.
\n" +"Genera automáticamente una regla de reenvío para " +"ajustarse a configuraciones más estrictas de firewall.
\n" +"Solución temporal cuando un peer no usa la VPN " +"como puerta predeterminada. No se recomienda: cambia la IP de origen de " +"todas las conexiones por la de la instancia WireGuard.
\n" +" " #: templates/firewall/manage_redirect_rule.html:143 msgid "To delete this rule, please type:" -msgstr "" +msgstr "Para eliminar esta regla, escribe:" #: templates/firewall/redirect_rule_list.html:12 msgid "Instance" -msgstr "" +msgstr "Instancia" #: templates/firewall/redirect_rule_list.html:16 msgid "Allow Forward" -msgstr "" +msgstr "Permitir reenvío" #: templates/firewall/redirect_rule_list.html:46 msgid "" @@ -833,169 +926,172 @@ msgid "" "recommended, as it alters the source address of all connections to match the " "IP address of the WireGuard instance." msgstr "" +"Solución temporal cuando un peer no usa la VPN como puerta predeterminada. " +"No se recomienda, ya que altera la IP de origen de todas las conexiones a la " +"de la instancia WireGuard." #: templates/firewall/redirect_rule_list.html:58 msgid "Create Port forwarding Rule" -msgstr "" +msgstr "Crear regla de reenvío de puerto" #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" -msgstr "" +msgstr "Nivel de acceso" #: templates/user_manager/list.html:10 user_manager/forms.py:24 #: user_manager/views.py:17 msgid "Peer Groups" -msgstr "" +msgstr "Grupos de peers" #: templates/user_manager/list.html:11 msgid "Permissions" -msgstr "" +msgstr "Permisos" #: templates/user_manager/list.html:26 msgid "All" -msgstr "" +msgstr "Todos" #: templates/user_manager/list.html:31 msgid "Restart Enabled" -msgstr "" +msgstr "Reinicio habilitado" #: templates/user_manager/list.html:36 msgid "Reload Enabled" -msgstr "" +msgstr "Recarga habilitada" #: templates/user_manager/list.html:42 msgid "Console Enabled" -msgstr "" +msgstr "Consola habilitada" #: templates/user_manager/list.html:48 msgid "Enhanced Filter Enabled" -msgstr "" +msgstr "Filtro mejorado habilitado" #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" -msgstr "" +msgstr "Añadir usuario" #: templates/user_manager/list_buttons.html:3 msgid "List Users" -msgstr "" +msgstr "Listar usuarios" #: templates/user_manager/list_buttons.html:4 msgid "List Peer Groups" -msgstr "" +msgstr "Listar grupos de peers" #: templates/user_manager/list_buttons.html:5 user_manager/views.py:43 msgid "Add Peer Group" -msgstr "" +msgstr "Añadir grupo de peers" #: templates/user_manager/peer_group_list.html:9 #: templates/wireguard/wireguard_status.html:48 msgid "Peers" -msgstr "" +msgstr "Peers" #: templates/user_manager/peer_group_list.html:10 user_manager/forms.py:179 msgid "Server Instance" -msgstr "" +msgstr "Instancia de WireGuard" #: templates/user_manager/peer_group_list.html:11 msgid "Users" -msgstr "" +msgstr "Usuarios" #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" -msgstr "" +msgstr "Caduca en" #: templates/vpn_invite/invite_settings.html:31 msgid "Remove VPN invitation for peer" -msgstr "" +msgstr "Eliminar invitación VPN del peer" #: templates/vpn_invite/invite_settings.html:38 msgid "No active VPN invitations" -msgstr "" +msgstr "No hay invitaciones VPN activas" #: templates/vpn_invite/invite_settings.html:49 vpn_invite/views.py:77 msgid "Email Settings" -msgstr "" +msgstr "Configuración de correo" #: templates/vpn_invite/invite_settings.html:50 msgid "Invite Settings" -msgstr "" +msgstr "Configuración de invitación" #: templates/wireguard/wireguard_manage_ip.html:18 msgid "Enter Allowed IP" -msgstr "" +msgstr "Ingresar IP permitida" #: templates/wireguard/wireguard_manage_ip.html:34 #: templates/wireguard/wireguard_manage_peer.html:103 #: templates/wireguard/wireguard_manage_peer.html:153 #: wireguard_peer/forms.py:31 msgid "Priority" -msgstr "" +msgstr "Prioridad" #: templates/wireguard/wireguard_manage_ip.html:58 msgid "Please type \\\"delete\\\" to remove this IP address." -msgstr "" +msgstr "Por favor escribe \\\"delete\\\" para eliminar esta IP." #: templates/wireguard/wireguard_manage_peer.html:8 msgid "Peer Configuration" -msgstr "" +msgstr "Configuración de peer" #: templates/wireguard/wireguard_manage_peer.html:17 msgid "Enter Name" -msgstr "" +msgstr "Ingresar nombre" #: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 msgid "Persistent Keepalive" -msgstr "" +msgstr "Keepalive persistente" #: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 #: wireguard_peer/forms.py:11 msgid "Public Key" -msgstr "" +msgstr "Clave pública" #: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 #: wireguard_peer/forms.py:12 msgid "Private Key" -msgstr "" +msgstr "Clave privada" #: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 msgid "Pre-Shared Key" -msgstr "" +msgstr "Clave precompartida" #: templates/wireguard/wireguard_manage_peer.html:57 #: templates/wireguard/wireguard_peer_list.html:136 msgid "Peer Traffic" -msgstr "" +msgstr "Tráfico del peer" #: templates/wireguard/wireguard_manage_peer.html:73 #: templates/wireguard/wireguard_peer_list.html:151 msgid "No traffic history, please wait a few minutes" -msgstr "" +msgstr "Sin historial de tráfico, espera unos minutos" #: templates/wireguard/wireguard_manage_peer.html:85 msgid "AllowedIPs at Peer section of wg" -msgstr "" +msgstr "AllowedIPs en sección peer de wg" #: templates/wireguard/wireguard_manage_peer.html:86 msgid "Peer IP Addresses and networks" -msgstr "" +msgstr "IPs y redes del peer" #: templates/wireguard/wireguard_manage_peer.html:88 #: templates/wireguard/wireguard_manage_peer.html:169 msgid "Add IP Address" -msgstr "" +msgstr "Añadir IP" #: templates/wireguard/wireguard_manage_peer.html:101 #: templates/wireguard/wireguard_manage_peer.html:151 msgid "Main ip address" -msgstr "" +msgstr "IP principal" #: templates/wireguard/wireguard_manage_peer.html:116 msgid "Client Routing Configuration" -msgstr "" +msgstr "Configuración de rutas cliente" #: templates/wireguard/wireguard_manage_peer.html:118 msgid "Add Client route" -msgstr "" +msgstr "Añadir ruta cliente" #: templates/wireguard/wireguard_manage_peer.html:124 msgid "" @@ -1005,6 +1101,10 @@ msgid "" "will need to manually update the client configuration file to reflect these " "settings." msgstr "" +"El cliente no está configurado para usar la VPN como puerta predeterminada." +"\\n\\nSolo las redes específicas listadas abajo se enrutan por la VPN." +"\\n\\nNota: Estas rutas no se envían automáticamente al cliente. Debes " +"actualizar manualmente su archivo de configuración para reflejarlas." #: templates/wireguard/wireguard_manage_peer.html:127 msgid "" @@ -1012,133 +1112,141 @@ msgid "" "setting routes all client internet traffic through the VPN, enhancing " "privacy and security across all connections." msgstr "" +"El cliente está configurado para usar la VPN como puerta predeterminada." +"\\n\\nEsta opción enruta todo el tráfico de Internet del cliente por la VPN, " +"mejorando privacidad y seguridad." #: templates/wireguard/wireguard_manage_peer.html:136 msgid "default route" -msgstr "" +msgstr "ruta predeterminada" #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Delete Peer" -msgstr "" +msgstr "Eliminar peer" #: templates/wireguard/wireguard_manage_peer.html:188 msgid "Action Required!" -msgstr "" +msgstr "¡Acción requerida!" #: templates/wireguard/wireguard_manage_peer.html:189 msgid "" "When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " "Key\", please ensure the configuration is correct." msgstr "" +"Al actualizar manualmente \"Clave pública\", \"Clave precompartida\" o " +"\"Clave privada\", asegúrate de que la configuración sea correcta." #: templates/wireguard/wireguard_manage_peer.html:209 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "" +"Por favor escribe \\\"delete\\\" para eliminar la configuración del peer." #: templates/wireguard/wireguard_manage_server.html:18 msgid "Create Instance" -msgstr "" +msgstr "Crear instancia" #: templates/wireguard/wireguard_manage_server.html:132 msgid "Delete Configuration" -msgstr "" +msgstr "Eliminar configuración" #: templates/wireguard/wireguard_peer_list.html:75 #: templates/wireguard/wireguard_peer_list.html:125 msgid "Throughput" -msgstr "" +msgstr "Rendimiento" #: templates/wireguard/wireguard_peer_list.html:76 #: templates/wireguard/wireguard_peer_list.html:126 msgid "Transfer" -msgstr "" +msgstr "Transferencia" #: templates/wireguard/wireguard_peer_list.html:77 #: templates/wireguard/wireguard_peer_list.html:127 msgid "Latest Handshake" -msgstr "" +msgstr "Último handshake" #: templates/wireguard/wireguard_peer_list.html:79 #: templates/wireguard/wireguard_peer_list.html:128 msgid "Endpoints" -msgstr "" +msgstr "Endpoints" #: templates/wireguard/wireguard_peer_list.html:81 #: templates/wireguard/wireguard_peer_list.html:129 msgid "Allowed IPs" -msgstr "" +msgstr "IPs permitidas" #: templates/wireguard/wireguard_peer_list.html:102 msgid "Are you sure you want to create a new peer?" -msgstr "" +msgstr "¿Seguro que quieres crear un nuevo peer?" #: templates/wireguard/wireguard_peer_list.html:102 #: templates/wireguard/wireguard_peer_list.html:104 msgid "Create Peer" -msgstr "" +msgstr "Crear peer" #: templates/wireguard/wireguard_peer_list.html:106 #: templates/wireguard/wireguard_peer_list.html:617 msgid "Show extras" -msgstr "" +msgstr "Mostrar extras" #: templates/wireguard/wireguard_peer_list.html:158 msgid "Close QR Code" -msgstr "" +msgstr "Cerrar código QR" #: templates/wireguard/wireguard_peer_list.html:168 msgid "VPN Invite Details" -msgstr "" +msgstr "Detalles de invitación VPN" #: templates/wireguard/wireguard_peer_list.html:174 msgid "Expires on" -msgstr "" +msgstr "Caduca el" #: templates/wireguard/wireguard_peer_list.html:178 msgid "Enter Email or WhatsApp Number" -msgstr "" +msgstr "Ingresa email o número de WhatsApp" #: templates/wireguard/wireguard_peer_list.html:179 msgid "Email or phone number" -msgstr "" +msgstr "Email o teléfono" #: templates/wireguard/wireguard_peer_list.html:182 msgid "Copy Text" -msgstr "" +msgstr "Copiar texto" #: templates/wireguard/wireguard_peer_list.html:183 msgid "Email" -msgstr "" +msgstr "Email" #: templates/wireguard/wireguard_peer_list.html:184 msgid "WhatsApp" -msgstr "" +msgstr "WhatsApp" #: templates/wireguard/wireguard_peer_list.html:192 msgid "Close" -msgstr "" +msgstr "Cerrar" #: templates/wireguard/wireguard_peer_list.html:193 msgid "Config" -msgstr "" +msgstr "Configuración" #: templates/wireguard/wireguard_peer_list.html:194 msgid "QR Code" -msgstr "" +msgstr "Código QR" #: templates/wireguard/wireguard_peer_list.html:204 msgid "No WireGuard Instances Found" -msgstr "" +msgstr "No se encontraron instancias WireGuard" #: templates/wireguard/wireguard_peer_list.html:205 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." msgstr "" +"No hay instancias WireGuard configuradas. Puedes añadir una nueva haciendo " +"clic en el botón abajo." #: templates/wireguard/wireguard_peer_list.html:208 msgid "Add WireGuard Instance" -msgstr "" +msgstr "Añadir instancia WireGuard" #: templates/wireguard/wireguard_peer_list.html:570 msgid "" @@ -1146,6 +1254,8 @@ msgid "" "indicating that another peer has an IP overlapping this network or that the " "configuration file is outdated." msgstr "" +"Esta dirección no aparece en la salida de 'wg show', lo que indica que otro " +"peer tiene una IP solapada o el archivo de configuración está desactualizado." #: templates/wireguard/wireguard_peer_list.html:585 msgid "" @@ -1153,158 +1263,160 @@ msgid "" "may indicate that another peer is using an overlapping IP or that the " "configuration file is outdated." msgstr "" +"Al menos una dirección no aparece en la salida de 'wg show', lo cual puede " +"indicar un IP solapada o un archivo desactualizado." #: templates/wireguard/wireguard_peer_list.html:614 msgid "Hide extras" -msgstr "" +msgstr "Ocultar extras" #: templates/wireguard/wireguard_peer_list.html:658 #: templates/wireguard/wireguard_peer_list.html:792 msgid "Access Password" -msgstr "" +msgstr "Contraseña de acceso" #: templates/wireguard/wireguard_peer_list.html:658 #: templates/wireguard/wireguard_peer_list.html:792 msgid "(Share this password via a separate secure channel)" -msgstr "" +msgstr "(Comparte esta contraseña por un canal seguro separado)" #: templates/wireguard/wireguard_peer_list.html:661 msgid "Unknown error" -msgstr "" +msgstr "Error desconocido" #: templates/wireguard/wireguard_peer_list.html:665 msgid "Error creating invite." -msgstr "" +msgstr "Error al crear invitación." #: templates/wireguard/wireguard_peer_list.html:702 msgid "Invite text copied to clipboard." -msgstr "" +msgstr "Texto de invitación copiado al portapapeles." #: templates/wireguard/wireguard_peer_list.html:704 msgid "Failed to copy text." -msgstr "" +msgstr "Error al copiar texto." #: templates/wireguard/wireguard_peer_list.html:707 msgid "Clipboard API not supported." -msgstr "" +msgstr "API del portapapeles no soportada." #: templates/wireguard/wireguard_peer_list.html:716 msgid "Please enter a valid phone number for WhatsApp." -msgstr "" +msgstr "Ingresa un número de WhatsApp válido." #: templates/wireguard/wireguard_peer_list.html:728 #: templates/wireguard/wireguard_peer_list.html:774 msgid "Invite data is not available." -msgstr "" +msgstr "Datos de invitación no disponibles." #: templates/wireguard/wireguard_peer_list.html:737 msgid "Please enter a valid email address." -msgstr "" +msgstr "Ingresa un email válido." #: templates/wireguard/wireguard_peer_list.html:759 msgid "Error sending email." -msgstr "" +msgstr "Error al enviar email." #: templates/wireguard/wireguard_peer_list.html:796 #: templates/wireguard/wireguard_peer_list.html:800 msgid "Error refreshing invite." -msgstr "" +msgstr "Error al actualizar invitación." #: templates/wireguard/wireguard_peer_list.html:815 msgid "No invite data available to refresh." -msgstr "" +msgstr "No hay datos de invitación para actualizar." #: templates/wireguard/wireguard_peer_list.html:835 msgid "Error closing invite:" -msgstr "" +msgstr "Error al cerrar invitación:" #: templates/wireguard/wireguard_status.html:9 msgid "Update Configuration" -msgstr "" +msgstr "Actualizar configuración" #: templates/wireguard/wireguard_status.html:16 msgid "Restart Wireguard service" -msgstr "" +msgstr "Reiniciar servicio WireGuard" #: templates/wireguard/wireguard_status.html:24 msgid "Reload Wireguard service" -msgstr "" +msgstr "Recargar servicio WireGuard" #: templates/wireguard/wireguard_status.html:42 msgid "Instance Traffic" -msgstr "" +msgstr "Tráfico de la instancia" #: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 msgid "Public Address" -msgstr "" +msgstr "Dirección pública" #: user_manager/forms.py:15 msgid "Password Confirmation" -msgstr "" +msgstr "Confirmación de contraseña" #: user_manager/forms.py:17 msgid "Reload WireGuard" -msgstr "" +msgstr "Recargar WireGuard" #: user_manager/forms.py:18 msgid "Restart WireGuard" -msgstr "" +msgstr "Reiniciar WireGuard" #: user_manager/forms.py:19 msgid "Enhanced Filter" -msgstr "" +msgstr "Filtro mejorado" #: user_manager/forms.py:119 msgid "Password is required for new users." -msgstr "" +msgstr "Contraseña obligatoria para nuevos usuarios." #: user_manager/forms.py:121 msgid "Password confirmation is required for new users." -msgstr "" +msgstr "Confirmación de contraseña obligatoria para nuevos usuarios." #: user_manager/forms.py:125 msgid "The two password fields didn't match." -msgstr "" +msgstr "Las contraseñas no coinciden." #: user_manager/forms.py:127 msgid "Password must be at least 8 characters long." -msgstr "" +msgstr "La contraseña debe tener al menos 8 caracteres." #: user_manager/forms.py:220 msgid "A peer group with that name already exists." -msgstr "" +msgstr "Ya existe un grupo de peers con ese nombre." #: user_manager/models.py:13 msgid "Debugging Analyst" -msgstr "" +msgstr "Analista de depuración" #: user_manager/models.py:14 vpn_invite/models.py:25 msgid "View Only" -msgstr "" +msgstr "Solo lectura" #: user_manager/models.py:15 vpn_invite/models.py:25 msgid "Peer Manager" -msgstr "" +msgstr "Gestor de peers" #: user_manager/models.py:16 vpn_invite/models.py:25 msgid "WireGuard Manager" -msgstr "" +msgstr "Gestor de WireGuard" #: user_manager/models.py:17 vpn_invite/models.py:25 msgid "Administrator" -msgstr "" +msgstr "Administrador" #: user_manager/views.py:31 msgid "Edit Peer Group: " -msgstr "" +msgstr "Editar grupo de peers: " #: user_manager/views.py:36 msgid "Peer Group deleted|Peer Group deleted: " -msgstr "" +msgstr "Grupo de peers eliminado|Grupo eliminado: " #: user_manager/views.py:39 msgid "Peer Group not deleted|Invalid confirmation." -msgstr "" +msgstr "Grupo de peers no eliminado|Confirmación inválida." #: user_manager/views.py:58 msgid "" @@ -1318,30 +1430,40 @@ msgid "" "this peer group, including adding or removing peers.\n" " " msgstr "" +"\n" +"Selecciona los peers que pueden gestionar los usuarios de este " +"grupo.
\n" +"\n" +"Todos los peers en esta instancia de WireGuard pueden ser " +"gestionados por usuarios de este grupo, incluyendo añadir o eliminar peers." +"p>\n" +" " #: user_manager/views.py:98 msgid "Edit User" -msgstr "" +msgstr "Editar usuario" #: user_manager/views.py:104 msgid "User deleted|User deleted: " -msgstr "" +msgstr "Usuario eliminado|Usuario eliminado: " #: user_manager/views.py:107 msgid "User not deleted|Invalid confirmation." -msgstr "" +msgstr "Usuario no eliminado|Confirmación inválida." #: user_manager/views.py:128 msgid "User Disconnected|User Disconnected: " -msgstr "" +msgstr "Usuario desconectado|Usuario desconectado: " #: user_manager/views.py:132 msgid "User updated|User updated: " -msgstr "" +msgstr "Usuario actualizado|Usuario actualizado: " #: user_manager/views.py:134 msgid "User created|User created: " -msgstr "" +msgstr "Usuario creado|Usuario creado: " #: user_manager/views.py:139 msgid "" @@ -1385,170 +1507,216 @@ msgid "" "\n" " " msgstr "" +"\n" +"
Acceso a información básica y registros para depuración. Sin " +"permiso para modificar ajustes o ver datos sensibles como claves de peer." +"p>\n" +"\n" +"
Acceso completo de visualización, incluyendo claves y archivos de " +"configuración. No puede modificar ajustes.
\n" +"\n" +"Permisos para añadir, editar y eliminar peers e IPs. No incluye " +"modificar configuraciones de instancias WireGuard u otros ajustes.
\n" +"\n" +"Autoridad para añadir, editar y eliminar configuraciones de " +"instancias de WireGuard.
\n" +"\n" +"Acceso total al sistema. Puede ver y modificar todas las " +"configuraciones y gestionar usuarios.
\n" +"\n" +"Selecciona los grupos de peers a los que puede acceder este " +"usuario. Si no seleccionas ninguno, tendrá acceso a todos.
\n" +"\n" +"Habilitar o deshabilitar acceso a la consola web para este " +"usuario.
\n" +"\n" +"Este filtro muestra solo los peers a los que el usuario tiene " +"acceso. Según el tamaño de tu entorno, puede impactar rendimiento. Para " +"mitigarlo, aumenta el \"Intervalo de actualización web\" para reducir las " +"solicitudes.
\n" +"\n" +" " #: user_manager/views.py:175 msgid "Please type the username to proceed." -msgstr "" +msgstr "Por favor escribe el nombre de usuario para continuar." #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" -msgstr "" +msgstr "Habilitado" #: vpn_invite/forms.py:49 msgid "Disabled" -msgstr "" +msgstr "Deshabilitado" #: vpn_invite/forms.py:68 vpn_invite/forms.py:69 vpn_invite/forms.py:70 #: vpn_invite/forms.py:71 vpn_invite/forms.py:72 msgid "URL" -msgstr "" +msgstr "URL" #: vpn_invite/forms.py:73 vpn_invite/forms.py:74 vpn_invite/forms.py:75 #: vpn_invite/forms.py:76 vpn_invite/forms.py:77 msgid "Text" -msgstr "" +msgstr "Texto" #: vpn_invite/forms.py:83 msgid "Web Page Instructions" -msgstr "" +msgstr "Instrucciones en página web" #: vpn_invite/forms.py:84 msgid "Email Subject" -msgstr "" +msgstr "Asunto del correo" #: vpn_invite/forms.py:85 msgid "Email Message" -msgstr "" +msgstr "Mensaje de correo" #: vpn_invite/forms.py:86 msgid "Email Enabled" -msgstr "" +msgstr "Correo habilitado" #: vpn_invite/forms.py:87 msgid "WhatsApp Message" -msgstr "" +msgstr "Mensaje de WhatsApp" #: vpn_invite/forms.py:88 msgid "WhatsApp Enabled" -msgstr "" +msgstr "WhatsApp habilitado" #: vpn_invite/forms.py:89 msgid "Text Message" -msgstr "" +msgstr "Mensaje de texto" #: vpn_invite/forms.py:90 msgid "Expiration (minutes)" -msgstr "" +msgstr "Expira en (minutos)" #: vpn_invite/forms.py:91 msgid "Random Password" -msgstr "" +msgstr "Contraseña aleatoria" #: vpn_invite/forms.py:92 msgid "Invite URL" -msgstr "" +msgstr "URL de invitación" #: vpn_invite/forms.py:93 msgid "Required User Level" -msgstr "" +msgstr "Nivel de acceso requerido" #: vpn_invite/forms.py:94 msgid "Default Password" -msgstr "" +msgstr "Contraseña predeterminada" #: vpn_invite/forms.py:95 msgid "Random Password Length" -msgstr "" +msgstr "Longitud de contraseña aleatoria" #: vpn_invite/forms.py:96 msgid "Random Password Complexity" -msgstr "" +msgstr "Complejidad de contraseña aleatoria" #: vpn_invite/forms.py:103 msgid "General Settings" -msgstr "" +msgstr "Ajustes generales" #: vpn_invite/forms.py:125 msgid "Download Buttons" -msgstr "" +msgstr "Botones de descarga" #: vpn_invite/forms.py:158 msgid "Message templates" -msgstr "" +msgstr "Plantillas de mensaje" #: vpn_invite/forms.py:165 msgid "Email Message Template" -msgstr "" +msgstr "Plantilla de correo" #: vpn_invite/forms.py:176 msgid "WhatsApp Message Template" -msgstr "" +msgstr "Plantilla de WhatsApp" #: vpn_invite/forms.py:183 msgid "Text Message Template" -msgstr "" +msgstr "Plantilla de mensaje de texto" #: vpn_invite/forms.py:205 msgid "Invite URL must start with 'https://'." -msgstr "" +msgstr "La URL debe empezar con 'https://'." #: vpn_invite/forms.py:207 msgid "Invite URL must end with '/invite/'." -msgstr "" +msgstr "La URL debe terminar con '/invite/'." #: vpn_invite/forms.py:213 msgid "Expiration (minutes) must be between 1 and 1440." -msgstr "" +msgstr "La expiración (minutos) debe estar entre 1 y 1440." #: vpn_invite/forms.py:222 msgid "Default password must not be provided when random password is enabled." msgstr "" +"No proporciones contraseña predeterminada si la aleatoria está habilitada." #: vpn_invite/forms.py:224 msgid "Random password length must be at least 6 characters." -msgstr "" +msgstr "La contraseña aleatoria debe tener al menos 6 caracteres." #: vpn_invite/forms.py:229 msgid "Default password must be provided when random password is disabled." msgstr "" +"Proporciona contraseña predeterminada si la aleatoria está deshabilitada." #: vpn_invite/forms.py:231 msgid "Default password must be at least 6 characters long." -msgstr "" +msgstr "La contraseña predeterminada debe tener al menos 6 caracteres." #: vpn_invite/forms.py:241 msgid "Text field must not be empty when download button is enabled." msgstr "" +"El campo de texto no puede estar vacío si el botón de descarga está " +"habilitado." #: vpn_invite/forms.py:243 msgid "URL field must not be empty when download button is enabled." msgstr "" +"El campo URL no puede estar vacío si el botón de descarga está habilitado." #: vpn_invite/forms.py:252 msgid "" "Default password must not be contained in any message template. Found at: " msgstr "" +"La contraseña predeterminada no debe estar en ninguna plantilla. Encontrado " +"en: " #: vpn_invite/forms.py:259 #, python-brace-format msgid "The template must include the placeholder '{invite_url}'." -msgstr "" +msgstr "La plantilla debe incluir el marcador '{invite_url}'." #: vpn_invite/forms.py:283 msgid "Host" -msgstr "" +msgstr "Host" #: vpn_invite/forms.py:285 msgid "Encryption" -msgstr "" +msgstr "Cifrado" #: vpn_invite/forms.py:286 msgid "From Address" -msgstr "" +msgstr "Dirección de origen" #: vpn_invite/forms.py:337 msgid "SMTP port must be between 1 and 65535." -msgstr "" +msgstr "El puerto SMTP debe estar entre 1 y 65535." #: vpn_invite/models.py:8 #, python-brace-format @@ -1563,6 +1731,15 @@ msgid "" "Note: This invitation link will expire in {expire_minutes} minutes. If you " "need a new link after expiration, please request another invite." msgstr "" +"Hola,\n" +"\n" +"Estás invitado a unirte a nuestra red VPN WireGuard segura. Haz clic en el " +"enlace para acceder a tu configuración VPN personalizada:\n" +"\n" +"{invite_url}\n" +"\n" +"Nota: Este enlace expirará en {expire_minutes} minutos. Si necesitas uno " +"nuevo, solicita otra invitación." #: vpn_invite/models.py:16 msgid "" @@ -1573,22 +1750,28 @@ msgid "" "download the configuration file to quickly import your " "settings and start using your secure VPN connection." msgstr "" +"Descarga la app WireGuard para tu dispositivo desde uno de los enlaces." +"p>\n" +"
Tras instalar, puedes escanear el código QR o " +"descargar el archivo de configuración para importarlo y " +"usar tu VPN segura.
" #: vpn_invite/models.py:30 msgid "Letters, Digits, Special Characters" -msgstr "" +msgstr "Letras, dígitos, caracteres especiales" #: vpn_invite/models.py:31 msgid "Letters, Digits" -msgstr "" +msgstr "Letras, dígitos" #: vpn_invite/models.py:31 msgid "Letters" -msgstr "" +msgstr "Letras" #: vpn_invite/models.py:31 msgid "Digits" -msgstr "" +msgstr "Dígitos" #: vpn_invite/models.py:55 msgid "" @@ -1596,227 +1779,243 @@ msgid "" "After installation, you can scan the QR code or download the configuration " "file to import on your device." msgstr "" +"Descarga la app WireGuard para tu dispositivo desde uno de los enlaces. Tras " +"la instalación, puedes escanear el código QR o descargar el archivo de " +"configuración para importarlo." #: vpn_invite/models.py:61 msgid "WireGuard VPN Invite" -msgstr "" +msgstr "Invitación VPN WireGuard" #: vpn_invite/views.py:53 msgid "Invite Settings|Settings saved successfully." -msgstr "" +msgstr "Configuración de invitación|Configuración guardada correctamente." #: vpn_invite/views.py:57 msgid "VPN Invite Settings" -msgstr "" +msgstr "Configuración de invitación VPN" #: vpn_invite/views.py:73 msgid "Email Settings|Settings saved successfully." -msgstr "" +msgstr "Configuración de correo|Configuración guardada correctamente." #: wireguard/forms.py:11 msgid "Display Name" -msgstr "" +msgstr "Nombre para mostrar" #: wireguard/forms.py:12 msgid "Instance ID" -msgstr "" +msgstr "Instancia" #: wireguard/forms.py:16 msgid "Listen Port" -msgstr "" +msgstr "Puerto" #: wireguard/forms.py:17 msgid "Internal IP Address" -msgstr "" +msgstr "Dirección IP interna" #: wireguard/forms.py:19 msgid "Post Up" -msgstr "" +msgstr "Post Up" #: wireguard/forms.py:20 msgid "Post Down" -msgstr "" +msgstr "Post Down" #: wireguard/forms.py:21 msgid "Web Refresh Interval" -msgstr "" +msgstr "Intervalo de actualización web" #: wireguard/forms.py:42 msgid "Peer List Refresh Interval must be at least 5 seconds" -msgstr "" +msgstr "El intervalo de actualización de peers debe ser al menos 5 segundos" #: wireguard/forms.py:45 msgid "Invalid hostname or IP Address" -msgstr "" +msgstr "Nombre de host o IP inválido" #: wireguard/forms.py:54 msgid "The selected network range overlaps with another instance." -msgstr "" +msgstr "El rango de red seleccionado se solapa con otra instancia." #: wireguard/views.py:97 msgid "WireGuard Status" -msgstr "" +msgstr "Estado de WireGuard" #: wireguard/views.py:129 msgid "Update WireGuard Instance" -msgstr "" +msgstr "Actualizar instancia WireGuard" #: wireguard/views.py:133 msgid "Delete WireGuard Instance" -msgstr "" +msgstr "Eliminar instancia WireGuard" #: wireguard/views.py:136 msgid "Error removing instance: wg" -msgstr "" +msgstr "Error al eliminar instancia: wg" #: wireguard/views.py:136 msgid "" "|Cannot delete the requested WireGuard instance. There are still peers " "associated with this instance." msgstr "" +"|No se puede eliminar la instancia solicitada. Aún hay peers asociados." #: wireguard/views.py:139 msgid "|WireGuard instance deleted: wg" -msgstr "" +msgstr "|Instancia WireGuard eliminada: wg" #: wireguard/views.py:142 msgid "Invalid confirmation|Please confirm deletion of WireGuard instance: wg" -msgstr "" +msgstr "Confirmación inválida|Por favor confirma eliminación de instancia: wg" #: wireguard/views.py:146 msgid "Create a new WireGuard Instance" -msgstr "" +msgstr "Crear nueva instancia WireGuard" #: wireguard/views.py:147 msgid "New WireGuard Instance" -msgstr "" +msgstr "Nueva instancia WireGuard" #: wireguard_peer/forms.py:29 msgid "Allowed IP or Network" -msgstr "" +msgstr "IP o red permitida" #: wireguard_peer/forms.py:39 msgid "Please provide a valid IP address." -msgstr "" +msgstr "Por favor proporciona una IP válida." #: wireguard_peer/forms.py:48 msgid "A peer can have only one IP with priority zero." -msgstr "" +msgstr "Un peer solo puede tener una IP con prioridad cero." #: wireguard_peer/forms.py:54 msgid "This IP is already in use by another peer." -msgstr "" +msgstr "Esta IP ya la usa otro peer." #: wireguard_peer/forms.py:56 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." msgstr "" +"La IP no pertenece al rango de la instancia WireGuard del peer. Verifica la " +"IP o cambia la prioridad." #: wireguard_peer/forms.py:58 msgid "The netmask for priority 0 IP must be 32." -msgstr "" +msgstr "La máscara para IP con prioridad 0 debe ser 32." #: wireguard_peer/forms.py:60 msgid "The IP address is the same as the Peer's WireGuard instance address." -msgstr "" +msgstr "La IP es la misma que la instancia WireGuard del peer." #: wireguard_peer/forms.py:63 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." msgstr "" +"La IP pertenece al rango de la instancia WireGuard del peer. Verifica la IP " +"o usa prioridad 0." #: wireguard_peer/forms.py:66 msgid "Priority must be greater than or equal to 1" -msgstr "" +msgstr "La prioridad debe ser ≥ 1" #: wireguard_peer/forms.py:68 msgid "Invalid config file" -msgstr "" +msgstr "Archivo de configuración inválido" #: wireguard_peer/views.py:50 msgid "WireGuard Peer List" -msgstr "" +msgstr "Lista de peers WireGuard" #: wireguard_peer/views.py:129 msgid "Create a new Peer for instance wg" -msgstr "" +msgstr "Crear nuevo peer para instancia wg" #: wireguard_peer/views.py:148 msgid "Peer created|Peer created successfully." -msgstr "" +msgstr "Peer creado|Peer creado correctamente." #: wireguard_peer/views.py:153 msgid "Error creating peer|No available IP address found for peer creation." -msgstr "" +msgstr "Error al crear peer|No hay IP disponible para asignar." #: wireguard_peer/views.py:166 msgid "Peer deleted|Peer deleted successfully." -msgstr "" +msgstr "Peer eliminado|Peer eliminado correctamente." #: wireguard_peer/views.py:169 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" +"Error al eliminar peer|Confirmación inválida. Escribe \"delete\" para " +"confirmar." #: wireguard_peer/views.py:171 msgid "Update Peer: " -msgstr "" +msgstr "Actualizar peer: " #: wireguard_peer/views.py:182 msgid "Peer updated|Peer updated successfully." -msgstr "" +msgstr "Peer actualizado|Peer actualizado correctamente." #: wireguard_peer/views.py:220 msgid "IP address deleted|IP address deleted successfully." -msgstr "" +msgstr "IP eliminada|IP eliminada correctamente." #: wireguard_peer/views.py:225 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." msgstr "" +"Error al eliminar IP|Confirmación inválida. Escribe \"delete\" para " +"confirmar." #: wireguard_peer/views.py:230 msgid "Manage client route" -msgstr "" +msgstr "Gestionar ruta cliente" #: wireguard_peer/views.py:232 msgid "Manage IP address or Network" -msgstr "" +msgstr "Gestionar IP o red" #: wireguard_peer/views.py:245 msgid "IP address updated|IP address updated successfully." -msgstr "" +msgstr "IP actualizada|IP actualizada correctamente." #: wireguard_peer/views.py:247 msgid "IP address added|IP address added successfully." -msgstr "" +msgstr "IP añadida|IP añadida correctamente." #: wireguard_tools/views.py:160 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." msgstr "" +"Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" +"wireguard/." #: wireguard_tools/views.py:162 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." msgstr "" +"Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" +"wireguard/. No olvides reiniciar las interfaces." #: wireguard_tools/views.py:255 msgid "Error reloading" -msgstr "" +msgstr "Error al recargar" #: wireguard_tools/views.py:267 msgid "Error stopping" -msgstr "" +msgstr "Error al detener" #: wireguard_tools/views.py:272 msgid "Error starting" -msgstr "" +msgstr "Error al iniciar" #: wireguard_tools/views.py:279 msgid "" @@ -1824,19 +2023,22 @@ msgid "" "check if the the peers are working as expected. If you find any issues, " "please report them." msgstr "" +"ADVERTENCIA|La interfaz se recargó, no reinició. Verifica que los peers " +"funcionen correctamente. Si hay problemas, repórtalos." #: wireguard_tools/views.py:280 msgid "WireGuard reloaded|The WireGuard service has been reloaded." -msgstr "" +msgstr "WireGuard recargado|El servicio WireGuard se ha recargado." #: wireguard_tools/views.py:282 msgid "WireGuard restarted|The WireGuard service has been restarted." -msgstr "" +msgstr "WireGuard reiniciado|El servicio WireGuard se ha reiniciado." #: wireguard_tools/views.py:285 msgid "Errors encountered|Error processing one or more interfaces." -msgstr "" +msgstr "Errores encontrados|Error al procesar una o más interfaces." #: wireguard_tools/views.py:288 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" +"No se encontraron interfaces|No hay interfaces WireGuard para procesar."