Translated using Weblate (Russian)
[oweals/luci.git] / applications / luci-app-firewall / po / es / firewall.po
index c7e9aa2bcd4e8b67391341d85cdff408502c85d9..d15b8ef7362c397f650765da272c56af03948efd 100644 (file)
@@ -3,109 +3,230 @@ msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2019-05-16 22:32-0300\n"
-"Last-Translator: José Vicente <josevteg@gmail.com>\n"
+"PO-Revision-Date: 2020-01-19 20:38+0000\n"
+"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
+"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
+"luciapplicationsfirewall/es/>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.2.2\n"
-"Language-Team: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:127
-msgid "%s in %s"
-msgstr "%s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr "-- añadir IP --"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr "-- añadir MAC"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:154
-msgid "%s%s with %s"
-msgstr "%s%s con %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:125
-msgid "%s, %s in %s"
-msgstr "%s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:26
-msgid "(Unnamed Entry)"
-msgstr "(Entrada sin nombre)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:169
-msgid "(Unnamed Rule)"
-msgstr "(Regla sin nombre)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:37
-msgid "(Unnamed SNAT)"
-msgstr "(SNAT sin nombre)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:195
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paquetes por <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:192
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
 msgstr ""
-"<var>%d</var> paquetes por <var>%s</var>, máximo <var>%d</var> paquetes."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:180
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> y limitar a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:214
-msgid "Accept forward"
-msgstr "Aceptar reenvío"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:224
-msgid "Accept input"
-msgstr "Aceptar entrada"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:224
+msgid "A rewrite IP must be specified!"
+msgstr "¡Se debe especificar una IP de reescritura!"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:204
-msgid "Accept output"
-msgstr "Aceptar salida"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:212
+msgid "ACCEPT - Disable address rewriting"
+msgstr "ACEPTAR - Desactivar reescritura de direcciones"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:322
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
 msgid "Action"
 msgstr "Acción"
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:68
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:31
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:69
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:58
-msgid "Add"
-msgstr "Añadir"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:64
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:53
-msgid "Add and edit..."
-msgstr "Añadir y editar..."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:257
+msgid ""
+"Additional raw <em>iptables</em> arguments to classify zone destination "
+"traffic, e.g. <code>-p tcp --dport 443</code> to only match outbound HTTPS "
+"traffic."
+msgstr ""
+"Argumentos sin procesar adicionales de <em>iptables</em> para clasificar el "
+"tráfico de destino de la zona, p.e. <code>-p tcp --dport 443</code> para que "
+"solo coincida con el tráfico HTTPS saliente."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:247
+msgid ""
+"Additional raw <em>iptables</em> arguments to classify zone source traffic, "
+"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
+msgstr ""
+"Argumentos sin procesar adicionales de <em>iptables</em> para clasificar el "
+"tráfico de origen de zona, p.e. <code>-p tcp --sport 443</code> para que "
+"solo coincida con el tráfico HTTPS entrante."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:137
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:86
 msgid "Advanced Settings"
 msgstr "Configuración avanzada"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:178
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:219
+msgid "Allow \"invalid\" traffic"
+msgstr "Permitir tráfico \"inválido\""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:319
 msgid "Allow forward from <em>source zones</em>:"
 msgstr "Permitir reenvío desde <em>zonas de origen</em>:"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:278
 msgid "Allow forward to <em>destination zones</em>:"
 msgstr "Permitir reenvío a <em>zonas de destino</em>:"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:191
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:89
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
 msgid "Any"
 msgstr "Cualquiera"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:429
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:445
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
+msgid "Any day"
+msgstr "Cualquier día"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
+msgid ""
+"Apply a bitwise XOR of the given value and the existing mark value on "
+"established connections. Format is value[/mask]. If a mask is specified then "
+"those bits set in the mask are zeroed out."
+msgstr ""
+"Aplique un XOR bit a bit del valor dado y el valor de marca existente en las "
+"conexiones establecidas. El formato es el valor [/ máscara]. Si se "
+"especifica una máscara, esos bits establecidos en la máscara se ponen a cero."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+msgid "Apply the given DSCP class or value to established connections."
+msgstr "Aplique la clase o valor DSCP dado a las conexiones establecidas."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+msgid "Assign the specified connection tracking helper to matched traffic."
+msgstr ""
+"Asigne el asistente de seguimiento de conexión especificado al tráfico "
+"coincidente."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:222
+msgid "Automatic helper assignment"
+msgstr "Asignación automática de ayuda"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:222
+msgid ""
+"Automatically assign conntrack helpers based on traffic protocol and port"
+msgstr ""
+"Asigna automáticamente ayudantes de conntrack según el protocolo de tráfico "
+"y el puerto"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:87
+msgid "Conntrack Settings"
+msgstr "Configuraciones de Conntrack"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:226
+msgid "Conntrack helpers"
+msgstr "Ayudantes de Conntrack"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:15
+msgid "Contents have been saved."
+msgstr "Los contenidos han sido guardados."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:650
+msgid "Continue"
+msgstr "Continuar"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:189
+msgid "Covered devices"
+msgstr "Interfaces cubiertas"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:145
 msgid "Covered networks"
 msgstr "Redes cubiertas"
 
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:22
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
+msgid "Covered subnets"
+msgstr "Subredes cubiertas"
+
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:53
 msgid "Custom Rules"
 msgstr "Reglas personalizadas"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:8
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:25
 msgid ""
 "Custom rules allow you to execute arbitrary iptables commands which are not "
 "otherwise covered by the firewall framework. The commands are executed after "
