Compare commits

...
2 Commits
Author SHA1 Message Date
github-actions[bot] 22565d103c 🌴 Sync 2026-09-01 11:16:04 2026-09-01 11:16:04 +08:00
github-actions[bot] 22285ed654 Sync 2026-09-01 05:29:46 2026-09-01 05:29:46 +08:00
30 changed files with 2977 additions and 3205 deletions
+2 -2
View File
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_BAIDUDRIVE:=$(ARCH)
PKG_NAME:=baidudrive
PKG_VERSION:=dockermanager-runtime-v0.1.1
PKG_RELEASE:=16
PKG_VERSION:=linkeasefull-runtime-v3.0.15
PKG_RELEASE:=17
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/baidudrive-runtime-v$(PKG_VERSION)/
PKG_HASH:=skip
+2 -2
View File
@@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_DOCKERMANAGER:=$(ARCH)
PKG_NAME:=dockermanager
PKG_VERSION:=dockermanager-runtime-v0.1.1
PKG_RELEASE:=2
PKG_VERSION:=linkeasefull-runtime-v3.0.15
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/dockermanager-runtime-v$(PKG_VERSION)/
PKG_HASH:=skip
+2 -2
View File
@@ -8,8 +8,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=grpcurl
PKG_VERSION:=1.9.3
PKG_RELEASE:=6
PKG_VERSION:=1.9.4
PKG_RELEASE:=7
PKG_SOURCE:=v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/fullstorydev/grpcurl/archive/refs/tags/
+2 -2
View File
@@ -11,8 +11,8 @@ PKG_ARCH_ISTOREENHANCE:=$(ARCH)
PKG_NAME:=istoreenhance
# use PKG_SOURCE_DATE instead of PKG_VERSION for compitable
PKG_SOURCE_DATE:=0.7.16
PKG_RELEASE:=6
PKG_SOURCE_DATE:=0.7.17
PKG_RELEASE:=7
ARCH_HEXCODE:=
ifeq ($(ARCH),x86_64)
ARCH_HEXCODE=8664
+2 -2
View File
@@ -27,9 +27,9 @@
"host": "127.0.0.1",
"portFromUci": "istoreenhance.@istoreenhance[0].adminport",
"defaultPort": 5003,
"upstreamBasePath": "/apps/kspeeder/",
"upstreamBasePath": "/",
"apiPath": "api/",
"pathMode": "preserve"
"pathMode": "strip-public-base"
},
"window": {
"width": 1040,
+2 -2
View File
@@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_kaiplus:=$(ARCH)
PKG_NAME:=kaiplus
PKG_VERSION:=dockermanager-runtime-v0.1.1
PKG_RELEASE:=6
PKG_VERSION:=linkeasefull-runtime-v3.0.15
PKG_RELEASE:=7
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/kaiplus-runtime-v$(PKG_VERSION)/
PKG_HASH:=skip
+2 -2
View File
@@ -12,7 +12,7 @@ PKG_ARCH_LINKEASE:=$(ARCH)
PKG_NAME:=linkease-common-bin
# use PKG_SOURCE_DATE instead of PKG_VERSION for compitable
PKG_SOURCE_DATE:=1.7.5
PKG_RELEASE:=18
PKG_RELEASE:=19
ARCH_HEXCODE:=
ifeq ($(ARCH),x86_64)
@@ -28,7 +28,7 @@ else ifeq ($(ARCH),mipsel)
ARCH_HEXCODE=1b0c
endif
PKG_SOURCE_VERSION:=07e52ab850002972866a2a05677e64ea31e3f4e1
PKG_SOURCE_VERSION:=ff87526d94aaa464981d5111c8631ca66396bef7
PKG_SOURCE:=linkease-common-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkease-runtime-v$(PKG_SOURCE_DATE)/
PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-common-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE)
+2 -2
View File
@@ -12,7 +12,7 @@ PKG_ARCH_LINKEASE:=$(ARCH)
PKG_NAME:=linkease
# use PKG_SOURCE_DATE instead of PKG_VERSION for compitable
PKG_SOURCE_DATE:=1.7.5
PKG_RELEASE:=21
PKG_RELEASE:=22
ARCH_HEXCODE:=
ifeq ($(ARCH),x86_64)
@@ -28,7 +28,7 @@ else ifeq ($(ARCH),mipsel)
ARCH_HEXCODE=1b0c
endif
PKG_SOURCE_VERSION:=07e52ab850002972866a2a05677e64ea31e3f4e1
PKG_SOURCE_VERSION:=ff87526d94aaa464981d5111c8631ca66396bef7
PKG_SOURCE:=linkease-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkease-runtime-v$(PKG_SOURCE_DATE)/
PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-bin-$(PKG_SOURCE_DATE)-linux-$(PKG_ARCH_LINKEASE)
+2 -2
View File
@@ -11,7 +11,7 @@ PKG_ARCH_LINKEASE:=$(ARCH)
PKG_NAME:=linkeasefull
# use PKG_SOURCE_DATE instead of PKG_VERSION for compitable
PKG_SOURCE_DATE:=3.0.13
PKG_RELEASE:=20
PKG_RELEASE:=21
ARCH_HEXCODE:=
ifeq ($(ARCH),x86_64)
@@ -24,7 +24,7 @@ LINKEASE_RUNTIME_ARCH:=arm64
PKG_HASH:=skip
endif
PKG_SOURCE_VERSION:=07e52ab850002972866a2a05677e64ea31e3f4e1
PKG_SOURCE_VERSION:=ff87526d94aaa464981d5111c8631ca66396bef7
PKG_SOURCE:=linkease-runtime-$(PKG_SOURCE_DATE)-linux-$(LINKEASE_RUNTIME_ARCH).tar.gz
PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/linkeasefull-runtime-v$(PKG_SOURCE_DATE)/
PKG_BUILD_DIR:=$(BUILD_DIR)/linkease-runtime-$(PKG_SOURCE_DATE)-linux-$(LINKEASE_RUNTIME_ARCH)
+1 -1
View File
@@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter
LUCI_PKGARCH:=all
PKG_VERSION:=0.1.37
PKG_RELEASE:=1
PKG_RELEASE:=3
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
ifdef SOURCE_DATE_EPOCH
@@ -21,8 +21,8 @@
const callFwlivePoll = rpc.declare({
object: 'fwlive',
method: 'poll',
params: [ 'addresses' ],
expect: { log: [] }
params: [ 'addresses' ]
/* Full reply object kept so reply.error reaches fetchEntries (#233). */
});
const callFwliveRules = rpc.declare({
@@ -113,6 +113,7 @@ return view.extend({
resolveInFlight: false,
resolveGeneration: 0,
lastPollError: false,
lastRulesError: null,
lastRenderedRowCount: 0,
lastRenderedHeadId: '',
followLive: true,
@@ -492,11 +493,17 @@ return view.extend({
const res = await callFwliveRules();
this.rulesMap = (res && res.rules) || {};
this.firewallBackend = (res && res.backend) || 'nft';
/* Bounds / mktemp failures are reply.error — same idea as poll (#245). */
this.lastRulesError = (res && res.error) || null;
if (this.lastRulesError)
console.warn('fwlive rules map error:', this.lastRulesError);
} catch (e) {
this.rulesMap = {};
this.firewallBackend = 'nft';
this.lastRulesError = 'rules_unavailable';
}
this.updateBackendUi();
this.updateStatus();
},
backendDisplayLabel() {
@@ -729,7 +736,7 @@ return view.extend({
if (!this.sessionSeen)
this.sessionSeen = new Set();
let raw;
let reply;
try {
/* Raw logd lines, not post-filter rows. Fetch a multiple of the
* display limit so mixed syslog still fills the table; pause
@@ -737,13 +744,23 @@ return view.extend({
const fetchLines = this.paused
? constants.FETCH_LINES_MAX
: Math.min(Math.max(this.rowLimit * 4, 100), constants.FETCH_LINES_MAX);
raw = await callFwlivePoll({
reply = await callFwlivePoll({
addresses: [ String(fetchLines) ]
});
} catch (e) {
this.lastPollError = true;
return;
}
/* Full poll object (no rpc expect strip). error → banner; log → rows. */
if (!reply || typeof reply !== 'object' || Array.isArray(reply)) {
this.lastPollError = true;
return;
}
if (reply.error) {
this.lastPollError = true;
return;
}
const raw = reply.log;
if (!Array.isArray(raw)) {
this.lastPollError = true;
return;
@@ -911,6 +928,17 @@ return view.extend({
return;
}
if (this.lastRulesError) {
status.className = 'fwlive-status fwlive-status-error';
if (this.lastRulesError === 'rules_truncated')
status.textContent = _('Rule labels incomplete — map truncated') + suffix;
else if (this.lastRulesError === 'mktemp_failed')
status.textContent = _('Rule labels unavailable — temp file failed') + suffix;
else
status.textContent = _('Rule labels unavailable') + suffix;
return;
}
status.className = this.paused
? 'fwlive-status fwlive-status-paused'
: 'fwlive-status';
@@ -1135,7 +1163,8 @@ return view.extend({
if (gen !== this.resolveGeneration)
return;
const names = (res && res.names) || {};
/* rpc.declare expect: { names: {} } already unwraps — res IS the map (#243). */
const names = res || {};
let updated = false;
for (let i = 0; i < need.length; i++) {
+306 -203
View File
@@ -12,598 +12,701 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:884
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:909
msgid "%d matching · %d/%d stored"
msgstr "%d matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:887
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:912
msgid "0 matching · %d/%d stored"
msgstr "0 matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:251
msgid "Accessible (teal/orange)"
msgstr "Barrierefrei (teal/orange)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
msgid "Action"
msgstr "Aktion"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:594
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:601
msgid "Administrator access is required to disable logging."
msgstr "Zum Deaktivieren der Protokollierung sind Administratorrechte erforderlich."
msgstr ""
"Zum Deaktivieren der Protokollierung sind Administratorrechte erforderlich."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:569
msgid "Administrator access is required to enable logging."
msgstr "Zum Aktivieren der Protokollierung sind Administratorrechte erforderlich."
msgstr ""
"Zum Aktivieren der Protokollierung sind Administratorrechte erforderlich."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1050
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1086
msgid "Also seen"
msgstr "Weitere"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:583
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:554
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:590
msgid "Another change is staged for the firewall; apply or revert it first."
msgstr "Eine andere Änderung an der Firewall ist vorgemerkt; zuerst anwenden oder verwerfen."
msgstr ""
"Eine andere Änderung an der Firewall ist vorgemerkt; zuerst anwenden oder "
"verwerfen."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1652
msgid "Any action"
msgstr "Beliebige Aktion"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1043
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1079
msgid "Any protocol"
msgstr "Beliebiges Protokoll"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
msgid "Before you enable logging"
msgstr "Before you enable logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:545
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:552
msgid "Cannot enable logging until kernel log modules are installed."
msgstr "Protokollierung kann erst aktiviert werden, wenn die Kernel-Log-Module installiert sind."
msgstr ""
"Protokollierung kann erst aktiviert werden, wenn die Kernel-Log-Module "
"installiert sind."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
msgid "Changes:"
msgstr "Changes:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:249
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
msgid "Classic (green/red)"
msgstr "Klassisch (grün/rot)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1599
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
msgid "Classic uses green/red; Accessible uses teal/orange"
msgstr "Klassisch verwendet grün/rot; Barrierefrei verwendet teal/orange"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
msgid "Clear all"
msgstr "Alle löschen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1655
msgid "Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for firewall settings · in Simple view, click a row for the full message"
msgstr "Zelle anklicken zum Filtern · ≠ auf einem Chip zum Ausschließen · Strg+Klick auf eine Regel für Firewall-Einstellungen · in der Einfachen Ansicht Zeile anklicken für die vollständige Meldung"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1692
msgid ""
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
"firewall settings · in Simple view, click a row for the full message"
msgstr ""
"Zelle anklicken zum Filtern · ≠ auf einem Chip zum Ausschließen · Strg+Klick "
"auf eine Regel für Firewall-Einstellungen · in der Einfachen Ansicht Zeile "
"anklicken für die vollständige Meldung"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1676
msgid "Click a row (Time or other non-link cells) to see the full log line (Simple view)."
msgstr "Klicken Sie auf eine Zeile (Zeit oder andere Nicht-Link-Zellen), um die vollständige Log-Zeile zu sehen (Einfache Ansicht)."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1713
msgid ""
"Click a row (Time or other non-link cells) to see the full log line (Simple "
"view)."
msgstr ""
"Klicken Sie auf eine Zeile (Zeit oder andere Nicht-Link-Zellen), um die "
"vollständige Log-Zeile zu sehen (Einfache Ansicht)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
msgid "Click a row for the full message"
msgstr "Zeile anklicken für die vollständige Meldung"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1677
msgid "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
msgstr "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1714
msgid ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
msgstr ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1044
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1080
msgid "Common"
msgstr "Häufig"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:902
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:927
msgid "Connection lost — retrying…"
msgstr "Connection lost — retrying…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:585
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:592
msgid "Could not disable logging."
msgstr "Protokollierung konnte nicht deaktiviert werden."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:549
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:556
msgid "Could not enable logging."
msgstr "Protokollierung konnte nicht aktiviert werden."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1637
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
msgstr "Eigenes Protokoll (! zum Ausschließen). Überschreibt das Menü, wenn gesetzt."
msgstr ""
"Eigenes Protokoll (! zum Ausschließen). Überschreibt das Menü, wenn gesetzt."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
msgid "DPort"
msgstr "Ziel-Port"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
msgid "Destination"
msgstr "Ziel"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1648
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1685
msgid "Destination IP contains (! to exclude)"
msgstr "Ziel-IP enthält (! zum Ausschließen)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1649
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1686
msgid "Destination port (! to exclude)"
msgstr "Ziel-Port (! zum Ausschließen)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1540
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1577
msgid "Detail"
msgstr "Detail"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
msgid "Dir"
msgstr "Richtung"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
msgid "Disabling…"
msgstr "Disabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1573
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1610
msgid "Display options"
msgstr "Anzeigeoptionen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1710
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr "Anzeigeoptionen in der Leiste setzen Limit, Zeilenfärbung, Palette und Hostnamen."
msgstr ""
"Anzeigeoptionen in der Leiste setzen Limit, Zeilenfärbung, Palette und "
"Hostnamen."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
msgid "Dont show this again"
msgstr "Dont show this again"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enable WAN drop/reject logging"
msgstr "Enable WAN drop/reject logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
msgid "Enable WAN zone drop/reject logging (same as Network → Firewall)."
msgstr "Enable WAN zone drop/reject logging (same as Network → Firewall)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
msgid "Enable logging"
msgstr "Protokollierung aktivieren"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1672
msgid "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
msgstr "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1709
msgid ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
msgstr ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enabling…"
msgstr "Enabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1057
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1093
msgid "Exclude"
msgstr "Ausschließen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Exclude instead"
msgstr "Stattdessen ausschließen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
msgid "Filter by %s"
msgstr "Filtern nach %s"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
msgid "Filter by interface"
msgstr "Nach Schnittstelle filtern"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
msgstr "Logs nach Regel filtern (Hinweis: %s). Strg+Klick öffnet die Firewall-Einstellungen."
msgstr ""
"Logs nach Regel filtern (Hinweis: %s). Strg+Klick öffnet die Firewall-"
"Einstellungen."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1497
#: applications/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1534
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
msgid "Firewall Live View"
msgstr "Firewall-Live-Ansicht"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
msgid "Flags"
msgstr "Flags"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
msgid "Flow"
msgstr "Fluss"
#: applications/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
msgid "Grant access to firewall live log view"
msgstr "Zugriff auf die Live-Ansicht der Firewall-Protokolle gewähren"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1669
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1706
msgid "Help"
msgstr "Hilfe"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:853
msgid "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
msgstr "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:878
msgid ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
msgstr ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1048
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1084
msgid "ICMPv6"
msgstr "ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
msgid "IN"
msgstr "EINGANG"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "If Row tint looks missing, the active LuCI theme may omit success/error or info/warn CSS variables; fwlive falls back to local colors (air-gapped, no data leaves the device)."
msgstr "Wenn die Zeileneinfärbung fehlt, verwendet das aktive LuCI-Theme möglicherweise keine Erfolgs/Fehler-CSS-Variablen; fwlive fällt auf lokale Farben zurück (air-gapped, keine Daten verlassen das Gerät)."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1717
msgid ""
"If Row tint looks missing, the active LuCI theme may omit success/error or "
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
"data leaves the device)."
msgstr ""
"Wenn die Zeileneinfärbung fehlt, verwendet das aktive LuCI-Theme "
"möglicherweise keine Erfolgs/Fehler-CSS-Variablen; fwlive fällt auf lokale "
"Farben zurück (air-gapped, keine Daten verlassen das Gerät)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
msgstr "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
msgstr ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Include instead"
msgstr "Stattdessen einschließen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
msgid "Interface"
msgstr "Schnittstelle"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1645
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1682
msgid "Interface (prefix ! to exclude)"
msgstr "Schnittstelle (! voranstellen zum Ausschließen)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
msgid "Ill configure this under Network → Firewall"
msgstr "Ill configure this under Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
msgid "Kernel log modules missing"
msgstr "Kernel log modules missing"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid "Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr "Kernel-Netfilter-Log-Module fehlen. Installieren Sie kmod-nf-log-ipv4 und kmod-nf-log-ipv6 (oder kmod-nf-log / kmod-nf-log6) und laden Sie dann die Firewall neu."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid ""
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr ""
"Kernel-Netfilter-Log-Module fehlen. Installieren Sie kmod-nf-log-ipv4 und "
"kmod-nf-log-ipv6 (oder kmod-nf-log / kmod-nf-log6) und laden Sie dann die "
"Firewall neu."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
msgid "Len"
msgstr "Länge"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1576
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
msgid "Limit"
msgstr "Limit"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
msgid "Logging is off on this router"
msgstr "Logging is off on this router"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
msgid "Manual test (System → Terminal):"
msgstr "Manueller Test (System → Terminal):"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1552
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1584
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1589
msgid "Message"
msgstr "Nachricht"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1643
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "More filters"
msgstr "Weitere Filter"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
msgid "Network → Firewall"
msgstr "Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid "No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr "Keine WAN-Firewall-Zone in /etc/config/firewall gefunden. Konfigurieren Sie Zonen unter"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid ""
"No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr ""
"Keine WAN-Firewall-Zone in /etc/config/firewall gefunden. Konfigurieren Sie "
"Zonen unter"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
msgid "No WAN zone found"
msgstr "No WAN zone found"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
msgid "Not now"
msgstr "Not now"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
msgid "Nothing changes until you click Enable."
msgstr "Nothing changes until you click Enable."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
msgid "OUT"
msgstr "AUSGANG"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1567
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1604
msgid "One line"
msgstr "Einzeilig"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
msgid "Open firewall zone settings"
msgstr "Firewall-Zonen-Einstellungen öffnen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
msgstr "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
msgstr ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1595
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1632
msgid "Palette"
msgstr "Palette"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1517
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1554
msgid "Pause"
msgstr "Pause"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
msgid "Paused"
msgstr "Pausiert"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
msgid "Proto"
msgstr "Protokoll"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1631
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1668
msgid "Protocol — common values"
msgstr "Protokoll — häufige Werte"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1650
msgid "Quick search"
msgstr "Schnellsuche"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
msgid "Remove filter"
msgstr "Filter entfernen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
msgid "Resume"
msgstr "Fortsetzen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1588
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
msgid "Row tint"
msgstr "Zeileneinfärbung"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1678
msgid "Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/red, default) or Accessible (teal/orange). Action text stays colored either way."
msgstr "Zeilenfärbung zeigt Pass/Deny-Hintergrundfarben, wenn aktiviert. Wählen Sie Klassisch (grün/rot, Standard) oder Barrierefrei (teal/orange). Aktionstext bleibt in beiden Fällen farbig."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1715
msgid ""
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
"red, default) or Accessible (teal/orange). Action text stays colored either "
"way."
msgstr ""
"Zeilenfärbung zeigt Pass/Deny-Hintergrundfarben, wenn aktiviert. Wählen Sie "
"Klassisch (grün/rot, Standard) oder Barrierefrei (teal/orange). Aktionstext "
"bleibt in beiden Fällen farbig."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1507
msgid "Row tint used a local color fallback because the active LuCI theme did not apply pass/deny backgrounds."
msgstr "Die Zeileneinfärbung verwendete einen lokalen Farbfallback, da das aktive LuCI-Theme keine Erlauben/Verweigern-Hintergründe anwendet."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1544
msgid ""
"Row tint used a local color fallback because the active LuCI theme did not "
"apply pass/deny backgrounds."
msgstr ""
"Die Zeileneinfärbung verwendete einen lokalen Farbfallback, da das aktive "
"LuCI-Theme keine Erlauben/Verweigern-Hintergründe anwendet."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
msgid "Rule"
msgstr "Regel"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:934
msgid "Rule labels incomplete — map truncated"
msgstr "Rule labels incomplete — map truncated"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:938
msgid "Rule labels unavailable"
msgstr "Rule labels unavailable"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:936
msgid "Rule labels unavailable — temp file failed"
msgstr "Rule labels unavailable — temp file failed"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
msgid "SPort"
msgstr "Quell-Port"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1607
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1644
msgid "Show hostnames"
msgstr "Hostnamen anzeigen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1586
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
msgid "Show pass/deny row background colors"
msgstr "Pass/Deny-Zeilenhintergrundfarben anzeigen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1533
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1570
msgid "Simple"
msgstr "Einfach"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
msgid "Source"
msgstr "Quelle"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1646
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1683
msgid "Source IP contains (! to exclude)"
msgstr "Quell-IP enthält (! zum Ausschließen)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1647
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1684
msgid "Source port (! to exclude)"
msgstr "Quell-Port (! zum Ausschließen)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "The rate shown for WAN logging is the firewall zone log_limit. OpenWrt defaults to 10/minute when no explicit limit is configured; fwlive does not impose this cap."
msgstr "Die angezeigte Rate für WAN-Protokollierung ist das Zonen-log_limit. OpenWrt-Standard ist 10/Minute ohne explizites Limit; fwlive setzt diese Grenze nicht."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1711
msgid ""
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
"impose this cap."
msgstr ""
"Die angezeigte Rate für WAN-Protokollierung ist das Zonen-log_limit. "
"OpenWrt-Standard ist 10/Minute ohne explizites Limit; fwlive setzt diese "
"Grenze nicht."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1671
msgid "The table updates automatically when your firewall logs traffic. Use Pause if it moves too fast."
msgstr "Die Tabelle aktualisiert sich automatisch, wenn Ihre Firewall Verkehr protokolliert. Pause nutzen, wenn es zu schnell wird."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1708
msgid ""
"The table updates automatically when your firewall logs traffic. Use Pause "
"if it moves too fast."
msgstr ""
"Die Tabelle aktualisiert sich automatisch, wenn Ihre Firewall Verkehr "
"protokolliert. Pause nutzen, wenn es zu schnell wird."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1508
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1545
msgid "Theme tint fallback"
msgstr "Theme-Farb-Fallback"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
msgid "Time"
msgstr "Zeit"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
msgstr "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
msgstr ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
msgid "Undo:"
msgstr "Undo:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1679
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1716
msgid "Use Detail for all columns (flags, length, raw message)."
msgstr "Verwenden Sie „Detail“ für alle Spalten (Flags, Länge, rohe Nachricht)."
msgstr ""
"Verwenden Sie „Detail“ für alle Spalten (Flags, Länge, rohe Nachricht)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1521
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1525
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1558
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1562
msgid "View"
msgstr "Ansicht"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:591
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:598
msgid "WAN drop/reject logging is off."
msgstr "WAN drop/reject logging is off."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
msgstr "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:555
msgid "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
msgstr "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
msgid ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:557
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:564
msgid "WAN logging is already enabled."
msgstr "WAN-Protokollierung ist bereits aktiviert."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
msgid "WAN logging on"
msgstr "WAN-Protokollierung: EIN"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
msgid "WAN logging on (%s). Click to disable."
msgstr "WAN-Protokollierung: EIN (%s). Klicken zum Deaktivieren."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
msgid "WAN logging unavailable: missing kernel log modules"
msgstr "WAN-Protokollierung nicht verfügbar: fehlende Kernel-Log-Module"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
msgid "WAN logging unavailable: no WAN zone"
msgstr "WAN-Protokollierung nicht verfügbar: keine WAN-Zone"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
msgid "Waiting for firewall events"
msgstr "Waiting for firewall events"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1502
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1539
msgid "Watching"
msgstr "Beobachtet"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1560
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1597
msgid "Wrap"
msgstr "Umbrechen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
msgid "allow/deny rules, LAN logging, or anything else."
msgstr "allow/deny rules, LAN logging, or anything else."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:786
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:811
msgid "buffer full"
msgstr "Puffer voll"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
msgid "default 10/minute"
msgstr "Standard 10/Minute"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
msgid "is"
msgstr "ist"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:781
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:806
msgid "loading buffer"
msgstr "Lade Puffer"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:881
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:906
msgid "loading…"
msgstr "loading…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
msgid "not"
msgstr "nicht"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1065
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1101
msgid "not AH"
msgstr "nicht AH"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1064
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1100
msgid "not ESP"
msgstr "nicht ESP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1063
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1099
msgid "not GRE"
msgstr "nicht GRE"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1060
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1096
msgid "not ICMP"
msgstr "nicht ICMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1061
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1097
msgid "not ICMPv6"
msgstr "nicht ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1062
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1098
msgid "not IGMP"
msgstr "nicht IGMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1066
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1102
msgid "not SCTP"
msgstr "nicht SCTP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1058
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1094
msgid "not TCP"
msgstr "nicht TCP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1059
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1095
msgid "not UDP"
msgstr "nicht UDP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1660
msgid "not block"
msgstr "nicht blockieren"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1622
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1659
msgid "not drop"
msgstr "nicht verwerfen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1621
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1658
msgid "not pass"
msgstr "nicht erlauben"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1624
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1661
msgid "not reject"
msgstr "nicht zurückweisen"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1662
msgid "not unknown"
msgstr "nicht unbekannt"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
msgid "or type…"
msgstr "oder tippen…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:788
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:813
msgid "render paused (high rate)"
msgstr "Rendering pausiert (hohe Rate)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:790
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:815
msgid "scroll frozen — scroll to top to follow live"
msgstr "scroll frozen — scroll to top to follow live"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
msgid "sets log on the WAN firewall zone and reloads the firewall."
msgstr "sets log on the WAN firewall zone and reloads the firewall."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
msgid "then ping the router."
msgstr "dann den Router anpingen."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
msgid "turn it back off with the WAN logging on control on the watch strip."
msgstr "turn it back off with the WAN logging on control on the watch strip."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:506
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:513
msgid "using fw4"
msgstr "mit fw4"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:504
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:511
msgid "using iptables"
msgstr "mit iptables"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
msgid "· %s"
msgstr "· %s"
+315 -205
View File
@@ -10,600 +10,710 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:884
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:909
msgid "%d matching · %d/%d stored"
msgstr "%d matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:887
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:912
msgid "0 matching · %d/%d stored"
msgstr "0 matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:251
msgid "Accessible (teal/orange)"
msgstr "Доступный (бирюзовый/оранжевый)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
msgid "Action"
msgstr "Действие"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:594
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:601
msgid "Administrator access is required to disable logging."
msgstr "Для отключения журналирования требуются права администратора."
msgstr ""
"Для отключения журналирования требуются права аÐ"
"´Ð¼Ð¸Ð½Ð¸ÑÑ‚ратора."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:569
msgid "Administrator access is required to enable logging."
msgstr "Для включения журналирования требуются права администратора."
msgstr ""
"Для включения журналирования требуются права аÐ"
"´Ð¼Ð¸Ð½Ð¸ÑÑ‚ратора."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1050
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1086
msgid "Also seen"
msgstr "Также встречаются"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:583
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:554
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:590
msgid "Another change is staged for the firewall; apply or revert it first."
msgstr "В брандмауэре уже есть другое незафиксированное изменение; сначала примените или отмените его."
msgstr ""
"В брандмауэре уже есть другое незафиксированное изменение; сначала примените "
"или отмените его."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1652
msgid "Any action"
msgstr "Любое действие"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1043
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1079
msgid "Any protocol"
msgstr "Любой протокол"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
msgid "Before you enable logging"
msgstr "Before you enable logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:545
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:552
msgid "Cannot enable logging until kernel log modules are installed."
msgstr "Невозможно включить журналирование, пока не установлены модули журнала ядра."
msgstr ""
"Невозможно включить журналирование, пока не "
"установлены модули журнала ядра."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
msgid "Changes:"
msgstr "Changes:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:249
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
msgid "Classic (green/red)"
msgstr "Классический (зелёный/красный)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1599
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
msgid "Classic uses green/red; Accessible uses teal/orange"
msgstr "Классический — зелёный/красный; доступный — бирюзовый/оранжевый"
msgstr ""
"Классический — зелёный/красный; доступный — "
"бирюзовый/оранжевый"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
msgid "Clear all"
msgstr "Очистить всё"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1655
msgid "Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for firewall settings · in Simple view, click a row for the full message"
msgstr "Щёлкните ячейку для фильтра · ≠ на чипе для исключения · Ctrl+щелчок по правилу для настроек МЭ · в Простом виде щёлкните строку для полного сообщения"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1692
msgid ""
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
"firewall settings · in Simple view, click a row for the full message"
msgstr ""
"Щёлкните ячейку для фильтра · ≠ на чипе для исключения · Ctrl+щелчок по "
"правилу для настроек МЭ · в Простом виде щёлкните строку для полного "
"сообщения"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1676
msgid "Click a row (Time or other non-link cells) to see the full log line (Simple view)."
msgstr "Щёлкните строку (Время или другие ячейки без ссылки), чтобы увидеть полную строку журнала (Простой вид)."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1713
msgid ""
"Click a row (Time or other non-link cells) to see the full log line (Simple "
"view)."
msgstr ""
"Щёлкните строку (Время или другие ячейки без ссылки), чтобы увидеть полную "
"строку журнала (Простой вид)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
msgid "Click a row for the full message"
msgstr "Щёлкните строку для полного сообщения"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1677
msgid "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
msgstr "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1714
msgid ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
msgstr ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1044
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1080
msgid "Common"
msgstr "Частые"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:902
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:927
msgid "Connection lost — retrying…"
msgstr "Connection lost — retrying…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:585
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:592
msgid "Could not disable logging."
msgstr "Не удалось отключить журналирование."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:549
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:556
msgid "Could not enable logging."
msgstr "Не удалось включить журналирование."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1637
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
msgstr "Свой протокол (! для исключения). Переопределяет меню, если задан."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
msgid "DPort"
msgstr "Порт назн."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
msgid "Destination"
msgstr "Назначение"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1648
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1685
msgid "Destination IP contains (! to exclude)"
msgstr "IP назначения содержит (! для исключения)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1649
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1686
msgid "Destination port (! to exclude)"
msgstr "Порт назначения (! для исключения)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1540
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1577
msgid "Detail"
msgstr "Подробно"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
msgid "Dir"
msgstr "Напр."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
msgid "Disabling…"
msgstr "Disabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1573
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1610
msgid "Display options"
msgstr "Параметры отображения"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1710
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr "Параметры отображения на панели задают лимит, окраску строк, палитру и имена узлов."
msgstr ""
"Параметры отображения на панели задают лимит, окраску строк, палитру и имена "
"узлов."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
msgid "Dont show this again"
msgstr "Dont show this again"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enable WAN drop/reject logging"
msgstr "Enable WAN drop/reject logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
msgid "Enable WAN zone drop/reject logging (same as Network → Firewall)."
msgstr "Enable WAN zone drop/reject logging (same as Network → Firewall)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
msgid "Enable logging"
msgstr "Включить журнал"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1672
msgid "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
msgstr "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1709
msgid ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
msgstr ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enabling…"
msgstr "Enabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1057
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1093
msgid "Exclude"
msgstr "Исключить"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Exclude instead"
msgstr "Исключить вместо этого"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
msgid "Filter by %s"
msgstr "Фильтр по %s"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
msgid "Filter by interface"
msgstr "Фильтр по интерфейсу"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
msgstr "Фильтр журналов по правилу (подсказка: %s). Ctrl+клик открывает настройки файрвола."
msgstr ""
"Фильтр журналов по правилу (подсказка: %s). "
"Ctrl+клик открывает настройки файрвола."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1497
#: applications/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1534
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
msgid "Firewall Live View"
msgstr "Просмотр файрвола в реальном времени"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
msgid "Flags"
msgstr "Флаги"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
msgid "Flow"
msgstr "Поток"
#: applications/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
msgid "Grant access to firewall live log view"
msgstr "Предоставить доступ к живому просмотру журнала межсетевого экрана"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1669
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1706
msgid "Help"
msgstr "Справка"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:853
msgid "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
msgstr "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:878
msgid ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
msgstr ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1048
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1084
msgid "ICMPv6"
msgstr "ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
msgid "IN"
msgstr "ВХОД"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "If Row tint looks missing, the active LuCI theme may omit success/error or info/warn CSS variables; fwlive falls back to local colors (air-gapped, no data leaves the device)."
msgstr "Если цветовая маркировка строк отсутствует, активная тема LuCI может не содержать CSS-переменные успе"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1717
msgid ""
"If Row tint looks missing, the active LuCI theme may omit success/error or "
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
"data leaves the device)."
msgstr ""
"Если цветовая маркировка строк отсутствует, "
"активная тема LuCI может не содержать CSS-"
"переменные успе"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
msgstr "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
msgstr ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Include instead"
msgstr "Включить вместо этого"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
msgid "Interface"
msgstr "Интерфейс"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1645
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1682
msgid "Interface (prefix ! to exclude)"
msgstr "Интерфейс (! в начале для исключения)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
msgid "Ill configure this under Network → Firewall"
msgstr "Ill configure this under Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
msgid "Kernel log modules missing"
msgstr "Kernel log modules missing"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid "Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr "Отсутствуют модули журнала netfilter ядра. Установите kmod-nf-log-ipv4 и kmod-nf-log-ipv6 (или kmod-nf-log / kmod-nf-log6), затем перезагрузите файрвол."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid ""
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr ""
"Отсутствуют модули журнала netfilter ядра. Установите "
"kmod-nf-log-ipv4 и kmod-nf-log-ipv6 (или kmod-nf-log / kmod-nf-log6), "
"затем перезагрузите файрвол."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
msgid "Len"
msgstr "Длина"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1576
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
msgid "Limit"
msgstr "Лимит"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
msgid "Logging is off on this router"
msgstr "Logging is off on this router"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
msgid "Manual test (System → Terminal):"
msgstr "Ручной тест (Система → Терминал):"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1552
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1584
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1589
msgid "Message"
msgstr "Сообщение"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1643
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "More filters"
msgstr "Больше фильтров"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
msgid "Network → Firewall"
msgstr "Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid "No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr "Зона WAN брандмауэра не найдена в /etc/config/firewall. Настройте зоны в"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid ""
"No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr ""
"Зона WAN брандмауэра не найдена в /etc/config/firewall. Настройте зоны в"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
msgid "No WAN zone found"
msgstr "No WAN zone found"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
msgid "Not now"
msgstr "Not now"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
msgid "Nothing changes until you click Enable."
msgstr "Nothing changes until you click Enable."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
msgid "OUT"
msgstr "ВЫХОД"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1567
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1604
msgid "One line"
msgstr "Одна строка"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
msgid "Open firewall zone settings"
msgstr "Открыть настройки зон файрвола"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
msgstr "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
msgstr ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1595
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1632
msgid "Palette"
msgstr "Палитра"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1517
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1554
msgid "Pause"
msgstr "Пауза"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
msgid "Paused"
msgstr "Пауза"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
msgid "Proto"
msgstr "Протокол"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1631
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1668
msgid "Protocol — common values"
msgstr "Протокол — частые значения"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1650
msgid "Quick search"
msgstr "Быстрый поиск"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
msgid "Remove filter"
msgstr "Удалить фильтр"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
msgid "Resume"
msgstr "Продолжить"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1588
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
msgid "Row tint"
msgstr "Цвет строк"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1678
msgid "Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/red, default) or Accessible (teal/orange). Action text stays colored either way."
msgstr "Подсветка строк показывает фоны pass/deny, когда включена. Выберите классический (зелёный/красный, по умолчанию) или доступный (бирюзовый/оранжевый). Цвет текста действия сохраняется в любом случае."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1715
msgid ""
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
"red, default) or Accessible (teal/orange). Action text stays colored either "
"way."
msgstr ""
"Подсветка строк показывает фоны pass/deny, когда включена. Выберите "
"классический (зелёный/красный, по умолчанию) или доступный (бирюзовый/"
"оранжевый). Цвет текста действия сохраняется в любом случае."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1507
msgid "Row tint used a local color fallback because the active LuCI theme did not apply pass/deny backgrounds."
msgstr "Цветовая маркировка строк использовала локальный запасной цвет, так как активная тема LuCI не применяет фон пропуска/отказа."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1544
msgid ""
"Row tint used a local color fallback because the active LuCI theme did not "
"apply pass/deny backgrounds."
msgstr ""
"Цветовая маркировка строк использовала "
"локальный запасной цвет, так как активная тема "
"LuCI не применяет фон пропуска/отказа."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
msgid "Rule"
msgstr "Правило"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:934
msgid "Rule labels incomplete — map truncated"
msgstr "Rule labels incomplete — map truncated"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:938
msgid "Rule labels unavailable"
msgstr "Rule labels unavailable"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:936
msgid "Rule labels unavailable — temp file failed"
msgstr "Rule labels unavailable — temp file failed"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
msgid "SPort"
msgstr "Порт ист."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1607
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1644
msgid "Show hostnames"
msgstr "Показывать имена "
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1586
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
msgid "Show pass/deny row background colors"
msgstr "Показывать цвета фона строк pass/deny"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1533
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1570
msgid "Simple"
msgstr "Простой"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
msgid "Source"
msgstr "Источник"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1646
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1683
msgid "Source IP contains (! to exclude)"
msgstr "IP источника содержит (! для исключения)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1647
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1684
msgid "Source port (! to exclude)"
msgstr "Порт источника (! для исключения)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "The rate shown for WAN logging is the firewall zone log_limit. OpenWrt defaults to 10/minute when no explicit limit is configured; fwlive does not impose this cap."
msgstr "Показанная частота WAN-журнала — log_limit зоны. По умолчанию OpenWrt: 10/мин без явного лимита; fwlive сам лимит не задаёт."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1711
msgid ""
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
"impose this cap."
msgstr ""
"Показанная частота WAN-журнала — log_limit зоны. По "
"умолчанию OpenWrt: 10/мин без явного лимита; fwlive "
"сам лимит не задаёт."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1671
msgid "The table updates automatically when your firewall logs traffic. Use Pause if it moves too fast."
msgstr "Таблица обновляется автоматически, когда файрвол пишет в журнал. Используйте Паузу, если слишком быстро."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1708
msgid ""
"The table updates automatically when your firewall logs traffic. Use Pause "
"if it moves too fast."
msgstr ""
"Таблица обновляется автоматически, когда "
"файрвол пишет в журнал. Используйте Паузу, если "
"слишком быстро."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1508
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1545
msgid "Theme tint fallback"
msgstr "Запасной цвет темы"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
msgid "Time"
msgstr "Время"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
msgstr "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
msgstr ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
msgid "Undo:"
msgstr "Undo:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1679
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1716
msgid "Use Detail for all columns (flags, length, raw message)."
msgstr "Используйте «Подробно» для всех столбцов (флаги, длина, исходное сообщение)."
msgstr ""
"Используйте «Подробно» для всех столбцов (флаги, длина, исходное сообщение)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1521
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1525
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1558
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1562
msgid "View"
msgstr "Вид"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:591
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:598
msgid "WAN drop/reject logging is off."
msgstr "WAN drop/reject logging is off."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
msgstr "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:555
msgid "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
msgstr "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
msgid ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:557
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:564
msgid "WAN logging is already enabled."
msgstr "WAN-журналирование уже включено."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
msgid "WAN logging on"
msgstr "WAN-журнал: ВКЛ"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
msgid "WAN logging on (%s). Click to disable."
msgstr "WAN-журнал: ВКЛ (%s). Нажмите, чтобы отключить."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
msgid "WAN logging unavailable: missing kernel log modules"
msgstr "WAN-журналирование недоступно: отсутствуют модули журнала ядра"
msgstr ""
"WAN-журналирование недоступно: отсутствуют модули "
"журнала ядра"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
msgid "WAN logging unavailable: no WAN zone"
msgstr "WAN-журналирование недоступно: нет зоны WAN"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
msgid "Waiting for firewall events"
msgstr "Waiting for firewall events"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1502
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1539
msgid "Watching"
msgstr "Наблюдение"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1560
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1597
msgid "Wrap"
msgstr "Перенос"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
msgid "allow/deny rules, LAN logging, or anything else."
msgstr "allow/deny rules, LAN logging, or anything else."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:786
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:811
msgid "buffer full"
msgstr "буфер заполнен"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
msgid "default 10/minute"
msgstr "по умолчанию 10/мин"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
msgid "is"
msgstr "есть"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:781
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:806
msgid "loading buffer"
msgstr "загрузка буфера"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:881
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:906
msgid "loading…"
msgstr "loading…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
msgid "not"
msgstr "не"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1065
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1101
msgid "not AH"
msgstr "не AH"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1064
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1100
msgid "not ESP"
msgstr "не ESP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1063
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1099
msgid "not GRE"
msgstr "не GRE"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1060
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1096
msgid "not ICMP"
msgstr "не ICMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1061
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1097
msgid "not ICMPv6"
msgstr "не ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1062
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1098
msgid "not IGMP"
msgstr "не IGMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1066
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1102
msgid "not SCTP"
msgstr "не SCTP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1058
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1094
msgid "not TCP"
msgstr "не TCP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1059
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1095
msgid "not UDP"
msgstr "не UDP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1660
msgid "not block"
msgstr "не блокировать"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1622
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1659
msgid "not drop"
msgstr "не отбрасывать"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1621
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1658
msgid "not pass"
msgstr "не пропускать"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1624
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1661
msgid "not reject"
msgstr "не отклонять"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1662
msgid "not unknown"
msgstr "не неизвестно"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
msgid "or type…"
msgstr "или введите…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:788
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:813
msgid "render paused (high rate)"
msgstr "рендеринг приостановлен (высокая частота)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:790
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:815
msgid "scroll frozen — scroll to top to follow live"
msgstr "scroll frozen — scroll to top to follow live"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
msgid "sets log on the WAN firewall zone and reloads the firewall."
msgstr "sets log on the WAN firewall zone and reloads the firewall."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
msgid "then ping the router."
msgstr "затем выполните ping маршрутизатора."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
msgid "turn it back off with the WAN logging on control on the watch strip."
msgstr "turn it back off with the WAN logging on control on the watch strip."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:506
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:513
msgid "using fw4"
msgstr "используется fw4"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:504
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:511
msgid "using iptables"
msgstr "используется iptables"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
msgid "· %s"
msgstr "· %s"
+173 -161
View File
@@ -1,636 +1,648 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:892
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:909
msgid "%d matching · %d/%d stored"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:895
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:912
msgid "0 matching · %d/%d stored"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:251
msgid "Accessible (teal/orange)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
msgid "Action"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:594
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:601
msgid "Administrator access is required to disable logging."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:569
msgid "Administrator access is required to enable logging."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1058
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1086
msgid "Also seen"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:583
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:554
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:590
msgid "Another change is staged for the firewall; apply or revert it first."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1652
msgid "Any action"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1051
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1079
msgid "Any protocol"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
msgid "Before you enable logging"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:545
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:552
msgid "Cannot enable logging until kernel log modules are installed."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
msgid "Changes:"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:249
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
msgid "Classic (green/red)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1607
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
msgid "Classic uses green/red; Accessible uses teal/orange"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
msgid "Clear all"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1663
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1692
msgid ""
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
"firewall settings · in Simple view, click a row for the full message"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1684
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1713
msgid ""
"Click a row (Time or other non-link cells) to see the full log line (Simple "
"view)."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
msgid "Click a row for the full message"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1685
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1714
msgid ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1052
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1080
msgid "Common"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:910
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:927
msgid "Connection lost — retrying…"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:585
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:592
msgid "Could not disable logging."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:549
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:556
msgid "Could not enable logging."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1645
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
msgid "DPort"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
msgid "Destination"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1656
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1685
msgid "Destination IP contains (! to exclude)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1657
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1686
msgid "Destination port (! to exclude)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1548
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1577
msgid "Detail"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
msgid "Dir"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
msgid "Disabling…"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1581
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1610
msgid "Display options"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1681
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1710
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
msgid "Dont show this again"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enable WAN drop/reject logging"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
msgid "Enable WAN zone drop/reject logging (same as Network → Firewall)."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
msgid "Enable logging"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1709
msgid ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enabling…"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1065
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1093
msgid "Exclude"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Exclude instead"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
msgid "Filter by %s"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
msgid "Filter by interface"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1505
#: applications/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1534
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
msgid "Firewall Live View"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
msgid "Flags"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
msgid "Flow"
msgstr ""
#: applications/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
msgid "Grant access to firewall live log view"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1677
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1706
msgid "Help"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:861
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:878
msgid ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1056
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1084
msgid "ICMPv6"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
msgid "IN"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1688
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1717
msgid ""
"If Row tint looks missing, the active LuCI theme may omit success/error or "
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
"data leaves the device)."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Include instead"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
msgid "Interface"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1653
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1682
msgid "Interface (prefix ! to exclude)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
msgid "Ill configure this under Network → Firewall"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
msgid "Kernel log modules missing"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid ""
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
msgid "Len"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1584
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
msgid "Limit"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
msgid "Logging is off on this router"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
msgid "Manual test (System → Terminal):"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1555
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1560
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1584
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1589
msgid "Message"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1651
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "More filters"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
msgid "Network → Firewall"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid ""
"No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
msgid "No WAN zone found"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
msgid "Not now"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
msgid "Nothing changes until you click Enable."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
msgid "OUT"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1575
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1604
msgid "One line"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
msgid "Open firewall zone settings"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1603
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1632
msgid "Palette"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:961
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1525
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1554
msgid "Pause"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:959
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
msgid "Paused"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
msgid "Proto"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1639
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1668
msgid "Protocol — common values"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1621
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1650
msgid "Quick search"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
msgid "Remove filter"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:961
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
msgid "Resume"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1596
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
msgid "Row tint"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1686
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1715
msgid ""
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
"red, default) or Accessible (teal/orange). Action text stays colored either "
"way."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1515
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1544
msgid ""
"Row tint used a local color fallback because the active LuCI theme did not "
"apply pass/deny backgrounds."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
msgid "Rule"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:934
msgid "Rule labels incomplete — map truncated"
msgstr ""
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:938
msgid "Rule labels unavailable"
msgstr ""
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:936
msgid "Rule labels unavailable — temp file failed"
msgstr ""
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
msgid "SPort"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1644
msgid "Show hostnames"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1594
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
msgid "Show pass/deny row background colors"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1541
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1570
msgid "Simple"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
msgid "Source"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1654
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1683
msgid "Source IP contains (! to exclude)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1655
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1684
msgid "Source port (! to exclude)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1682
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1711
msgid ""
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
"impose this cap."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1679
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1708
msgid ""
"The table updates automatically when your firewall logs traffic. Use Pause "
"if it moves too fast."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1516
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1545
msgid "Theme tint fallback"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
msgid "Time"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
msgid "Undo:"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1687
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1716
msgid "Use Detail for all columns (flags, length, raw message)."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1529
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1533
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1558
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1562
msgid "View"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:591
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:598
msgid "WAN drop/reject logging is off."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:555
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
msgid ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:557
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:564
msgid "WAN logging is already enabled."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
msgid "WAN logging on"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
msgid "WAN logging on (%s). Click to disable."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
msgid "WAN logging unavailable: missing kernel log modules"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
msgid "WAN logging unavailable: no WAN zone"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
msgid "Waiting for firewall events"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:959
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1510
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1539
msgid "Watching"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1568
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1597
msgid "Wrap"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
msgid "allow/deny rules, LAN logging, or anything else."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:794
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:811
msgid "buffer full"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
msgid "default 10/minute"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
msgid "is"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:789
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:806
msgid "loading buffer"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:889
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:906
msgid "loading…"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
msgid "not"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1073
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1101
msgid "not AH"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1072
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1100
msgid "not ESP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1071
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1099
msgid "not GRE"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1068
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1096
msgid "not ICMP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1069
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1097
msgid "not ICMPv6"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1070
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1098
msgid "not IGMP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1074
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1102
msgid "not SCTP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1066
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1094
msgid "not TCP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1067
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1095
msgid "not UDP"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1631
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1660
msgid "not block"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1630
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1659
msgid "not drop"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1629
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1658
msgid "not pass"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1632
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1661
msgid "not reject"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1633
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1662
msgid "not unknown"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1644
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
msgid "or type…"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:796
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:813
msgid "render paused (high rate)"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:798
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:815
msgid "scroll frozen — scroll to top to follow live"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
msgid "sets log on the WAN firewall zone and reloads the firewall."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
msgid "then ping the router."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
msgid "turn it back off with the WAN logging on control on the watch strip."
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:506
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:513
msgid "using fw4"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:504
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:511
msgid "using iptables"
msgstr ""
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
msgid "· %s"
msgstr ""
+263 -189
View File
@@ -12,598 +12,672 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:884
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:909
msgid "%d matching · %d/%d stored"
msgstr "%d matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:887
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:912
msgid "0 matching · %d/%d stored"
msgstr "0 matching · %d/%d stored"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:251
msgid "Accessible (teal/orange)"
msgstr "可访问(青绿/橙色)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:32
msgid "Action"
msgstr "动作"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:594
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:601
msgid "Administrator access is required to disable logging."
msgstr "需要管理员权限才能"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:569
msgid "Administrator access is required to enable logging."
msgstr "需要管理员权限才能开启日志记录。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1050
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1086
msgid "Also seen"
msgstr "其他常见"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:583
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:554
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:590
msgid "Another change is staged for the firewall; apply or revert it first."
msgstr "防火墙另有未提交的更改;请先应用或还原。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1615
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1652
msgid "Any action"
msgstr "所有动作"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1043
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1079
msgid "Any protocol"
msgstr "任意协议"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:113
msgid "Before you enable logging"
msgstr "Before you enable logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:545
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:552
msgid "Cannot enable logging until kernel log modules are installed."
msgstr "å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:116
msgid "Changes:"
msgstr "Changes:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:249
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:250
msgid "Classic (green/red)"
msgstr "经"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1599
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
msgid "Classic uses green/red; Accessible uses teal/orange"
msgstr "经"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:116
msgid "Clear all"
msgstr "æ"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1655
msgid "Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for firewall settings · in Simple view, click a row for the full message"
msgstr "点击单元格筛选 · 芯片上的 ≠ 排除 · Ctrl+点击规则打开防火墙设置 · 在简单视图中点击行查看完整消息"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1692
msgid ""
"Click a cell to filter · ≠ on a chip to exclude · Ctrl+click a rule for "
"firewall settings · in Simple view, click a row for the full message"
msgstr ""
"点击单元格筛选 · 芯片上的 ≠ 排除 · Ctrl+点击规则打开防火墙设置 · 在简单视图中"
"点击行查看完整消息"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1676
msgid "Click a row (Time or other non-link cells) to see the full log line (Simple view)."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1713
msgid ""
"Click a row (Time or other non-link cells) to see the full log line (Simple "
"view)."
msgstr "点击一行(时间或其他非链接单元格)可查看完整日志行(简单视图)。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:113
msgid "Click a row for the full message"
msgstr "点击行可查看完整消息"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1677
msgid "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
msgstr "Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a chip) to exclude."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1714
msgid ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
msgstr ""
"Click an IP, action, or protocol to filter; use the Protocol menu (or ≠ on a "
"chip) to exclude."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1044
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1080
msgid "Common"
msgstr "常用"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:902
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:927
msgid "Connection lost — retrying…"
msgstr "Connection lost — retrying…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:585
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:592
msgid "Could not disable logging."
msgstr "无法"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:549
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:556
msgid "Could not enable logging."
msgstr "无法开启日志记录。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1637
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "Custom protocol (prefix ! to exclude). Overrides the menu when set."
msgstr "自定义协议(! 排除)。有内容时覆盖菜单。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:42
msgid "DPort"
msgstr "目标端口"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:40
msgid "Destination"
msgstr "目标地址"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1648
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1685
msgid "Destination IP contains (! to exclude)"
msgstr "目标 IP å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1649
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1686
msgid "Destination port (! to exclude)"
msgstr "目标端口(! 表示排除)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1540
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1577
msgid "Detail"
msgstr "详细"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:37
msgid "Dir"
msgstr "方向"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:85
msgid "Disabling…"
msgstr "Disabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1573
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1610
msgid "Display options"
msgstr "显示选项"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1710
msgid "Display options on the bar set Limit, row tint, palette, and hostnames."
msgstr "栏上的显示选项可设置行数限制、行着色、调色板和主机名。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:121
msgid "Does not change:"
msgstr "Does not change:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:138
msgid "Dont show this again"
msgstr "Dont show this again"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enable WAN drop/reject logging"
msgstr "Enable WAN drop/reject logging"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:104
msgid "Enable WAN zone drop/reject logging (same as Network → Firewall)."
msgstr "Enable WAN zone drop/reject logging (same as Network → Firewall)."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
msgid "Enable logging"
msgstr "开启日志"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1672
msgid "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
msgstr "Enable logging turns on WAN zone drop/reject logging only (same as Network → Firewall). It does not add rules or log normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1709
msgid ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
msgstr ""
"Enable logging turns on WAN zone drop/reject logging only (same as Network → "
"Firewall). It does not add rules or log normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:107
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:150
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:230
msgid "Enabling…"
msgstr "Enabling…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1057
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1093
msgid "Exclude"
msgstr "排除"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Exclude instead"
msgstr "改为排除"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:53
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:71
msgid "Filter by %s"
msgstr "按 %s 筛选"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:136
msgid "Filter by interface"
msgstr "按接口筛选"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:112
msgid "Filter logs by rule (hint: %s). Ctrl+click to open firewall settings."
msgstr "按规则筛选日志(提示:%s)。Ctrl+点击可打开防火墙设置。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1497
#: applications/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1534
#: openwrt-feed/luci-app-fwlive/root/usr/share/luci/menu.d/luci-app-fwlive.json:3
msgid "Firewall Live View"
msgstr "防火墙实时视图"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:43
msgid "Flags"
msgstr "标志"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:45
msgid "Flow"
msgstr "流"
#: applications/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
#: openwrt-feed/luci-app-fwlive/root/usr/share/rpcd/acl.d/luci-app-fwlive.json:3
msgid "Grant access to firewall live log view"
msgstr "授予防火墙实时日志视图的访问权限"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1669
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1706
msgid "Help"
msgstr "帮助"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:853
msgid "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
msgstr "High event rate — table refresh is throttled to protect the browser. The buffer still updates; refresh will resume automatically."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:878
msgid ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
msgstr ""
"High event rate — table refresh is throttled to protect the browser. The "
"buffer still updates; refresh will resume automatically."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1048
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1084
msgid "ICMPv6"
msgstr "ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:35
msgid "IN"
msgstr "IN"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "If Row tint looks missing, the active LuCI theme may omit success/error or info/warn CSS variables; fwlive falls back to local colors (air-gapped, no data leaves the device)."
msgstr "如果行染色看起来缺失,当前 LuCI 主题可能未提供成功/错误 CSS 变量;fwlive 会回退到本地颜色(隔离运行,数据不会离开本机)。"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1717
msgid ""
"If Row tint looks missing, the active LuCI theme may omit success/error or "
"info/warn CSS variables; fwlive falls back to local colors (air-gapped, no "
"data leaves the device)."
msgstr ""
"如果行染色看起来缺失,当前 LuCI 主题可能未提供成功/错误 CSS 变量;fwlive "
"会回退到本地颜色(隔离运行,数据不会离开本机)。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
msgstr "If the WAN is quiet, wait for probes or use the optional ping check in Help / the enabling-logs guide."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:205
msgid ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
msgstr ""
"If the WAN is quiet, wait for probes or use the optional ping check in "
"Help / the enabling-logs guide."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:80
msgid "Include instead"
msgstr "改为å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:34
msgid "Interface"
msgstr "接口"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1645
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1682
msgid "Interface (prefix ! to exclude)"
msgstr "接口(! 前缀表示排除)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:165
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:232
msgid "Ill configure this under Network → Firewall"
msgstr "Ill configure this under Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:194
msgid "Kernel log modules missing"
msgstr "Kernel log modules missing"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid "Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:195
msgid ""
"Kernel netfilter log modules are missing. Install kmod-nf-log-ipv4 and kmod-"
"nf-log-ipv6 (or kmod-nf-log / kmod-nf-log6), then reload the firewall."
msgstr "缺少å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:44
msgid "Len"
msgstr "长度"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1576
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
msgid "Limit"
msgstr "限制"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:210
msgid "Logging is off on this router"
msgstr "Logging is off on this router"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:252
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:256
msgid "Manual test (System → Terminal):"
msgstr "手动测试(系统 → 终端):"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1547
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1552
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:46
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:221
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1584
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1589
msgid "Message"
msgstr "消息"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1643
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1680
msgid "More filters"
msgstr "更多筛选"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/links.js:37
msgid "Network → Firewall"
msgstr "Network → Firewall"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid "No WAN firewall zone found in /etc/config/firewall. Configure zones under"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:187
msgid ""
"No WAN firewall zone found in /etc/config/firewall. Configure zones under"
msgstr "在 /etc/config/firewall 中未找到 WAN 防火墙区域。请在以下位置配置区域"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:185
msgid "No WAN zone found"
msgstr "No WAN zone found"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:163
msgid "Not now"
msgstr "Not now"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:220
msgid "Nothing changes until you click Enable."
msgstr "Nothing changes until you click Enable."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:36
msgid "OUT"
msgstr "出接口"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1567
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1604
msgid "One line"
msgstr "单行"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:206
msgid "Open firewall zone settings"
msgstr "打开防火墙区域设置"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
msgstr "OpenWrt does not write firewall events to the log until you turn logging on. Live View only shows what the firewall already logs — it does not add allow/deny rules."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:211
msgid ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
msgstr ""
"OpenWrt does not write firewall events to the log until you turn logging on. "
"Live View only shows what the firewall already logs — it does not add allow/"
"deny rules."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1595
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1632
msgid "Palette"
msgstr "Palette"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1517
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1554
msgid "Pause"
msgstr "暂停"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
msgid "Paused"
msgstr "已暂停"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:38
msgid "Proto"
msgstr "协议"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1631
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1668
msgid "Protocol — common values"
msgstr "协议 — 常用值"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1613
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1650
msgid "Quick search"
msgstr "快速搜索"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:91
msgid "Remove filter"
msgstr "移除筛选"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:953
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:989
msgid "Resume"
msgstr "ç»§ç»­"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1588
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
msgid "Row tint"
msgstr "行染色"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1678
msgid "Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/red, default) or Accessible (teal/orange). Action text stays colored either way."
msgstr "勾选后行着色显示放行/拒绝行背景。可选经典(绿/红,默认)或无障碍(青绿/橙)。操作文本在两种模式下均保持着色。"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1715
msgid ""
"Row tint shows pass/deny row backgrounds when checked. Choose Classic (green/"
"red, default) or Accessible (teal/orange). Action text stays colored either "
"way."
msgstr ""
"勾选后行着色显示放行/拒绝行背景。可选经典(绿/红,默认)或无障碍(青绿/橙)。"
"操作文本在两种模式下均保持着色。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1507
msgid "Row tint used a local color fallback because the active LuCI theme did not apply pass/deny backgrounds."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1544
msgid ""
"Row tint used a local color fallback because the active LuCI theme did not "
"apply pass/deny backgrounds."
msgstr "行染色使用了本地颜色回退,因为当前 LuCI 主题未应用放行/拒绝背景色。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:33
msgid "Rule"
msgstr "规则"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:934
msgid "Rule labels incomplete — map truncated"
msgstr "Rule labels incomplete — map truncated"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:938
msgid "Rule labels unavailable"
msgstr "Rule labels unavailable"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:936
msgid "Rule labels unavailable — temp file failed"
msgstr "Rule labels unavailable — temp file failed"
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:41
msgid "SPort"
msgstr "源端口"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1607
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1644
msgid "Show hostnames"
msgstr "显示主机名"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1586
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
msgid "Show pass/deny row background colors"
msgstr "显示放行/拒绝行背景色"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1533
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1570
msgid "Simple"
msgstr "简洁"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:39
msgid "Source"
msgstr "源地址"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1646
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1683
msgid "Source IP contains (! to exclude)"
msgstr "源 IP å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1647
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1684
msgid "Source port (! to exclude)"
msgstr "源端口(! 表示排除)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1674
msgid "The rate shown for WAN logging is the firewall zone log_limit. OpenWrt defaults to 10/minute when no explicit limit is configured; fwlive does not impose this cap."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1711
msgid ""
"The rate shown for WAN logging is the firewall zone log_limit. OpenWrt "
"defaults to 10/minute when no explicit limit is configured; fwlive does not "
"impose this cap."
msgstr "WAN 日志显示的速率是防火墙区域的 log_limit。未"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1671
msgid "The table updates automatically when your firewall logs traffic. Use Pause if it moves too fast."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1708
msgid ""
"The table updates automatically when your firewall logs traffic. Use Pause "
"if it moves too fast."
msgstr "防火墙写"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1508
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1545
msgid "Theme tint fallback"
msgstr "主题着色回退"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/table.js:31
msgid "Time"
msgstr "时间"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
msgstr "Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal LAN browsing is not logged."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:219
msgid ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
msgstr ""
"Turns on WAN zone drop/reject logging (same as Network → Firewall → wan → "
"Log). Rate-limited by the zone log_limit (OpenWrt default 10/minute). Normal "
"LAN browsing is not logged."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:126
msgid "Undo:"
msgstr "Undo:"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1679
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1716
msgid "Use Detail for all columns (flags, length, raw message)."
msgstr "使用「详细」可查看全部列(标志、长度、原始消息)。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1521
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1525
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1558
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1562
msgid "View"
msgstr "视图"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:591
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:598
msgid "WAN drop/reject logging is off."
msgstr "WAN drop/reject logging is off."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
msgstr "WAN drop/reject logging is on. Blocked inbound WAN traffic will show up here. Normal LAN browsing will not."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:204
msgid ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound WAN traffic will show up "
"here. Normal LAN browsing will not."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:555
msgid "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
msgstr "WAN drop/reject logging is on. Blocked inbound traffic should appear here as it happens — not normal LAN browsing."
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:562
msgid ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
msgstr ""
"WAN drop/reject logging is on. Blocked inbound traffic should appear here as "
"it happens — not normal LAN browsing."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:557
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:564
msgid "WAN logging is already enabled."
msgstr "WAN 日志已处于开启状态。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:88
msgid "WAN logging on"
msgstr "WAN 日志:开"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:94
msgid "WAN logging on (%s). Click to disable."
msgstr "WAN 日志:开(%s)。点击可"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:77
msgid "WAN logging unavailable: missing kernel log modules"
msgstr "WAN 日志不可用:缺少å"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:70
msgid "WAN logging unavailable: no WAN zone"
msgstr "WAN 日志不可用:无 WAN 区域"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:203
msgid "Waiting for firewall events"
msgstr "Waiting for firewall events"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:951
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1502
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:987
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1539
msgid "Watching"
msgstr "监视中"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1560
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1597
msgid "Wrap"
msgstr "自动换行"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:123
msgid "allow/deny rules, LAN logging, or anything else."
msgstr "allow/deny rules, LAN logging, or anything else."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:786
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:811
msgid "buffer full"
msgstr "缓冲区已满"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:81
msgid "default 10/minute"
msgstr "默认 10 条/分钟"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:28
msgid "is"
msgstr "是"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:781
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:806
msgid "loading buffer"
msgstr "正在加载缓冲区"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:881
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:906
msgid "loading…"
msgstr "loading…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:37
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/chips.js:44
msgid "not"
msgstr "非"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1065
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1101
msgid "not AH"
msgstr "非 AH"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1064
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1100
msgid "not ESP"
msgstr "非 ESP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1063
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1099
msgid "not GRE"
msgstr "非 GRE"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1060
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1096
msgid "not ICMP"
msgstr "非 ICMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1061
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1097
msgid "not ICMPv6"
msgstr "非 ICMPv6"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1062
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1098
msgid "not IGMP"
msgstr "非 IGMP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1066
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1102
msgid "not SCTP"
msgstr "非 SCTP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1058
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1094
msgid "not TCP"
msgstr "非 TCP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1059
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1095
msgid "not UDP"
msgstr "非 UDP"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1623
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1660
msgid "not block"
msgstr "非阻止"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1622
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1659
msgid "not drop"
msgstr "非丢弃"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1621
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1658
msgid "not pass"
msgstr "非放行"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1624
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1661
msgid "not reject"
msgstr "非拒绝"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1625
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1662
msgid "not unknown"
msgstr "非未知"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1636
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:1673
msgid "or type…"
msgstr "或输入…"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:788
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:813
msgid "render paused (high rate)"
msgstr "渲染暂停(速率过高)"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:790
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:815
msgid "scroll frozen — scroll to top to follow live"
msgstr "scroll frozen — scroll to top to follow live"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:118
msgid "sets log on the WAN firewall zone and reloads the firewall."
msgstr "sets log on the WAN firewall zone and reloads the firewall."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:254
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:258
msgid "then ping the router."
msgstr "然后 ping 路由器。"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:128
msgid "turn it back off with the WAN logging on control on the watch strip."
msgstr "turn it back off with the WAN logging on control on the watch strip."
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:506
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:513
msgid "using fw4"
msgstr "使用 fw4"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:504
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/view/status/fwlive.js:511
msgid "using iptables"
msgstr "使用 iptables"
#: applications/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
#: openwrt-feed/luci-app-fwlive/htdocs/luci-static/resources/fwlive/logging.js:89
msgid "· %s"
msgstr "· %s"
@@ -23,5 +23,8 @@ input="$(cat)"
[ -n "$input" ] || input='{"log":[]}'
printf '%s' '{"log":['
jsonfilter -s "$input" -e '@.log[*]' 2>/dev/null | _fwlive_filter_json_entries
# Prefer stdin over -s: Linux MAX_ARG_STRLEN is 128KiB; a raised logd ring
# (or paused FETCH_LINES_MAX poll) can exceed that and make jsonfilter fail
# while this script still printed {"log":[]} and exited 0 (#234).
printf '%s' "$input" | jsonfilter -e '@.log[*]' 2>/dev/null | _fwlive_filter_json_entries
printf '%s' ']}'
@@ -62,18 +62,20 @@ json_escape() {
}'
}
# Production lock dir must be root-owned with no group/other write (#204).
# Production lock dir must be owned by euid with no group/other write (#204).
# Avoid GNU/BusyBox `stat -c` — stock OpenWrt omits FEATURE_STAT_FORMAT (#232).
wan_log_lock_dir_safe() {
dir="$1"
[ -n "$dir" ] || return 1
[ -L "$dir" ] && return 1
[ -d "$dir" ] || return 1
u=$(stat -c '%u' "$dir" 2>/dev/null) || return 1
[ "$u" = "0" ] || return 1
m=$(stat -c '%a' "$dir" 2>/dev/null) || return 1
o=$((m % 10))
g=$(( (m / 10) % 10 ))
[ $((o & 2)) -eq 0 ] && [ $((g & 2)) -eq 0 ]
# POSIX -O: true when the effective uid owns the directory (rpcd → root).
# shellcheck disable=SC3067 # BusyBox/dash implement -O; SC3067 is overly strict
[ -O "$dir" ] || return 1
# Fail closed if group or other write is set. find -perm is on BusyBox;
# -prune limits the walk to this directory only.
_writable=$(find "$dir" -prune \( -perm -020 -o -perm -002 \) -print 2>/dev/null) || return 1
[ -z "$_writable" ]
}
# Acquire the exclusive logging lock on fd 9. Blocks until free; fails closed
@@ -97,7 +99,12 @@ acquire_wan_log_lock() {
chmod 0600 "$WAN_LOG_LOCK_FILE" 2>/dev/null || true
chown 0:0 "$WAN_LOG_LOCK_FILE" 2>/dev/null || true
[ -L "$WAN_LOG_LOCK_FILE" ] && return 1
exec 9>"$WAN_LOG_LOCK_FILE" 2>/dev/null || return 1
# Probe in a subshell first: a failed `exec` redirection aborts a POSIX
# non-interactive shell outright, so `|| return 1` on the real exec would
# never run — and `2>/dev/null` on the same exec would permanently
# silence this process's stderr on the success path (#244).
( exec 9>>"$WAN_LOG_LOCK_FILE" ) 2>/dev/null || return 1
exec 9>>"$WAN_LOG_LOCK_FILE"
flock 9 2>/dev/null || {
exec 9>&-
return 1
@@ -136,31 +143,106 @@ wan_zone_log_value() {
uci -q get "firewall.${zone}.log" 2>/dev/null
}
# True when two firewall section ids refer to the same WAN zone (issue #239).
wan_firewall_zone_same() {
_a="$1"
_b="$2"
[ -n "$_a" ] && [ -n "$_b" ] || return 1
[ "$_a" = "$_b" ] && return 0
_na=$(uci -q get "firewall.${_a}.name" 2>/dev/null) || return 1
_nb=$(uci -q get "firewall.${_b}.name" 2>/dev/null) || return 1
_ta=$(uci -q get "firewall.${_a}" 2>/dev/null) || return 1
_tb=$(uci -q get "firewall.${_b}" 2>/dev/null) || return 1
[ "$_na" = "wan" ] && [ "$_nb" = "wan" ] && [ "$_ta" = "zone" ] && [ "$_tb" = "zone" ]
}
wan_log_staged_line_section() {
_line="$1"
case "$_line" in
firewall.*.log=*)
_rest=${_line#firewall.}
printf '%s' "${_rest%%.log=*}"
;;
-firewall.*.log)
_rest=${_line#-firewall.}
printf '%s' "${_rest%.log}"
;;
"- firewall."*.log)
_rest=${_line#- firewall.}
printf '%s' "${_rest%.log}"
;;
esac
}
# Zone ids that may appear in `uci changes` for firewall.<id>.log (issue #239).
wan_log_staged_zone_ids() {
_zone="$1"
_staged="$2"
_seen="|${_zone}|"
printf '%s\n' "$_zone"
while IFS= read -r _line || [ -n "$_line" ]; do
[ -n "$_line" ] || continue
_sid=$(wan_log_staged_line_section "$_line")
[ -n "$_sid" ] || continue
case "$_seen" in *"|${_sid}|"*) continue ;; esac
wan_firewall_zone_same "$_zone" "$_sid" || continue
_seen="${_seen}${_sid}|"
printf '%s\n' "$_sid"
done <<EOF
$_staged
EOF
}
# Match only firewall.<zone>.log deltas in `uci changes` — not log_limit.
wan_log_foreign_staged_lines() {
_zone="$1"
_staged="$2"
_ours_prefix="firewall.${_zone}.log="
_del="-firewall.${_zone}.log"
_del_sp="- firewall.${_zone}.log"
printf '%s\n' "$_staged" | awk -v p="$_ours_prefix" -v d="$_del" -v ds="$_del_sp" '
_ids=$(wan_log_staged_zone_ids "$_zone" "$_staged")
printf '%s\n' "$_staged" | awk -v ids="$_ids" '
BEGIN {
n = split(ids, id, "\n")
for (i = 1; i <= n; i++) {
if (id[i] == "") continue
np++
p[np] = "firewall." id[i] ".log="
d[np] = "-firewall." id[i] ".log"
ds[np] = "- firewall." id[i] ".log"
}
}
NF == 0 { next }
index($0, p) == 1 { next }
$0 == d || $0 == ds { next }
{ print }
{
ours = 0
for (i = 1; i <= np; i++) {
if (index($0, p[i]) == 1) { ours = 1; break }
if ($0 == d[i] || $0 == ds[i]) { ours = 1; break }
}
if (!ours) print
}
'
}
wan_log_count_our_staged_lines() {
_zone="$1"
_staged="$2"
_ours_prefix="firewall.${_zone}.log="
_del="-firewall.${_zone}.log"
_del_sp="- firewall.${_zone}.log"
printf '%s\n' "$_staged" | awk -v p="$_ours_prefix" -v d="$_del" -v ds="$_del_sp" '
_ids=$(wan_log_staged_zone_ids "$_zone" "$_staged")
printf '%s\n' "$_staged" | awk -v ids="$_ids" '
BEGIN {
n = split(ids, id, "\n")
for (i = 1; i <= n; i++) {
if (id[i] == "") continue
np++
p[np] = "firewall." id[i] ".log="
d[np] = "-firewall." id[i] ".log"
ds[np] = "- firewall." id[i] ".log"
}
}
NF == 0 { next }
index($0, p) == 1 { c++; next }
$0 == d || $0 == ds { c++; next }
{
for (i = 1; i <= np; i++) {
if (index($0, p[i]) == 1) { c++; break }
if ($0 == d[i] || $0 == ds[i]) { c++; break }
}
}
END { print c+0 }
'
}
+91 -38
View File
@@ -44,6 +44,13 @@ slug_key() {
echo "$1" | tr '[:upper:]' '[:lower:]' | tr ' _' '--'
}
# Cap rules JSON size so a huge ruleset cannot unbound an rpcd reply (#229).
RULES_MAP_MAX_KEYS=512
RULES_MAP_MAX_BYTES=65536
# Same wall-clock bound as nft for iptables-save / ip6tables-save (#229).
# Overridable for host tests (e.g. FWLIVE_IPTABLES_TIMEOUT=1).
IPTABLES_TIMEOUT="${FWLIVE_IPTABLES_TIMEOUT:-5}"
map_add() {
key="$1"
val="$2"
@@ -54,10 +61,21 @@ map_add() {
# Uses anchored pattern "\"<key>\":" to avoid substring false positives
# ("foo" vs "foobar") and value false positives ("see foo").
# Quoting "$esc_key" makes the match literal (no glob escaping needed).
# Callers apply UCI, then labeled (!fw4:) prefixes, then unlabeled
# cosmetics so first-wins prefers authoritative names (#230).
case "$OUT" in
*"\"$esc_key\":"*) return 0 ;;
esac
esc_val=$(printf '%s' "$val" | json_escape)
_pair_len=$(( ${#esc_key} + ${#esc_val} + 5 ))
_next_len=$(( ${#OUT} + _pair_len ))
[ -n "$OUT" ] && _next_len=$((_next_len + 1))
if [ "${_map_keys:-0}" -ge "$RULES_MAP_MAX_KEYS" ] || \
[ "$_next_len" -gt "$RULES_MAP_MAX_BYTES" ]; then
_map_overflow=1
return 0
fi
_map_keys=$(( ${_map_keys:-0} + 1 ))
if [ -n "$OUT" ]; then
OUT="${OUT},"
fi
@@ -114,22 +132,26 @@ run_with_timeout() {
if command -v timeout >/dev/null 2>&1; then
timeout "$secs" "$@" 2>/dev/null
else
"$@" 2>/dev/null
# Fail closed (#229): never run unbounded when timeout is absent.
return 127
fi
}
map_log_prefix_entry() {
prefix="$1"
comment="$2"
pass="${3:-all}"
label=''
if [ -n "$comment" ] && is_uci_style_name "$comment"; then
label="$comment"
fi
# Single normalization site is map_prefix_with_label; idempotent so
# double-normalization is safe but this redundant call is removed.
[ -n "$prefix" ] || return 0
case "$pass" in
labeled) [ -n "$label" ] || return 0 ;;
unlabeled) [ -z "$label" ] || return 0 ;;
esac
map_prefix_with_label "$prefix" "$label"
}
@@ -154,7 +176,10 @@ $(uci_rule_names)
EOF
}
# pass=labeled|unlabeled|all — labeled before unlabeled so !fw4: beats
# an earlier cosmetic for the same prefix under first-wins (#230).
map_from_nft_stream() {
pass="${1:-all}"
while IFS= read -r line; do
# Capture [^"]* plus escaped-quote units (\"...) so a log prefix or
# comment containing an escaped quote is not truncated at the quote.
@@ -172,14 +197,22 @@ map_from_nft_stream() {
esac
if [ -n "$prefix" ]; then
case "$pass" in
labeled) [ -n "$label" ] || continue ;;
unlabeled) [ -z "$label" ] || continue ;;
esac
map_prefix_with_label "$prefix" "$label"
elif [ -n "$label" ]; then
case "$pass" in
unlabeled) continue ;;
esac
map_prefix_with_label "$label" "$label"
fi
done
}
map_from_iptables_save_stream() {
pass="${1:-all}"
while IFS= read -r line; do
case "$line" in
-*) ;;
@@ -188,7 +221,7 @@ map_from_iptables_save_stream() {
prefix=$(echo "$line" | sed -n 's/.*--log-prefix "\([^"\\]*\(\\.[^"\\]*\)*\)".*/\1/p')
comment=$(echo "$line" | sed -n 's/.*--comment "\([^"\\]*\(\\.[^"\\]*\)*\)".*/\1/p')
[ -n "$prefix" ] || continue
map_log_prefix_entry "$prefix" "$comment"
map_log_prefix_entry "$prefix" "$comment" "$pass"
done
}
@@ -239,65 +272,85 @@ _fwlive_mktemp() {
build_rules_map() {
OUT=''
_map_keys=0
_map_overflow=''
_enrich_error=''
backend=$(detect_firewall_backend)
# UCI first, then labeled stream prefixes, then unlabeled cosmetics
# (#230). First-wins keeps UCI over nft and !fw4: over cosmetic.
map_uci_rule_names
case "$backend" in
nft)
_tmp=$(_fwlive_mktemp fwlive-nft) || _tmp=''
if [ -n "$_tmp" ]; then
# nft ruleset write to /tmp (tmpfs on OpenWrt, RAM) is
# duration-bounded by NFT_TIMEOUT (5s) for nft only;
# iptables-save/ip6tables-save below run with no timeout.
# Size is not bounded by code; typical firewall ruleset
# dumps are <100KB and the file is removed immediately
# after parsing so RAM impact is negligible in practice.
# No pipeline subshell: accumulation stays in main shell via
# redirect for global first-wins dedup.
if nft_list_ruleset >"$_tmp" 2>/dev/null; then
map_from_nft_stream <"$_tmp"
_rules_dump=$(_fwlive_mktemp fwlive-nft) || _rules_dump=''
if [ -n "$_rules_dump" ]; then
# Dumps land on /tmp (tmpfs). Duration bounded by
# NFT_TIMEOUT / IPTABLES_TIMEOUT; key/byte caps in map_add.
if nft_list_ruleset >"$_rules_dump" 2>/dev/null; then
map_from_nft_stream labeled <"$_rules_dump"
map_from_nft_stream unlabeled <"$_rules_dump"
fi
rm -f "$_tmp"
rm -f "$_rules_dump"
else
_enrich_error='mktemp_failed'
fi
;;
iptables)
_tmp=$(_fwlive_mktemp fwlive-ipt) || _tmp=''
if [ -n "$_tmp" ]; then
if iptables-save >"$_tmp" 2>/dev/null; then
map_from_iptables_save_stream <"$_tmp"
_rules_dump=$(_fwlive_mktemp fwlive-ipt) || _rules_dump=''
if [ -n "$_rules_dump" ]; then
if run_with_timeout "$IPTABLES_TIMEOUT" iptables-save >"$_rules_dump" 2>/dev/null; then
map_from_iptables_save_stream labeled <"$_rules_dump"
map_from_iptables_save_stream unlabeled <"$_rules_dump"
fi
rm -f "$_tmp"
rm -f "$_rules_dump"
else
_enrich_error='mktemp_failed'
fi
if command -v ip6tables-save >/dev/null 2>&1; then
_tmp=$(_fwlive_mktemp fwlive-ip6t) || _tmp=''
if [ -n "$_tmp" ]; then
if ip6tables-save >"$_tmp" 2>/dev/null; then
map_from_iptables_save_stream <"$_tmp"
_rules_dump=$(_fwlive_mktemp fwlive-ip6t) || _rules_dump=''
if [ -n "$_rules_dump" ]; then
if run_with_timeout "$IPTABLES_TIMEOUT" ip6tables-save >"$_rules_dump" 2>/dev/null; then
map_from_iptables_save_stream labeled <"$_rules_dump"
map_from_iptables_save_stream unlabeled <"$_rules_dump"
fi
rm -f "$_tmp"
rm -f "$_rules_dump"
elif [ -z "$_enrich_error" ]; then
_enrich_error='mktemp_failed'
fi
fi
;;
esac
printf '{"backend":"%s","rules":{%s}}' "$backend" "$OUT"
_rules_json="{\"backend\":\"$backend\",\"rules\":{$OUT}"
if [ -n "$_enrich_error" ]; then
_rules_json="${_rules_json},\"error\":\"${_enrich_error}\""
elif [ -n "$_map_overflow" ]; then
_rules_json="${_rules_json},\"error\":\"rules_truncated\""
fi
printf '%s}' "$_rules_json"
}
rulesmap_from_iptables_file() {
file="$1"
OUT=''
_map_keys=0
_map_overflow=''
[ "$file" = "$RULESMAP_IPTABLES_FILE" ] || return 1
[ -f "$file" ] || return 1
map_from_iptables_save_stream < "$file"
printf '{"backend":"iptables","rules":{%s}}' "$OUT"
map_from_iptables_save_stream labeled < "$file"
map_from_iptables_save_stream unlabeled < "$file"
_rules_json="{\"backend\":\"iptables\",\"rules\":{$OUT}"
if [ -n "$_map_overflow" ]; then
_rules_json="${_rules_json},\"error\":\"rules_truncated\""
fi
printf '%s}' "$_rules_json"
}
poll_clamp_lines() {
# Contract: non-digit input returns default 50; digit strings are
# clamped to 1..POLL_LINES_MAX with leading zeros stripped. The
# caller (poll_lines_from_input) already filters non-digits, but this
# helper is now directly testable so it validates itself.
# clamped to 1..POLL_LINES_MAX with leading zeros stripped. Validates
# itself so __selftest can call it without jshn.
_val="$1"
case "$_val" in
''|*[!0-9]*)
@@ -305,19 +358,19 @@ poll_clamp_lines() {
return 0
;;
esac
_tmp=$(printf '%s' "$_val" | sed 's/^0*//')
if [ -z "$_tmp" ]; then
_digits=$(printf '%s' "$_val" | sed 's/^0*//')
if [ -z "$_digits" ]; then
printf '%s' "50"
return 0
fi
if [ "${#_tmp}" -gt "${#POLL_LINES_MAX}" ]; then
if [ "${#_digits}" -gt "${#POLL_LINES_MAX}" ]; then
printf '%s' "$POLL_LINES_MAX"
return 0
fi
if [ "$_tmp" -gt "$POLL_LINES_MAX" ]; then
if [ "$_digits" -gt "$POLL_LINES_MAX" ]; then
printf '%s' "$POLL_LINES_MAX"
else
printf '%s' "$_tmp"
printf '%s' "$_digits"
fi
}
+2 -2
View File
@@ -7,8 +7,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.8.26
PKG_RELEASE:=255
PKG_VERSION:=26.9.1
PKG_RELEASE:=256
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,31 +1,28 @@
2001:250::/30
2001:254::/31
2001:256:100::/48
2001:4510:1480::/41
2001:4510:400::/40
2001:4511:1480::/41
2001:678:10d0::/48
2001:678:120::/48
2001:678:53c::/48
2001:67c:c28::/48
2001:67c:ebc::/48
2001:678:970::/48
2001:7fa:5::/48
2001:c68::/32
2001:cc0::/32
2001:da8::/32
2001:daa:1::/48
2001:daa:2::/47
2001:daa:4::/47
2001:daa:6::/48
2001:daa:9::/48
2001:dc7::/32
2001:dd8:1::/48
2001:dd9::/48
2001:df5:4740::/48
2001:df1:61c0::/48
2001:df6:40::/48
2400:1160::/32
2400:3200::/32
2400:5280:f803::/48
2400:5a00::/32
2400:5a60:2::/48
2400:6000::/32
2400:6600::/32
2400:6e60:1301::/48
@@ -73,6 +70,7 @@
2400:9380:90b1::/48
2400:9380:90b2::/47
2400:9380:90b4::/46
2400:9380:9109::/48
2400:9380:9121::/48
2400:9380:9220::/47
2400:9380:9250::/47
@@ -83,10 +81,10 @@
2400:9380:92b1::/48
2400:9380:92b2::/47
2400:9380:92b4::/46
2400:9580:300::/48
2400:95e0::/48
2400:9600:8800::/48
2400:9620::/32
2400:a040::/32
2400:a860:1::/48
2400:a860:2::/47
2400:a860:4::/47
@@ -111,9 +109,6 @@
2401:1200::/48
2401:1320::/32
2401:1d40::/32
2401:20:1330::/46
2401:20:2104::/46
2401:20::/40
2401:2780::/32
2401:2a00:f000::/43
2401:2e00::/32
@@ -186,7 +181,6 @@
2401:de00::/32
2401:ec00::/32
2401:f860:100::/40
2401:f860:85::/48
2401:f860:88::/48
2401:f860:90::/48
2401:f860:92::/47
@@ -198,6 +192,7 @@
2402:2000::/32
2402:34e0::/32
2402:36e0::/44
2402:3d20::/35
2402:3f80:1400::/40
2402:4440:9000::/39
2402:4440:9200::/48
@@ -214,7 +209,6 @@
2402:4440:a000::/39
2402:4440:a800::/46
2402:4440:a810::/46
2402:4820::/32
2402:4b80::/32
2402:4e00::/32
2402:5920::/48
@@ -258,6 +252,7 @@
2402:f140:ff04::/48
2402:f140:ff10::/46
2402:f140:ff14::/48
2402:f140:ff24::/48
2402:f8c0::/42
2403:1b80::/48
2403:1ec0:1200::/48
@@ -270,11 +265,13 @@
2403:4280::/47
2403:4300::/32
2403:4c80::/48
2403:4fc0::/32
2403:5c80::/48
2403:600::/32
2403:6740::/48
2403:6a00::/32
2403:7580::/32
2403:7580:10::/46
2403:7580::/44
2403:8080:101::/48
2403:8c00::/32
2403:9b00:2000::/48
@@ -296,6 +293,7 @@
2403:ffc0:1200::/39
2404:1c40:503::/48
2404:1c80::/32
2404:2280:103::/48
2404:2280:105::/48
2404:2280:106::/47
2404:2280:109::/48
@@ -325,7 +323,6 @@
2404:2280:154::/48
2404:2280:156::/47
2404:2280:159::/48
2404:2280:15d::/48
2404:2280:15e::/47
2404:2280:160::/48
2404:2280:170::/48
@@ -340,7 +337,9 @@
2404:2280:190::/48
2404:2280:193::/48
2404:2280:196::/48
2404:2280:198::/45
2404:2280:198::/46
2404:2280:19c::/47
2404:2280:19e::/48
2404:2280:1a4::/46
2404:2280:1a8::/47
2404:2280:1b0::/48
@@ -389,7 +388,10 @@
2404:2280:265::/48
2404:2280:266::/47
2404:2280:268::/45
2404:2280:270::/44
2404:2280:270::/45
2404:2280:278::/47
2404:2280:27b::/48
2404:2280:27c::/46
2404:2280:282::/47
2404:2280:284::/47
2404:2280:288::/46
@@ -428,11 +430,14 @@
2404:2280:2f8::/47
2404:2280:2fb::/48
2404:2280:2fc::/48
2404:2280:303::/48
2404:2280:304::/46
2404:2280:308::/46
2404:2280:30d::/48
2404:2280:30c::/47
2404:2280:30e::/48
2404:2280:313::/48
2404:2280:314::/48
2404:2280:317::/48
2404:2280:316::/47
2404:3700::/48
2404:4dc0::/32
2404:6380:1000::/48
@@ -466,6 +471,8 @@
2404:bc0:4500::/43
2404:bc0:4620::/44
2404:bc0:4f00::/43
2404:c2c0:111::/48
2404:c2c0:112::/48
2404:c2c0:240::/44
2404:c2c0:280::/44
2404:c2c0:2c0::/44
@@ -492,7 +499,6 @@
2405:3140:31::/48
2405:3140:3a::/48
2405:68c0:21::/48
2405:6940::/48
2405:6c0:2::/48
2405:6c0:4::/48
2405:6f00:c101::/48
@@ -525,7 +531,7 @@
2406:5340:6666::/48
2406:5340:8888::/48
2406:6100::/32
2406:840:1000::/47
2406:840:1001::/48
2406:840:100::/47
2406:840:103::/48
2406:840:10::/45
@@ -536,7 +542,7 @@
2406:840:20::/48
2406:840:2380::/48
2406:840:2800::/48
2406:840:2880::/47
2406:840:2881::/48
2406:840:2::/48
2406:840:2e0::/48
2406:840:3800::/48
@@ -566,22 +572,23 @@
2406:840:806::/48
2406:840:80::/47
2406:840:8100::/40
2406:840:841::/48
2406:840:842::/48
2406:840:860::/48
2406:840:880::/46
2406:840:90::/48
2406:840:9178::/48
2406:840:9200::/40
2406:840:9680::/44
2406:840:9700::/40
2406:840:9804::/46
2406:840:981a::/48
2406:840:981c::/46
2406:840:9962::/47
2406:840:9964::/48
2406:840:9966::/47
2406:840:996c::/48
2406:840:9970::/44
2406:840:a10::/48
2406:840:a10::/47
2406:840:a31::/48
2406:840:c02::/48
2406:840:c60::/48
@@ -589,8 +596,6 @@
2406:840:cc2::/48
2406:840:e080::/44
2406:840:e0cf::/48
2406:840:e0e0::/46
2406:840:e0e4::/47
2406:840:e10f::/48
2406:840:e14f::/48
2406:840:e280::/44
@@ -599,22 +604,20 @@
2406:840:e304::/48
2406:840:e306::/48
2406:840:e330::/44
2406:840:e57e::/48
2406:840:e600::/44
2406:840:e620::/47
2406:840:e80f::/48
2406:840:eb01::/48
2406:840:eb02::/47
2406:840:eb00::/46
2406:840:eb04::/47
2406:840:eb07::/48
2406:840:eb08::/48
2406:840:eb0b::/48
2406:840:eb0f::/48
2406:840:eb80::/42
2406:840:ee40::/47
2406:840:ee44::/48
2406:840:ee4b::/48
2406:840:ee4d::/48
2406:840:eee5::/48
2406:840:eff0::/44
2406:840:f0a1::/48
2406:840:f0aa::/48
2406:840:f380::/44
@@ -622,30 +625,47 @@
2406:840:f402::/48
2406:840:f44f::/48
2406:840:f680::/44
2406:840:f860::/46
2406:840:f868::/47
2406:840:f86c::/48
2406:840:f889::/48
2406:840:fa01::/48
2406:840:fa40::/48
2406:840:fa60::/44
2406:840:fc10::/44
2406:840:fc20::/43
2406:840:fc40::/42
2406:840:fc90::/44
2406:840:fca0::/43
2406:840:fc10::/46
2406:840:fc20::/46
2406:840:fc30::/46
2406:840:fc40::/46
2406:840:fc50::/46
2406:840:fc60::/46
2406:840:fc70::/46
2406:840:fc90::/46
2406:840:fca0::/46
2406:840:fcb0::/46
2406:840:fcd0::/48
2406:840:fcf0::/46
2406:840:fcf4::/47
2406:840:fd30::/44
2406:840:fd40::/42
2406:840:fd80::/43
2406:840:fd30::/48
2406:840:fd40::/48
2406:840:fd45::/48
2406:840:fd46::/48
2406:840:fd48::/47
2406:840:fd50::/48
2406:840:fd55::/48
2406:840:fd56::/48
2406:840:fd58::/47
2406:840:fd60::/48
2406:840:fd65::/48
2406:840:fd66::/48
2406:840:fd68::/47
2406:840:fd70::/48
2406:840:fd75::/48
2406:840:fd76::/48
2406:840:fd78::/47
2406:840:fd80::/48
2406:840:fd85::/48
2406:840:fd86::/48
2406:840:fd88::/47
2406:840:fd90::/46
2406:840:fd9f::/48
2406:840:fda0::/48
2406:840:fda7::/48
2406:840:fdb0::/48
2406:840:fdb7::/48
2406:840:fdc0::/48
2406:840:fdc7::/48
2406:840:fe50::/47
2406:840:fe73::/48
2406:840:fe90::/46
@@ -654,12 +674,12 @@
2406:840:fe98::/46
2406:840:fe9d::/48
2406:840:fe9e::/48
2406:840:fea1::/48
2406:840:fea2::/47
2406:840:fea4::/46
2406:840:fea8::/48
2406:840:feaa::/47
2406:840:feac::/46
2406:840:feb3::/48
2406:840:fec0::/48
2406:840:fec2::/47
2406:840:fec4::/48
@@ -670,7 +690,7 @@
2406:840:fed4::/48
2406:840:fed8::/48
2406:840:fedb::/48
2406:840:fedc::/47
2406:840:fedc::/48
2406:840:feed::/48
2406:840:fef2::/47
2406:840:fef4::/46
@@ -758,6 +778,7 @@
2408:8181:a220::/44
2408:8181:e000::/40
2408:8182:6000::/40
2408:8182:8000::/40
2408:8182:c000::/40
2408:8183:4000::/40
2408:8183:8000::/40
@@ -852,7 +873,7 @@
2408:8406:b580::/42
2408:8406:d00::/41
2408:8406:d80::/42
2408:8407:500::/42
2408:8407:520::/43
2408:8409:100::/41
2408:8409:1800::/40
2408:8409:1900::/41
@@ -1195,6 +1216,7 @@
2408:8818::/31
2408:882c::/32
2408:883a::/32
2408:8844:40::/43
2408:8844::/43
2408:8856::/31
2408:8858::/30
@@ -1367,23 +1389,24 @@
240c:4000::/22
240c:c000::/20
240d:4000::/21
240d:c000:f1e0::/47
240d:c000:f1ef::/48
240e::/20
2602:f46d:6::/48
2602:f46d:1::/48
2602:f92a:a460::/48
2602:f92a:a462::/48
2602:f92a:a468::/48
2602:f92a:a46d::/48
2602:f92a:a470::/48
2602:f92a:a474::/48
2602:f92a:a47d::/48
2602:f92a:dead::/48
2602:f9ba:10c::/48
2602:f9f6:400::/47
2602:f9f6:402::/48
2602:f9f6:450::/48
2602:fa02:36::/48
2602:fa02:d00::/40
2602:faa8:702::/48
2602:faa8:708::/47
2602:faa8:70c::/47
2602:faa8:70f::/48
2602:fbda:600::/48
2602:fbda:610::/48
@@ -1402,10 +1425,7 @@
2605:9d80:9042::/48
2605:9d80:9071::/48
2605:9d80:9092::/48
2804:1e48:9001::/48
2804:1e48:9002::/48
2a01:e281:a400::/48
2a01:e281:a410::/44
2a04:3e00:1002::/48
2a04:f580:8010::/47
2a04:f580:8090::/48
@@ -1431,45 +1451,28 @@
2a04:f580:9280::/48
2a04:f580:9290::/48
2a05:1085::/32
2a05:1087::/32
2a05:1086::/31
2a06:3600:e000::/40
2a06:3600:fb00::/40
2a06:3600:fc00::/38
2a06:3605::/32
2a06:3606::/31
2a06:9801:74c::/48
2a06:9f81:4600::/42
2a06:9801:1300::/40
2a06:9801:2ba::/48
2a06:9801:f95::/48
2a06:9f81:4600::/44
2a06:9f81:4620::/44
2a06:9f81:4640::/43
2a06:9f81:4660::/44
2a06:a005:2040::/44
2a06:a005:260::/43
2a06:a005:280::/43
2a06:a005:2a0::/44
2a06:a005:e50::/44
2a06:a005:e70::/44
2a07:54c1:2200::/46
2a07:54c1:2205::/48
2a0a:6040:6c40::/44
2a0a:6040:c700::/42
2a0a:6040:c770::/44
2a0a:6040:c7a0::/48
2a0a:6040:d600::/44
2a0a:6040:d610::/46
2a0a:6040:d615::/48
2a0a:6040:d616::/48
2a0a:6040:d618::/47
2a0a:6040:d623::/48
2a0a:6040:d624::/48
2a0a:6040:d629::/48
2a0a:6040:e541::/48
2a0a:6040:e543::/48
2a0a:6040:e544::/48
2a0a:6040:e54c::/48
2a06:de07:f800::/38
2a07:e000:20::/44
2a0a:d680:8100::/47
2a0a:d680:a31::/48
2a0a:d681:e000::/40
2a0a:d681:fb00::/40
2a0a:d681:fc00::/38
2a0a:d682:d000::/36
2a0a:d682:e000::/35
2a0a:d685:1e0::/47
2a0a:d685:1fb::/48
2a0a:d685:1fd::/48
2a0a:d685:1fe::/47
2a0a:d685:200::/47
2a0a:d685:300::/40
@@ -1477,92 +1480,71 @@
2a0a:d687:f004::/47
2a0a:d687:f007::/48
2a0a:d687:f008::/48
2a0b:4340:90::/48
2a0b:2542:300::/40
2a0b:4340:97::/48
2a0b:4e07:b8::/47
2a0c:b641:570::/47
2a0b:4e07:230::/44
2a0c:b641:571::/48
2a0c:b641:573::/48
2a0c:e641::/32
2a0d:2681::/32
2a0d:c7c7:400::/38
2a0e:4005:ff13::/48
2a0d:d941::/36
2a0e:4001:9000::/36
2a0e:4005:ff20::/48
2a0e:97c0:5ef::/48
2a0e:4005:ffdd::/48
2a0e:aa06:400::/44
2a0e:aa06:440::/48
2a0e:aa06:450::/44
2a0e:aa06:490::/44
2a0e:aa06:4ea::/48
2a0e:aa06::/40
2a0e:aa07:e144::/48
2a0e:aa07:e146::/48
2a0e:aa07:e148::/48
2a0e:aa07:e1a0::/44
2a0e:aa07:e280::/47
2a0e:aa07:e284::/46
2a0e:aa07:e288::/46
2a0e:aa07:e28d::/48
2a0e:aa07:e28e::/48
2a0e:aa07:f0d0::/46
2a0e:aa07:f0d4::/47
2a0e:aa07:f0d8::/48
2a0e:aa07:f0de::/47
2a0e:b107:14a0::/44
2a0e:b107:1522::/48
2a0e:b107:1a40::/46
2a0e:b107:2440::/44
2a0e:b107:1f0::/47
2a0e:b107:740::/44
2a0e:b107:da0::/44
2a0f:1cc5:1000::/48
2a0f:1cc5:1010::/44
2a0f:1cc5:1032::/47
2a0f:1cc5:1034::/47
2a0f:1cc5:1041::/48
2a0f:1cc5:110::/44
2a0f:1cc5:130::/44
2a0f:1cc5:1310::/44
2a0f:1cc5:140::/42
2a0f:1cc5:14::/46
2a0f:1cc5:1600::/44
2a0f:1cc5:1901::/48
2a0f:1cc5:1c00::/47
2a0f:1cc5:1c01::/48
2a0f:1cc5:1c02::/48
2a0f:1cc5:1c20::/48
2a0f:1cc5:1c30::/48
2a0f:1cc5:1cc0::/48
2a0f:1cc5:1f::/48
2a0f:1cc5:2000::/40
2a0f:1cc5:2510::/44
2a0f:1cc5:2520::/44
2a0f:1cc5:2600::/41
2a0f:1cc5:2680::/42
2a0f:1cc5:2d01::/48
2a0f:1cc5:2d03::/48
2a0f:1cc5:3203::/48
2a0f:1cc5:3222::/48
2a0f:1cc5:3700::/43
2a0f:1cc5:40::/48
2a0f:1cc5:4508::/46
2a0f:1cc5:450c::/47
2a0f:1cc5:4300::/40
2a0f:1cc5:4508::/45
2a0f:1cc5:4510::/45
2a0f:1cc5:451c::/46
2a0f:1cc5:45ff::/48
2a0f:1cc5:4700::/40
2a0f:1cc5:4600::/39
2a0f:1cc5:49f0::/48
2a0f:1cc5:600::/47
2a0f:1cc5:603::/48
2a0f:1cc5:642::/48
2a0f:1cc5:661::/48
2a0f:1cc5:644::/48
2a0f:1cc5:662::/48
2a0f:1cc5:6a0::/48
2a0f:1cc5:a00::/48
2a0f:1cc5:c01::/48
2a0f:1cc5:f00::/45
2a0f:1cc5:6a0::/47
2a0f:1cc5:f00::/46
2a0f:1cc5:f05::/48
2a0f:1cc5:f06::/47
2a0f:1cc5:f08::/47
2a0f:1cc5:fff::/48
2a0f:1cc6:b110::/47
2a0f:1cc6:b210::/47
2a0f:1cc6:b210::/48
2a0f:1cc6:b212::/48
2a0f:1cc6:b240::/43
2a0f:2706::/32
2a0f:6280:1400::/44
2a0f:6280:1430::/44
2a0f:6280:1440::/43
2a0f:6280:1460::/44
2a0f:6280:1400::/43
2a0f:6280:1440::/42
2a0f:6280:1480::/44
2a0f:6284:4c00::/43
2a0f:6281::/32
2a0f:6284:4c20::/44
2a0f:6284:4c30::/48
2a0f:6284:4c40::/43
@@ -1572,134 +1554,77 @@
2a0f:6284:4cc0::/43
2a0f:85c1:bfe::/48
2a0f:9400:6110::/48
2a0f:9fc0::/29
2a0f:a140::/29
2a10:ccc0:cc1::/48
2a10:ccc0:cc2::/48
2a10:ccc0:ccc::/48
2a12:3fc2:aa40::/44
2a10:fa81:d00::/40
2a10:fa86:4000::/36
2a10:fa86::/34
2a10:fa86:c000::/34
2a12:3fc6:2::/48
2a12:3fc6::/47
2a12:cb40:1::/48
2a12:cb40:2::/48
2a12:cb41:1200::/44
2a12:cb41:1300::/43
2a12:cb41:1300::/44
2a12:cb41:13f0::/44
2a12:cb41:600::/44
2a12:cb41::/44
2a12:cb46::/36
2a12:cb47:ffff::/48
2a13:1800:10::/48
2a13:1800:300::/44
2a13:1800:80::/44
2a13:1800::/48
2a13:1801:180::/43
2a13:1801:200::/44
2a13:1802::/43
2a13:8c87::/32
2a13:9500:194::/47
2a13:a5c3:f000::/40
2a13:a5c3:ff41::/48
2a13:a5c3:ff50::/44
2a13:a5c5::/48
2a13:aac4:f000::/44
2a13:b487:1200::/42
2a13:b487:1330::/47
2a14:67c1:70::/48
2a14:67c1:74::/47
2a14:67c1:a020::/48
2a14:67c1:a023::/48
2a14:67c1:a024::/48
2a14:67c1:a02a::/48
2a14:67c1:a02f::/48
2a14:67c1:a110::/44
2a14:67c1:a123::/48
2a14:67c1:a125::/48
2a14:67c1:a128::/48
2a14:67c1:a144::/48
2a14:67c1:b100::/46
2a14:67c1:b105::/48
2a14:67c1:b107::/48
2a14:67c1:b110::/48
2a14:67c1:b130::/46
2a14:67c1:b134::/48
2a14:67c1:b136::/48
2a14:67c1:b141::/48
2a14:67c1:b142::/47
2a14:67c1:b146::/47
2a14:67c1:b148::/48
2a14:67c1:b511::/48
2a14:67c1:b514::/48
2a14:67c1:b530::/44
2a14:67c1:b563::/48
2a14:67c1:b578::/48
2a14:67c1:b582::/48
2a14:67c1:b586::/47
2a14:67c1:b588::/47
2a14:67c1:b590::/48
2a14:67c1:b5e0::/44
2a14:67c1:c300::/40
2a14:67c1:c600::/40
2a14:67c2:500::/40
2a14:67c2:a10::/47
2a14:67c2:a21::/48
2a14:67c2:a22::/47
2a14:67c2:a2f::/48
2a14:67c2:a30::/48
2a14:67c2:a41::/48
2a14:67c2:a50::/48
2a14:67c2:a70::/47
2a14:67c2:a80::/47
2a14:67c2:a90::/48
2a14:67c2:aa1::/48
2a14:67c2:c05::/48
2a14:67c2:c08::/47
2a14:67c2:c0c::/47
2a13:c8c3:e803::/48
2a13:e5c0:ee02::/48
2a14:4380::/29
2a14:5f00::/29
2a14:67c1:b500::/40
2a14:67c2:519::/48
2a14:67c2:520::/48
2a14:67c3:1100::/47
2a14:67c3:190::/47
2a14:67c3:192::/48
2a14:67c3:30::/44
2a14:67c3:360::/48
2a14:67c3:9990::/44
2a14:67c3:c0::/48
2a14:67c3:caf0::/44
2a14:67c3:fff0::/44
2a14:7580:730::/44
2a14:7580:740::/44
2a14:7580:d00::/43
2a14:7580:d10::/44
2a14:7580:d20::/46
2a14:7580:d41::/48
2a14:7580:d42::/47
2a14:7580:dff::/48
2a14:7580:ffee::/48
2a14:7580:fff3::/48
2a14:7580:fffa::/48
2a14:7581:30b6::/48
2a14:7581:3100::/40
2a14:7581:3810::/48
2a14:7581:3814::/48
2a14:7581:ffb::/48
2a14:7583:efff::/48
2a14:7583:f220::/43
2a14:7583:f240::/42
2a14:7583:f300::/46
2a14:7583:f304::/47
2a14:7583:f306::/48
2a14:7581:3818::/48
2a14:7582:7000::/36
2a14:7583:efe7::/48
2a14:7583:efef::/48
2a14:7583:f411::/48
2a14:7583:f4f0::/47
2a14:7583:f4f0::/48
2a14:7583:f4f4::/48
2a14:7583:f4fe::/48
2a14:7583:f500::/48
2a14:7583:f701::/48
2a14:7583:f703::/48
2a14:7583:f704::/46
2a14:7583:f708::/46
2a14:7583:f704::/47
2a14:7583:f707::/48
2a14:7583:f708::/47
2a14:7583:f70c::/48
2a14:7583:f743::/48
2a14:7583:f744::/48
2a14:7583:f764::/48
2a14:7586:6100::/47
2a14:7586:6103::/48
2a14:7586:6104::/46
2a14:7586:6104::/47
2a14:7586:6106::/48
2a14:7586:6108::/48
2a14:7586:6110::/48
2a14:7586:6113::/48
2a14:7586:6300::/44
2a14:7586:6500::/48
2a14:7dc0:506::/48
2a14:7dc0:520::/48
2a14:7dc0:52f::/48
2a14:ae00:50::/44
2c0f:f7a8:8011::/48
2c0f:f7a8:8050::/48
@@ -1709,5 +1634,4 @@
2c0f:f7a8:8211::/48
2c0f:f7a8:9020::/48
2c0f:f7a8:9041::/48
2c0f:f7a8:9211::/48
2c0f:f7a8:9220::/48
@@ -23,4 +23,4 @@ rbspsxp.vivox.com
rbswxp.vivox.com
Mijia Cloud
dlg.io.mi.com
marscdn.c2c.wechat.com
regexp:(^|.*\.)c2c\.wechat\.com$
@@ -13,6 +13,7 @@
173ng.com
18board.com
18comic.org
18comic.vip
18mh.net
1984bbs.com
1991way.com
@@ -127,6 +128,7 @@ agoogleaday.com
agro.hk
ai.dev
ai.studio
aihub.top
aiosearch.com
aiph.net
airconsole.com
@@ -221,6 +223,7 @@ api.moomoobull.com
api.palworldgame.com
api.pureapk.com
api.recaptcha.net
api.shuaiapi.com
api.steampowered.com
api5.futunn.com
apiary.io
@@ -294,7 +297,6 @@ atlanta168.com
atnext.com
auctions.yahoo.co.jp
audacy.com
auntology.fandom.com
autodraw.com
av.movie
av01.tv
@@ -342,6 +344,7 @@ baramangaonline.com
barnabu.co.uk
bartender.dowjones.com
barton.de
basemaps.arcgis.com
bastillepost.com
bayvoice.net
bb-chat.tv
@@ -560,6 +563,7 @@ break.com
breakgfw.com
breakingtweets.com
breakwall.net
briarproject.org
brill.com
brizzly.com
broadpressinc.com
@@ -686,6 +690,7 @@ centauro.com.br
centerforhumanreprod.com
centralnation.com
centurys.net
cerebras.ai
certificate-transparency.org
certificate.revocationcheck.com
cfr.org
@@ -701,6 +706,7 @@ character.ai
chat.com
chat.lmsys.org
chatgpt.com
chatgpt.site
chatpdf.com
chaturbate.com
checkgfw.com
@@ -766,10 +772,12 @@ chrome.com
chromecast.com
chromeexperiments.com
chromestatus.com
cht.com.tw
ci-en.jp
cia.gov
cici.com
ciciai.com
circle19.org
cirosantilli.com
citizencn.com
citizenlab.ca
@@ -782,6 +790,7 @@ civilmedia.tw
civitai.com
cixiaoya.club
ck101.com
clashyun.com
classicalguitarblog.net
claude.ai
claude.com
@@ -991,6 +1000,7 @@ disneyplus.com
disp.cc
disqus.com
dit-inc.us
divdyn.com
diyin.org
dizhuzhishang.com
dl-laby.jp
@@ -1140,6 +1150,7 @@ eromanga-kingdom.com
eromangadouzin.com
eromon.net
esg.t91y.com
esim.redteago.com
eslite.com
esurance.com
etherdelta.com
@@ -1162,6 +1173,7 @@ exmormon.org
expatshield.com
expecthim.com
expekt.com
experience.arcgis.com
exploader.net
expressnews.com
expressvpn.com
@@ -1201,6 +1213,7 @@ falundafaindia.org
falunhr.org
famunion.com
fanbox.cc
fandom.com
fangeqiang.com
fanglizhi.info
fangong.org
@@ -1439,6 +1452,7 @@ geti2p.net
getlantern.org
getmalus.com
getmdl.io
getmonero.org
getoutline.org
getsession.org
getsync.com
@@ -1852,6 +1866,7 @@ himalayan-foundation.org
himemix.com
hindustantimes.com
hinet.net
historylines.net
hitbtc.com
hitomi.la
hive.blog
@@ -1891,7 +1906,6 @@ holyspiritspeaks.org
home.saxo
homedepot.com
homeservershow.com
hongkong.fandom.com
hongkongfp.com
hongzhi.li
honven.xyz
@@ -2170,6 +2184,7 @@ kanshifang.com
kantie.org
kaotic.com
karayou.com
kards.com
kathmandupost.com
kawaiikawaii.jp
kawase.com
@@ -2194,6 +2209,7 @@ kinmen.org.tw
kinmen.travel
kinokuniya.com
kiwi.kz
kiwix.org
kk-whys.co.jp
kkbox.com
kknews.cc
@@ -2254,6 +2270,7 @@ lenwhite.com
leonardo.ai
lesoir.be
letscorp.net
level-plus.net
lexica.art
lhakar.org
li.taipei
@@ -2300,6 +2317,7 @@ liveleak.com
livemint.com
livestream.com
livevideo.com
livingatlas.arcgis.com
livingstream.com
lmarena.ai
localbitcoins.com
@@ -2387,6 +2405,7 @@ mattwilcox.net
maven.neoforged.net
mcadforums.com
mcaf.ee
mceindex.com
mcusercontent.com
md-t.org
me.me
@@ -2517,7 +2536,6 @@ mosavi.io
motherless.com
movements.org
moviefap.com
mozilla.ai
mpettis.com
mpfinance.com
mpinews.com
@@ -2632,6 +2650,7 @@ nga.mil
nhentai.net
nic.cz.cc
nic.gov
nicoseiga.jp
nicovideo.jp
nightswatch.top
nikke-en.com
@@ -2672,6 +2691,7 @@ ntd.tv
ntdtv.com
ntdtv.com.tw
ntdtv.cz
nthlink.com
nuexpo.com
nurgo-software.com
nusatrip.com
@@ -2716,6 +2736,7 @@ oklink.com
okpool.me
okx.com
old.honeynet.org
oldmapsonline.org
olehdtv.com
olelive.com
olevod.com
@@ -2986,7 +3007,6 @@ puffinbrowser.com
pullfolio.co
pure18.com
pureconcepts.net
puredns.org
pureinsight.org
purepdf.com
purevpn.com
@@ -3031,7 +3051,6 @@ radio.co
radio.garden
radioaustralia.net.au
radiohilight.net
radiojar.com
radioline.co
radiovaticana.org
radiovncr.com
@@ -3137,6 +3156,7 @@ rxhj.net
s-cute.com
s.yimg.com
s3-ap-northeast-1.amazonaws.com
s3.dualstack.us-west-2.amazonaws.com
sacks.com
sacom.hk
sadistic-v.com
@@ -3144,7 +3164,6 @@ sadpanda.us
safechat.com
safeguarddefenders.com
safervpn.com
sagernet.org
saintyculture.com
sakuralive.com
salvation.org.hk
@@ -3157,6 +3176,7 @@ savetibet.de
savetibet.org
savetibetstore.org
saveuighur.org
sb.sb
sbme.me
sbti.unun.dev
schema.org
@@ -3433,6 +3453,7 @@ synapse.org
syncback.com
synergyse.com
syosetu.com
sysub.com
t-g.com
t.co
t.me
@@ -3646,6 +3667,7 @@ to-porno.com
togetter.com
token.im
tokenlon.im
tokenplus.app
tokyo-porn-tube.com
tokyocn.com
tomp3.cc
@@ -3687,6 +3709,7 @@ trtworld.com
truebuddha-md.org
trustwallet.com
truthsocial.com
tryai.dev
tryheart.jp
tsdr.uspto.gov
tt1069.com
@@ -3868,6 +3891,7 @@ uyghurstudies.org
uyghurtribunal.com
uygur.fc2web.com
uymaarip.com
v.recipes
v2.help
v2.hysteria.network
v2ex.com
@@ -4078,6 +4102,7 @@ wiktionary.org
willw.net
wilsoncenter.org
windscribe.com
windy.com
wingamestore.com
wingy.site
wionews.com
@@ -4120,6 +4145,7 @@ woyaolian.org
wp.com
wplace.live
wpoforum.com
write.as
writesonic.com
wsj.com
wsj.net
@@ -4132,7 +4158,6 @@ wwitv.com
www.ajsands.com
www.antd.org
www.aolnews.com
www.clashverge.dev
www.cmoinc.org
www.dmm.com
www.eastturkistan.net
@@ -4168,6 +4193,7 @@ x.co
x.com
x.company
x3guide.com
x86.fr
xbabe.com
xbookcn.com
xbtce.com
@@ -4310,6 +4336,7 @@ zdnet.com.tw
zello.com
zenmate.com
zenmate.com.ru
zenmux.ai
zerohedge.com
zeronet.io
zh-hans.cfsh99.com
+1 -1
View File
@@ -17,7 +17,7 @@ LUCI_NAME:=luci-theme-footstrap
FOOTSTRAP_VERSION?=
ifneq ($(FOOTSTRAP_VERSION),)
PKG_VERSION:=$(FOOTSTRAP_VERSION)
PKG_RELEASE:=49
PKG_RELEASE:=50
endif
LUCI_TITLE:=Footstrap Theme
@@ -673,8 +673,39 @@ function build() {
];
/* ---- the catalogue this router has not got ----
*
* The theme's translations are their own packages since 0.14.4, the way every `luci-app-*`
* ships them, and nothing in a package manager can read `uci luci.main.lang` to fetch the right
* one: apk learns it from `install-if` against `luci-i18n-base-<lang>` (owfeed.yml), opkg has no
* conditional form of that at all, and a router upgraded from 0.14.3 through the feed simply
* loses the catalogue that used to ride inside the theme (issue #41). `install.sh` covers its
* own path; this covers the one nobody ran a script on.
*
* ASKED OF THE PAGE, not of the package list: the theme has no ubus call of its own and must not
* grow one for this. `_()` returns its argument unchanged when no catalogue answers, so asking
* for a string the catalogue certainly carries is the whole test.
*
* `Layout` is that string a caption this very form renders, present in every catalogue under `po/`. A word
* that only LOOKS certain is worse than no check: `Appearance` is in the source but obsolete in
* the catalogues (`#~ msgid`), so testing it reported "not translated" on a router whose
* Russian catalogue was installed and working.
*
* The language comes from the document, not from `L.env`, which carries no language field at
* all the dispatcher stamps `<html lang>` and that is what the page knows.
*
* Nothing is shown on an English or `auto` router, where there is no catalogue to miss. */
const lang = (document.documentElement.getAttribute('lang') || '').trim();
const untranslated = lang && lang !== 'en' && lang !== 'auto' &&
_('Layout', 'footstrap') === 'Layout';
const missing = untranslated ? E('div', { 'class': 'fs-ap-verrow fs-ap-i18n' }, [
E('span', {}, [ _('This theme is not translated on this router yet.', 'footstrap') + ' ' ]),
E('code', {}, [ 'luci-i18n-footstrap-' + lang ])
]) : '';
defaults.push(E('div', { 'class': 'fs-ap-footer' }, [
E('div', { 'class': 'fs-ap-verrow' }, [ versionLink ])
E('div', { 'class': 'fs-ap-verrow' }, [ versionLink ]),
missing
]));
/* not .cbi-section: inside a tab pane that is a card within a card, and the stock tabs put
+125 -132
View File
@@ -11,145 +11,144 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.9\n"
#: htdocs/luci-static/resources/fs-appearance.js:238
#: htdocs/luci-static/resources/fs-appearance.js:401
msgctxt "footstrap"
msgid "Accent"
msgstr "Acento"
#: htdocs/luci-static/resources/fs-appearance.js:361
#: htdocs/luci-static/resources/fs-appearance.js:481
msgctxt "footstrap"
msgid "As in file"
msgstr "Como en el archivo"
#: ucode/template/themes/footstrap/sysauth.ut:70
#: ucode/template/themes/footstrap/sysauth.ut:96
msgid "Authorization Required"
msgstr "Se requiere autorización"
#: htdocs/luci-static/resources/fs-appearance.js:172
#: htdocs/luci-static/resources/fs-appearance.js:334
msgctxt "footstrap"
msgid "Auto"
msgstr "Auto"
#: htdocs/luci-static/resources/fs-appearance.js:205
#: htdocs/luci-static/resources/fs-appearance.js:365
msgctxt "footstrap"
msgid "Auto-collapse"
msgstr "Colapso automático"
#: htdocs/luci-static/resources/fs-appearance.js:656
#: htdocs/luci-static/resources/fs-appearance.js:773
msgctxt "footstrap"
msgid "Background"
msgstr "Fondo"
#: htdocs/luci-static/resources/fs-widgets.js:259
#: htdocs/luci-static/resources/fs-appearance.js:185
msgctxt "footstrap"
msgid "Barely visible %s"
msgstr "Apenas visible %s"
#: htdocs/luci-static/resources/fs-appearance.js:294
#: htdocs/luci-static/resources/fs-appearance.js:424
msgctxt "footstrap"
msgid "Borders"
msgstr "Bordes"
#: htdocs/luci-static/resources/fs-appearance.js:275
#: htdocs/luci-static/resources/fs-appearance.js:421
msgctxt "footstrap"
msgid "Cards"
msgstr "Tarjetas"
#: htdocs/luci-static/resources/fs-appearance.js:331
#: htdocs/luci-static/resources/fs-appearance.js:454
msgctxt "footstrap"
msgid "Choose SVG"
msgstr "Elegir SVG"
#: htdocs/luci-static/resources/fs-appearance.js:324
#: htdocs/luci-static/resources/fs-appearance.js:447
msgctxt "footstrap"
msgid "Choose image"
msgstr "Elegir imagen"
#: htdocs/luci-static/resources/fs-widgets.js:258
#: htdocs/luci-static/resources/fs-appearance.js:184
msgctxt "footstrap"
msgid "Clearly visible %s"
msgstr "Bien visible %s"
#: htdocs/luci-static/resources/fs-chrome.js:415
#: ucode/template/themes/footstrap/header.ut:150
#: htdocs/luci-static/resources/fs-chrome.js:430
#: ucode/template/themes/footstrap/header.ut:138
msgid "Collapse menu"
msgstr "Contraer menú"
#: htdocs/luci-static/resources/fs-appearance.js:344
#: htdocs/luci-static/resources/fs-appearance.js:653
#: htdocs/luci-static/resources/fs-appearance.js:465
#: htdocs/luci-static/resources/fs-appearance.js:770
msgctxt "footstrap"
msgid "Colours"
msgstr "Colores"
#: htdocs/luci-static/resources/fs-appearance.js:188
#: htdocs/luci-static/resources/fs-appearance.js:350
msgctxt "footstrap"
msgid "Compact"
msgstr "Compacto"
#: htdocs/luci-static/resources/fs-appearance.js:545
#: htdocs/luci-static/resources/fs-appearance.js:644
msgctxt "footstrap"
msgid "Confirm reset"
msgstr "Confirmar restablecimiento"
#: htdocs/luci-static/resources/fs-widgets.js:268
#: htdocs/luci-static/resources/fs-appearance.js:193
msgctxt "footstrap"
msgid "Contrast %s:1 (WCAG AA wants %s:1 here)"
msgstr "Contraste %s:1 (WCAG AA exige aquí %s:1)"
#: htdocs/luci-static/resources/fs-appearance.js:281
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "Controls"
msgstr "Controles"
#: htdocs/luci-static/resources/fs-prefs.js:1099
#: htdocs/luci-static/resources/fs-prefs.js:1101
#: htdocs/luci-static/resources/fs-assets.js:32
msgctxt "footstrap"
msgid "Could not process the image."
msgstr "No se pudo procesar la imagen."
#: htdocs/luci-static/resources/fs-appearance.js:521
#: htdocs/luci-static/resources/fs-appearance.js:624
msgctxt "footstrap"
msgid "Could not save the default. Reload the page and try again."
msgstr ""
"No se pudo guardar la configuración predeterminada. Recargue la página e "
"inténtelo de nuevo."
#: htdocs/luci-static/resources/fs-appearance.js:256
#: htdocs/luci-static/resources/fs-appearance.js:404
msgctxt "footstrap"
msgid "Danger"
msgstr "Peligro"
#: htdocs/luci-static/resources/fs-appearance.js:174
#: htdocs/luci-static/resources/fs-appearance.js:336
msgctxt "footstrap"
msgid "Dark"
msgstr "Oscuro"
#: htdocs/luci-static/resources/fs-appearance.js:657
#: htdocs/luci-static/resources/fs-appearance.js:774
msgctxt "footstrap"
msgid "Defaults"
msgstr "Predeterminados"
#: htdocs/luci-static/resources/fs-appearance.js:187
#: htdocs/luci-static/resources/fs-appearance.js:349
msgctxt "footstrap"
msgid "Density"
msgstr "Densidad"
#: htdocs/luci-static/resources/fs-appearance.js:341
#: htdocs/luci-static/resources/fs-appearance.js:462
msgctxt "footstrap"
msgid "Dim"
msgstr "Oscurecimiento"
#: htdocs/luci-static/resources/fs-widgets.js:261
#: htdocs/luci-static/resources/fs-appearance.js:187
msgctxt "footstrap"
msgid "Easy to read %s"
msgstr "Se lee bien %s"
#: htdocs/luci-static/resources/fs-chrome.js:415
#: htdocs/luci-static/resources/fs-chrome.js:430
msgid "Expand menu"
msgstr "Expandir menú"
#: htdocs/luci-static/resources/fs-appearance.js:366
#: htdocs/luci-static/resources/fs-appearance.js:451
#: htdocs/luci-static/resources/fs-appearance.js:486
#: htdocs/luci-static/resources/fs-appearance.js:564
msgctxt "footstrap"
msgid "File"
msgstr "Archivo"
@@ -162,80 +161,81 @@ msgstr ""
"Valores predeterminados de Apariencia de Footstrap para el router (Guardar "
"como predeterminado) y subida del fondo de inicio de sesión y del patrón"
#: ucode/template/themes/footstrap/partials/notices.ut:25
#: ucode/template/themes/footstrap/partials/notices.ut:24
msgid "Go to firmware upgrade..."
msgstr "Ir a la actualización del firmware..."
#: ucode/template/themes/footstrap/partials/notices.ut:16
#: ucode/template/themes/footstrap/partials/notices.ut:15
msgid "Go to password configuration..."
msgstr "Ir a la configuración de contraseñas..."
#: htdocs/luci-static/resources/fs-appearance.js:244
#: htdocs/luci-static/resources/fs-appearance.js:402
msgctxt "footstrap"
msgid "Good"
msgstr "Correcto"
#: htdocs/luci-static/resources/fs-widgets.js:263
#: htdocs/luci-static/resources/fs-appearance.js:189
msgctxt "footstrap"
msgid "Hard to read %s — large text only"
msgstr "Se lee mal %s: solo texto grande"
#: htdocs/luci-static/resources/fs-appearance.js:652
#: htdocs/luci-static/resources/fs-appearance.js:769
msgctxt "footstrap"
msgid "Interface"
msgstr "Interfaz"
#: ucode/template/themes/footstrap/sysauth.ut:60
#: ucode/template/themes/footstrap/sysauth.ut:78
msgid "Invalid username and/or password! Please try again."
msgstr "¡Nombre de usuario y/o contraseña incorrectos! Inténtelo de nuevo."
#: ucode/template/themes/footstrap/partials/notices.ut:31
#: ucode/template/themes/footstrap/partials/notices.ut:30
msgid "JavaScript required!"
msgstr "¡Se requiere JavaScript!"
#: htdocs/luci-static/resources/fs-appearance.js:204
#: htdocs/luci-static/resources/fs-appearance.js:364
msgctxt "footstrap"
msgid "Keep open"
msgstr "Mantener abierto"
#: htdocs/luci-static/resources/fs-appearance.js:190
#: htdocs/luci-static/resources/fs-appearance.js:352
msgctxt "footstrap"
msgid "Large"
msgstr "Grande"
#: htdocs/luci-static/resources/fs-appearance.js:166
#: htdocs/luci-static/resources/fs-appearance.js:328
#: htdocs/luci-static/resources/fs-appearance.js:700
msgctxt "footstrap"
msgid "Layout"
msgstr "Diseño"
#: htdocs/luci-static/resources/fs-appearance.js:173
#: htdocs/luci-static/resources/fs-appearance.js:335
msgctxt "footstrap"
msgid "Light"
msgstr "Claro"
#: ucode/template/themes/footstrap/sysauth.ut:142
#: ucode/template/themes/footstrap/sysauth.ut:162
msgid "Log in"
msgstr "Iniciar sesión"
#: ucode/template/themes/footstrap/partials/logout.ut:11
#: ucode/template/themes/footstrap/partials/logout.ut:13
#: ucode/template/themes/footstrap/partials/logout.ut:8
#: ucode/template/themes/footstrap/partials/logout.ut:15
msgid "Log out"
msgstr "Cerrar sesión"
#: ucode/template/themes/footstrap/partials/footer.ut:27
#: ucode/template/themes/footstrap/partials/footer.ut:25
msgid "Lua compatibility mode active"
msgstr "Modo de compatibilidad Lua activo"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Memory"
msgstr "Memoria"
#: ucode/template/themes/footstrap/header.ut:147
#: ucode/template/themes/footstrap/header.ut:158
#: ucode/template/themes/footstrap/header.ut:135
#: ucode/template/themes/footstrap/header.ut:146
msgid "Menu"
msgstr "Menú"
#: ucode/template/themes/footstrap/partials/notices.ut:23
#: ucode/template/themes/footstrap/partials/notices.ut:22
msgid ""
"No changes to settings will be stored and are lost after rebooting. This "
"mode should only be used to install a firmware upgrade"
@@ -244,178 +244,177 @@ msgstr ""
"reiniciar el sistema. Este modo solo debe usarse para instalar una "
"actualización de firmware"
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "No pages found"
msgstr "No se encontraron páginas"
#: ucode/template/themes/footstrap/partials/notices.ut:13
#: ucode/template/themes/footstrap/partials/notices.ut:12
msgid "No password set!"
msgstr "¡No se ha establecido ninguna contraseña!"
#: htdocs/luci-static/resources/fs-appearance.js:189
#: htdocs/luci-static/resources/fs-appearance.js:351
msgctxt "footstrap"
msgid "Normal"
msgstr "Normal"
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:562
msgctxt "footstrap"
msgid "Off"
msgstr "Apagado"
#: htdocs/luci-static/resources/fs-search.js:244
#: htdocs/luci-static/resources/fs-search.js:235
msgctxt "footstrap"
msgid "Pages"
msgstr "Páginas"
#: htdocs/luci-static/resources/fs-appearance.js:177
#: htdocs/luci-static/resources/fs-widgets.js:216
#: htdocs/luci-static/resources/fs-appearance.js:151
#: htdocs/luci-static/resources/fs-appearance.js:339
msgctxt "footstrap"
msgid "Palette"
msgstr "Paleta"
#: ucode/template/themes/footstrap/sysauth.ut:82
#: ucode/template/themes/footstrap/sysauth.ut:108
msgid "Password"
msgstr "Contraseña"
#: htdocs/luci-static/resources/fs-appearance.js:352
#: htdocs/luci-static/resources/fs-appearance.js:450
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:563
msgctxt "footstrap"
msgid "Pattern"
msgstr "Patrón"
#: htdocs/luci-static/resources/fs-prefs.js:945
#: htdocs/luci-static/resources/fs-prefs.js:947
#: htdocs/luci-static/resources/fs-assets.js:33
msgctxt "footstrap"
msgid "Please choose an SVG file."
msgstr "Elija un archivo SVG."
#: htdocs/luci-static/resources/fs-prefs.js:1131
#: htdocs/luci-static/resources/fs-assets.js:323
msgctxt "footstrap"
msgid "Please choose an image file."
msgstr "Por favor, seleccione un archivo de imagen."
#: ucode/template/themes/footstrap/sysauth.ut:72
#: ucode/template/themes/footstrap/sysauth.ut:98
msgid "Please enter your username and password."
msgstr "Por favor, ingrese su nombre de usuario y contraseña."
#: htdocs/luci-static/resources/fs-search.js:326
#: htdocs/luci-static/resources/fs-search.js:323
msgctxt "footstrap"
msgid "Recently visited"
msgstr "Visitado recientemente"
#: htdocs/luci-static/resources/fs-appearance.js:326
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:456
msgctxt "footstrap"
msgid "Remove"
msgstr "Eliminar"
#: htdocs/luci-static/resources/fs-appearance.js:483
#: htdocs/luci-static/resources/fs-appearance.js:556
#: htdocs/luci-static/resources/fs-appearance.js:588
#: htdocs/luci-static/resources/fs-appearance.js:655
msgctxt "footstrap"
msgid "Reset to default"
msgstr "Restablecer a valores predeterminados"
#: htdocs/luci-static/resources/fs-appearance.js:478
#: htdocs/luci-static/resources/fs-appearance.js:555
#: htdocs/luci-static/resources/fs-appearance.js:584
#: htdocs/luci-static/resources/fs-appearance.js:654
msgctxt "footstrap"
msgid "Reset to saved"
msgstr "Restablecer a lo guardado"
#: htdocs/luci-static/resources/fs-appearance.js:193
#: htdocs/luci-static/resources/fs-appearance.js:355
msgctxt "footstrap"
msgid "Rounding"
msgstr "Redondeo"
#: htdocs/luci-static/resources/fs-appearance.js:572
#: htdocs/luci-static/resources/fs-appearance.js:670
msgctxt "footstrap"
msgid "Router default"
msgstr "Configuración predeterminada del enrutador"
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:503
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:578
#: htdocs/luci-static/resources/fs-appearance.js:606
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Save as default"
msgstr "Guardar como predeterminado"
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Saved as default"
msgstr "Guardado como predeterminado"
#: htdocs/luci-static/resources/fs-appearance.js:342
#: htdocs/luci-static/resources/fs-appearance.js:463
msgctxt "footstrap"
msgid "Scale"
msgstr "Escala"
#: ucode/template/themes/footstrap/partials/search.ut:16
#: ucode/template/themes/footstrap/partials/search.ut:18
#: ucode/template/themes/footstrap/partials/search.ut:12
#: ucode/template/themes/footstrap/partials/search.ut:14
msgid "Search"
msgstr "Buscar"
#: htdocs/luci-static/resources/fs-search.js:238
#: htdocs/luci-static/resources/fs-search.js:265
#: htdocs/luci-static/resources/fs-search.js:229
#: htdocs/luci-static/resources/fs-search.js:255
msgctxt "footstrap"
msgid "Search pages"
msgstr "Buscar páginas"
#: htdocs/luci-static/resources/fs-search.js:239
#: htdocs/luci-static/resources/fs-search.js:230
msgctxt "footstrap"
msgid "Search pages…"
msgstr "Buscar páginas…"
#: htdocs/luci-static/resources/fs-appearance.js:167
#: htdocs/luci-static/resources/fs-appearance.js:329
msgctxt "footstrap"
msgid "Sidebar"
msgstr "Barra lateral"
#: htdocs/luci-static/resources/fs-appearance.js:287
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "Sidebar and bar"
msgstr "Barra lateral y superior"
#: ucode/template/themes/footstrap/header.ut:126
#: ucode/template/themes/footstrap/header.ut:115
msgid "Skip to content"
msgstr "Saltar al contenido"
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "Start typing to find a page"
msgstr "Empiece a escribir para encontrar una página"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Storage"
msgstr "Almacenamiento"
#: htdocs/luci-static/resources/fs-appearance.js:343
#: htdocs/luci-static/resources/fs-appearance.js:464
msgctxt "footstrap"
msgid "Strength"
msgstr "Intensidad"
#: htdocs/luci-static/resources/fs-appearance.js:202
#: htdocs/luci-static/resources/fs-appearance.js:362
msgctxt "footstrap"
msgid "Submenus"
msgstr "Submenús"
#: htdocs/luci-static/resources/fs-appearance.js:654
#: htdocs/luci-static/resources/fs-appearance.js:771
msgctxt "footstrap"
msgid "Surfaces"
msgstr "Superficies"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "System"
msgstr "Sistema"
#: ucode/template/themes/footstrap/partials/notices.ut:22
#: ucode/template/themes/footstrap/partials/notices.ut:21
msgid "System running in recovery (initramfs) mode."
msgstr "El sistema se está ejecutando en modo de recuperación (initramfs)."
#: htdocs/luci-static/resources/fs-select.js:756
#: htdocs/luci-static/resources/fs-select.js:647
msgid "Table"
msgstr "Tabla"
#: htdocs/luci-static/resources/fs-prefs.js:893
#: htdocs/luci-static/resources/fs-assets.js:97
msgctxt "footstrap"
msgid ""
"That SVG contains script or external references, which this theme will not "
@@ -423,44 +422,43 @@ msgid ""
msgstr ""
"Ese SVG contiene scripts o referencias externas, y este tema no lo instalará."
#: htdocs/luci-static/resources/fs-prefs.js:917
#: htdocs/luci-static/resources/fs-assets.js:134
msgctxt "footstrap"
msgid "That file could not be read."
msgstr "No se ha podido leer el archivo."
#: htdocs/luci-static/resources/fs-prefs.js:1103
#: htdocs/luci-static/resources/fs-assets.js:214
msgctxt "footstrap"
msgid "That file is not a readable image."
msgstr "Ese archivo no es una imagen legible."
#: htdocs/luci-static/resources/fs-prefs.js:889
#: htdocs/luci-static/resources/fs-prefs.js:892
#: htdocs/luci-static/resources/fs-assets.js:31
msgctxt "footstrap"
msgid "That file is not an SVG image."
msgstr "Ese archivo no es una imagen SVG."
#: htdocs/luci-static/resources/fs-prefs.js:948
#: htdocs/luci-static/resources/fs-assets.js:306
msgctxt "footstrap"
msgid "That file is too large."
msgstr "Ese archivo es demasiado grande."
#: htdocs/luci-static/resources/fs-prefs.js:1133
#: htdocs/luci-static/resources/fs-assets.js:325
msgctxt "footstrap"
msgid "That image is too large."
msgstr "Esa imagen es demasiado grande."
#: htdocs/luci-static/resources/fs-prefs.js:1026
#: htdocs/luci-static/resources/fs-assets.js:168
msgctxt "footstrap"
msgid "The router refused to delete the file (ubus status %d)."
msgstr "El router se negó a eliminar el archivo (estado ubus %d)."
#: htdocs/luci-static/resources/fs-appearance.js:171
#: htdocs/luci-static/resources/fs-appearance.js:360
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:480
msgctxt "footstrap"
msgid "Theme"
msgstr "Tema"
#: ucode/template/themes/footstrap/partials/notices.ut:14
#: ucode/template/themes/footstrap/partials/notices.ut:13
msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface."
@@ -468,7 +466,7 @@ msgstr ""
"Este enrutador no tiene contraseña. Configure una contraseña de "
"administrador para proteger la interfaz web."
#: htdocs/luci-static/resources/fs-appearance.js:504
#: htdocs/luci-static/resources/fs-appearance.js:607
msgctxt "footstrap"
msgid ""
"This browser is not storing preferences (site data is blocked), so a change "
@@ -479,87 +477,82 @@ msgstr ""
"bloqueados), así que un cambio aquí dura hasta que recargues. Guardar como "
"predeterminado sigue funcionando y se aplica a todos los navegadores."
#: htdocs/luci-static/resources/fs-appearance.js:214
#: htdocs/luci-static/resources/fs-appearance.js:702
msgctxt "footstrap"
msgid "This theme is not translated on this router yet."
msgstr "Este tema aún no está traducido en este router."
#: htdocs/luci-static/resources/fs-appearance.js:374
msgctxt "footstrap"
msgid "Tint (router identification)"
msgstr "Tinte (identificación del enrutador)"
#: htdocs/luci-static/resources/fs-appearance.js:229
#: htdocs/luci-static/resources/fs-appearance.js:387
msgctxt "footstrap"
msgid "Tint strength"
msgstr "Intensidad del tinte"
#: htdocs/luci-static/resources/fs-widgets.js:264
#: htdocs/luci-static/resources/fs-appearance.js:190
msgctxt "footstrap"
msgid "Too faint to read %s"
msgstr "Demasiado tenue para leerse %s"
#: htdocs/luci-static/resources/fs-appearance.js:168
#: htdocs/luci-static/resources/fs-appearance.js:330
msgctxt "footstrap"
msgid "Top"
msgstr "Arriba"
#: htdocs/luci-static/resources/fs-prefs.js:960
#: htdocs/luci-static/resources/fs-prefs.js:963
#: htdocs/luci-static/resources/fs-prefs.js:1043
#: htdocs/luci-static/resources/fs-prefs.js:1144
#: htdocs/luci-static/resources/fs-prefs.js:1147
#: htdocs/luci-static/resources/fs-assets.js:30
msgctxt "footstrap"
msgid "Upload failed."
msgstr "Error al cargar el archivo."
#: htdocs/luci-static/resources/fs-appearance.js:402
#: htdocs/luci-static/resources/fs-appearance.js:432
#: htdocs/luci-static/resources/fs-appearance.js:531
msgctxt "footstrap"
msgid "Uploading…"
msgstr "Cargando…"
#: ucode/template/themes/footstrap/sysauth.ut:76
#: ucode/template/themes/footstrap/sysauth.ut:102
msgid "Username"
msgstr "Nombre de usuario"
#: htdocs/luci-static/resources/fs-appearance.js:447
#: htdocs/luci-static/resources/fs-appearance.js:560
msgctxt "footstrap"
msgid "Wallpaper"
msgstr "Fondo de pantalla"
#: htdocs/luci-static/resources/fs-appearance.js:250
#: htdocs/luci-static/resources/fs-appearance.js:403
msgctxt "footstrap"
msgid "Warning"
msgstr "Advertencia"
#: ucode/template/themes/footstrap/partials/notices.ut:32
#: ucode/template/themes/footstrap/partials/notices.ut:31
msgid ""
"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
"Debe activar JavaScript en su navegador o LuCI no funcionará correctamente."
#: htdocs/luci-static/resources/fs-appearance.js:290
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "in the sidebar"
msgstr "en la barra lateral"
#: htdocs/luci-static/resources/fs-appearance.js:241
#: htdocs/luci-static/resources/fs-appearance.js:247
#: htdocs/luci-static/resources/fs-appearance.js:253
#: htdocs/luci-static/resources/fs-appearance.js:259
#: htdocs/luci-static/resources/fs-appearance.js:278
#: htdocs/luci-static/resources/fs-appearance.js:297
#: htdocs/luci-static/resources/fs-appearance.js:269
msgctxt "footstrap"
msgid "on a card"
msgstr "en una tarjeta"
#: htdocs/luci-static/resources/fs-appearance.js:284
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "on a control"
msgstr "en un control"
#: htdocs/luci-static/resources/fs-appearance.js:219
#: htdocs/luci-static/resources/fs-appearance.js:379
msgctxt "footstrap"
msgid "on the canvas"
msgstr "en el lienzo"
#: htdocs/luci-static/resources/fs-prefs.js:1121
#: htdocs/luci-static/resources/fs-assets.js:230
msgctxt "footstrap"
msgid ""
"the uploaded file could not be removed either; it is still on the router."
+125 -132
View File
@@ -7,143 +7,142 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: htdocs/luci-static/resources/fs-appearance.js:238
#: htdocs/luci-static/resources/fs-appearance.js:401
msgctxt "footstrap"
msgid "Accent"
msgstr "Акцент"
#: htdocs/luci-static/resources/fs-appearance.js:361
#: htdocs/luci-static/resources/fs-appearance.js:481
msgctxt "footstrap"
msgid "As in file"
msgstr "Как в файле"
#: ucode/template/themes/footstrap/sysauth.ut:70
#: ucode/template/themes/footstrap/sysauth.ut:96
msgid "Authorization Required"
msgstr "Требуется авторизация"
#: htdocs/luci-static/resources/fs-appearance.js:172
#: htdocs/luci-static/resources/fs-appearance.js:334
msgctxt "footstrap"
msgid "Auto"
msgstr "Авто"
#: htdocs/luci-static/resources/fs-appearance.js:205
#: htdocs/luci-static/resources/fs-appearance.js:365
msgctxt "footstrap"
msgid "Auto-collapse"
msgstr "Сворачивать"
#: htdocs/luci-static/resources/fs-appearance.js:656
#: htdocs/luci-static/resources/fs-appearance.js:773
msgctxt "footstrap"
msgid "Background"
msgstr "Фон"
#: htdocs/luci-static/resources/fs-widgets.js:259
#: htdocs/luci-static/resources/fs-appearance.js:185
msgctxt "footstrap"
msgid "Barely visible %s"
msgstr "Едва заметна %s"
#: htdocs/luci-static/resources/fs-appearance.js:294
#: htdocs/luci-static/resources/fs-appearance.js:424
msgctxt "footstrap"
msgid "Borders"
msgstr "Границы"
#: htdocs/luci-static/resources/fs-appearance.js:275
#: htdocs/luci-static/resources/fs-appearance.js:421
msgctxt "footstrap"
msgid "Cards"
msgstr "Карточки"
#: htdocs/luci-static/resources/fs-appearance.js:331
#: htdocs/luci-static/resources/fs-appearance.js:454
msgctxt "footstrap"
msgid "Choose SVG"
msgstr "Выбрать SVG"
#: htdocs/luci-static/resources/fs-appearance.js:324
#: htdocs/luci-static/resources/fs-appearance.js:447
msgctxt "footstrap"
msgid "Choose image"
msgstr "Выбрать изображение"
#: htdocs/luci-static/resources/fs-widgets.js:258
#: htdocs/luci-static/resources/fs-appearance.js:184
msgctxt "footstrap"
msgid "Clearly visible %s"
msgstr "Хорошо видна %s"
#: htdocs/luci-static/resources/fs-chrome.js:415
#: ucode/template/themes/footstrap/header.ut:150
#: htdocs/luci-static/resources/fs-chrome.js:430
#: ucode/template/themes/footstrap/header.ut:138
msgid "Collapse menu"
msgstr "Свернуть меню"
#: htdocs/luci-static/resources/fs-appearance.js:344
#: htdocs/luci-static/resources/fs-appearance.js:653
#: htdocs/luci-static/resources/fs-appearance.js:465
#: htdocs/luci-static/resources/fs-appearance.js:770
msgctxt "footstrap"
msgid "Colours"
msgstr "Цвета"
#: htdocs/luci-static/resources/fs-appearance.js:188
#: htdocs/luci-static/resources/fs-appearance.js:350
msgctxt "footstrap"
msgid "Compact"
msgstr "Компактно"
#: htdocs/luci-static/resources/fs-appearance.js:545
#: htdocs/luci-static/resources/fs-appearance.js:644
msgctxt "footstrap"
msgid "Confirm reset"
msgstr "Подтвердить сброс"
#: htdocs/luci-static/resources/fs-widgets.js:268
#: htdocs/luci-static/resources/fs-appearance.js:193
msgctxt "footstrap"
msgid "Contrast %s:1 (WCAG AA wants %s:1 here)"
msgstr "Контраст %s:1 (WCAG AA требует здесь %s:1)"
#: htdocs/luci-static/resources/fs-appearance.js:281
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "Controls"
msgstr "Элементы форм"
#: htdocs/luci-static/resources/fs-prefs.js:1099
#: htdocs/luci-static/resources/fs-prefs.js:1101
#: htdocs/luci-static/resources/fs-assets.js:32
msgctxt "footstrap"
msgid "Could not process the image."
msgstr "Не удалось обработать изображение."
#: htdocs/luci-static/resources/fs-appearance.js:521
#: htdocs/luci-static/resources/fs-appearance.js:624
msgctxt "footstrap"
msgid "Could not save the default. Reload the page and try again."
msgstr "Не удалось сохранить умолчание. Обновите страницу и повторите."
#: htdocs/luci-static/resources/fs-appearance.js:256
#: htdocs/luci-static/resources/fs-appearance.js:404
msgctxt "footstrap"
msgid "Danger"
msgstr "Опасность"
#: htdocs/luci-static/resources/fs-appearance.js:174
#: htdocs/luci-static/resources/fs-appearance.js:336
msgctxt "footstrap"
msgid "Dark"
msgstr "Тёмная"
#: htdocs/luci-static/resources/fs-appearance.js:657
#: htdocs/luci-static/resources/fs-appearance.js:774
msgctxt "footstrap"
msgid "Defaults"
msgstr "Умолчания"
#: htdocs/luci-static/resources/fs-appearance.js:187
#: htdocs/luci-static/resources/fs-appearance.js:349
msgctxt "footstrap"
msgid "Density"
msgstr "Плотность"
#: htdocs/luci-static/resources/fs-appearance.js:341
#: htdocs/luci-static/resources/fs-appearance.js:462
msgctxt "footstrap"
msgid "Dim"
msgstr "Затемнение"
#: htdocs/luci-static/resources/fs-widgets.js:261
#: htdocs/luci-static/resources/fs-appearance.js:187
msgctxt "footstrap"
msgid "Easy to read %s"
msgstr "Хорошо читается %s"
#: htdocs/luci-static/resources/fs-chrome.js:415
#: htdocs/luci-static/resources/fs-chrome.js:430
msgid "Expand menu"
msgstr "Развернуть меню"
#: htdocs/luci-static/resources/fs-appearance.js:366
#: htdocs/luci-static/resources/fs-appearance.js:451
#: htdocs/luci-static/resources/fs-appearance.js:486
#: htdocs/luci-static/resources/fs-appearance.js:564
msgctxt "footstrap"
msgid "File"
msgstr "Файл"
@@ -156,80 +155,81 @@ msgstr ""
"Общие настройки внешнего вида Footstrap для роутера (Сохранить как "
"умолчание), загрузка фонового изображения и узора"
#: ucode/template/themes/footstrap/partials/notices.ut:25
#: ucode/template/themes/footstrap/partials/notices.ut:24
msgid "Go to firmware upgrade..."
msgstr "Перейти к обновлению прошивки..."
#: ucode/template/themes/footstrap/partials/notices.ut:16
#: ucode/template/themes/footstrap/partials/notices.ut:15
msgid "Go to password configuration..."
msgstr "Перейти к настройке пароля..."
#: htdocs/luci-static/resources/fs-appearance.js:244
#: htdocs/luci-static/resources/fs-appearance.js:402
msgctxt "footstrap"
msgid "Good"
msgstr "Норма"
#: htdocs/luci-static/resources/fs-widgets.js:263
#: htdocs/luci-static/resources/fs-appearance.js:189
msgctxt "footstrap"
msgid "Hard to read %s — large text only"
msgstr "Плохо читается %s — только крупный текст"
#: htdocs/luci-static/resources/fs-appearance.js:652
#: htdocs/luci-static/resources/fs-appearance.js:769
msgctxt "footstrap"
msgid "Interface"
msgstr "Интерфейс"
#: ucode/template/themes/footstrap/sysauth.ut:60
#: ucode/template/themes/footstrap/sysauth.ut:78
msgid "Invalid username and/or password! Please try again."
msgstr "Неверное имя пользователя и/или пароль! Попробуйте ещё раз."
#: ucode/template/themes/footstrap/partials/notices.ut:31
#: ucode/template/themes/footstrap/partials/notices.ut:30
msgid "JavaScript required!"
msgstr "Требуется JavaScript!"
#: htdocs/luci-static/resources/fs-appearance.js:204
#: htdocs/luci-static/resources/fs-appearance.js:364
msgctxt "footstrap"
msgid "Keep open"
msgstr "Не сворачивать"
#: htdocs/luci-static/resources/fs-appearance.js:190
#: htdocs/luci-static/resources/fs-appearance.js:352
msgctxt "footstrap"
msgid "Large"
msgstr "Крупно"
#: htdocs/luci-static/resources/fs-appearance.js:166
#: htdocs/luci-static/resources/fs-appearance.js:328
#: htdocs/luci-static/resources/fs-appearance.js:700
msgctxt "footstrap"
msgid "Layout"
msgstr "Раскладка"
#: htdocs/luci-static/resources/fs-appearance.js:173
#: htdocs/luci-static/resources/fs-appearance.js:335
msgctxt "footstrap"
msgid "Light"
msgstr "Светлая"
#: ucode/template/themes/footstrap/sysauth.ut:142
#: ucode/template/themes/footstrap/sysauth.ut:162
msgid "Log in"
msgstr "Войти"
#: ucode/template/themes/footstrap/partials/logout.ut:11
#: ucode/template/themes/footstrap/partials/logout.ut:13
#: ucode/template/themes/footstrap/partials/logout.ut:8
#: ucode/template/themes/footstrap/partials/logout.ut:15
msgid "Log out"
msgstr "Выйти"
#: ucode/template/themes/footstrap/partials/footer.ut:27
#: ucode/template/themes/footstrap/partials/footer.ut:25
msgid "Lua compatibility mode active"
msgstr "Включён режим совместимости с Lua"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Memory"
msgstr "Память"
#: ucode/template/themes/footstrap/header.ut:147
#: ucode/template/themes/footstrap/header.ut:158
#: ucode/template/themes/footstrap/header.ut:135
#: ucode/template/themes/footstrap/header.ut:146
msgid "Menu"
msgstr "Меню"
#: ucode/template/themes/footstrap/partials/notices.ut:23
#: ucode/template/themes/footstrap/partials/notices.ut:22
msgid ""
"No changes to settings will be stored and are lost after rebooting. This "
"mode should only be used to install a firmware upgrade"
@@ -237,178 +237,177 @@ msgstr ""
"Изменения настроек не сохраняются и будут потеряны после перезагрузки. Этот "
"режим следует использовать только для установки обновления прошивки"
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "No pages found"
msgstr "Страницы не найдены"
#: ucode/template/themes/footstrap/partials/notices.ut:13
#: ucode/template/themes/footstrap/partials/notices.ut:12
msgid "No password set!"
msgstr "Пароль не установлен!"
#: htdocs/luci-static/resources/fs-appearance.js:189
#: htdocs/luci-static/resources/fs-appearance.js:351
msgctxt "footstrap"
msgid "Normal"
msgstr "Обычно"
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:562
msgctxt "footstrap"
msgid "Off"
msgstr "Выкл."
#: htdocs/luci-static/resources/fs-search.js:244
#: htdocs/luci-static/resources/fs-search.js:235
msgctxt "footstrap"
msgid "Pages"
msgstr "Страницы"
#: htdocs/luci-static/resources/fs-appearance.js:177
#: htdocs/luci-static/resources/fs-widgets.js:216
#: htdocs/luci-static/resources/fs-appearance.js:151
#: htdocs/luci-static/resources/fs-appearance.js:339
msgctxt "footstrap"
msgid "Palette"
msgstr "Палитра"
#: ucode/template/themes/footstrap/sysauth.ut:82
#: ucode/template/themes/footstrap/sysauth.ut:108
msgid "Password"
msgstr "Пароль"
#: htdocs/luci-static/resources/fs-appearance.js:352
#: htdocs/luci-static/resources/fs-appearance.js:450
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:563
msgctxt "footstrap"
msgid "Pattern"
msgstr "Узор"
#: htdocs/luci-static/resources/fs-prefs.js:945
#: htdocs/luci-static/resources/fs-prefs.js:947
#: htdocs/luci-static/resources/fs-assets.js:33
msgctxt "footstrap"
msgid "Please choose an SVG file."
msgstr "Выберите файл SVG."
#: htdocs/luci-static/resources/fs-prefs.js:1131
#: htdocs/luci-static/resources/fs-assets.js:323
msgctxt "footstrap"
msgid "Please choose an image file."
msgstr "Выберите файл изображения."
#: ucode/template/themes/footstrap/sysauth.ut:72
#: ucode/template/themes/footstrap/sysauth.ut:98
msgid "Please enter your username and password."
msgstr "Введите имя пользователя и пароль."
#: htdocs/luci-static/resources/fs-search.js:326
#: htdocs/luci-static/resources/fs-search.js:323
msgctxt "footstrap"
msgid "Recently visited"
msgstr "Недавние"
#: htdocs/luci-static/resources/fs-appearance.js:326
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:456
msgctxt "footstrap"
msgid "Remove"
msgstr "Убрать"
#: htdocs/luci-static/resources/fs-appearance.js:483
#: htdocs/luci-static/resources/fs-appearance.js:556
#: htdocs/luci-static/resources/fs-appearance.js:588
#: htdocs/luci-static/resources/fs-appearance.js:655
msgctxt "footstrap"
msgid "Reset to default"
msgstr "Сбросить к умолчанию"
#: htdocs/luci-static/resources/fs-appearance.js:478
#: htdocs/luci-static/resources/fs-appearance.js:555
#: htdocs/luci-static/resources/fs-appearance.js:584
#: htdocs/luci-static/resources/fs-appearance.js:654
msgctxt "footstrap"
msgid "Reset to saved"
msgstr "Сбросить к сохранённым"
#: htdocs/luci-static/resources/fs-appearance.js:193
#: htdocs/luci-static/resources/fs-appearance.js:355
msgctxt "footstrap"
msgid "Rounding"
msgstr "Скругление"
#: htdocs/luci-static/resources/fs-appearance.js:572
#: htdocs/luci-static/resources/fs-appearance.js:670
msgctxt "footstrap"
msgid "Router default"
msgstr "По умолчанию для роутера"
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:503
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:578
#: htdocs/luci-static/resources/fs-appearance.js:606
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Save as default"
msgstr "Сохранить по умолчанию"
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Saved as default"
msgstr "Сохранено по умолчанию"
#: htdocs/luci-static/resources/fs-appearance.js:342
#: htdocs/luci-static/resources/fs-appearance.js:463
msgctxt "footstrap"
msgid "Scale"
msgstr "Масштаб"
#: ucode/template/themes/footstrap/partials/search.ut:16
#: ucode/template/themes/footstrap/partials/search.ut:18
#: ucode/template/themes/footstrap/partials/search.ut:12
#: ucode/template/themes/footstrap/partials/search.ut:14
msgid "Search"
msgstr "Поиск"
#: htdocs/luci-static/resources/fs-search.js:238
#: htdocs/luci-static/resources/fs-search.js:265
#: htdocs/luci-static/resources/fs-search.js:229
#: htdocs/luci-static/resources/fs-search.js:255
msgctxt "footstrap"
msgid "Search pages"
msgstr "Поиск по страницам"
#: htdocs/luci-static/resources/fs-search.js:239
#: htdocs/luci-static/resources/fs-search.js:230
msgctxt "footstrap"
msgid "Search pages…"
msgstr "Поиск по страницам…"
#: htdocs/luci-static/resources/fs-appearance.js:167
#: htdocs/luci-static/resources/fs-appearance.js:329
msgctxt "footstrap"
msgid "Sidebar"
msgstr "Сбоку"
#: htdocs/luci-static/resources/fs-appearance.js:287
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "Sidebar and bar"
msgstr "Боковая панель и шапка"
#: ucode/template/themes/footstrap/header.ut:126
#: ucode/template/themes/footstrap/header.ut:115
msgid "Skip to content"
msgstr "Перейти к содержимому"
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "Start typing to find a page"
msgstr "Начните вводить название страницы"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Storage"
msgstr "Накопитель"
#: htdocs/luci-static/resources/fs-appearance.js:343
#: htdocs/luci-static/resources/fs-appearance.js:464
msgctxt "footstrap"
msgid "Strength"
msgstr "Насыщенность"
#: htdocs/luci-static/resources/fs-appearance.js:202
#: htdocs/luci-static/resources/fs-appearance.js:362
msgctxt "footstrap"
msgid "Submenus"
msgstr "Подменю"
#: htdocs/luci-static/resources/fs-appearance.js:654
#: htdocs/luci-static/resources/fs-appearance.js:771
msgctxt "footstrap"
msgid "Surfaces"
msgstr "Поверхности"
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "System"
msgstr "Система"
#: ucode/template/themes/footstrap/partials/notices.ut:22
#: ucode/template/themes/footstrap/partials/notices.ut:21
msgid "System running in recovery (initramfs) mode."
msgstr "Система работает в режиме восстановления (initramfs)."
#: htdocs/luci-static/resources/fs-select.js:756
#: htdocs/luci-static/resources/fs-select.js:647
msgid "Table"
msgstr "Таблица"
#: htdocs/luci-static/resources/fs-prefs.js:893
#: htdocs/luci-static/resources/fs-assets.js:97
msgctxt "footstrap"
msgid ""
"That SVG contains script or external references, which this theme will not "
@@ -416,44 +415,43 @@ msgid ""
msgstr ""
"В этом SVG есть скрипт или внешние ссылки — тема не станет его устанавливать."
#: htdocs/luci-static/resources/fs-prefs.js:917
#: htdocs/luci-static/resources/fs-assets.js:134
msgctxt "footstrap"
msgid "That file could not be read."
msgstr "Не удалось прочитать файл."
#: htdocs/luci-static/resources/fs-prefs.js:1103
#: htdocs/luci-static/resources/fs-assets.js:214
msgctxt "footstrap"
msgid "That file is not a readable image."
msgstr "Не удалось прочитать файл как изображение."
#: htdocs/luci-static/resources/fs-prefs.js:889
#: htdocs/luci-static/resources/fs-prefs.js:892
#: htdocs/luci-static/resources/fs-assets.js:31
msgctxt "footstrap"
msgid "That file is not an SVG image."
msgstr "Этот файл — не изображение SVG."
#: htdocs/luci-static/resources/fs-prefs.js:948
#: htdocs/luci-static/resources/fs-assets.js:306
msgctxt "footstrap"
msgid "That file is too large."
msgstr "Файл слишком большой."
#: htdocs/luci-static/resources/fs-prefs.js:1133
#: htdocs/luci-static/resources/fs-assets.js:325
msgctxt "footstrap"
msgid "That image is too large."
msgstr "Изображение слишком большое."
#: htdocs/luci-static/resources/fs-prefs.js:1026
#: htdocs/luci-static/resources/fs-assets.js:168
msgctxt "footstrap"
msgid "The router refused to delete the file (ubus status %d)."
msgstr "Роутер отказался удалить файл (статус ubus %d)."
#: htdocs/luci-static/resources/fs-appearance.js:171
#: htdocs/luci-static/resources/fs-appearance.js:360
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:480
msgctxt "footstrap"
msgid "Theme"
msgstr "Тема"
#: ucode/template/themes/footstrap/partials/notices.ut:14
#: ucode/template/themes/footstrap/partials/notices.ut:13
msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface."
@@ -461,7 +459,7 @@ msgstr ""
"На этом роутере не задан пароль. Установите пароль root, чтобы защитить веб-"
"интерфейс."
#: htdocs/luci-static/resources/fs-appearance.js:504
#: htdocs/luci-static/resources/fs-appearance.js:607
msgctxt "footstrap"
msgid ""
"This browser is not storing preferences (site data is blocked), so a change "
@@ -472,87 +470,82 @@ msgstr ""
"изменение здесь действует до перезагрузки страницы. «Сохранить как "
"умолчание» по-прежнему работает и применяется ко всем браузерам."
#: htdocs/luci-static/resources/fs-appearance.js:214
#: htdocs/luci-static/resources/fs-appearance.js:702
msgctxt "footstrap"
msgid "This theme is not translated on this router yet."
msgstr "Тема ещё не переведена на этом роутере."
#: htdocs/luci-static/resources/fs-appearance.js:374
msgctxt "footstrap"
msgid "Tint (router identification)"
msgstr "Оттенок (опознание роутера)"
#: htdocs/luci-static/resources/fs-appearance.js:229
#: htdocs/luci-static/resources/fs-appearance.js:387
msgctxt "footstrap"
msgid "Tint strength"
msgstr "Насыщенность оттенка"
#: htdocs/luci-static/resources/fs-widgets.js:264
#: htdocs/luci-static/resources/fs-appearance.js:190
msgctxt "footstrap"
msgid "Too faint to read %s"
msgstr "Слишком блёкло, не читается %s"
#: htdocs/luci-static/resources/fs-appearance.js:168
#: htdocs/luci-static/resources/fs-appearance.js:330
msgctxt "footstrap"
msgid "Top"
msgstr "Сверху"
#: htdocs/luci-static/resources/fs-prefs.js:960
#: htdocs/luci-static/resources/fs-prefs.js:963
#: htdocs/luci-static/resources/fs-prefs.js:1043
#: htdocs/luci-static/resources/fs-prefs.js:1144
#: htdocs/luci-static/resources/fs-prefs.js:1147
#: htdocs/luci-static/resources/fs-assets.js:30
msgctxt "footstrap"
msgid "Upload failed."
msgstr "Не удалось загрузить."
#: htdocs/luci-static/resources/fs-appearance.js:402
#: htdocs/luci-static/resources/fs-appearance.js:432
#: htdocs/luci-static/resources/fs-appearance.js:531
msgctxt "footstrap"
msgid "Uploading…"
msgstr "Загрузка…"
#: ucode/template/themes/footstrap/sysauth.ut:76
#: ucode/template/themes/footstrap/sysauth.ut:102
msgid "Username"
msgstr "Имя пользователя"
#: htdocs/luci-static/resources/fs-appearance.js:447
#: htdocs/luci-static/resources/fs-appearance.js:560
msgctxt "footstrap"
msgid "Wallpaper"
msgstr "Обои"
#: htdocs/luci-static/resources/fs-appearance.js:250
#: htdocs/luci-static/resources/fs-appearance.js:403
msgctxt "footstrap"
msgid "Warning"
msgstr "Предупреждение"
#: ucode/template/themes/footstrap/partials/notices.ut:32
#: ucode/template/themes/footstrap/partials/notices.ut:31
msgid ""
"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
"Включите JavaScript в браузере, иначе LuCI не будет работать корректно."
#: htdocs/luci-static/resources/fs-appearance.js:290
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "in the sidebar"
msgstr "в боковой панели"
#: htdocs/luci-static/resources/fs-appearance.js:241
#: htdocs/luci-static/resources/fs-appearance.js:247
#: htdocs/luci-static/resources/fs-appearance.js:253
#: htdocs/luci-static/resources/fs-appearance.js:259
#: htdocs/luci-static/resources/fs-appearance.js:278
#: htdocs/luci-static/resources/fs-appearance.js:297
#: htdocs/luci-static/resources/fs-appearance.js:269
msgctxt "footstrap"
msgid "on a card"
msgstr "на карточке"
#: htdocs/luci-static/resources/fs-appearance.js:284
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "on a control"
msgstr "на элементе формы"
#: htdocs/luci-static/resources/fs-appearance.js:219
#: htdocs/luci-static/resources/fs-appearance.js:379
msgctxt "footstrap"
msgid "on the canvas"
msgstr "на холсте"
#: htdocs/luci-static/resources/fs-prefs.js:1121
#: htdocs/luci-static/resources/fs-assets.js:230
msgctxt "footstrap"
msgid ""
"the uploaded file could not be removed either; it is still on the router."
+125 -132
View File
@@ -1,143 +1,142 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: htdocs/luci-static/resources/fs-appearance.js:238
#: htdocs/luci-static/resources/fs-appearance.js:401
msgctxt "footstrap"
msgid "Accent"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:361
#: htdocs/luci-static/resources/fs-appearance.js:481
msgctxt "footstrap"
msgid "As in file"
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:70
#: ucode/template/themes/footstrap/sysauth.ut:96
msgid "Authorization Required"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:172
#: htdocs/luci-static/resources/fs-appearance.js:334
msgctxt "footstrap"
msgid "Auto"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:205
#: htdocs/luci-static/resources/fs-appearance.js:365
msgctxt "footstrap"
msgid "Auto-collapse"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:656
#: htdocs/luci-static/resources/fs-appearance.js:773
msgctxt "footstrap"
msgid "Background"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:259
#: htdocs/luci-static/resources/fs-appearance.js:185
msgctxt "footstrap"
msgid "Barely visible %s"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:294
#: htdocs/luci-static/resources/fs-appearance.js:424
msgctxt "footstrap"
msgid "Borders"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:275
#: htdocs/luci-static/resources/fs-appearance.js:421
msgctxt "footstrap"
msgid "Cards"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:331
#: htdocs/luci-static/resources/fs-appearance.js:454
msgctxt "footstrap"
msgid "Choose SVG"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:324
#: htdocs/luci-static/resources/fs-appearance.js:447
msgctxt "footstrap"
msgid "Choose image"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:258
#: htdocs/luci-static/resources/fs-appearance.js:184
msgctxt "footstrap"
msgid "Clearly visible %s"
msgstr ""
#: htdocs/luci-static/resources/fs-chrome.js:415
#: ucode/template/themes/footstrap/header.ut:150
#: htdocs/luci-static/resources/fs-chrome.js:430
#: ucode/template/themes/footstrap/header.ut:138
msgid "Collapse menu"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:344
#: htdocs/luci-static/resources/fs-appearance.js:653
#: htdocs/luci-static/resources/fs-appearance.js:465
#: htdocs/luci-static/resources/fs-appearance.js:770
msgctxt "footstrap"
msgid "Colours"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:188
#: htdocs/luci-static/resources/fs-appearance.js:350
msgctxt "footstrap"
msgid "Compact"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:545
#: htdocs/luci-static/resources/fs-appearance.js:644
msgctxt "footstrap"
msgid "Confirm reset"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:268
#: htdocs/luci-static/resources/fs-appearance.js:193
msgctxt "footstrap"
msgid "Contrast %s:1 (WCAG AA wants %s:1 here)"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:281
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "Controls"
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1099
#: htdocs/luci-static/resources/fs-prefs.js:1101
#: htdocs/luci-static/resources/fs-assets.js:32
msgctxt "footstrap"
msgid "Could not process the image."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:521
#: htdocs/luci-static/resources/fs-appearance.js:624
msgctxt "footstrap"
msgid "Could not save the default. Reload the page and try again."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:256
#: htdocs/luci-static/resources/fs-appearance.js:404
msgctxt "footstrap"
msgid "Danger"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:174
#: htdocs/luci-static/resources/fs-appearance.js:336
msgctxt "footstrap"
msgid "Dark"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:657
#: htdocs/luci-static/resources/fs-appearance.js:774
msgctxt "footstrap"
msgid "Defaults"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:187
#: htdocs/luci-static/resources/fs-appearance.js:349
msgctxt "footstrap"
msgid "Density"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:341
#: htdocs/luci-static/resources/fs-appearance.js:462
msgctxt "footstrap"
msgid "Dim"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:261
#: htdocs/luci-static/resources/fs-appearance.js:187
msgctxt "footstrap"
msgid "Easy to read %s"
msgstr ""
#: htdocs/luci-static/resources/fs-chrome.js:415
#: htdocs/luci-static/resources/fs-chrome.js:430
msgid "Expand menu"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:366
#: htdocs/luci-static/resources/fs-appearance.js:451
#: htdocs/luci-static/resources/fs-appearance.js:486
#: htdocs/luci-static/resources/fs-appearance.js:564
msgctxt "footstrap"
msgid "File"
msgstr ""
@@ -148,307 +147,306 @@ msgid ""
"background and pattern uploads"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:25
#: ucode/template/themes/footstrap/partials/notices.ut:24
msgid "Go to firmware upgrade..."
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:16
#: ucode/template/themes/footstrap/partials/notices.ut:15
msgid "Go to password configuration..."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:244
#: htdocs/luci-static/resources/fs-appearance.js:402
msgctxt "footstrap"
msgid "Good"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:263
#: htdocs/luci-static/resources/fs-appearance.js:189
msgctxt "footstrap"
msgid "Hard to read %s — large text only"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:652
#: htdocs/luci-static/resources/fs-appearance.js:769
msgctxt "footstrap"
msgid "Interface"
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:60
#: ucode/template/themes/footstrap/sysauth.ut:78
msgid "Invalid username and/or password! Please try again."
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:31
#: ucode/template/themes/footstrap/partials/notices.ut:30
msgid "JavaScript required!"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:204
#: htdocs/luci-static/resources/fs-appearance.js:364
msgctxt "footstrap"
msgid "Keep open"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:190
#: htdocs/luci-static/resources/fs-appearance.js:352
msgctxt "footstrap"
msgid "Large"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:166
#: htdocs/luci-static/resources/fs-appearance.js:328
#: htdocs/luci-static/resources/fs-appearance.js:700
msgctxt "footstrap"
msgid "Layout"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:173
#: htdocs/luci-static/resources/fs-appearance.js:335
msgctxt "footstrap"
msgid "Light"
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:142
#: ucode/template/themes/footstrap/sysauth.ut:162
msgid "Log in"
msgstr ""
#: ucode/template/themes/footstrap/partials/logout.ut:11
#: ucode/template/themes/footstrap/partials/logout.ut:13
#: ucode/template/themes/footstrap/partials/logout.ut:8
#: ucode/template/themes/footstrap/partials/logout.ut:15
msgid "Log out"
msgstr ""
#: ucode/template/themes/footstrap/partials/footer.ut:27
#: ucode/template/themes/footstrap/partials/footer.ut:25
msgid "Lua compatibility mode active"
msgstr ""
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Memory"
msgstr ""
#: ucode/template/themes/footstrap/header.ut:147
#: ucode/template/themes/footstrap/header.ut:158
#: ucode/template/themes/footstrap/header.ut:135
#: ucode/template/themes/footstrap/header.ut:146
msgid "Menu"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:23
#: ucode/template/themes/footstrap/partials/notices.ut:22
msgid ""
"No changes to settings will be stored and are lost after rebooting. This "
"mode should only be used to install a firmware upgrade"
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "No pages found"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:13
#: ucode/template/themes/footstrap/partials/notices.ut:12
msgid "No password set!"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:189
#: htdocs/luci-static/resources/fs-appearance.js:351
msgctxt "footstrap"
msgid "Normal"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:562
msgctxt "footstrap"
msgid "Off"
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:244
#: htdocs/luci-static/resources/fs-search.js:235
msgctxt "footstrap"
msgid "Pages"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:177
#: htdocs/luci-static/resources/fs-widgets.js:216
#: htdocs/luci-static/resources/fs-appearance.js:151
#: htdocs/luci-static/resources/fs-appearance.js:339
msgctxt "footstrap"
msgid "Palette"
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:82
#: ucode/template/themes/footstrap/sysauth.ut:108
msgid "Password"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:352
#: htdocs/luci-static/resources/fs-appearance.js:450
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:563
msgctxt "footstrap"
msgid "Pattern"
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:945
#: htdocs/luci-static/resources/fs-prefs.js:947
#: htdocs/luci-static/resources/fs-assets.js:33
msgctxt "footstrap"
msgid "Please choose an SVG file."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1131
#: htdocs/luci-static/resources/fs-assets.js:323
msgctxt "footstrap"
msgid "Please choose an image file."
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:72
#: ucode/template/themes/footstrap/sysauth.ut:98
msgid "Please enter your username and password."
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:326
#: htdocs/luci-static/resources/fs-search.js:323
msgctxt "footstrap"
msgid "Recently visited"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:326
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:449
#: htdocs/luci-static/resources/fs-appearance.js:456
msgctxt "footstrap"
msgid "Remove"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:483
#: htdocs/luci-static/resources/fs-appearance.js:556
#: htdocs/luci-static/resources/fs-appearance.js:588
#: htdocs/luci-static/resources/fs-appearance.js:655
msgctxt "footstrap"
msgid "Reset to default"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:478
#: htdocs/luci-static/resources/fs-appearance.js:555
#: htdocs/luci-static/resources/fs-appearance.js:584
#: htdocs/luci-static/resources/fs-appearance.js:654
msgctxt "footstrap"
msgid "Reset to saved"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:193
#: htdocs/luci-static/resources/fs-appearance.js:355
msgctxt "footstrap"
msgid "Rounding"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:572
#: htdocs/luci-static/resources/fs-appearance.js:670
msgctxt "footstrap"
msgid "Router default"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:472
#: htdocs/luci-static/resources/fs-appearance.js:503
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:578
#: htdocs/luci-static/resources/fs-appearance.js:606
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Save as default"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:510
#: htdocs/luci-static/resources/fs-appearance.js:613
msgctxt "footstrap"
msgid "Saved as default"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:342
#: htdocs/luci-static/resources/fs-appearance.js:463
msgctxt "footstrap"
msgid "Scale"
msgstr ""
#: ucode/template/themes/footstrap/partials/search.ut:16
#: ucode/template/themes/footstrap/partials/search.ut:18
#: ucode/template/themes/footstrap/partials/search.ut:12
#: ucode/template/themes/footstrap/partials/search.ut:14
msgid "Search"
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:238
#: htdocs/luci-static/resources/fs-search.js:265
#: htdocs/luci-static/resources/fs-search.js:229
#: htdocs/luci-static/resources/fs-search.js:255
msgctxt "footstrap"
msgid "Search pages"
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:239
#: htdocs/luci-static/resources/fs-search.js:230
msgctxt "footstrap"
msgid "Search pages…"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:167
#: htdocs/luci-static/resources/fs-appearance.js:329
msgctxt "footstrap"
msgid "Sidebar"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:287
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "Sidebar and bar"
msgstr ""
#: ucode/template/themes/footstrap/header.ut:126
#: ucode/template/themes/footstrap/header.ut:115
msgid "Skip to content"
msgstr ""
#: htdocs/luci-static/resources/fs-search.js:327
#: htdocs/luci-static/resources/fs-search.js:324
msgctxt "footstrap"
msgid "Start typing to find a page"
msgstr ""
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "Storage"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:343
#: htdocs/luci-static/resources/fs-appearance.js:464
msgctxt "footstrap"
msgid "Strength"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:202
#: htdocs/luci-static/resources/fs-appearance.js:362
msgctxt "footstrap"
msgid "Submenus"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:654
#: htdocs/luci-static/resources/fs-appearance.js:771
msgctxt "footstrap"
msgid "Surfaces"
msgstr ""
#: htdocs/luci-static/resources/fs-overview.js:32
#: htdocs/luci-static/resources/fs-overview.js:22
msgid "System"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:22
#: ucode/template/themes/footstrap/partials/notices.ut:21
msgid "System running in recovery (initramfs) mode."
msgstr ""
#: htdocs/luci-static/resources/fs-select.js:756
#: htdocs/luci-static/resources/fs-select.js:647
msgid "Table"
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:893
#: htdocs/luci-static/resources/fs-assets.js:97
msgctxt "footstrap"
msgid ""
"That SVG contains script or external references, which this theme will not "
"install."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:917
#: htdocs/luci-static/resources/fs-assets.js:134
msgctxt "footstrap"
msgid "That file could not be read."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1103
#: htdocs/luci-static/resources/fs-assets.js:214
msgctxt "footstrap"
msgid "That file is not a readable image."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:889
#: htdocs/luci-static/resources/fs-prefs.js:892
#: htdocs/luci-static/resources/fs-assets.js:31
msgctxt "footstrap"
msgid "That file is not an SVG image."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:948
#: htdocs/luci-static/resources/fs-assets.js:306
msgctxt "footstrap"
msgid "That file is too large."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1133
#: htdocs/luci-static/resources/fs-assets.js:325
msgctxt "footstrap"
msgid "That image is too large."
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1026
#: htdocs/luci-static/resources/fs-assets.js:168
msgctxt "footstrap"
msgid "The router refused to delete the file (ubus status %d)."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:171
#: htdocs/luci-static/resources/fs-appearance.js:360
#: htdocs/luci-static/resources/fs-appearance.js:333
#: htdocs/luci-static/resources/fs-appearance.js:480
msgctxt "footstrap"
msgid "Theme"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:14
#: ucode/template/themes/footstrap/partials/notices.ut:13
msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:504
#: htdocs/luci-static/resources/fs-appearance.js:607
msgctxt "footstrap"
msgid ""
"This browser is not storing preferences (site data is blocked), so a change "
@@ -456,86 +454,81 @@ msgid ""
"every browser."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:214
#: htdocs/luci-static/resources/fs-appearance.js:702
msgctxt "footstrap"
msgid "This theme is not translated on this router yet."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:374
msgctxt "footstrap"
msgid "Tint (router identification)"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:229
#: htdocs/luci-static/resources/fs-appearance.js:387
msgctxt "footstrap"
msgid "Tint strength"
msgstr ""
#: htdocs/luci-static/resources/fs-widgets.js:264
#: htdocs/luci-static/resources/fs-appearance.js:190
msgctxt "footstrap"
msgid "Too faint to read %s"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:168
#: htdocs/luci-static/resources/fs-appearance.js:330
msgctxt "footstrap"
msgid "Top"
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:960
#: htdocs/luci-static/resources/fs-prefs.js:963
#: htdocs/luci-static/resources/fs-prefs.js:1043
#: htdocs/luci-static/resources/fs-prefs.js:1144
#: htdocs/luci-static/resources/fs-prefs.js:1147
#: htdocs/luci-static/resources/fs-assets.js:30
msgctxt "footstrap"
msgid "Upload failed."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:402
#: htdocs/luci-static/resources/fs-appearance.js:432
#: htdocs/luci-static/resources/fs-appearance.js:531
msgctxt "footstrap"
msgid "Uploading…"
msgstr ""
#: ucode/template/themes/footstrap/sysauth.ut:76
#: ucode/template/themes/footstrap/sysauth.ut:102
msgid "Username"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:447
#: htdocs/luci-static/resources/fs-appearance.js:560
msgctxt "footstrap"
msgid "Wallpaper"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:250
#: htdocs/luci-static/resources/fs-appearance.js:403
msgctxt "footstrap"
msgid "Warning"
msgstr ""
#: ucode/template/themes/footstrap/partials/notices.ut:32
#: ucode/template/themes/footstrap/partials/notices.ut:31
msgid ""
"You must enable JavaScript in your browser or LuCI will not work properly."
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:290
#: htdocs/luci-static/resources/fs-appearance.js:423
msgctxt "footstrap"
msgid "in the sidebar"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:241
#: htdocs/luci-static/resources/fs-appearance.js:247
#: htdocs/luci-static/resources/fs-appearance.js:253
#: htdocs/luci-static/resources/fs-appearance.js:259
#: htdocs/luci-static/resources/fs-appearance.js:278
#: htdocs/luci-static/resources/fs-appearance.js:297
#: htdocs/luci-static/resources/fs-appearance.js:269
msgctxt "footstrap"
msgid "on a card"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:284
#: htdocs/luci-static/resources/fs-appearance.js:422
msgctxt "footstrap"
msgid "on a control"
msgstr ""
#: htdocs/luci-static/resources/fs-appearance.js:219
#: htdocs/luci-static/resources/fs-appearance.js:379
msgctxt "footstrap"
msgid "on the canvas"
msgstr ""
#: htdocs/luci-static/resources/fs-prefs.js:1121
#: htdocs/luci-static/resources/fs-assets.js:230
msgctxt "footstrap"
msgid ""
"the uploaded file could not be removed either; it is still on the router."
@@ -186,6 +186,18 @@
.fs-ap-version { font-size: var(--fs-type-xs); color: var(--fs-dim); font-variant-numeric: tabular-nums; text-decoration: none; }
.fs-ap-version:hover { color: var(--fs-accent); text-decoration: underline; }
/* The line that names the missing catalogue package. Same weight as the version beside it
* it is a fact about this router, not a warning: nothing is broken, one package is absent.
* Wraps, because the package name is 24 characters and the column is narrow at 390px. */
.fs-ap-i18n {
flex-wrap: wrap;
font-size: var(--fs-type-xs);
color: var(--fs-dim);
}
/* the chip is base/20-typography.css's `code`; only the size follows the line it sits in, which
* is a step smaller than body text */
.fs-ap-i18n code { font-size: inherit; }
/* No rules here for a segmented control or a range slider of our own: the page draws its enums
* with `ui.Select` and its numbers with `ui.RangeSlider`, which this theme already styles for
* every other LuCI form. Two copies of a slider, one of them ours, was the thing to delete. */