Commit Graph

4908 Commits

Author SHA1 Message Date
Paul Donald
7aa39de9fe luci-mod-status: add log filtering to syslog tab
Facility and severity filtering are based on a simple includes() search.
As such, false positives are possible. Although for the majority of
cases, this is still useful. Filtering using logread -z/Z is possible,
but not if a static log-file is configured. logread does not yet handle
severity either. 'not' checkboxes for each invert the respective search
filter.

A raw-text filter is also included as a bonus, whose meaning can be
inverted via the 'not' checkbox.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 16beffda15)
2025-06-17 16:00:34 +02:00
Paul Donald
ec8edb4858 Revert "luci-base: override the load() function to return boolean for FlagValue"
This reverts commit bedefb1803.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-06-12 14:51:23 +02:00
Paul Donald
20ca3c1c91 luci-mod-system: Add repo key management
Simplifies adding third-party repos. Functions on both 24.10 (opkg) and
main (apk). Based loosely on sshkey management.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit acdffc3d1d)

luci-mod-system: Add repo key management

follow-up fix to acdffc3d1d

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit cf1e61f10d)

luci-mod-system: repo key management

Reject PEM in OPKG; reject non-PEM in APK

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 65bdfc61db)
2025-06-10 16:34:10 +02:00
Hannu Nyman
7527ccebb4 treewide: Backport translations and sync
Backoprt translations.
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-06-07 18:57:10 +03:00
Paul Donald
3b521efdca luci-mod-network: wireless.js fixes
follow-up to cdce600

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 8bab10f820)
2025-06-06 13:38:52 +02:00
Nicolò Veronese
691440af29 luci-mod-network: fix default policy for bondig device
This fixes the missing policy option in UCI when selecting 'active-backup'
 as the required policy.

This has been discussed on issue #7683.

Signed-off-by: Nicolò Veronese <nicveronese@gmail.com>
(cherry picked from commit c996de5a82)
2025-05-17 12:22:53 +02:00
Hannu Nyman
48b6321319 treewide: Backport translations from master
Backport translations from master.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-05-10 13:44:51 +03:00
Hannu Nyman
cca465436c luci-base: Hardcode 'openwrt-24.10' as the branch name
Hardcode 'openwrt-24.10' release branch as the branch name to avoid
'LuCI (HEAD detached at 2ac26e56) branch' being shown as the branch.

Feeds are since March 2025 cloned shallow if cloned from a specific
commit, like done with a release tag. Change in OpenWrt:
32d0a57dc1

As the only cloned commit of a release tag is without history, the branch
can't be identified.

So, hardcode the branch name to get the proper branch name
'LuCI openwrt-24.10 branch'.

Fixes #7737

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-04-26 13:00:15 +03:00
Paul Donald
bedefb1803 luci-base: override the load() function to return boolean for FlagValue
In the underlying uci system, all variables are effectively strings, so
for those configuration values which serve as 'boolean' flags, we need
to coerce the various forms into a real boolean. Only the following
string values result in true: 1|on|true|yes|enabled. Otherwise, false.

Checkboxes now fill correctly.

"Unchanged" configurations may write changed values as the Flag values
are coerced to '1' or '0' on write, but the configuration behaviour
remains synonymous.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 1355a6fa25)
2025-04-25 17:18:48 +02:00
Hannu Nyman
32551320cb treewide: Backport translations
Backport translations. Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-04-24 18:44:54 +03:00
Paul Donald
9453d7db80 luci-mod-network: widgets shall show devices that are online as online
follow-up to 832680bb84

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit f17ae7fd96)
2025-04-24 00:13:46 +02:00
Paul Donald
310e4abf85 luci-mod-network: wireless.js fixes
follow-up to cdce600aae

Fixes a const reassignment error

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 1e3aa83b44)
2025-04-23 14:25:37 +02:00
Paul Donald
1369ee74a6 luci-base: prevent tools.widgets.ZoneSelect tracebacks
follow-up fix for 0be4ad51a0

It seems to have been this way for a while, for zone selections
involving the 'any' ('*') choice. firewall forwards.js has no
'this.allowany;' property on the widgets, so the any choice is absent,
leading to a traceback, caused by the 'src' widget, even though
this code block operates on the 'dst' value. Certain combinations of
'src' and 'dst' also triggered tracebacks.

This might not be the correct behaviour for this widget, but it does
prevent tracebacks caused by null values.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit aa6924cd4c)
2025-04-23 14:25:37 +02:00
Paul Donald
e72728491f luci-mod-network: widgets shall show devices that are online as online
Tunnel devices which are up, show as down, since the config being
enumerated does not have access to any device status. The 'device' being
enumerated is e.g. 'wireguard_wg0', a configuration for a tunnel
interface, whose parent is an 'ethernet' type.