@@ -116,287 +237,341 @@ msgstr ""
 "cualquier reinicio del FIrewall, justo tras haber cargado el conjunto de "
 "reglas predeterminadas."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:108
-msgid "Destination IP address"
-msgstr "Dirección IP destino"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+msgid "DSCP classification"
+msgstr "Clasificación DSCP"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
+msgid "DSCP mark"
+msgstr "Marca DSCP"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
+msgid "DSCP mark required"
+msgstr "Marca DSCP requerida"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:304
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:354
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:193
 msgid "Destination address"
 msgstr "Dirección de destino"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:117
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:313
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
 msgid "Destination port"
 msgstr "Puerto de destino"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:102
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:295
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:42
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:21
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
 msgid "Destination zone"
 msgstr "Zona de destino"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:242
-msgid "Disable"
-msgstr "Deshabilitar"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:220
-msgid "Discard forward"
-msgstr "Descartar reenvío"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:230
-msgid "Discard input"
-msgstr "Descartar entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:210
-msgid "Discard output"
-msgstr "Descartar salida"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:151
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:45
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:50
-msgid "Do not rewrite"
-msgstr "No reescribir"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
+msgid "Device name"
+msgstr "Nombre del dispositivo"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:218
-msgid "Do not track forward"
-msgstr "No seguir reenvío"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:228
-msgid "Do not track input"
-msgstr "No seguir entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:208
-msgid "Do not track output"
-msgstr "No seguir salida"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:219
+msgid ""
+"Do not install extra rules to reject forwarded traffic with conntrack state "
+"<em>invalid</em>. This may be required for complex asymmetric route setups."
+msgstr ""
+"No instale reglas adicionales para rechazar el tráfico reenviado con el "
+"estado conntrack <em>inválido</em>. Esto puede ser necesario para "
+"configuraciones complejas de rutas asimétricas."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:22
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:44
 msgid "Drop invalid packets"
 msgstr "Descartar paquetes inválidos"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:131
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:270
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:246
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:180
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
 msgid "Enable"
-msgstr "Habilitar"
+msgstr "Activar"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
 msgid "Enable NAT Loopback"
-msgstr "Habilitar bucle NAT"
+msgstr "Activar bucle NAT"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:20
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:43
 msgid "Enable SYN-flood protection"
-msgstr "Habilitar protección contra inundaciones SYN"
+msgstr "Activar protección contra inundaciones SYN"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:144
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:232
 msgid "Enable logging on this zone"
-msgstr "Habilitar registro en esta zona"
+msgstr "Activar registro en esta zona"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
+msgid "Expecting: %s"
+msgstr "Esperando: %s"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:43
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:62
 msgid "Experimental feature. Not fully compatible with QoS/SQM."
 msgstr "Característica experimental. No es totalmente compatible con QoS/SQM."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:98
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:226
+msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
+msgstr ""
+"Elige explícitamente los ayudantes de seguimiento de conexión permitidos "
+"para el tráfico de zona"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:214
 msgid "External IP address"
 msgstr "Dirección IP externa"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:111
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:28
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:12
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
 msgid "External port"
 msgstr "Puerto externo"
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:27
-msgid "External zone"
-msgstr "Zona externa"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:158
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:283
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:248
 msgid "Extra arguments"
-msgstr "Parámetros extra"
+msgstr "Argumentos extra"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:257
+msgid "Extra destination arguments"
+msgstr "Argumentos de destino adicionales"
 
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:6
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
+msgid "Extra iptables arguments"
+msgstr "Argumentos adicionales de iptables"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:247
+msgid "Extra source arguments"
+msgstr "Argumentos fuente adicionales"
+
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:3
 msgid "Firewall"
 msgstr "Firewall"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:7
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:24
 msgid "Firewall - Custom Rules"
 msgstr "Firewall - Reglas personalizadas"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:13
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:8
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
+msgid "Firewall - NAT Rules"
+msgstr "Firewall - Reglas de NAT"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
 msgid "Firewall - Port Forwards"
-msgstr "Firewall - Reenvíos de puertos"
+msgstr "Firewall - Reenvío de puertos"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:12
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:42
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:172
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:9
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
 msgid "Firewall - Traffic Rules"
 msgstr "Firewall - Reglas de tráfico"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:15
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:28
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:11
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
 msgid "Firewall - Zone Settings"
 msgstr "Firewall - Configuración de la zona"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:141
-msgid "Force connection tracking"
-msgstr "Forzar seguimiento de conexión"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:643
+msgid "Firewall configuration migration"
+msgstr "Migración de configuración de Firewall"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:76
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:27
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:92
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:49
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:125
 msgid "Forward"
 msgstr "Reenviar"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:116
-msgid "Forward to"
-msgstr "Reenviar a"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:343
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:263
 msgid "Friday"
 msgstr "Viernes"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:106
-msgid "From %s in %s"
-msgstr "Desde %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:88
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:104
-msgid "From %s in %s with source %s"
-msgstr "Desde %s en %s con origen %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:102
-msgid "From %s in %s with source %s and %s"
-msgstr "Desde %s en %s con origen %s y %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:117
-msgid "From %s on <var>this device</var>"
-msgstr "Desde %s en <var>este dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:115
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Desde %s en <var>este dispositivo</var> con la fuente %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:113
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "De %s en <var>este dispositivo</var> con la fuente %s y %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:10
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:56
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:16
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:180
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:85
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
 msgid "General Settings"
 msgstr "Configuración general"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:51
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:73
 msgid "Hardware flow offloading"
