Commit Graph
19471 Commits
Author SHA1 Message Date
+2 80de46ce77 Translated using Weblate (Portuguese)
Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (181 of 184 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (304 of 304 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 11.9% (14 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.7% (12 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/pt_BR/

Translated using Weblate (Turkish)

Currently translated at 14.3% (22 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/tr/

Translated using Weblate (Turkish)

Currently translated at 23.3% (7 of 30 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 3.6% (11 of 304 strings)

Translated using Weblate (Korean)

Currently translated at 22.6% (69 of 304 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.5% (21 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.1% (11 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 4.5% (5 of 109 strings)

Translation: OpenWrt/LuCI/applications/filemanager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfilemanager/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.4% (47 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 29.6% (37 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 41.3% (19 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/pt_BR/

Translated using Weblate (Spanish)

Currently translated at 100.0% (151 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/es/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 36.3% (187 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt_BR/

Translated using Weblate (Turkish)

Currently translated at 100.0% (196 of 196 strings)

Translation: OpenWrt/LuCI/applications/unbound
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsunbound/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (25 of 25 strings)

Added translation using Weblate (Portuguese (Brazil))

Translated using Weblate (Portuguese (Brazil))

Currently translated at 3.9% (3 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.6% (6 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.4% (16 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 5.3% (10 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.6% (20 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.2% (10 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 16.2% (29 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 40.0% (18 of 45 strings)

Translation: OpenWrt/LuCI/applications/cloudflared
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscloudflared/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.4% (15 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.8% (36 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.0% (13 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 24.2% (16 of 66 strings)

Translation: OpenWrt/LuCI/applications/sshtunnel
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssshtunnel/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 60.6% (20 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 35.8% (29 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 36.1% (186 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 81.2% (13 of 16 strings)

Translation: OpenWrt/LuCI/applications/squid
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssquid/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.4% (284 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.3% (266 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (197 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (181 of 184 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.1% (3153 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pt_BR/

Added translation using Weblate (Portuguese (Brazil))

Translated using Weblate (Portuguese (Brazil))

Currently translated at 25.0% (1 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-switch
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-switch/pt_BR/

Added translation using Weblate (Portuguese (Brazil))

Added translation using Weblate (Portuguese (Brazil))

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.0% (2 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-usbport
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-usbport/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 3.2% (10 of 304 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.8% (15 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 4.2% (8 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 16.8% (19 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.2% (7 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.5% (23 of 112 strings)

Translation: OpenWrt/LuCI/applications/radicale3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale3/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.0% (46 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 16.2% (29 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.4% (15 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.8% (36 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.0% (13 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.1% (18 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.5% (16 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.7% (16 of 90 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 57.5% (19 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 52.6% (49 of 93 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 35.7% (184 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.0% (38 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 18.3% (54 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 87.5% (63 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 41.4% (39 of 94 strings)

Translation: OpenWrt/LuCI/applications/clamav
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsclamav/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.4% (284 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.0% (101 of 187 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 68.7% (156 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.8% (46 of 165 strings)

Added translation using Weblate (Portuguese (Brazil))

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.0% (3 of 6 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-rssi
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-rssi/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 2.6% (8 of 304 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 11.5% (13 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 7.3% (5 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 4.8% (3 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.7% (5 of 22 strings)

Translation: OpenWrt/LuCI/applications/wifihistory
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswifihistory/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.8% (16 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.5% (18 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.5% (178 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 71.2% (57 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/pt_BR/

Added translation using Weblate (Portuguese (Brazil))

Translated using Weblate (Portuguese)

Currently translated at 15.7% (12 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/pt/

Translated using Weblate (Portuguese)

Currently translated at 12.8% (15 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/pt/

Translated using Weblate (Portuguese)

Currently translated at 23.5% (8 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/pt/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 99.6% (303 of 304 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 2.3% (7 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 2.3% (7 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 3.7% (1 of 27 strings)

Translation: OpenWrt/LuCI/applications/sfp-info
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssfp-info/pt/

Translated using Weblate (Spanish)

Currently translated at 99.6% (303 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 7.1% (11 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pt/

Translated using Weblate (Portuguese)

Currently translated at 15.0% (17 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt/

Translated using Weblate (Portuguese)

Currently translated at 3.7% (7 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.2% (15 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 46.9% (38 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/pt/

Translated using Weblate (Portuguese)

Currently translated at 18.9% (34 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 12.2% (22 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 35.8% (29 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.2% (20 of 21 strings)

Translation: OpenWrt/LuCI/applications/crowdsec-firewall-bouncer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscrowdsec-firewall-bouncer/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.3% (45 of 93 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/pt/

Translated using Weblate (Portuguese)

Currently translated at 22.6% (39 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/pt/

Translated using Weblate (Portuguese)

Currently translated at 17.9% (53 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (194 of 194 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (16 of 16 strings)

Translation: OpenWrt/LuCI/applications/squid
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssquid/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/pt/

Translated using Weblate (Portuguese)

Currently translated at 88.4% (284 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.0% (102 of 104 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/pt_BR/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (265 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pt_BR/

Translated using Weblate (Portuguese)

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (181 of 184 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.1% (3153 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pt_BR/

Added translation using Weblate (Portuguese)

Translated using Weblate (Portuguese)

Currently translated at 5.9% (7 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/pt/

Translated using Weblate (Portuguese)

Currently translated at 1.9% (6 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 4.6% (5 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/pt/

Translated using Weblate (Portuguese)

Currently translated at 14.1% (16 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt/

Translated using Weblate (Portuguese)

Currently translated at 4.4% (3 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/pt/

Translated using Weblate (Portuguese)

Currently translated at 3.2% (1 of 31 strings)

Translation: OpenWrt/LuCI/applications/csshnpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscsshnpd/pt/

Translated using Weblate (Portuguese)

Currently translated at 3.2% (6 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt/

Translated using Weblate (Portuguese)

Currently translated at 66.9% (152 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (55 of 55 strings)

Added translation using Weblate (Portuguese)

Translated using Weblate (Portuguese)

Currently translated at 23.5% (8 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/pt/

Translated using Weblate (Portuguese)

Currently translated at 2.7% (3 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/pt/

Translated using Weblate (Portuguese)

Currently translated at 13.2% (15 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt/

Translated using Weblate (Portuguese)

Currently translated at 2.6% (5 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt/

Translated using Weblate (Portuguese)

Currently translated at 46.9% (38 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/pt/

Translated using Weblate (Portuguese)

Currently translated at 18.9% (34 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt/

Translated using Weblate (Portuguese)

Currently translated at 93.4% (172 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/pt/

Translated using Weblate (Portuguese)

Currently translated at 35.3% (182 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/pt/

Translated using Weblate (Portuguese)

Currently translated at 22.6% (39 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/pt/

Translated using Weblate (Portuguese)

Currently translated at 17.9% (53 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/pt/

Translated using Weblate (Portuguese)

Currently translated at 66.5% (151 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (16 of 16 strings)

Translation: OpenWrt/LuCI/applications/squid
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssquid/pt/

Translated using Weblate (Portuguese)

Currently translated at 54.5% (102 of 187 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/pt/

Translated using Weblate (Portuguese)

Currently translated at 88.4% (284 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt/

Translated using Weblate (Portuguese)

Currently translated at 88.5% (255 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pt/

Translated using Weblate (Portuguese)

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Portuguese)

Currently translated at 96.3% (3127 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pt/

Added translation using Weblate (Portuguese)

Translated using Weblate (Portuguese)

Currently translated at 50.0% (2 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-usbport
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-usbport/pt/

Translated using Weblate (Portuguese)

Currently translated at 0.9% (3 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 6.5% (10 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pt/

Translated using Weblate (Portuguese)

Currently translated at 0.9% (1 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/pt/

Translated using Weblate (Portuguese)

Currently translated at 12.3% (14 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt/

Translated using Weblate (Portuguese)

Currently translated at 1.6% (1 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/pt/

Translated using Weblate (Portuguese)

Currently translated at 2.9% (2 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/pt/

Translated using Weblate (Portuguese)

Currently translated at 1.6% (3 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt/

Translated using Weblate (Portuguese)

Currently translated at 35.2% (44 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/pt/

Translated using Weblate (Portuguese)

Currently translated at 16.6% (15 of 90 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/pt/

Translated using Weblate (Portuguese)

Currently translated at 51.5% (17 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/pt/

Translated using Weblate (Portuguese)

Currently translated at 52.6% (49 of 93 strings)

Translated using Weblate (Portuguese)

Currently translated at 34.9% (180 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt/

Translated using Weblate (Portuguese)

Currently translated at 22.0% (38 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/pt/

Translated using Weblate (Portuguese)

Currently translated at 17.6% (52 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/pt/

Translated using Weblate (Portuguese)

Currently translated at 88.4% (284 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt/

Translated using Weblate (Portuguese)

Currently translated at 34.5% (57 of 165 strings)

Added translation using Weblate (Portuguese)

Translated using Weblate (Portuguese)

Currently translated at 25.0% (1 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-switch
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-switch/pt/

Translated using Weblate (Portuguese)

Currently translated at 0.5% (1 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/pt/

Translated using Weblate (Portuguese)

Currently translated at 33.9% (38 of 112 strings)

Translation: OpenWrt/LuCI/applications/radicale3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale3/pt/

Translated using Weblate (Portuguese)

Currently translated at 25.8% (66 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/pt/

Translated using Weblate (Portuguese)

Currently translated at 18.4% (33 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt/

Translated using Weblate (Portuguese)

Currently translated at 11.9% (18 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/pt/

Translated using Weblate (Portuguese)

Currently translated at 23.3% (18 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/pt/

Translated using Weblate (Portuguese)

Currently translated at 32.0% (40 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/pt/

Translated using Weblate (Portuguese)

Currently translated at 29.1% (14 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/pt/

Translated using Weblate (Portuguese)

Currently translated at 15.5% (14 of 90 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/pt/

Translated using Weblate (Portuguese)

Currently translated at 34.7% (179 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt/

Translated using Weblate (Portuguese)

Currently translated at 45.9% (86 of 187 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/pt/

Translated using Weblate (Portuguese)

Currently translated at 32.7% (54 of 165 strings)

Added translation using Weblate (Portuguese)

Translated using Weblate (Portuguese)

Currently translated at 50.0% (3 of 6 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-rssi
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-rssi/pt/

Translated using Weblate (Portuguese)

Currently translated at 0.6% (2 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 6.7% (11 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/pt/

Translated using Weblate (Portuguese)

Currently translated at 32.6% (168 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/pt/

Translated using Weblate (Portuguese)

Currently translated at 62.1% (141 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/pt/

Translated using Weblate (Portuguese)

Currently translated at 78.7% (63 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/pt/

Added translation using Weblate (Portuguese)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 99.3% (302 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 0.3% (1 of 304 strings)

Translated using Weblate (Russian)

Currently translated at 30.5% (93 of 304 strings)

Translated using Weblate (German)

Currently translated at 5.2% (16 of 304 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (304 of 304 strings)

Translated using Weblate (Spanish)

Currently translated at 99.6% (303 of 304 strings)

Translated using Weblate (Portuguese)

Currently translated at 0.6% (1 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pt/

Translated using Weblate (Portuguese)

Currently translated at 1.7% (2 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/pt/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (153 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (113 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (187 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (108 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (22 of 22 strings)

Translation: OpenWrt/LuCI/applications/wifihistory
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswifihistory/zh_Hans/

Translated using Weblate (Portuguese)

Currently translated at 6.7% (11 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/pt/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/openlist
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenlist/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/openlist
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenlist/cs/

Translated using Weblate (Portuguese)

Currently translated at 24.7% (63 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/pt/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/cs/

Translated using Weblate (Portuguese)

Currently translated at 12.8% (23 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pt/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (125 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (233 of 233 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 100.0% (233 of 233 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/cs/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (93 of 93 strings)

Translated using Weblate (Portuguese)

Currently translated at 48.3% (45 of 93 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (93 of 93 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (515 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/zh_Hans/

Translated using Weblate (Portuguese)

Currently translated at 31.8% (164 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pt/

Translated using Weblate (Czech)

Currently translated at 98.6% (508 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/cs/

Translated using Weblate (Spanish)

Currently translated at 100.0% (515 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/es/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/pt/

Translated using Weblate (Czech)

Currently translated at 98.4% (191 of 194 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/cs/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 97.2% (70 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/cs/

Translated using Weblate (Portuguese)

Currently translated at 78.7% (63 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/pt/

Translated using Weblate (Czech)

Currently translated at 100.0% (80 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/cs/

Translated using Weblate (Portuguese)

Currently translated at 88.1% (283 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pt/

Translated using Weblate (Czech)

Currently translated at 99.0% (318 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/cs/

Translated using Weblate (Portuguese)

Currently translated at 95.1% (99 of 104 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/pt/

Translated using Weblate (Czech)

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (48 of 48 strings)

Translation: OpenWrt/LuCI/applications/advanced-reboot
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadvanced-reboot/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/cs/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (80 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (321 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hans/

Translated using Weblate (Spanish)

Currently translated at 99.6% (287 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/es/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (94 of 94 strings)

Translation: OpenWrt/LuCI/applications/clamav
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsclamav/zh_Hans/

Translated using Weblate (Spanish)

Currently translated at 100.0% (321 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (173 of 173 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (196 of 196 strings)

Translation: OpenWrt/LuCI/applications/unbound
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsunbound/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/zh_Hans/

Translated using Weblate (Czech)

Currently translated at 100.0% (197 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/cs/

Translated using Weblate (Czech)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (27 of 27 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (27 of 27 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (422 of 422 strings)

Translated using Weblate (Czech)

Currently translated at 99.2% (419 of 422 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (149 of 149 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (3246 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Portuguese)

Currently translated at 96.3% (3126 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pt/

Translated using Weblate (Spanish)

Currently translated at 100.0% (3246 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Czech)

Currently translated at 99.9% (3245 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/cs/

Translated using Weblate (Polish)

Currently translated at 100.0% (304 of 304 strings)

Translated using Weblate (Spanish)

Currently translated at 31.9% (97 of 304 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (93 of 93 strings)

Translated using Weblate (Spanish)

Currently translated at 92.6% (138 of 149 strings)

Translated using Weblate (Czech)

Currently translated at 78.2% (238 of 304 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (304 of 304 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (304 of 304 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (233 of 233 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/ko/

Translated using Weblate (Korean)

Currently translated at 83.1% (153 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/ko/

Translated using Weblate (Polish)

Currently translated at 100.0% (93 of 93 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (93 of 93 strings)

Translated using Weblate (Spanish)

Currently translated at 77.4% (72 of 93 strings)

Translated using Weblate (Czech)

Currently translated at 48.3% (45 of 93 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (194 of 194 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/ko/

Translated using Weblate (Polish)

Currently translated at 100.0% (321 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (321 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pl/

Translated using Weblate (Czech)

Currently translated at 99.0% (318 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/cs/

Translated using Weblate (Spanish)

Currently translated at 100.0% (321 of 321 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Spanish)

Currently translated at 85.9% (128 of 149 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (3246 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (3246 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Czech)

Currently translated at 99.4% (3229 of 3246 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/cs/

Translated using Weblate (Korean)

Currently translated at 80.4% (148 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/ko/

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Franco Castillo <castillofrancodamian@gmail.com>
Co-authored-by: Hannu Nyman <hannu.nyman@iki.fi>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: Marcin Maj <marcinmajsc@gmail.com>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Co-authored-by: SHUTDOWN <fidde_2003@hotmail.com>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
Signed-off-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: Marcin Maj <marcinmajsc@gmail.com>
Signed-off-by: Matthaiks <kitynska@gmail.com>
Signed-off-by: Oğuz Ersen <oguz@ersen.moe>
Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
Signed-off-by: SHUTDOWN <fidde_2003@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsantiblock/tr/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscommands/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscommands/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsminidlna/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqos/tr/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/zh_Hans/
Translation: OpenWrt/LuCI/applications/antiblock
Translation: OpenWrt/LuCI/applications/commands
Translation: OpenWrt/LuCI/applications/coovachilli
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/minidlna
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/qos-legacy
Translation: OpenWrt/LuCI/applications/qosify
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/uhttpd
Translation: OpenWrt/LuCI/applications/upnp
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard
2026-09-29 21:18:35 +03:00
Dirk Brenken 0818828b3b luci-app-adblock: sync with base package
- minor visual code fixes

Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-27 22:13:40 +02:00
Hannu Nyman 05dc750ddb treewide: sync translations
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-09-27 19:42:14 +03:00
Jackie Han 60c5307145 luci-app-keepalived: default the enabled flag to true
files/keepalived.init treats a missing globals.enabled option as
enabled:

    config_get_bool enabled globals enabled 1

CBIFlag.parse() removes an option from UCI whenever the submitted
value equals the widget's .default. With the default set to
disabled, unticking "Enabled" submitted '0', which matched the
default and got removed instead of written, so the option
disappeared and the init script fell back to its own enabled=1 --
unticking never actually disabled the service. Ticking worked
fine, since '1' didn't match the default and was written
explicitly.

Set the default to true instead, so ticking now matches the
default and is omitted (falling back to enabled=1), while
unticking no longer matches and explicitly writes enabled='0'.

Signed-off-by: Jackie Han <jackie.han@gmail.com>
2026-09-27 19:35:38 +03:00
+1 c3d5b719f5 Translated using Weblate (Korean)
Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/ko/

Translated using Weblate (German)

Currently translated at 98.1% (314 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/de/

Translated using Weblate (German)

Currently translated at 98.9% (285 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/de/

Translated using Weblate (Italian)

Currently translated at 26.4% (60 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/it/

Translated using Weblate (Czech)

Currently translated at 100.0% (149 of 149 strings)

Translated using Weblate (Korean)

Currently translated at 87.8% (29 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/ko/

Translated using Weblate (Korean)

Currently translated at 44.2% (228 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (31 of 31 strings)

Translated using Weblate (Korean)

Currently translated at 66.6% (22 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Korean)

Currently translated at 97.5% (39 of 40 strings)

Translated using Weblate (Korean)

Currently translated at 96.7% (30 of 31 strings)

Translation: OpenWrt/LuCI/applications/csshnpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscsshnpd/ko/

Translated using Weblate (Korean)

Currently translated at 92.5% (37 of 40 strings)

Translated using Weblate (Korean)

Currently translated at 87.0% (27 of 31 strings)

Translation: OpenWrt/LuCI/applications/csshnpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscsshnpd/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/ko/

Translated using Weblate (Korean)

Currently translated at 78.7% (52 of 66 strings)

Translation: OpenWrt/LuCI/applications/sshtunnel
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssshtunnel/ko/

Translated using Weblate (Korean)

Currently translated at 44.2% (228 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/ko/

Translated using Weblate (Korean)

Currently translated at 53.3% (32 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/ko/

Translated using Weblate (Russian)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ru/

Translated using Weblate (Korean)

Currently translated at 100.0% (27 of 27 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Korean)

Currently translated at 87.2% (2824 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ko/

Translated using Weblate (German)

Currently translated at 20.5% (24 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/de/

Translated using Weblate (Spanish)

Currently translated at 100.0% (76 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/es/

Translated using Weblate (German)

Currently translated at 11.9% (11 of 92 strings)

Translated using Weblate (German)

Currently translated at 15.9% (18 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/de/

Translated using Weblate (German)

Currently translated at 9.2% (10 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/de/

Translated using Weblate (German)

Currently translated at 11.7% (8 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/de/

Translated using Weblate (Spanish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/es/

Translated using Weblate (German)

Currently translated at 59.8% (308 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/de/

Translated using Weblate (Spanish)

Currently translated at 100.0% (515 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/es/

Added translation using Weblate (German)

Translated using Weblate (German)

Currently translated at 7.8% (6 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/de/

Added translation using Weblate (German)

Translated using Weblate (German)

Currently translated at 23.5% (8 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/de/

Translated using Weblate (German)

Currently translated at 7.4% (8 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/de/

Translated using Weblate (German)

Currently translated at 66.6% (22 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/de/

Translated using Weblate (German)

Currently translated at 99.4% (183 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/de/

Translated using Weblate (German)

Currently translated at 59.4% (306 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/de/

Added translation using Weblate (German)

Translated using Weblate (German)

Currently translated at 50.0% (2 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-usbport
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-usbport/de/

Added translation using Weblate (German)

Translated using Weblate (German)

Currently translated at 50.0% (2 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-switch
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-switch/de/

Added translation using Weblate (German)

Translated using Weblate (German)

Currently translated at 83.3% (5 of 6 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-rssi
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-rssi/de/

Translated using Weblate (German)

Currently translated at 60.6% (20 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/de/

Added translation using Weblate (German)

Translated using Weblate (Spanish)

Currently translated at 100.0% (34 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (76 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/es/

Translated using Weblate (Spanish)

Currently translated at 98.9% (91 of 92 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (255 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/es/

Translated using Weblate (Turkish)

Currently translated at 84.7% (72 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/tr/

Translated using Weblate (Spanish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/vnstat2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsvnstat2/es/

Translated using Weblate (Czech)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/cs/

Translated using Weblate (Czech)

Currently translated at 99.0% (317 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/cs/

Translated using Weblate (Turkish)

Currently translated at 65.3% (209 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/tr/

Translated using Weblate (Czech)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/cs/

Translated using Weblate (Turkish)

Currently translated at 94.0% (271 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/tr/

Translated using Weblate (Spanish)

Currently translated at 100.0% (320 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Czech)

Currently translated at 100.0% (149 of 149 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (422 of 422 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Czech)

Currently translated at 99.9% (3237 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/cs/

Translated using Weblate (Spanish)

Currently translated at 100.0% (76 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/es/

Translated using Weblate (Spanish)

Currently translated at 98.9% (91 of 92 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (255 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/es/

Translated using Weblate (Czech)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/cs/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/uk/

Translated using Weblate (Spanish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (515 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/es/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (65 of 65 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/uk/

Translated using Weblate (Spanish)

Currently translated at 24.4% (42 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/es/

Translated using Weblate (Spanish)

Currently translated at 24.7% (73 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/vnstat2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsvnstat2/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/es/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (104 of 104 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/uk/

Translated using Weblate (Spanish)

Currently translated at 100.0% (80 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/es/

Translated using Weblate (Spanish)

Currently translated at 100.0% (320 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Czech)

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (422 of 422 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Korean)

Currently translated at 87.0% (27 of 31 strings)

Translation: OpenWrt/LuCI/applications/csshnpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscsshnpd/ko/

Translated using Weblate (Korean)

Currently translated at 45.6% (37 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (21 of 21 strings)

Translation: OpenWrt/LuCI/applications/tor
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstor/ko/

Translated using Weblate (Spanish)

Currently translated at 100.0% (320 of 320 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Korean)

Currently translated at 45.6% (37 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/ko/

Translated using Weblate (Korean)

Currently translated at 54.4% (61 of 112 strings)

Translation: OpenWrt/LuCI/applications/radicale3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale3/ko/

Translated using Weblate (Korean)

Currently translated at 72.9% (35 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/ko/

Translated using Weblate (Italian)

Currently translated at 33.3% (11 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/it/

Translated using Weblate (Korean)

Currently translated at 76.1% (16 of 21 strings)

Translation: OpenWrt/LuCI/applications/tor
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstor/ko/

Translated using Weblate (Italian)

Currently translated at 20.6% (38 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/it/

Translated using Weblate (Korean)

Currently translated at 100.0% (17 of 17 strings)

Translation: OpenWrt/LuCI/applications/nextdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnextdns/ko/

Translated using Weblate (Korean)

Currently translated at 67.4% (153 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ko/

Translated using Weblate (Italian)

Currently translated at 26.4% (60 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/it/

Translated using Weblate (Korean)

Currently translated at 87.2% (2824 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ko/

Co-authored-by: Alex Caserini <alex.caserini@gmail.com>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: Franco Castillo <castillofrancodamian@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: Josef Schlehofer <pepe@bloodkings.eu>
Co-authored-by: Juan Benites <benitesjn@gmail.com>
Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Co-authored-by: Sebastian <sebrock@gmail.com>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Co-authored-by: ozantopoglu <ozantopoglu@yahoo.com>
Signed-off-by: Alex Caserini <alex.caserini@gmail.com>
Signed-off-by: Dan <jonweblin2205@protonmail.com>
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: Josef Schlehofer <pepe@bloodkings.eu>
Signed-off-by: Juan Benites <benitesjn@gmail.com>
Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
Signed-off-by: Sebastian <sebrock@gmail.com>
Signed-off-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: ozantopoglu <ozantopoglu@yahoo.com>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscommands/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsminidlna/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsp910nd/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqos/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/es/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstransmission/cs/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswol/ko/
Translation: OpenWrt/LuCI/applications/commands
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/minidlna
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/p910nd
Translation: OpenWrt/LuCI/applications/qos-legacy
Translation: OpenWrt/LuCI/applications/qosify
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/transmission
Translation: OpenWrt/LuCI/applications/wol
2026-09-27 15:06:23 +03:00
Ash ClarkeandClaude Opus 5.5 6badfe174e luci-app-qosify: apply the config after start, limit cleanup
On 25.12 and master qosify.init pushes its config from
service_running(), which rc.common only calls for `running`, not from
start, so Start, Restart and a save or Restore that starts qosify left
the daemon running with no config. Wait for the qosify ubus object and
send reload; on 24.10, where service_started() already pushed it, the
same config changes nothing.

The cleanup helper deleted the root qdisc and clsact on every enabled
section's device, whoever owned them, so removing the package with
qosify stopped and SQM on the same device took SQM's root qdisc with
it. Only delete the root qdisc and qosify's filters (prefs 272-277)
while qosify's bpf classifier is still attached, and clsact only once
no filters are left on it.

qosify pastes bandwidth*, mode and the CAKE *options unquoted into a
tc command it runs with sh -c as root. Shell metacharacters there now
block the Config save and Restore upload instead of only being warned
after the file is written, and Quick Settings checks the bandwidth
fields too.

The check reads the config statement by statement as libuci does: cut
at an unquoted #, split at an unquoted ;, adjacent quoted and bare
parts joined, and a config statement opening a section wherever it
stands, including after a ;. A statement with a backslash outside
single quotes (an escape or line continuation, in the keyword, key or
value) or an unterminated quote is refused, as is a tc-bound option
that is not one value.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-27 14:47:19 +03:00
Ash ClarkeandClaude Opus 5.5 8d3c190c0c luci-app-qosify: clear clsact and ifb-dns on removal
qosify's stop leaves clsact on the shaped device and ifb-dns up:
interface_clear_qdisc() skips clsact and main() never calls
qosify_dns_stop(). Add a prerm that starts a copy of the cleanup helper
in the background. With `cleanup wait` it reads the device names first
and waits up to 30 s for qosify to exit, so it still works when
qosify's own prerm runs after this one. If qosify stays installed and
running, nothing is touched. Called with no argument, as the view
calls it, the helper behaves as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-27 14:47:19 +03:00
Ash ClarkeandClaude Opus 5.5 b755edef20 luci-app-qosify: fix blank Quick Add IPv4/IPv6 match labels
LuCI's E() sets a string child through innerHTML, so '<ipaddr>' and
'<ipv6addr>' were parsed as tags and both match options were blank.
Label them with qosify's own wording and pass the match labels and
the Reference rows as text nodes, which also restores <port>,
<endport> and <bytes> in the syntax and option descriptions.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-27 14:47:19 +03:00
Ash ClarkeandClaude Opus 5.5 e9788799c5 luci-app-qosify: fix config, rule and cleanup handling
A defaults dscp_prio, dscp_bulk or dscp_icmp that qosify cannot parse
makes qosify_ubus_config() return before the interfaces are applied,
so interface changes silently never took effect. Refuse such a config
on save and on Restore, and warn on the values qosify only drops: a
bad class value/ingress/egress, dscp_default_* or class dscp_prio and
dscp_bulk.

Warn on rule lines qosify_map_parse_line() skips without a message:
ports outside 1-65534 or reversed ranges, CIDR, a %zone suffix, a
malformed address and a third field. Quick Add uses the same checks.

Only offer and accept NQB when the running qosify has it; 24.10 and
25.12 ship 1501e09, which does not.

Restore turns CRLF into LF, and the Quick Settings writer reads a
CRLF config correctly instead of adding duplicate options.

Warn when /etc/qosify/00-defaults.conf is not matched by the defaults
list, as qosify then never loads it. Show an inherited option
bandwidth as the Quick Settings placeholder and drop the false
"bandwidth not set" warning when it covers both directions. Count the
1023-byte line limit on the raw line, as fgets() reads it.

The cleanup helper also deletes ifb-dns once qosify has exited: a stop
leaves it up under fq_codel. Default timeout placeholder 3600, option
descriptions reused in Quick Settings, aria-labels on the Quick Add
controls, the template ends with a blank line as qosify.conf does, and
a stray option:null is no longer passed to the writer.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-27 14:47:19 +03:00
Eamon Xiong 1958e98135 luci-mod-dashboard: preserve scroll position during polling
Rebuilding the dashboard on every poll discards DOM nodes, collapsing
document height and resetting vertical scroll position while reading tab
tables.

Keep persistent container shells in the root view and update table rows
in place following LuCI's table update pattern (cbi_update_table).
Preserve active tab selection, restore horizontal chart scroll offsets,
and isolate unsaved layout form edits across background poll ticks.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-27 14:45:05 +03:00
Eamon Xiong 93db8b2628 luci-mod-dashboard: show wireless band in Wireless detail tab
Add a Band column to the client table in the Wireless detail tab.
Map existing interface runtime frequencies to Sub-1, 2.4, 5, 6 and
60 GHz bands following Linux kernel wireless subsystem boundaries
(net/wireless/util.c and NL80211_BAND_S1GHZ), using a 2.312 GHz lower
bound for the 2.4 GHz band to accommodate extended channels (down to
channel -19 in ath9k/ath5k drivers), and displaying a dash when
unavailable.

Combine upload and download totals into one column to retain seven
columns.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-27 14:43:25 +03:00
Eamon Xiong f4f91aee25 luci-mod-dashboard: show IP addresses for wireless clients
Add an IP Address column to the wireless client table so users can
identify devices alongside their traffic without checking DHCP leases.

Match known host addresses by the client MAC and show at most one IPv4
and one IPv6 address, taking the first of each from the host hints after
excluding IPv6 link-local addresses. Show a dash when no address is known
and allow long addresses to wrap on narrow screens.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-23 18:52:08 +03:00
Eamon Xiong 89764f4a69 luci-mod-dashboard: add live charts and a configurable layout
Add configurable dashboard cards and tabs, along with five-minute
WAN traffic, CPU and memory history charts. This includes:

- status cards for CPU, memory, load and uptime next to Internet, all
  of one shape: a title, a value and one line of text;
- charts of the WAN traffic and of CPU and memory usage over the last
  five minutes;
- a Layout tab to choose which cards, charts and tabs are shown and in
  what order, kept in UCI as dashboard.layout;
- the time a wireless client has been connected, in the tooltips of
  the wireless client data usage chart and in the client table;
- the IPv4 and the IPv6 address of the uplink on the Internet card,
  one line each, and the IPv6 address in the Internet tab.

The samples behind the charts are taken on the router by a small rpcd
ucode plugin, luci.dashboard, every five seconds whether or not
somebody is looking, so the charts are full whenever the page is
opened. It keeps the raw counters of /proc/stat, /proc/meminfo and
/proc/net/dev with the router's monotonic clock in a ring of 60
samples. The page fetches what is new since its last poll and takes
the differences, so a reload or a hidden tab leaves no gap and the
rates do not depend on the browser's timing. One pass takes 2 to 3 ms
on a quad-core IPQ60xx, about 0.07% of one core, and the ring about
360 kB of memory.

Includes declare their widgets with a slot, an order and whether they
show by default. An include with nothing on the page is not polled,
and polling stops while the page is hidden. The layout form is a
form.Map of three DynamicLists in the last tab; while it is open the
poll redraws the cards and charts only. ui.DynamicList greys out a
choice only once it is picked and always offers a custom value, so the
form marks the values a list starts out with and drops the custom
entry. All of it stays within luci-mod-dashboard.

Name the charts WAN traffic, Wireless client distribution and
Wireless client data usage to make their scope clear.

Remove <code> formatting for consistent data display in tab tables,
and add CPU usage breakdown tooltips to the total and per-core rows.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-23 18:52:08 +03:00
Ash Clarke d245681559 luci-app-qosify: fold Quick Add, fit editors, split backup/restore
Quick Add Config is one form that swaps its fields with a type select,
and the option names carry no explanation. Replace it with three
folding sections, one per stanza group (defaults, class/alias,
interface/device), each a section grid with the option names across
the top, its own type select and Add button, and a panel giving every
option the description from the qosify README. A folding Reference
lists the defined classes, the accepted DSCP values and the defaults
qosify applies when a key is absent. The option panels are read back
out of the forms, so the two cannot disagree.

Quick Add Rule becomes one folding row, match, value, dscp, + and Add,
with the mapping file syntax and the defined classes in panels; each
class is listed with its DSCP value. Fold state is kept for the browser
session, with every sessionStorage access guarded.

Each editor sits in its own section, sized so the tab fits the window
and refitted when the tab opens, a section folds or the window resizes.
The fit is measured on the next animation frame: ui.tabs.switchTab()
fires cbi-tab-active from inside its loop over the panes, so panes
after the new one are still active when the handler runs, and a
measurement there counts the tab being left.

Advanced splits into Backup (file, size, modified, Download, the sizes
kept current by the Overview tick), Restore (a LuCI button over the
hidden native file picker, which ignores the theme, with the chosen
name beside it), Maintenance (Check Devices) and Defaults. The tab is
titled Rules rather than Classification Rules.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke 9ba14b4b85 luci-app-qosify: quick settings in four tabs
Quick Settings is one long form with labels close to the raw UCI
names and hints only on a few fields. Split it into Basic, Shaping,
Overhead and Advanced tabs under one Save & Apply bar, in a section
titled with the section it edits (interface wan quick settings), and
keep the open tab across the redraw after a save.

Every field gets a plain label and a short hint in qosify's own
wording, beside the control. Name is always shown, prefilled from the
section name for a config interface only, as a config device names a
netdev that differs from its section name by convention.

Overhead gains the three keys qosify.init reads that the form did not
offer: overhead_mpu, overhead_vlan and overhead_encap. overhead and
overhead_encap are shown, and saved, only under overhead_type manual,
since qosify.init ignores them otherwise; overhead_mpu and
overhead_vlan always apply. overhead may now be negative, which CAKE
accepts, and overhead_mpu must be a whole number of bytes.

mode no longer offers an empty choice: unset selects diffserv4, the
daemon's own default in interface.c, and a save writes it.

The write path is unchanged: the same setOpts() rewrite of the section
in /etc/config/qosify, followed by a reload.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke a0ea620e94 luci-app-qosify: one Service section on Overview
The service state is split over the Service Status table, a Service
Controls section, and the per-interface summary at the top of the
Status tab. Merge it into one Service section on Overview: status,
uptime, autostart, the number of shaping interfaces, one row per
interface or device from ubus call qosify status (active state,
resolved device, ingress, egress) and /etc/init.d/qosify. The table
follows the configured interfaces, so a tick swaps it whole; it holds
no input or focus.

Uptime is the qosify process's starttime from /proc/<pid>/stat against
/proc/uptime. Both run on the boot clock, so an NTP step does not skew
it. The start is cached per pid, so a reload keeps counting, a restart
starts again, and ticks read nothing new until the pid changes. Grant
read on /proc/uptime and /proc/[0-9]*/stat.

The service buttons move to a bar at the bottom of Overview. Buttons
that do not apply to the current state are disabled: Start while
running, Restart, Reload and Stop while stopped, and Reload Rules while
the daemon is down. With the state unknown they stay clickable, so the
failing call reports its own error.

The two config files are one table with status, section or rule count,
size and modification time. The Status tab shows only the qosify-status
output and no longer calls qosify status. Counters moves before
Advanced in the tab order.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke 16e7a51f35 luci-app-qosify: add a Counters tab
qosify keeps per-class counters and, on master, per-DNS-pattern and
eBPF map statistics, but the page shows none of them. Add a Counters
tab, polled like the others and only while it is open.

Traffic by Class lists the classes from ubus call qosify get_stats with
their dscp, packets, bytes and share, and a total row. Bar length is
the cube root of each row against the largest, so one bulk flow does
not flatten every other row; the share column stays exact. Rows are
grouped and coloured by the CAKE tin their egress codepoint lands in
under the configured diffserv mode, and AFx1 to AFx3 sort by drop
precedence. The tcp_default and udp_default slots are skipped, as a
dscp_default_* naming a class is already counted against that class.

get_stats has two shapes. qosify master (beeb87e) returns a classes
table plus ebpf_map_entries, last_reload_time, dns_cache, dscp and dns;
1501e09 (24.10, 25.12) returns qosify_map_stats() at the top level, one
table per class with packets only. Both are read, and only the fields
the reply carries are shown.

Traffic by CAKE Tin graphs the qosify-status output tin by tin, egress
and ingress summed from the pkts, bytes and drops rows tc prints, with
marks on hover. Qdiscs running a different diffserv mode get a table of
their own. It needs the existing qosify-status exec grant, so a
read-only session does not get it.

DNS Entries lists the dns entries from ubus call qosify dump with hits,
packets and bytes from the get_stats dns table. It is shown only when
get_stats carries that table, so dump is never called on 1501e09.

While qosify is stopped the figures are cleared rather than left on
screen looking live. get_stats and dump are declared with reject: true,
so a failed call is reported rather than read as an empty reply. Tin
colours use the theme's error, primary, warn and success colours, with
light and dark fallbacks for the extra diffserv8 and precedence tins.

Grant get_stats and dump in the read ACL group.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke cfe75658c5 luci-app-qosify: build the page from stock LuCI markup
The page draws its own badges, key/value tables, reference boxes and
muted notes with qos-* classes and inline styles, inside fieldset and
legend sections, so it looks the same under every theme and ignores the
theme's own table, label and section styles. Use the markup the themes
already style instead:

- sections are div.cbi-section with an h3 title
- status and file validity use .label success, warning and danger
- key/value tables are .table with .tr and .td rows
- Quick Settings and the Advanced file rows are .cbi-value rows, with
  hints as .cbi-value-description
- notes are cbi-section-descr, <p> or <em>, and code is <code>

qosify.css leaves the sections to the theme, so they are cards on
Footstrap and plain titled blocks on Bootstrap as on every other LuCI
page. It gives the two editors and the tc output their size, and lays
out the Quick Add rows. Bootstrap and OpenWrt 2020 have no
.label.danger, so the sheet supplies it from --error-color-high.

The editor width moves from the qos-edit class to the textarea ids with
box-sizing: border-box, next to the height, and the editors resize in
both directions, so the theme's textarea width cannot win and a wrong
width stays correctable.

The Config Reference class list becomes a .table like the one on the
Rules tab, so it now picks up that tab's existing "No classes defined
in %s" row when no class or alias is configured, where the plain div
rendered nothing. That is the only behaviour change, and no string is
added or altered.

po/templates/qosify.pot regenerated with build/i18n-scan.pl for the
moved source lines.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke 955e8ae1a5 luci-app-qosify: poll at LuCI's interval
Both pollers pass a fixed 10 s to poll.add(), so the page ignores
luci.main.pollinterval. Leave the interval out so poll.add() takes
L.env.pollinterval (5 s unless set), which the user can change.

On the default setting the Status tab now forks qosify-status every
5 s rather than 10 s. It still does so only while that tab is open, and
Poll.step() still holds the next tick until the last one settles, so a
fork slower than the interval skips ticks instead of stacking up. A
target that cannot afford the fork at that rate raises
luci.main.pollinterval, which slows the rest of LuCI's polling with it,
instead of the page choosing its own rate.

Pausing with the header refresh toggle is unchanged, as it stops the
whole poll loop.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke 3f2ca23e8d luci-app-qosify: add Reload Rules and Check Devices
A rules edit only needs the mapping files re-read, but the only way to
get that from the page is Reload, the init script's reload_service(),
which pushes the whole config. Add Reload Rules next to it: ubus call
qosify reload runs qosify_map_reload(), which re-reads the files in the
defaults list and leaves the qdiscs, the interface config and the
dynamically added entries alone.

Add Check Devices to the Advanced tab: ubus call qosify check_devices
runs qosify_iface_check(), which starts a section whose device now
exists and stops one whose device has gone, so a device that appears
after qosify started is picked up without a restart rebuilding every
qdisc. The method arms a 10 ms uloop timer and returns before the pass
runs, so the page waits before refreshing the service state.

Both methods return an empty reply, so they are declared with
reject: true; without it a failed call would report success. Both are
in qosify 1501e09 (24.10, 25.12) and master. Grant them in the write
ACL group.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Ash Clarke 3083995f67 luci-app-qosify: report an unanswered status call as unknown
rpc.declare() resolves a ubus error status unless reject is set, so a
status code (6 once the session's ACL no longer covers the object, 4
when the object is gone) stays in result[0] and expect {'': {}}
rewrites it to the same {} a working call with nothing to report
returns. L.resolveDefault() cannot tell the two apart, so an ACL left
over from an older install, a stale session or a stopped rpcd reads as
a stopped, unshaped qosify with no init script.

Declare rc.list, service.list and qosify.status with reject: true and
catch each rejection to null. running, enabled, hasInit, active and
shaped are then null rather than false when the call was not answered,
and the Overview service table shows an amber Unknown badge for each,
with the cause named once, on the first row that reads Unknown. The
qosify object goes with the daemon, so an unanswered status call while
qosify is stopped still reads as not shaping.

The autostart button carries the state as its label, so it shows
Unknown and is disabled while the state is unknown. Its click now reads
the state from the last refresh rather than from when the button was
built, so a tick that changes the state also changes the action. The
start, stop, restart and reload buttons stay clickable. When the
service.list poll after a start, restart or stop goes unanswered, the
action fails with "rpcd is not answering" rather than reporting a
result it could not check, and a stop then skips
/usr/share/qosify-luci/cleanup instead of cleaning up.

A save no longer warns that qosify is not shaping when the check could
not run; it says shaping could not be checked. When service.list goes
unanswered while a save applies, qosify is restarted rather than
reloaded or started, since the config is already written and the
running state is unknown. That restart also starts a qosify that was
stopped.

The Status tab says rpcd is not answering rather than that qosify is
not running, and says the interface summary is unavailable when only
qosify status went unanswered.

updateEnBadge() gives the Config tab's QoS Enabled badge the same
treatment: with the section enabled and the status call unanswered it
reads Status Unknown, rather than the Enabled — Not Shaping (check
config) or Enabled — Not Running a null active used to fall through to.
A section disabled in UCI still reads Disabled — that state comes from
the config, not from the call, so an unanswered call does not put it in
doubt.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-21 20:37:33 +03:00
Eamon Xiong 7c91cb278d luci-mod-dashboard: fix low contrast of muted elements
--dashboard-text-muted used --text-color-low, the step closest to the
page background, which left everything it paints hard to read: the
ifacebox property labels in the wireless tab, the chart axis ticks and
bar labels, the legends and the donut caption. They are all normal-size
text, so the token now takes --text-color-high and the muted look is
carried by size and weight instead of colour. The light fallback, used
by the themes that define no colour tokens, moves a step darker so it
stays legible on their grey card backgrounds as well.

The donut track and the no-signal bar are not text and must not follow
the token up to full emphasis. Both now use --dashboard-border, the
colour the chart gridlines already use.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-20 17:07:54 +03:00
Ivan Kvashonkin c8a49e1947 luci-theme-footstrap: sync with release 0.14.13
Appearance becomes a page of its own under System, replacing the tab
the theme stapled onto luci-mod-system's form, and the reader's scroll
position now survives a poll refill on every engine, Back included.
Adds a fifth colourway, a movable content-width cap, Overview cards
that collapse from the keyboard and meters that colour by their own
reading. The wallpaper uploads move out of fs-prefs.js into their own
module and the SVG sanitiser is hardened; the pattern is now served by
a CGI handler with CSP 'none', sandbox and nosniff rather than a /www
symlink a browser will run as a document. postinst and postrm no
longer call `rpcd reload`, which could permanently drop an unrelated
rpcd plugin.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
2026-09-20 14:32:55 +03:00
e4d4ee0adb Translated using Weblate (Polish)
Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pl/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Korean)

Currently translated at 58.3% (28 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/ko/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 75.7% (125 of 165 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/zh_Hant/

Translated using Weblate (Swedish)

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/sv/

Translated using Weblate (Korean)

Currently translated at 44.1% (76 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ko/

Translated using Weblate (Korean)

Currently translated at 45.4% (134 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ko/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 79.1% (258 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 83.6% (241 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/zh_Hant/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Korean)

Currently translated at 87.2% (2824 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ko/

Translated using Weblate (Korean)

Currently translated at 31.9% (55 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ko/

Translated using Weblate (Korean)

Currently translated at 43.0% (127 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ko/

Translated using Weblate (Russian)

Currently translated at 100.0% (151 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/ru/

Translated using Weblate (Korean)

Currently translated at 26.1% (45 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ko/

Translated using Weblate (Korean)

Currently translated at 38.3% (113 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ko/

Translated using Weblate (Irish)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ga/

Translated using Weblate (Irish)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ga/

Translated using Weblate (Irish)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ga/

Translated using Weblate (Korean)

Currently translated at 63.0% (29 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/ko/

Translated using Weblate (Korean)

Currently translated at 25.0% (43 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ko/

Translated using Weblate (Korean)

Currently translated at 36.2% (107 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ko/

Translated using Weblate (Russian)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ru/

Translated using Weblate (Polish)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pl/

Translated using Weblate (Russian)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ru/

Translated using Weblate (Korean)

Currently translated at 49.1% (88 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (233 of 233 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/ko/

Translated using Weblate (Korean)

Currently translated at 16.2% (28 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ko/

Translated using Weblate (Korean)

Currently translated at 14.9% (44 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ko/

Translated using Weblate (Korean)

Currently translated at 66.9% (152 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ko/

Translated using Weblate (Korean)

Currently translated at 68.7% (224 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ko/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ru/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ru/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/zh_Hans/

Translated using Weblate (Korean)

Currently translated at 50.5% (93 of 184 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Swedish)

Currently translated at 100.0% (21 of 21 strings)

Translation: OpenWrt/LuCI/applications/tor
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstor/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (6 of 6 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-rssi
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-rssi/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-usbport
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-usbport/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-switch
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-switch/sv/

Translated using Weblate (Spanish)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/es/

Translated using Weblate (Polish)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/pl/

Translated using Weblate (Russian)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/ru/

Translated using Weblate (Swedish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/sv/

Translated using Weblate (Polish)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pl/

Translated using Weblate (Swedish)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (80 of 80 strings)

Translation: OpenWrt/LuCI/applications/bmx7
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbmx7/sv/

Translated using Weblate (Russian)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ru/

Translated using Weblate (Swedish)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/sv/

Translated using Weblate (Russian)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ru/

Translated using Weblate (Spanish)

Currently translated at 99.6% (287 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/es/

Translated using Weblate (Spanish)

Currently translated at 99.3% (324 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/es/

Translated using Weblate (Russian)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ru/

Translated using Weblate (Spanish)

Currently translated at 100.0% (227 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/es/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Russian)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Polish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Swedish)

Currently translated at 100.0% (162 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (255 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (326 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (76 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (34 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (162 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (255 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (81 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (77 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (125 of 125 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (48 of 48 strings)

Translation: OpenWrt/LuCI/applications/openwisp
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenwisp/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (66 of 66 strings)

Translation: OpenWrt/LuCI/applications/sshtunnel
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssshtunnel/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (90 of 90 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (85 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (28 of 28 strings)

Translation: OpenWrt/LuCI/applications/udpxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsudpxy/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (16 of 16 strings)

Translation: OpenWrt/LuCI/applications/squid
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssquid/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/sv/

Translated using Weblate (Swedish)

Currently translated at 95.7% (312 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (197 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (149 of 149 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (165 of 165 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (422 of 422 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 15.7% (12 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (27 of 27 strings)

Translation: OpenWrt/LuCI/applications/sfp-info
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssfp-info/sv/

Translated using Weblate (Polish)

Currently translated at 97.7% (222 of 227 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/pl/

Translated using Weblate (Korean)

Currently translated at 85.7% (169 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/ko/

Translated using Weblate (Korean)

Currently translated at 54.2% (177 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ko/

Translated using Weblate (Polish)

Currently translated at 96.6% (315 of 326 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/pl/

Translated using Weblate (Korean)

Currently translated at 100.0% (288 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ko/

Translated using Weblate (Polish)

Currently translated at 96.5% (278 of 288 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/pl/

Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Co-authored-by: Cerarin <sk_jiale233@qq.com>
Co-authored-by: Daniel Nylander <yeagersthlm@gmail.com>
Co-authored-by: Franco Castillo <castillofrancodamian@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: Piotr Kołtun <pkoltungm@gmail.com>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Signed-off-by: Cerarin <sk_jiale233@qq.com>
Signed-off-by: Daniel Nylander <yeagersthlm@gmail.com>
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
Signed-off-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: Matthaiks <kitynska@gmail.com>
Signed-off-by: Piotr Kołtun <pkoltungm@gmail.com>
Signed-off-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsminidlna/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/ko/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsp910nd/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/sv/
Translation: OpenWrt/LuCI/applications/coovachilli
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/minidlna
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/p910nd
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/uhttpd
Translation: OpenWrt/LuCI/applications/upnp
2026-09-20 14:30:06 +03:00
Dirk Brenken 39530b2b69 luci-app-banip: sync with base package 1.9.0
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-19 19:56:54 +02:00
Fuad Hasan 76a7614620 luci-base: reject quoting characters in auth plugin asset paths
normalize_assets() rejects .. and whitespace but not quotes or angle
brackets, and every sysauth template interpolates the surviving src
straight into an attribute without escaping:

	<script src="{{ asset.src }}"></script>

A src of /luci-static/plugins/<uuid>/x.js"></script><script>... passes
both existing checks and closes the attribute. It needs no whitespace,
so the existing character class does not stop it.

The three in-tree templates could entityencode() instead, but
normalize_assets() is the single point every theme goes through, so
filtering here also covers out-of-tree themes carrying the same markup.

src comes from a plugin's own check(), which is server-side ucode able
to emit script through the html field regardless, so this is not a
privilege boundary. It matters for a plugin deriving src from request
input, and it keeps the filter consistent with what it already tries to
do.

Signed-off-by: Fuad Hasan <fuad.antor@gmail.com>
2026-09-18 20:18:17 +02:00
Fuad Hasan 5c4e7afe71 luci-base: fix auth plugin asset loading
normalize_assets() passes a string to match(), which requires a regexp
and returns null for anything else. The path check therefore fails for
every asset and each one is dropped by the following continue, so an
auth plugin's scripts are never rendered on the login page.

The failure is silent. The html returned by the same check() call is
unaffected, so a plugin's login UI appears without the script that
drives it and nothing is logged. plugins/luci-plugin-auth-example is
affected as well.

The check is a plain prefix test, so use index() rather than compiling a
regexp per asset. It returns the offset of the first occurrence or -1,
making != 0 the equivalent of the anchored ^, and comparing two plain
strings keeps the check independent of how uuid is validated.

Signed-off-by: Fuad Hasan <fuad.antor@gmail.com>
2026-09-18 20:18:17 +02:00
Dirk BrenkenandClaude aef4a82632 luci-app-shunt: sync with base package 0.1.10-1
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-18 16:07:49 +02:00
Eamon Xiong 1a7ea5810c luci-mod-dashboard: rework the layout using standard LuCI markup
Give each kind of data the form that suits it: a row of KPI cards for
the values you check at a glance, a row of charts for the per-client
data, and a tabbed panel for the details you look up once. Every field
the page showed before is still there, only shaped differently.

Build it from the markup LuCI and the themes already provide, so the
page takes the look of whatever theme it runs in instead of carrying
one of its own: .cbi-section with h3 and .cbi-section-descr for the
cards and KPI tiles, .cbi-map with a .cbi-map-tabbed group for the tab
panel and ui.tabs for its menu, .table with a .table-titles row and
cbi-rowstyle stripes for the tables, .ifacebox for the wireless radios,
the theme's .label for badges, and code, em, small and strong for
values. ui.tabs also keeps the selected tab across the poll re-render.

The charts are the one part LuCI has no component for, so they are
drawn in a new lib/charts.js as plain DOM and SVG, with no dependency.
Their colours, and the few rules left in custom.css, read the generic
LuCI colour variables. Not every theme defines those, so each one now
falls back to both a light and a dark literal, keyed on the theme's
darkmode attribute and on prefers-color-scheme. custom.css used to
fall back to light literals only, which left the page dark grey on
dark under a theme that has a dark mode but not the variables.

The five icons are redrawn as one stroke set and applied as a CSS
mask, so they take their colour from the theme as well.

The wireless signal is plotted as the RSSI the driver reports, in dBm,
rather than a percentage derived from an assumed noise floor, and
clients are graded against -67 dBm. Byte counters are formatted with
%1024.2mB and the traffic axis labelled in KiB/MiB/GiB, matching how
the status pages present the same values.

No new data is collected and no new ACL entry or RPC method is needed.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-17 23:01:15 +03:00
Eamon Xiong a36da985d1 luci-mod-dashboard: retry failed include loads on the next poll
A rejected load() latched the include's failed flag and nothing ever
cleared it, so one transient ubus error dropped that include from every
later poll cycle until the page was reloaded, and the rejection was
swallowed without a diagnostic. Reset the flag on each load pass and
log the error.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-17 23:01:15 +03:00
Ash Clarke 3791919f3e luci-app-qosify: cut the cost of a poll tick
The page polls, so the work per tick matters on the targets this
package is aimed at. The tick no longer re-reads both config files and
rebuilds three fieldsets; it patches the service table cells and the
autostart button in place with dom.content.

The Status tab is the expensive one -- qosify-status forks tc twice per
active interface -- so it now fetches when the tab is opened rather
than on every page load, keeps its 10 s tick rather than picking up
L.env.pollinterval, paints the per-interface summary from ubus without
waiting on the fork, and patches the <pre> in place so a tick cannot
reset the scroll position while it is being read. Poll.step() holds the
next tick until the promise settles and an overlapping refresh is
dropped, so a fork slower than the interval skips ticks instead of
stacking up.

po/templates/qosify.pot regenerated with build/i18n-scan.pl.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-17 07:02:55 +02:00
Ash Clarke b562acac48 luci-app-qosify: follow LuCI UI conventions
Honour L.hasViewPermission() and disable the controls when the ACL is
read-only, replace the confirm() and alert() calls with ui.showModal
and ui.addNotification, drop the last innerHTML and the hand-rolled
escaper with it, build the tabs with ui.tabs.initTabGroup instead of a
hand-rolled show and hide, use the theme's cbi-button-* classes,
associate every label with its control, and put the remaining bare
strings through _() and N_(). Add the SPDX identifier.

The inline <style> becomes a shipped qosify.css loaded with L.resource.
That also changes the size of the three big boxes: both editors and the
tc output now take the viewport less the chrome above them, with
height: calc(100vh - ...), a min-height floor for short screens and
resize: vertical, instead of a fixed rows=28 textarea and an
auto-height block. rows=28 stays on the textareas as the fallback if
the sheet does not load.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-17 07:02:55 +02:00
Ash Clarke 5b4ef8c2f6 luci-app-qosify: stop a save overwriting the whole config
Quick Settings read /etc/config/qosify with L.resolveDefault(..., ''),
so a failed read fell through to setOpts()'s create path and replaced
the whole file with a single section, taking every class and the
defaults section with it. Fail the save instead, and refuse to write
when the file is non-empty on disk but came back empty. Both editors
now record the size and mtime they loaded from and prompt before
overwriting a file that changed underneath them, and a reload after a
save only refreshes the editor for the file just written, so unsaved
edits in the other one are no longer discarded. Saving an empty config
editor truncates the file, so that path takes both checks too: an
editor left empty by a failed read still carries the size and mtime
found on disk, so the prompt alone would let a wipe through.

Read the daemon's booleans the way the daemon reads them: ingress,
egress, nat, host_isolate and autorate_ingress go through
json_add_boolean, which converts with !!atoi(), so 'true' means off,
while disabled goes through config_get_bool, which accepts the word
forms. Warn when a value is neither.

Recognise UCI headers with a trailing comment or a ';' separator,
refuse to rewrite an option that is a list in that section, widen the
options lint from ' to every shell metacharacter (qosify assembles the
tc command and runs it with sh -c), parse raw DSCP values and ports
with strtoul(base 0) semantics, so 077 is 63 and 08 is not a number,
accept the tc rate forms the daemon accepts, and allow the IPv4-mapped
form for ipv6 rules, which inet_pton takes. Drop the w.option
fallback: qosify only reads options.

validateRules() no longer rejects a line with a single field: qosify
skips those, so ruleWarn() reports them as a warning instead of the
save being blocked. It rejects a line over 1023 characters instead,
which the rule loader reads in fixed-size chunks and would split.
Reset writes the two files in turn rather than in parallel and names
the one that failed, so a partial reset is no longer reported as a
success. Quick Add Config rejects a section name with invalid
characters instead of silently stripping them, and finds duplicates
from the parsed sections rather than a regex that matched one quoting
style.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-17 07:02:55 +02:00
Ash Clarke ff61c2775f luci-app-qosify: move service control and status onto ubus
luci.setInitAction was removed from luci-base in 4440b267d, so every
service action in this app called a method that no longer exists.
rpc.declare treats a remote exception as a resolved value unless reject
is set, so the page reported success while doing nothing. Move service
control to the rc namespace, which is part of the rpcd core binary, so
there is no new dependency, and treat a start or stop that does not
take effect as a failure.

Take autostart state from rc.list with skip_running_check instead of
forking /etc/init.d/qosify enabled -- a stat of /etc/rc.d/S19qosify,
which also avoids the init script's 10 s ubus wait_for against rpcd's
3 s cap -- and shaping state from ubus call qosify status instead of
forking qosify-status, which forks tc twice per active interface. A
page load is now eight ubus calls -- uci get, service.list, rc.list,
qosify.status, and a file.stat and file.read per config file -- and no
shell forks. Save reload instead of restart, since qosify_ubus_config
re-reads the rule files and only touches interfaces whose config
changed, so shaping is no longer torn down and rebuilt and the dynamic
DNS and IP map entries survive a save.

The service table follows the calls: the Package row goes, since the
/usr/sbin/qosify stat it reported is gone, and a Shaping row takes its
place with the count of active interfaces the daemon reports. A file
read that fails now yields null rather than an empty string, so the
editors fill null-safely.

Rewrite root/usr/share/qosify-luci/cleanup: it deleted the root qdisc
on a hardcoded pppoe-wan, which could destroy an unrelated shaper.
Enumerate qosify's own sections with config_foreach, resolve interface
names with network_get_device, derive the ifb name the way qosify
derives it, and run it only once the daemon is confirmed stopped -- it
deletes the qdiscs and the ifb devices the daemon is using. The lock is
an flock on an open fd, which the kernel releases even when rpcd kills
the script at its exec timeout, so a double click cannot race a restart
and a leftover lock cannot turn every later run into a silent exit 0.

Rebuild the ACL around the calls that remain: rc.init, rc.list and
qosify.status granted, exec grants moved into the write scope, the
unused /etc/init.d/qosify and /usr/sbin/qosify grants and file.list
dropped.

Add +luci-base to LUCI_DEPENDS: it was missing, so nothing pulled in
rpcd-mod-file, which the entire UI depends on.

Drop LUCI_PKGARCH:=all: luci.mk already defaults it to all for a package
without a src/Makefile.

Signed-off-by: Ash Clarke <clarkeaj@hotmail.co.uk>
2026-09-17 07:02:55 +02:00
Dirk BrenkenandClaude 06e111ab07 luci-app-shunt: sync with base package 0.1.8-1
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-16 19:52:54 +02:00
Hannu Nyman 6da86dba37 treewide: sync translations
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-09-16 18:50:14 +03:00
6d81abb6a9 Translated using Weblate (Russian)
Currently translated at 100.0% (162 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translation: OpenWrt/LuCI/applications/cloudflared
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscloudflared/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (151 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (515 of 515 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/ru/

Translated using Weblate (Korean)

Currently translated at 87.2% (2824 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (34 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/ko/

Translated using Weblate (Russian)

Currently translated at 100.0% (151 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/ru/

Translated using Weblate (Korean)

Currently translated at 100.0% (28 of 28 strings)

Translation: OpenWrt/LuCI/applications/udpxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsudpxy/ko/

Translated using Weblate (Korean)

Currently translated at 63.0% (104 of 165 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/ko/
Translation: OpenWrt/LuCI/applications/coovachilli
2026-09-16 18:46:04 +03:00
Andy Chiang d270583947 luci-lua-runtime: update timezone data to 2026d
Update timezone data to 2026d.
  Northwest Territories moved to permanent -06 on 2026-08-21.

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
2026-09-16 11:54:45 +02:00
Andy Chiang 748e5c1801 luci-base: update timezone data to 2026d
Update timezone data to 2026d.
  Northwest Territories moved to permanent -06 on 2026-08-21.

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
2026-09-16 11:54:45 +02:00
Hannu Nyman d19bf1358f luci-theme-openwrt-2020: Revert "use lighter color for checkboxes"
This reverts commit 62382556d7.

The commit removed the visible checkmark from the default light mode.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-09-14 21:09:21 +03:00
Maxim Skokov 31687c72dd luci-mod-dashboard: fix word breaks
word-break: break-all caused firmware version, model and architecture
strings to break at arbitrary character positions. Replace with
overflow-wrap: break-word and word-break: normal so strings only
break when they cannot fit on a single line.

Fixes openwrt/luci#7468.

Signed-off-by: Maxim Skokov <skokov.m020709@gmail.com>
2026-09-14 19:31:13 +02:00
Alexey Zagorodnikov 4e23ae592d luci-theme-material: fix dark-light manual switching
Added a symlinks for material-light and material-dark.

Signed-off-by: Alexey Zagorodnikov <xglooom@gmail.com>
2026-09-14 19:30:24 +02:00
Yanase Yuki f4eebd44d6 luci-app-dcwapd: remove package
It seems dcwapd is no longer maintained, because
the latest upstream commit is 7 years ago.
I think Wi-Fi 7 MLO provides similar feature.

Signed-off-by: Yanase Yuki <dev@zpc.st>
2026-09-14 12:21:14 +02:00
22edfb68a2 Translated using Weblate (Russian)
Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Spanish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Russian)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Korean)

Currently translated at 77.6% (59 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/ko/

Translated using Weblate (Russian)

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/ru/

Translated using Weblate (Irish)

Currently translated at 100.0% (149 of 149 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (422 of 422 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Swedish)

Currently translated at 100.0% (172 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (295 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/sv/

Translated using Weblate (Russian)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Spanish)

Currently translated at 100.0% (117 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/es/

Translated using Weblate (Czech)

Currently translated at 100.0% (109 of 109 strings)

Translation: OpenWrt/LuCI/applications/filemanager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfilemanager/cs/

Translated using Weblate (Swedish)

Currently translated at 100.0% (172 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/sv/

Translated using Weblate (Swedish)

Currently translated at 36.9% (109 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (2 of 2 strings)

Translation: OpenWrt/LuCI/applications/babeld
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbabeld/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (168 of 168 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 80.9% (136 of 168 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (173 of 173 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/sv/

Translated using Weblate (Swedish)

Currently translated at 14.4% (11 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (68 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (117 of 117 strings)

Translation: OpenWrt/LuCI/applications/tailscale-community
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstailscale-community/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (46 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/sv/

Translated using Weblate (Swedish)

Currently translated at 20.3% (35 of 172 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/sv/

Translated using Weblate (Swedish)

Currently translated at 16.9% (50 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (173 of 173 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (151 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (184 of 184 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (220 of 220 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (31 of 31 strings)

Translation: OpenWrt/LuCI/applications/csshnpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscsshnpd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (108 of 108 strings)

Translation: OpenWrt/LuCI/applications/rustdesk-server
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrustdesk-server/sv/

Translated using Weblate (Swedish)

Currently translated at 16.9% (50 of 295 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (65 of 65 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (113 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4 of 4 strings)

Translation: OpenWrt/LuCI/applications/softether
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssoftether/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (34 of 34 strings)

Translation: OpenWrt/LuCI/applications/adguardhome
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadguardhome/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (187 of 187 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/sv/

Translated using Weblate (Swedish)

Currently translated at 31.8% (36 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 81.2% (256 of 315 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 84.1% (233 of 277 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/zh_Hant/

Translated using Weblate (Korean)

Currently translated at 65.7% (50 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (4 of 4 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-usbport
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-usbport/ko/

Translated using Weblate (Korean)

Currently translated at 100.0% (6 of 6 strings)

Translation: OpenWrt/LuCI/applications/ledtrig-rssi
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsledtrig-rssi/ko/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 80.3% (253 of 315 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 32.8% (25 of 76 strings)

Translation: OpenWrt/LuCI/applications/lorawan-basicstation
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslorawan-basicstation/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 81.2% (121 of 149 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (3238 of 3238 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (220 of 220 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (184 of 184 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (31 of 31 strings)

Translation: OpenWrt/LuCI/applications/wifischedule
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswifischedule/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (104 of 104 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/sv/

Translated using Weblate (Swedish)

Currently translated at 66.6% (22 of 33 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (277 of 277 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (315 of 315 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (149 of 149 strings)

Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Co-authored-by: Daniel Nylander <yeagersthlm@gmail.com>
Co-authored-by: Franco Castillo <castillofrancodamian@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: Juan Benites <benitesjn@gmail.com>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Co-authored-by: 為什麼不加空格 <c++23@users.noreply.hosted.weblate.org>
Signed-off-by: Daniel Nylander <yeagersthlm@gmail.com>
Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: Juan Benites <benitesjn@gmail.com>
Signed-off-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: 為什麼不加空格 <c++23@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/ga/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqosify/sv/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/ru/
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/qosify
Translation: OpenWrt/LuCI/applications/statistics
2026-09-14 09:43:32 +03:00
Josef Schlehofer 22e4e76524 luci-app-lldpd: remove broken CSS version suffix
The stylesheet link ends with '?v=#PKG_VERSION'. Nothing in this
repository replaces that placeholder, so it does nothing. Remove it
and link the stylesheet directly, like other applications do.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-13 15:39:47 +02:00
Dirk Brenken 8a2a92462f luci-app-travelmate: fix missing vpn color on the wireless stations page
- fixed vpn coloring, reported in the OpenWrt forum:
  https://forum.openwrt.org/t/travelmate-support-thread/5155/1090

Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-12 20:37:51 +02:00
Javen Li 842f055efb luci-app-frpc: avoid saving the same form twice
The status wrapper carries a cbi-map class without a bound form
instance. LuCI resolves it to the enclosing map, invoking save and
reset twice and potentially submitting duplicate UCI delete requests.

Remove the form marker while preserving the fieldset and polling,
matching the existing frps fix.

Signed-off-by: Javen Li <j.wroiate@gmail.com>
2026-09-12 09:06:34 +03:00
Javen Li 8961ed5ee3 luci-app-frps: avoid saving the same form twice
The status section renders a nested cbi-map without a bound form
instance. LuCI resolves it to the enclosing map, so save and reset
invoke that map twice. Concurrent saves can submit duplicate UCI delete
requests and report resource not found.

Remove the form marker from the status wrapper while retaining its
fieldset and polling. This addresses the duplicate-save cause of
issue #7679.

Signed-off-by: Javen Li <j.wroiate@gmail.com>
2026-09-12 09:06:34 +03:00
Dirk Brenken 289a726043 luci-app-banip: sync with base package 1.8.13-2
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-10 20:03:51 +02:00
Dirk Brenken ba173f07f7 luci-app-travelmate: sync with base package 2.4.9-2
- LuCI: fix blank pages on footstrap theme navigation

Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-09 22:57:53 +02:00