That's a bug for another day. So they shall use parent device status.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit a288354e78)
2025-04-23 14:25:37 +02:00
Paul Donald
326b624790 luci-base: widgets shall show devices that are online as online
Tunnel devices which are up, show as down, since they don't have access
to any device status. The 'device' being enumerated is e.g.
'wireguard_wg0', a configuration for a tunnel interface, whose parent
is an 'ethernet' type.

That's a bug for another day. So they shall get parent device status.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 832680bb84)
2025-04-23 14:25:36 +02:00
Andrew Robbins
ca805cb159 luci-lua-runtime: specify c17 standard
build was failing b/c gcc15 defaults to c23, which lemon is not written for (and errors with).

Signed-off-by: Andrew Robbins <andrew@robbinsa.me>
(cherry picked from commit 852fc23b12)
2025-04-18 15:04:37 +02:00
Andrew Robbins
f7b7478abb luci-base: specify c17 standard
build was failing b/c gcc15 defaults to c23, which lemon is not written for (and errors with).

Signed-off-by: Andrew Robbins <andrew@robbinsa.me>
(cherry picked from commit 7e6741fbae)
2025-04-18 15:04:36 +02:00
Oleg S
b8e61d86c0 luci-base: package update based cache-busting string
Problem:
After updating the JS-part of any package, the user is forced to clear
the browser cache.

Fix:
Each time a package is removed or installed, the contents of the
"/lib/apk/db/installed" file are changed.
This fix add the modification time of the "/lib/apk/db/installed" file
to the version of the main LuCI package (for each js-file).

Signed-off-by: Oleg S <remittor@gmail.com>
(cherry picked from commit f6f82b52eb)
2025-04-14 15:18:14 +02:00
Paul Donald
9507f6493a luci-base: CBIDeviceSelect includes each device IP when includeips=true
For use when daemons whose interface config paradigm accept IP also.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 5be4cd129c)
2025-04-09 00:51:06 +02:00
Paul Donald
daf09c2473 luci-mod-network: wireless: add LDPC capability flags (X-Box compat)
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 65a80284cf)
2025-04-09 00:49:43 +02:00
Paul Donald
f5a61be854 luci-mod-network: fix handleAdd in wireless.js
handleAdd did not work correctly for a while: some state was not cleaned
up (try: wireless -> add -> no changes -> click dismiss -> press save).

The state is now properly removed when pressing dismiss, by stashing
addedSection correctly under the map m and not in this.

Also requires a null check in render_modal_status.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 6c061b644c)
2025-04-09 00:25:35 +02:00
Paul Donald
e88ad83902 luci-mod-network: give wireless.js ES2016 treatment and refactor
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit cdce600aae)

luci-mod-network: give wireless.js ES2016 treatment and refactor

Follow-up fix for cdce600aae when certain
elements are empty.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 27ebe8b662)

luci-mod-network: give wireless.js ES2016 treatment and refactor

typo

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 0d610e7466)
2025-04-09 00:24:56 +02:00
Tobias Waldvogel
5859453b41 luci: show wifi vlan in the associated wireless stations list
This patch adds a badge to the associated wireless stations with the vlan id
and name. It is displayed in the same color as the network, to which it is
bridged, so the color corresponds to the color in the network configuration
page.

Signed-off-by: Tobias Waldvogel <tobias.waldvogel@gmail.com>
(cherry picked from commit 29fe3f5fda)
2025-04-09 00:23:40 +02:00
Stefan Kleeschulte
2670bbd3cf luci-mod-status: consider family when rendering chains and rules
There can be multiple tables with the same name but different family
attribute (inet, ip, ip6, ...). The same goes for chains. So the family
attribute needs to be considered when rendering chains and rules.

Signed-off-by: Stefan Kleeschulte <stefan.kleeschulte@smk.biz>
(cherry picked from commit e79e7022e5)
2025-04-08 20:45:17 +02:00
Hannu Nyman
a1b1f43d7c treewide: Backport translations from master
Backport translations from master.
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-03-29 08:55:53 +02:00
Hannu Nyman
be4f50faea luci-base: update timezone data to 2025b
Update timezone data to 2025b.

https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/6JVHNHLB6I2WAYTQ75L6KEPEQHFXAJK3/

* New zone for Aysén Region in Chile which moves from -04/-03 to -03.