-msgstr "Flow Offloading por hardware"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:75
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:83
-msgid "IP range"
-msgstr "Rango de IP"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:100
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:85
-msgid "IPv4"
-msgstr "IPv4"
+msgstr "Descarga de flujo por hardware"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:185
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:118
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:271
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:200
 msgid "IPv4 and IPv6"
 msgstr "IPv4 e IPv6"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:186
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:119
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:201
 msgid "IPv4 only"
 msgstr "Sólo IPv4"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:87
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:187
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:120
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:273
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:202
 msgid "IPv6 only"
 msgstr "Sólo IPv6"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:25
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:90
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:243
+msgid "Inbound device"
+msgstr "Dispositivo de entrada"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
 msgid "Input"
 msgstr "Entrada"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:157
-msgid "Inter-Zone Forwarding"
-msgstr "Reenvío entre zonas"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:127
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:30
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:233
 msgid "Internal IP address"
 msgstr "Dirección IP interna"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:138
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:31
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:238
 msgid "Internal port"
 msgstr "Puerto interno"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:121
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:29
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:227
 msgid "Internal zone"
 msgstr "Zona interna"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:150
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
+msgid "Invalid DSCP mark"
+msgstr "Marca DSCP inválida"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+msgid "Invalid limit value"
+msgstr "Valor límite no válido"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
+msgid "Limit burst"
+msgstr "Límite de ráfaga"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:235
 msgid "Limit log messages"
 msgstr "Limitar registro de mensajes"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:31
-msgid "MAC"
-msgstr "MAC"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
+msgid "Limit matching"
+msgstr "Limitar coincidencia"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:40
-msgid "MACs"
-msgstr "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
+msgstr "Limita el tráfico que coincide con la velocidad especificada."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:252
+msgid "Loopback source IP"
+msgstr "IP de origen de bucle invertido"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:211
+msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
+msgstr "MASQUERADE - Reescribe automáticamente a la interfaz IP saliente"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:102
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:142
 msgid "MSS clamping"
 msgstr "Fijado de MSS"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:85
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:139
 msgid "Masquerading"
 msgstr "Enmascaramiento"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:105
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:162
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:161
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:217
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:146
 msgid "Match"
 msgstr "Coincidir"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:206
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
+msgid "Match DSCP"
+msgstr "Coincidir DSCP"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:284
 msgid "Match ICMP type"
 msgstr "Coincidir con tipo ICMP"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:118
-msgid "Match forwarded traffic to the given destination port or port range."
-msgstr "Coincidir con tráfico reenviado al puerto o rango de puertos destino."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
+msgid "Match device"
+msgstr "Dispositivo de coincidencia"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
+msgid "Match forwarded traffic directed at the given IP address."
+msgstr "Haga coincidir el tráfico reenviado dirigido a la dirección IP dada."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
+msgid ""
+"Match forwarded traffic directed at the given destination port or port range."
+msgstr ""
+"Haga coincidir el tráfico reenviado dirigido al puerto de destino o rango de "
+"puertos dados."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:180
+msgid "Match forwarded traffic from this IP or range."
+msgstr "Haga coincidir el tráfico reenviado desde esta IP o rango."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:112
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
+msgid ""
+"Match forwarded traffic originating from the given source port or port range."
+msgstr ""
+"Haga coincidir el tráfico reenviado que se origina en el puerto fuente o "
+"rango de puertos dados."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+msgid "Match helper"
+msgstr "Ayudante de partido"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:220
 msgid ""
 "Match incoming traffic directed at the given destination port or port range "
 "on this host"
@@ -404,68 +579,85 @@ msgstr ""
 "Coincidir con tráfico de entrada dirigido al puerto o rango de puertos "
 "destino en este host"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:91
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
+msgid "Match mark"
+msgstr "Marca de partido"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+msgid "Match traffic using the specified connection tracking helper."
+msgstr ""
+"Haga coincidir el tráfico con el ayudante de seguimiento de conexión "
+"especificado."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+msgid "Matches a specific firewall mark or a range of different marks."
+msgstr ""
+"Coincide con una marca de firewall específica o un rango de marcas "
+"diferentes."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+msgid "Matches forwarded traffic using the specified outbound network device."
+msgstr ""
+"Coincide con el tráfico reenviado utilizando el dispositivo de red saliente "
+"especificado."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+msgid "Matches traffic carrying the specified DSCP marking."
+msgstr "Coincide con el tráfico que lleva la marca DSCP especificada."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
 msgid ""
-"Match incoming traffic originating from the given source port or port range "
-"on the client host."
+"Maximum initial number of packets to match: this number gets recharged by "
+"one every time the limit specified above is not reached, up to this number."
 msgstr ""
-"Haga coincidir el tráfico entrante que se origina en el puerto de origen o "
-"el rango de puertos en el host del cliente."
+"Número inicial máximo de paquetes que deben coincidir: este número se "
+"recarga en uno cada vez que no se alcanza el límite especificado "
+"anteriormente, hasta este número."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:339
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:259
 msgid "Monday"
 msgstr "Lunes"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:441
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
 msgid "Month Days"
 msgstr "Días del mes"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:36
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:50
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:180
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:60
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:25
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:10
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:40
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:19
-msgid "Name"
-msgstr "Nombre"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:28
-msgid "New SNAT rule"
-msgstr "Nueva regla SNAT"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:37
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:47
-msgid "New forward rule"
-msgstr "Nueva regla de reenvío"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:129
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
+msgid "NAT Rules"
+msgstr "Reglas NAT"
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:17
-msgid "New input rule"
-msgstr "Nueva regla de entrada"
-
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:22
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:36
-msgid "New port forward"
-msgstr "Nuevo reenvío de puerto"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
+msgid ""
+"NAT rules allow fine grained control over the source IP to use for outbound "
+"or forwarded traffic."
+msgstr ""
+"Las reglas de NAT permiten un control detallado sobre la IP de origen para "
+"el tráfico saliente o reenviado."
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:16
-msgid "New source NAT"
-msgstr "Nuevo origen NAT"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:213
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:142
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:101
+msgid "Name"
+msgstr "Nombre"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:99
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:215
 msgid "Only match incoming traffic directed at the given IP address."
 msgstr "Coincidir sólo con tráfico de entrada a esta dirección IP."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:63
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:196
 msgid "Only match incoming traffic from these MACs."
 msgstr "Coincidir sólo con tráfico de entrada desde estas MACs."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:75
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:201
 msgid "Only match incoming traffic from this IP or range."
 msgstr "Coincidir sólo con tráfico de entrada desde esta IP o rango."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:87
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
 msgid ""
 "Only match incoming traffic originating from the given source port or port "
 "range on the client host"
@@ -473,37 +665,47 @@ msgstr ""
 "Solo coincida con el tráfico entrante que se origina desde el puerto de "
 "origen o el rango de puertos en el host del cliente"
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:7
-msgid "Open ports on router"
-msgstr "Abrir puertos en el router"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:244
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
+msgid "Outbound device"
+msgstr "Dispositivo saliente"
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:43
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:24
-msgid "Other..."
-msgstr "Otros..."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
+msgid "Outbound zone"
+msgstr "Zona de salida"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:75
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:26
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:91
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:124
 msgid "Output"
 msgstr "Salida"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:288
-msgid "Output zone"
-msgstr "Zona de salida"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:159
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:160
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
 msgid "Passes additional arguments to iptables. Use with care!"
-msgstr "Agrega más parámetros a iptables. ¡Utilice con cuidado!"
+msgstr "Ingrese argumentos adicionales a iptables. ¡Utilícelo con cuidado!"
 
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:14
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:17
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:244
+msgid ""
+"Passing raw iptables arguments to source and destination traffic "
+"classification rules allows to match packets based on other criteria than "
+"interfaces or subnets. These options should be used with extreme care as "
+"invalid values could render the firewall ruleset broken, completely exposing "
+"all services."
+msgstr ""
+"Pasar argumentos de iptables sin procesar a las reglas de clasificación de "
+"tráfico de origen y destino permite hacer coincidir paquetes basados en "
+"otros criterios que no sean interfaces o subredes. Estas opciones se deben "
+"usar con extremo cuidado, ya que los valores inválidos pueden hacer que el "
+"conjunto de reglas del firewall se rompa, exponiendo completamente todos los "
+"servicios."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:131
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
 msgid "Port Forwards"
-msgstr "Reenvíos de puertos"
+msgstr "Reenvío de puertos"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:9
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
 msgid ""
 "Port forwarding allows remote computers on the Internet to connect to a "
 "specific computer or service within the private LAN."
@@ -511,175 +713,170 @@ msgstr ""
 "El reenvío de puertos permite a ordenadores remotos en internet conectar a "
 "un ordenador o servicio específico en la LAN privada."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:39
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:190
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm:26
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:11
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:185
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:168
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:139
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
 msgid ""
 "Redirect matched incoming traffic to the given port on the internal host"
 msgstr ""
 "Redirigir el tráfico de entrada que coincida al puerto dado en el host "
 "interno"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr ""
 "Redirigir el tráfico de entrada que coincida al host interno especificado"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:216
-msgid "Refuse forward"
-msgstr "Rechazar reenvío"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:226
-msgid "Refuse input"
-msgstr "Rechazar entrada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:206
-msgid "Refuse output"
-msgstr "Rechazar salida"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:52
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:74
 msgid "Requires hardware NAT support. Implemented at least for mt7621"
 msgstr ""
 "Requiere soporte de NAT por hardware. Implementado al menos para mt7621"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/custom.lua:29
-msgid "Restart Firewall"
-msgstr "Reiniciar Firewall"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:132
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:212
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Restringir enmascaramiento a las subredes destino"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:123
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:205
 msgid "Restrict Masquerading to given source subnets"
 msgstr "Restringir enmascaramiento a las subredes origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:183
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:115
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:199
 msgid "Restrict to address family"
 msgstr "Restringir a la familia de direcciones"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:132
-msgid "Rewrite matched traffic to the given address."
-msgstr "Reescribir el tráfico que coincida a estas direcciones."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+msgid "Rewrite IP address"
+msgstr "Reescribir dirección IP"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:147
-msgid ""
-"Rewrite matched traffic to the given source port. May be left empty to only "
-"rewrite the IP address."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+msgid "Rewrite matched traffic to the specified source IP address."
 msgstr ""
-"Reescribir el tráfico que coincida con este puerto origen. Deje en blanco "
-"para reescribir sólo la dirección IP."
+"Reescribe el tráfico coincidente a la dirección IP de origen especificada."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:266
-msgid "Rewrite to source %s"
-msgstr "Reescribir a origen %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
+msgid "Rewrite matched traffic to the specified source port or port range."
+msgstr ""
+"Reescribe el tráfico coincidente al puerto de origen o rango de puertos "
+"especificados."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:264
-msgid "Rewrite to source %s, %s"
-msgstr "Reescribir a origen %s, %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:229
+msgid "Rewrite port"
+msgstr "Reescribir puerto"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:42
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:61
 msgid "Routing/NAT Offloading"
 msgstr "Enrutamiento/NAT Offloading"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:245