Also:
* Europe/Dublin corrected syntax
* Morocco string format change

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit 05c7844389)
2025-03-27 21:07:16 +02:00
Paul Donald
8ad19f5d63 luci-base: ui: fix path handling in UIFileUpload
Browsing the root path was problematic and the breadcrumb links behaved
inconsistently, requiring a page reload to recover.

canonicalizePath(), splitPath() and renderListing() now handle any path
location properly, including root: '/', and clicks at any breadcrumb
correctly navigate.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 5e39cf04c4)
2025-03-20 17:24:55 +01:00
Aleksander Jan Bajkowski
ffa1c7bcec luci-mod-status: channel_analysis: fix 6 GHz support
This commit fixes  wrong channel width in the 6 GHz band. Now all APs
don't show a 20 MHz channel width.

Tested on ZyXEL EX5601 with MT7921 USB adapter.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
(cherry picked from commit 62c401ca24)
2025-03-17 15:35:00 +01:00
Paul Donald
f2268d0a3c luci-base: ui: implement addTimeLimitedNotification
Introduce addTimeLimitedNotification which extends addNotification,
with the addition of the 'timeout' parameter.

timeout: a millisecond value after which the notification will disappear
automatically. If omitted, the notification will remain until it
receives the click event.

Improved implementation of 53e36e3293

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 0329854049)
2025-03-13 22:51:55 +01:00
Eric Fahlgren
cbd9ade6e6 luci-base: add uci.get_bool to allow cleanup of app code
Any number of apps read boolean values from configuration files, then use
various inconsistent means for checking truth values.  The get_bool function
allows app authors to fetch the value without regard for how it is represented
in the config file.

For example, this

    let enabled = uci.get('system', 'ntp', 'enable_server');
    if (enabled == '1') ...

could become the more natural

    let enabled = uci.get_bool('system', 'ntp', 'enable_server');
    if (enabled) ...

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
(cherry picked from commit dea8d79888)
2025-03-13 17:45:49 +01:00
Hannu Nyman
f24e570021 treewide: Backport i18n translations from master
Backport from master.
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-03-09 18:45:05 +02:00
Florian Eckert
31824936fa luci-base: revert timeout function argument for addNotification
The function signature changed and all function call to addNotification
that add a CSS class does not work anymore. A direct revert is not
possible.

If this feature is needed than a new function musst be added, that does
not break the function signature.

Fixes: 53e36e3293

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 3f832f2512)
2025-03-07 14:38:36 +01:00
Paul Donald
0c6f5468f9 luci-mod-network: correct dnsrr field name to rrname
follow-up fix for f88f9034f2

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 0a3b60d050)
2025-03-05 23:21:52 -06:00
Hannu Nyman
23ed1e5956 treewide: Backport translations from master
Backport & sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-02-22 09:55:18 +02:00
Hannu Nyman
42f464ce2b luci-base: update timezone data to 2025a
Update timezone data to 2025a.

https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/MWII7R3HMCEDNUCIYQKSSTYYR7UWK4OQ/

* Paraguay adopts permanent -03 starting spring 2024.
* Asia/Choibalsan is removed from selection list. It is now
  an alias for Asia/Ulaanbaatar rather than being a separate
  Zone (changed in 2024b).

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit edc352e110)
2025-02-06 20:58:51 +02:00
Hannu Nyman
4f7a183b26 treewide: Backport i18n translations from master
Backport translations from master.
Sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-02-04 19:26:33 +02:00
Hannu Nyman
4d6c9a4d35 treewide: Backport translations from master
Sync translations.
Backport from master via merge-master script.
(At this first backport, also the backup strings get removed.)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2025-01-24 07:51:53 +02:00
Felix Fietkau
36b610767a luci-mod-network: fix disabling packet steering
The default value of an empty option is enabled, not disabled.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit d889c27b4b)
2025-01-21 09:31:58 +01:00
Paul Donald
7046a1cac1 luci-base: widgets; remove maximal firewall zone name length datatype
removes a075566dbb (and subsequent fixes)

enforcing a datatype on this widget generates the following error when
multiple zones are selected:

 Expecting: valid UCI identifier

(the error triggered for uciname). At its simplest: multiple selections
are no longer just a uciname, but multiple thereof.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-14 16:16:56 +01:00
Paul Donald
b85628e16c luci-mod-network: i18n fix
Follow-up fix to fb4cf432d2

Resolves sync errors:

standard input:682: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.
standard input:733: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.
standard input:761: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.
standard input:818: warning: Empty msgid.  It is reserved by GNU gettext:
                             gettext("") returns the header entry with
                             meta information, not the empty string.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-14 03:10:15 +01:00