-msgid "Rule is disabled"
-msgstr "Regla deshabilitada"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:241
-msgid "Rule is enabled"
-msgstr "Regla habilitada"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:131
-msgid "SNAT IP address"
-msgstr "Dirección IP SNAT"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:210
+msgid "SNAT - Rewrite to specific source IP or port"
+msgstr "SNAT - Reescribe a una fuente específica IP o puerto"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:146
-msgid "SNAT port"
-msgstr "Puerto SNAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:344
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:264
 msgid "Saturday"
 msgstr "Sábado"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:47
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
+msgid "Set mark"
+msgstr "Establecer marca"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+msgid ""
+"Set the given mark value on established connections. Format is value[/mask]. "
+"If a mask is specified then only those bits set in the mask are modified."
+msgstr ""
+"Establezca el valor de marca dado en las conexiones establecidas. El formato "
+"es el valor [/máscara]. Si se especifica una máscara, sólo se modifican los "
+"bits establecidos en la máscara."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:69
 msgid "Software based offloading for routing/NAT"
-msgstr "Offloading basado en software para enrutamiento/NAT"
+msgstr "Descarga basada en software para enrutamiento/NAT"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:46
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:68
 msgid "Software flow offloading"
-msgstr "Flow Offloading por software"
+msgstr "Descarga de flujo por software"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:74
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:79
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:200
 msgid "Source IP address"
-msgstr "Dirección IP origen"
+msgstr "Dirección IP de origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:62
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:338
 msgid "Source MAC address"
-msgstr "Dirección MAC origen"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:194
-msgid "Source NAT"
-msgstr "Origen NAT"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:195
-msgid ""
-"Source NAT is a specific form of masquerading which allows fine grained "
-"control over the source IP used for outgoing traffic, for example to map "
-"multiple WAN addresses to internal subnets."
-msgstr ""
-"Origen NAT es una forma específica de enmascaramiento que permite el control "
-"fino del origen IP que se usa en el tráfico de salida por ejemplo para "
-"dirigir múltiples direcciones WAN a las subredes internas."
+msgstr "Dirección MAC de origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:339
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:179
 msgid "Source address"
 msgstr "Dirección de origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:86
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
 msgid "Source port"
 msgstr "Puerto de origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:54
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:73
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:254
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm:41
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:20
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:189
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:332
 msgid "Source zone"
 msgstr "Zona de origen"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:261
+msgid ""
+"Specifies whether to tie this traffic rule to a specific inbound or outbound "
+"network device."
+msgstr ""
+"Especifica si se debe vincular esta regla de tráfico a un dispositivo de red "
+"entrante o saliente específico."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:252
+msgid ""
+"Specifies whether to use the external or the internal IP address for "
+"reflected traffic."
+msgstr ""
+"Especifica si se debe usar la dirección IP externa o interna para el tráfico "
+"reflejado."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
 msgid "Start Date (yyyy-mm-dd)"
 msgstr "Fecha de inicio (aaaa-mm-dd)"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:353
-msgid "Start Time (hh:mm:ss)"
-msgstr "Hora de inicio (hh:mm:ss)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+msgid "Start Time (hh.mm.ss)"
+msgstr "Hora de inicio (hh.mm.ss)"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:359
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:464
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:292
 msgid "Stop Date (yyyy-mm-dd)"
 msgstr "Fecha de finalización (aaaa-mm-dd)"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:355
-msgid "Stop Time (hh:mm:ss)"
-msgstr "Hora de finalización (hh:mm:ss)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
+msgid "Stop Time (hh.mm.ss)"
+msgstr "Hora de finalización (hh.mm.ss)"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:338
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:430
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:258
 msgid "Sunday"
 msgstr "Domingo"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:12
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:644
+msgid ""
+"The existing firewall configuration needs to be changed for LuCI to function "
+"properly."
+msgstr ""
+"La configuración de firewall existente debe cambiarse para que LuCI funcione "
+"correctamente."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:37
 msgid ""
 "The firewall creates zones over your network interfaces to control network "
 "traffic flow."
@@ -687,7 +884,8 @@ msgstr ""
 "El Firewall crea zonas sobre sus interfaces de red para controlar el flujo "
 "del tráfico."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:158
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:185
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:274
 msgid ""
 "The options below control the forwarding policies between this zone (%s) and "
 "other zones. <em>Destination zones</em> cover forwarded traffic "
@@ -698,29 +896,13 @@ msgid ""
 msgstr ""
 "Estas opciones controlan las políticas de reenvío entre esta zona (%s) y "
 "otras. <em>Las zonas de origen</em> cubren el tráfico reenviado desde "
-"<strong>%q</strong>. <em>Las zonas origen</em> coinciden con el tráfico "
+"<strong>%q</strong>. <em>Las zonas de origen</em> coinciden con el tráfico "
 "reenviado desde otras zonas dirigido a <strong>%q</strong>. La regla de "
 "reenvío es <em>unidireccional</em>, por ejemplo una regla de reenvío desde "
 "la LAN a la WAN <em>no</em> implica permiso para reenviar desde la WAN a la "
 "LAN también."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:14
-msgid ""
-"This page allows you to change advanced properties of the port forwarding "
-"entry. In most cases there is no need to modify those settings."
-msgstr ""
-"Propiedades avanzadas de la entrada \"reenvío de puertos\". No suele ser "
-"necesario modificar esta configuración."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:13
-msgid ""
-"This page allows you to change advanced properties of the traffic rule "
-"entry, such as matched source and destination hosts."
-msgstr ""
-"Esta página le permite cambiar las propiedades avanzadas de la entrada de la "
-"regla de tráfico, como los hosts de origen y destino coincidentes."
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:36
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:97
 msgid ""
 "This section defines common properties of %q. The <em>input</em> and "
 "<em>output</em> options set the default policies for traffic entering and "
@@ -735,46 +917,57 @@ msgstr ""
 "<em>Redes cubiertas</em> especifican qué redes disponibles son miembros de "
 "esta zona."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:342
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:434
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
 msgid "Thursday"
 msgstr "Jueves"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:362
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:136
+msgid "Time Restrictions"
+msgstr "Restricciones de tiempo"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:468
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:296
 msgid "Time in UTC"
 msgstr "Tiempo en UTC"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:141
-msgid "To %s at %s on <var>this device</var>"
-msgstr "A %s en %s por <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:132
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:157
-msgid "To %s in %s"
-msgstr "A %s en %s"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:143
-msgid "To %s on <var>this device</var>"
-msgstr "A %s por <var>este dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:130
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:155
-msgid "To %s, %s in %s"
-msgstr "A %s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:22
-msgid "To source IP"
-msgstr "A IP origen"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
+msgid ""
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
 
-#: applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm:23
-msgid "To source port"
-msgstr "A puerto origen"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+msgid "Tracking helper"
+msgstr "Ayudante de seguimiento"
 
-#: applications/luci-app-firewall/luasrc/controller/firewall.lua:18
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:18
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:175
+#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
 msgid "Traffic Rules"
 msgstr "Reglas de tráfico"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:10
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
 msgid ""
 "Traffic rules define policies for packets traveling between different zones, "
 "for example to reject traffic between certain hosts or to open WAN ports on "
@@ -784,158 +977,536 @@ msgstr ""
 "diferentes zonas, por ejemplo, para rechazar el tráfico entre ciertos hosts "
 "o para abrir puertos WAN en el enrutador."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:340
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:432
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:260
 msgid "Tuesday"
 msgstr "Martes"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:244
-msgid "Unnamed SNAT"
-msgstr "SNAT sin nombre"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:18
+msgid "Unable to save contents: %s"
+msgstr "No se puede guardar el contenido: %s"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+msgid "Unknown or not installed conntrack helper \"%s\""
+msgstr "Ayudante de Conntrack desconocido o no instalado \"%s\""
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:139
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:143
+msgid "Unnamed NAT"
+msgstr "NAT sin nombre"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:144
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:158
 msgid "Unnamed forward"
 msgstr "Reenvío sin nombre"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:76
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:189
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
 msgid "Unnamed rule"
 msgstr "Regla sin nombre"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:101
-msgid "Via %s"
-msgstr "Vía %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:102
+msgid "Unnamed zone"
+msgstr "Zona sin nombre"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr "Protocolo no reconocido"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:645
+msgid ""
+"Upon pressing \"Continue\", \"redirect\" sections with target \"SNAT\" will "
+"be converted to \"nat\" sections and the firewall will be restarted to apply "
+"the updated configuration."
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:256
+msgid "Use external IP address"
+msgstr "Usar dirección IP externa"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+msgid "Use internal IP address"
+msgstr "Usar dirección IP interna"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:189
+msgid ""
+"Use this option to classify zone traffic by raw, non-<em>uci</em> managed "
+"network devices."
+msgstr ""
+"Use esta opción para clasificar el tráfico de zona por raw, dispositivos de "
+"red no administrados <em>uci</em>."
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
+msgid ""
+"Use this option to classify zone traffic by source or destination subnet "
+"instead of networks or devices."
+msgstr ""
+"Use esta opción para clasificar el tráfico de zona por subred de origen o "
+"destino en lugar de redes o dispositivos."
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:99
-msgid "Via %s at %s"
-msgstr "Vía %s a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
+msgid "Valid firewall mark required"
+msgstr "Se requiere una marca de firewall válida"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
 msgid "Wednesday"
 msgstr "Miércoles"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
 msgid "Week Days"
 msgstr "Días de la semana"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:55
-msgid ""
-"You may specify multiple by selecting \"-- custom --\" and then entering "
-"protocols separated by space."
-msgstr ""
-"Puede poner varios seleccionando \"-- personalizado --\" e introduciendo los "
-"protocolos separados por espacio."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:372
+msgid "XOR firewall mark"
+msgstr "Marca de firewall XOR"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:29
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:35
-msgid "Zone %q"
-msgstr "Zona %q"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
+msgid "XOR mark"
+msgstr "Marca XOR"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:83
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
 msgid "Zone ⇒ Forwardings"
 msgstr "Zona ⇒ Reenvíos"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:59
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:80
 msgid "Zones"
 msgstr "Zonas"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:325
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:33
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:98
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:55
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:131
 msgid "accept"
 msgstr "Aceptar"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:66
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:78
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:90
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:108
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua:141
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:82
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:122
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:263
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:272
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:281
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:306
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:210
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:242
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:289
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:400
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:189
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
 msgid "any"
 msgstr "cualquiera"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:120
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:100
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:128
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:150
-msgid "any host"
-msgstr "cualquier host"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:95
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:111
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:138
-msgid "any router IP"
-msgstr "cualquier router IP"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/forwards.lua:119
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:149
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:110
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
 msgid "any zone"
 msgstr "cualquier zona"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:189
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:371
+msgid "apply firewall mark"
+msgstr "aplicar marca de firewall"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:370
+msgid "assign conntrack helper"
+msgstr "asignar ayudante de Conntrack"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
 msgid "day"
 msgstr "Día"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:327
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:233
+msgid "do not rewrite"
+msgstr "no reescribir"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:369
 msgid "don't track"
 msgstr "No seguir"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:324
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:81
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:32
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:97
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:366
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:54
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:130
 msgid "drop"
 msgstr "Descartar"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
 msgid "hour"
 msgstr "Hora"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:185
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
 msgid "minute"
 msgstr "Minuto"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:20