Jan Pazdziora
c50ff5e2a3 luci-mod-dashboard: make the DHCP Devices and Wireless proper tables with headers.
Also, the Lan and WiFi tables are half-width, we should not use the table-titles which has @media rules about 992px.

Signed-off-by: Jan Pazdziora <jan.pazdziora@code.adelton.com>
2025-01-14 02:01:04 +01:00
Paul Donald
edeb9de9e0 treewide: i18n-sync -b
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:46 +01:00
Paul Donald
920795afc7 luci-base, luci-proto-yggdrasil: grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:45 +01:00
Paul Donald
96d6781b12 luci-mod-network: comment grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:45 +01:00
Paul Donald
e7949bd9a5 luci-base: grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:45 +01:00
Paul Donald
fec079db36 luci-base, luci-proto-wireguard: grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:42 +01:00
Paul Donald
e98eab06a2 luci-base, luci-proto-vxlan: grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:42 +01:00
Paul Donald
db98bb5442 luci-base: jsdoc grammar fix
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-13 17:57:40 +01:00
Hosted Weblate
de100ba929 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 80.0% (2005 of 2505 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 76.0% (1905 of 2505 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (102 of 102 strings)

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

Translated using Weblate (Ukrainian)

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/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (172 of 172 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (62 of 62 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (31 of 31 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (59 of 59 strings)

Translation: OpenWrt/LuCI/applications/nft-qos
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnft-qos/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (72 of 72 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (168 of 168 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (177 of 177 strings)

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

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (165 of 165 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Ukrainian)

Currently translated at 76.0% (1905 of 2505 strings)

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

Added translation using Weblate (Ukrainian)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 51.0% (25 of 49 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (25 of 25 strings)

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

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Korean)

Currently translated at 27.4% (687 of 2505 strings)

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

Translated using Weblate (Romanian)

Currently translated at 4.4% (2 of 45 strings)

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

Translated using Weblate (Romanian)

Currently translated at 100.0% (61 of 61 strings)

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

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (German)

Currently translated at 0.9% (1 of 102 strings)

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

Translated using Weblate (Vietnamese)

Currently translated at 98.5% (279 of 283 strings)

Translated using Weblate (Vietnamese)

Currently translated at 98.2% (278 of 283 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (250 of 250 strings)

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

Translated using Weblate (Vietnamese)

Currently translated at 82.2% (2061 of 2505 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (20 of 20 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (186 of 186 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (62 of 62 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (171 of 171 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (250 of 250 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% (44 of 44 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (283 of 283 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (399 of 399 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (82 of 82 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Vietnamese)

Currently translated at 82.1% (2058 of 2505 strings)

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

Translated using Weblate (Polish)

Currently translated at 100.0% (2505 of 2505 strings)

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

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2505 of 2505 strings)

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

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kay Kim <kaykim@kaykim.org>
Co-authored-by: Marc Bodea <marcbodea@gmail.com>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: OHaiiBuzzle <ohaibuzzle@gmail.com>
Co-authored-by: Piotr Kołtun <pkoltungm@gmail.com>
Co-authored-by: Yuan Lau <traverslombard@outlook.com>
Co-authored-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Signed-off-by: Ettore Atalan <atalanttore@googlemail.com>
Signed-off-by: Kay Kim <kaykim@kaykim.org>
Signed-off-by: Marc Bodea <marcbodea@gmail.com>
Signed-off-by: Matthaiks <kitynska@gmail.com>
Signed-off-by: OHaiiBuzzle <ohaibuzzle@gmail.com>
Signed-off-by: Piotr Kołtun <pkoltungm@gmail.com>
Signed-off-by: Yuan Lau <traverslombard@outlook.com>
Signed-off-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/uk/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/uk/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/vi/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfwknopd/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenvpn/uk/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrp-pppoe-server/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssplash/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/uk/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswatchcat/uk/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/uk/
Translation: OpenWrt/LuCI/applications/coovachilli
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/fwknopd
Translation: OpenWrt/LuCI/applications/openvpn
Translation: OpenWrt/LuCI/applications/rp-pppoe-server
Translation: OpenWrt/LuCI/applications/splash
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/uhttpd
Translation: OpenWrt/LuCI/applications/watchcat
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard
2025-01-13 17:27:31 +02:00
Paul Donald
2520588d00 luci-base: fix createChoiceElement regex to catch closing tags with !
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
2025-01-11 02:47:30 +01:00