-msgid "not"
-msgstr "No"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:50
-msgid "port"
-msgstr "Puerto"
-
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:55
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:65
-msgid "ports"
-msgstr "Puertos"
-
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua:326
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua:80
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:31
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua:96
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:129
 msgid "reject"
 msgstr "Rechazar"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:183
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
 msgid "second"
 msgstr "segundo"
 
-#: applications/luci-app-firewall/luasrc/model/cbi/firewall/rules.lua:82
-msgid "traffic"
-msgstr "Tráfico"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr "este dispositivo"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:96
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:184
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:273
+msgid "this new zone"
+msgstr "Esta nueva zona"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
+msgid "unlimited"
+msgstr "ilimitado"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:242
+msgid "unspecified"
+msgstr "sin especificar"
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
+msgid "valid firewall mark"
+msgstr "marca de firewall válida"
+
+#~ msgid "%s in %s"
+#~ msgstr "%s en %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s con %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s en %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> paquetes por <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> paquetes por <var>%s</var>, máximo <var>%d</var> paquetes."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> y limitar a %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Aceptar reenvío"
+
+#~ msgid "Accept input"
+#~ msgstr "Aceptar entrada"
+
+#~ msgid "Accept output"
+#~ msgstr "Aceptar salida"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Dirección IP destino"
+
+#~ msgid "Discard forward"
+#~ msgstr "Descartar reenvío"
+
+#~ msgid "Discard input"
+#~ msgstr "Descartar entrada"
+
+#~ msgid "Discard output"
+#~ msgstr "Descartar salida"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "No reescribir"
+
+#~ msgid "Do not track forward"
+#~ msgstr "No seguir reenvío"
+
+#~ msgid "Do not track input"
+#~ msgstr "No seguir entrada"
+
+#~ msgid "Do not track output"
+#~ msgstr "No seguir salida"
+
+#~ msgid "Forward to"
+#~ msgstr "Reenviar a"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Desde %s en %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Desde %s en %s con origen %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Desde %s en %s con origen %s y %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Desde %s en <var>este dispositivo</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Desde %s en <var>este dispositivo</var> con la fuente %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "De %s en <var>este dispositivo</var> con la fuente %s y %s"
+
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "Desde %{ipaddr?:cualquier host} %{puerto?con origen %{puerto}}"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Rango de IP"
+
+#~ msgid "IPs"
+#~ msgstr "IP"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC"
+
+#~ msgid ""
+#~ "Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+#~ msgstr ""
+#~ "Coincidir %{protocolo?%{familia} %{protocolo} tráfico:cualquiera "
+#~ "%{familia} tráfico} %{marco?con marco de firewall %{marco}}"
+
+#~ msgid "Network"
+#~ msgstr "Red"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Rechazar reenvío"
+
+#~ msgid "Refuse input"
+#~ msgstr "Rechazar entrada"
+
+#~ msgid "Refuse output"
+#~ msgstr "Rechazar salida"
+
+#~ msgid "Rewrite to"
+#~ msgstr "Reescribe a"
+
+#~ msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+#~ msgstr ""
+#~ "Reescribe a %{ipaddr?%{puerto?%{ipaddr}, %{puerto}:%{ipaddr}}:%{puerto}}"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Reescribir a la IP del dispositivo saliente"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "A %s en %s por <var>este dispositivo</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "A %s en %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "A %s por <var>este dispositivo</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "A %s, %s en %s"
+
+#~ msgid ""
+#~ "To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+#~ msgstr ""
+#~ "A %{ipaddr?:cualquier destino} %{puerto?a %{puerto}} %{zona?via zona "
+#~ "%{zona}} %{dispositivo?dispositivo de salida %{dispositivo}}"
+
+#~ msgid "Via %s"
+#~ msgstr "Vía %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Vía %s a %s"
+
+#~ msgid "any host"
+#~ msgstr "cualquier host"
+
+#~ msgid "any router IP"
+#~ msgstr "cualquier router IP"
+
+#~ msgid "not"
+#~ msgstr "No"
+
+#~ msgid "port"
+#~ msgstr "puerto"
+
+#~ msgid "ports"
+#~ msgstr "puertos"
+
+#~ msgid "type"
+#~ msgstr "Tipo"
+
+#~ msgid "types"
+#~ msgstr "Tipos"
+
+#~ msgid "Force connection tracking"
+#~ msgstr "Forzar seguimiento de conexión"
+
+#~ msgid ""
+#~ "Prevent the installation of <em>NOTRACK</em> rules which would bypass "
+#~ "connection tracking."
+#~ msgstr ""
+#~ "Evite la instalación de reglas <em>NOTRACK</em> que evitarían el "
+#~ "seguimiento de la conexión."
+
+#~ msgid "Disable"
+#~ msgstr "Desactivar"
+
+#~ msgid "Restart Firewall"
+#~ msgstr "Reiniciar Firewall"
+
+#~ msgid "Rule is disabled"
+#~ msgstr "Regla desactivada"
+
+#~ msgid "Rule is enabled"
+#~ msgstr "Regla activada"
+
+#~ msgid "Add"
+#~ msgstr "Añadir"
+
+#~ msgid "Add and edit..."
+#~ msgstr "Añadir y editar..."
+
+#~ msgid "External zone"
+#~ msgstr "Zona externa"
+
+#~ msgid "New SNAT rule"
+#~ msgstr "Nueva regla SNAT"
+
+#~ msgid "New forward rule"
+#~ msgstr "Nueva regla de reenvío"
+
+#~ msgid "New input rule"
+#~ msgstr "Nueva regla de entrada"
+
+#~ msgid "New port forward"
+#~ msgstr "Nuevo reenvío de puerto"
+
+#~ msgid "New source NAT"
+#~ msgstr "Nuevo origen NAT"
+
+#~ msgid "Open ports on router"
+#~ msgstr "Abrir puertos en el router"
+
+#~ msgid "Other..."
+#~ msgstr "Otros..."
+
+#~ msgid "To source IP"
+#~ msgstr "A IP origen"
+
+#~ msgid "To source port"
+#~ msgstr "A puerto origen"
+
+#~ msgid "Output zone"
+#~ msgstr "Zona de salida"
+
+#~ msgid "(Unnamed Entry)"
+#~ msgstr "(Entrada sin nombre)"
+
+#~ msgid "(Unnamed Rule)"
+#~ msgstr "(Regla sin nombre)"
+
+#~ msgid "(Unnamed SNAT)"
+#~ msgstr "(SNAT sin nombre)"
+
+#~ msgid "Inter-Zone Forwarding"
+#~ msgstr "Reenvío entre zonas"
+
+#~ msgid "Match forwarded traffic to the given destination port or port range."
+#~ msgstr ""
+#~ "Coincidir con tráfico reenviado al puerto o rango de puertos destino."
+
+#~ msgid ""
+#~ "Match incoming traffic originating from the given source port or port "
+#~ "range on the client host."
+#~ msgstr ""
+#~ "Haga coincidir el tráfico entrante que se origina en el puerto de origen "
+#~ "o el rango de puertos en el host del cliente."
+
+#~ msgid "Rewrite matched traffic to the given address."
+#~ msgstr "Reescribir el tráfico que coincida a estas direcciones."
+
+#~ msgid ""
+#~ "Rewrite matched traffic to the given source port. May be left empty to "
+#~ "only rewrite the IP address."
+#~ msgstr ""
+#~ "Reescribir el tráfico que coincida con este puerto origen. Deje en blanco "
+#~ "para reescribir sólo la dirección IP."
+
+#~ msgid "Rewrite to source %s"
+#~ msgstr "Reescribir a origen %s"
+
+#~ msgid "Rewrite to source %s, %s"
+#~ msgstr "Reescribir a origen %s, %s"
+
+#~ msgid "SNAT IP address"
+#~ msgstr "Dirección IP SNAT"
+
+#~ msgid "SNAT port"
+#~ msgstr "Puerto SNAT"
+
+#~ msgid "Source NAT"
+#~ msgstr "Origen NAT"
+
+#~ msgid ""
+#~ "Source NAT is a specific form of masquerading which allows fine grained "
+#~ "control over the source IP used for outgoing traffic, for example to map "
+#~ "multiple WAN addresses to internal subnets."
+#~ msgstr ""
+#~ "Origen NAT es una forma específica de enmascaramiento que permite el "
+#~ "control fino del origen IP que se usa en el tráfico de salida por ejemplo "
+#~ "para dirigir múltiples direcciones WAN a las subredes internas."
+
+#~ msgid "Start Time (hh:mm:ss)"
+#~ msgstr "Hora de inicio (hh:mm:ss)"
+
+#~ msgid "Stop Time (hh:mm:ss)"
+#~ msgstr "Hora de finalización (hh:mm:ss)"
+
+#~ msgid ""
+#~ "This page allows you to change advanced properties of the port forwarding "
+#~ "entry. In most cases there is no need to modify those settings."
+#~ msgstr ""
+#~ "Propiedades avanzadas de la entrada \"reenvío de puertos\". No suele ser "
+#~ "necesario modificar esta configuración."
+
+#~ msgid ""
+#~ "This page allows you to change advanced properties of the traffic rule "
+#~ "entry, such as matched source and destination hosts."
+#~ msgstr ""
+#~ "Esta página le permite cambiar las propiedades avanzadas de la entrada de "
+#~ "la regla de tráfico, como los hosts de origen y destino coincidentes."
+
+#~ msgid "Unnamed SNAT"
+#~ msgstr "SNAT sin nombre"
+
+#~ msgid ""
+#~ "You may specify multiple by selecting \"-- custom --\" and then entering "
+#~ "protocols separated by space."
+#~ msgstr ""
+#~ "Puede poner varios seleccionando \"-- personalizado --\" e introduciendo "
+#~ "los protocolos separados por espacio."
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:121
-msgid "type"
-msgstr "Tipo"
+#~ msgid "Zone %q"
+#~ msgstr "Zona %q"
 
-#: applications/luci-app-firewall/luasrc/tools/firewall.lua:130
-msgid "types"
-msgstr "Tipos"
+#~ msgid "traffic"
+#~ msgstr "Tráfico"