diff --git a/6in4/Makefile b/6in4/Makefile new file mode 100644 index 000000000..d0f2ad30c --- /dev/null +++ b/6in4/Makefile @@ -0,0 +1,45 @@ +# +# Copyright (C) 2010-2015 OpenWrt.org +# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) +# - Added gateway setting +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=6in4 +PKG_VERSION:=270 +PKG_RELEASE:=2 +PKG_LICENSE:=GPL-2.0 + +include $(INCLUDE_DIR)/package.mk + +define Package/6in4 + SECTION:=net + CATEGORY:=Network + DEPENDS:=@IPV6 +kmod-sit +uclient-fetch + TITLE:=IPv6-in-IPv4 configuration support + MAINTAINER:=Jo-Philipp Wich + PKGARCH:=all +endef + +define Package/6in4/description +Provides support for 6in4 tunnels in /etc/config/network. +Refer to http://wiki.openwrt.org/doc/uci/network for +configuration details. +endef + +define Build/Compile +endef + +define Build/Configure +endef + +define Package/6in4/install + $(INSTALL_DIR) $(1)/lib/netifd/proto + $(INSTALL_BIN) ./files/6in4.sh $(1)/lib/netifd/proto/6in4.sh +endef + +$(eval $(call BuildPackage,6in4)) diff --git a/6in4/files/6in4.sh b/6in4/files/6in4.sh new file mode 100755 index 000000000..cf17c86d8 --- /dev/null +++ b/6in4/files/6in4.sh @@ -0,0 +1,149 @@ +#!/bin/sh +# 6in4.sh - IPv6-in-IPv4 tunnel backend +# Copyright (c) 2010-2015 OpenWrt.org + +[ -n "$INCLUDE_ONLY" ] || { + . /lib/functions.sh + . /lib/functions/network.sh + . ../netifd-proto.sh + init_proto "$@" +} + +proto_6in4_update() { + sh -c ' + timeout=5 + + (while [ $((timeout--)) -gt 0 ]; do + sleep 1 + kill -0 $$ || exit 0 + done; kill -9 $$) 2>/dev/null & + + exec "$@" + ' "$1" "$@" +} + +proto_6in4_add_prefix() { + append "$3" "$1" +} + +proto_6in4_setup() { + local cfg="$1" + local iface="$2" + local link="6in4-$cfg" + + local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey gateway + json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey gateway + json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes + + [ -z "$peeraddr" ] && { + proto_notify_error "$cfg" "MISSING_ADDRESS" + proto_block_restart "$cfg" + return + } + + [ -n "$tunlink" ] && ( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" ) + + [ -z "$ipaddr" ] && { + local wanif="$tunlink" + if [ -z "$wanif" ] && ! network_find_wan wanif; then + proto_notify_error "$cfg" "NO_WAN_LINK" + return + fi + + if ! network_get_ipaddr ipaddr "$wanif"; then + proto_notify_error "$cfg" "NO_WAN_LINK" + return + fi + } + + proto_init_update "$link" 1 + + [ -n "$ip6addr" ] && { + local local6="${ip6addr%%/*}" + local mask6="${ip6addr##*/}" + [[ "$local6" = "$mask6" ]] && mask6= + proto_add_ipv6_address "$local6" "$mask6" + proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6" + } + + [ -n "$gateway" ] && { + proto_add_ipv6_route "::" 0 "$gateway" + } + + for ip6prefix in $ip6prefixes; do + proto_add_ipv6_prefix "$ip6prefix" + proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix" + done + + proto_add_tunnel + json_add_string mode sit + json_add_int mtu "${mtu:-1280}" + json_add_int ttl "${ttl:-64}" + [ -n "$tos" ] && json_add_string tos "$tos" + json_add_string local "$ipaddr" + json_add_string remote "$peeraddr" + [ -n "$tunlink" ] && json_add_string link "$tunlink" + proto_close_tunnel + + proto_send_update "$cfg" + + [ -n "$tunnelid" -a -n "$username" -a \( -n "$password" -o -n "$updatekey" \) ] && { + [ -n "$updatekey" ] && password="$updatekey" + + local http="http" + local urlget="uclient-fetch" + local urlget_opts="-qO-" + local ca_path="${SSL_CERT_DIR:-/etc/ssl/certs}" + + [ -f /lib/libustream-ssl.so ] && http=https + [ "$http" = "https" -a -z "$(find $ca_path -name "*.0" 2>/dev/null)" ] && { + urlget_opts="$urlget_opts --no-check-certificate" + } + + local url="$http://ipv4.tunnelbroker.net/nic/update?hostname=$tunnelid" + local try=0 + local max=3 + + ( + set -o pipefail + while [ $((++try)) -le $max ]; do + if proto_6in4_update $urlget $urlget_opts --user="$username" --password="$password" "$url" 2>&1 | \ + sed -e 's,^Killed$,timeout,' -e "s,^,update $try/$max: ," | \ + logger -t "$link"; + then + logger -t "$link" "updated" + return 0 + fi + sleep 5 + done + logger -t "$link" "update failed" + ) + } +} + +proto_6in4_teardown() { + local cfg="$1" +} + +proto_6in4_init_config() { + no_device=1 + available=1 + + proto_config_add_string "ipaddr" + proto_config_add_string "ip6addr" + proto_config_add_array "ip6prefix" + proto_config_add_string "peeraddr" + proto_config_add_string "tunlink" + proto_config_add_string "tunnelid" + proto_config_add_string "username" + proto_config_add_string "password" + proto_config_add_string "updatekey" + proto_config_add_string "gateway" + proto_config_add_int "mtu" + proto_config_add_int "ttl" + proto_config_add_string "tos" +} + +[ -n "$INCLUDE_ONLY" ] || { + add_protocol 6in4 +} diff --git a/CLA-entity.md b/CLA-entity.md old mode 100755 new mode 100644 diff --git a/CLA-individual.md b/CLA-individual.md old mode 100755 new mode 100644 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md old mode 100755 new mode 100644 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 index 10b733c62..e92835abd --- a/README.md +++ b/README.md @@ -1 +1,186 @@ # OpenWrt OpenMPTCProuter feed + + +This is the OpenWrt OpenMPTCProuter feed containing all modified and necessary packages to build the OpenMPTCProuter image. + +For More information, see [https://github.com/ysurac/openmptcprouter](https://github.com/ysurac/openmptcprouter) and [https://www.openmptcprouter.com](https://www.openmptcprouter.com/). + + +## Glorytun +*Source:* [https://github.com/angt/glorytun](https://github.com/angt/glorytun) + +*Description:* A small, simple and secure VPN + + +A LuCI interface was made to make it easier to use. It's used in OpenMPTCProuter to redirect ports from the VPS to the router and for UDP/ICMP traffic from the router. + + +## Shadowsocks-libev +*Source:* [https://github.com/shadowsocks/shadowsocks-libev](https://github.com/shadowsocks/shadowsocks-libev) + +*Description:* A secure socks5 proxy + + +MPTCP support is added in LuCI interface and init scripts. IPv6 support added. + +## Shadowsocks-v2ray-plugin-bin +*Source:* [https://github.com/shadowsocks/v2ray-plugin](https://github.com/shadowsocks/v2ray-plugin) + +*Description:* V2ray plugin for Shadowsocks + +Support is added in ShadowSocks LuCI interface and init scripts. + + +## Simple-obfs +*Source:* [https://github.com/shadowsocks/simple-obfs](https://github.com/shadowsocks/simple-obfs) + +*Description:* A simple obfuscating tool, designed as plugin server of shadowsocks. + + +Support is added in ShadowSocks LuCI interface and init scripts. + + +## SpeedTestC +*Source:* [https://github.com/mobrembski/SpeedTestC](https://github.com/mobrembski/SpeedTestC) + +*Description:* Client for SpeedTest.net infrastructure written in pure C99 standard using only POSIX libraries. + +Used to test speed. No LuCI interface. + + +## Nginx +*Source:* [https://www.nginx.org](https://www.nginx.org) + +*Description:* nginx is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server. + + +A LuCI interface for TCP/UDP stream is added. Used for TCP/UDP failover. + + +## luci-proto-ipv6 +*Source:* [https://github.com/openwrt/luci](https://github.com/openwrt/luci) + +*Description:* Luci support for DHCPv6/6in4/6to4/6rd/DS-Lite/aiccu + +Added support to gateway set by user for 6in4. Used for IPv6 over the glorytun IPv4 VPN. + + +## luci-omr-bypass +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-omr-bypass](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-omr-bypass) + +*Description:* Luci interface to bypass domains, IPs and networks with shadowsocks + +Domains, IPs, networks and protocol (using DPI) added are bypassed when shadowsocks is used. This can be used when VPS IP is blacklisted from some sites. + + +## omr-tracker +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-tracker](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-tracker) + +*Description:* Track connection status. This check if gateway is up then check if the connection work. If it's not working this execute scripts. This also detect if ShadowSocks is up or not. + +This is used for OpenMPTCProuter failover. + + +## luci-omr-tracker +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-omr-tracker](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-omr-tracker) + +*Description:* Luci interface to omr-tracker + +Interface to omr-tracker. + + +## luci-app-iperf +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-iperf](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-iperf) + +*Description:* Luci interface to iPerf + + +## omr-6in4 +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-6in4](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-6in4) + +*Description:* Set tunnel configuration by tracking tunnel configuration. + + +## omr-update +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-update](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/omr-update) + +*Description:* Update old config with new settings. + + +## luci-app-mptcp +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-mptcp](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-mptcp) + +*Description:* Luci interface for all MPTCP settings + + +## luci-app-openmptcprouter +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-openmptcprouter](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/luci-app-openmptcprouter) + +*Description:* Wizard for OpenMPTCProuter settings and status page + + +## mptcp +*Source:* [https://github.com/Ysurac/openmptcprouter-feeds/tree/master/mptcp](https://github.com/Ysurac/openmptcprouter-feeds/tree/master/mptcp) + +*Description:* This package set all MPTCP settings + + +## ndisc6 +*Source:* [http://www.remlab.net/files/ndisc6](http://www.remlab.net/files/ndisc6) + +*Description:* An ICMPv6 neighbour discovery tool + +This is used to check if there is no other IPv6 route announced on the network + + +## mlvpn +*Source:* [https://github.com/markfoodyburton/MLVPN/tree/new-reorder](https://github.com/markfoodyburton/MLVPN/tree/new-reorder) + +*Description:* Multi-link VPN + +This is an other way to aggregate same latency connections + + +## dsvpn +*Source:* [https://github.com/jedisct1/dsvpn][https://github.com/jedisct1/dsvpn] + +*Description:* A Dead Simple VPN + +A simple TCP VPN + + +## ndpi-netfilter2 +*Source:* [https://github.com/vel21ripn/nDPI](https://github.com/vel21ripn/nDPI) + +*Description:* Open Source Deep Packet Inspection Software Toolkit + +This is used to bypass a protocol + + +## tracebox +*Source:* [https://github.com/tracebox/tracebox](https://github.com/tracebox/tracebox) + +*Description:* A middlebox detection tool + + +## Shortcut-FE +*Source:* [https://github.com/coolsnowwolf/lede/tree/master/package/lean/shortcut-fe](https://github.com/coolsnowwolf/lede/tree/master/package/lean/shortcut-fe) + +*Description:* Shortcut is an in-Linux-kernel IP packet forwarding engine. + + +## V2Ray +*Source:* [https://github.com/v2fly/v2ray-core](https://github.com/v2fly/v2ray-core) + +*Description:* A platform for building proxies to bypass network restrictions. + +This is used as proxy, alternative to Shadowsocks + + + +# License +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FYsurac%2Fopenmptcprouter-feeds.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FYsurac%2Fopenmptcprouter-feeds?ref=badge_large) + +## Translation status + +[![Translation status](https://weblate.openmptcprouter.com/widgets/omr/-/multi-auto.svg)](https://weblate.openmptcprouter.com/engage/omr/?utm_source=widget) diff --git a/aquantia/Makefile b/aquantia/Makefile old mode 100755 new mode 100644 diff --git a/atinout/Makefile b/atinout/Makefile old mode 100755 new mode 100644 diff --git a/bcm27xx-eeprom/Makefile b/bcm27xx-eeprom/Makefile old mode 100755 new mode 100644 diff --git a/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch b/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch old mode 100755 new mode 100644 diff --git a/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch b/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch old mode 100755 new mode 100644 diff --git a/bcm27xx-eeprom/patches/0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch b/bcm27xx-eeprom/patches/0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch old mode 100755 new mode 100644 diff --git a/bcm27xx-eeprom/patches/0005-rpi-eeprom-config-change-default-text-editor.patch b/bcm27xx-eeprom/patches/0005-rpi-eeprom-config-change-default-text-editor.patch old mode 100755 new mode 100644 diff --git a/contributors/cr3ative.md b/contributors/cr3ative.md old mode 100755 new mode 100644 diff --git a/contributors/example.md b/contributors/example.md old mode 100755 new mode 100644 diff --git a/contributors/flesser.md b/contributors/flesser.md old mode 100755 new mode 100644 diff --git a/contributors/ta264.md b/contributors/ta264.md old mode 100755 new mode 100644 diff --git a/contributors/yostyle.md b/contributors/yostyle.md old mode 100755 new mode 100644 diff --git a/dsvpn/Makefile b/dsvpn/Makefile old mode 100755 new mode 100644 diff --git a/dsvpn/patches/nostrip.patch b/dsvpn/patches/nostrip.patch old mode 100755 new mode 100644 diff --git a/fast-classifier/Makefile b/fast-classifier/Makefile old mode 100755 new mode 100644 diff --git a/fast-classifier/src/Makefile b/fast-classifier/src/Makefile old mode 100755 new mode 100644 diff --git a/fast-classifier/src/fast-classifier.c b/fast-classifier/src/fast-classifier.c old mode 100755 new mode 100644 diff --git a/fast-classifier/src/fast-classifier.h b/fast-classifier/src/fast-classifier.h old mode 100755 new mode 100644 diff --git a/fast-classifier/src/nl_classifier_test.c b/fast-classifier/src/nl_classifier_test.c old mode 100755 new mode 100644 diff --git a/fast-classifier/src/userspace_example.c b/fast-classifier/src/userspace_example.c old mode 100755 new mode 100644 diff --git a/fullconenat/Makefile b/fullconenat/Makefile old mode 100755 new mode 100644 diff --git a/fullconenat/patches/001-fix-init-Repeat-definition.patch b/fullconenat/patches/001-fix-init-Repeat-definition.patch old mode 100755 new mode 100644 diff --git a/fullconenat/patches/001-linux-6.1-support.patch b/fullconenat/patches/001-linux-6.1-support.patch old mode 100755 new mode 100644 diff --git a/fullconenat/src/Makefile b/fullconenat/src/Makefile old mode 100755 new mode 100644 diff --git a/glorytun-udp/Makefile b/glorytun-udp/Makefile old mode 100755 new mode 100644 diff --git a/glorytun-udp/patches/aegis-arm.patch b/glorytun-udp/patches/aegis-arm.patch old mode 100755 new mode 100644 diff --git a/glorytun/Makefile b/glorytun/Makefile old mode 100755 new mode 100644 diff --git a/glorytun/glorytun.config b/glorytun/glorytun.config old mode 100755 new mode 100644 diff --git a/golang-protobuf/Makefile b/golang-protobuf/Makefile old mode 100755 new mode 100644 diff --git a/golang/golang-build.sh b/golang/golang-build.sh old mode 100755 new mode 100644 diff --git a/golang/golang-compiler.mk b/golang/golang-compiler.mk old mode 100755 new mode 100644 diff --git a/golang/golang-host-build.mk b/golang/golang-host-build.mk old mode 100755 new mode 100644 diff --git a/golang/golang-package.mk b/golang/golang-package.mk old mode 100755 new mode 100644 diff --git a/golang/golang-values.mk b/golang/golang-values.mk old mode 100755 new mode 100644 diff --git a/golang/golang/Config.in b/golang/golang/Config.in old mode 100755 new mode 100644 diff --git a/golang/golang/Makefile b/golang/golang/Makefile old mode 100755 new mode 100644 diff --git a/golang/golang/files/go-gcc-helper b/golang/golang/files/go-gcc-helper old mode 100755 new mode 100644 diff --git a/golang/golang/test.sh b/golang/golang/test.sh old mode 100755 new mode 100644 diff --git a/grpcurl/Makefile b/grpcurl/Makefile old mode 100755 new mode 100644 diff --git a/https-dns-proxy/Makefile b/https-dns-proxy/Makefile old mode 100755 new mode 100644 diff --git a/https-dns-proxy/files/README.md b/https-dns-proxy/files/README.md old mode 100755 new mode 100644 diff --git a/https-dns-proxy/files/https-dns-proxy.config b/https-dns-proxy/files/https-dns-proxy.config old mode 100755 new mode 100644 diff --git a/https-dns-proxy/test.sh b/https-dns-proxy/test.sh old mode 100755 new mode 100644 diff --git a/ipcalc/Makefile b/ipcalc/Makefile old mode 100755 new mode 100644 diff --git a/iperf3/Makefile b/iperf3/Makefile old mode 100755 new mode 100644 diff --git a/iperf3/patches/add-MPTCP-support.patch b/iperf3/patches/add-MPTCP-support.patch old mode 100755 new mode 100644 diff --git a/iproute2/Makefile b/iproute2/Makefile old mode 100755 new mode 100644 diff --git a/iproute2/patches/100-configure.patch b/iproute2/patches/100-configure.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/110-darwin_fixes.patch b/iproute2/patches/110-darwin_fixes.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/115-add-config-xtlibdir.patch b/iproute2/patches/115-add-config-xtlibdir.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/120-no_arpd_ifstat_rtacct_lnstat.patch b/iproute2/patches/120-no_arpd_ifstat_rtacct_lnstat.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch b/iproute2/patches/130-no_netem_tipc_dcb_man_vdpa.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/140-allow_pfifo_fast.patch b/iproute2/patches/140-allow_pfifo_fast.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/140-keep_libmnl_optional.patch b/iproute2/patches/140-keep_libmnl_optional.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/145-keep_libelf_optional.patch b/iproute2/patches/145-keep_libelf_optional.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/150-keep_libcap_optional.patch b/iproute2/patches/150-keep_libcap_optional.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/155-keep_tirpc_optional.patch b/iproute2/patches/155-keep_tirpc_optional.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/160-libnetlink-pic.patch b/iproute2/patches/160-libnetlink-pic.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/170-ip_tiny.patch b/iproute2/patches/170-ip_tiny.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/175-reduce-dynamic-syms.patch b/iproute2/patches/175-reduce-dynamic-syms.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/180-drop_FAILED_POLICY.patch b/iproute2/patches/180-drop_FAILED_POLICY.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/190-fix-nls-rpath-link.patch b/iproute2/patches/190-fix-nls-rpath-link.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/195-build_variant_ip_tc.patch b/iproute2/patches/195-build_variant_ip_tc.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/200-drop_libbsd_dependency.patch b/iproute2/patches/200-drop_libbsd_dependency.patch old mode 100755 new mode 100644 diff --git a/iproute2/patches/300-selinux-configurable.patch b/iproute2/patches/300-selinux-configurable.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/Config.in b/lcd4linux/Config.in old mode 100755 new mode 100644 diff --git a/lcd4linux/Makefile b/lcd4linux/Makefile old mode 100755 new mode 100644 diff --git a/lcd4linux/files/lcd4linux.init b/lcd4linux/files/lcd4linux.init old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/120-remove-as-needed-linker-option.patch b/lcd4linux/patches/120-remove-as-needed-linker-option.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/140-no_repnop_T6963.patch b/lcd4linux/patches/140-no_repnop_T6963.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/150-addlibmpdclient.patch b/lcd4linux/patches/150-addlibmpdclient.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/160-uinput_defs.patch b/lcd4linux/patches/160-uinput_defs.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/170-add-generic-spidev-driver.patch b/lcd4linux/patches/170-add-generic-spidev-driver.patch old mode 100755 new mode 100644 diff --git a/lcd4linux/patches/173-glcd2usb-bigendian-fix.patch b/lcd4linux/patches/173-glcd2usb-bigendian-fix.patch old mode 100755 new mode 100644 diff --git a/libell/Makefile b/libell/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/Makefile b/luci-app-dsvpn/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js b/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/fr/dsvpn.po b/luci-app-dsvpn/po/fr/dsvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/fr/dsvpn.po~ b/luci-app-dsvpn/po/fr/dsvpn.po~ old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/ru/dsvpn.po b/luci-app-dsvpn/po/ru/dsvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/templates/dsvpn.pot b/luci-app-dsvpn/po/templates/dsvpn.pot old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/zh_Hans/dsvpn.po b/luci-app-dsvpn/po/zh_Hans/dsvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/po/zh_Hans/dsvpn.po~ b/luci-app-dsvpn/po/zh_Hans/dsvpn.po~ old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json b/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json old mode 100755 new mode 100644 diff --git a/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json b/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json old mode 100755 new mode 100644 diff --git a/luci-app-firewall/Makefile b/luci-app-firewall/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js b/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/bg/firewall.po b/luci-app-firewall/po/bg/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ca/firewall.po b/luci-app-firewall/po/ca/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/cs/firewall.po b/luci-app-firewall/po/cs/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/de/firewall.po b/luci-app-firewall/po/de/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/el/firewall.po b/luci-app-firewall/po/el/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/en/firewall.po b/luci-app-firewall/po/en/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/es/firewall.po b/luci-app-firewall/po/es/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/fr/firewall.po b/luci-app-firewall/po/fr/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/he/firewall.po b/luci-app-firewall/po/he/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/hi/firewall.po b/luci-app-firewall/po/hi/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/hu/firewall.po b/luci-app-firewall/po/hu/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/it/firewall.po b/luci-app-firewall/po/it/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ja/firewall.po b/luci-app-firewall/po/ja/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ko/firewall.po b/luci-app-firewall/po/ko/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/mr/firewall.po b/luci-app-firewall/po/mr/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ms/firewall.po b/luci-app-firewall/po/ms/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/nb_NO/firewall.po b/luci-app-firewall/po/nb_NO/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/pl/firewall.po b/luci-app-firewall/po/pl/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/pt/firewall.po b/luci-app-firewall/po/pt/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/pt_BR/firewall.po b/luci-app-firewall/po/pt_BR/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ro/firewall.po b/luci-app-firewall/po/ro/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/ru/firewall.po b/luci-app-firewall/po/ru/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/sk/firewall.po b/luci-app-firewall/po/sk/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/sv/firewall.po b/luci-app-firewall/po/sv/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/templates/firewall.pot b/luci-app-firewall/po/templates/firewall.pot old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/tr/firewall.po b/luci-app-firewall/po/tr/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/uk/firewall.po b/luci-app-firewall/po/uk/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/vi/firewall.po b/luci-app-firewall/po/vi/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/zh_Hans/firewall.po b/luci-app-firewall/po/zh_Hans/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/po/zh_Hant/firewall.po b/luci-app-firewall/po/zh_Hant/firewall.po old mode 100755 new mode 100644 diff --git a/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json b/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json old mode 100755 new mode 100644 diff --git a/luci-app-firewall/root/usr/share/rpcd/acl.d/luci-app-firewall.json b/luci-app-firewall/root/usr/share/rpcd/acl.d/luci-app-firewall.json old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/Makefile b/luci-app-glorytun-tcp/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po~ b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/ru/glorytun-tcp.po b/luci-app-glorytun-tcp/po/ru/glorytun-tcp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot b/luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po~ b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/root/etc/hotplug.d/iface/30-glorytun b/luci-app-glorytun-tcp/root/etc/hotplug.d/iface/30-glorytun old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/root/etc/uci-defaults/1200-luci-glorytun b/luci-app-glorytun-tcp/root/etc/uci-defaults/1200-luci-glorytun old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json b/luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json b/luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/Makefile b/luci-app-glorytun-udp/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js b/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/fr/glorytun-udp.po b/luci-app-glorytun-udp/po/fr/glorytun-udp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/fr/glorytun-udp.po~ b/luci-app-glorytun-udp/po/fr/glorytun-udp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/ru/glorytun-udp.po b/luci-app-glorytun-udp/po/ru/glorytun-udp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/templates/glorytun-udp.pot b/luci-app-glorytun-udp/po/templates/glorytun-udp.pot old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po~ b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/root/etc/config/glorytun-udp b/luci-app-glorytun-udp/root/etc/config/glorytun-udp old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp b/luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json b/luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json old mode 100755 new mode 100644 diff --git a/luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json b/luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/LICENSE b/luci-app-haproxy-tcp/LICENSE old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/Makefile b/luci-app-haproxy-tcp/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/README.md b/luci-app-haproxy-tcp/README.md old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/luasrc/controller/haproxy-tcp.lua b/luci-app-haproxy-tcp/luasrc/controller/haproxy-tcp.lua old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy-tcp.lua b/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy-tcp.lua old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/po/fr/haproxy-tcp.po b/luci-app-haproxy-tcp/po/fr/haproxy-tcp.po old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/po/templates/haproxy-tcp.pot b/luci-app-haproxy-tcp/po/templates/haproxy-tcp.pot old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po b/luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/root/etc/config/haproxy-tcp b/luci-app-haproxy-tcp/root/etc/config/haproxy-tcp old mode 100755 new mode 100644 diff --git a/luci-app-haproxy-tcp/root/etc/uci-defaults/41_luci-haproxy-tcp b/luci-app-haproxy-tcp/root/etc/uci-defaults/41_luci-haproxy-tcp old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/Makefile b/luci-app-https-dns-proxy/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua b/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ch.digitale-gesellschaft.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/ch.digitale-gesellschaft.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/cn.rubyfish.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/cn.rubyfish.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/sb.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/sb.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns-family.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns-family.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns-malware.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns-malware.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.cloudflare-dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/cz.nic.odvr.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/google.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh-ads.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/gr.libredns.doh.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns10.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns11.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/net.quad9.dns9.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-adult.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-family.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua b/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/org.cleanbrowsing.doh-security.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua b/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm b/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/css.htm b/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/css.htm old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm b/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/js.htm old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status-textarea.htm b/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status-textarea.htm old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status.htm b/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/status.htm old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/bg/https-dns-proxy.po b/luci-app-https-dns-proxy/po/bg/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ca/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ca/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/cs/https-dns-proxy.po b/luci-app-https-dns-proxy/po/cs/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/de/https-dns-proxy.po b/luci-app-https-dns-proxy/po/de/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/el/https-dns-proxy.po b/luci-app-https-dns-proxy/po/el/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/en/https-dns-proxy.po b/luci-app-https-dns-proxy/po/en/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/es/https-dns-proxy.po b/luci-app-https-dns-proxy/po/es/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/fr/https-dns-proxy.po b/luci-app-https-dns-proxy/po/fr/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/he/https-dns-proxy.po b/luci-app-https-dns-proxy/po/he/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/hi/https-dns-proxy.po b/luci-app-https-dns-proxy/po/hi/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/hu/https-dns-proxy.po b/luci-app-https-dns-proxy/po/hu/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/it/https-dns-proxy.po b/luci-app-https-dns-proxy/po/it/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ja/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ja/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ko/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ko/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/mr/https-dns-proxy.po b/luci-app-https-dns-proxy/po/mr/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ms/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ms/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/nb_NO/https-dns-proxy.po b/luci-app-https-dns-proxy/po/nb_NO/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/pl/https-dns-proxy.po b/luci-app-https-dns-proxy/po/pl/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/pt/https-dns-proxy.po b/luci-app-https-dns-proxy/po/pt/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/pt_BR/https-dns-proxy.po b/luci-app-https-dns-proxy/po/pt_BR/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ro/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ro/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/ru/https-dns-proxy.po b/luci-app-https-dns-proxy/po/ru/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/sk/https-dns-proxy.po b/luci-app-https-dns-proxy/po/sk/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/sv/https-dns-proxy.po b/luci-app-https-dns-proxy/po/sv/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot b/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/tr/https-dns-proxy.po b/luci-app-https-dns-proxy/po/tr/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/uk/https-dns-proxy.po b/luci-app-https-dns-proxy/po/uk/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/vi/https-dns-proxy.po b/luci-app-https-dns-proxy/po/vi/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/zh_Hans/https-dns-proxy.po b/luci-app-https-dns-proxy/po/zh_Hans/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/po/zh_Hant/https-dns-proxy.po b/luci-app-https-dns-proxy/po/zh_Hant/https-dns-proxy.po old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/root/etc/uci-defaults/40_luci-https-dns-proxy b/luci-app-https-dns-proxy/root/etc/uci-defaults/40_luci-https-dns-proxy old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json b/luci-app-https-dns-proxy/root/usr/share/luci/menu.d/luci-app-https-dns-proxy.json old mode 100755 new mode 100644 diff --git a/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json b/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json old mode 100755 new mode 100644 diff --git a/luci-app-iperf/Makefile b/luci-app-iperf/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-iperf/luasrc/controller/iperf.lua b/luci-app-iperf/luasrc/controller/iperf.lua old mode 100755 new mode 100644 diff --git a/luci-app-iperf/luasrc/view/iperf/test.htm b/luci-app-iperf/luasrc/view/iperf/test.htm old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/de/iperf.po b/luci-app-iperf/po/de/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/de/iperf.po~ b/luci-app-iperf/po/de/iperf.po~ old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/fr/iperf.po b/luci-app-iperf/po/fr/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/fr/iperf.po~ b/luci-app-iperf/po/fr/iperf.po~ old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/it/iperf.po b/luci-app-iperf/po/it/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/it/iperf.po~ b/luci-app-iperf/po/it/iperf.po~ old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/oc/iperf.po b/luci-app-iperf/po/oc/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/oc/iperf.po~ b/luci-app-iperf/po/oc/iperf.po~ old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/ru/iperf.po b/luci-app-iperf/po/ru/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/templates/iperf.pot b/luci-app-iperf/po/templates/iperf.pot old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/zh_Hans/iperf.po b/luci-app-iperf/po/zh_Hans/iperf.po old mode 100755 new mode 100644 diff --git a/luci-app-iperf/po/zh_Hans/iperf.po~ b/luci-app-iperf/po/zh_Hans/iperf.po~ old mode 100755 new mode 100644 diff --git a/luci-app-iperf/root/etc/config/iperf b/luci-app-iperf/root/etc/config/iperf old mode 100755 new mode 100644 diff --git a/luci-app-iperf/root/usr/share/luci/menu.d/luci-app-iperf.json b/luci-app-iperf/root/usr/share/luci/menu.d/luci-app-iperf.json old mode 100755 new mode 100644 diff --git a/luci-app-iperf/root/usr/share/rpcd/acl.d/luci-app-iperf.json b/luci-app-iperf/root/usr/share/rpcd/acl.d/luci-app-iperf.json old mode 100755 new mode 100644 diff --git a/luci-app-macvlan/po/zh_Hans/macvlan.po b/luci-app-macvlan/po/zh_Hans/macvlan.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/Makefile b/luci-app-mail/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-mail/luasrc/controller/mail.lua b/luci-app-mail/luasrc/controller/mail.lua old mode 100755 new mode 100644 diff --git a/luci-app-mail/luasrc/model/cbi/mail.lua b/luci-app-mail/luasrc/model/cbi/mail.lua old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/de/mail.po b/luci-app-mail/po/de/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/de/mail.po~ b/luci-app-mail/po/de/mail.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/fr/mail.po b/luci-app-mail/po/fr/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/fr/mail.po~ b/luci-app-mail/po/fr/mail.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/it/mail.po b/luci-app-mail/po/it/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/it/mail.po~ b/luci-app-mail/po/it/mail.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/oc/mail.po b/luci-app-mail/po/oc/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/oc/mail.po~ b/luci-app-mail/po/oc/mail.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/ru/mail.po b/luci-app-mail/po/ru/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/templates/mail.pot b/luci-app-mail/po/templates/mail.pot old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/zh_Hans/mail.po b/luci-app-mail/po/zh_Hans/mail.po old mode 100755 new mode 100644 diff --git a/luci-app-mail/po/zh_Hans/mail.po~ b/luci-app-mail/po/zh_Hans/mail.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mail/root/etc/config/mail b/luci-app-mail/root/etc/config/mail old mode 100755 new mode 100644 diff --git a/luci-app-mail/root/usr/share/luci/menu.d/luci-app-mail.json b/luci-app-mail/root/usr/share/luci/menu.d/luci-app-mail.json old mode 100755 new mode 100644 diff --git a/luci-app-mail/root/usr/share/rpcd/acl.d/luci-app-mail.json b/luci-app-mail/root/usr/share/rpcd/acl.d/luci-app-mail.json old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/Makefile b/luci-app-mlvpn/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js b/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/fr/mlvpn.po b/luci-app-mlvpn/po/fr/mlvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/fr/mlvpn.po~ b/luci-app-mlvpn/po/fr/mlvpn.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/ru/mlvpn.po b/luci-app-mlvpn/po/ru/mlvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/templates/mlvpn.pot b/luci-app-mlvpn/po/templates/mlvpn.pot old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/zh_Hans/mlvpn.po b/luci-app-mlvpn/po/zh_Hans/mlvpn.po old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/po/zh_Hans/mlvpn.po~ b/luci-app-mlvpn/po/zh_Hans/mlvpn.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json b/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json old mode 100755 new mode 100644 diff --git a/luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json b/luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/Makefile b/luci-app-mptcp/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/htdocs/luci-static/resources/seedrandom.js b/luci-app-mptcp/htdocs/luci-static/resources/seedrandom.js old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/controller/mptcp.lua b/luci-app-mptcp/luasrc/controller/mptcp.lua old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/model/cbi/mptcp.lua b/luci-app-mptcp/luasrc/model/cbi/mptcp.lua old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/view/mptcp/mptcp_check.htm b/luci-app-mptcp/luasrc/view/mptcp/mptcp_check.htm old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/view/mptcp/mptcp_connections.htm b/luci-app-mptcp/luasrc/view/mptcp/mptcp_connections.htm old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/view/mptcp/mptcp_fullmesh.htm b/luci-app-mptcp/luasrc/view/mptcp/mptcp_fullmesh.htm old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/view/mptcp/mptcp_monitor.htm b/luci-app-mptcp/luasrc/view/mptcp/mptcp_monitor.htm old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/luasrc/view/mptcp/multipath.htm b/luci-app-mptcp/luasrc/view/mptcp/multipath.htm old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/de/mptcp.po b/luci-app-mptcp/po/de/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/de/mptcp.po~ b/luci-app-mptcp/po/de/mptcp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/fr/mptcp.po b/luci-app-mptcp/po/fr/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/it/mptcp.po b/luci-app-mptcp/po/it/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/it/mptcp.po~ b/luci-app-mptcp/po/it/mptcp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/oc/mptcp.po b/luci-app-mptcp/po/oc/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/oc/mptcp.po~ b/luci-app-mptcp/po/oc/mptcp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/ru/mptcp.po b/luci-app-mptcp/po/ru/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/templates/mptcp.pot b/luci-app-mptcp/po/templates/mptcp.pot old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/po/zh_Hans/mptcp.po b/luci-app-mptcp/po/zh_Hans/mptcp.po old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/root/usr/share/luci/menu.d/luci-app-mptcp.json b/luci-app-mptcp/root/usr/share/luci/menu.d/luci-app-mptcp.json old mode 100755 new mode 100644 diff --git a/luci-app-mptcp/root/usr/share/rpcd/acl.d/luci-app-mptcp.json b/luci-app-mptcp/root/usr/share/rpcd/acl.d/luci-app-mptcp.json old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/LICENSE b/luci-app-nginx-ha/LICENSE old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/Makefile b/luci-app-nginx-ha/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/luasrc/controller/nginx-ha.lua b/luci-app-nginx-ha/luasrc/controller/nginx-ha.lua old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/luasrc/model/cbi/nginx-ha.lua b/luci-app-nginx-ha/luasrc/model/cbi/nginx-ha.lua old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/po/fr/nginx-ha.po b/luci-app-nginx-ha/po/fr/nginx-ha.po old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/po/templates/nginx-ha.pot b/luci-app-nginx-ha/po/templates/nginx-ha.pot old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/root/etc/config/nginx-ha b/luci-app-nginx-ha/root/etc/config/nginx-ha old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/root/etc/uci-defaults/42_luci-nginx-ha b/luci-app-nginx-ha/root/etc/uci-defaults/42_luci-nginx-ha old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/root/usr/share/luci/menu.d/luci-app-nginx-ha.json b/luci-app-nginx-ha/root/usr/share/luci/menu.d/luci-app-nginx-ha.json old mode 100755 new mode 100644 diff --git a/luci-app-nginx-ha/root/usr/share/rpcd/acl.d/luci-app-nginx-ha.json b/luci-app-nginx-ha/root/usr/share/rpcd/acl.d/luci-app-nginx-ha.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/Makefile b/luci-app-omr-bypass/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js b/luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/de/omr-bypass.po b/luci-app-omr-bypass/po/de/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/de/omr-bypass.po~ b/luci-app-omr-bypass/po/de/omr-bypass.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/fr/omr-bypass.po b/luci-app-omr-bypass/po/fr/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/it/omr-bypass.po b/luci-app-omr-bypass/po/it/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/it/omr-bypass.po~ b/luci-app-omr-bypass/po/it/omr-bypass.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/oc/omr-bypass.po b/luci-app-omr-bypass/po/oc/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/oc/omr-bypass.po~ b/luci-app-omr-bypass/po/oc/omr-bypass.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/ru/omr-bypass.po b/luci-app-omr-bypass/po/ru/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/templates/omr-bypass.pot b/luci-app-omr-bypass/po/templates/omr-bypass.pot old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/po/zh_Hans/omr-bypass.po b/luci-app-omr-bypass/po/zh_Hans/omr-bypass.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/root/usr/share/luci/menu.d/luci-app-omr-bypass.json b/luci-app-omr-bypass/root/usr/share/luci/menu.d/luci-app-omr-bypass.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-bypass/root/usr/share/rpcd/acl.d/luci-app-omr-bypass.json b/luci-app-omr-bypass/root/usr/share/rpcd/acl.d/luci-app-omr-bypass.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/Makefile b/luci-app-omr-dscp/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/luasrc/controller/omr-dscp.lua b/luci-app-omr-dscp/luasrc/controller/omr-dscp.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua b/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/luasrc/model/cbi/dscp.lua b/luci-app-omr-dscp/luasrc/model/cbi/dscp.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/de/omr-dscp.po b/luci-app-omr-dscp/po/de/omr-dscp.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/de/omr-dscp.po~ b/luci-app-omr-dscp/po/de/omr-dscp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/fr/omr-dscp.po b/luci-app-omr-dscp/po/fr/omr-dscp.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/fr/omr-dscp.po~ b/luci-app-omr-dscp/po/fr/omr-dscp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/it/omr-dscp.po b/luci-app-omr-dscp/po/it/omr-dscp.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/it/omr-dscp.po~ b/luci-app-omr-dscp/po/it/omr-dscp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/oc/omr-dscp.po b/luci-app-omr-dscp/po/oc/omr-dscp.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/oc/omr-dscp.po~ b/luci-app-omr-dscp/po/oc/omr-dscp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/templates/omr-dscp.pot b/luci-app-omr-dscp/po/templates/omr-dscp.pot old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/zh_Hans/omr-dscp.po b/luci-app-omr-dscp/po/zh_Hans/omr-dscp.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/po/zh_Hans/omr-dscp.po~ b/luci-app-omr-dscp/po/zh_Hans/omr-dscp.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/root/etc/config/dscp b/luci-app-omr-dscp/root/etc/config/dscp old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/root/usr/share/luci/menu.d/luci-app-omr-dscp.json b/luci-app-omr-dscp/root/usr/share/luci/menu.d/luci-app-omr-dscp.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-dscp/root/usr/share/rpcd/acl.d/luci-app-omr-dscp.json b/luci-app-omr-dscp/root/usr/share/rpcd/acl.d/luci-app-omr-dscp.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/Makefile b/luci-app-omr-quota/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/luasrc/controller/quota.lua b/luci-app-omr-quota/luasrc/controller/quota.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua b/luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/luasrc/view/omr-quota/cbi-select-add.htm b/luci-app-omr-quota/luasrc/view/omr-quota/cbi-select-add.htm old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/de/omr-quota.po b/luci-app-omr-quota/po/de/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/de/omr-quota.po~ b/luci-app-omr-quota/po/de/omr-quota.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/fr/omr-quota.po b/luci-app-omr-quota/po/fr/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/fr/omr-quota.po~ b/luci-app-omr-quota/po/fr/omr-quota.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/it/omr-quota.po b/luci-app-omr-quota/po/it/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/it/omr-quota.po~ b/luci-app-omr-quota/po/it/omr-quota.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/oc/omr-quota.po b/luci-app-omr-quota/po/oc/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/oc/omr-quota.po~ b/luci-app-omr-quota/po/oc/omr-quota.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/ru/omr-quota.po b/luci-app-omr-quota/po/ru/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/templates/omr-quota.pot b/luci-app-omr-quota/po/templates/omr-quota.pot old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/zh_Hans/omr-quota.po b/luci-app-omr-quota/po/zh_Hans/omr-quota.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/po/zh_Hans/omr-quota.po~ b/luci-app-omr-quota/po/zh_Hans/omr-quota.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/root/usr/share/luci/menu.d/luci-app-omr-quota.json b/luci-app-omr-quota/root/usr/share/luci/menu.d/luci-app-omr-quota.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-quota/root/usr/share/rpcd/acl.d/luci-app-omr-quota.json b/luci-app-omr-quota/root/usr/share/rpcd/acl.d/luci-app-omr-quota.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/Makefile b/luci-app-omr-tracker/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/luasrc/controller/omr-tracker.lua b/luci-app-omr-tracker/luasrc/controller/omr-tracker.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua b/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/luasrc/view/omr-tracker/cbi-select-add.htm b/luci-app-omr-tracker/luasrc/view/omr-tracker/cbi-select-add.htm old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/de/omr-tracker.po b/luci-app-omr-tracker/po/de/omr-tracker.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/de/omr-tracker.po~ b/luci-app-omr-tracker/po/de/omr-tracker.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/fr/omr-tracker.po b/luci-app-omr-tracker/po/fr/omr-tracker.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/fr/omr-tracker.po~ b/luci-app-omr-tracker/po/fr/omr-tracker.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/it/omr-tracker.po b/luci-app-omr-tracker/po/it/omr-tracker.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/it/omr-tracker.po~ b/luci-app-omr-tracker/po/it/omr-tracker.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/oc/omr-tracker.po b/luci-app-omr-tracker/po/oc/omr-tracker.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/oc/omr-tracker.po~ b/luci-app-omr-tracker/po/oc/omr-tracker.po~ old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/templates/omr-tracker.pot b/luci-app-omr-tracker/po/templates/omr-tracker.pot old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po b/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/root/etc/uci-defaults/42_luci-omr-tracker b/luci-app-omr-tracker/root/etc/uci-defaults/42_luci-omr-tracker old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/root/usr/share/luci/menu.d/luci-app-omr-tracker.json b/luci-app-omr-tracker/root/usr/share/luci/menu.d/luci-app-omr-tracker.json old mode 100755 new mode 100644 diff --git a/luci-app-omr-tracker/root/usr/share/rpcd/acl.d/luci-app-omr-tracker.json b/luci-app-omr-tracker/root/usr/share/rpcd/acl.d/luci-app-omr-tracker.json old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/Makefile b/luci-app-openmptcprouter/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/css/wanstatus.css b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/css/wanstatus.css old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-doing.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-doing.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-done.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-done.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-error.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-error.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-todo.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-todo.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-warn.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/status-warn.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusError.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusError.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusOK.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusOK.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusWarning.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/images/statusWarning.png old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/spinner.gif b/luci-app-openmptcprouter/htdocs/luci-static/resources/spinner.gif old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/debug.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/debug.htm old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm old mode 100755 new mode 100644 index 472c09540..05476a980 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -1100,4 +1100,4 @@ -<%+footer%> \ No newline at end of file +<%+footer%> diff --git a/luci-app-openmptcprouter/po/de/openmptcprouter.po b/luci-app-openmptcprouter/po/de/openmptcprouter.po old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/de/openmptcprouter.po~ b/luci-app-openmptcprouter/po/de/openmptcprouter.po~ old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/fr/openmptcprouter.po b/luci-app-openmptcprouter/po/fr/openmptcprouter.po old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/fr/openmptcprouter.po~ b/luci-app-openmptcprouter/po/fr/openmptcprouter.po~ old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/it/openmptcprouter.po b/luci-app-openmptcprouter/po/it/openmptcprouter.po old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/it/openmptcprouter.po~ b/luci-app-openmptcprouter/po/it/openmptcprouter.po~ old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/oc/openmptcprouter.po b/luci-app-openmptcprouter/po/oc/openmptcprouter.po old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/oc/openmptcprouter.po~ b/luci-app-openmptcprouter/po/oc/openmptcprouter.po~ old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/templates/openmptcprouter.pot b/luci-app-openmptcprouter/po/templates/openmptcprouter.pot old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po b/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po~ b/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po~ old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/root/etc/config/openmptcprouter b/luci-app-openmptcprouter/root/etc/config/openmptcprouter old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf old mode 100755 new mode 100644 index 214765274..a6c46d370 --- a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf +++ b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf @@ -1,4 +1,4 @@ -net.ipv4.tcp_keepalive_time=72000 +net.ipv4.tcp_keepalive_time=7200 net.ipv4.tcp_fin_timeout=60 net.ipv4.tcp_syn_retries=3 net.ipv4.tcp_retries1=3 diff --git a/luci-app-openmptcprouter/root/usr/share/luci/menu.d/luci-app-openmptcprouter.json b/luci-app-openmptcprouter/root/usr/share/luci/menu.d/luci-app-openmptcprouter.json old mode 100755 new mode 100644 diff --git a/luci-app-openmptcprouter/root/usr/share/rpcd/acl.d/luci-app-openmptcprouter.json b/luci-app-openmptcprouter/root/usr/share/rpcd/acl.d/luci-app-openmptcprouter.json old mode 100755 new mode 100644 diff --git a/luci-app-ouad/LICENSE b/luci-app-ouad/LICENSE deleted file mode 100755 index e963df829..000000000 --- a/luci-app-ouad/LICENSE +++ /dev/null @@ -1,622 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - diff --git a/luci-app-ouad/Makefile b/luci-app-ouad/Makefile deleted file mode 100755 index 9fc60f8a4..000000000 --- a/luci-app-ouad/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (C) 2020 Nate Ding -# -# This is free software, licensed under the GUN General Public License v3. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -LUCI_Title:=LuCI support for ssd1306 0.91\' 138x32 display -LUCI_DEPENDS:=+libconfig -LUCI_PKGARCH:=$(if $(realpath src/Makefile),,all) -PKG_VERSION:=20230927 -PKG_RELEASE:=1 - -PKG_LICENSE:=GPLv3 -PKG_LINCESE_FILES:=LICENSE -PKG_MAINTAINER:=natelol - -define Package/luci-app-oled/conffiles -/etc/config/oled -endef - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-ouad/luasrc/controller/oled.lua b/luci-app-ouad/luasrc/controller/oled.lua deleted file mode 100755 index 630ea4387..000000000 --- a/luci-app-ouad/luasrc/controller/oled.lua +++ /dev/null @@ -1,22 +0,0 @@ -module("luci.controller.oled", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/oled") then - return - end - local uci = require "luci.model.uci".cursor() - local showmenu = uci:get_first("oled", "oled", "showmenu", "0") - if showmenu == "0" then - return - end - entry({"admin", "services", "oled"}, alias("admin", "services", "oled", "setting"),_("OLED"), 90).dependent = true - entry({"admin", "services", "oled", "status"}, call("act_status")) - entry({"admin", "services", "oled", "setting"}, cbi("oled/setting"),_("Setting"),30).leaf = true -end - -function act_status() - local e={} - e.running = luci.sys.call("pgrep -f /usr/bin/oled > /dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-ouad/luasrc/model/cbi/oled/setting.lua b/luci-app-ouad/luasrc/model/cbi/oled/setting.lua deleted file mode 100755 index 36c27daa9..000000000 --- a/luci-app-ouad/luasrc/model/cbi/oled/setting.lua +++ /dev/null @@ -1,87 +0,0 @@ -m = Map("oled", translate("OLED"), translate("A LuCI app that helps you config your oled display (SSD1306, 0.91', 128X32) with screensavers!

Any issues, please go to: ")..[[luci-app-oled]]) - ---m.chain("luci") - -m:section(SimpleSection).template="oled/status" - -s = m:section(TypedSection, "oled", translate("")) -s.anonymous=true -s.addremove=false - ---OPTIONS -s:tab("info", translate("Info Display")) -s:tab("screensaver", translate("screensaver")) - -o = s:taboption("info", Flag, "enable", translate("Enable")) -o.default=0 -o = s:taboption("info", Value, "path", translate("I2C PATH")) -o.default='/dev/i2c-0' -o = s:taboption("info", Flag, "rotate", translate("180 degree rotation")) -o.default=0 -o = s:taboption("info", Flag, "autoswitch", translate("Enable Auto switch")) -o.default=0 -from = s:taboption("info", ListValue, "from", translate("From")) -to = s:taboption("info", ListValue, "to", translate("To")) -for i=0,23 do - for j=0,30,30 do - from:value(i*60+j,string.format("%02d:%02d",i,j)) - to:value(i*60+j,string.format("%02d:%02d",i,j)) - end -end -from:value(1440,"24:00") -to:value(1440,"24:00") -from:depends("autoswitch",'1') -to:depends("autoswitch",'1') -from.default=0 -to.default=1440 - ---informtion options---- -o = s:taboption("info", Flag, "date", translate("Date"), translate('Format YYYY-MM-DD HH:MM:SS')) -o.default=0 -o = s:taboption("info", Flag, "lanip", translate("IP"), translate("LAN IP address")) -o.default=0 -o = s:taboption("info", Value, "ipifname", translate("which eth to monitor")) -o:depends("lanip",'1') -o.default='br-lan' -o = s:taboption("info", Flag, "cputemp", translate("CPU temperature")) -o.default=0 -o = s:taboption("info", Flag, "cpufreq", translate("CPU frequency")) -o.default=0 -o = s:taboption("info", Flag, "netspeed", translate("Network speed"), translate("1Mbps(m/s)=1,000Kbps(k/s)=1,000,000bps(b/s)")) -o.default=0 -o = s:taboption("info", Value, "netsource", translate("which eth to monitor")) -o:depends("netspeed",'1') -o.default='eth0' -o = s:taboption("info", Value, "time", translate("Display interval(s)"), translate('Screensaver will activate in set seconds')) -o.default=0 - ---screensaver options-- -o = s:taboption("screensaver", Flag, "scroll", translate("Scroll Text")) -o.default=1 -o = s:taboption("screensaver", Value, "text", translate("Text you want to scroll")) -o:depends("scroll",'1') -o.default='OPENWRT' -o = s:taboption("screensaver", Flag, "drawline", translate("Draw Many Lines")) -o.default=0 -o = s:taboption("screensaver", Flag, "drawrect", translate("Draw Rectangles")) -o.default=0 -o = s:taboption("screensaver", Flag, "fillrect", translate("Draw Multiple Rectangles")) -o.default=0 -o = s:taboption("screensaver", Flag, "drawcircle", translate("Draw Multiple Circles")) -o.default=0 -o = s:taboption("screensaver", Flag, "drawroundrect", translate("Draw a white circle, 10 pixel radius")) -o.default=0 -o = s:taboption("screensaver", Flag, "fillroundrect", translate("Fill the Round Rectangles")) -o.default=0 -o = s:taboption("screensaver", Flag, "drawtriangle", translate("Draw Triangles")) -o.default=0 -o = s:taboption("screensaver", Flag, "filltriangle", translate("Fill Triangles")) -o.default=0 -o = s:taboption("screensaver", Flag, "displaybitmap", translate("Display miniature bitmap")) -o.default=0 -o = s:taboption("screensaver", Flag, "displayinvertnormal", translate("Invert Display Normalize it")) -o.default=0 -o = s:taboption("screensaver", Flag, "drawbitmapeg", translate("Draw a bitmap and animate")) -o.default=0 - -return m diff --git a/luci-app-ouad/luasrc/view/oled/status.htm b/luci-app-ouad/luasrc/view/oled/status.htm deleted file mode 100755 index 0da0c6426..000000000 --- a/luci-app-ouad/luasrc/view/oled/status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
-

- <%:Collecting data...%> -

-
diff --git a/luci-app-ouad/po/zh-cn b/luci-app-ouad/po/zh-cn deleted file mode 120000 index 8d69574dd..000000000 --- a/luci-app-ouad/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-ouad/po/zh-tw b/luci-app-ouad/po/zh-tw deleted file mode 120000 index b241e95bd..000000000 --- a/luci-app-ouad/po/zh-tw +++ /dev/null @@ -1 +0,0 @@ -zh_Hant \ No newline at end of file diff --git a/luci-app-ouad/po/zh_Hans/oled.po b/luci-app-ouad/po/zh_Hans/oled.po deleted file mode 100755 index ae01eab33..000000000 --- a/luci-app-ouad/po/zh_Hans/oled.po +++ /dev/null @@ -1,154 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:1 -msgid "" -"A LuCI app that helps you config your oled display (SSD1306, 0.91', 128X32) " -"with screensavers!

Any issues, please go to:" -msgstr "" -"这是一款支持在ssd1306,0.91寸,128x32像素的oled显示屏上显示你要的信息,包含屏" -"保的程序。

任何问题请到:" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:24 -msgid "CPU frequency" -msgstr "CPU 频率" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:22 -msgid "CPU temperature" -msgstr "CPU 温度" - -msgid "Scroll Text" -msgstr "文字滚动" - -msgid "Enable Auto switch" -msgstr "启用定时开关" - -msgid "From" -msgstr "起始时间" - -msgid "To" -msgstr "结束时间" - -msgid "Text you want to scroll" -msgstr "你想要显示的文字" - -msgid "which eth to monitor" -msgstr "选择监控哪个网口" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:20 -msgid "Collecting data..." -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:18 -msgid "Date" -msgstr "时间" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:48 -msgid "Display miniature bitmap" -msgstr "小图案" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:28 -msgid "Display interval(s)" -msgstr "信息显示间隔(秒)" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:28 -msgid "Screensaver will activate in set seconds" -msgstr "屏保每间隔设置的时间运行一次" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:32 -msgid "Draw Many Lines" -msgstr "直线" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:38 -msgid "Draw Multiple Circles" -msgstr "多圆" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:36 -msgid "Draw Multiple Rectangles" -msgstr "多方块" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:34 -msgid "Draw Rectangles" -msgstr "方块" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:44 -msgid "Draw Triangles" -msgstr "三角形" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:54 -msgid "Draw a bitmap and animate" -msgstr "动图" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:52 -msgid "Draw a bitmap and animate movement" -msgstr "变化图" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:40 -msgid "Draw a white circle, 10 pixel radius" -msgstr "实心圆" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:15 -msgid "Enable" -msgstr "启用" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:46 -msgid "Fill Triangles" -msgstr "三角填充" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:42 -msgid "Fill the Round Rectangles" -msgstr "方形填充" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:18 -msgid "Format YYYY-MM-DD HH:MM:SS" -msgstr "日期格式 YYYY-MM-DD HH:MM:SS" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:17 -msgid "I2C PATH" -msgstr "I2C 路径" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:20 -msgid "IP" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:12 -msgid "Info Display" -msgstr "显示信息" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:50 -msgid "Invert Display Normalize it" -msgstr "反转" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:20 -msgid "LAN IP address" -msgstr "LAN 地址" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:10 -msgid "NOT RUNNING" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:26 -msgid "Network speed" -msgstr "网速" - -#: ../../package/new/luci-app-oled/luasrc/controller/oled.lua:7 -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:1 -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:7 -msgid "OLED" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:7 -msgid "RUNNING" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/controller/oled.lua:9 -msgid "Setting" -msgstr "设置" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:13 -msgid "screensaver" -msgstr "屏保" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:19 -msgid "180 degree rotation" -msgstr "180 度旋转" diff --git a/luci-app-ouad/po/zh_Hant/oled.po b/luci-app-ouad/po/zh_Hant/oled.po deleted file mode 100755 index 4a24e35fb..000000000 --- a/luci-app-ouad/po/zh_Hant/oled.po +++ /dev/null @@ -1,135 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:1 -msgid "" -"A LuCI app that helps you config your oled display (SSD1306, 0.91', 128X32) " -"with screensavers!

Any issues, please go to:" -msgstr "這是壹款支持在ssd1306,0.91寸,128x32像素的oled顯示屏上顯示妳要的信息,包含屏保的程序。

任何問題請到:" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:24 -msgid "CPU frequency" -msgstr "CPU頻率" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:22 -msgid "CPU temperature" -msgstr "CPU溫度" - -msgid "Scroll Text" -msgstr "文字滾動" - -msgid "Text you want to scroll" -msgstr "妳想要顯示的文字" - -msgid "which eth to monitor" -msgstr "選擇監控哪個網口" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:20 -msgid "Collecting data..." -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:18 -msgid "Date" -msgstr "時間" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:48 -msgid "Display miniature bitmap" -msgstr "小圖案" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:28 -msgid "Display interval(s)" -msgstr "信息顯示間隔(秒)" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:28 -msgid "Screensaver will activate in set seconds" -msgstr "屏保每間隔設置的時間運行壹次" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:32 -msgid "Draw Many Lines" -msgstr "直線" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:38 -msgid "Draw Multiple Circles" -msgstr "多圓" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:36 -msgid "Draw Multiple Rectangles" -msgstr "多方塊" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:34 -msgid "Draw Rectangles" -msgstr "方塊" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:44 -msgid "Draw Triangles" -msgstr "三角形" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:54 -msgid "Draw a bitmap and animate" -msgstr "動圖" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:52 -msgid "Draw a bitmap and animate movement" -msgstr "變化圖" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:40 -msgid "Draw a white circle, 10 pixel radius" -msgstr "實心圓" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:15 -msgid "Enable" -msgstr "啟用" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:46 -msgid "Fill Triangles" -msgstr "三角填充" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:42 -msgid "Fill the Round Rectangles" -msgstr "方形填充" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:18 -msgid "Format YYYY-MM-DD HH:MM:SS" -msgstr "日期格式 YYYY-MM-DD HH:MM:SS" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:20 -msgid "IP" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:12 -msgid "Info Display" -msgstr "顯示信息" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:50 -msgid "Invert Display Normalize it" -msgstr "反轉" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:20 -msgid "LAN IP address" -msgstr "LAN地址" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:10 -msgid "NOT RUNNING" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:26 -msgid "Network speed" -msgstr "網速" - -#: ../../package/new/luci-app-oled/luasrc/controller/oled.lua:7 -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:1 -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:7 -msgid "OLED" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/view/oled/status.htm:7 -msgid "RUNNING" -msgstr "" - -#: ../../package/new/luci-app-oled/luasrc/controller/oled.lua:9 -msgid "Setting" -msgstr "設置" - -#: ../../package/new/luci-app-oled/luasrc/model/cbi/oled/setting.lua:13 -msgid "screensaver" -msgstr "屏保" diff --git a/luci-app-ouad/root/etc/config/oled b/luci-app-ouad/root/etc/config/oled deleted file mode 100755 index dd6ae0c2c..000000000 --- a/luci-app-ouad/root/etc/config/oled +++ /dev/null @@ -1,29 +0,0 @@ -config oled - option showmenu '1' - option enable '1' - option drawline '0' - option drawrect '0' - option fillrect '0' - option drawcircle '0' - option drawroundrect '0' - option fillroundrect '0' - option drawtriangle '0' - option filltriangle '0' - option displaybitmap '0' - option displayinvertnormal '0' - option drawbitmapeg '0' - option date '1' - option netspeed '1' - option lanip '1' - option ipifname 'br-lan' - option cpufreq '1' - option cputemp '1' - option time '60' - option from '0' - option to '1440' - option autoswitch '0' - option rotate '0' - option scroll '0' - option text 'Openmptcprouter' - option netsource 'eth0' - option path '/dev/i2c-0' diff --git a/luci-app-ouad/root/etc/init.d/oled b/luci-app-ouad/root/etc/init.d/oled deleted file mode 100755 index 018e193ad..000000000 --- a/luci-app-ouad/root/etc/init.d/oled +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=88 -STOP=11 -USE_PROCD=1 -PROG=/usr/bin/oled - -get_section() { - eval "export -n ${2}=\"$1\"" - return 1 -} - -start_service() { - local mainsection - config_load oled - config_foreach get_section oled mainsection - local section=$mainsection - - local enabled ; config_get enabled "$section" enable 0 - if [[ $enabled -eq 0 ]]; then - return 1 - fi - - procd_open_instance - procd_set_param command ${PROG} - procd_append_param command --needInit - - local param - # default /dev/i2c-0 - config_get param "$section" path - [ "$param" != "" ] && procd_append_param command --i2cDevPath="$param" - - # from begin_minitues to end_minitues - # default 0 - 1440 - config_get param "$section" from - [ "$param" != "" ] && procd_append_param command --from="$param" - config_get param "$section" to - [ "$param" != "" ] && procd_append_param command --to="$param" - - config_get param "$section" date - [ "$param" == "1" ] && procd_append_param command --displayDate - - config_get param "$section" lanip - [ "$param" == "1" ] && procd_append_param command --displayIp - config_get param "$section" ipifname - if [ "$param" != "" ];then - procd_append_param command --ipIfName="$param" - else - procd_append_param command --ipIfName="br-lan" - fi - - config_get param "$section" cputemp - [ "$param" == "1" ] && procd_append_param command --displayCpuTemp - - config_get param "$section" cpufreq - [ "$param" == "1" ] && procd_append_param command --displayCpuFreq - - config_get param "$section" netspeed - [ "$param" == "1" ] && procd_append_param command --displayNetSpeed - # default eth0 - config_get param "$section" netsource - [ "$param" != "" ] && procd_append_param command --speedIfName="$param" - - # default 60 - config_get param "$section" time - [ "$param" != "" ] && procd_append_param command --interval="$param" - - config_get param "$section" drawline - [ "$param" == "1" ] && procd_append_param command --drawLine - - config_get param "$section" drawrect - [ "$param" == "1" ] && procd_append_param command --drawRect - - config_get param "$section" fillrect - [ "$param" == "1" ] && procd_append_param command --fillRect - - config_get param "$section" drawcircle - [ "$param" == "1" ] && procd_append_param command --drawCircle - - config_get param "$section" drawroundrect - [ "$param" == "1" ] && procd_append_param command --drawRoundRect - - config_get param "$section" fillroundrect - [ "$param" == "1" ] && procd_append_param command --fillRoundRect - - config_get param "$section" drawtriangle - [ "$param" == "1" ] && procd_append_param command --drawTriangle - - config_get param "$section" filltriangle - [ "$param" == "1" ] && procd_append_param command --fillTriangle - - config_get param "$section" displaybitmap - [ "$param" == "1" ] && procd_append_param command --displayBitmap - - config_get param "$section" drawbitmapeg - [ "$param" == "1" ] && procd_append_param command --drawBitmapEg - - config_get param "$section" displayinvertnormal - [ "$param" == "1" ] && procd_append_param command --displayInvertNormal - - config_get param "$section" rotate - [ "$param" == "1" ] && procd_append_param command --rotate - - config_get param "$section" scroll - [ "$param" == "1" ] && procd_append_param command --scroll - config_get param "$section" text - [ "$param" != "" ] && procd_append_param command --scrollText="$param" - - procd_set_param respawn - # oled收到 SIGTERM 信号后,会跑完最后一个显示效果再退出,因此需要一定的等待时间 - # 否则进程被 SIGKILL 强杀,会导致显示屏不能清空。 - procd_set_param term_timeout 30 # wait before sending SIGKILL - procd_close_instance -} - -service_triggers() { - procd_add_reload_trigger "oled" -} diff --git a/luci-app-ouad/root/etc/uci-defaults/oled b/luci-app-ouad/root/etc/uci-defaults/oled deleted file mode 100755 index 11931515f..000000000 --- a/luci-app-ouad/root/etc/uci-defaults/oled +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -uci_write_config() { - [[ `uci -q get oled.@oled[0].showmenu` -eq 1 ]] && return - uci -q batch <<-EOF >/dev/null - set oled.@oled[0].showmenu="1" - set oled.@oled[0].enable="1" - set oled.@oled[0].path="$1" - set oled.@oled[0].rotate="$2" - set oled.@oled[0].netspeed="$3" - set oled.@oled[0].netsource="$4" - commit oled -EOF -} - -. /lib/functions/system.sh - -case "$(board_name)" in -"hinlink,opc-h69k"|"hlink,opc-h69k"|"hlink,h69k") - uci_write_config '/dev/i2c-5' 1 1 eth0 - ;; -esac - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@oled[-1] - add ucitrack oled - set ucitrack.@oled[-1].init=oled - commit ucitrack -EOF - -sed -e "/\/etc\/init\.d\/oled/d" -i /etc/crontabs/root && /etc/init.d/cron reload -rm -rf /tmp/luci-* -exit 0 diff --git a/luci-app-ouad/root/usr/sbin/netspeed b/luci-app-ouad/root/usr/sbin/netspeed deleted file mode 100755 index 0c003ee43..000000000 --- a/luci-app-ouad/root/usr/sbin/netspeed +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/ash -IF=$1 -if [ -z "$IF" ]; then - IF=`ls -1 /sys/class/net/ | head -1` -fi -RXPREV=-1 -TXPREV=-1 -echo "Listening $IF..." -while [ 1 == 1 ] ; do - RX=`cat /sys/class/net/${IF}/statistics/rx_bytes` - TX=`cat /sys/class/net/${IF}/statistics/tx_bytes` - if [ $RXPREV -ne -1 ] ; then - let BWRX=$RX-$RXPREV - let BWTX=$TX-$TXPREV - echo "$((BWRX*8)) $(($BWTX*8))">/tmp/netspeed - fi - RXPREV=$RX - TXPREV=$TX - sleep 1 -done diff --git a/luci-app-ouad/root/usr/sbin/status_interfaces.sh b/luci-app-ouad/root/usr/sbin/status_interfaces.sh deleted file mode 100755 index bccd1bea1..000000000 --- a/luci-app-ouad/root/usr/sbin/status_interfaces.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -alldata=$(ubus call openmptcprouter status) -labels=$(echo $alldata | jsonfilter -e '@.wans[@.multipath!="off"].label') -for wan in $labels; do - wandata=$(echo $alldata | jsonfilter -e "@.wans[@.label=\"${wan}\"]") - status=$(echo $wandata | jsonfilter -e '@.status') - signal=$(echo $wandata | jsonfilter -e '@.signal') - echo -n "$wan $status " - if [ "$signal" != "" ]; then - if [ "$signal" -eq "0" ]; then - echo -n "0/4" - elif [ "$signal" -lt "25" ]; then - echo -n "1/4" - elif [ "$signal" -lt "50" ]; then - echo -n "2/4" - elif [ "$signal" -lt "75" ]; then - echo -n "3/4" - else - echo -n "4/4" - fi - else - echo -n "$(echo $wandata | jsonfilter -e '@.state')" - fi - echo -done \ No newline at end of file diff --git a/luci-app-ouad/root/usr/sbin/status_page1.sh b/luci-app-ouad/root/usr/sbin/status_page1.sh deleted file mode 100755 index 8fd6f7e5a..000000000 --- a/luci-app-ouad/root/usr/sbin/status_page1.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -ubus call openmptcprouter status | jsonfilter -e '@.wans[@.multipath!="off"]' | while read data; do - label=$(echo $data | jsonfilter -e '@.label') - latency=$(echo $data | jsonfilter -e '@.latency') - [ -n "$latency" ] && latency="${latency}ms" - whois=$(echo $data | jsonfilter -e '@.whois') - multipath=$(echo $data | jsonfilter -e '@.multipath') - echo "${label}: ${multipath} ${whois} ${latency}" -done diff --git a/luci-app-ouad/root/usr/sbin/status_page2.sh b/luci-app-ouad/root/usr/sbin/status_page2.sh deleted file mode 100755 index 219c7a36b..000000000 --- a/luci-app-ouad/root/usr/sbin/status_page2.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -echo "router: $(uci -q get openmptcprouter.settings.version)" -echo "server: $(uci -q get openmptcprouter.vps.omr_version)" -echo "uptime: $(uptime | awk -F, '{sub(".*up ",x,$1);print $1,$2}' | sed 's/ */ /g')" -echo "temp: $(awk '{printf("%.1f°C",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp)" \ No newline at end of file diff --git a/luci-app-ouad/root/usr/sbin/status_page3.sh b/luci-app-ouad/root/usr/sbin/status_page3.sh deleted file mode 100755 index 99563e593..000000000 --- a/luci-app-ouad/root/usr/sbin/status_page3.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -routerid=$(uci -q get rtty.@rtty[0].id | cut -c-9) -vpsip=$(curl https://55860.com/modules/addons/flowpacket/api.php?routeid=${routerid} | jsonfilter -e '@.data.dedicatedip') -[ -n "$vpsip" ] && { - vpsdata=$(curl https://55860.com/modules/addons/flowpacket/getWay.php?routeid=${vpsip}) - user=$(echo ${vpsdata} | jsonfilter -e '@.email') - data=$(echo ${vpsdata} | jsonfilter -e '@.data') - nextduedate=$(echo ${vpsdata} | jsonfilter -e '@.nextduedate') - echo "user: ${user}" - echo "residual flow: ${data}" - echo "router ID: ${routerid}" - echo "next due date: ${nextduedate}" -} \ No newline at end of file diff --git a/luci-app-ouad/root/usr/sbin/status_server.sh b/luci-app-ouad/root/usr/sbin/status_server.sh deleted file mode 100755 index aaaee9d1a..000000000 --- a/luci-app-ouad/root/usr/sbin/status_server.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -public_ip=$(uci -q get openmptcprouter.omr.detected_public_ipv4 | tr -d "\n") -if [ -n "$public_ip" ]; then - echo "IP: ${public_ip}" -else - echo "Waiting for server..." -fi \ No newline at end of file diff --git a/luci-app-ouad/root/usr/share/rpcd/acl.d/luci-app-oled.json b/luci-app-ouad/root/usr/share/rpcd/acl.d/luci-app-oled.json deleted file mode 100755 index 7c436b871..000000000 --- a/luci-app-ouad/root/usr/share/rpcd/acl.d/luci-app-oled.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-oled": { - "description": "Grant UCI access for luci-app-oled", - "read": { - "uci": [ "oled" ] - }, - "write": { - "uci": [ "oled" ] - } - } -} diff --git a/luci-app-ouad/src/Example_Code/.clang-format b/luci-app-ouad/src/Example_Code/.clang-format deleted file mode 100755 index 5caad4065..000000000 --- a/luci-app-ouad/src/Example_Code/.clang-format +++ /dev/null @@ -1,183 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: Google -AccessModifierOffset: -1 -AlignAfterOpenBracket: Align -AlignConsecutiveMacros: false -AlignConsecutiveAssignments: false -AlignConsecutiveBitFields: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlines: Left -AlignOperands: Align -AlignTrailingComments: true -AllowAllArgumentsOnNextLine: true -AllowAllConstructorInitializersOnNextLine: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortEnumsOnASingleLine: true -AllowShortBlocksOnASingleLine: Never -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: All -AllowShortLambdasOnASingleLine: All -AllowShortIfStatementsOnASingleLine: WithoutElse -AllowShortLoopsOnASingleLine: true -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: true -AlwaysBreakTemplateDeclarations: Yes -BinPackArguments: true -BinPackParameters: true -BraceWrapping: - AfterCaseLabel: false - AfterClass: false - AfterControlStatement: Never - AfterEnum: false - AfterFunction: false - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - AfterExternBlock: false - BeforeCatch: false - BeforeElse: false - BeforeLambdaBody: false - BeforeWhile: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Attach -BreakBeforeInheritanceComma: false -BreakInheritanceList: BeforeColon -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BreakConstructorInitializers: BeforeColon -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true -ColumnLimit: 80 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerAllOnOneLineOrOnePerLine: true -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: true -DeriveLineEnding: true -DerivePointerAlignment: true -DisableFormat: false -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: true -ForEachMacros: - - foreach - - Q_FOREACH - - BOOST_FOREACH -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '^' - Priority: 2 - SortPriority: 0 - - Regex: '^<.*\.h>' - Priority: 1 - SortPriority: 0 - - Regex: '^<.*' - Priority: 2 - SortPriority: 0 - - Regex: '.*' - Priority: 3 - SortPriority: 0 -IncludeIsMainRegex: '([-_](test|unittest))?$' -IncludeIsMainSourceRegex: '' -IndentCaseLabels: true -IndentCaseBlocks: false -IndentGotoLabels: true -IndentPPDirectives: None -IndentExternBlock: AfterExternBlock -IndentWidth: 2 -IndentWrappedFunctionNames: false -InsertTrailingCommas: None -JavaScriptQuotes: Leave -JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: false -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ObjCBinPackProtocolList: Never -ObjCBlockIndentWidth: 2 -ObjCBreakBeforeNestedBlockParam: true -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 1 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyBreakTemplateDeclaration: 10 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 200 -PointerAlignment: Left -RawStringFormats: - - Language: Cpp - Delimiters: - - cc - - CC - - cpp - - Cpp - - CPP - - 'c++' - - 'C++' - CanonicalDelimiter: '' - BasedOnStyle: google - - Language: TextProto - Delimiters: - - pb - - PB - - proto - - PROTO - EnclosingFunctions: - - EqualsProto - - EquivToProto - - PARSE_PARTIAL_TEXT_PROTO - - PARSE_TEST_PROTO - - PARSE_TEXT_PROTO - - ParseTextOrDie - - ParseTextProtoOrDie - - ParseTestProto - - ParsePartialTestProto - CanonicalDelimiter: '' - BasedOnStyle: google -ReflowComments: true -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeCpp11BracedList: false -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: ControlStatements -SpaceBeforeRangeBasedForLoopColon: true -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 2 -SpacesInAngles: false -SpacesInConditionalStatement: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpaceBeforeSquareBrackets: false -Standard: Auto -StatementMacros: - - Q_UNUSED - - QT_REQUIRE_VERSION -IndentWidth: 8 -TabWidth: 8 -UseCRLF: false -UseTab: Always -WhitespaceSensitiveMacros: - - STRINGIZE - - PP_STRINGIZE - - BOOST_PP_STRINGIZE -... - diff --git a/luci-app-ouad/src/Example_Code/Main.c b/luci-app-ouad/src/Example_Code/Main.c deleted file mode 100755 index 5d1d9e0bb..000000000 --- a/luci-app-ouad/src/Example_Code/Main.c +++ /dev/null @@ -1,975 +0,0 @@ -/* - * Main.c - * - * Created on : Sep 6, 2017 - * Author : Vinay Divakar - * Description : Example usage of the SSD1306 Driver API's - * Website : www.deeplyembedded.org - */ - -/* Lib Includes */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* Header Files */ -#include "I2C.h" -#include "SSD1306_OLED.h" -#include "example_app.h" - -#define PROG_VERSION "1.1" -#define NETSPEED_INTERVAL 1000000 -#define DISPLAY_INTERVAL 1000000 -#define TINY_INTERVAL 50000 -#define TIME_CHECK_INTERVAL_SHORT 1000000 -#define TIME_CHECK_INTERVAL_LONG 3000000 - -struct st_config { - unsigned int disp_date; - unsigned int disp_ip; - char *ip_if_name; - unsigned int disp_cpu_temp; - unsigned int disp_cpu_freq; - unsigned int disp_net_speed; - char *speed_if_name; - unsigned int interval; - unsigned int draw_line; - unsigned int draw_rect; - unsigned int fill_rect; - unsigned int draw_circle; - unsigned int draw_round_rect; - unsigned int fill_round_rect; - unsigned int draw_triangle; - unsigned int fill_triangle; - unsigned int disp_bitmap; - unsigned int disp_invert_normal; - unsigned int draw_bitmap_eg; - unsigned int scroll; - char *scroll_text; - char *i2c_dev_path; - unsigned int rotate; - unsigned int need_init; - int from; - int to; -}; - -/* Oh Compiler-Please leave me as is */ -volatile unsigned char flag = 0; - -/** Shared variable by the threads */ -static unsigned long int __shared_rx_speed = 0; -static unsigned long int __shared_tx_speed = 0; -static int __force_quit = 0; - -/** Mutual exclusion of the shared variable */ -static pthread_mutex_t __control_speed_vars = - (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER; - -static pthread_mutex_t __control_oled = - (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER; - -/* thread id */ -static pthread_t tid_speed_calc = 0; -static pthread_t tid_display = 0; - -static void printHelp() { - printf( - "\n\ -Usage: oled [options] ...\n\ -Options:\n\ - --help or -h Display this information.\n\ - --version or -v Display compiler version information.\n\ -\n\ - --config=file or -c file Specify configuration file.\n\ -\n\ - --i2cDevPath=path or -d path Specify the i2c device, default is /dev/i2c-0.\n\ - --from=minutes or -f minites Specify the time(in minutes of day) to start displaying, default is 0.\n\ - --to=minutes or -t minites Specify the time(in minutes of day) to stop displaying, default is 1440.\n\ - --neetInit or -N Turn on init, default is on.\n\ - --interval=n or -l n Specify the display interval, default is 60(s).\n\ - --displayInvertNormal or -I Turn on the invert normal mode.\n\ - --rotate or -H Turn on rotate.\n\ -\n\ - --displayDate or -D Turn on the date display.\n\ - --displayIp or -A Turn on the IP address display.\n\ - --ipIfName=ifname or -a ifname Specify the eth device to display the ip address, default is br-lan.\n\ - --displayNetSpeed or -S Turn on the net speed display.\n\ - --speedIfName=ifname or -s ifname Specify the eth device to display the net speed, default is eth0.\n\ - --displayCpuTemp or -T Turn on the CPU temperature.\n\ - --displayCpuFreq or -F Turn on the CPU frequency.\n\ -\n\ - --drawLine or -L Turn on draw line.\n\ - --drawRect or -W Turn on draw rectangle.\n\ - --fillRect or -w Turn on fill rectangle.\n\ - --drawCircle or -C Turn on draw circle.\n\ - --drawRoundRect or -R Turn on draw round rectangle.\n\ - --fillRoundRect or -r Turn on fill round rectangle.\n\ - --drawTriangle or -G Turn on draw triangle.\n\ - --fillTriangle or -g Turn on fill triangle.\n\ - --displayBitmap or -B Turn on display bitmap.\n\ - --drawBitmapEg or -E Turn on draw bitmap eg.\n\ - --scroll or -O Turn on scroll text.\n\ - --scrollText=text or -o text Specify the scroll text, default is 'Hello'.\n\ -\n"); -} - -static void printVersion() { printf("Version: %s\n", PROG_VERSION); } - -static void read_conf_file(const char *filename, struct st_config *stcfg) { - config_t cfg; - config_init(&cfg); - char *buff; - - if (!config_read_file(&cfg, filename)) { - fprintf(stderr, "Error reading configuration file: %s\n", - config_error_text(&cfg)); - config_destroy(&cfg); - exit(EXIT_FAILURE); - } - - config_lookup_int(&cfg, "displayDate", &stcfg->disp_date); - config_lookup_int(&cfg, "displayIp", &stcfg->disp_ip); - - if (config_lookup_string(&cfg, "ipIfName", (const char **)&buff)) { - sprintf(stcfg->ip_if_name, "%s", buff); - } - - config_lookup_int(&cfg, "displayCpuTemp", &stcfg->disp_cpu_temp); - config_lookup_int(&cfg, "displayCpuFreq", &stcfg->disp_cpu_freq); - config_lookup_int(&cfg, "displayNetSpeed", &stcfg->disp_net_speed); - - if (config_lookup_string(&cfg, "speedIfName", (const char **)&buff)) { - sprintf(stcfg->speed_if_name, "%s", buff); - } - - config_lookup_int(&cfg, "interval", &stcfg->interval); - config_lookup_int(&cfg, "drawLine", &stcfg->draw_line); - config_lookup_int(&cfg, "drawRect", &stcfg->draw_rect); - config_lookup_int(&cfg, "fillRect", &stcfg->fill_rect); - config_lookup_int(&cfg, "drawCircle", &stcfg->draw_circle); - config_lookup_int(&cfg, "drawRoundRect", &stcfg->draw_round_rect); - config_lookup_int(&cfg, "fillRoundRect", &stcfg->fill_round_rect); - config_lookup_int(&cfg, "drawTriangle", &stcfg->draw_triangle); - config_lookup_int(&cfg, "fillTriangle", &stcfg->fill_triangle); - config_lookup_int(&cfg, "displayBitmap", &stcfg->disp_bitmap); - config_lookup_int(&cfg, "displayInvertNormal", - &stcfg->disp_invert_normal); - config_lookup_int(&cfg, "drawBitmapEg", &stcfg->draw_bitmap_eg); - config_lookup_int(&cfg, "scroll", &stcfg->scroll); - - if (config_lookup_string(&cfg, "scrollText", (const char **)&buff)) { - sprintf(stcfg->scroll_text, "%s", buff); - } - - if (config_lookup_string(&cfg, "i2cDevPath", (const char **)&buff)) { - sprintf(stcfg->i2c_dev_path, "%s", buff); - } - - config_lookup_int(&cfg, "rotate", &stcfg->rotate); - config_lookup_int(&cfg, "needInit", &stcfg->need_init); - config_lookup_int(&cfg, "from", &stcfg->from); - config_lookup_int(&cfg, "to", &stcfg->to); - - config_destroy(&cfg); -} - -static inline float get_uptime() { - FILE *fp1; - float uptime = 0, idletime = 0; - if ((fp1 = fopen("/proc/uptime", "r")) != NULL) { - if (fscanf(fp1, "%f %f", &uptime, &idletime)) - ; - fclose(fp1); - } - return uptime; -} - -static void *pth_netspeed(void *args) { - struct st_config *stcfg = (struct st_config *)args; - char rxbytes_path[80]; - char txbytes_path[80]; - unsigned long long int llu_bytes; - unsigned long int rx_bytes = 0, tx_bytes = 0, last_rx_bytes = 0, - last_tx_bytes = 0; - unsigned long int rx_speed, tx_speed; - FILE *fp1; - float last_uptime, uptime; - - sprintf(rxbytes_path, "/sys/class/net/%s/statistics/rx_bytes", - stcfg->speed_if_name); - sprintf(txbytes_path, "/sys/class/net/%s/statistics/tx_bytes", - stcfg->speed_if_name); - last_uptime = get_uptime(); - while (1) { - if (__force_quit) break; - - uptime = get_uptime(); - if ((fp1 = fopen(rxbytes_path, "r")) != NULL) { - if (fscanf(fp1, "%llu", &llu_bytes)) - ; - fclose(fp1); - rx_bytes = llu_bytes % ULONG_MAX; - } else { - last_uptime = uptime; - usleep(NETSPEED_INTERVAL); - continue; - } - - if ((fp1 = fopen(txbytes_path, "r")) != NULL) { - if (fscanf(fp1, "%llu", &llu_bytes)) - ; - fclose(fp1); - tx_bytes = llu_bytes % ULONG_MAX; - } else { - last_uptime = uptime; - usleep(NETSPEED_INTERVAL); - continue; - } - - if ((last_rx_bytes == 0 && last_tx_bytes == 0) || - (rx_bytes < last_rx_bytes) || (tx_bytes < last_tx_bytes) || - (uptime <= last_uptime)) { - last_rx_bytes = rx_bytes; - last_tx_bytes = tx_bytes; - } else { - rx_speed = - (rx_bytes - last_rx_bytes) / (uptime - last_uptime); - tx_speed = - (tx_bytes - last_tx_bytes) / (uptime - last_uptime); - - // write shared variables; - pthread_mutex_lock(&__control_speed_vars); - { - __shared_rx_speed = rx_speed; - __shared_tx_speed = tx_speed; - } - pthread_mutex_unlock(&__control_speed_vars); - - last_rx_bytes = rx_bytes; - last_tx_bytes = tx_bytes; - } - last_uptime = uptime; - usleep(NETSPEED_INTERVAL); - } -} - -static void *pth_display(const void *args) { - const struct st_config *stcfg = (struct st_config *)args; - unsigned long int rx_speed, tx_speed; - int info_sum = stcfg->disp_date + stcfg->disp_ip + - stcfg->disp_cpu_freq + stcfg->disp_cpu_temp + - stcfg->disp_net_speed; - - /* Let the main thread work first, - * to ensure the timing is correct. - */ - usleep(TINY_INTERVAL); - - // draw many lines - while (1) { - if (__force_quit) break; - - if (stcfg->scroll) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testscrolltext(stcfg->scroll_text); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - if (stcfg->draw_line) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawline(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // draw rectangles - if (stcfg->draw_rect) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawrect(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // draw multiple rectangles - if (stcfg->fill_rect) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testfillrect(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // draw mulitple circles - if (stcfg->draw_circle) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawcircle(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // draw a white circle, 10 pixel radius - if (stcfg->draw_round_rect) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawroundrect(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // Fill the round rectangle - if (stcfg->fill_round_rect) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testfillroundrect(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // Draw triangles - if (stcfg->draw_triangle) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawtriangle(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - // Fill triangles - if (stcfg->fill_triangle) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - testfilltriangle(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // Display miniature bitmap - if (stcfg->disp_bitmap) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - display_bitmap(); - Display(); - usleep(DISPLAY_INTERVAL); - // release oled control - pthread_mutex_unlock(&__control_oled); - }; - - // Display Inverted image and normalize it back - if (stcfg->disp_invert_normal) { - if (__force_quit) break; - - // get oled control - pthread_mutex_lock(&__control_oled); - display_invert_normal(); - clearDisplay(); - usleep(DISPLAY_INTERVAL); - Display(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - // Generate Signal after 20 Seconds - - // draw a bitmap icon and 'animate' movement - if (stcfg->draw_bitmap_eg) { - if (__force_quit) break; - - alarm(10); - flag = 0; - // get oled control - pthread_mutex_lock(&__control_oled); - testdrawbitmap_eg(); - clearDisplay(); - usleep(DISPLAY_INTERVAL); - Display(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } - - if (info_sum == 0) { - if (__force_quit) break; - - pthread_mutex_lock(&__control_oled); - clearDisplay(); - usleep(DISPLAY_INTERVAL); - Display(); - pthread_mutex_unlock(&__control_oled); - continue; - } - - // setCursor(0,0); - setTextColor(WHITE); - - for (int i = 1; i < stcfg->interval; i++) { - if (__force_quit) break; - - if (info_sum == 1) { // only one item for display - if (stcfg->disp_date) testdate(CENTER, 8); - if (stcfg->disp_ip) - testip(CENTER, 8, stcfg->ip_if_name); - if (stcfg->disp_cpu_freq) - testcpufreq(CENTER, 8); - if (stcfg->disp_cpu_temp) - testcputemp(CENTER, 8); - if (stcfg->disp_net_speed) { - // read shared variables; - pthread_mutex_lock( - &__control_speed_vars); - { - rx_speed = __shared_rx_speed; - tx_speed = __shared_tx_speed; - } - pthread_mutex_unlock( - &__control_speed_vars); - - testnetspeed(SPLIT, 0, rx_speed, - tx_speed); - } - // get oled control - pthread_mutex_lock(&__control_oled); - Display(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } else if (info_sum == 2) { // two items for display - if (stcfg->disp_date) { - testdate(CENTER, - 16 * (stcfg->disp_date - 1)); - } - if (stcfg->disp_ip) { - testip(CENTER, - 16 * (stcfg->disp_date + - stcfg->disp_ip - 1), - stcfg->ip_if_name); - } - if (stcfg->disp_cpu_freq) { - testcpufreq( - CENTER, - 16 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq - 1)); - } - if (stcfg->disp_cpu_temp) { - testcputemp( - CENTER, - 16 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq + - stcfg->disp_cpu_temp - 1)); - } - if (stcfg->disp_net_speed) { - // read shared variables; - pthread_mutex_lock( - &__control_speed_vars); - { - rx_speed = __shared_rx_speed; - tx_speed = __shared_tx_speed; - } - pthread_mutex_unlock( - &__control_speed_vars); - - testnetspeed( - MERGE, - 16 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq + - stcfg->disp_cpu_temp + - stcfg->disp_net_speed - 1), - rx_speed, tx_speed); - } - // get oled control - pthread_mutex_lock(&__control_oled); - Display(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } else { // more than two items for display - if (stcfg->disp_date) { - testdate(FULL, - 8 * (stcfg->disp_date - 1)); - } - if (stcfg->disp_ip) { - testip(FULL, - 8 * (stcfg->disp_date + - stcfg->disp_ip - 1), - stcfg->ip_if_name); - } - if (stcfg->disp_cpu_freq && - stcfg->disp_cpu_temp) { - testcpu(8 * (stcfg->disp_date + - stcfg->disp_ip)); - if (stcfg->disp_net_speed) { - // read shared variables; - pthread_mutex_lock( - &__control_speed_vars); - { - rx_speed = - __shared_rx_speed; - tx_speed = - __shared_tx_speed; - } - pthread_mutex_unlock( - &__control_speed_vars); - - testnetspeed( - FULL, - 8 * (stcfg->disp_date + - stcfg->disp_ip + 1 + - stcfg->disp_net_speed - - 1), - rx_speed, tx_speed); - } - } else { - if (stcfg->disp_cpu_freq) { - testcpufreq( - FULL, - 8 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq - - 1)); - } - if (stcfg->disp_cpu_temp) { - testcputemp( - FULL, - 8 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq + - stcfg->disp_cpu_temp - - 1)); - } - if (stcfg->disp_net_speed) { - // read shared variables; - pthread_mutex_lock( - &__control_speed_vars); - { - rx_speed = - __shared_rx_speed; - tx_speed = - __shared_tx_speed; - } - pthread_mutex_unlock( - &__control_speed_vars); - - testnetspeed( - FULL, - 8 * (stcfg->disp_date + - stcfg->disp_ip + - stcfg->disp_cpu_freq + - stcfg->disp_cpu_temp + - stcfg->disp_net_speed - - 1), - rx_speed, tx_speed); - } - } - // get oled control - pthread_mutex_lock(&__control_oled); - Display(); - usleep(DISPLAY_INTERVAL); - clearDisplay(); - // release oled control - pthread_mutex_unlock(&__control_oled); - } // more than two items for display - } // for - } // while -} - -/* Alarm Signal Handler */ -void ALARMhandler(int sig) { - /* Set flag */ - flag = 5; -} - -void BreakDeal(int sig) { - printf("Received a KILL signal, will exit in a few seconds.\n"); - __force_quit = 1; -} - -static inline int get_current_minitues() { - time_t rawtime; - struct tm *info; - time(&rawtime); - info = localtime(&rawtime); - // printf("Current local time and date: %s", asctime(info)); - // printf("Current minutues: %d\n", info->tm_hour * 60 + info->tm_min); - return (info->tm_hour * 60 + info->tm_min); -} - -static void time_switch(struct st_config *stcfg) { - int now; - int control_by_me = 0; - // draw a single pixel - // drawPixel(0, 1, WHITE); - // Display(); - // usleep(DISPLAY_INTERVAL); - // clearDisplay(); - - while (1) { - if (__force_quit == 1) { - if (control_by_me == 1) { - pthread_mutex_unlock(&__control_oled); - } - break; - } - - now = get_current_minitues(); - /* During the sleep period, - * other threads are prohibited from controlling the display, - * and the display content is cleared; - * During the non-sleep period, - * release the control right of the display screen. - */ - if (stcfg->from != stcfg->to && - (now < stcfg->from || now >= stcfg->to)) { - if (control_by_me == 0) { - int i; - int repeat_clear_times = 3; - - // get oled control - pthread_mutex_lock(&__control_oled); - control_by_me = 1; - - /* Sometimes, clearing the screen once cannot be - * completely cleared it, so it is necessary - * to repeat clearing the screen several times. - */ - for(i = 0; i < repeat_clear_times; i++) { - clearDisplay(); - usleep(DISPLAY_INTERVAL); - Display(); - } - } - usleep(TIME_CHECK_INTERVAL_LONG); - } else { - if (control_by_me == 1) { - // release oled control - pthread_mutex_unlock(&__control_oled); - control_by_me = 0; - } - usleep(TIME_CHECK_INTERVAL_SHORT); - } - } -} - -int main(int argc, char *argv[]) { - int option; - int option_index = 0; - int effect_sum, info_sum; - char *config_file = NULL; - struct st_config *stcfg; - - static struct option long_options[] = { - {"config", required_argument, 0, 'c'}, - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, - {"displayDate", no_argument, 0, 'D'}, - {"displayIp", no_argument, 0, 'A'}, - {"ipIfName", required_argument, 0, 'a'}, - {"displayNetSpeed", no_argument, 0, 'S'}, - {"speedIfName", required_argument, 0, 's'}, - {"displayCpuTemp", no_argument, 0, 'T'}, - {"displayCpuFreq", no_argument, 0, 'F'}, - {"displayInvertNormal", no_argument, 0, 'I'}, - {"interval", required_argument, 0, 'l'}, - {"drawLine", no_argument, 0, 'L'}, - {"drawRect", no_argument, 0, 'W'}, - {"fillRect", no_argument, 0, 'w'}, - {"drawCircle", no_argument, 0, 'C'}, - {"drawRoundRect", no_argument, 0, 'R'}, - {"fillRoundRect", no_argument, 0, 'r'}, - {"drawTriangle", no_argument, 0, 'G'}, - {"fillTriangle", no_argument, 0, 'g'}, - {"displayBitmap", no_argument, 0, 'B'}, - {"drawBitmapEg", no_argument, 0, 'E'}, - {"scroll", no_argument, 0, 'O'}, - {"scrollText", required_argument, 0, 'o'}, - {"i2cDevPath", required_argument, 0, 'd'}, - {"rotate", no_argument, 0, 'H'}, - {"needInit", no_argument, 0, 'N'}, - {"from", required_argument, 0, 'f'}, - {"to", required_argument, 0, 't'}, - {0, 0, 0, 0}}; - - stcfg = malloc(sizeof(struct st_config)); - memset(stcfg, 0, sizeof(struct st_config)); - - /* set default value for config */ - stcfg->need_init = 1; - stcfg->interval = 60; - stcfg->from = 0; - stcfg->to = 1440; - - stcfg->ip_if_name = malloc(sizeof(char) * 20); - sprintf(stcfg->ip_if_name, "br-lan"); - - stcfg->speed_if_name = malloc(sizeof(char) * 20); - sprintf(stcfg->speed_if_name, "eth0"); - - stcfg->scroll_text = malloc(sizeof(char) * 100); - sprintf(stcfg->scroll_text, "Hello"); - - stcfg->i2c_dev_path = malloc(sizeof(char) * 20); - sprintf(stcfg->i2c_dev_path, "%s", I2C_DEV0_PATH); - /* The end of set default value for config */ - - while ((option = getopt_long(argc, argv, - "c:hvDAa:Ss:TFIl:LWwCRrGgBEOo:d:HNf:t:", - long_options, &option_index)) != -1) { - switch (option) { - case 'c': - config_file = optarg; - break; - case 'h': - printHelp(); - exit(EXIT_SUCCESS); - case 'v': - printVersion(); - exit(EXIT_SUCCESS); - case '?': - // Invalid option or missing argument - exit(EXIT_FAILURE); - default: - // Handle other parameters - break; - } - } - - if (config_file != NULL) { - /* Read parameters from the configuration file */ - read_conf_file(config_file, stcfg); - } - - /* Update config from the command params */ - optind = 0; - while ((option = getopt_long(argc, argv, - "c:hvDAa:Ss:TFIl:LWwCRrGgBEOo:d:HNf:t:", - long_options, &option_index)) != -1) { - switch (option) { - case 'D': - stcfg->disp_date = 1; - break; - case 'A': - stcfg->disp_ip = 1; - break; - case 'a': - sprintf(stcfg->ip_if_name, "%s", optarg); - break; - case 'S': - stcfg->disp_net_speed = 1; - break; - case 's': - sprintf(stcfg->speed_if_name, "%s", optarg); - break; - case 'T': - stcfg->disp_cpu_temp = 1; - break; - case 'F': - stcfg->disp_cpu_freq = 1; - break; - case 'I': - stcfg->disp_invert_normal = 1; - break; - case 'l': - stcfg->interval = atoi(optarg); - break; - case 'L': - stcfg->draw_line = 1; - break; - case 'W': - stcfg->draw_rect = 1; - break; - case 'w': - stcfg->fill_rect = 1; - break; - case 'C': - stcfg->draw_circle = 1; - break; - case 'R': - stcfg->draw_round_rect = 1; - break; - case 'r': - stcfg->fill_round_rect = 1; - break; - case 'G': - stcfg->draw_triangle = 1; - break; - case 'g': - stcfg->fill_triangle = 1; - break; - case 'B': - stcfg->disp_bitmap = 1; - break; - case 'E': - stcfg->draw_bitmap_eg = 1; - break; - case 'O': - stcfg->scroll = 1; - break; - case 'o': - sprintf(stcfg->scroll_text, "%s", optarg); - break; - case 'd': - sprintf(stcfg->i2c_dev_path, "%s", optarg); - break; - case 'H': - stcfg->rotate = 1; - break; - case 'N': - stcfg->need_init = 1; - break; - case 'f': - stcfg->from = atoi(optarg); - break; - case 't': - stcfg->to = atoi(optarg); - break; - default: - // Handle other parameters - break; - } - } - - /* Check the items that can be displayed */ - effect_sum = stcfg->scroll + stcfg->draw_line + stcfg->draw_rect + - stcfg->fill_rect + stcfg->draw_circle + - stcfg->draw_round_rect + stcfg->fill_round_rect + - stcfg->draw_triangle + stcfg->fill_triangle + - stcfg->disp_bitmap + stcfg->disp_invert_normal + - stcfg->draw_bitmap_eg; - info_sum = stcfg->disp_date + stcfg->disp_ip + stcfg->disp_cpu_freq + - stcfg->disp_cpu_temp + stcfg->disp_net_speed; - if (effect_sum == 0 && info_sum == 0) { - printf( - "Nothing to display, check cfg file or cmd line args, " - "bye!\n"); - exit(EXIT_SUCCESS); - } - - /* Check the legality of parameters from and parameters to */ - if (stcfg->from < 0 || stcfg->from > 1440) { - stcfg->from = 0; - } - - if (stcfg->to <= 0 || stcfg->to > 1440) { - stcfg->to = 1440; - } - - if (stcfg->from > stcfg->to) { - int temp = stcfg->from; - stcfg->from = stcfg->to; - stcfg->to = temp; - } - - /* Initialize I2C bus and connect to the I2C Device */ - if (init_i2c_dev(stcfg->i2c_dev_path, SSD1306_OLED_ADDR) == 0) { - printf("Successfully connected to I2C device: %s\n", - stcfg->i2c_dev_path); - } else { - printf("Oops! There seems to be something wrong: %s\n", - stcfg->i2c_dev_path); - exit(EXIT_FAILURE); - } - - /* Run SDD1306 Initialization Sequence */ - if (stcfg->need_init == 1) display_Init_seq(); - - if (stcfg->rotate == 1) - display_rotate(); - else - display_normal(); - - clearDisplay(); - - /* Create a network speed calculation thread */ - if (stcfg->disp_net_speed == 1 && - strcmp(stcfg->speed_if_name, "") != 0) { - pthread_create(&tid_speed_calc, NULL, (void *)pth_netspeed, - (void *)stcfg); - } - - /* Create a display consumer thread */ - pthread_create(&tid_display, NULL, (void *)pth_display, (void *)stcfg); - - /* Register the Alarm Handler */ - signal(SIGALRM, ALARMhandler); - signal(SIGINT, BreakDeal); - signal(SIGTERM, BreakDeal); - - /* Time switch control function */ - time_switch(stcfg); - - /* Release resources and exit the program */ - if (tid_speed_calc != 0) { - pthread_join(tid_speed_calc, NULL); - } - - if (tid_display != 0) { - pthread_join(tid_display, NULL); - } - - pthread_mutex_destroy(&__control_speed_vars); - pthread_mutex_destroy(&__control_oled); - - clearDisplay(); - usleep(TINY_INTERVAL); - Display(); - Close_I2C(); - - free(stcfg->scroll_text); - free(stcfg->ip_if_name); - free(stcfg->speed_if_name); - free(stcfg->i2c_dev_path); - free(stcfg); - - exit(EXIT_SUCCESS); -} diff --git a/luci-app-ouad/src/Example_Code/example_app.c b/luci-app-ouad/src/Example_Code/example_app.c deleted file mode 100755 index 313d09553..000000000 --- a/luci-app-ouad/src/Example_Code/example_app.c +++ /dev/null @@ -1,602 +0,0 @@ -/* - * MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * example_app.c - * - * Created on : Sep 6, 2017 - * Author : Vinay Divakar - * Website : www.deeplyembedded.org - */ - -/* Lib Includes */ -#include "example_app.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "SSD1306_OLED.h" - -#define BUFMAX SSD1306_LCDWIDTH *SSD1306_LCDHEIGHT - -/* MACRO's */ -#define LOGO16_GLCD_HEIGHT 16 -#define LOGO16_GLCD_WIDTH 16 -#define NUMFLAKES 10 -#define XPOS 0 -#define YPOS 1 -#define DELTAY 2 - -#define TIMESIZE 64 -// temperature -#define TEMPPATH "/sys/class/thermal/thermal_zone0/temp" -#define TEMPSIZE 5 -// cpu -#define FREQSIZE 8 -#define FREQPATH "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq" -// ip -#define IPSIZE 20 - -/* Extern volatile */ -extern volatile unsigned char flag; - -/* Bit Map - Taken from Adafruit SSD1306 OLED Library */ -static const unsigned char logo16_glcd_bmp[] = { - 0b00000000, 0b11000000, 0b00000001, 0b11000000, 0b00000001, 0b11000000, - 0b00000011, 0b11100000, 0b11110011, 0b11100000, 0b11111110, 0b11111000, - 0b01111110, 0b11111111, 0b00110011, 0b10011111, 0b00011111, 0b11111100, - 0b00001101, 0b01110000, 0b00011011, 0b10100000, 0b00111111, 0b11100000, - 0b00111111, 0b11110000, 0b01111100, 0b11110000, 0b01110000, 0b01110000, - 0b00000000, 0b00110000}; - -FILE *fp; -char content_buff[BUFMAX]; -char buf[BUFMAX]; -int display_offset = 7; -/* draw many lines */ -void testdrawline() { - short i = 0; - for (i = 0; i < SSD1306_LCDWIDTH; i += 4) { - drawLine(0, 0, i, SSD1306_LCDHEIGHT - 1, WHITE); - Display(); - usleep(1000); - } - for (i = 0; i < SSD1306_LCDHEIGHT; i += 4) { - drawLine(0, 0, SSD1306_LCDWIDTH - 1, i, WHITE); - Display(); - usleep(1000); - } - usleep(250000); - - clearDisplay(); - for (i = 0; i < SSD1306_LCDWIDTH; i += 4) { - drawLine(0, SSD1306_LCDHEIGHT - 1, i, 0, WHITE); - Display(); - usleep(1000); - } - for (i = SSD1306_LCDHEIGHT - 1; i >= 0; i -= 4) { - drawLine(0, SSD1306_LCDHEIGHT - 1, SSD1306_LCDWIDTH - 1, i, - WHITE); - Display(); - usleep(1000); - } - usleep(250000); - - clearDisplay(); - for (i = SSD1306_LCDWIDTH - 1; i >= 0; i -= 4) { - drawLine(SSD1306_LCDWIDTH - 1, SSD1306_LCDHEIGHT - 1, i, 0, - WHITE); - Display(); - usleep(1000); - } - for (i = SSD1306_LCDHEIGHT - 1; i >= 0; i -= 4) { - drawLine(SSD1306_LCDWIDTH - 1, SSD1306_LCDHEIGHT - 1, 0, i, - WHITE); - Display(); - usleep(1000); - } - usleep(250000); - - clearDisplay(); - for (i = 0; i < SSD1306_LCDHEIGHT; i += 4) { - drawLine(SSD1306_LCDWIDTH - 1, 0, 0, i, WHITE); - Display(); - usleep(1000); - } - for (i = 0; i < SSD1306_LCDWIDTH; i += 4) { - drawLine(SSD1306_LCDWIDTH - 1, 0, i, SSD1306_LCDHEIGHT - 1, - WHITE); - Display(); - usleep(1000); - } - usleep(250000); -} - -/* draw rectangles */ -void testdrawrect() { - short i = 0; - for (i = 0; i < SSD1306_LCDHEIGHT / 2; i += 2) { - drawRect(i, i, SSD1306_LCDWIDTH - 2 * i, - SSD1306_LCDHEIGHT - 2 * i, WHITE); - Display(); - usleep(1000); - } -} - -/* draw multiple rectangles */ -void testfillrect() { - unsigned char color = 1; - short i = 0; - for (i = 0; i < SSD1306_LCDHEIGHT / 2; i += 3) { - // alternate colors - fillRect(i, i, SSD1306_LCDWIDTH - i * 2, - SSD1306_LCDHEIGHT - i * 2, color % 2); - Display(); - usleep(1000); - color++; - } -} - -/* draw mulitple circles */ -void testdrawcircle() { - short i = 0; - for (i = 0; i < SSD1306_LCDHEIGHT; i += 2) { - drawCircle(SSD1306_LCDWIDTH / 2, SSD1306_LCDHEIGHT / 2, i, - WHITE); - Display(); - usleep(1000); - } -} - -/*draw a white circle, 10 pixel radius */ -void testdrawroundrect() { - short i = 0; - for (i = 0; i < SSD1306_LCDHEIGHT / 2 - 2; i += 2) { - drawRoundRect(i, i, SSD1306_LCDWIDTH - 2 * i, - SSD1306_LCDHEIGHT - 2 * i, SSD1306_LCDHEIGHT / 4, - WHITE); - Display(); - usleep(1000); - } -} - -/* Fill the round rectangle */ -void testfillroundrect() { - short color = WHITE, i = 0; - for (i = 0; i < SSD1306_LCDHEIGHT / 2 - 2; i += 2) { - fillRoundRect(i, i, SSD1306_LCDWIDTH - 2 * i, - SSD1306_LCDHEIGHT - 2 * i, SSD1306_LCDHEIGHT / 4, - color); - if (color == WHITE) - color = BLACK; - else - color = WHITE; - Display(); - usleep(1000); - } -} - -/* Draw triangles */ -void testdrawtriangle() { - short i = 0; - for (i = 0; i < MIN(SSD1306_LCDWIDTH, SSD1306_LCDHEIGHT) / 2; i += 5) { - drawTriangle( - SSD1306_LCDWIDTH / 2, SSD1306_LCDHEIGHT / 2 - i, - SSD1306_LCDWIDTH / 2 - i, SSD1306_LCDHEIGHT / 2 + i, - SSD1306_LCDWIDTH / 2 + i, SSD1306_LCDHEIGHT / 2 + i, WHITE); - Display(); - usleep(1000); - } -} - -/* Fill triangles */ -void testfilltriangle() { - unsigned char color = WHITE; - short i = 0; - for (i = MIN(SSD1306_LCDWIDTH, SSD1306_LCDHEIGHT) / 2; i > 0; i -= 5) { - fillTriangle( - SSD1306_LCDWIDTH / 2, SSD1306_LCDHEIGHT / 2 - i, - SSD1306_LCDWIDTH / 2 - i, SSD1306_LCDHEIGHT / 2 + i, - SSD1306_LCDWIDTH / 2 + i, SSD1306_LCDHEIGHT / 2 + i, WHITE); - if (color == WHITE) - color = BLACK; - else - color = WHITE; - Display(); - usleep(1000); - } -} - -/* Display a bunch of characters and emoticons */ -void testdrawchar() { - unsigned char i = 0; - setTextSize(1); - setTextColor(WHITE); - setCursor(0, 0); - - for (i = 0; i < 168; i++) { - if (i == '\n') continue; - oled_write(i); - if ((i > 0) && (i % 21 == 0)) println(); - } - Display(); - usleep(1000); -} - -/* Display "scroll" and scroll around */ -void testscrolltext(char *str) { - setTextSize(2); - setTextColor(WHITE); - setCursor(10, 8); - sprintf(buf, "%s", str); - print_strln(buf); - Display(); - usleep(1000); - startscrollright(0x00, 0x0F); - usleep(5000000); - stopscroll(); - usleep(1000000); - startscrollleft(0x00, 0x0F); - usleep(5000000); - stopscroll(); - usleep(1000000); - startscrolldiagright(0x00, 0x07); - usleep(5000000); - startscrolldiagleft(0x00, 0x07); - usleep(5000000); - stopscroll(); -} - -/* Display Texts */ -void display_texts() { - setTextSize(1); - setTextColor(WHITE); - setCursor(10, 0); - print_str("HELLO FELLAS!"); - println(); - printFloat_ln(3.141592, 4); // Print 4 No's after the decimal Pt. - printNumber_L_ln(-1234, DEC); - printNumber_UC_ln(170, BIN); - setTextSize(2); - setTextColor(WHITE); - print_str("0x"); - printNumber_UL_ln(0xDEADBEEF, HEX); -} - -/* Display miniature bitmap */ -void display_bitmap() { drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1); } - -/* Invert Display and Normalize it */ -void display_invert_normal() { - invertDisplay(SSD1306_INVERT_DISPLAY); - usleep(1000000); - invertDisplay(SSD1306_NORMALIZE_DISPLAY); - usleep(1000000); -} - -/* Draw a bitmap and 'animate' movement */ -void testdrawbitmap(const unsigned char *bitmap, unsigned char w, - unsigned char h) { - unsigned char icons[NUMFLAKES][3], f = 0; - - // initialize - for (f = 0; f < NUMFLAKES; f++) { - icons[f][XPOS] = rand() % SSD1306_LCDWIDTH; - icons[f][YPOS] = 0; - icons[f][DELTAY] = (rand() % 5) + 1; - - /* Looks kinna ugly to me - Un-Comment if you need it */ - // print_str("x: "); - // printNumber_UC(icons[f][XPOS], DEC); - // print_str("y: "); - // printNumber_UC(icons[f][YPOS], DEC); - // print_str("dy: "); - // printNumber_UC(icons[f][DELTAY], DEC); - } - - while (flag != 5) { - // draw each icon - for (f = 0; f < NUMFLAKES; f++) { - drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, - WHITE); - } - Display(); - usleep(200000); - - // then erase it + move it - for (f = 0; f < NUMFLAKES; f++) { - drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, - BLACK); - - // move it - icons[f][YPOS] += icons[f][DELTAY]; - - // if its gone, reinit - if (icons[f][YPOS] > SSD1306_LCDHEIGHT) { - icons[f][XPOS] = rand() % SSD1306_LCDWIDTH; - icons[f][YPOS] = 0; - icons[f][DELTAY] = (rand() % 5) + 1; - } - } - } -} - -/* Draw bitmap and animate */ -void testdrawbitmap_eg() { - setTextSize(1); - setTextColor(WHITE); - setCursor(10, 0); - testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH); -} - -/* Intro */ -void deeplyembedded_credits() { - setTextSize(1); - setTextColor(WHITE); - setCursor(1, 0); - print_strln("deeplyembedded.org"); - println(); - print_strln("Author:Vinay Divakar"); - println(); - println(); - print_strln("THANK YOU"); -} - -void testdate(int mode, int y) { - time_t rawtime; - time_t curtime; - uint8_t timebuff[TIMESIZE]; - curtime = time(NULL); - time(&rawtime); - switch (mode) { - case CENTER: - setTextSize(2); - strftime(timebuff, 80, "%H:%M", localtime(&rawtime)); - sprintf(buf, "%s", timebuff); - setCursor((127 - strlen(buf) * 11) / 2 - 4, y); - break; - case FULL: - setTextSize(1); - strftime(timebuff, 80, "%Y-%m-%d %H:%M:%S", - localtime(&rawtime)); - sprintf(buf, "%s", timebuff); - setCursor(display_offset, y); - } - print_strln(buf); -} - -char *get_ip_addr(char *ifname) { - int n; - struct ifreq ifr; - - n = socket(AF_INET, SOCK_DGRAM, 0); - // Type of address to retrieve - IPv4 IP address - ifr.ifr_addr.sa_family = AF_INET; - // Copy the interface name in the ifreq structure - strncpy(ifr.ifr_name, ifname, IFNAMSIZ - 1); - ioctl(n, SIOCGIFADDR, &ifr); - close(n); - return inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr); -} - -void testip(int mode, int y, char *ifname) { - setTextSize(1); - switch (mode) { - case CENTER: - setTextSize(1); - sprintf(buf, "%s", get_ip_addr(ifname)); - setCursor((127 - strlen(buf) * 6) / 2, y + 4); - break; - - case FULL: - setTextSize(1); - sprintf(buf, "IP:%s", get_ip_addr(ifname)); - setCursor(display_offset, y); - } - print_strln(buf); -} - -void testcputemp(int mode, int y) { - if ((fp = fopen(TEMPPATH, "r")) != NULL) { - if (fgets(content_buff, TEMPSIZE, fp)) - ; - fclose(fp); - switch (mode) { - case CENTER: - setTextSize(2); - sprintf(buf, "%.2f", - atoi(content_buff) / 100.0); - setCursor( - (127 - (strlen(buf) + 2) * 11) / 2 - 4, y); - print_str(buf); - oled_write(0); - oled_write(67); - drawCircle(getCursorX() - 16, getCursorY() + 3, - 2, WHITE); - break; - case FULL: - setTextSize(1); - sprintf(buf, "CPU TEMP:%.2f", - atoi(content_buff) / 100.0); - setCursor(display_offset, y); - print_str(buf); - oled_write(0); - oled_write(67); - drawCircle(getCursorX() - 8, getCursorY() + 1, - 1, WHITE); - } - } -} - -void testcpufreq(int mode, int y) { - if ((fp = fopen(FREQPATH, "r")) != NULL) { - if (fgets(content_buff, FREQSIZE, fp)) - ; - fclose(fp); - switch (mode) { - case CENTER: - setTextSize(2); - sprintf(buf, "%4dMHz", - atoi(content_buff) / 1000); - setCursor((127 - strlen(buf) * 11) / 2 - 4, y); - break; - case FULL: - setTextSize(1); - sprintf(buf, "CPU FREQ:%4dMHz", - atoi(content_buff) / 1000); - setCursor(display_offset, y); - } - print_strln(buf); - } -} - -void testnetspeed(int mode, int y, unsigned long int rx, unsigned long int tx) { - char tx_str[8], rx_str[8]; - - if (tx < KB_BYTES) { - sprintf(tx_str, "%4dB ", (unsigned int)tx); - } else if (tx >= MB_BYTES) { - sprintf(tx_str, "%4dM ", (unsigned int)tx / MB_BYTES); - } else { - sprintf(tx_str, "%4dK ", (unsigned int)tx / KB_BYTES); - } - - if (rx < KB_BYTES) { - sprintf(rx_str, "%4dB ", (unsigned int)rx); - } else if (rx >= MB_BYTES) { - sprintf(rx_str, "%4dM ", (unsigned int)rx / MB_BYTES); - } else { - sprintf(rx_str, "%4dK ", (unsigned int)rx / KB_BYTES); - } - - // printf("rxspeed: %s txspeed: %s\n", rx_str, tx_str); - switch (mode) { - case SPLIT: - setTextSize(2); - strcpy(buf, tx_str); - setCursor((127 - (strlen(buf) + 1) * 11) / 2, 0); - oled_write(24); - print_str(buf); - - strcpy(buf, rx_str); - setCursor((127 - (strlen(buf) + 1) * 11) / 2, 16); - oled_write(25); - print_str(buf); - break; - case MERGE: - setTextSize(1); - strcpy(buf, tx_str); - setCursor((127 - (2 * strlen(buf) - 1) * 6) / 2 - 4, - y + 4); - oled_write(24); - print_str(buf); - - strcpy(buf, rx_str); - oled_write(25); - print_str(buf); - break; - case FULL: - setTextSize(1); - setCursor(display_offset, y); - oled_write(24); - strcpy(buf, tx_str); - print_str(buf); - - oled_write(25); - strcpy(buf, rx_str); - print_str(buf); - } -} - -void testcpu(int y) { - // freq - setTextSize(1); - setCursor(display_offset, y); - if ((fp = fopen(FREQPATH, "r")) != NULL) { - if (fgets(content_buff, FREQSIZE, fp)) - ; - fclose(fp); - sprintf(buf, "CPU:%4dMHz ", atoi(content_buff) / 1000); - print_str(buf); - } - - // temp - if ((fp = fopen(TEMPPATH, "r")) != NULL) { - if (fgets(content_buff, TEMPSIZE, fp)) - ; - fclose(fp); - sprintf(buf, "%.2f", atoi(content_buff) / 100.0); - print_str(buf); - oled_write(0); - oled_write(67); - drawCircle(getCursorX() - 8, getCursorY() + 1, 1, WHITE); - } -} - -void testprintinfo() { - setTextSize(1); - setTextColor(WHITE); - setCursor(0, 0); - - // date - time_t rawtime; - time_t curtime; - uint8_t timebuff[TIMESIZE]; - curtime = time(NULL); - time(&rawtime); - strftime(timebuff, 80, "%Y-%m-%d_%w %H:%M:%S", localtime(&rawtime)); - sprintf(buf, "%s", timebuff); - print_strln(buf); - - // br-lan ip - sprintf(buf, "IP:%s", get_ip_addr("br-lan")); - print_strln(buf); - - // CPU temp - if ((fp = fopen(FREQPATH, "r")) != NULL) { - if (fgets(content_buff, FREQSIZE, fp)) - ; - fclose(fp); - sprintf(buf, "CPU freq:%d MHz ", atoi(content_buff) / 1000); - print_strln(buf); - } - - // cpu freq - if ((fp = fopen(TEMPPATH, "r")) != NULL) { - if (fgets(content_buff, TEMPSIZE, fp)) - ; - fclose(fp); - sprintf(buf, "CPU temp:%.2f C", atoi(content_buff) / 100.0); - print_strln(buf); - } -} diff --git a/luci-app-ouad/src/Example_Code/example_app.h b/luci-app-ouad/src/Example_Code/example_app.h deleted file mode 100755 index 6f7ca416e..000000000 --- a/luci-app-ouad/src/Example_Code/example_app.h +++ /dev/null @@ -1,33 +0,0 @@ -#define CENTER 0 // single item display -#define SPLIT 1 // two items -#define MERGE 2 -#define FULL 3 -#define KB_BYTES (1024) -#define MB_BYTES (1024 * 1024) -#define GB_BYTES (1024 * 1024 * 1024) - -void testdrawline(); -void testdrawrect(); -void testfillrect(); -void testdrawcircle(); -void testdrawroundrect(); -void testfillroundrect(); -void testdrawtriangle(); -void testfilltriangle(); -void testdrawchar(); -void testscrolltext(char *str); -void display_texts(); -void display_bitmap(); -void display_invert_normal(); -void testdrawbitmap(const unsigned char *bitmap, unsigned char w, - unsigned char h); -void testdrawbitmap_eg(); -void deeplyembedded_credits(); -void testprintinfo(); -void testdate(int mode, int y); -void testip(int mode, int y, char *ifname); -void testcpufreq(int mode, int y); -void testcputemp(int mode, int y); -void testnetspeed(int mode, int y, unsigned long int rx, unsigned long int tx); -void testcpu(int y); -char *get_ip_addr(char *ifname); diff --git a/luci-app-ouad/src/I2C_Library/.clang-format b/luci-app-ouad/src/I2C_Library/.clang-format deleted file mode 100755 index 5caad4065..000000000 --- a/luci-app-ouad/src/I2C_Library/.clang-format +++ /dev/null @@ -1,183 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: Google -AccessModifierOffset: -1 -AlignAfterOpenBracket: Align -AlignConsecutiveMacros: false -AlignConsecutiveAssignments: false -AlignConsecutiveBitFields: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlines: Left -AlignOperands: Align -AlignTrailingComments: true -AllowAllArgumentsOnNextLine: true -AllowAllConstructorInitializersOnNextLine: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortEnumsOnASingleLine: true -AllowShortBlocksOnASingleLine: Never -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: All -AllowShortLambdasOnASingleLine: All -AllowShortIfStatementsOnASingleLine: WithoutElse -AllowShortLoopsOnASingleLine: true -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: true -AlwaysBreakTemplateDeclarations: Yes -BinPackArguments: true -BinPackParameters: true -BraceWrapping: - AfterCaseLabel: false - AfterClass: false - AfterControlStatement: Never - AfterEnum: false - AfterFunction: false - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - AfterExternBlock: false - BeforeCatch: false - BeforeElse: false - BeforeLambdaBody: false - BeforeWhile: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Attach -BreakBeforeInheritanceComma: false -BreakInheritanceList: BeforeColon -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BreakConstructorInitializers: BeforeColon -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true -ColumnLimit: 80 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerAllOnOneLineOrOnePerLine: true -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: true -DeriveLineEnding: true -DerivePointerAlignment: true -DisableFormat: false -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: true -ForEachMacros: - - foreach - - Q_FOREACH - - BOOST_FOREACH -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '^' - Priority: 2 - SortPriority: 0 - - Regex: '^<.*\.h>' - Priority: 1 - SortPriority: 0 - - Regex: '^<.*' - Priority: 2 - SortPriority: 0 - - Regex: '.*' - Priority: 3 - SortPriority: 0 -IncludeIsMainRegex: '([-_](test|unittest))?$' -IncludeIsMainSourceRegex: '' -IndentCaseLabels: true -IndentCaseBlocks: false -IndentGotoLabels: true -IndentPPDirectives: None -IndentExternBlock: AfterExternBlock -IndentWidth: 2 -IndentWrappedFunctionNames: false -InsertTrailingCommas: None -JavaScriptQuotes: Leave -JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: false -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ObjCBinPackProtocolList: Never -ObjCBlockIndentWidth: 2 -ObjCBreakBeforeNestedBlockParam: true -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 1 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyBreakTemplateDeclaration: 10 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 200 -PointerAlignment: Left -RawStringFormats: - - Language: Cpp - Delimiters: - - cc - - CC - - cpp - - Cpp - - CPP - - 'c++' - - 'C++' - CanonicalDelimiter: '' - BasedOnStyle: google - - Language: TextProto - Delimiters: - - pb - - PB - - proto - - PROTO - EnclosingFunctions: - - EqualsProto - - EquivToProto - - PARSE_PARTIAL_TEXT_PROTO - - PARSE_TEST_PROTO - - PARSE_TEXT_PROTO - - ParseTextOrDie - - ParseTextProtoOrDie - - ParseTestProto - - ParsePartialTestProto - CanonicalDelimiter: '' - BasedOnStyle: google -ReflowComments: true -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeCpp11BracedList: false -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: ControlStatements -SpaceBeforeRangeBasedForLoopColon: true -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 2 -SpacesInAngles: false -SpacesInConditionalStatement: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpaceBeforeSquareBrackets: false -Standard: Auto -StatementMacros: - - Q_UNUSED - - QT_REQUIRE_VERSION -IndentWidth: 8 -TabWidth: 8 -UseCRLF: false -UseTab: Always -WhitespaceSensitiveMacros: - - STRINGIZE - - PP_STRINGIZE - - BOOST_PP_STRINGIZE -... - diff --git a/luci-app-ouad/src/I2C_Library/I2C.c b/luci-app-ouad/src/I2C_Library/I2C.c deleted file mode 100755 index bd11cb074..000000000 --- a/luci-app-ouad/src/I2C_Library/I2C.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * I2C.c - * - * Created on : September 19, 2017 - * Author : Vinay Divakar - * Description : This is an I2C Library for the BeagleBone that consists of the -API's to support the standard - * I2C operations. - * Website : www.deeplyembedded.org - */ - -/*Libs Includes*/ -#include -#include -#include -#include -#include -// heuristic to guess what version of i2c-dev.h we have: -// the one installed with `apt-get install libi2c-dev` -// would conflict with linux/i2c.h, while the stock -// one requires linus/i2c.h -#ifndef I2C_SMBUS_BLOCK_MAX -// If this is not defined, we have the "stock" i2c-dev.h -// so we include linux/i2c.h -#include -typedef unsigned char i2c_char_t; -#else -typedef char i2c_char_t; -#endif - -/* Header Files */ -#include "I2C.h" - -/* Exposed objects for i2c-x */ -I2C_DeviceT I2C_DEV_2; - -/**************************************************************** - * Function Name : Open_device - * Description : Opens the I2C device to use - * Returns : 0 on success, -1 on failure - * Params @i2c_dev_path: Path to the I2C device - * @fd: Variable to store the file handler - ****************************************************************/ -int Open_device(char *i2c_dev_path, int *fd) { - if ((*fd = open(i2c_dev_path, O_RDWR)) < 0) - return -1; - else - return 0; -} - -/**************************************************************** - * Function Name : Close_device - * Description : Closes the I2C device in use - * Returns : 0 on success, -1 on failure - * Params : @fd: file descriptor - ****************************************************************/ -int Close_device(int fd) { - if (close(fd) == -1) - return -1; - else - return 0; -} - -/**************************************************************** - * Function Name : Set_slave_addr - * Description : Connect to the Slave device - * Returns : 0 on success, -1 on failure - * Params @fd: File descriptor - * @slave_addr: Address of the slave device to - * talk to. - ****************************************************************/ -int Set_slave_addr(int fd, unsigned char slave_addr) { - if (ioctl(fd, I2C_SLAVE, slave_addr) < 0) - return -1; - else - return 0; -} - -/**************************************************************** - * Function Name : i2c_write - * Description : Write a byte on SDA - * Returns : No. of bytes written on success, -1 on failure - * Params @fd: File descriptor - * @data: data to write on SDA - ****************************************************************/ -int i2c_write(int fd, unsigned char data) { - int ret = 0; - ret = write(fd, &data, I2C_ONE_BYTE); - if ((ret == -1) || (ret != 1)) - return -1; - else - return (ret); -} - -/**************************************************************** - * Function Name : i2c_read - * Description : Read a byte on SDA - * Returns : No. of bytes read on success, -1 on failure - * Params @fd: File descriptor - * @read_data: Points to the variable that stores - * the read data byte - ****************************************************************/ -int i2c_read(int fd, unsigned char *read_data) { - int ret = 0; - ret = read(fd, &read_data, I2C_ONE_BYTE); - if (ret == -1) perror("I2C: Failed to read |"); - if (ret == 0) perror("I2C: End of FILE |"); - return (ret); -} - -/**************************************************************** - * Function Name : i2c_read_register - * Description : Read a single register of the slave device - * Returns : No. of bytes read on success, -1 on failure - * Params @fd: File descriptor - * @read_addr: Register address to be read - * @read_data: Points to the variable that stores - * the read data byte - ****************************************************************/ -int i2c_read_register(int fd, unsigned char read_addr, - unsigned char *read_data) { - int ret = 0; - if (i2c_write(fd, read_addr) == -1) { - perror("I2C: Failed to write |"); - return -1; - } - ret = read(fd, &read_data, I2C_ONE_BYTE); - if (ret == -1) perror("I2C: Failed to read |"); - if (ret == 0) perror("I2C: End of FILE |"); - return (ret); -} - -/**************************************************************** - * Function Name : i2c_read_registers - * Description : Read a multiple registers on the slave device - * from starting address - * Returns : No. of bytes read on success, -1 on failure - * Params @fd: File descriptor - * @num: Number of registers/bytes to read from. - * @starting_addr: Starting address to read from - * @buff_Ptr: Buffer to store the read bytes - ****************************************************************/ -int i2c_read_registers(int fd, int num, unsigned char starting_addr, - unsigned char *buff_Ptr) { - int ret = 0; - if (i2c_write(fd, starting_addr) == -1) { - perror("I2C: Failed to write |"); - return -1; - } - ret = read(fd, buff_Ptr, num); - if (ret == -1) perror("I2C: Failed to read |"); - if (ret == 0) perror("I2C: End of FILE |"); - return (ret); -} - -/**************************************************************** - * Function Name : i2c_multiple_writes - * Description : Write multiple bytes on SDA - * Returns : No. of bytes written on success, -1 on failure - * Params @fd: file descriptor - * @num: No. of bytes to write - * @Ptr_buff: Pointer to the buffer containing the - * bytes to be written on the SDA - ****************************************************************/ -int i2c_multiple_writes(int fd, int num, unsigned char *Ptr_buff) { - int ret = 0; - ret = write(fd, Ptr_buff, num); - if ((ret == -1) || (ret != num)) - return -1; - else - return (ret); -} - -/**************************************************************** - * Function Name : i2c_write_register - * Description : Write a control byte or byte to a register - * Returns : No. of bytes written on success, -1 on failure - * Params @fd: file descriptor - * @reg_addr_or_cntrl: Control byte or Register - * address to be written - * @val: Command or value to be written in the - * addressed register - ****************************************************************/ -int i2c_write_register(int fd, unsigned char reg_addr_or_cntrl, - unsigned char val) { - unsigned char buff[2]; - int ret = 0; - buff[0] = reg_addr_or_cntrl; - buff[1] = val; - ret = write(fd, buff, I2C_TWO_BYTES); - if ((ret == -1) || (ret != I2C_TWO_BYTES)) - return -1; - else - return (ret); -} - -/**************************************************************** - * Function Name : config_i2c_struct - * Description : Initialize the I2C device structure - * Returns : NONE - * Params @i2c_dev_path: Device path - * @slave_addr: Slave device address - * @i2c_dev: Pointer to the device structure - ****************************************************************/ -void config_i2c_struct(char *i2c_dev_path, unsigned char slave_addr, - I2C_DevicePtr i2c_dev) { - i2c_dev->i2c_dev_path = i2c_dev_path; - i2c_dev->fd_i2c = 0; - i2c_dev->i2c_slave_addr = slave_addr; -} - -/**************************************************************** - * Function Name : init_i2c_dev - * Description : Connect the i2c bus to the slave device - * Returns : 0 on success, -1 on failure - * Params @i2c_path: the path to the device - * @slave_addr: Slave device address - ****************************************************************/ -int init_i2c_dev(const char *i2c_path, unsigned char slave_address) { - config_i2c_struct((char *)i2c_path, slave_address, &I2C_DEV_2); - if (Open_device(I2C_DEV_2.i2c_dev_path, &I2C_DEV_2.fd_i2c) == -1) { - perror("I2C: Failed to open device |"); - return -1; - } - if (Set_slave_addr(I2C_DEV_2.fd_i2c, I2C_DEV_2.i2c_slave_addr) == -1) { - perror("I2C: Failed to connect to slave device |"); - return -1; - } - - return 0; -} - -/**************************************************************** - * Function Name : Close_I2C - * Description : Close I2C Connect - * Returns : 0 on success, -1 on failure - * Params : non - ****************************************************************/ -extern int Close_I2C() { - return Close_device(I2C_DEV_2.fd_i2c); -} diff --git a/luci-app-ouad/src/I2C_Library/I2C.h b/luci-app-ouad/src/I2C_Library/I2C.h deleted file mode 100755 index a364a2838..000000000 --- a/luci-app-ouad/src/I2C_Library/I2C.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * I2C.h - * - * Created on : Sep 4, 2017 - * Author : Vinay Divakar - * Website : www.deeplyembedded.org - */ - -#ifndef I2C_H_ -#define I2C_H_ - -#include - -/* No. of bytes per transaction */ -#define I2C_ONE_BYTE 1 -#define I2C_TWO_BYTES 2 -#define I2C_THREE_BYTES 3 - -/*Definitions specific to i2c-x */ -#define I2C_DEV0_PATH "/dev/i2c-0" -#define I2C_DEV1_PATH "/dev/i2c-1" -#define I2C_DEV2_PATH "/dev/i2c-2" - -/*I2C device configuration structure*/ -typedef struct { - char *i2c_dev_path; - int fd_i2c; - unsigned char i2c_slave_addr; -} I2C_DeviceT, *I2C_DevicePtr; - -/* Exposed Generic I2C Functions */ -extern int Open_device(char *i2c_dev_path, int *fd); -extern int Close_device(int fd); -extern int Set_slave_addr(int fd, unsigned char slave_addr); -extern int i2c_write(int fd, unsigned char data); -extern int i2c_read(int fd, unsigned char *read_data); -extern int i2c_read_register(int fd, unsigned char read_addr, - unsigned char *read_data); -extern int i2c_read_registers(int fd, int num, unsigned char starting_addr, - unsigned char *buff_Ptr); -extern void config_i2c_struct(char *i2c_dev_path, unsigned char slave_addr, - I2C_DevicePtr i2c_dev); -extern int i2c_multiple_writes(int fd, int num, unsigned char *Ptr_buff); -extern int i2c_write_register(int fd, unsigned char reg_addr_or_cntrl, - unsigned char val); - -/* Exposed I2C-x Specific Functions */ -extern int init_i2c_dev(const char *i2c_path, unsigned char slave_address); - -/* Close I2C connect */ -extern int Close_I2C(); - -#endif /* I2C_H_ */ diff --git a/luci-app-ouad/src/LICENSE b/luci-app-ouad/src/LICENSE deleted file mode 100755 index e99e91b40..000000000 --- a/luci-app-ouad/src/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/luci-app-ouad/src/Makefile b/luci-app-ouad/src/Makefile deleted file mode 100755 index fe635615c..000000000 --- a/luci-app-ouad/src/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -ifndef CC -CC = gcc -endif -ifndef LD -LD = ld -endif - -SOURCES = SSD1306_OLED_Library/SSD1306_OLED.c Example_Code/Main.c Example_Code/example_app.c I2C_Library/I2C.c -OBJS := $(SOURCES:.c=.o) -CPPFLAGS := -I SSD1306_OLED_Library -I I2C_Library -ifndef CFLAGS -CFLAGS := -O2 -endif -LDFLAGS := -lpthread -lconfig - -oled: $(OBJS) - $(CC) $^ -o $@ $(LDFLAGS) - -ssd1306: $(OBJS) - $(CC) $^ -o $@ $(LDFLAGS) --static - strip $@ - -clean: - rm -rf oled ssd1306 $(OBJS) - -compile: oled - -install: compile - mkdir -p $(DESTDIR)/usr/bin - cp oled $(DESTDIR)/usr/bin/oled diff --git a/luci-app-ouad/src/README.md b/luci-app-ouad/src/README.md deleted file mode 100755 index 080474f06..000000000 --- a/luci-app-ouad/src/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# SSD1306-OLED-display-driver-for-BeagleBone -This is a SSD1306 OLED Display Library fully compatible with the BeagleBone. - -The Library has 3 components: -1. I2C component for enabling communication between the BeagleBone and display. -2. Control component for sending I2C commands to configure and control the display. -3. Graphics component for drawing geometrical figures, bitmaps, texts, characters, emoticons and numbers. - -Author: Vinay Divakar - -References: -1. https://github.com/adafruit/Adafruit_SSD1306 -2. https://github.com/adafruit/Adafruit-GFX-Library - -Youtube demo: https://youtu.be/sDKf6zW6Pyg - -MIT license, check LICENSE file for more information - -This Library is written in C. To use it, just include the I2C and SSD1306 Libraries in your project. - -Enjoy :) diff --git a/luci-app-ouad/src/SSD1306_OLED_Library/.clang-format b/luci-app-ouad/src/SSD1306_OLED_Library/.clang-format deleted file mode 100755 index 5caad4065..000000000 --- a/luci-app-ouad/src/SSD1306_OLED_Library/.clang-format +++ /dev/null @@ -1,183 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: Google -AccessModifierOffset: -1 -AlignAfterOpenBracket: Align -AlignConsecutiveMacros: false -AlignConsecutiveAssignments: false -AlignConsecutiveBitFields: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlines: Left -AlignOperands: Align -AlignTrailingComments: true -AllowAllArgumentsOnNextLine: true -AllowAllConstructorInitializersOnNextLine: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortEnumsOnASingleLine: true -AllowShortBlocksOnASingleLine: Never -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: All -AllowShortLambdasOnASingleLine: All -AllowShortIfStatementsOnASingleLine: WithoutElse -AllowShortLoopsOnASingleLine: true -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: true -AlwaysBreakTemplateDeclarations: Yes -BinPackArguments: true -BinPackParameters: true -BraceWrapping: - AfterCaseLabel: false - AfterClass: false - AfterControlStatement: Never - AfterEnum: false - AfterFunction: false - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - AfterExternBlock: false - BeforeCatch: false - BeforeElse: false - BeforeLambdaBody: false - BeforeWhile: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Attach -BreakBeforeInheritanceComma: false -BreakInheritanceList: BeforeColon -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BreakConstructorInitializers: BeforeColon -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true -ColumnLimit: 80 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerAllOnOneLineOrOnePerLine: true -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: true -DeriveLineEnding: true -DerivePointerAlignment: true -DisableFormat: false -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: true -ForEachMacros: - - foreach - - Q_FOREACH - - BOOST_FOREACH -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '^' - Priority: 2 - SortPriority: 0 - - Regex: '^<.*\.h>' - Priority: 1 - SortPriority: 0 - - Regex: '^<.*' - Priority: 2 - SortPriority: 0 - - Regex: '.*' - Priority: 3 - SortPriority: 0 -IncludeIsMainRegex: '([-_](test|unittest))?$' -IncludeIsMainSourceRegex: '' -IndentCaseLabels: true -IndentCaseBlocks: false -IndentGotoLabels: true -IndentPPDirectives: None -IndentExternBlock: AfterExternBlock -IndentWidth: 2 -IndentWrappedFunctionNames: false -InsertTrailingCommas: None -JavaScriptQuotes: Leave -JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: false -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ObjCBinPackProtocolList: Never -ObjCBlockIndentWidth: 2 -ObjCBreakBeforeNestedBlockParam: true -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 1 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyBreakTemplateDeclaration: 10 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 200 -PointerAlignment: Left -RawStringFormats: - - Language: Cpp - Delimiters: - - cc - - CC - - cpp - - Cpp - - CPP - - 'c++' - - 'C++' - CanonicalDelimiter: '' - BasedOnStyle: google - - Language: TextProto - Delimiters: - - pb - - PB - - proto - - PROTO - EnclosingFunctions: - - EqualsProto - - EquivToProto - - PARSE_PARTIAL_TEXT_PROTO - - PARSE_TEST_PROTO - - PARSE_TEXT_PROTO - - ParseTextOrDie - - ParseTextProtoOrDie - - ParseTestProto - - ParsePartialTestProto - CanonicalDelimiter: '' - BasedOnStyle: google -ReflowComments: true -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeCpp11BracedList: false -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: ControlStatements -SpaceBeforeRangeBasedForLoopColon: true -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 2 -SpacesInAngles: false -SpacesInConditionalStatement: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpaceBeforeSquareBrackets: false -Standard: Auto -StatementMacros: - - Q_UNUSED - - QT_REQUIRE_VERSION -IndentWidth: 8 -TabWidth: 8 -UseCRLF: false -UseTab: Always -WhitespaceSensitiveMacros: - - STRINGIZE - - PP_STRINGIZE - - BOOST_PP_STRINGIZE -... - diff --git a/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.c b/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.c deleted file mode 100755 index b24480d76..000000000 --- a/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.c +++ /dev/null @@ -1,2376 +0,0 @@ -/* - * MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * SSD1306_OLED.c - * - * Created on : Sep 26, 2017 - * Author : Vinay Divakar - * Description : SSD1306 OLED Driver, Graphics API's. - * Website : www.deeplyembedded.org - */ - -/* Lib Includes */ -#include "SSD1306_OLED.h" - -#include -#include -#include -#include -#include - -#include "I2C.h" -#include "gfxfont.h" - -/* Enable or Disable DEBUG Prints */ -//#define SSD1306_DBG - -/* MACROS */ -#define SWAP(x, y) \ - { \ - short temp; \ - temp = x; \ - x = y; \ - y = temp; \ - } -#define pgm_read_byte(addr) (*(const unsigned char *)(addr)) -#define pgm_read_word(addr) (*(const unsigned long *)(addr)) -#define pgm_read_dword(addr) (*(const unsigned long *)(addr)) -#define pgm_read_pointer(addr) ((void *)pgm_read_word(addr)) - -/* static Variables */ -static unsigned char _rotation = 0, textsize = 0; -static short _width = SSD1306_LCDWIDTH; -static short _height = SSD1306_LCDHEIGHT; -static short cursor_x = 0, cursor_y = 0, textcolor = 0, textbgcolor = 0; -static bool _cp437 = false, wrap = true; - -/* static struct objects */ -static GFXfontPtr gfxFont; - -/* Externs - I2C.c */ -extern I2C_DeviceT I2C_DEV_2; - -/* Chunk Buffer */ -static unsigned char chunk[17] = {0}; - -/* Memory buffer for displaying data on LCD - This is an Apple - Fruit */ -static unsigned char screen[DISPLAY_BUFF_SIZE] = {0}; - -/* Static Functions */ -static void transfer(); -static void drawFastVLine(short x, short y, short h, short color); -static void writeFastVLine(short x, short y, short h, short color); -static void drawFastHLine(short x, short y, short w, short color); -static void writeFastHLine(short x, short y, short w, short color); -static short print(const unsigned char *buffer, short size); - -// Standard ASCII 5x7 font -static const unsigned char ssd1306_font5x7[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, // space - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, - 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, - 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, - 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, - 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, - 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, - 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, - 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, - 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, // up INDEX 24 - 0x10, 0x20, 0x7E, 0x20, 0x10, // down INDEX 25 - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, - 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x30, 0x38, - 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, - 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, - 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, - 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, - 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, - 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, - 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, - 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, - 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, - 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, - 0x22, // C - 0x7F, 0x41, 0x41, 0x41, 0x3E, // D - 0x7F, 0x49, 0x49, 0x49, 0x41, // E - 0x7F, 0x09, 0x09, 0x09, 0x01, // F - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, - 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, - 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, - 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, - 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, - 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, - 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03, 0x61, 0x59, 0x49, 0x4D, - 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, - 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, - 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, - 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, - 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, - 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, - 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, - 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, - 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, - 0x30, 0x40, 0x3C, 0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, - 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, - 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, - 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, - 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x22, 0x54, 0x54, - 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, - 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, - 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, - 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, - 0x40, 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, - 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, - 0x49, 0x49, 0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, - 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, - 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, - 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, - 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, - 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, - 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, - 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, - 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, - 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, - 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, - 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, - 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, - 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, - 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, - 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, - 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, - 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, - 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, - 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, - 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0xF4, - 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, - 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, - 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, - 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, - 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0xFC, - 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, - 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, - 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, - 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, - 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, - 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, - 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, - 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, - 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, - 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, - 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, - 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, - 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; - -/**************************************************************** - * Function Name : clearDisplay - * Description : Clear the display memory buffer - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void clearDisplay() { memset(screen, 0x00, DISPLAY_BUFF_SIZE); } - -/**************************************************************** - * Function Name : display_Init_seq - * Description : Performs SSD1306 OLED Initialization Sequence - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void display_Init_seq() { - /* Add the reset code, If needed */ - - /* Send display OFF command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DISPLAY_OFF) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display OFF Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display OFF Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display clock frequency */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_DISP_CLK) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CLK Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CLK Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display CLK command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DISPCLK_DIV) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CLK Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CLK Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display multiplex */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_MULTIPLEX) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display MULT Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display MULT Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display MULT command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_MULT_DAT) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display MULT Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display MULT Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display OFFSET */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_DISP_OFFSET) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display OFFSET Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display OFFSET Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display OFFSET command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DISP_OFFSET_VAL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display OFFSET Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display OFFSET Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display START LINE - Check this command if something weird - * happens */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_DISP_START_LINE) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display START LINE Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display START LINE Command Failed\r\n"); -#endif - exit(1); - } - - /* Enable CHARGEPUMP*/ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_CONFIG_CHARGE_PUMP) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CHARGEPUMP Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CHARGEPUMP Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display CHARGEPUMP command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_CHARGE_PUMP_EN) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CHARGEPUMP Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CHARGEPUMP Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display MEMORYMODE */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_MEM_ADDR_MODE) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display MEMORYMODE Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display MEMORYMODE Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display HORIZONTAL MEMORY ADDR MODE command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_HOR_MM) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf( - "Display HORIZONTAL MEMORY ADDR MODE Command Parameter " - "Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf( - "Display HORIZONTAL MEMORY ADDR MODE Command Parameter " - "Failed\r\n"); -#endif - exit(1); - } - - /* Set display COM */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_COMPINS) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display COM Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display COM Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display COM command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_CONFIG_COM_PINS) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display COM Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display COM Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display CONTRAST */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_CONTRAST) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CONTRAST Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CONTRAST Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display CONTRAST command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_CONTRAST_VAL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display CONTRAST Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display CONTRAST Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display PRECHARGE */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_PRECHARGE) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display PRECHARGE Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display PRECHARGE Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display PRECHARGE command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_PRECHARGE_VAL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display PRECHARGE Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display PRECHARGE Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display VCOMH */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_VCOMDETECT) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display VCOMH Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display VCOMH Command Failed\r\n"); -#endif - exit(1); - } - - /* Send display VCOMH command parameter */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_VCOMH_VAL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display VCOMH Command Parameter Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display VCOMH Command Parameter Failed\r\n"); -#endif - exit(1); - } - - /* Set display ALL-ON */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DISPLAYALLON_RESUME) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display ALL-ON Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display ALL-ON Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display to NORMAL-DISPLAY */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_NORMAL_DISPLAY) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display NORMAL-DISPLAY Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display NORMAL-DISPLAY Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display to DEACTIVATE_SCROLL */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DEACTIVATE_SCROLL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display DEACTIVATE_SCROLL Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display DEACTIVATE_SCROLL Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display to TURN-ON */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DISPLAYON) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display TURN-ON Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display TURN-ON Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : display_normal - * Description : Normal display - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void display_normal() { - /* Set display SEG_REMAP */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SEG_REMAP) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display SEG_REMAP Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display SEG_REMAP Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display COMSCANDEC */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_COMSCANDEC) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display DIR Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display DIR Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : display_rotate - * Description : 180 degree rotation - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void display_rotate() { - /* Set display SEG_REMAP1 */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SEG_REMAP1) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display SEG_REMAP Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display SEG_REMAP Command Failed\r\n"); -#endif - exit(1); - } - - /* Set display COMSCANDEC1 */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_COMSCANDEC1) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display DIR Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display DIR Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : transfer - * Description : Transfer the frame buffer onto the display - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void transfer() { - short loop_1 = 0, loop_2 = 0; - short index = 0x00; - for (loop_1 = 0; loop_1 < 1024; loop_1++) { - chunk[0] = 0x40; - for (loop_2 = 1; loop_2 < 17; loop_2++) - chunk[loop_2] = screen[index++]; - if (i2c_multiple_writes(I2C_DEV_2.fd_i2c, 17, chunk) == 17) { -#ifdef SSD1306_DBG - printf("Chunk written to RAM - Completed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Chunk written to RAM - Failed\r\n"); -#endif - exit(1); - } - - memset(chunk, 0x00, 17); - if (index == 1024) break; - } -} - -/**************************************************************** - * Function Name : Display - * Description : 1. Resets the column and page addresses. - * 2. Displays the contents of the memory buffer. - * Returns : NONE. - * Params : NONE. - * Note : Each new form can be preceded by a clearDisplay. - ****************************************************************/ -void Display() { - Init_Col_PG_addrs(SSD1306_COL_START_ADDR, SSD1306_COL_END_ADDR, - SSD1306_PG_START_ADDR, SSD1306_PG_END_ADDR); - transfer(); -} - -/**************************************************************** - * Function Name : Init_Col_PG_addrs - * Description : Sets the column and page, start and - * end addresses. - * Returns : NONE. - * Params : @col_start_addr: Column start address - * @col_end_addr: Column end address - * @pg_start_addr: Page start address - * @pg_end_addr: Page end address - ****************************************************************/ -void Init_Col_PG_addrs(unsigned char col_start_addr, unsigned char col_end_addr, - unsigned char pg_start_addr, unsigned char pg_end_addr) { - /* Send COLMN address setting command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_COL_ADDR) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display COLMN Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display COLMN Command Failed\r\n"); -#endif - exit(1); - } - - /* Set COLMN start address */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - col_start_addr) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display COLMN Start Address param Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display COLMN Start Address param Failed\r\n"); -#endif - exit(1); - } - - /* Set COLMN end address */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - col_end_addr) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display COLMN End Address param Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display COLMN End Address param Failed\r\n"); -#endif - exit(1); - } - - /* Send PAGE address setting command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_PAGEADDR) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display PAGE Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display PAGE Command Failed\r\n"); -#endif - exit(1); - } - - /* Set PAGE start address */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - pg_start_addr) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display PAGE Start Address param Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display PAGE Start Address param Failed\r\n"); -#endif - exit(1); - } - - /* Set PAGE end address */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - pg_end_addr) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display PAGE End Address param Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display PAGE End Address param Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : setRotation - * Description : Set the display rotation - * Returns : NONE. - * Params : @x: Display rotation parameter - ****************************************************************/ -void setRotation(unsigned char x) { - _rotation = x & 3; - switch (_rotation) { - case 0: - case 2: - _width = SSD1306_LCDWIDTH; - _height = SSD1306_LCDHEIGHT; - break; - case 1: - case 3: - _width = SSD1306_LCDHEIGHT; - _height = SSD1306_LCDWIDTH; - break; - } -} - -/**************************************************************** - * Function Name : startscrollright - * Description : Activate a right handed scroll for rows start - * through stop - * Returns : NONE. - * Params : @start: Start location - * @stop: Stop location - * HINT. : the display is 16 rows tall. To scroll the whole - * display, run: display.scrollright(0x00, 0x0F) - ****************************************************************/ -void startscrollright(unsigned char start, unsigned char stop) { - /* Send SCROLL horizontal right command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_RIGHT_HORIZONTAL_SCROLL) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display HORIZONTAL SCROLL RIGHT Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display HORIZONTAL SCROLL RIGHT Command Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_1 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_1 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, start) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_2 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_2 Passed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_3 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_3 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, stop) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_4 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_4 Passed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0xFF) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_6 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_6 Passed\r\n"); -#endif - exit(1); - } - /* Send SCROLL Activate command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_ACTIVATE_SCROLL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : startscrollleft - * Description : Activate a left handed scroll for rows start - * through stop - * Returns : NONE. - * Params : @start: Start location - * @stop: Stop location - * HINT. : the display is 16 rows tall. To scroll the whole - * display, run: display.scrollright(0x00, 0x0F) - ****************************************************************/ -void startscrollleft(unsigned char start, unsigned char stop) { - /* Send SCROLL horizontal left command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_LEFT_HORIZONTAL_SCROLL) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display HORIZONTAL SCROLL LEFT Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display HORIZONTAL SCROLL LEFT Command Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_1 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_1 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, start) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_2 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_2 Passed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_3 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_3 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, stop) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_4 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_4 Passed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0xFF) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("HORI_SR Param_6 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("HORI_SR Param_6 Passed\r\n"); -#endif - exit(1); - } - /* Send SCROLL Activate command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_ACTIVATE_SCROLL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : startscrolldiagright - * Description : Activate a diagonal scroll for rows start - * through stop - * Returns : NONE. - * Params : @start: Start location - * @stop: Stop location - * HINT. : the display is 16 rows tall. To scroll the whole - * display, run: display.scrollright(0x00, 0x0F) - ****************************************************************/ -void startscrolldiagright(unsigned char start, unsigned char stop) { - /* Send SCROLL diagonal right command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_VERTICAL_SCROLL_AREA) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display DIAGONAL SCROLL RIGHT Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display DIAGONAL SCROLL RIGHT Command Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_1 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_1 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_LCDHEIGHT) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_2 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_2 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Cmd Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Cmd Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_3 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_3 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, start) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_4 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_4 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, stop) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_6 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_6 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x01) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - /* Send SCROLL Activate command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_ACTIVATE_SCROLL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : startscrolldiagleft - * Description : Activate a diagonal scroll for rows start - * through stop - * Returns : NONE. - * Params : @start: Start location - * @stop: Stop location - * HINT. : the display is 16 rows tall. To scroll the whole - * display, run: display.scrollright(0x00, 0x0F) - ****************************************************************/ -void startscrolldiagleft(unsigned char start, unsigned char stop) { - /* Send SCROLL diagonal right command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_SET_VERTICAL_SCROLL_AREA) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Display DIAGONAL SCROLL RIGHT Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Display DIAGONAL SCROLL RIGHT Command Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_1 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_1 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_LCDHEIGHT) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_2 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_2 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("Cmd Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("Cmd Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_3 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_3 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, start) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_4 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_4 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x00) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, stop) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_6 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_6 Failed\r\n"); -#endif - exit(1); - } - - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, 0x01) == - I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("DIAG_SR Param_5 Failed\r\n"); -#endif - exit(1); - } - - /* Send SCROLL Activate command */ - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_ACTIVATE_SCROLL) == I2C_TWO_BYTES) { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Passed\r\n"); -#endif - } else { -#ifdef SSD1306_DBG - printf("SCROLL Activate Command Failed\r\n"); -#endif - exit(1); - } -} - -/**************************************************************** - * Function Name : stopscroll - * Description : Stop scrolling - * Returns : NONE. - * Params : NONE. - ****************************************************************/ -void stopscroll() { - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_DEACTIVATE_SCROLL) == I2C_TWO_BYTES) { - printf("De-activate SCROLL Command Passed\r\n"); - } else { - printf("De-activate SCROLL Command Passed Failed\r\n"); - exit(1); - } -} - -/**************************************************************** - * Function Name : invertDisplay - * Description : Invert or Normalize the display - * Returns : NONE. - * Params : @i: 0x00 to Normal and 0x01 for Inverting - ****************************************************************/ -void invertDisplay(unsigned char i) { - if (i) { - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_INVERTDISPLAY) == - I2C_TWO_BYTES) { - printf("Display Inverted - Passed\r\n"); - } else { - printf("Display Inverted - Failed\r\n"); - exit(1); - } - } else { - if (i2c_write_register(I2C_DEV_2.fd_i2c, SSD1306_CNTRL_CMD, - SSD1306_NORMAL_DISPLAY) == - I2C_TWO_BYTES) { - printf("Display Normal - Passed\r\n"); - } else { - printf("Display Normal - Failed\r\n"); - exit(1); - } - } -} - -/**************************************************************** - * Function Name : drawPixel - * Description : Draw a pixel - * Returns : -1 on error and 0 on success - * Params : @x: X - Co-ordinate - * @y: Y - Co-ordinate - * @color: Color - ****************************************************************/ -signed char drawPixel(short x, short y, short color) { - /* Return if co-ordinates are out of display dimension's range */ - if ((x < 0) || (x >= _width) || (y < 0) || (y >= _height)) return -1; - switch (_rotation) { - case 1: - SWAP(x, y); - x = _width - x - 1; - break; - case 2: - x = _width - x - 1; - y = _height - y - 1; - break; - case 3: - SWAP(x, y); - y = _height - y - 1; - break; - } - - /* x is the column */ - switch (color) { - case WHITE: - screen[x + (y / 8) * SSD1306_LCDWIDTH] |= - (1 << (y & 7)); - break; - case BLACK: - screen[x + (y / 8) * SSD1306_LCDWIDTH] &= - ~(1 << (y & 7)); - break; - case INVERSE: - screen[x + (y / 8) * SSD1306_LCDWIDTH] ^= - (1 << (y & 7)); - break; - } - return 0; -} - -/**************************************************************** - * Function Name : writeLine - * Description : Bresenham's algorithm - * Returns : NONE - * Params : @x0: X0 Co-ordinate - * @y0: Y0 Co-ordinate - * @x1: X1 Co-ordinate - * @y1: Y1 Co-ordinate - * @color: Pixel color - ****************************************************************/ -void writeLine(short x0, short y0, short x1, short y1, short color) { - short steep = 0, dx = 0, dy = 0, err = 0, ystep = 0; - steep = abs(y1 - y0) > abs(x1 - x0); - if (steep) { - SWAP(x0, y0); - SWAP(x1, y1); - } - - if (x0 > x1) { - SWAP(x0, x1); - SWAP(y0, y1); - } - dx = x1 - x0; - dy = abs(y1 - y0); - - err = dx / 2; - - if (y0 < y1) { - ystep = 1; - } else { - ystep = -1; - } - - for (; x0 <= x1; x0++) { - if (steep) { - drawPixel(y0, x0, color); - } else { - drawPixel(x0, y0, color); - } - err -= dy; - if (err < 0) { - y0 += ystep; - err += dx; - } - } -} - -/* (x,y) is topmost point; if unsure, calling function -should sort endpoints or call writeLine() instead */ -void drawFastVLine(short x, short y, short h, short color) { - // startWrite(); - writeLine(x, y, x, y + h - 1, color); - // endWrite(); -} - -/* (x,y) is topmost point; if unsure, calling function -should sort endpoints or call writeLine() instead */ -void writeFastVLine(short x, short y, short h, short color) { - drawFastVLine(x, y, h, color); -} - -/* (x,y) is leftmost point; if unsure, calling function - should sort endpoints or call writeLine() instead */ -void drawFastHLine(short x, short y, short w, short color) { - // startWrite(); - writeLine(x, y, x + w - 1, y, color); - // endWrite(); -} - -// (x,y) is leftmost point; if unsure, calling function -// should sort endpoints or call writeLine() instead -void writeFastHLine(short x, short y, short w, short color) { - drawFastHLine(x, y, w, color); -} - -/**************************************************************** - * Function Name : drawCircleHelper - * Description : Draw a.... - * Returns : NONE - * Params : @x: X Co-ordinate - * @y: Y Co-ordinate - * @w: Width - * @h: height - * @r: Corner radius - * @color: Pixel color - ****************************************************************/ -void drawCircleHelper(short x0, short y0, short r, unsigned char cornername, - short color) { - short f = 1 - r; - short ddF_x = 1; - short ddF_y = -2 * r; - short x = 0; - short y = r; - - while (x < y) { - if (f >= 0) { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - if (cornername & 0x4) { - drawPixel(x0 + x, y0 + y, color); - drawPixel(x0 + y, y0 + x, color); - } - if (cornername & 0x2) { - drawPixel(x0 + x, y0 - y, color); - drawPixel(x0 + y, y0 - x, color); - } - if (cornername & 0x8) { - drawPixel(x0 - y, y0 + x, color); - drawPixel(x0 - x, y0 + y, color); - } - if (cornername & 0x1) { - drawPixel(x0 - y, y0 - x, color); - drawPixel(x0 - x, y0 - y, color); - } - } -} - -/**************************************************************** - * Function Name : drawLine - * Description : Draw line between two points - * Returns : NONE - * Params : @x0: X0 Starting X Co-ordinate - * @y0: Y0 Starting Y Co-ordinate - * @x1: X1 Ending X Co-ordinate - * @y1: Y1 Ending Y Co-ordinate - * @color: Pixel color - ****************************************************************/ -void drawLine(short x0, short y0, short x1, short y1, short color) { - if (x0 == x1) { - if (y0 > y1) SWAP(y0, y1); - drawFastVLine(x0, y0, y1 - y0 + 1, color); - } else if (y0 == y1) { - if (x0 > x1) SWAP(x0, x1); - drawFastHLine(x0, y0, x1 - x0 + 1, color); - } else { - // startWrite(); - writeLine(x0, y0, x1, y1, color); - // endWrite(); - } -} - -/**************************************************************** - * Function Name : drawRect - * Description : Draw a rectangle - * Returns : NONE - * Params : @x: Corner X Co-ordinate - * @y: Corner Y Co-ordinate - * @w: Width in pixels - * @h: Height in pixels - * @color: Pixel color - ****************************************************************/ -void drawRect(short x, short y, short w, short h, short color) { - // startWrite(); - writeFastHLine(x, y, w, color); - writeFastHLine(x, y + h - 1, w, color); - writeFastVLine(x, y, h, color); - writeFastVLine(x + w - 1, y, h, color); - // endWrite(); -} - -/**************************************************************** - * Function Name : fillRect - * Description : Fill the rectangle - * Returns : NONE - * Params : @x: Starting X Co-ordinate - * @y: Starting Y Co-ordinate - * @w: Width in pixels - * @h: Height in pixels - * @color: Pixel color - ****************************************************************/ -void fillRect(short x, short y, short w, short h, short color) { - short i = 0; - // startWrite(); - for (i = x; i < x + w; i++) { - writeFastVLine(i, y, h, color); - } - // endWrite(); -} - -/**************************************************************** - * Function Name : drawCircle - * Description : Draw a circle - * Returns : NONE - * Params : @x: Center X Co-ordinate - * @y: Center Y Co-ordinate - * @r: Radius in pixels - * @color: Pixel color - ****************************************************************/ -void drawCircle(short x0, short y0, short r, short color) { - short f = 1 - r; - short ddF_x = 1; - short ddF_y = -2 * r; - short x = 0; - short y = r; - - // startWrite(); - drawPixel(x0, y0 + r, color); - drawPixel(x0, y0 - r, color); - drawPixel(x0 + r, y0, color); - drawPixel(x0 - r, y0, color); - - while (x < y) { - if (f >= 0) { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - drawPixel(x0 + x, y0 + y, color); - drawPixel(x0 - x, y0 + y, color); - drawPixel(x0 + x, y0 - y, color); - drawPixel(x0 - x, y0 - y, color); - drawPixel(x0 + y, y0 + x, color); - drawPixel(x0 - y, y0 + x, color); - drawPixel(x0 + y, y0 - x, color); - drawPixel(x0 - y, y0 - x, color); - } - // endWrite(); -} - -/**************************************************************** - * Function Name : fillCircleHelper - * Description : Used to do circles and roundrects - * Returns : NONE - * Params : @x: Center X Co-ordinate - * @y: Center Y Co-ordinate - * @r: Radius in pixels - * @cornername: Corner radius in pixels - * @color: Pixel color - ****************************************************************/ -void fillCircleHelper(short x0, short y0, short r, unsigned char cornername, - short delta, short color) { - short f = 1 - r; - short ddF_x = 1; - short ddF_y = -2 * r; - short x = 0; - short y = r; - - while (x < y) { - if (f >= 0) { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - if (cornername & 0x1) { - writeFastVLine(x0 + x, y0 - y, 2 * y + 1 + delta, - color); - writeFastVLine(x0 + y, y0 - x, 2 * x + 1 + delta, - color); - } - if (cornername & 0x2) { - writeFastVLine(x0 - x, y0 - y, 2 * y + 1 + delta, - color); - writeFastVLine(x0 - y, y0 - x, 2 * x + 1 + delta, - color); - } - } -} - -/**************************************************************** - * Function Name : fillCircle - * Description : Fill the circle - * Returns : NONE - * Params : @x0: Center X Co-ordinate - * @y0: Center Y Co-ordinate - * @r: Radius in pixels - * @color: Pixel color - ****************************************************************/ -void fillCircle(short x0, short y0, short r, short color) { - // startWrite(); - writeFastVLine(x0, y0 - r, 2 * r + 1, color); - fillCircleHelper(x0, y0, r, 3, 0, color); - // endWrite(); -} - -/**************************************************************** - * Function Name : drawTriangle - * Description : Draw a triangle - * Returns : NONE - * Params : @x0: Corner-1 X Co-ordinate - * @y0: Corner-1 Y Co-ordinate - * @x1: Corner-2 X Co-ordinate - * @y1: Corner-2 Y Co-ordinate - * @x2: Corner-3 X Co-ordinate - * @y2: Corner-3 Y Co-ordinate - * @color: Pixel color - ****************************************************************/ -void drawTriangle(short x0, short y0, short x1, short y1, short x2, short y2, - short color) { - drawLine(x0, y0, x1, y1, color); - drawLine(x1, y1, x2, y2, color); - drawLine(x2, y2, x0, y0, color); -} - -/**************************************************************** - * Function Name : fillTriangle - * Description : Fill a triangle - * Returns : NONE - * Params : @x0: Corner-1 X Co-ordinate - * @y0: Corner-1 Y Co-ordinate - * @x1: Corner-2 X Co-ordinate - * @y1: Corner-2 Y Co-ordinate - * @x2: Corner-3 X Co-ordinate - * @y2: Corner-3 Y Co-ordinate - * @color: Pixel color - ****************************************************************/ -void fillTriangle(short x0, short y0, short x1, short y1, short x2, short y2, - short color) { - short a, b, y, last, dx01, dy01, dx02, dy02, dx12, dy12; - int sa, sb; - - // Sort coordinates by Y order (y2 >= y1 >= y0) - if (y0 > y1) { - SWAP(y0, y1); - SWAP(x0, x1); - } - if (y1 > y2) { - SWAP(y2, y1); - SWAP(x2, x1); - } - if (y0 > y1) { - SWAP(y0, y1); - SWAP(x0, x1); - } - - // startWrite(); - if (y0 == - y2) { // Handle awkward all-on-same-line case as its own thing - a = b = x0; - if (x1 < a) - a = x1; - else if (x1 > b) - b = x1; - if (x2 < a) - a = x2; - else if (x2 > b) - b = x2; - writeFastHLine(a, y0, b - a + 1, color); - // endWrite(); - return; - } - - dx01 = x1 - x0; - dy01 = y1 - y0; - dx02 = x2 - x0; - dy02 = y2 - y0; - dx12 = x2 - x1; - dy12 = y2 - y1; - sa = 0; - sb = 0; - - // For upper part of triangle, find scanline crossings for segments - // 0-1 and 0-2. If y1=y2 (flat-bottomed triangle), the scanline y1 - // is included here (and second loop will be skipped, avoiding a /0 - // error there), otherwise scanline y1 is skipped here and handled - // in the second loop...which also avoids a /0 error here if y0=y1 - // (flat-topped triangle). - if (y1 == y2) - last = y1; // Include y1 scanline - else - last = y1 - 1; // Skip it - - for (y = y0; y <= last; y++) { - a = x0 + sa / dy01; - b = x0 + sb / dy02; - sa += dx01; - sb += dx02; - /* longhand: - a = x0 + (x1 - x0) * (y - y0) / (y1 - y0); - b = x0 + (x2 - x0) * (y - y0) / (y2 - y0); - */ - if (a > b) SWAP(a, b); - writeFastHLine(a, y, b - a + 1, color); - } - - // For lower part of triangle, find scanline crossings for segments - // 0-2 and 1-2. This loop is skipped if y1=y2. - sa = dx12 * (y - y1); - sb = dx02 * (y - y0); - for (; y <= y2; y++) { - a = x1 + sa / dy12; - b = x0 + sb / dy02; - sa += dx12; - sb += dx02; - /* longhand: - a = x1 + (x2 - x1) * (y - y1) / (y2 - y1); - b = x0 + (x2 - x0) * (y - y0) / (y2 - y0); - */ - if (a > b) SWAP(a, b); - writeFastHLine(a, y, b - a + 1, color); - } - // endWrite(); -} - -/**************************************************************** - * Function Name : drawRoundRect - * Description : Draw a rounded rectangle - * Returns : NONE - * Params : @x: X Co-ordinate - * @y: Y Co-ordinate - * @w: Width - * @h: height - * @r: Corner radius - * @color: Pixel color - ****************************************************************/ -void drawRoundRect(short x, short y, short w, short h, short r, short color) { - // smarter version - // startWrite(); - writeFastHLine(x + r, y, w - 2 * r, color); // Top - writeFastHLine(x + r, y + h - 1, w - 2 * r, color); // Bottom - writeFastVLine(x, y + r, h - 2 * r, color); // Left - writeFastVLine(x + w - 1, y + r, h - 2 * r, color); // Right - // draw four corners - drawCircleHelper(x + r, y + r, r, 1, color); - drawCircleHelper(x + w - r - 1, y + r, r, 2, color); - drawCircleHelper(x + w - r - 1, y + h - r - 1, r, 4, color); - drawCircleHelper(x + r, y + h - r - 1, r, 8, color); - // endWrite(); -} - -/**************************************************************** - * Function Name : fillRoundRect - * Description : Fill a rounded rectangle - * Returns : NONE - * Params : @x: X Co-ordinate - * @y: Y Co-ordinate - * @w: Width - * @h: height - * @r: Corner radius - * @color: Pixel color - ****************************************************************/ -void fillRoundRect(short x, short y, short w, short h, short r, short color) { - // smarter version - // startWrite(); - fillRect(x + r, y, w - 2 * r, h, color); - - // draw four corners - fillCircleHelper(x + w - r - 1, y + r, r, 1, h - 2 * r - 1, color); - fillCircleHelper(x + r, y + r, r, 2, h - 2 * r - 1, color); - // endWrite(); -} - -/*---------------------------------------------------------------------------- - * BITMAP API's - ----------------------------------------------------------------------------*/ - -/**************************************************************** - * Function Name : drawBitmap - * Description : Draw a bitmap - * Returns : NONE - * Params : @x: X Co-ordinate - * @y: Y Co-ordinate - * @bitmap: bitmap to display - * @w: Width - * @h: height - * @color: Pixel color - ****************************************************************/ -void drawBitmap(short x, short y, const unsigned char bitmap[], short w, - short h, short color) { - short byteWidth = 0, j = 0, i = 0; - unsigned char byte = 0; - byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte - - for (j = 0; j < h; j++, y++) { - for (i = 0; i < w; i++) { - if (i & 7) - byte <<= 1; - else - byte = pgm_read_byte( - &bitmap[j * byteWidth + i / 8]); - if (byte & 0x80) drawPixel(x + i, y, color); - } - } -} - -/*---------------------------------------------------------------------------- - * TEXT AND CHARACTER HANDLING API's - ----------------------------------------------------------------------------*/ - -/**************************************************************** - * Function Name : setCursor - * Description : Sets the cursor on f(x,y) - * Returns : NONE. - * Params : @x - X-Cordinate - * @y - Y-Cordinate - ****************************************************************/ -void setCursor(short x, short y) { - cursor_x = x; - cursor_y = y; -} - -/**************************************************************** - * Function Name : getCursorX - * Description : Get cursor at X- Cordinate - * Returns : x cordinate value. - ****************************************************************/ -short getCursorX() { return cursor_x; } - -/**************************************************************** - * Function Name : getCursorY - * Description : Get cursor at Y- Cordinate - * Returns : y cordinate value. - ****************************************************************/ -short getCursorY() { return cursor_y; } - -/**************************************************************** - * Function Name : setTextSize - * Description : Set text size - * Returns : @s - font size - ****************************************************************/ -void setTextSize(unsigned char s) { textsize = (s > 0) ? s : 1; } - -/**************************************************************** - * Function Name : setTextColor - * Description : Set text color - * Returns : @c - Color - ****************************************************************/ -void setTextColor(short c) { - // For 'transparent' background, we'll set the bg - // to the same as fg instead of using a flag - textcolor = textbgcolor = c; -} - -/**************************************************************** - * Function Name : setTextWrap - * Description : Wraps the text - * Returns : @w - enable or disbale wrap - ****************************************************************/ -void setTextWrap(bool w) { wrap = w; } - -/**************************************************************** - * Function Name : getRotation - * Description : Get the rotation value - * Returns : NONE. - ****************************************************************/ -unsigned char getRotation() { return _rotation; } - -/**************************************************************** - * Function Name : drawBitmap - * Description : Draw a character - * Returns : NONE - * Params : @x: X Co-ordinate - * @y: Y Co-ordinate - * @c: Character - * @size: Scaling factor - * @bg: Background color - * @color: Pixel color - ****************************************************************/ -void drawChar(short x, short y, unsigned char c, short color, short bg, - unsigned char size) { - unsigned char line = 0, *bitmap = NULL, w = 0, h = 0, xx = 0, yy = 0, - bits = 0, bit = 0; - char i = 0, j = 0, xo = 0, yo = 0; - short bo = 0, xo16 = 0, yo16 = 0; - GFXglyphPtr glyph; - if (!gfxFont) { - // 'Classic' built-in font - if ((x >= _width) || (y >= _height) || - ((x + 6 * size - 1) < 0) || ((y + 8 * size - 1) < 0)) - return; - - // Handle 'classic' charset behavior - if (!_cp437 && (c >= 176)) c++; - - // Char bitmap = 5 columns - for (i = 0; i < 5; i++) { - line = pgm_read_byte(&ssd1306_font5x7[c * 5 + i]); - for (j = 0; j < 8; j++, line >>= 1) { - if (line & 1) { - if (size == 1) - drawPixel(x + i, y + j, color); - else - fillRect(x + i * size, - y + j * size, size, - size, color); - } else if (bg != color) { - if (size == 1) - drawPixel(x + i, y + j, bg); - else - fillRect(x + i * size, - y + j * size, size, - size, bg); - } - } - } - - // If opaque, draw vertical line for last column - if (bg != color) { - if (size == 1) - writeFastVLine(x + 5, y, 8, bg); - else - fillRect(x + 5 * size, y, size, 8 * size, bg); - } - - } - // Custom font - else { - // Character is assumed previously filtered by write() to - // eliminate newlines, returns, non-printable characters, etc. - // Calling drawChar() directly with 'bad' characters of font may - // cause mayhem! - - c -= (unsigned char)pgm_read_byte(&gfxFont->first); - glyph = &(((GFXglyphT *)pgm_read_pointer(&gfxFont->glyph))[c]); - bitmap = (unsigned char *)pgm_read_pointer(&gfxFont->bitmap); - bo = pgm_read_word(&glyph->bitmapOffset); - w = pgm_read_byte(&glyph->width); - h = pgm_read_byte(&glyph->height); - xo = pgm_read_byte(&glyph->xOffset); - yo = pgm_read_byte(&glyph->yOffset); - - if (size > 1) { - xo16 = xo; - yo16 = yo; - } - - // Todo: Add character clipping here - - // NOTE: THERE IS NO 'BACKGROUND' COLOR OPTION ON CUSTOM FONTS. - // THIS IS ON PURPOSE AND BY DESIGN. The background color - // feature has typically been used with the 'classic' font to - // overwrite old screen contents with new data. This ONLY works - // because the characters are a uniform size; it's not a - // sensible thing to do with proportionally-spaced fonts with - // glyphs of varying sizes (and that may overlap). To replace - // previously-drawn text when using a custom font, use the - // getTextBounds() function to determine the smallest rectangle - // encompassing a string, erase the area with fillRect(), then - // draw new text. This WILL unfortunately 'blink' the text, but - // is unavoidable. Drawing 'background' pixels will NOT fix - // this, only creates a new set of problems. Have an idea to - // work around this (a canvas object type for MCUs that can - // afford the RAM and displays supporting setAddrWindow() and - // pushColors()), but haven't implemented this yet. - for (yy = 0; yy < h; yy++) { - for (xx = 0; xx < w; xx++) { - if (!(bit++ & 7)) { - bits = pgm_read_byte(&bitmap[bo++]); - } - if (bits & 0x80) { - if (size == 1) { - drawPixel(x + xo + xx, - y + yo + yy, color); - } else { - fillRect(x + (xo16 + xx) * size, - y + (yo16 + yy) * size, - size, size, color); - } - } - bits <<= 1; - } - } - } // End classic vs custom font -} - -/**************************************************************** - * Function Name : write - * Description : Base function for text and character handling - * Returns : 1 - * Params : @c: Character - ****************************************************************/ -short oled_write(unsigned char c) { - unsigned char first = 0, w = 0, h = 0; - short xo = 0; - GFXglyphPtr glyph; - if (!gfxFont) { - // 'Classic' built-in font - if (c == '\n') { - // Newline? - cursor_x = 0; // Reset x to zero, - cursor_y += textsize * 8; // advance y one line - } else if (c != '\r') { - // Ignore carriage returns - if (wrap && ((cursor_x + textsize * 6) > _width)) { - // Off right? - cursor_x = 0; // Reset x to zero, - cursor_y += textsize * 8; // advance y one line - } - drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, - textsize); - cursor_x += textsize * 6; // Advance x one char - } - - } else { - // Custom font - if (c == '\n') { - cursor_x = 0; - cursor_y += - (short)textsize * - (unsigned char)pgm_read_byte(&gfxFont->yAdvance); - } else if (c != '\r') { - first = pgm_read_byte(&gfxFont->first); - if ((c >= first) && (c <= (unsigned char)pgm_read_byte( - &gfxFont->last))) { - glyph = &(((GFXglyphT *)pgm_read_pointer( - &gfxFont->glyph))[c - first]); - w = pgm_read_byte(&glyph->width); - h = pgm_read_byte(&glyph->height); - if ((w > 0) && (h > 0)) { - // Is there an associated bitmap? - xo = (char)pgm_read_byte( - &glyph->xOffset); // sic - if (wrap && - ((cursor_x + textsize * (xo + w)) > - _width)) { - cursor_x = 0; - cursor_y += - (short)textsize * - (unsigned char) - pgm_read_byte( - &gfxFont->yAdvance); - } - drawChar(cursor_x, cursor_y, c, - textcolor, textbgcolor, - textsize); - } - cursor_x += (unsigned char)pgm_read_byte( - &glyph->xAdvance) * - (short)textsize; - } - } - } - return 1; -} - -/**************************************************************** - * Function Name : print - * Description : Base function for printing strings - * Returns : No. of characters printed - * Params : @buffer: Ptr to buffer containing the string - * @size: Length of the string. - ****************************************************************/ -short print(const unsigned char *buffer, short size) { - short n = 0; - while (size--) { - if (oled_write(*buffer++)) - n++; - else - break; - } - return (n); -} - -/**************************************************************** - * Function Name : print_str - * Description : Print strings - * Returns : No. of characters printed - * Params : @strPtr: Ptr to buffer containing the string - ****************************************************************/ -short print_str(const unsigned char *strPtr) { - return print(strPtr, strlen(strPtr)); -} - -/**************************************************************** - * Function Name : println - * Description : Move to next line - * Returns : No. of characters printed - * Params : NONE. - ****************************************************************/ -short println() { return print_str("\r\n"); } - -/**************************************************************** - * Function Name : print_strln - * Description : Print strings and move to next line - * Returns : No. of characters printed - * Params : @strPtr: Ptr to buffer containing the string - ****************************************************************/ -short print_strln(const unsigned char *strPtr) { - short n = 0; - n = print(strPtr, strlen(strPtr)); - n += print_str("\r\n"); - return (n); -} - -/*---------------------------------------------------------------------------- - * NUMBERS HANDLING API's - ----------------------------------------------------------------------------*/ - -/**************************************************************** - * Function Name : printNumber - * Description : Base function to print unsigned numbers - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber(unsigned long n, unsigned char base) { - unsigned long m = 0; - char c = 0; - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - do { - m = n; - n /= base; - c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while (n); - // return oled_write((unsigned char)str); - return print_str(str); -} - -/**************************************************************** - * Function Name : printNumber_UL - * Description : Print unsigned long data types - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UL(unsigned long n, int base) { - if (base == 0) - return oled_write(n); - else - return printNumber(n, base); -} - -/**************************************************************** - * Function Name : printNumber_UL_ln - * Description : Print unsigned long & advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UL_ln(unsigned long num, int base) { - short n = 0; - n = printNumber(num, base); - n += println(); - return (n); -} - -/**************************************************************** - * Function Name : printNumber_UI - * Description : Print unsigned int data types - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UI(unsigned int n, int base) { - return printNumber((unsigned long)n, base); -} - -/**************************************************************** - * Function Name : printNumber_UI_ln - * Description : Print unsigned int & advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UI_ln(unsigned int n, int base) { - short a = 0; - a = printNumber((unsigned long)n, base); - a += println(); - return (a); -} - -/**************************************************************** - * Function Name : printNumber_UC - * Description : Print unsigned char data types - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UC(unsigned char b, int base) { - return printNumber((unsigned long)b, base); -} - -/**************************************************************** - * Function Name : printNumber_UC_ln - * Description : Print unsigned char & advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_UC_ln(unsigned char b, int base) { - short n = 0; - n = printNumber((unsigned long)b, base); - n += println(); - return (n); -} - -/**************************************************************** - * Function Name : printNumber_L - * Description : Print Long data types - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_L(long n, int base) { - int t = 0; - if (base == 0) { - return oled_write(n); - } else if (base == 10) { - if (n < 0) { - t = oled_write('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -/**************************************************************** - * Function Name : printNumber_UC_ln - * Description : Print long & advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_L_ln(long num, int base) { - short n = 0; - n = printNumber_L(num, base); - n += println(); - return n; -} - -/**************************************************************** - * Function Name : printNumber_I - * Description : Print int data types - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_I(int n, int base) { return printNumber_L((long)n, base); } - -/**************************************************************** - * Function Name : printNumber_I_ln - * Description : Print int & advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @base: Base e.g. HEX, BIN... - ****************************************************************/ -short printNumber_I_ln(int n, int base) { - short a = 0; - a = printNumber_L((long)n, base); - a += println(); - return a; -} - -/**************************************************************** - * Function Name : printFloat - * Description : Print floating Pt. No's. - * Returns : No. of characters printed - * Params : @n: Number - * @digits: Resolution - ****************************************************************/ -short printFloat(double number, unsigned char digits) { - unsigned char i = 0; - short n = 0; - unsigned long int_part = 0; - double remainder = 0.0; - int toPrint = 0; - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - - if (isnan(number)) return print_str("nan"); - if (isinf(number)) return print_str("inf"); - if (number > 4294967040.0) - return print_str("ovf"); // constant determined empirically - if (number < -4294967040.0) - return print_str("ovf"); // constant determined empirically - - // Handle negative numbers - if (number < 0.0) { - n += oled_write('-'); - number = -number; - } - - for (i = 0; i < digits; ++i) rounding /= 10.0; - - number += rounding; - - // Extract the integer part of the number and print it - int_part = (unsigned long)number; - remainder = number - (double)int_part; - n += printNumber_UL(int_part, DEC); - - // Print the decimal point, but only if there are digits beyond - if (digits > 0) { - n += print_str("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) { - remainder *= 10.0; - toPrint = (int)remainder; - n += printNumber_I(toPrint, DEC); - remainder -= toPrint; - } - return n; -} - -/**************************************************************** - * Function Name : printFloat_ln - * Description : Print floating Pt. No and advance to next line - * Returns : No. of characters printed - * Params : @n: Number - * @digits: Resolution - ****************************************************************/ -short printFloat_ln(double num, int digits) { - short n = 0; - n = printFloat(num, digits); - n += println(); - return n; -} diff --git a/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.h b/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.h deleted file mode 100755 index d01ee8e50..000000000 --- a/luci-app-ouad/src/SSD1306_OLED_Library/SSD1306_OLED.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - * MIT License - -Copyright (c) 2017 DeeplyEmbedded - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * SSD1306_OLED.h - * - * Created on : Sep 21, 2017 - * Author : Vinay Divakar - * Website : www.deeplyembedded.org - */ - -#ifndef SSD1306_OLED_H_ -#define SSD1306_OLED_H_ - -/* Lib's */ -#include - -/* Find Min and Max - MACROS */ -#define MIN(a, b) (((a) < (b)) ? (a) : (b)) -#define MAX(a, b) (((a) > (b)) ? (a) : (b)) - -/* I2C Address of SSD1306 */ -#define SSD1306_OLED_ADDR 0x3C -#define DISPLAY_BUFF_SIZE (SSD1306_LCDWIDTH * SSD1306_LCDHEIGHT / 8) - -/* COLOR MACROS */ -#define WHITE 1 -#define BLACK 0 -#define INVERSE 2 - -/* Number output format */ -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 -#define DEFAULT 0 - -/*D/C# bit is '0' indicating that following - * byte is a command. '1' is for data - */ -#define SSD1306_CNTRL_CMD 0x00 -#define SSD1306_CNTRL_DATA 0x40 - -/*-----------------------Enable the WxL of the Display - * ---------------------------*/ -#define SSD1306_128_64 -//#define SSD1306_128_32 -//#define SSD1306_96_16 -/*--------------------------------------------------------------------------------*/ - -/* LCD HxW i.e. 64x128 || WxL i.e. 128x64 */ -#if defined SSD1306_128_64 -#define SSD1306_LCDWIDTH 128 -#define SSD1306_LCDHEIGHT 64 -#endif -#if defined SSD1306_128_32 -#define SSD1306_LCDWIDTH 128 -#define SSD1306_LCDHEIGHT 32 -#endif -#if defined SSD1306_96_16 -#define SSD1306_LCDWIDTH 96 -#define SSD1306_LCDHEIGHT 16 -#endif - -/* SSD1306 Commands */ -#define SSD1306_DISPLAY_OFF 0xAE -#define SSD1306_SET_DISP_CLK 0xD5 -#define SSD1306_SET_MULTIPLEX 0xA8 -#define SSD1306_SET_DISP_OFFSET 0xD3 -#define SSD1306_SET_DISP_START_LINE 0x40 -#define SSD1306_CONFIG_CHARGE_PUMP 0x8D -#define SSD1306_SET_MEM_ADDR_MODE 0x20 -#define SSD1306_SEG_REMAP (0xA0 | 0x01) -#define SSD1306_SEG_REMAP1 0xA0 -#define SSD1306_SET_COMSCANDEC 0xC8 -#define SSD1306_SET_COMSCANDEC1 0xC0 -#define SSD1306_SET_COMPINS 0xDA -#define SSD1306_SET_CONTRAST 0x81 -#define SSD1306_SET_PRECHARGE 0xD9 -#define SSD1306_SET_VCOMDETECT 0xDB -#define SSD1306_DISPLAYALLON_RESUME 0xA4 -#define SSD1306_NORMAL_DISPLAY 0xA6 -#define SSD1306_DISPLAYON 0xAF -#define SSD1306_SET_COL_ADDR 0x21 -#define SSD1306_PAGEADDR 0x22 -#define SSD1306_INVERT_DISPLAY 0x01 -#define SSD1306_NORMALIZE_DISPLAY 0x00 - -/* SDD1306 Scroll Commands */ -#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 -#define SSD1306_ACTIVATE_SCROLL 0x2F -#define SSD1306_DEACTIVATE_SCROLL 0x2E -#define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26 -#define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27 -#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29 -#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A -#define SSD1306_INVERTDISPLAY 0xA7 - -/* SSD1306 Configuration Commands */ -#define SSD1306_DISPCLK_DIV 0x80 -#if defined SSD1306_128_64 -#define SSD1306_MULT_64 0x3F -#endif -#if defined SSD1306_128_32 -#define SSD1306_MULT_64 0x1F -#endif -#define SSD1306_MULT_64 0x1F -#define SSD1306_DISP_OFFSET_VAL 0x00 -#define SSD1306_COL_START_ADDR 0x00 // Reset to = 0 -#define SSD1306_COL_END_ADDR (SSD1306_LCDWIDTH - 1) // Reset to = 127 -#define SSD1306_PG_START_ADDR 0x00 -#define SSD1306_PG_END_ADDR 7 -#define SSD1306_CHARGE_PUMP_EN 0x14 -#if defined SSD1306_128_64 -#define SSD1306_CONFIG_COM_PINS 0x12 -#endif -#if defined SSD1306_128_32 -#define SSD1306_CONFIG_COM_PINS 0x02 -#endif -#define SSD1306_CONTRAST_VAL 0xCF // 207 -#define SSD1306_PRECHARGE_VAL 0xF1 -#define SSD1306_VCOMH_VAL 0x40 -#define SSD1306_MULT_DAT (SSD1306_LCDHEIGHT - 1) -#define SSD1306_HOR_MM 0x00 - -/*SSD1306 Display API's */ -extern void clearDisplay(); -extern void display_Init_seq(); -extern void Display(); -extern void Init_Col_PG_addrs(unsigned char col_start_addr, - unsigned char col_end_addr, - unsigned char pg_start_addr, - unsigned char pg_end_addr); -extern void setRotation(unsigned char x); -extern void startscrollright(unsigned char start, unsigned char stop); -extern void startscrollleft(unsigned char start, unsigned char stop); -extern void startscrolldiagright(unsigned char start, unsigned char stop); -extern void startscrolldiagleft(unsigned char start, unsigned char stop); -extern void stopscroll(); -extern void setCursor(short x, short y); -extern short getCursorX(); -extern short getCursorY(); -extern unsigned char getRotation(); -extern void invertDisplay(unsigned char i); -extern void display_rotate(); -extern void display_normal(); - -/*SSD1306 Graphics Handling API's */ -extern signed char drawPixel(short x, short y, short color); -extern void writeLine(short x0, short y0, short x1, short y1, short color); -extern void drawCircleHelper(short x0, short y0, short r, - unsigned char cornername, short color); -extern void drawLine(short x0, short y0, short x1, short y1, short color); -extern void drawRect(short x, short y, short w, short h, short color); -extern void fillRect(short x, short y, short w, short h, short color); -extern void drawCircle(short x0, short y0, short r, short color); -extern void fillCircleHelper(short x0, short y0, short r, - unsigned char cornername, short delta, - short color); -extern void fillCircle(short x0, short y0, short r, short color); -extern void drawTriangle(short x0, short y0, short x1, short y1, short x2, - short y2, short color); -extern void fillTriangle(short x0, short y0, short x1, short y1, short x2, - short y2, short color); -extern void drawRoundRect(short x, short y, short w, short h, short r, - short color); -extern void fillRoundRect(short x, short y, short w, short h, short r, - short color); -extern void drawBitmap(short x, short y, const unsigned char bitmap[], short w, - short h, short color); -extern short oled_write(unsigned char c); - -/*SSD1306 Text and Character Handling API's */ -extern void setTextSize(unsigned char s); -extern void setTextColor(short c); -extern void setTextWrap(bool w); -extern void drawChar(short x, short y, unsigned char c, short color, short bg, - unsigned char size); -extern short print_str(const unsigned char *strPtr); -extern short println(); -extern short print_strln(const unsigned char *strPtr); - -/*SSD1306 Number Handling API's */ -extern short printNumber(unsigned long n, unsigned char base); -extern short printNumber_UL(unsigned long n, int base); -extern short printNumber_UL_ln(unsigned long num, int base); -extern short printNumber_UI(unsigned int n, int base); -extern short printNumber_UI_ln(unsigned int n, int base); -extern short printNumber_UC(unsigned char b, int base); -extern short printNumber_UC_ln(unsigned char b, int base); -extern short printNumber_L(long n, int base); -extern short printNumber_L_ln(long num, int base); -extern short printNumber_I(int n, int base); -extern short printNumber_I_ln(int n, int base); -extern short printFloat(double number, unsigned char digits); -extern short printFloat_ln(double num, int digits); -#endif /* SSD1306_OLED_H_ */ diff --git a/luci-app-ouad/src/SSD1306_OLED_Library/gfxfont.h b/luci-app-ouad/src/SSD1306_OLED_Library/gfxfont.h deleted file mode 100755 index 8180a7393..000000000 --- a/luci-app-ouad/src/SSD1306_OLED_Library/gfxfont.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _GFXFONT_H_ -#define _GFXFONT_H_ - -typedef struct { // Data stored PER GLYPH - unsigned short bitmapOffset; // Pointer into GFXfont->bitmap - unsigned char width, height; // Bitmap dimensions in pixels - unsigned char xAdvance; // Distance to advance cursor (x axis) - char xOffset, yOffset; // Dist from cursor pos to UL corner -} GFXglyphT, *GFXglyphPtr; - -typedef struct { // Data stored for FONT AS A WHOLE: - unsigned char *bitmap; // Glyph bitmaps, concatenated - GFXglyphPtr glyph; // Glyph array - unsigned char first, last; // ASCII extents - unsigned char yAdvance; // Newline distance (y axis) -} GFXfontT, *GFXfontPtr; - -#endif // _GFXFONT_H_ diff --git a/luci-app-packet-capture/Makefile b/luci-app-packet-capture/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js b/luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/po/fr/packet-capture.po b/luci-app-packet-capture/po/fr/packet-capture.po old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/po/templates/packet-capture.pot b/luci-app-packet-capture/po/templates/packet-capture.pot old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/po/zh_Hans/packet-capture.po b/luci-app-packet-capture/po/zh_Hans/packet-capture.po old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/root/etc/config/packet_capture b/luci-app-packet-capture/root/etc/config/packet_capture old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json b/luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json old mode 100755 new mode 100644 diff --git a/luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json b/luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/Makefile b/luci-app-shadowsocks-libev/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/htdocs/luci-static/resources/shadowsocks-libev.js b/luci-app-shadowsocks-libev/htdocs/luci-static/resources/shadowsocks-libev.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js b/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/instances.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js b/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/rules.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/servers.js b/luci-app-shadowsocks-libev/htdocs/luci-static/resources/view/shadowsocks-libev/servers.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua b/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/bg/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ca/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/cs/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/de/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/el/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/en/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/fr/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/he/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/hi/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/hu/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/it/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ja/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ko/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ms/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/nb_NO/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/pl/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/pt/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/pt_BR/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ro/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/ru/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/sk/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/sv/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot b/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/tr/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/uk/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/vi/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/po/zh-tw/shadowsocks-libev.po b/luci-app-shadowsocks-libev/po/zh-tw/shadowsocks-libev.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev b/luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/root/usr/share/luci/menu.d/luci-app-shadowsocks-libev.json b/luci-app-shadowsocks-libev/root/usr/share/luci/menu.d/luci-app-shadowsocks-libev.json old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-libev/root/usr/share/rpcd/acl.d/luci-app-shadowsocks-libev.json b/luci-app-shadowsocks-libev/root/usr/share/rpcd/acl.d/luci-app-shadowsocks-libev.json old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/Makefile b/luci-app-shadowsocks-rust/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js b/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js b/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js b/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js b/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua b/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/bg/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/bg/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ca/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ca/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/cs/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/cs/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/de/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/de/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/el/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/el/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/en/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/en/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/es/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/es/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/fr/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/fr/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/he/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/he/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/hi/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/hi/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/hu/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/hu/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/it/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/it/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ja/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ja/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ko/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ko/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ms/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ms/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/nb_NO/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/nb_NO/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/pl/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/pl/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/pt/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/pt/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/pt_BR/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/pt_BR/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ro/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ro/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/ru/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/ru/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/sk/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/sk/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/sv/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/sv/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/templates/shadowsocks-rust.pot b/luci-app-shadowsocks-rust/po/templates/shadowsocks-rust.pot old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/tr/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/tr/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/uk/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/uk/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/vi/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/vi/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/zh-cn/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/zh-cn/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/po/zh-tw/shadowsocks-rust.po b/luci-app-shadowsocks-rust/po/zh-tw/shadowsocks-rust.po old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/root/etc/uci-defaults/40_luci-shadowsocks-rust b/luci-app-shadowsocks-rust/root/etc/uci-defaults/40_luci-shadowsocks-rust old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json b/luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json old mode 100755 new mode 100644 diff --git a/luci-app-shadowsocks-rust/root/usr/share/rpcd/acl.d/luci-app-shadowsocks-rust.json b/luci-app-shadowsocks-rust/root/usr/share/rpcd/acl.d/luci-app-shadowsocks-rust.json old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/Makefile b/luci-app-shutdown/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/htdocs/luci-static/resources/view/system/shutdown.js b/luci-app-shutdown/htdocs/luci-static/resources/view/system/shutdown.js old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/de/shutdown.po b/luci-app-shutdown/po/de/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/fr/shutdown.po b/luci-app-shutdown/po/fr/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/it/shutdown.po b/luci-app-shutdown/po/it/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/oc/shutdown.po b/luci-app-shutdown/po/oc/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/pl/shutdown.po b/luci-app-shutdown/po/pl/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/ru/shutdown.po b/luci-app-shutdown/po/ru/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/templates/shutdown.pot b/luci-app-shutdown/po/templates/shutdown.pot old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/po/zh_Hans/shutdown.po b/luci-app-shutdown/po/zh_Hans/shutdown.po old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/root/usr/share/luci/menu.d/luci-app-shutdown.json b/luci-app-shutdown/root/usr/share/luci/menu.d/luci-app-shutdown.json old mode 100755 new mode 100644 diff --git a/luci-app-shutdown/root/usr/share/rpcd/acl.d/luci-app-shutdown.json b/luci-app-shutdown/root/usr/share/rpcd/acl.d/luci-app-shutdown.json old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/Makefile b/luci-app-snmpd/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/luasrc/controller/snmpd.lua b/luci-app-snmpd/luasrc/controller/snmpd.lua old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/luasrc/model/cbi/snmpd.lua b/luci-app-snmpd/luasrc/model/cbi/snmpd.lua old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/luasrc/view/snmpd.htm b/luci-app-snmpd/luasrc/view/snmpd.htm old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/de/snmpd.po b/luci-app-snmpd/po/de/snmpd.po old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/fr/snmpd.po b/luci-app-snmpd/po/fr/snmpd.po old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/it/snmpd.po b/luci-app-snmpd/po/it/snmpd.po old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/oc/snmpd.po b/luci-app-snmpd/po/oc/snmpd.po old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/templates/snmpd.pot b/luci-app-snmpd/po/templates/snmpd.pot old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/po/zh_Hans/snmpd.po b/luci-app-snmpd/po/zh_Hans/snmpd.po old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/root/etc/config/snmpd b/luci-app-snmpd/root/etc/config/snmpd old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/root/usr/share/luci/menu.d/luci-app-snmpd.json b/luci-app-snmpd/root/usr/share/luci/menu.d/luci-app-snmpd.json old mode 100755 new mode 100644 diff --git a/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json b/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/Makefile b/luci-app-sqm-autorate/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js b/luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ar/sqm.po b/luci-app-sqm-autorate/po/ar/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/bg/sqm.po b/luci-app-sqm-autorate/po/bg/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/bn_BD/sqm.po b/luci-app-sqm-autorate/po/bn_BD/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ca/sqm.po b/luci-app-sqm-autorate/po/ca/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/cs/sqm.po b/luci-app-sqm-autorate/po/cs/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/da/sqm.po b/luci-app-sqm-autorate/po/da/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/de/sqm.po b/luci-app-sqm-autorate/po/de/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/el/sqm.po b/luci-app-sqm-autorate/po/el/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/en/sqm.po b/luci-app-sqm-autorate/po/en/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/es/sqm.po b/luci-app-sqm-autorate/po/es/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/fi/sqm.po b/luci-app-sqm-autorate/po/fi/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/fr/sqm.po b/luci-app-sqm-autorate/po/fr/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/he/sqm.po b/luci-app-sqm-autorate/po/he/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/hi/sqm.po b/luci-app-sqm-autorate/po/hi/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/hu/sqm.po b/luci-app-sqm-autorate/po/hu/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/it/sqm.po b/luci-app-sqm-autorate/po/it/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ja/sqm.po b/luci-app-sqm-autorate/po/ja/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ko/sqm.po b/luci-app-sqm-autorate/po/ko/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/mr/sqm.po b/luci-app-sqm-autorate/po/mr/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ms/sqm.po b/luci-app-sqm-autorate/po/ms/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/nb_NO/sqm.po b/luci-app-sqm-autorate/po/nb_NO/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/pl/sqm.po b/luci-app-sqm-autorate/po/pl/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/pt/sqm.po b/luci-app-sqm-autorate/po/pt/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/pt_BR/sqm.po b/luci-app-sqm-autorate/po/pt_BR/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ro/sqm.po b/luci-app-sqm-autorate/po/ro/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/ru/sqm.po b/luci-app-sqm-autorate/po/ru/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/sk/sqm.po b/luci-app-sqm-autorate/po/sk/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/sv/sqm.po b/luci-app-sqm-autorate/po/sv/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/templates/sqm.pot b/luci-app-sqm-autorate/po/templates/sqm.pot old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/tr/sqm.po b/luci-app-sqm-autorate/po/tr/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/uk/sqm.po b/luci-app-sqm-autorate/po/uk/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/vi/sqm.po b/luci-app-sqm-autorate/po/vi/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/zh_Hans/sqm.po b/luci-app-sqm-autorate/po/zh_Hans/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/po/zh_Hant/sqm.po b/luci-app-sqm-autorate/po/zh_Hant/sqm.po old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/root/usr/share/luci/menu.d/luci-app-sqm.json b/luci-app-sqm-autorate/root/usr/share/luci/menu.d/luci-app-sqm.json old mode 100755 new mode 100644 diff --git a/luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json b/luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/Makefile b/luci-app-sysupgrade/Makefile old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/luasrc/view/sysupgrade.htm b/luci-app-sysupgrade/luasrc/view/sysupgrade.htm old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/fr/sysupgrade.po b/luci-app-sysupgrade/po/fr/sysupgrade.po old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/fr/sysupgrade.po~ b/luci-app-sysupgrade/po/fr/sysupgrade.po~ old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/ru/sysupgrade.po b/luci-app-sysupgrade/po/ru/sysupgrade.po old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/templates/sysupgrade.pot b/luci-app-sysupgrade/po/templates/sysupgrade.pot old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/zh_Hans/sysupgrade.po b/luci-app-sysupgrade/po/zh_Hans/sysupgrade.po old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/po/zh_Hans/sysupgrade.po~ b/luci-app-sysupgrade/po/zh_Hans/sysupgrade.po~ old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/root/usr/share/luci/menu.d/luci-app-sysupgrade.json b/luci-app-sysupgrade/root/usr/share/luci/menu.d/luci-app-sysupgrade.json old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/root/usr/share/rpcd/acl.d/sysupgrade.json b/luci-app-sysupgrade/root/usr/share/rpcd/acl.d/sysupgrade.json old mode 100755 new mode 100644 diff --git a/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js b/luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js old mode 100755 new mode 100644 diff --git a/luci-app-zerotier-master/.gitattributes b/luci-app-zerotier-master/.gitattributes deleted file mode 100755 index dfe077042..000000000 --- a/luci-app-zerotier-master/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/luci-app-zerotier-master/.gitignore b/luci-app-zerotier-master/.gitignore deleted file mode 100755 index 5b9bd8749..000000000 --- a/luci-app-zerotier-master/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ - -*.bak diff --git a/luci-app-zerotier-master/Makefile b/luci-app-zerotier-master/Makefile deleted file mode 100755 index d557df631..000000000 --- a/luci-app-zerotier-master/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI for Zerotier -LUCI_DEPENDS:=+zerotier -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=17 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/luci-app-zerotier-master/README.md b/luci-app-zerotier-master/README.md deleted file mode 100755 index bd9822cdd..000000000 --- a/luci-app-zerotier-master/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# luci-app-zerotier - -你不在乎网络安全,可我在乎
-与lean原版相比使用了op自带的防火墙,并增添了流量权限控制 \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/controller/zerotier.lua b/luci-app-zerotier-master/luasrc/controller/zerotier.lua deleted file mode 100755 index 04559fb42..000000000 --- a/luci-app-zerotier-master/luasrc/controller/zerotier.lua +++ /dev/null @@ -1,24 +0,0 @@ -module("luci.controller.zerotier",package.seeall) - -function index() - if not nixio.fs.access("/etc/config/zerotier")then -return -end - -entry({"admin","vpn"}, firstchild(), "VPN", 45).dependent = false - -entry({"admin", "vpn", "zerotier"},firstchild(), _("ZeroTier")).dependent = false - -entry({"admin", "vpn", "zerotier", "general"},cbi("zerotier/settings"), _("Base Setting"), 1) -entry({"admin", "vpn", "zerotier", "log"},form("zerotier/info"), _("Interface Info"), 2) -entry({"admin", "vpn", "zerotier", "manual"},cbi("zerotier/manual"), _("Manual Config"), 3) - -entry({"admin","vpn","zerotier","status"},call("act_status")) -end - -function act_status() -local e={} - e.running=luci.sys.call("pgrep /usr/bin/zerotier-one >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua deleted file mode 100755 index 9bc3824cf..000000000 --- a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua +++ /dev/null @@ -1,15 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/tmp/zero.info" - -f = SimpleForm("logview") - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 15 -function t.cfgvalue() - luci.sys.exec("ifconfig $(ifconfig | grep zt | awk '{print $1}') > /tmp/zero.info") - return fs.readfile(conffile) or "" -end -t.readonly="readonly" - -return f \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua deleted file mode 100755 index 13a72d7c0..000000000 --- a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua +++ /dev/null @@ -1,25 +0,0 @@ -local m, s, o -local fs = require "nixio.fs" -local jsonc = require "luci.jsonc" or nil -m = Map("zerotier") -s=m:section(NamedSection,"sample_config","zerotier") -s.anonymous=true -s.addremove=false -o = s:option(TextValue, "manualconfig") -o.rows = 20 -o.wrap = "soft" -o.rmempty = true -o.cfgvalue = function(self, section) - return fs.readfile("/etc/config/zero/local.conf") -end -o.write = function(self, section, value) - fs.writefile("/etc/config/zero/local.conf", value:gsub("\r\n", "\n")) -end -o.validate=function(self, value) - if jsonc == nil or jsonc.parse(value)~=nil then - return value - end - return nil -end -o.description='https://www.zerotier.com/manual/
https://github.com/zerotier/ZeroTierOne/blob/db813db7e875c257e42c41ab8091c3df1e9300a5/service/README.md' -return m \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua deleted file mode 100755 index 7131f6728..000000000 --- a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua +++ /dev/null @@ -1,34 +0,0 @@ - -a=Map("zerotier",translate("ZeroTier"),translate("Zerotier is an open source, cross-platform and easy to use virtual LAN")) -a:section(SimpleSection).template = "zerotier/zerotier_status" - -t=a:section(NamedSection,"sample_config","zerotier") -t.anonymous=true -t.addremove=false - -e=t:option(Flag,"enabled",translate("Enable")) -e.default=0 -e.rmempty=false - -e=t:option(DynamicList,"join",translate('ZeroTier Network ID')) -e.password=true -e.rmempty=false - -e=t:option(Flag,"nat",translate("Auto NAT Clients")) -e.default=0 -e.rmempty=false - -e = t:option(MultiValue, "access", translate("Zerotier access control")) -e.default="lanfwzt ztfwwan ztfwlan" -e.rmempty=false -e:value("lanfwzt",translate("lan access zerotier")) -e:value("wanfwzt",translate("wan access zerotier")) -e:value("ztfwwan",translate("remote access wan")) -e:value("ztfwlan",translate("remote access lan")) -e.widget = "checkbox" - -e=t:option(DummyValue,"opennewwindow" , - translate("")) -e.description = translate("Create or manage your zerotier network, and auth clients who could access") - -return a diff --git a/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm b/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm deleted file mode 100755 index 9d216c5d9..000000000 --- a/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
-

- <%:Collecting data...%> -

-
diff --git a/luci-app-zerotier-master/po/zh-cn/zerotier.po b/luci-app-zerotier-master/po/zh-cn/zerotier.po deleted file mode 100755 index 2fb491ed4..000000000 --- a/luci-app-zerotier-master/po/zh-cn/zerotier.po +++ /dev/null @@ -1,28 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Gtranslator 2.91.7\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "Zerotier is an open source, cross-platform and easy to use virtual LAN" -msgstr "Zerotier是一个开源,跨平台,而且适合内网穿透互联的傻瓜配置虚拟 VPN LAN" - -msgid "Auto NAT Clients" -msgstr "自动允许客户端NAT" - -msgid "Allow zerotier clients access your LAN network" -msgstr "允许Zerotier的拨入客户端访问路由器LAN资源(需要在 Zerotier管理页面设定到LAN网段的路由表)" - -msgid "Create or manage your zerotier network, and auth clients who could access" -msgstr "点击跳转到Zerotier官网管理平台,新建或者管理网络,并允许客户端接入访问你私人网路(新接入的节点默认不允许访问)" - -msgid "Interface Info" -msgstr "接口信息" - -msgid "Zerotier access control" -msgstr "Zerotier 准入控制" - -msgid "Manual Config" -msgstr "手动设置" diff --git a/luci-app-zerotier-master/root/etc/config/zero/local.conf b/luci-app-zerotier-master/root/etc/config/zero/local.conf deleted file mode 100755 index 2214f7cc1..000000000 --- a/luci-app-zerotier-master/root/etc/config/zero/local.conf +++ /dev/null @@ -1,5 +0,0 @@ -{ -"settings": { - "multipathMode": 2 - } - } \ No newline at end of file diff --git a/luci-app-zerotier-master/root/etc/init.d/zerotier b/luci-app-zerotier-master/root/etc/init.d/zerotier deleted file mode 100755 index 60cebbdc0..000000000 --- a/luci-app-zerotier-master/root/etc/init.d/zerotier +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=90 - -USE_PROCD=1 - -PROG=/usr/bin/zerotier-one -CONFIG_PATH=/var/lib/zerotier-one - -section_enabled() { - config_get_bool enabled "$1" 'enabled' 0 - [ $enabled -gt 0 ] -} -service_triggers() { - procd_add_reload_trigger zerotier -} -start_instance() { - local cfg="$1" - local port secret config_path - local ARGS="" - - if ! section_enabled "$cfg"; then - echo "disabled in config" - return 1 - fi - - [ -d /etc/config/zero ] || mkdir -p /etc/config/zero - config_path=/etc/config/zero - - config_get_bool port $cfg 'port' - config_get secret $cfg 'secret' - - # Remove existing link or folder - rm -rf $CONFIG_PATH - - # Create link from CONFIG_PATH to config_path - if [ -n "$config_path" -a "$config_path" != $CONFIG_PATH ]; then - if [ ! -d "$config_path" ]; then - echo "ZeroTier config_path does not exist: $config_path" - return - fi - - ln -s $config_path $CONFIG_PATH - fi - - mkdir -p $CONFIG_PATH/networks.d - - if [ -n "$port" ]; then - ARGS="$ARGS -p$port" - fi - - if [ "$secret" = "generate" ]; then - echo "Generate secret - please wait..." - local sf="/tmp/zt.$cfg.secret" - - zerotier-idtool generate "$sf" > /dev/null - [ $? -ne 0 ] && return 1 - - secret="$(cat $sf)" - rm "$sf" - - uci set zerotier.$cfg.secret="$secret" - uci commit zerotier - fi - - if [ -n "$secret" ]; then - echo "$secret" > $CONFIG_PATH/identity.secret - # make sure there is not previous identity.public - rm -f $CONFIG_PATH/identity.public - fi - - add_join() { - # an (empty) config file will cause ZT to join a network - touch $CONFIG_PATH/networks.d/$1.conf - } - - config_list_foreach $cfg 'join' add_join - - procd_open_instance - procd_set_param command $PROG $ARGS $CONFIG_PATH - procd_set_param stderr 1 - procd_close_instance - ( - [ -f "/var/run/zerotier.wait.pid" ] && return - touch /var/run/zerotier.wait.pid - while [ "$(ifconfig | grep zt | awk '{print $1}')" = "" ] - do - sleep 1 - done - zt0=$(ifconfig | grep zt | awk '{print $1}') - echo "zt interface $zt0 is started!" - if [ -z "$(uci get network.zerotier)" ]; then - uci set network.zerotier=interface - uci set network.zerotier.proto='static' - fi - config_get nat $cfg 'nat' - if [ "$nat" == "1" ]; then - if [ -z "$(uci get firewall.ztzone)" ]; then - uci set firewall.ztzone=zone - uci set firewall.ztzone.input='ACCEPT' - uci set firewall.ztzone.output='ACCEPT' - uci set firewall.ztzone.forward='REJECT' - uci set firewall.ztzone.masq='1' - uci set firewall.ztzone.name='zerotier' - uci set firewall.ztzone.network='zerotier' - fi - else - uci delete firewall.ztzone - fi - config_get access $cfg 'access' - if [ "${access//ztfwlan/}" != "$access" ]; then - uci set firewall.ztfwlan=forwarding - uci set firewall.ztfwlan.dest='lan' - uci set firewall.ztfwlan.src='zerotier' - else - uci delete firewall.ztfwlan - fi - if [ "${access//ztfwwan/}" != "$access" ]; then - uci set firewall.ztfwwan=forwarding - uci set firewall.ztfwwan.dest='wan' - uci set firewall.ztfwwan.src='zerotier' - else - uci delete firewall.ztfwwan - fi - if [ "${access//lanfwzt/}" != "$access" ]; then - uci set firewall.lanfwzt=forwarding - uci set firewall.lanfwzt.dest='zerotier' - uci set firewall.lanfwzt.src='lan' - else - uci delete firewall.lanfwzt - fi - if [ "${access//wanfwzt/}" != "$access" ]; then - uci set firewall.wanfwzt=forwarding - uci set firewall.wanfwzt.dest='zerotier' - uci set firewall.wanfwzt.src='wan' - else - uci delete firewall.wanfwzt - fi - uci set network.zerotier.ifname="$zt0" - [ -n "$(uci changes network)" ] && uci commit network && /etc/init.d/network reload - [ -n "$(uci changes firewall)" ] && uci commit firewall && /etc/init.d/firewall reload - rm /var/run/zerotier.wait.pid - ) & -} - -start_service() { - config_load 'zerotier' - config_foreach start_instance 'zerotier' -} - -stop_instance() { - rm -f /tmp/zero.log - local cfg="$1" - - # Remove existing link or folder - rm -rf $CONFIG_PATH -} - -stop_service() { - config_load 'zerotier' - config_foreach stop_instance 'zerotier' -} - diff --git a/luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier b/luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier deleted file mode 100755 index 06f02e802..000000000 --- a/luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@zerotier[-1] - add ucitrack zerotier - set ucitrack.@zerotier[-1].init=zerotier - commit ucitrack -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/luci-app-zerotier-master/root/etc/zerotier/zerotier.log b/luci-app-zerotier-master/root/etc/zerotier/zerotier.log deleted file mode 100755 index e69de29bb..000000000 diff --git a/luci-base/po/oc/base.po b/luci-base/po/oc/base.po new file mode 100644 index 000000000..28f4b510f --- /dev/null +++ b/luci-base/po/oc/base.po @@ -0,0 +1,7620 @@ +msgid "" +msgstr "" +"PO-Revision-Date: 2020-10-19 09:37+0000\n" +"Last-Translator: Quentin PAGÈS \n" +"Language-Team: Occitan \n" +"Language: oc\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:929 +msgid "%.1f dB" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:114 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:261 +msgid "%d Bit" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3689 +msgid "%d invalid field(s)" +msgstr "%d camp(s) invalid(s)" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:35 +msgid "%s is untagged in multiple VLANs!" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:294 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:403 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:270 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:307 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:325 +msgid "(%d minute window, %d second interval)" +msgstr "(fenèstra de %d minuta,interval de %d segonda)" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:118 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:124 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:258 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:282 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:88 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:91 +msgid "(empty)" +msgstr "(void)" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:351 +#: modules/luci-compat/luasrc/view/cbi/network_netinfo.htm:23 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:58 +msgid "(no interfaces attached)" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:48 +msgid "-- Additional Field --" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/cbi.js:275 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3372 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3704 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:767 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1005 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1974 +#: modules/luci-compat/luasrc/view/cbi/header.htm:8 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:88 +msgid "-- Please choose --" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/cbi.js:276 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1006 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1975 +#: modules/luci-compat/luasrc/view/cbi/header.htm:9 +msgid "-- custom --" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:270 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:379 +msgid "-- match by label --" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:256 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:362 +msgid "-- match by uuid --" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:27 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:44 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:23 +msgid "-- please select --" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:54 +msgctxt "sstp log level value" +msgid "0" +msgstr "0" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:939 +msgid "0 = not using RSSI threshold, 1 = do not change driver default" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:55 +msgctxt "sstp log level value" +msgid "1" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:231 +msgid "1 Minute Load:" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:251 +msgid "15 Minute Load:" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:56 +msgctxt "sstp log level value" +msgid "2" +msgstr "2" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:57 +msgctxt "sstp log level value" +msgid "3" +msgstr "3" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:58 +msgctxt "sstp log level value" +msgid "4" +msgstr "4" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1442 +msgid "4-character hexadecimal ID" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:18 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:11 +msgid "464XLAT (CLAT)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:241 +msgid "5 Minute Load:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1471 +msgid "6-octet identifier as a hex string - no colons" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1431 +msgid "802.11r Fast Transition" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1619 +msgid "802.11w Association SA Query maximum timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1626 +msgid "802.11w Association SA Query retry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1607 +msgid "802.11w Management Frame Protection" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1619 +msgid "802.11w maximum timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1626 +msgid "802.11w retry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:956 +msgid "BSSID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:326 +msgid "DNS query port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:317 +msgid "DNS server port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:260 +msgid "" +"DNS servers will be queried in the " +"order of the resolvfile" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:945 +msgid "ESSID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:475 +msgid "IPv4-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:42 +msgid "IPv4-Gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:603 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:36 +msgid "IPv4-Netmask" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +msgid "" +"IPv6-Address or Network " +"(CIDR)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:42 +msgid "IPv6-Gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:504 +msgid "IPv6-Suffix (hex)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:58 +msgid "LED Configuration" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:69 +msgid "LED Name" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:431 +msgid "MAC-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:498 +msgid "DUID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:335 +msgid "" +"Max. DHCP leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:344 +msgid "" +"Max. EDNS0 packet size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:353 +msgid "Max. concurrent queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:29 +msgid "" +"
Note: you need to manually restart the cron service if the crontab file " +"was empty before editing." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2720 +msgid "A directory with the same name already exists." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2670 +msgid "A new login is required since the authentication session expired." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:909 +msgid "A43C + J43 + A43" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:910 +msgid "A43C + J43 + A43 + V43" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:922 +msgid "ADSL" +msgstr "ADSL" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:898 +msgid "ANSI T1.413" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:94 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:93 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:86 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:67 +msgid "APN" +msgstr "APN" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:197 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:352 +msgid "ARP" +msgstr "ARP" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:365 +msgid "ARP IP Targets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:357 +msgid "ARP Interval" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:381 +msgid "ARP Validation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:373 +msgid "ARP mode to consider a slave as being up" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:77 +msgid "ARP monitoring is not supported for the selected policy!" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175 +msgid "ARP retry threshold" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:917 +msgid "ATM (Asynchronous Transfer Mode)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:938 +msgid "ATM Bridges" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:970 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:66 +msgid "ATM Virtual Channel Identifier (VCI)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:971 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:70 +msgid "ATM Virtual Path Identifier (VPI)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:938 +msgid "" +"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual " +"Linux network interfaces which can be used in conjunction with DHCP or PPP " +"to dial into the provider network." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:977 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:62 +msgid "ATM device number" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:37 +msgid "ATU-C System Vendor ID" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:265 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:543 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:547 +msgid "Absent Interface" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47 +msgid "Access Concentrator" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:927 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1032 +msgid "Access Point" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:360 +msgid "Actions" +msgstr "Accions" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:200 +msgid "Active IPv4-Routes" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:206 +msgid "Active IPv6-Routes" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:81 +msgid "Active Connections" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:33 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:92 +msgid "Active DHCP Leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:52 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:94 +msgid "Active DHCPv6 Leases" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:203 +msgid "Active-Backup policy (active-backup, 1)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3666 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:929 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:23 +msgid "Ad-Hoc" +msgstr "Ad-Hoc" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:208 +msgid "Adaptive load balancing (balance-alb, 6)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:207 +msgid "Adaptive transmit load balancing (balance-tlb, 5)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2167 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2170 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2184 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2185 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3170 +#: modules/luci-compat/luasrc/view/cbi/nsection.htm:25 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:189 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:197 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:39 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:47 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:54 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:827 +msgid "Add" +msgstr "Ajustar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:942 +msgid "Add ATM Bridge" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:92 +msgid "Add IPv4 address…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:207 +msgid "Add IPv6 address…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:65 +msgid "Add LED action" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:219 +msgid "Add VLAN" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:15 +msgid "Add instance" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:146 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:152 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:247 +msgid "Add key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:248 +msgid "Add local domain suffix to names served from hosts files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:311 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:757 +msgid "Add new interface..." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:125 +msgid "Add peer" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:200 +msgid "Additional Hosts files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:255 +msgid "Additional servers file" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:34 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:35 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:36 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:37 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:38 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:39 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:40 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:41 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:42 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:43 +msgid "Address" +msgstr "Adreça" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:151 +msgid "Address to access local relay bridge" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:285 +msgid "Addresses" +msgstr "Adreças" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:3 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:15 +msgid "Administration" +msgstr "Administracion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:164 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:324 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:553 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:968 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:25 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:866 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:924 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:241 +msgid "Advanced Settings" +msgstr "Paramètres avançats" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:28 +msgid "Aggregate Transmit Power (ACTATP)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:258 +msgid "Aggregation Selection Logic" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:261 +msgid "Aggregator: All slaves down or has no slaves (stable, 0)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:263 +msgid "" +"Aggregator: Chosen by the largest number of ports + slave added/removed or " +"state changes (count, 2)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:262 +msgid "Aggregator: Slave added/removed or state changes (bandwidth, 1)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:171 +msgid "Alert" +msgstr "Alèrta" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2871 +#: modules/luci-compat/luasrc/model/network.lua:1417 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:61 +msgid "Alias Interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:145 +msgid "Alias of \"%s\"" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:263 +msgid "All Servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:209 +msgid "" +"Allocate IP addresses sequentially, starting from the lowest available " +"address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:208 +msgid "Allocate IP sequentially" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:25 +msgid "Allow SSH password authentication" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1112 +msgid "Allow AP mode to disconnect STAs based on low ACK condition" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1016 +msgid "Allow all except listed" +msgstr "" + +#: modules/luci-compat/root/usr/share/rpcd/acl.d/luci-compat.json:3 +msgid "Allow full UCI access for legacy applications" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:892 +msgid "Allow legacy 802.11b rates" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1015 +msgid "Allow listed only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:300 +msgid "Allow localhost" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:157 +msgid "Allow rebooting the device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:36 +msgid "Allow remote hosts to connect to local SSH forwarded ports" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:31 +msgid "Allow root logins with password" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:3 +msgid "Allow system feature probing" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:31 +msgid "Allow the root user to login with password" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:301 +msgid "" +"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:148 +msgid "Allowed IPs" +msgstr "IP autorizadas" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:654 +msgid "Always announce default router" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/none.js:5 +msgid "Always off (kernel: none)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:6 +msgid "Always on (kernel: default-on)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:907 +msgid "" +"Always use 40MHz channels even if the secondary channel overlaps. Using this " +"option does not comply with IEEE 802.11n-2009!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:603 +msgid "An error occurred while saving the form:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:890 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:20 +msgid "Annex" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:891 +msgid "Annex A + L + M (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:899 +msgid "Annex A G.992.1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:900 +msgid "Annex A G.992.2" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:901 +msgid "Annex A G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:902 +msgid "Annex A G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:892 +msgid "Annex B (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:895 +msgid "Annex B G.992.1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:896 +msgid "Annex B G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:897 +msgid "Annex B G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:893 +msgid "Annex J (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:903 +msgid "Annex L G.992.3 POTS 1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:894 +msgid "Annex M (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:904 +msgid "Annex M G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:905 +msgid "Annex M G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:654 +msgid "Announce as default router even if no public prefix is available." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:659 +msgid "Announced DNS domains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:658 +msgid "Announced DNS servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1596 +msgid "Anonymous Identity" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:162 +msgid "Anonymous Mount" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:158 +msgid "Anonymous Swap" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:84 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:174 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:195 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:60 +msgid "Any zone" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:119 +msgid "Apply backup?" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4276 +msgid "Apply request failed with status %h" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2181 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4142 +msgid "Apply unchecked" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4215 +msgid "Applying configuration changes… %ds" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:56 +msgid "Architecture" +msgstr "Arquitectura" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27 +msgid "" +"Assign a part of given length of every public IPv6-prefix to this interface" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31 +msgid "" +"Assign prefix parts using this hexadecimal subprefix ID for this interface." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2078 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:245 +msgid "Associated Stations" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:46 +msgid "Associations" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:154 +msgid "Attempt to enable configured mount points for attached devices" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:104 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:64 +msgid "Auth Group" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1535 +msgid "Authentication" +msgstr "Autentificacion" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:96 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:70 +msgid "Authentication Type" +msgstr "Tipe d’autentificacion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:172 +msgid "Authoritative" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:17 +msgid "Authorization Required" +msgstr "" + +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:196 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:197 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:241 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:244 +msgid "Auto Refresh" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:106 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:18 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:24 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:98 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:50 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:94 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:81 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:55 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:68 +msgid "Automatic" +msgstr "Automatic" + +#: modules/luci-compat/luasrc/model/network/proto_hnet.lua:7 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:7 +msgid "Automatic Homenet (HNCP)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:174 +msgid "Automatically check filesystem for errors before mounting" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:170 +msgid "Automatically mount filesystems on hotplug" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:166 +msgid "Automatically mount swap on hotplug" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:170 +msgid "Automount Filesystem" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:166 +msgid "Automount Swap" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:193 +msgid "Available" +msgstr "Disponible" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:268 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:278 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:329 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:339 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:349 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:234 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:244 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:254 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:263 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:273 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:291 +msgid "Average:" +msgstr "Mejana :" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:911 +msgid "B43 + B43C" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:912 +msgid "B43 + B43C + V43" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:48 +msgid "BR / DMR / AFTR" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:158 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:182 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1665 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:44 +msgid "BSSID" +msgstr "BSSID" + +#: modules/luci-compat/luasrc/view/cbi/footer.htm:14 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:48 +msgid "Back to Overview" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:48 +msgid "Back to configuration" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:363 +msgid "Backup" +msgstr "Salvagarda" + +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:114 +msgid "Backup / Flash Firmware" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:323 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12 +msgid "Backup file list" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:158 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:451 +msgid "Band" +msgstr "Grop" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:910 +msgid "Beacon Interval" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:324 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:46 +msgid "" +"Below is the determined list of files to backup. It consists of changed " +"configuration files marked by opkg, essential base files and the user " +"defined backup patterns." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:395 +msgid "" +"Bind dynamically to interfaces rather than wildcard address (recommended as " +"linux default)" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:52 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:62 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:48 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:55 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:57 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:52 +msgid "Bind interface" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:52 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:62 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:48 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:55 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:57 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:52 +msgid "Bind the tunnel to this interface (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:188 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:63 +msgid "Bitrate" +msgstr "Debit" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:266 +msgid "Bogus NX Domain Override" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:199 +msgid "Bonding Policy" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2877 +#: modules/luci-compat/luasrc/model/network.lua:1421 +msgid "Bridge" +msgstr "Pont" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:416 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:730 +msgid "Bridge interfaces" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:978 +msgid "Bridge unit number" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:412 +msgid "Bring up on boot" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:205 +msgid "Broadcast policy (broadcast, 3)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2810 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3799 +msgid "Browse…" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:37 +msgid "Buffered" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:138 +msgid "CA certificate; if empty it will be saved after the first connection." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:7 +msgid "CLAT configuration failed" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:72 +msgid "CPU usage (%)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:41 +msgid "Cached" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:53 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:53 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:21 +msgid "Call failed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2903 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3808 +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:14 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:52 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:187 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:763 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1952 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:128 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:272 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:184 +msgid "Cancel" +msgstr "Anullar" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:17 +msgid "Category" +msgstr "Categoria" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1519 +msgid "Certificate constraint (Domain)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1516 +msgid "Certificate constraint (SAN)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1513 +msgid "Certificate constraint (Subject)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1522 +msgid "Certificate constraint (Wildcard)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1513 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1571 +msgid "" +"Certificate constraint substring - e.g. /CN=wifi.mycompany.com
See " +"`logread -f` during handshake for actual values" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1519 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1577 +msgid "" +"Certificate constraint(s) against DNS SAN values (if available)
or " +"Subject CN (exact match)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1522 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1580 +msgid "" +"Certificate constraint(s) against DNS SAN values (if available)
or " +"Subject CN (suffix match)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1516 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1574 +msgid "" +"Certificate constraint(s) via Subject Alternate Name values
(supported " +"attributes: EMAIL, DNS, URI) - e.g. DNS:wifi.mycompany.com" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:200 +msgid "Chain" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4028 +msgid "Changes" +msgstr "Diferéncias" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4311 +msgid "Changes have been reverted." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:46 +msgid "Changes the administrator password for accessing the device" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:162 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:128 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:184 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:460 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1663 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:62 +msgid "Channel" +msgstr "Canal" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:174 +msgid "Check filesystems before mount" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1914 +msgid "Check this option to delete the existing networks from this radio." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:110 +msgid "Checking archive…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:193 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:195 +msgid "Checking image…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:399 +msgid "Choose mtdblock" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:491 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1942 +msgid "" +"Choose the firewall zone you want to assign to this interface. Select " +"unspecified to remove the interface from the associated zone or " +"fill out the custom field to define a new zone and attach the " +"interface to it." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:959 +msgid "" +"Choose the network(s) you want to attach to this wireless interface or fill " +"out the custom field to define a new network." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1148 +msgid "Cipher" +msgstr "Cipher" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:91 +msgid "Cisco UDP encapsulation" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:363 +msgid "" +"Click \"Generate archive\" to download a tar archive of the current " +"configuration files." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:396 +msgid "" +"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS " +"FEATURE IS FOR PROFESSIONALS! )" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3665 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:928 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1033 +msgid "Client" +msgstr "Client" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:52 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:47 +msgid "Client ID to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:148 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:154 +msgid "Close" +msgstr "Tampar" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:157 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:141 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:115 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:138 +msgid "" +"Close inactive connection after the given amount of seconds, use 0 to " +"persist connection" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:49 +msgid "Close list..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:42 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:61 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2076 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:389 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:317 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:320 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:204 +msgid "Collecting data..." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:71 +msgid "Command" +msgstr "Comanda" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:401 +msgid "Command OK" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:33 +msgid "Command failed" +msgstr "La comanda a fracassat" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:72 +msgid "Comment" +msgstr "Comentari" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1634 +msgid "" +"Complicates key reinstallation attacks on the client side by disabling " +"retransmission of EAPOL-Key frames that are used to install keys. This " +"workaround might cause interoperability issues and reduced robustness of key " +"negotiation especially in environments with heavy traffic load." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:96 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:98 +msgid "Compute outgoing checksum (optional)." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4028 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:426 +msgid "Configuration" +msgstr "Configuracion" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4190 +msgid "Configuration changes applied." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4128 +msgid "Configuration changes have been rolled back!" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:63 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:21 +msgid "Configuration failed" +msgstr "Fracàs de la configuracion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:175 +msgid "Confirm disconnect" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:55 +msgid "Confirmation" +msgstr "Confirmacion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:51 +msgid "Connected" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:9 +#: modules/luci-compat/luasrc/model/network.lua:27 +msgid "Connection attempt failed" +msgstr "Ensag de connexion pas capitat" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:40 +msgid "Connection attempt failed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:411 +msgid "Connection lost" +msgstr "Connexion perduda" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:117 +msgid "Connections" +msgstr "Connexions" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:377 +msgid "Consider the slave up when all ARP IP targets are reachable (all, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:376 +msgid "Consider the slave up when any ARP IP target is reachable (any, 0)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:18 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:340 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:55 +msgid "Contents have been saved." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:742 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:132 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:264 +msgid "Continue" +msgstr "Contunhar" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4164 +msgid "" +"Could not regain access to the device after applying the configuration " +"changes. You might need to reconnect if you modified network related " +"settings such as the IP address or wireless security credentials." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:189 +msgid "Country" +msgstr "País" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:889 +msgid "Country Code" +msgstr "Còde de país" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:491 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1942 +msgid "Create / Assign firewall-zone" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:798 +msgid "Create interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:416 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:730 +msgid "Creates a bridge over specified interface(s)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:170 +msgid "Critical" +msgstr "Critic" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:174 +msgid "Cron Log Level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:533 +msgid "Current power" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:568 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:570 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:51 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:53 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:82 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:83 +msgid "Custom Interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:36 +msgid "Custom delegated IPv6-prefix" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:382 +msgid "" +"Custom files (certificates, scripts) may remain on the system. To prevent " +"this, perform a factory-reset first." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:6 +msgid "Custom flash interval (kernel: timer)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:59 +msgid "" +"Customizes the behaviour of the device LEDs if possible." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1353 +msgid "DAE-Client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1358 +msgid "DAE-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1363 +msgid "DAE-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:327 +msgid "DHCP Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:155 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:50 +msgid "DHCP and DNS" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1982 +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:16 +#: modules/luci-compat/luasrc/model/network.lua:969 +msgid "DHCP client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:619 +msgid "DHCP-Options" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_dhcpv6.lua:7 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:7 +msgid "DHCPv6 client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:646 +msgid "DHCPv6-Mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:631 +msgid "DHCPv6-Service" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:45 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:47 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:48 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:49 +msgid "DNS" +msgstr "DNS" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:277 +msgid "DNS forwardings" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:37 +msgid "DNS-Label / FQDN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:228 +msgid "DNSSEC" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:232 +msgid "DNSSEC check unsigned" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:99 +msgid "DPD Idle Timeout" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:41 +msgid "DS-Lite AFTR address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:887 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:45 +msgid "DSL" +msgstr "DSL" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:14 +msgid "DSL Status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:920 +msgid "DSL line mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1088 +msgid "DTIM Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:57 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:58 +msgid "DUID" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:22 +msgid "Data Rate" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:165 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:176 +msgid "Debug" +msgstr "Desbugatge" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1328 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1343 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1358 +msgid "Default %d" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:107 +msgid "Default Route" +msgstr "Rota per defaut" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:48 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:85 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:65 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:49 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:67 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:80 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:108 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:150 +msgid "Default gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:646 +msgid "Default is stateless + stateful" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:11 +msgid "Default state" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:619 +msgid "" +"Define additional DHCP options, for example " +"\"6,192.168.2.1,192.168.2.2\" which advertises different DNS " +"servers to clients." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2237 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2662 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2666 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3154 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2872 +#: modules/luci-compat/luasrc/view/cbi/nsection.htm:11 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:162 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:16 +msgid "Delete" +msgstr "Suprimir" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:180 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:186 +msgid "Delete key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2769 +msgid "Delete request failed: %s" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:847 +msgid "Delete this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1088 +msgid "Delivery Traffic Indication Message Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:340 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:134 +msgid "Description" +msgstr "Descripcion" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2868 +msgid "Deselect" +msgstr "Deseleccionar" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:220 +msgid "Design" +msgstr "Concepcion" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:384 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:70 +msgid "Destination" +msgstr "Destinacion" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:48 +msgid "Destination port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:59 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:165 +msgid "Destination zone" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:67 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:191 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:43 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:80 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:55 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:12 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:247 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:280 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:356 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:392 +msgid "Device" +msgstr "Periferic" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:861 +msgid "Device Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:132 +msgid "Device is not active" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:224 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:599 +msgid "Device is restarting…" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:45 +msgid "Device not managed by ModemManager." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4163 +msgid "Device unreachable!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:53 +msgid "Device unreachable! Still waiting for device..." +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:88 +msgid "Diagnostics" +msgstr "Diagnostics" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:101 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:93 +msgid "Dial number" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2665 +msgid "Directory" +msgstr "Direccion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:839 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:879 +msgid "Disable" +msgstr "Desactivar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:579 +msgid "" +"Disable DHCP for " +"this interface." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:373 +msgid "Disable DNS lookups" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:93 +msgid "Disable Encryption" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1098 +msgid "Disable Inactivity Polling" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:837 +msgid "Disable this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1608 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:66 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:107 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:99 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:51 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:95 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:82 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:69 +msgid "Disabled" +msgstr "Desactivat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1112 +msgid "Disassociate On Low Acknowledgement" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:294 +msgid "Discard upstream RFC1918 responses" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:197 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:665 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:231 +msgid "Disconnect" +msgstr "Se desconnectar" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:64 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:22 +msgid "Disconnection attempt failed" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:48 +msgid "Disconnection attempt failed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:606 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2861 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3309 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4045 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4134 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1688 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:330 +msgid "Dismiss" +msgstr "Far desaparéisser" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:895 +msgid "Distance Optimization" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:895 +msgid "Distance to farthest network member in meters." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:155 +msgid "" +"Dnsmasq is a combined DHCP-Server and DNS-" +"Forwarder for NAT " +"firewalls" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:252 +msgid "Do not cache negative replies, e.g. for not existing domains" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:79 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:81 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:86 +msgid "Do not create host route to peer (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:219 +msgid "Do not forward requests that cannot be answered by public name servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:214 +msgid "Do not forward reverse lookups for local networks" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:25 +msgid "Do not send a hostname" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2755 +msgid "Do you really want to delete \"%s\" ?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:181 +msgid "Do you really want to delete the following SSH key?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:94 +msgid "Do you really want to erase all settings?" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2753 +msgid "Do you really want to recursively delete the directory \"%s\" ?" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:168 +msgid "Domain required" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:307 +msgid "Domain whitelist" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:81 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67 +msgid "Don't Fragment" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:169 +msgid "" +"Don't forward DNS-Requests without " +"DNS-Name" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:152 +msgid "Down" +msgstr "Bas" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:402 +msgid "Down Delay" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:366 +msgid "Download backup" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:404 +msgid "Download mtdblock" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:925 +msgid "Downstream SNR offset" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2620 +msgid "Drag to reorder" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:341 +msgid "Drop Duplicate Frames" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:12 +msgid "Dropbear Instance" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:10 +msgid "" +"Dropbear offers SSH network shell access " +"and an integrated SCP server" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:14 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:11 +msgid "Dual-Stack Lite (RFC6333)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:595 +msgid "Dynamic DHCP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:60 +msgid "Dynamic tunnel" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:595 +msgid "" +"Dynamically allocate DHCP addresses for clients. If disabled, only clients " +"having static leases will be served." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:67 +msgid "EA-bits length" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1491 +msgid "EAP-Method" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2640 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2643 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3017 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:154 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:160 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:339 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:844 +msgid "Edit" +msgstr "Editar" + +#: modules/luci-compat/luasrc/view/cbi/error.htm:13 +msgid "" +"Edit the raw configuration data above to fix any error and hit \"Save\" to " +"reload the page." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:842 +msgid "Edit this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:793 +msgid "Edit wireless network" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:172 +msgid "Emergency" +msgstr "Urgéncia" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:839 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:879 +msgid "Enable" +msgstr "Activar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:462 +msgid "" +"Enable IGMP " +"snooping" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:460 +msgid "Enable STP" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:367 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:373 +msgid "Enable DNS lookups" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:292 +msgid "Enable Dynamic Shuffling Of Flows" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:60 +msgid "Enable HE.net dynamic endpoint update" +msgstr "" + +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:89 +msgid "Enable IPv6 negotiation" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:49 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:80 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:54 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:67 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:93 +msgid "Enable IPv6 negotiation on the PPP link" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:192 +msgid "Enable Jumbo Frame passthrough" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:240 +msgid "Enable NTP client" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:96 +msgid "Enable Single DES" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:368 +msgid "Enable TFTP server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:184 +msgid "Enable VLAN functionality" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1638 +msgid "Enable WPS pushbutton, requires WPA(2)-PSK/WPA3-SAE" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1634 +msgid "Enable key reinstallation (KRACK) countermeasures" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:187 +msgid "Enable learning and aging" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:198 +msgid "Enable mirroring of incoming packets" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:199 +msgid "Enable mirroring of outgoing packets" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:882 +msgid "" +"Enable packet steering across all CPUs. May help or hinder network speed." +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:80 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:75 +msgid "Enable rx checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:81 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67 +msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:837 +msgid "Enable this network" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:84 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:79 +msgid "Enable tx checksum" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:243 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:352 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:66 +msgid "Enabled" +msgstr "Activat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:462 +msgid "Enables IGMP snooping on this bridge" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1431 +msgid "" +"Enables fast roaming among access points that belong to the same Mobility " +"Domain" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:460 +msgid "Enables the Spanning Tree Protocol on this bridge" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:59 +msgid "Encapsulation limit" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:915 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:973 +msgid "Encapsulation mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:159 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:183 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1117 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1666 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:45 +msgid "Encryption" +msgstr "Chiframent" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:161 +msgid "Endpoint Host" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:165 +msgid "Endpoint Port" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/dropdown.htm:16 +msgid "Enter custom value" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/dropdown.htm:16 +msgid "Enter custom values" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:97 +msgid "Erasing..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:104 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:105 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:106 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:169 +msgid "Error" +msgstr "Error" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:30 +msgid "Errored seconds (ES)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2889 +#: modules/luci-compat/luasrc/model/network.lua:1433 +msgid "Ethernet Adapter" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2880 +#: modules/luci-compat/luasrc/model/network.lua:1423 +msgid "Ethernet Switch" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:270 +msgid "Every 30 seconds (slow, 0)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:271 +msgid "Every second (fast, 1)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:406 +msgid "Exclude interfaces" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:247 +msgid "Expand hosts" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:198 +msgid "Expecting a hexadecimal assignment hint" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:64 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:73 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:107 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:121 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:125 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:132 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:136 +msgid "Expecting: %s" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:48 +msgid "Expecting: non-empty value" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:50 +msgid "Expires" +msgstr "Expira" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:591 +msgid "" +"Expiry time of leased addresses, minimum is 2 minutes (2m)." +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:19 +msgid "External" +msgstr "Extèrne" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1482 +msgid "External R0 Key Holder List" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1486 +msgid "External R1 Key Holder List" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:146 +msgid "External system log server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:151 +msgid "External system log server port" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:156 +msgid "External system log server protocol" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:79 +msgid "Extra SSH command options" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:83 +msgid "Extra pppd options" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:81 +msgid "Extra sstpc options" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1456 +msgid "FT over DS" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1457 +msgid "FT over the Air" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1454 +msgid "FT protocol" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:87 +msgid "Failed to change the system password." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4122 +msgid "Failed to confirm apply within %ds, waiting for rollback…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:37 +msgid "Failed to execute \"/etc/init.d/%s %s\" action: %s" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2673 +msgid "File" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2620 +msgid "File not accessible" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2811 +msgid "Filename" +msgstr "Nom de fichièr" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:381 +msgid "Filename of the boot image advertised to clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:191 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:314 +msgid "Filesystem" +msgstr "Sistèma de fichièrs" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:213 +msgid "Filter private" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:218 +msgid "Filter useless" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:388 +msgid "Filtering for all slaves, no validation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:389 +msgid "Filtering for all slaves, validation only for active slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:390 +msgid "Filtering for all slaves, validation only for backup slaves" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:65 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:23 +msgid "Finalizing failed" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:150 +msgid "" +"Find all currently attached filesystems and swap and replace configuration " +"with defaults based on what was detected" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:820 +msgid "Find and join network" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:9 +msgid "Finish" +msgstr "Acabar" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:15 +msgid "Firewall" +msgstr "Parafuòc" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:102 +msgid "Firewall Mark" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:326 +msgid "Firewall Settings" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:297 +msgid "Firewall Status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:932 +msgid "Firmware File" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:57 +msgid "Firmware Version" +msgstr "Version del microcòdi" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:327 +msgid "Fixed source port for outbound DNS queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:283 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:421 +msgid "Flash image..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:279 +msgid "Flash image?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:411 +msgid "Flash new firmware image" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:356 +msgid "Flash operations" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:288 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:290 +msgid "Flashing…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:598 +msgid "Force" +msgstr "Fòrça" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:907 +msgid "Force 40MHz mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1158 +msgid "Force CCMP (AES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:598 +msgid "Force DHCP on this network even if another server is detected." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1159 +msgid "Force TKIP" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1160 +msgid "Force TKIP and CCMP (AES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:864 +msgid "Force link" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:255 +msgid "Force upgrade" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:90 +msgid "Force use of NAT-T" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:8 +msgid "Form token mismatch" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:164 +msgid "Forward DHCP traffic" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:29 +msgid "Forward Error Correction Seconds (FECS)" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:161 +msgid "Forward broadcast traffic" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:934 +msgid "Forward mesh peer traffic" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:980 +msgid "Forwarding mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:899 +msgid "Fragmentation Threshold" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:115 +msgid "" +"Further information about WireGuard interfaces and peers at wireguard.com." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:128 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:184 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:62 +msgid "GHz" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:91 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:77 +msgid "GPRS only" +msgstr "solament GPRS" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:10 +msgid "GRE tunnel over IPv4" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:10 +msgid "GRE tunnel over IPv6" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:10 +msgid "GRETAP tunnel over IPv4" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:10 +msgid "GRETAP tunnel over IPv6" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:44 +msgid "Gateway" +msgstr "Palanca" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:36 +msgid "Gateway Ports" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:11 +#: modules/luci-compat/luasrc/model/network.lua:29 +msgid "Gateway address is invalid" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:124 +msgid "Gateway metric" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:161 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:323 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:24 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:240 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:108 +msgid "General Settings" +msgstr "Paramètres generals" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:552 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:967 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:865 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:921 +msgid "General Setup" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:150 +msgid "Generate Config" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:66 +msgid "Generate Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1460 +msgid "Generate PMK locally" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:368 +msgid "Generate archive" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:79 +msgid "Given password confirmation did not match, password not changed!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:146 +msgid "Global Settings" +msgstr "Configuracion generala" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:875 +msgid "Global network options" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:57 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:58 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:82 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284 +msgid "Go to password configuration..." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2562 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3336 +#: modules/luci-compat/luasrc/view/cbi/full_valueheader.htm:4 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:58 +msgid "Go to relevant configuration page" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:33 +msgid "Grant access to DHCP configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:102 +msgid "Grant access to DHCP status display" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:111 +msgid "Grant access to DSL status display" +msgstr "" + +#: protocols/luci-proto-openconnect/root/usr/share/rpcd/acl.d/luci-openconnect.json:3 +msgid "Grant access to LuCI OpenConnect procedures" +msgstr "" + +#: protocols/luci-proto-wireguard/root/usr/share/rpcd/acl.d/luci-wireguard.json:3 +msgid "Grant access to LuCI Wireguard procedures" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:19 +msgid "Grant access to SSH configuration" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:12 +msgid "Grant access to basic LuCI procedures" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:64 +msgid "Grant access to crontab configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:60 +msgid "Grant access to firewall status" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:116 +msgid "Grant access to flash operations" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:86 +msgid "Grant access to main status display" +msgstr "" + +#: protocols/luci-proto-modemmanager/root/usr/share/rpcd/acl.d/luci-proto-modemmanager.json:3 +msgid "Grant access to mmcli" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:84 +msgid "Grant access to mount configuration" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:3 +msgid "Grant access to network configuration" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:46 +msgid "Grant access to network diagnostic tools" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:36 +msgid "Grant access to network status information" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:13 +msgid "Grant access to process status" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:3 +msgid "Grant access to realtime statistics" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:42 +msgid "Grant access to startup configuration" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:3 +msgid "Grant access to system configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:30 +msgid "Grant access to system logs" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:47 +msgid "Grant access to the system route status" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:120 +msgid "Grant access to wireless status display" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:66 +msgid "Group Password" +msgstr "Senhal del grop" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:22 +msgid "Guest" +msgstr "Convidat" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:81 +msgid "HE.net password" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73 +msgid "HE.net username" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:46 +msgid "Hang Up" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:34 +msgid "Header Error Code Errors (HEC)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/heartbeat.js:5 +msgid "Heartbeat interval (kernel: heartbeat)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:100 +msgid "" +"Here you can configure the basic aspects of your device like its hostname or " +"the timezone." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1066 +msgid "Hide ESSID" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:264 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:303 +msgid "Hide empty chains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:55 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2070 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:140 +msgid "Host" +msgstr "Òste" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:22 +msgid "Host entries" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171 +msgid "Host expiry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +msgid "Host-IP or Network" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:102 +msgid "Host-Uniq tag content" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:36 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:419 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:27 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:54 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:29 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:121 +msgid "Hostname" +msgstr "Nom d'òste" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:22 +msgid "Hostname to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:20 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:63 +msgid "Hostnames" +msgstr "Noms d'òstes" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:24 +msgid "Hybrid" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:48 +msgid "ID used to uniquely identify the VXLAN" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:206 +msgid "IEEE 802.3ad Dynamic link aggregation (802.3ad, 4)" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:75 +msgid "IKE DH Group" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:83 +msgid "IP Addresses" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:80 +msgid "IP Protocol" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:114 +msgid "IP Type" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:31 +msgid "IP address" +msgstr "Adreça IP" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:10 +#: modules/luci-compat/luasrc/model/network.lua:28 +msgid "IP address is invalid" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:13 +#: modules/luci-compat/luasrc/model/network.lua:31 +msgid "IP address is missing" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:85 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:86 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:87 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:88 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:89 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:82 +msgid "IPv4" +msgstr "IPv4" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:316 +msgid "IPv4 Firewall" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:29 +msgid "IPv4 Upstream" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:178 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:162 +msgid "IPv4 address" +msgstr "Adreça IPv4" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:33 +msgid "IPv4 assignment length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:181 +msgid "IPv4 broadcast" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:180 +msgid "IPv4 gateway" +msgstr "Palanca IPv4" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:179 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:168 +msgid "IPv4 netmask" +msgstr "Masqueta ret IPv4" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:291 +msgid "IPv4 network in address/netmask notation" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:116 +msgid "IPv4 only" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:52 +msgid "IPv4 prefix" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:55 +msgid "IPv4 prefix length" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:83 +msgid "IPv4+IPv6" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:37 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:30 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:154 +msgid "IPv4-Address" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:164 +msgid "IPv4-Gateway" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ipip.lua:9 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:10 +msgid "IPv4-in-IPv4 (RFC2003)" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:115 +msgid "IPv4/IPv6 (both - defaults to IPv4)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:90 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:91 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:92 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:93 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:94 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:95 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:96 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:97 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:98 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:99 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:84 +msgid "IPv6" +msgstr "IPv6" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:319 +msgid "IPv6 Firewall" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:203 +msgid "IPv6 Neighbours" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:554 +msgid "IPv6 Settings" +msgstr "Paramètres IPv6" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:879 +msgid "IPv6 ULA-Prefix" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:29 +msgid "IPv6 Upstream" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:205 +msgid "IPv6 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31 +msgid "IPv6 assignment hint" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27 +msgid "IPv6 assignment length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:210 +msgid "IPv6 gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:296 +msgid "IPv6 network in address/netmask notation" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:117 +msgid "IPv6 only" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:59 +msgid "IPv6 prefix" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:63 +msgid "IPv6 prefix length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:214 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:57 +msgid "IPv6 routed prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:218 +msgid "IPv6 suffix" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:51 +msgid "IPv6 support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:57 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:172 +msgid "IPv6-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:100 +msgid "IPv6-PD" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:13 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:10 +msgid "IPv6-in-IPv4 (RFC4213)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:17 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:9 +msgid "IPv6-over-IPv4 (6rd)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:15 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:9 +msgid "IPv6-over-IPv4 (6to4)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1593 +msgid "Identity" +msgstr "Identitat" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:96 +msgid "If checked, 1DES is enabled" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:51 +msgid "If checked, adds \"+ipv6\" to the pppd options" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:93 +msgid "If checked, encryption is disabled" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360 +msgid "" +"If specified, mount the device by its UUID instead of a fixed device node" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:267 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:376 +msgid "" +"If specified, mount the device by the partition label instead of a fixed " +"device node" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:37 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:116 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:48 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:85 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:65 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:49 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:33 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:67 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:80 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:108 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:150 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:74 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:61 +msgid "If unchecked, no default route is configured" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:40 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:124 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:39 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:116 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:68 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:59 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:103 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:77 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:100 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:69 +msgid "If unchecked, the advertised DNS server addresses are ignored" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:339 +msgid "" +"If your physical memory is insufficient unused data can be temporarily " +"swapped to a swap-device resulting in a higher amount of usable RAM. Be aware that swapping data is a very " +"slow process as the swap-device cannot be accessed with the high datarates " +"of the RAM." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:197 +msgid "Ignore /etc/hosts" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:579 +msgid "Ignore interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:185 +msgid "Ignore resolve file" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:419 +msgid "Image" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:67 +msgid "In" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:13 +msgid "" +"In order to prevent unauthorized access to the system, your request has been " +"blocked. Click \"Continue »\" below to return to the previous page." +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:157 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:141 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:115 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:138 +msgid "Inactivity timeout" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:265 +msgid "Inbound:" +msgstr "Dintrant :" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:90 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:97 +msgid "Incoming checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:82 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:87 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:89 +msgid "Incoming key" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:97 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:94 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:99 +msgid "Incoming serialization" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:166 +msgid "Info" +msgstr "Info" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:101 +msgid "Information" +msgstr "Informacion" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:67 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:25 +msgid "Initialization failure" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:77 +msgid "Initscript" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:111 +msgid "Initscripts" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1577 +msgid "Inner certificate constraint (Domain)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1574 +msgid "Inner certificate constraint (SAN)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1571 +msgid "Inner certificate constraint (Subject)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1580 +msgid "Inner certificate constraint (Wildcard)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:268 +msgid "Install protocol extensions..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1938 +msgid "" +"Instead of joining any network with a matching SSID, only connect to the " +"BSSID %h." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/map.htm:43 +msgid "Insufficient permissions to read UCI configuration." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:464 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:471 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:735 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:739 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:27 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:156 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:174 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:17 +msgid "Interface" +msgstr "Interfàcia" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:62 +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:917 +msgid "Interface Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:110 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:151 +msgid "Interface has %d pending changes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:92 +msgid "Interface is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:64 +msgid "Interface is marked for deletion" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:209 +msgid "Interface is reconnecting..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:193 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:203 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:209 +msgid "Interface is shutting down..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:253 +msgid "Interface is starting..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:256 +msgid "Interface is stopping..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1079 +msgid "Interface name" +msgstr "Nom de l’interfàcia" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:122 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:272 +msgid "Interface not present or not connected yet." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:308 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:335 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:38 +msgid "Interfaces" +msgstr "Interfàcias" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:20 +msgid "Internal" +msgstr "Intèrne" + +#: modules/luci-base/luasrc/view/error500.htm:8 +msgid "Internal Server Error" +msgstr "Error intèrna de servidor" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:283 +msgid "Interval For Sending Learning Packets" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:192 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:42 +msgid "Invalid" +msgstr "Invalid" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:19 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:22 +msgid "Invalid Base64 key string" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:285 +msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:294 +msgid "Invalid VLAN ID given! Only unique IDs are allowed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:403 +msgid "Invalid argument" +msgstr "Argument invalid" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:46 +msgid "" +"Invalid bearer list. Possibly too many bearers created. This protocol " +"supports one and only one bearer." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:402 +msgid "Invalid command" +msgstr "Comanda invalida" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:106 +msgid "Invalid hexadecimal value" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:12 +msgid "Invalid username and/or password! Please try again." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:71 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:81 +msgid "Invalid value" +msgstr "La valor es pas valida" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1075 +msgid "Isolate Clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:231 +msgid "" +"It appears that you are trying to flash an image that does not fit into the " +"flash memory, please verify the image file!" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:64 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:222 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:72 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:291 +msgid "JavaScript required!" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1746 +msgid "Join Network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1680 +msgid "Join Network: Wireless Scan" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1946 +msgid "Joining Network: %q" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:223 +msgid "Keep settings and retain the current configuration" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/dmesg.js:20 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:51 +msgid "Kernel Log" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:58 +msgid "Kernel Version" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1369 +msgid "Key" +msgstr "Clau" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1397 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1398 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1399 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1400 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1412 +msgid "Key #%d" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:82 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:87 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:89 +msgid "Key for incoming packets (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:86 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:88 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:93 +msgid "Key for outgoing packets (optinal)." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:54 +msgid "Kill" +msgstr "Tuar" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:21 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:10 +msgid "L2TP" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:40 +msgid "L2TP Server" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:267 +msgid "LACPDU Packets" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:131 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:102 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:89 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:112 +msgid "LCP echo failure threshold" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:144 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:102 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:125 +msgid "LCP echo interval" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:101 +msgid "LED Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:974 +msgid "LLC" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:267 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:376 +msgid "Label" +msgstr "Etiqueta" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:209 +msgid "Language" +msgstr "Lenga" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:111 +msgid "Language and Style" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:24 +msgid "Latency" +msgstr "Laténcia" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:21 +msgid "Leaf" +msgstr "Fuèlha" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:495 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:591 +msgid "Lease time" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:39 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:58 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:32 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:59 +msgid "Lease time remaining" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:181 +msgid "Leasefile" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:41 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:50 +msgid "Leave empty to autodetect" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:45 +msgid "Leave empty to use the current WAN address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4030 +msgid "Legend:" +msgstr "Legenda :" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:586 +msgid "Limit" +msgstr "Limit" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:389 +msgid "Limit DNS service to subnets interfaces on which we are serving DNS." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:402 +msgid "Limit listening to these interfaces, and loopback." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:25 +msgid "Line Attenuation (LATN)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:18 +msgid "Line Mode" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:17 +msgid "Line State" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:19 +msgid "Line Uptime" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:123 +msgid "Link Aggregation (Channel Bonding)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:348 +msgid "Link Monitoring" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:23 +msgid "Link On" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:278 +msgid "" +"List of DNS servers to forward " +"requests to" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1482 +msgid "" +"List of R0KHs in the same Mobility Domain.
Format: MAC-address,NAS-" +"Identifier,128-bit key as hex string.
This list is used to map R0KH-ID " +"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key " +"from the R0KH that the STA used during the Initial Mobility Domain " +"Association." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1486 +msgid "" +"List of R1KHs in the same Mobility Domain.
Format: MAC-address,R1KH-ID " +"as 6 octets with colons,128-bit key as hex string.
This list is used " +"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the " +"R0KH. This is also the list of authorized R1KHs in the MD that can request " +"PMK-R1 keys." +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:82 +msgid "List of SSH key files for auth" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:308 +msgid "List of domains to allow RFC1918 responses for" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:286 +msgid "List of domains to force to an IP address." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:267 +msgid "List of hosts that supply bogus NX domain results" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:401 +msgid "Listen Interfaces" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:78 +msgid "Listen Port" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:17 +msgid "Listen only on the given interface or, if unspecified, on all" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:318 +msgid "Listening port for inbound DNS queries" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:87 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:54 +msgid "Load" +msgstr "Carga" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:61 +msgid "Load Average" +msgstr "Carga mejana" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2938 +msgid "Loading directory contents…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:1948 +#: modules/luci-base/luasrc/view/view.htm:4 +#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:12 +msgid "Loading view…" +msgstr "" + +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:77 +msgid "Local IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:12 +#: modules/luci-compat/luasrc/model/network.lua:30 +msgid "Local IP address is invalid" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:86 +msgid "Local IP address to assign" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:46 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:44 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:39 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:151 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:44 +msgid "Local IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:46 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:54 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:45 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:44 +msgid "Local IPv6 address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:388 +msgid "Local Service Only" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:115 +msgid "Local Startup" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:59 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:117 +msgid "Local Time" +msgstr "Ora locala" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:243 +msgid "Local domain" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:240 +msgid "" +"Local domain specification. Names matching this domain are never forwarded " +"and are resolved from DHCP or hosts files only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:244 +msgid "Local domain suffix appended to DHCP names and hosts file entries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:239 +msgid "Local server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:224 +msgid "" +"Localise hostname depending on the requesting subnet if multiple IPs are " +"available" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:223 +msgid "Localise queries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1938 +msgid "Lock to BSSID" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:164 +msgid "Log output level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:274 +msgid "Log queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:109 +msgid "Logging" +msgstr "Jornalizacion" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:50 +msgid "" +"Logical network from which to select the local endpoint if local IPv6 " +"address is empty and no WAN IPv6 is available (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:55 +msgid "Logical network to which the tunnel will be added (bridged) (optional)." +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:38 +msgid "Login" +msgstr "Connexion" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:81 +msgid "Logout" +msgstr "Desconnexion" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:32 +msgid "Loss of Signal Seconds (LOSS)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:581 +msgid "Lowest leased address as offset from the network address." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:47 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:82 +msgid "MAC" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:251 +msgid "MAC Address For The Actor" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:38 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2069 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:31 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:139 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:155 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:173 +msgid "MAC-Address" +msgstr "Adreça MAC" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1011 +msgid "MAC-Address Filter" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:923 +msgid "MAC-Filter" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1018 +msgid "MAC-List" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:16 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:13 +msgid "MAP / LW4over6" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:62 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:7 +msgid "MAP rule is invalid" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:321 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:322 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:323 +msgid "MBit/s" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:218 +msgid "MD5" +msgstr "MD5" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:199 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:71 +msgid "MHz" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:353 +msgid "MII" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:421 +msgid "MII / ETHTOOL ioctls" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:394 +msgid "MII Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:54 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:53 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:97 +msgid "MTU" +msgstr "MTU" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:302 +msgid "" +"Make sure to clone the root filesystem using something like the commands " +"below:" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:108 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:52 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:96 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:83 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:57 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:70 +msgid "Manual" +msgstr "Manual" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3664 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:642 +msgid "Master" +msgstr "Principal" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:23 +msgid "Max. Attainable Data Rate (ATTNDR)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1107 +msgid "Maximum allowed Listen Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:336 +msgid "Maximum allowed number of active DHCP leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:354 +msgid "Maximum allowed number of concurrent DNS queries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:345 +msgid "Maximum allowed size of EDNS.0 UDP packets" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:112 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:104 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:93 +msgid "Maximum amount of seconds to wait for the modem to become ready" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:586 +msgid "Maximum number of leased addresses." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:886 +msgid "Maximum transmit power" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:188 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:199 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:63 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:71 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:327 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:328 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:329 +msgid "Mbit/s" +msgstr "Mbit/s" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:35 +msgid "Medium" +msgstr "Mejan" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:24 +msgid "Memory" +msgstr "Memòria" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:73 +msgid "Memory usage (%)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3667 +msgid "Mesh" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:156 +msgid "Mesh ID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:931 +msgid "Mesh Id" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:404 +msgid "Method not found" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:349 +msgid "Method of link monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:418 +msgid "Method to determine link status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:165 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:183 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:92 +msgid "Metric" +msgstr "Metric" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:235 +msgid "Minimum Number of Links" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:202 +msgid "Mirror monitor port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:201 +msgid "Mirror source port" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:9 +msgid "Mobile Data" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1442 +msgid "Mobility Domain" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:154 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:157 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:180 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:442 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:926 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1664 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:43 +msgid "Mode" +msgstr "Mòde" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:55 +msgid "Model" +msgstr "Modèl" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:43 +msgid "Modem bearer teardown in progress." +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:42 +msgid "" +"Modem connection in progress. Please wait. This process will timeout after 2 " +"minutes." +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:72 +msgid "Modem default" +msgstr "Modem per defaut" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:73 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:82 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:73 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:57 +msgid "Modem device" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:41 +msgid "Modem disconnection in progress. Please wait." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:66 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:24 +msgid "Modem information query failed" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:112 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:104 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:93 +msgid "Modem init timeout" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:44 +msgid "Modem is disabled." +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:52 +msgid "ModemManager" +msgstr "ModemManager" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3668 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1005 +msgid "Monitor" +msgstr "Monitor" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:31 +msgid "More Characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2504 +msgid "More…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:192 +msgid "Mount Point" +msgstr "Punt de montatge" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:144 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:228 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:88 +msgid "Mount Points" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:229 +msgid "Mount Points - Mount Entry" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:340 +msgid "Mount Points - Swap Entry" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:228 +msgid "" +"Mount Points define at which point a memory device will be attached to the " +"filesystem" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:154 +msgid "Mount attached devices" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:162 +msgid "Mount filesystems not specifically configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:331 +msgid "Mount options" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292 +msgid "Mount point" +msgstr "Punt de montatge" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:158 +msgid "Mount swap not specifically configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:223 +msgid "Mounted file systems" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:152 +msgid "Move down" +msgstr "Desplaçar cap aval" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:151 +msgid "Move up" +msgstr "Desplaçar cap amont" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1437 +msgid "NAS ID" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:87 +msgid "NAT-T Mode" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:41 +msgid "NAT64 Prefix" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:26 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:31 +msgid "NCM" +msgstr "NCM" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:637 +msgid "NDP-Proxy" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:72 +msgid "NT Domain" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:274 +msgid "NTP server candidates" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2542 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3785 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:27 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:710 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:67 +msgid "Name" +msgstr "Nom" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1916 +msgid "Name of the new network" +msgstr "" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:40 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:50 +msgid "Navigation" +msgstr "Navigacion" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:959 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2068 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:381 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:63 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:138 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:162 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:180 +msgid "Network" +msgstr "Ret" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:68 +msgid "Network Utilities" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:380 +msgid "Network boot image" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:7 +msgid "Network device activity (kernel: netdev)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:15 +#: modules/luci-compat/luasrc/model/network.lua:33 +msgid "Network device is not present" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:55 +msgid "Network interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:777 +msgid "New interface for \"%s\" can not be created: %s" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:713 +msgid "New interface name…" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:11 +msgid "Next »" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3643 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:296 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:345 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:108 +msgid "No" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:562 +msgid "No DHCP Server configured for this interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1310 +msgid "No Encryption" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:87 +msgid "No Host Routes" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:89 +msgid "No NAT-T" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:79 +msgid "No RX signal" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69 +msgid "No client associated" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:406 +msgid "No data received" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2878 +msgid "No entries in this directory" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:82 +msgid "No files found" +msgstr "Pas cap de fichièr trobat" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:79 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:81 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:86 +msgid "No host route" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:674 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:142 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:241 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:59 +msgid "No information available" +msgstr "Pas cap d'informacion disponibla" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:63 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:8 +msgid "No matching prefix delegation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:140 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:143 +msgid "No more slaves available" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:187 +msgid "No more slaves available, can not save interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:251 +msgid "No negative cache" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:54 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:212 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:55 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:79 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:279 +msgid "No password set!" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:130 +msgid "No peers defined yet" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:121 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:268 +msgid "No public keys present yet." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:90 +msgid "No rules in this chain." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:384 +msgid "No validation or filtering" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:152 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:825 +msgid "No zone assigned" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:58 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:84 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:187 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:141 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:174 +msgid "Noise" +msgstr "Bruch" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:27 +msgid "Noise Margin (SNR)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:270 +msgid "Noise:" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:35 +msgid "Non Pre-emptive CRC errors (CRC_P)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:394 +msgid "Non-wildcard" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:159 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:183 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:100 +msgid "None" +msgstr "Cap" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:177 +msgid "Normal" +msgstr "Normala" + +#: modules/luci-base/luasrc/view/error404.htm:8 +msgid "Not Found" +msgstr "Pas trobat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75 +msgid "Not associated" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:32 +msgid "Not connected" +msgstr "Pas connectat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:120 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:146 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:280 +msgid "Not present" +msgstr "Pas present" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:101 +msgid "Not started on boot" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:409 +msgid "Not supported" +msgstr "Pas pres en carga" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:167 +msgid "Notice" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:127 +msgid "Nslookup" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:332 +msgid "Number of IGMP membership reports" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:362 +msgid "Number of cached DNS entries (max is 10000, 0 is no caching)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:199 +msgid "Number of parallel threads used for compression" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:309 +msgid "Number of peer notifications after failover event" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:69 +msgid "Obfuscated Group Password" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:61 +msgid "Obfuscated Password" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:105 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:97 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:49 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:80 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:54 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:67 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:93 +msgid "Obtain IPv6-Address" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:18 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:351 +msgid "Off" +msgstr "Desactivat" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:15 +msgid "Off-State Delay" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:18 +msgid "On" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:96 +msgid "On-Link route" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:11 +msgid "On-State Delay" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:484 +msgid "One of hostname or mac address must be specified!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:466 +msgid "One of the following: %s" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/nullsection.htm:17 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:22 +msgid "One or more fields contain invalid values!" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/map.htm:32 +msgid "One or more invalid/required values on tab" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/nullsection.htm:19 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:24 +msgid "One or more required fields have no value!" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:229 +msgid "" +"Only if current active slave fails and the primary slave is up (failure, 2)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:444 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19 +msgid "Open list..." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_openconnect.lua:9 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:64 +msgid "OpenConnect (CISCO AnyConnect)" +msgstr "" + +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:12 +msgid "OpenFortivpn" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:882 +msgid "Operating frequency" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:1971 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3653 +msgid "Option \"%s\" contains an invalid input value." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:1984 +msgid "Option \"%s\" must not be empty." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4037 +msgid "Option changed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4039 +msgid "Option removed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1609 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:92 +msgid "Optional" +msgstr "Opcional" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:102 +msgid "" +"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " +"starting with 0x." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:218 +msgid "" +"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or " +"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating " +"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') " +"for the interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:143 +msgid "" +"Optional. Base64-encoded preshared key. Adds in an additional layer of " +"symmetric-key cryptography for post-quantum resistance." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:159 +msgid "Optional. Create routes for Allowed IPs for this peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:134 +msgid "Optional. Description of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:87 +msgid "Optional. Do not create host routes to peers." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:161 +msgid "" +"Optional. Host of peer. Names are resolved prior to bringing up the " +"interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:97 +msgid "Optional. Maximum Transmission Unit of tunnel interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:165 +msgid "Optional. Port of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:169 +msgid "" +"Optional. Seconds between keep alive messages. Default is 0 (disabled). " +"Recommended value if this device is behind a NAT is 25." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:78 +msgid "Optional. UDP port used for outgoing and incoming packets." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:71 +msgid "Options" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:346 +msgid "Other:" +msgstr "Autre :" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:68 +msgid "Out" +msgstr "Sortissant" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:275 +msgid "Outbound:" +msgstr "Sortent :" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:96 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:98 +msgid "Outgoing checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:86 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:88 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:93 +msgid "Outgoing key" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:98 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:100 +msgid "Outgoing serialization" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:50 +msgid "Output Interface" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:59 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:165 +msgid "Output zone" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:57 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:222 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:50 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:76 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:71 +msgid "Override MAC address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:61 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:226 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:67 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:44 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:54 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:120 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:158 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:71 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:145 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:132 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:110 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:119 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:77 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:62 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:57 +msgid "Override MTU" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:72 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:63 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:72 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:67 +msgid "Override TOS" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:72 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:58 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:67 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:62 +msgid "Override TTL" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1079 +msgid "Override default interface name" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:167 +msgid "Override the gateway in DHCP responses" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:603 +msgid "" +"Override the netmask sent to clients. Normally it is calculated from the " +"subnet that is served." +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:179 +msgid "Override the table used for internal routes" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:3 +msgid "Overview" +msgstr "Apercebut" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2721 +msgid "Overwrite existing file \"%s\" ?" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:70 +msgid "Owner" +msgstr "Proprietari" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:97 +msgid "PAP/CHAP (both)" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:98 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:108 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:45 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:44 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:63 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:82 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:46 +msgid "PAP/CHAP password" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:96 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:103 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:88 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:43 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:74 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:42 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:61 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:77 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:44 +msgid "PAP/CHAP username" +msgstr "Identificant PAP / CHAP" + +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:101 +msgid "PDP Type" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:69 +msgid "PID" +msgstr "PID" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:95 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:94 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:87 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:68 +msgid "PIN" +msgstr "Còdi personal" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:21 +#: modules/luci-compat/luasrc/model/network.lua:39 +msgid "PIN code rejected" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1477 +msgid "PMK R1 Push" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:13 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:43 +msgid "PPP" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:58 +msgid "PPPoA Encapsulation" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:19 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:28 +msgid "PPPoATM" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:17 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:28 +msgid "PPPoE" +msgstr "PPPoE" + +#: modules/luci-compat/luasrc/model/network/proto_pppossh.lua:9 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:28 +msgid "PPPoSSH" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:15 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:28 +msgid "PPtP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:73 +msgid "PSID offset" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:70 +msgid "PSID-bits length" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:918 +msgid "PTM/EFM (Packet Transfer Mode)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:882 +msgid "Packet Steering" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +msgid "Packets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:275 +msgid "Packets To Transmit Before Moving To Next Slave" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:152 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:825 +msgid "Part of zone %q" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:29 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1599 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:51 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:108 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:52 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:58 +msgid "Password" +msgstr "Senhal" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:25 +msgid "Password authentication" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1531 +msgid "Password of Private Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1589 +msgid "Password of inner Private Key" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:31 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:33 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:35 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:37 +msgid "Password strength" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:111 +msgid "Password2" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:239 +msgid "Paste or drag SSH key file…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1510 +msgid "Path to CA-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1525 +msgid "Path to Client-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1528 +msgid "Path to Private Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1568 +msgid "Path to inner CA-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1583 +msgid "Path to inner Client-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1586 +msgid "Path to inner Private Key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2731 +msgid "Paused" +msgstr "En pausa" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:271 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:281 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:332 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:342 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:352 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:237 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:247 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:257 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:266 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:276 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:294 +msgid "Peak:" +msgstr "Punta :" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:89 +msgid "Peer IP address to assign" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:14 +#: modules/luci-compat/luasrc/model/network.lua:32 +msgid "Peer address is missing" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:115 +msgid "Peers" +msgstr "Pars" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:80 +msgid "Perfect Forward Secrecy" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:98 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:100 +msgid "Perform outgoing packets serialization (optional)." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:34 +msgid "Perform reboot" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:378 +msgid "Perform reset" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:407 +msgid "Permission denied" +msgstr "Permission refusada" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:169 +msgid "Persistent Keep Alive" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:288 +msgid "Phy Rate:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:325 +msgid "Physical Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:90 +msgid "Ping" +msgstr "Ping" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:48 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:49 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:83 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:84 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:138 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63 +msgid "Pkts." +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:19 +msgid "Please enter your username and password." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3768 +msgid "Please select the file to upload." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +msgid "Policy" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:21 +msgid "Port" +msgstr "Pòrt" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:278 +msgid "Port status:" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:492 +msgid "Potential negation of: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:38 +msgid "Power Management Mode" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:36 +msgid "Pre-emptive CRC errors (CRCP_P)" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:73 +msgid "Prefer LTE" +msgstr "Preferir LTE" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:74 +msgid "Prefer UMTS" +msgstr "Preferir UMTS" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:33 +msgid "Prefix Delegated" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:143 +msgid "Preshared Key" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:131 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:102 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:89 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:112 +msgid "" +"Presume peer to be dead after given amount of LCP echo failures, use 0 to " +"ignore failures" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:407 +msgid "Prevent listening on these interfaces." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1075 +msgid "Prevents client-to-client communication" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:211 +msgid "Primary Slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:228 +msgid "" +"Primary becomes active slave when it comes back up if speed and duplex " +"better than current slave (better, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:227 +msgid "Primary becomes active slave whenever it comes back up (always, 0)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:61 +msgid "Private Key" +msgstr "Clau privada" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:64 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:63 +msgid "Processes" +msgstr "Processus" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:21 +msgid "Profile" +msgstr "Perfil" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:66 +msgid "Prot." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:397 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:727 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:382 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:32 +msgid "Protocol" +msgstr "Protocòl" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:265 +msgid "Provide NTP server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:825 +msgid "Provide new network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1004 +msgid "Pseudo Ad-Hoc (ahdemo)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:139 +msgid "Public Key" +msgstr "Clau publica" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:275 +msgid "" +"Public keys allow for the passwordless SSH logins with a higher security " +"compared to the use of plain passwords. In order to upload a new key to the " +"device, paste an OpenSSH compatible public key line or drag a .pub file into the input field." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:214 +msgid "Public prefix routed to this device for distribution to clients." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:9 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:27 +msgid "QMI Cellular" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:41 +msgid "Quality" +msgstr "Qualitat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:264 +msgid "" +"Query all available upstream DNS " +"servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1465 +msgid "R0 Key Lifetime" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1471 +msgid "R1 Key Holder" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:88 +msgid "RFC3947 NAT-T mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:939 +msgid "RSSI threshold for joining" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:903 +msgid "RTS/CTS Threshold" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:48 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:83 +msgid "RX" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:142 +msgid "RX Rate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2072 +msgid "RX Rate / TX Rate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1343 +msgid "Radius-Accounting-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1348 +msgid "Radius-Accounting-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1338 +msgid "Radius-Accounting-Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1328 +msgid "Radius-Authentication-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1333 +msgid "Radius-Authentication-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1323 +msgid "Radius-Authentication-Server" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:102 +msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:178 +msgid "" +"Read /etc/ethers to configure the DHCP-Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:402 +msgid "Really switch protocol?" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:75 +msgid "Realtime Graphs" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1448 +msgid "Reassociation Deadline" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:293 +msgid "Rebind protection" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:20 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:126 +msgid "Reboot" +msgstr "Reaviar" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:153 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:162 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:46 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:51 +msgid "Rebooting…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:21 +msgid "Reboots the operating system of your device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:25 +msgid "Receive" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:83 +msgid "Recommended. IP addresses of the WireGuard interface." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:348 +msgid "Reconnect this interface" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56 +msgid "References" +msgstr "Referéncias" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2725 +msgid "Refreshing" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:153 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:39 +msgid "Relay" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:157 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:36 +msgid "Relay Bridge" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:154 +msgid "Relay between networks" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:12 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:64 +msgid "Relay bridge" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:50 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:40 +msgid "Remote IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:42 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:40 +msgid "Remote IPv4 address or FQDN" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:40 +msgid "Remote IPv6 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:42 +msgid "Remote IPv6 address or FQDN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:849 +msgid "Remove" +msgstr "Levar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1914 +msgid "Replace wireless configuration" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:17 +msgid "Request IPv6-address" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:23 +msgid "Request IPv6-prefix of length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:408 +msgid "Request timeout" +msgstr "Temps passat per la requèsta" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:90 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:97 +msgid "Require incoming checksum (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:97 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:94 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:99 +msgid "Require incoming packets serialization (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1610 +msgid "Required" +msgstr "Requesit" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:34 +msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:61 +msgid "Required. Base64-encoded private key for this interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:139 +msgid "Required. Base64-encoded public key of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:148 +msgid "" +"Required. IP addresses and prefixes that this peer is allowed to use inside " +"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer " +"routes through the tunnel." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1239 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1240 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1241 +msgid "Requires hostapd" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1246 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1247 +msgid "Requires hostapd with EAP Suite-B support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1244 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1245 +msgid "Requires hostapd with EAP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1248 +msgid "Requires hostapd with OWE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1242 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1243 +msgid "Requires hostapd with SAE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1237 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1238 +msgid "Requires hostapd with WEP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1607 +msgid "" +"Requires the 'full' version of wpad/hostapd and support from the wifi driver " +"
(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:233 +msgid "" +"Requires upstream supports DNSSEC; verify unsigned domain responses really " +"come from unsigned domains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1253 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1254 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1255 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1267 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1268 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1269 +msgid "Requires wpa-supplicant" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1260 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1261 +msgid "Requires wpa-supplicant with EAP Suite-B support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1258 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1259 +msgid "Requires wpa-supplicant with EAP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1262 +msgid "Requires wpa-supplicant with OWE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1256 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1257 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1272 +msgid "Requires wpa-supplicant with SAE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1251 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1252 +msgid "Requires wpa-supplicant with WEP support" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:224 +msgid "Reselection policy for primary slave" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2203 +#: modules/luci-base/luasrc/view/sysauth.htm:39 +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:17 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:30 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:66 +msgid "Reset" +msgstr "Reinicializar" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:308 +msgid "Reset Counters" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:376 +msgid "Reset to defaults" +msgstr "Reïnicializar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:162 +msgid "Resolv and Hosts Files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:188 +msgid "Resolve file" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:405 +msgid "Resource not found" +msgstr "Ressorsa introbabla" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:350 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:817 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:100 +msgid "Restart" +msgstr "Reaviar" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:313 +msgid "Restart Firewall" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:815 +msgid "Restart radio interface" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:372 +msgid "Restore" +msgstr "Restablir" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:382 +msgid "Restore backup" +msgstr "Restaurar salvagarda" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:371 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:372 +msgid "Reveal/hide password" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4053 +msgid "Revert" +msgstr "Tornar" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4138 +msgid "Revert changes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4320 +msgid "Revert request failed with status %h" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4300 +msgid "Reverting configuration…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:372 +msgid "Root directory for files served via TFTP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:297 +msgid "Root preparation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:202 +msgid "Round-Robin policy (balance-rr, 0)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:159 +msgid "Route Allowed IPs" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:73 +msgid "Route table" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:60 +msgid "Route type" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:625 +msgid "Router Advertisement-Service" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:46 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:26 +msgid "Router Password" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:15 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:194 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:27 +msgid "Routes" +msgstr "Rotas" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:15 +msgid "" +"Routes specify over which interface and gateway a certain host or network " +"can be reached." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:206 +msgid "Rule" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:335 +msgid "Run a filesystem check before mounting the device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:335 +msgid "Run filesystem check" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2364 +msgid "Runtime error" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:219 +msgid "SHA256" +msgstr "SHA256" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:59 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:175 +msgid "SNR" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:10 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:38 +msgid "SSH Access" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:70 +msgid "SSH server address" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:74 +msgid "SSH server port" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:58 +msgid "SSH username" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:274 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:51 +msgid "SSH-Keys" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:156 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:181 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1662 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:42 +msgid "SSID" +msgstr "SSID" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:9 +msgid "SSTP" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:41 +msgid "SSTP Server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:339 +msgid "SWAP" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2866 +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2198 +#: modules/luci-compat/luasrc/view/cbi/error.htm:17 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:26 +#: modules/luci-compat/luasrc/view/cbi/header.htm:20 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:435 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:123 +msgid "Save" +msgstr "Salvagardar" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2180 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4049 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:22 +msgid "Save & Apply" +msgstr "Salvagardar e aplicar" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:602 +msgid "Save error" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:406 +msgid "Save mtdblock" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:396 +msgid "Save mtdblock contents" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:822 +msgid "Scan" +msgstr "Analisar" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:26 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:76 +msgid "Scheduled Tasks" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4033 +msgid "Section added" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4035 +msgid "Section removed" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:331 +msgid "See \"mount\" manpage for details" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:257 +msgid "" +"Select 'Force upgrade' to flash the image even if the image format check " +"fails. Use only if you are sure that the firmware is correct and meant for " +"your device!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2622 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2762 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2927 +msgid "Select file…" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:318 +msgid "Selects the transmit hash policy to use for slave selection" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:144 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:102 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:125 +msgid "" +"Send LCP echo requests at the given interval in seconds, only effective in " +"conjunction with failure threshold" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:24 +msgid "Send the hostname of this device" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:157 +msgid "Server Settings" +msgstr "Paramètres del servidor" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:50 +msgid "Service Name" +msgstr "Nom de servici" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:87 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:71 +msgid "Service Type" +msgstr "Tipe de servici" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:36 +msgid "Services" +msgstr "Servicis" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2668 +msgid "Session expired" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:107 +msgid "Set VPN as Default Route" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:864 +msgid "" +"Set interface properties regardless of the link carrier (If set, carrier " +"sense events do not invoke hotplug handlers)." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:300 +msgid "Set same MAC Address to all slaves" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:642 +msgid "Set this interface as master for the dhcpv6 relay." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:304 +msgid "Set to currently active slave (active, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:305 +msgid "Set to first slave added to the bond (follow, 2)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:55 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:55 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:23 +msgid "Setting PLMN failed" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:68 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:26 +msgid "Setting operation mode failed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:565 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:575 +msgid "Setup DHCP Server" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:31 +msgid "Severely Errored Seconds (SES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:208 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:80 +msgid "Short GI" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1085 +msgid "Short Preamble" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:442 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18 +msgid "Show current backup file list" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:264 +msgid "Show empty chains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:354 +msgid "Shutdown this interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:57 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:63 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:186 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1661 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:41 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:141 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:173 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:179 +msgid "Signal" +msgstr "Senhal" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2071 +msgid "Signal / Noise" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:26 +msgid "Signal Attenuation (SATN)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:260 +msgid "Signal:" +msgstr "Senhal :" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3786 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:217 +msgid "Size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:361 +msgid "Size of DNS query cache" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:187 +msgid "Size of the ZRam device in megabytes" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/footer.htm:18 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:57 +msgid "Skip" +msgstr "Ignorar" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:36 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:46 +msgid "Skip to content" +msgstr "" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:35 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:45 +msgid "Skip to navigation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:178 +msgid "Slave Interfaces" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2883 +#: modules/luci-compat/luasrc/model/network.lua:1428 +msgid "Software VLAN" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/header.htm:5 +msgid "Some fields are invalid, cannot save values!" +msgstr "" + +#: modules/luci-base/luasrc/view/error404.htm:9 +msgid "Sorry, the object you requested was not found." +msgstr "" + +#: modules/luci-base/luasrc/view/error500.htm:9 +msgid "Sorry, the server encountered an unexpected error." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:414 +msgid "" +"Sorry, there is no sysupgrade support present; a new firmware image must be " +"flashed manually. Please refer to the wiki for device specific install " +"instructions." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:383 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:69 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:182 +msgid "Source" +msgstr "Font" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:84 +msgid "Source Address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:50 +msgid "Source interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:342 +msgid "" +"Specifies that duplicate frames (received on inactive ports) should be " +"dropped or delivered" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:358 +msgid "Specifies the ARP link monitoring frequency in milliseconds" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:366 +msgid "Specifies the IP addresses to use for ARP monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:395 +msgid "Specifies the MII link monitoring frequency in milliseconds" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:259 +msgid "Specifies the aggregation selection logic to use" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292 +msgid "Specifies the directory the device is attached to" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:252 +msgid "" +"Specifies the mac-address for the actor in protocol packet exchanges " +"(LACPDUs). If empty, masters' mac address defaults to system default" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175 +msgid "" +"Specifies the maximum amount of failed ARP requests until hosts are presumed " +"to be dead" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171 +msgid "" +"Specifies the maximum amount of seconds after which hosts are presumed to be " +"dead" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:886 +msgid "" +"Specifies the maximum transmit power the wireless radio may use. Depending " +"on regulatory requirements and wireless usage, the actual transmit power may " +"be reduced by the driver." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:236 +msgid "" +"Specifies the minimum number of links that must be active before asserting " +"carrier" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:200 +msgid "Specifies the mode to be used for this bonding interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:333 +msgid "" +"Specifies the number of IGMP membership reports to be issued after a " +"failover event in 200ms intervals" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:276 +msgid "" +"Specifies the number of packets to transmit through a slave before moving to " +"the next one" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:310 +msgid "" +"Specifies the number of peer notifications (gratuitous ARPs and unsolicited " +"IPv6 Neighbor Advertisements) to be issued after a failover event" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:284 +msgid "" +"Specifies the number of seconds between instances where the bonding driver " +"sends learning packets to each slaves peer switch" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:374 +msgid "Specifies the quantity of ARP IP targets that must be reachable" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:268 +msgid "" +"Specifies the rate in which the link partner will be asked to transmit " +"LACPDU packets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:225 +msgid "" +"Specifies the reselection policy for the primary slave when failure of the " +"active slave or recovery of the primary slave occurs" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:244 +msgid "Specifies the system priority" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:403 +msgid "" +"Specifies the time in milliseconds to wait before disabling a slave after a " +"link failure detection" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:411 +msgid "" +"Specifies the time in milliseconds to wait before enabling a slave after a " +"link recovery detection" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:382 +msgid "" +"Specifies whether ARP probes and replies should be validated or non-ARP " +"traffic should be filtered for link monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:301 +msgid "" +"Specifies whether active-backup mode should set all slaves to the same MAC " +"address at enslavement" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:419 +msgid "" +"Specifies whether or not miimon should use MII or ETHTOOL ioctls vs. " +"netif_carrier_ok()" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:293 +msgid "" +"Specifies whether to shuffle active flows across slaves based on the load" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:179 +msgid "" +"Specifies which slave interfaces should be attached to this bonding interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:212 +msgid "" +"Specifies which slave is the primary device. It will always be the active " +"slave while it is available" +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:63 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:72 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:67 +msgid "Specify a TOS (Type of Service)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:72 +msgid "" +"Specify a TOS (Type of Service). Can be either inherit (the " +"outer header inherits the value of the inner header) or an hexadecimal value " +"starting with 0x (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:72 +msgid "" +"Specify a TTL (Time to Live) for the encapsulating packet other than the " +"default (64) (optional)." +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:58 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:67 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:62 +msgid "" +"Specify a TTL (Time to Live) for the encapsulating packet other than the " +"default (64)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:72 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:77 +msgid "" +"Specify a Traffic Class. Can be either inherit (the outer " +"header inherits the value of the inner header) or an hexadecimal value " +"starting with 0x (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:67 +msgid "" +"Specify an MTU (Maximum Transmission Unit) other than the default (1280 " +"bytes) (optional)." +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:62 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:57 +msgid "" +"Specify an MTU (Maximum Transmission Unit) other than the default (1280 " +"bytes)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "Specify the secret encryption key here." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:581 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:99 +msgid "Start" +msgstr "Debuta" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:76 +msgid "Start priority" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1765 +msgid "Start refresh" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4253 +msgid "Starting configuration apply…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1678 +msgid "Starting wireless scan..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:109 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:64 +msgid "Startup" +msgstr "Aviada" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:19 +msgid "Static IPv4 Routes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:19 +msgid "Static IPv6 Routes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:165 +msgid "Static Leases" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:76 +msgid "Static Routes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1981 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:172 +#: modules/luci-compat/luasrc/model/network.lua:967 +msgid "Static address" +msgstr "Adreça estatica" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:411 +msgid "" +"Static leases are used to assign fixed IP addresses and symbolic hostnames " +"to DHCP clients. They are also required for non-dynamic interface " +"configurations where only hosts with a corresponding lease are served." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1102 +msgid "Station inactivity limit" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:16 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:385 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:871 +#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:9 +msgid "Status" +msgstr "Estatut" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:356 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:101 +msgid "Stop" +msgstr "Arrestar" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1676 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1770 +msgid "Stop refresh" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:259 +msgid "Strict order" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:33 +msgid "Strong" +msgstr "Fòrt" + +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:61 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1956 +msgid "Submit" +msgstr "Sometre" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:203 +msgid "Suppress logging" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:204 +msgid "Suppress logging of the routine operation of these protocols" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:44 +msgid "Swap free" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:139 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:3 +msgid "Switch" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:172 +msgid "Switch %q" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:150 +msgid "" +"Switch %q has an unknown topology - the VLAN settings might not be accurate." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2883 +#: modules/luci-compat/luasrc/model/network.lua:1426 +msgid "Switch VLAN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:403 +msgid "Switch protocol" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:103 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:104 +#: modules/luci-compat/luasrc/view/cbi/ipaddr.htm:26 +msgid "Switch to CIDR list notation" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2657 +msgid "Symbolic link" +msgstr "Ligam simbolic" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:75 +msgid "Sync with NTP-Server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:67 +msgid "Sync with browser" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:26 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:17 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:99 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:3 +msgid "System" +msgstr "Sistèma" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js:25 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:39 +msgid "System Log" +msgstr "Jornal sistèma" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:243 +msgid "System Priority" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:104 +msgid "System Properties" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:141 +msgid "System log buffer size" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:336 +msgid "TCP:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:163 +msgid "TFTP Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:371 +msgid "TFTP server root" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:49 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:84 +msgid "TX" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:142 +msgid "TX Rate" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:17 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:166 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:184 +msgid "Table" +msgstr "Tablèu" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:65 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:163 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:181 +msgid "Target" +msgstr "Cibla" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:103 +msgid "Target network" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:50 +msgid "Terminate" +msgstr "Terminar" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:84 +msgid "The block mount command failed with code %d" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:77 +msgid "" +"The HE.net endpoint update configuration changed, you must now use the plain " +"username instead of the user ID!" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:40 +msgid "The IPv4 address or the fully-qualified domain name of the remote end." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:42 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:40 +msgid "" +"The IPv4 address or the fully-qualified domain name of the remote tunnel end." +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:40 +msgid "The IPv6 address or the fully-qualified domain name of the remote end." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:42 +msgid "" +"The IPv6 address or the fully-qualified domain name of the remote tunnel end." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:59 +msgid "" +"The IPv6 prefix assigned to the provider, usually ends with ::" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1916 +msgid "" +"The allowed characters are: A-Z, a-z, 0-9 and _" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/error.htm:6 +msgid "The configuration file could not be loaded due to the following error:" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4129 +msgid "" +"The device could not be reached within %d seconds after applying the pending " +"changes, which caused the configuration to be rolled back for safety " +"reasons. If you believe that the configuration changes are correct " +"nonetheless, perform an unchecked configuration apply. Alternatively, you " +"can dismiss this warning and edit changes before attempting to apply again, " +"or revert all pending changes to keep the currently working configuration " +"state." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:280 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:392 +msgid "" +"The device file of the memory or partition (e.g." +" /dev/sda1)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:736 +msgid "" +"The existing wireless configuration needs to be changed for LuCI to function " +"properly." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:215 +msgid "" +"The flash image was uploaded. Below is the checksum and file size listed, " +"compare them with the original file to ensure data integrity.
Click " +"\"Proceed\" below to start the flash procedure." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:195 +msgid "The following rules are currently active on this system." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:154 +msgid "The gateway address must not be a local IP address" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:147 +msgid "The given SSH public key has already been added." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:153 +msgid "" +"The given SSH public key is invalid. Please supply proper public RSA or " +"ECDSA keys." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:716 +msgid "The interface name is already used" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:722 +msgid "The interface name is too long" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:55 +msgid "" +"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 " +"addresses." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:63 +msgid "The length of the IPv6 prefix in bits" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:163 +msgid "The local IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:46 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:44 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:44 +msgid "The local IPv4 address over which the tunnel is created (optional)." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:169 +msgid "The local IPv4 netmask" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:46 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:44 +msgid "The local IPv6 address over which the tunnel is created (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1922 +msgid "The network name is already used" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:139 +msgid "" +"The network ports on this device can be combined to several VLANs in which computers can " +"communicate directly with each other. VLANs are often used to separate different network " +"segments. Often there is by default one Uplink port for a connection to the " +"next greater network like the internet and other ports for a local network." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:158 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:42 +msgid "The reboot command failed with code %d" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:147 +msgid "The restore command failed with code %d" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1297 +msgid "The selected %s mode is incompatible with %s encryption" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:11 +msgid "The submitted security token is invalid or already expired!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:98 +msgid "" +"The system is erasing the configuration partition now and will reboot itself " +"when finished." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:291 +msgid "" +"The system is flashing now.
DO NOT POWER OFF THE DEVICE!
Wait a " +"few minutes before you try to reconnect. It might be necessary to renew the " +"address of your computer to reach the device again, depending on your " +"settings." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:163 +msgid "" +"The system is rebooting now. If the restored configuration changed the " +"current LAN IP address, you might need to reconnect manually." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:85 +msgid "The system password has been successfully changed." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:317 +msgid "The sysupgrade command failed with code %d" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:120 +msgid "" +"The uploaded backup archive appears to be valid and contains the files " +"listed below. Press \"Continue\" to restore the backup and reboot, or " +"\"Cancel\" to abort the operation." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:115 +msgid "The uploaded backup archive is not readable" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:244 +msgid "The uploaded firmware does not allow keeping current configuration." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:239 +msgid "" +"The uploaded image file does not contain a supported format. Make sure that " +"you choose the generic image format for your platform." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:535 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:567 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:52 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:89 +msgid "There are no active leases" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4268 +msgid "There are no changes to apply" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:55 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:213 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:56 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:80 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:282 +msgid "" +"There is no password set on this router. Please configure a root password to " +"protect the web interface." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49 +msgid "This IPv4 address of the relay" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1551 +msgid "This authentication type is not applicable to the selected EAP method." +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:57 +msgid "This does not look like a valid PEM file" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:256 +msgid "" +"This file may contain lines like 'server=/domain/1.2.3.4' or " +"'server=1.2.3.4' for domain-specific or full upstream DNS servers." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:426 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16 +msgid "" +"This is a list of shell glob patterns for matching files and directories to " +"include during sysupgrade. Modified files in /etc/config/ and certain other " +"configurations are automatically preserved." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:81 +msgid "" +"This is either the \"Update Key\" configured for the tunnel or the account " +"password if no update key has been configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:116 +msgid "" +"This is the content of /etc/rc.local. Insert your own commands here (in " +"front of 'exit 0') to execute them at the end of the boot process." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:54 +msgid "" +"This is the local endpoint address assigned by the tunnel broker, it usually " +"ends with ...:2/64" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:173 +msgid "" +"This is the only DHCP in the local network" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73 +msgid "This is the plain username for logging into the account" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:57 +msgid "" +"This is the prefix routed to you by the tunnel broker for use by clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:28 +msgid "This is the system crontab in which scheduled tasks can be defined." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:50 +msgid "" +"This is usually the address of the nearest PoP operated by the tunnel broker" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:65 +msgid "" +"This list gives an overview over currently running system processes and " +"their status." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1505 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1563 +msgid "" +"This option cannot be used because the ca-bundle package is not installed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2205 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2511 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:172 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:32 +msgid "This section contains no values yet" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:110 +msgid "Time Synchronization" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1093 +msgid "Time interval for rekeying GTK" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:124 +msgid "Timezone" +msgstr "Fus orari" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2678 +msgid "To login…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:372 +msgid "" +"To restore configuration files, you can upload a previously generated backup " +"archive here. To reset the firmware to its initial state, click \"Perform " +"reset\" (only possible with squashfs images)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:907 +msgid "Tone" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:35 +msgid "Total Available" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:113 +msgid "Traceroute" +msgstr "Traceroute" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:96 +msgid "Traffic" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:72 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:77 +msgid "Traffic Class" +msgstr "Classa del trafic" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:385 +msgid "Transfer" +msgstr "Transferir" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:24 +msgid "Transmit" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:317 +msgid "Transmit Hash Policy" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:74 +msgid "Trigger" +msgstr "Desenclavador" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:19 +msgid "Trigger Mode" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:69 +msgid "Tunnel ID" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2886 +#: modules/luci-compat/luasrc/model/network.lua:1431 +msgid "Tunnel Interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:44 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:55 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:76 +msgid "Tunnel Link" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:185 +msgid "Tx-Power" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:44 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:43 +msgid "Type" +msgstr "Tipe" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:326 +msgid "UDP:" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:90 +msgid "UMTS only" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_3g.lua:10 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:43 +msgid "UMTS/GPRS/EV-DO" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360 +msgid "UUID" +msgstr "UUID" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:16 +#: modules/luci-base/htdocs/luci-static/resources/network.js:17 +#: modules/luci-compat/luasrc/model/network.lua:34 +#: modules/luci-compat/luasrc/model/network.lua:35 +msgid "Unable to determine device name" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:18 +#: modules/luci-compat/luasrc/model/network.lua:36 +msgid "Unable to determine external IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:19 +#: modules/luci-compat/luasrc/model/network.lua:37 +msgid "Unable to determine upstream interface" +msgstr "" + +#: modules/luci-base/luasrc/view/error404.htm:11 +msgid "Unable to dispatch" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/dmesg.js:9 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js:15 +msgid "Unable to load log data:" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:54 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:54 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:22 +msgid "Unable to obtain client ID" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:221 +msgid "Unable to obtain mount information" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:278 +msgid "Unable to reset ip6tables counters: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:276 +msgid "Unable to reset iptables counters: %s" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:7 +msgid "Unable to resolve AFTR host name" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:20 +#: modules/luci-compat/luasrc/model/network.lua:38 +msgid "Unable to resolve peer host name" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:284 +msgid "Unable to restart firewall: %s" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:20 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:342 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:57 +msgid "Unable to save contents: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:33 +msgid "Unavailable Seconds (UAS)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/fs.js:102 +msgid "Unexpected reply data format" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1983 +#: modules/luci-compat/luasrc/model/network.lua:971 +msgid "Unknown" +msgstr "Desconegut" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:47 +msgid "Unknown and unsupported connection method." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2292 +#: modules/luci-compat/luasrc/model/network.lua:1138 +msgid "Unknown error (%s)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:412 +msgid "Unknown error code" +msgstr "Còde d'error desconegut" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1980 +#: modules/luci-base/htdocs/luci-static/resources/protocol/none.js:6 +#: modules/luci-compat/luasrc/model/network.lua:965 +msgid "Unmanaged" +msgstr "Pas gerit" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:195 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:217 +msgid "Unmount" +msgstr "Desmontar" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:112 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:259 +msgid "Unnamed key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3973 +msgid "Unsaved Changes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:410 +msgid "Unspecified error" +msgstr "Error pas precisada" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:64 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:9 +msgid "Unsupported MAP type" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:69 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:27 +msgid "Unsupported modem" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:267 +msgid "Unsupported protocol type." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:151 +msgid "Up" +msgstr "Amont" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:410 +msgid "Up Delay" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3860 +msgid "Upload" +msgstr "Mandadís" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:413 +msgid "" +"Upload a sysupgrade-compatible image here to replace the running firmware." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:138 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:169 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:384 +msgid "Upload archive..." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2816 +msgid "Upload file" +msgstr "Enviar un fichièr" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2791 +msgid "Upload file…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2738 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3848 +msgid "Upload request failed: %s" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3767 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3821 +msgid "Uploading file…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:737 +msgid "" +"Upon pressing \"Continue\", anonymous \"wifi-iface\" sections will be " +"assigned with a name in the form wifinet# and the network will be " +"restarted to apply the updated configuration." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:81 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:60 +msgid "Uptime" +msgstr "Temps de connexion" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:177 +msgid "Use /etc/ethers" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:269 +msgid "Use DHCP advertised servers" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:167 +msgid "Use DHCP gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:40 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:124 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:39 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:116 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:68 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:59 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:103 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:77 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:100 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:69 +msgid "Use DNS servers advertised by peer" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:565 +msgid "Use ISO/IEC 3166 alpha2 country codes." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:56 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:97 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:77 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:75 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:92 +msgid "Use MTU on tunnel interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:93 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:73 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:88 +msgid "Use TTL on tunnel interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:320 +msgid "Use XOR of hardware MAC addresses (layer2)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:321 +msgid "Use XOR of hardware MAC addresses and IP addresses (layer2+3)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:323 +msgid "" +"Use XOR of hardware MAC addresses and IP addresses, rely on skb_flow_dissect " +"(encap2+3)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:294 +msgid "Use as external overlay (/overlay)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:293 +msgid "Use as root filesystem (/)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:34 +msgid "Use broadcast flag" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:860 +msgid "Use builtin IPv6-management" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:43 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:182 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:127 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:42 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:119 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:62 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:67 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:80 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:103 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:72 +msgid "Use custom DNS servers" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:37 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:116 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:33 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:74 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:61 +msgid "Use default gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:48 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:230 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:119 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:51 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:88 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:68 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:52 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:70 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:83 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:111 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:153 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:72 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:67 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:111 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:98 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:72 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:85 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:108 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:64 +msgid "Use gateway metric" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:96 +msgid "Use legacy MAP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:96 +msgid "" +"Use legacy MAP interface identifier format (draft-ietf-softwire-map-00) " +"instead of RFC7597" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:179 +msgid "Use routing table" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1498 +msgid "Use system certificates" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1556 +msgid "Use system certificates for inner-tunnel" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:412 +msgid "" +"Use the Add Button to add a new lease entry. The MAC-Address identifies the host, the IPv4-Address specifies the fixed " +"address to use, and the Hostname is assigned as a symbolic name to " +"the requesting host. The optional Lease time can be used to set non-" +"standard host-specific lease time, e.g. 12h, 3d or infinite." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:322 +msgid "Use upper layer protocol information (layer3+4)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:324 +msgid "" +"Use upper layer protocol information, rely on skb_flow_dissect (encap3+4)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:36 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:194 +msgid "Used" +msgstr "Utilizat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1394 +msgid "Used Key Slot" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1437 +msgid "" +"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not " +"needed with normal WPA(2)-PSK." +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:105 +msgid "User Group" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:114 +msgid "User certificate (PEM encoded)" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:126 +msgid "User key (PEM encoded)" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:23 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:106 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:50 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:56 +msgid "Username" +msgstr "Nom d'utilizaire" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:975 +msgid "VC-Mux" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:923 +msgid "VDSL" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:173 +msgid "VLANs on %q" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:54 +msgid "VPN" +msgstr "VPN" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:42 +msgid "VPN Local address" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:46 +msgid "VPN Local port" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:96 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:42 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:58 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:39 +msgid "VPN Server" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:99 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:45 +msgid "VPN Server port" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:103 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:60 +msgid "VPN Server's certificate SHA1 hash" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_vpnc.lua:9 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:9 +msgid "VPNC (CISCO 3000 (and others) VPN)" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:10 +msgid "VXLAN (RFC7348)" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:48 +msgid "VXLAN network identifier" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:10 +msgid "VXLANv6 (RFC7348)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1498 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1556 +msgid "" +"Validate server certificate using built-in system CA bundle,
requires " +"the \"ca-bundle\" package" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:387 +msgid "Validation for all slaves" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:385 +msgid "Validation only for active slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:386 +msgid "Validation only for backup slaves" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:154 +msgid "Value must not be empty" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:73 +msgid "Vendor" +msgstr "Vendeire" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:55 +msgid "Vendor Class to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:196 +msgid "Verifying the uploaded image file." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:59 +msgid "Virtual dynamic interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1032 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1033 +msgid "WDS" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1217 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1306 +msgid "WEP Open System" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1218 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1307 +msgid "WEP Shared Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "WEP passphrase" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1070 +msgid "WMM Mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "WPA passphrase" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1208 +msgid "" +"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " +"and ad-hoc mode) to be installed." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:47 +msgid "Waiting for device..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:168 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:178 +msgid "Warning" +msgstr "Avertiment" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:26 +msgid "Warning: There are unsaved changes that will get lost on reboot!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:37 +msgid "Weak" +msgstr "Feble" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1460 +msgid "" +"When using a PSK, the PMK can be automatically generated. When enabled, the " +"R0/R1 key options below are not applied. Disable this to use the R0 and R1 " +"key options." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:166 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:468 +msgid "Width" +msgstr "Largor" + +#: modules/luci-compat/luasrc/model/network/proto_wireguard.lua:9 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:29 +msgid "WireGuard VPN" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:17 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:87 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:105 +msgid "Wireless" +msgstr "Inalambric" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2874 +#: modules/luci-compat/luasrc/model/network.lua:1419 +msgid "Wireless Adapter" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2853 +#: modules/luci-base/htdocs/luci-static/resources/network.js:4057 +#: modules/luci-compat/luasrc/model/network.lua:1405 +#: modules/luci-compat/luasrc/model/network.lua:1868 +msgid "Wireless Network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:753 +msgid "Wireless Overview" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:922 +msgid "Wireless Security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:735 +msgid "Wireless configuration migration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:153 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:193 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:47 +msgid "Wireless is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:153 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:193 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:47 +msgid "Wireless is not associated" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:877 +msgid "Wireless network is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:877 +msgid "Wireless network is enabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:275 +msgid "Write received DNS requests to syslog" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:160 +msgid "Write system log to file" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:204 +msgid "XOR policy (balance-xor, 2)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3643 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:295 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:344 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:109 +msgid "Yes" +msgstr "Òc" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:303 +msgid "Yes (none, 0)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:176 +msgid "" +"You appear to be currently connected to the device via the \"%h\" interface. " +"Do you really want to shut down the interface?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:112 +msgid "" +"You can enable or disable installed init scripts here. Changes will applied " +"after a device reboot.
Warning: If you disable essential init " +"scripts like \"network\", your device might become inaccessible!" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:65 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:223 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:73 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:294 +msgid "" +"You must enable JavaScript in your browser or LuCI will not work properly." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:115 +msgid "" +"You must select a primary interface which is included in selected slave " +"interfaces!" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:96 +msgid "" +"You must select at least one ARP IP target if ARP monitoring is selected!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:192 +msgid "ZRam Compression Algorithm" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:199 +msgid "ZRam Compression Streams" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:185 +msgid "ZRam Settings" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:187 +msgid "ZRam Size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:331 +msgid "any" +msgstr "Quin que siá" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:908 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:916 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:921 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1157 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:78 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:48 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:51 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:103 +msgid "auto" +msgstr "auto" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:85 +msgid "automatic" +msgstr "automatic" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:82 +msgid "baseT" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:981 +msgid "bridged" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:146 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:401 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:35 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:99 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:31 +msgid "create" +msgstr "crear" + +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:69 +msgid "create:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:55 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:57 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:58 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:62 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:63 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:83 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:84 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:185 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:186 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:187 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:171 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:173 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:178 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:179 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:261 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:264 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:267 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:271 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:274 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:277 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:303 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:304 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:305 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:309 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:310 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:311 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:313 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:314 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:315 +msgid "dBm" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1014 +msgid "disable" +msgstr "desactivar" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:185 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:626 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:632 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:638 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:91 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:25 +msgid "disabled" +msgstr "desactivat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:519 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:553 +msgid "driver default" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:81 +msgid "e.g: --proxy 10.10.10.10" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:83 +msgid "e.g: dump" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:524 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:545 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:42 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:69 +msgid "expired" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:182 +msgid "" +"file where given DHCP-leases will be stored" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:85 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:195 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:61 +msgid "forward" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:84 +msgid "full-duplex" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:84 +msgid "half-duplex" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:569 +msgid "hexadecimal encoded value" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1738 +msgid "hidden" +msgstr "amagat" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:629 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:635 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:640 +msgid "hybrid mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:36 +msgid "if target is a network" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:63 +msgid "ignore" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:191 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:46 +msgid "input" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:395 +msgid "key between 8 and 63 characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:407 +msgid "key with either 5 or 13 characters" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:189 +msgid "local DNS file" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1316 +msgid "medium security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1465 +msgid "minutes" +msgstr "minutas" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:422 +msgid "netif_carrier_ok()" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +msgid "no" +msgstr "non" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:76 +msgid "no link" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:59 +msgid "non-empty value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3007 +msgid "none" +msgstr "pas res" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:41 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:55 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:69 +msgid "not present" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:347 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:901 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:905 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:197 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:245 +msgid "off" +msgstr "desactivat" + +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:196 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:242 +msgid "on" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1317 +msgid "open network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:46 +msgid "output" +msgstr "sortida" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:241 +msgid "positive decimal value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:233 +msgid "positive integer value" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:80 +msgid "random" +msgstr "aleatòri" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:628 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:634 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:639 +msgid "relay mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:982 +msgid "routed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1093 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1102 +msgid "sec" +msgstr "seg" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:627 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:633 +msgid "server mode" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:53 +msgid "sstpc Log-level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:649 +msgid "stateful-only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:647 +msgid "stateless" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:648 +msgid "stateless + stateful" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1315 +msgid "strong security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:352 +msgid "tagged" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1448 +msgid "time units (TUs / 1.024 ms) [1000-65535]" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:559 +msgid "unique value" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:534 +msgid "unknown" +msgstr "desconegut" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:340 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:522 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:543 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:40 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:67 +msgid "unlimited" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3372 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:76 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:138 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:369 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:393 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:428 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:465 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:561 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:53 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:38 +msgid "unspecified" +msgstr "pas precisat" + +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:71 +msgid "unspecified -or- create:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:350 +msgid "untagged" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:246 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:121 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:132 +msgid "valid IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:246 +msgid "valid IP address or prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:281 +msgid "valid IPv4 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:254 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:125 +msgid "valid IPv4 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:254 +msgid "valid IPv4 address or network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:374 +msgid "valid IPv4 address:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:314 +msgid "valid IPv4 network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:276 +msgid "valid IPv4 or IPv6 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:267 +msgid "valid IPv4 prefix value (0-32)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:286 +msgid "valid IPv6 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:262 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:129 +msgid "valid IPv6 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:262 +msgid "valid IPv6 address or prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:304 +msgid "valid IPv6 host id" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:319 +msgid "valid IPv6 network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:272 +msgid "valid IPv6 prefix value (0-128)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:340 +msgid "valid MAC address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:411 +msgid "valid UCI identifier" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:362 +msgid "valid UCI identifier, hostname or IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:383 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:386 +msgid "valid address:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:533 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:537 +msgid "valid date (YYYY-MM-DD)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:237 +msgid "valid decimal value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:405 +msgid "valid hexadecimal WEP key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:393 +msgid "valid hexadecimal WPA key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:368 +msgid "valid host:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:355 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:357 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:73 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:107 +msgid "valid hostname" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:345 +msgid "valid hostname or IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:229 +msgid "valid integer value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:309 +msgid "valid network in address/netmask notation" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:508 +msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:332 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:335 +msgid "valid port or port range (port1-port2)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:324 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:136 +msgid "valid port value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:513 +msgid "valid time (HH:MM:SS)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:435 +msgid "value between %d and %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:416 +msgid "value between %f and %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:420 +msgid "value greater or equal to %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:424 +msgid "value smaller or equal to %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:429 +msgid "value with %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:440 +msgid "value with at least %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:445 +msgid "value with at most %d characters" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1317 +msgid "weak security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +msgid "yes" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:20 +msgid "« Back" +msgstr "" diff --git a/luci-base/po/templates/base.pot b/luci-base/po/templates/base.pot new file mode 100644 index 000000000..d23111f55 --- /dev/null +++ b/luci-base/po/templates/base.pot @@ -0,0 +1,7611 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:929 +msgid "%.1f dB" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:114 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:261 +msgid "%d Bit" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3689 +msgid "%d invalid field(s)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:35 +msgid "%s is untagged in multiple VLANs!" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:294 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:403 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:270 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:307 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:325 +msgid "(%d minute window, %d second interval)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:118 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:124 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:258 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:282 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:88 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:91 +msgid "(empty)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:351 +#: modules/luci-compat/luasrc/view/cbi/network_netinfo.htm:23 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:58 +msgid "(no interfaces attached)" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:48 +msgid "-- Additional Field --" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/cbi.js:275 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3372 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3704 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:767 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1005 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1974 +#: modules/luci-compat/luasrc/view/cbi/header.htm:8 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:88 +msgid "-- Please choose --" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/cbi.js:276 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1006 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:1975 +#: modules/luci-compat/luasrc/view/cbi/header.htm:9 +msgid "-- custom --" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:270 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:379 +msgid "-- match by label --" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:256 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:362 +msgid "-- match by uuid --" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:27 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:44 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:23 +msgid "-- please select --" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:54 +msgctxt "sstp log level value" +msgid "0" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:939 +msgid "0 = not using RSSI threshold, 1 = do not change driver default" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:55 +msgctxt "sstp log level value" +msgid "1" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:231 +msgid "1 Minute Load:" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:251 +msgid "15 Minute Load:" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:56 +msgctxt "sstp log level value" +msgid "2" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:57 +msgctxt "sstp log level value" +msgid "3" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:58 +msgctxt "sstp log level value" +msgid "4" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1442 +msgid "4-character hexadecimal ID" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:18 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:11 +msgid "464XLAT (CLAT)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:241 +msgid "5 Minute Load:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1471 +msgid "6-octet identifier as a hex string - no colons" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1431 +msgid "802.11r Fast Transition" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1619 +msgid "802.11w Association SA Query maximum timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1626 +msgid "802.11w Association SA Query retry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1607 +msgid "802.11w Management Frame Protection" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1619 +msgid "802.11w maximum timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1626 +msgid "802.11w retry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:956 +msgid "BSSID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:326 +msgid "DNS query port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:317 +msgid "DNS server port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:260 +msgid "" +"DNS servers will be queried in the " +"order of the resolvfile" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:945 +msgid "ESSID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:475 +msgid "IPv4-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:42 +msgid "IPv4-Gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:603 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:36 +msgid "IPv4-Netmask" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +msgid "" +"IPv6-Address or Network " +"(CIDR)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:42 +msgid "IPv6-Gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:504 +msgid "IPv6-Suffix (hex)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:58 +msgid "LED Configuration" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:69 +msgid "LED Name" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:431 +msgid "MAC-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:498 +msgid "DUID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:335 +msgid "" +"Max. DHCP leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:344 +msgid "" +"Max. EDNS0 packet size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:353 +msgid "Max. concurrent queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:29 +msgid "" +"
Note: you need to manually restart the cron service if the crontab file " +"was empty before editing." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2720 +msgid "A directory with the same name already exists." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2670 +msgid "A new login is required since the authentication session expired." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:909 +msgid "A43C + J43 + A43" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:910 +msgid "A43C + J43 + A43 + V43" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:922 +msgid "ADSL" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:898 +msgid "ANSI T1.413" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:94 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:93 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:86 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:67 +msgid "APN" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:197 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:352 +msgid "ARP" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:365 +msgid "ARP IP Targets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:357 +msgid "ARP Interval" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:381 +msgid "ARP Validation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:373 +msgid "ARP mode to consider a slave as being up" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:77 +msgid "ARP monitoring is not supported for the selected policy!" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175 +msgid "ARP retry threshold" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:917 +msgid "ATM (Asynchronous Transfer Mode)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:938 +msgid "ATM Bridges" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:970 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:66 +msgid "ATM Virtual Channel Identifier (VCI)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:971 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:70 +msgid "ATM Virtual Path Identifier (VPI)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:938 +msgid "" +"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual " +"Linux network interfaces which can be used in conjunction with DHCP or PPP " +"to dial into the provider network." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:977 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:62 +msgid "ATM device number" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:37 +msgid "ATU-C System Vendor ID" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:265 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:543 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:547 +msgid "Absent Interface" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47 +msgid "Access Concentrator" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:927 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1032 +msgid "Access Point" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:360 +msgid "Actions" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:200 +msgid "Active IPv4-Routes" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:206 +msgid "Active IPv6-Routes" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:81 +msgid "Active Connections" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:33 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:92 +msgid "Active DHCP Leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:52 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:94 +msgid "Active DHCPv6 Leases" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:203 +msgid "Active-Backup policy (active-backup, 1)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3666 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:929 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:23 +msgid "Ad-Hoc" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:208 +msgid "Adaptive load balancing (balance-alb, 6)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:207 +msgid "Adaptive transmit load balancing (balance-tlb, 5)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2167 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2170 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2184 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2185 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3170 +#: modules/luci-compat/luasrc/view/cbi/nsection.htm:25 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:189 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:197 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:39 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:47 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:54 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:827 +msgid "Add" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:942 +msgid "Add ATM Bridge" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:92 +msgid "Add IPv4 address…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:207 +msgid "Add IPv6 address…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:65 +msgid "Add LED action" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:219 +msgid "Add VLAN" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:15 +msgid "Add instance" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:146 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:152 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:247 +msgid "Add key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:248 +msgid "Add local domain suffix to names served from hosts files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:311 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:757 +msgid "Add new interface..." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:125 +msgid "Add peer" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:200 +msgid "Additional Hosts files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:255 +msgid "Additional servers file" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:34 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:35 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:36 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:37 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:38 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:39 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:40 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:41 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:42 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:43 +msgid "Address" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:151 +msgid "Address to access local relay bridge" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:285 +msgid "Addresses" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:3 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:15 +msgid "Administration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:164 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:324 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:553 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:968 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:25 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:866 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:924 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:241 +msgid "Advanced Settings" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:28 +msgid "Aggregate Transmit Power (ACTATP)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:258 +msgid "Aggregation Selection Logic" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:261 +msgid "Aggregator: All slaves down or has no slaves (stable, 0)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:263 +msgid "" +"Aggregator: Chosen by the largest number of ports + slave added/removed or " +"state changes (count, 2)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:262 +msgid "Aggregator: Slave added/removed or state changes (bandwidth, 1)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:171 +msgid "Alert" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2871 +#: modules/luci-compat/luasrc/model/network.lua:1417 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:61 +msgid "Alias Interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:145 +msgid "Alias of \"%s\"" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:263 +msgid "All Servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:209 +msgid "" +"Allocate IP addresses sequentially, starting from the lowest available " +"address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:208 +msgid "Allocate IP sequentially" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:25 +msgid "Allow SSH password authentication" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1112 +msgid "Allow AP mode to disconnect STAs based on low ACK condition" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1016 +msgid "Allow all except listed" +msgstr "" + +#: modules/luci-compat/root/usr/share/rpcd/acl.d/luci-compat.json:3 +msgid "Allow full UCI access for legacy applications" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:892 +msgid "Allow legacy 802.11b rates" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1015 +msgid "Allow listed only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:300 +msgid "Allow localhost" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:157 +msgid "Allow rebooting the device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:36 +msgid "Allow remote hosts to connect to local SSH forwarded ports" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:31 +msgid "Allow root logins with password" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:3 +msgid "Allow system feature probing" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:31 +msgid "Allow the root user to login with password" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:301 +msgid "" +"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:148 +msgid "Allowed IPs" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:654 +msgid "Always announce default router" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/none.js:5 +msgid "Always off (kernel: none)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:6 +msgid "Always on (kernel: default-on)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:907 +msgid "" +"Always use 40MHz channels even if the secondary channel overlaps. Using this " +"option does not comply with IEEE 802.11n-2009!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:603 +msgid "An error occurred while saving the form:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:890 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:20 +msgid "Annex" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:891 +msgid "Annex A + L + M (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:899 +msgid "Annex A G.992.1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:900 +msgid "Annex A G.992.2" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:901 +msgid "Annex A G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:902 +msgid "Annex A G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:892 +msgid "Annex B (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:895 +msgid "Annex B G.992.1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:896 +msgid "Annex B G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:897 +msgid "Annex B G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:893 +msgid "Annex J (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:903 +msgid "Annex L G.992.3 POTS 1" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:894 +msgid "Annex M (all)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:904 +msgid "Annex M G.992.3" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:905 +msgid "Annex M G.992.5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:654 +msgid "Announce as default router even if no public prefix is available." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:659 +msgid "Announced DNS domains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:658 +msgid "Announced DNS servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1596 +msgid "Anonymous Identity" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:162 +msgid "Anonymous Mount" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:158 +msgid "Anonymous Swap" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:84 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:174 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:195 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:60 +msgid "Any zone" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:119 +msgid "Apply backup?" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4276 +msgid "Apply request failed with status %h" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2181 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4142 +msgid "Apply unchecked" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4215 +msgid "Applying configuration changes… %ds" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:56 +msgid "Architecture" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27 +msgid "" +"Assign a part of given length of every public IPv6-prefix to this interface" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31 +msgid "" +"Assign prefix parts using this hexadecimal subprefix ID for this interface." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2078 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:245 +msgid "Associated Stations" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:46 +msgid "Associations" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:154 +msgid "Attempt to enable configured mount points for attached devices" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:104 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:64 +msgid "Auth Group" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1535 +msgid "Authentication" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:96 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:70 +msgid "Authentication Type" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:172 +msgid "Authoritative" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:17 +msgid "Authorization Required" +msgstr "" + +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:196 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:197 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:241 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:244 +msgid "Auto Refresh" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:106 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:18 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:24 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:98 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:50 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:94 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:81 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:55 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:68 +msgid "Automatic" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_hnet.lua:7 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:7 +msgid "Automatic Homenet (HNCP)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:174 +msgid "Automatically check filesystem for errors before mounting" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:170 +msgid "Automatically mount filesystems on hotplug" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:166 +msgid "Automatically mount swap on hotplug" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:170 +msgid "Automount Filesystem" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:166 +msgid "Automount Swap" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:193 +msgid "Available" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:268 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:278 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:329 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:339 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:349 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:234 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:244 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:254 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:263 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:273 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:291 +msgid "Average:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:911 +msgid "B43 + B43C" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:912 +msgid "B43 + B43C + V43" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:48 +msgid "BR / DMR / AFTR" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:158 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:182 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1665 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:44 +msgid "BSSID" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/footer.htm:14 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:48 +msgid "Back to Overview" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:48 +msgid "Back to configuration" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:363 +msgid "Backup" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:114 +msgid "Backup / Flash Firmware" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:323 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:12 +msgid "Backup file list" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:158 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:451 +msgid "Band" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:910 +msgid "Beacon Interval" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:324 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:46 +msgid "" +"Below is the determined list of files to backup. It consists of changed " +"configuration files marked by opkg, essential base files and the user " +"defined backup patterns." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:395 +msgid "" +"Bind dynamically to interfaces rather than wildcard address (recommended as " +"linux default)" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:52 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:62 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:48 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:55 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:57 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:52 +msgid "Bind interface" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:52 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:62 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:48 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:55 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:57 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:52 +msgid "Bind the tunnel to this interface (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:188 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:63 +msgid "Bitrate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:266 +msgid "Bogus NX Domain Override" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:199 +msgid "Bonding Policy" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2877 +#: modules/luci-compat/luasrc/model/network.lua:1421 +msgid "Bridge" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:416 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:730 +msgid "Bridge interfaces" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:978 +msgid "Bridge unit number" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:412 +msgid "Bring up on boot" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:205 +msgid "Broadcast policy (broadcast, 3)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2810 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3799 +msgid "Browse…" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:37 +msgid "Buffered" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:138 +msgid "CA certificate; if empty it will be saved after the first connection." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:7 +msgid "CLAT configuration failed" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:72 +msgid "CPU usage (%)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:41 +msgid "Cached" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:53 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:53 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:21 +msgid "Call failed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2903 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3808 +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:14 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:52 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:187 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:763 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1952 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:128 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:272 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:184 +msgid "Cancel" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:17 +msgid "Category" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1519 +msgid "Certificate constraint (Domain)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1516 +msgid "Certificate constraint (SAN)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1513 +msgid "Certificate constraint (Subject)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1522 +msgid "Certificate constraint (Wildcard)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1513 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1571 +msgid "" +"Certificate constraint substring - e.g. /CN=wifi.mycompany.com
See " +"`logread -f` during handshake for actual values" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1519 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1577 +msgid "" +"Certificate constraint(s) against DNS SAN values (if available)
or " +"Subject CN (exact match)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1522 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1580 +msgid "" +"Certificate constraint(s) against DNS SAN values (if available)
or " +"Subject CN (suffix match)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1516 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1574 +msgid "" +"Certificate constraint(s) via Subject Alternate Name values
(supported " +"attributes: EMAIL, DNS, URI) - e.g. DNS:wifi.mycompany.com" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:200 +msgid "Chain" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4028 +msgid "Changes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4311 +msgid "Changes have been reverted." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:46 +msgid "Changes the administrator password for accessing the device" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:162 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:128 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:184 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:460 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1663 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:62 +msgid "Channel" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:174 +msgid "Check filesystems before mount" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1914 +msgid "Check this option to delete the existing networks from this radio." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:110 +msgid "Checking archive…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:193 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:195 +msgid "Checking image…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:399 +msgid "Choose mtdblock" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:491 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1942 +msgid "" +"Choose the firewall zone you want to assign to this interface. Select " +"unspecified to remove the interface from the associated zone or " +"fill out the custom field to define a new zone and attach the " +"interface to it." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:959 +msgid "" +"Choose the network(s) you want to attach to this wireless interface or fill " +"out the custom field to define a new network." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1148 +msgid "Cipher" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:91 +msgid "Cisco UDP encapsulation" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:363 +msgid "" +"Click \"Generate archive\" to download a tar archive of the current " +"configuration files." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:396 +msgid "" +"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS " +"FEATURE IS FOR PROFESSIONALS! )" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3665 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:928 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1033 +msgid "Client" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:52 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:47 +msgid "Client ID to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:148 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:154 +msgid "Close" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:157 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:141 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:115 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:138 +msgid "" +"Close inactive connection after the given amount of seconds, use 0 to " +"persist connection" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:49 +msgid "Close list..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:42 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:61 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2076 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:389 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:317 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:320 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:204 +msgid "Collecting data..." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:71 +msgid "Command" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:401 +msgid "Command OK" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:33 +msgid "Command failed" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:72 +msgid "Comment" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1634 +msgid "" +"Complicates key reinstallation attacks on the client side by disabling " +"retransmission of EAPOL-Key frames that are used to install keys. This " +"workaround might cause interoperability issues and reduced robustness of key " +"negotiation especially in environments with heavy traffic load." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:96 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:98 +msgid "Compute outgoing checksum (optional)." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4028 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:426 +msgid "Configuration" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4190 +msgid "Configuration changes applied." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4128 +msgid "Configuration changes have been rolled back!" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:63 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:21 +msgid "Configuration failed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:175 +msgid "Confirm disconnect" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:55 +msgid "Confirmation" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:51 +msgid "Connected" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:9 +#: modules/luci-compat/luasrc/model/network.lua:27 +msgid "Connection attempt failed" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:40 +msgid "Connection attempt failed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:411 +msgid "Connection lost" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:117 +msgid "Connections" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:377 +msgid "Consider the slave up when all ARP IP targets are reachable (all, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:376 +msgid "Consider the slave up when any ARP IP target is reachable (any, 0)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:18 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:340 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:55 +msgid "Contents have been saved." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:742 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:132 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:264 +msgid "Continue" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4164 +msgid "" +"Could not regain access to the device after applying the configuration " +"changes. You might need to reconnect if you modified network related " +"settings such as the IP address or wireless security credentials." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:189 +msgid "Country" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:889 +msgid "Country Code" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:491 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1942 +msgid "Create / Assign firewall-zone" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:798 +msgid "Create interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:416 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:730 +msgid "Creates a bridge over specified interface(s)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:170 +msgid "Critical" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:174 +msgid "Cron Log Level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:533 +msgid "Current power" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:568 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:570 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:51 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:53 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:82 +#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:83 +msgid "Custom Interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:36 +msgid "Custom delegated IPv6-prefix" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:382 +msgid "" +"Custom files (certificates, scripts) may remain on the system. To prevent " +"this, perform a factory-reset first." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:6 +msgid "Custom flash interval (kernel: timer)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:59 +msgid "" +"Customizes the behaviour of the device LEDs if possible." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1353 +msgid "DAE-Client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1358 +msgid "DAE-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1363 +msgid "DAE-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:327 +msgid "DHCP Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:155 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:50 +msgid "DHCP and DNS" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1982 +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:16 +#: modules/luci-compat/luasrc/model/network.lua:969 +msgid "DHCP client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:619 +msgid "DHCP-Options" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_dhcpv6.lua:7 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:7 +msgid "DHCPv6 client" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:646 +msgid "DHCPv6-Mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:631 +msgid "DHCPv6-Service" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:45 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:47 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:48 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:49 +msgid "DNS" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:277 +msgid "DNS forwardings" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:37 +msgid "DNS-Label / FQDN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:228 +msgid "DNSSEC" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:232 +msgid "DNSSEC check unsigned" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:99 +msgid "DPD Idle Timeout" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:41 +msgid "DS-Lite AFTR address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:887 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:45 +msgid "DSL" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:14 +msgid "DSL Status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:920 +msgid "DSL line mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1088 +msgid "DTIM Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:57 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:58 +msgid "DUID" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:22 +msgid "Data Rate" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:165 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:176 +msgid "Debug" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1328 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1343 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1358 +msgid "Default %d" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:107 +msgid "Default Route" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:48 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:85 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:65 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:49 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:67 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:80 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:108 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:150 +msgid "Default gateway" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:646 +msgid "Default is stateless + stateful" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:11 +msgid "Default state" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:619 +msgid "" +"Define additional DHCP options, for example " +"\"6,192.168.2.1,192.168.2.2\" which advertises different DNS " +"servers to clients." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2237 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2662 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2666 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3154 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2872 +#: modules/luci-compat/luasrc/view/cbi/nsection.htm:11 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:162 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:16 +msgid "Delete" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:180 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:186 +msgid "Delete key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2769 +msgid "Delete request failed: %s" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:847 +msgid "Delete this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1088 +msgid "Delivery Traffic Indication Message Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:340 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:134 +msgid "Description" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2868 +msgid "Deselect" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:220 +msgid "Design" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:384 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:70 +msgid "Destination" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:48 +msgid "Destination port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:59 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:165 +msgid "Destination zone" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:67 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:191 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:43 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:80 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:55 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:12 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:247 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:280 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:356 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:392 +msgid "Device" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:861 +msgid "Device Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:132 +msgid "Device is not active" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:224 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:599 +msgid "Device is restarting…" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:45 +msgid "Device not managed by ModemManager." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4163 +msgid "Device unreachable!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:53 +msgid "Device unreachable! Still waiting for device..." +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:88 +msgid "Diagnostics" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:101 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:93 +msgid "Dial number" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2665 +msgid "Directory" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:839 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:879 +msgid "Disable" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:579 +msgid "" +"Disable DHCP for " +"this interface." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:373 +msgid "Disable DNS lookups" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:93 +msgid "Disable Encryption" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1098 +msgid "Disable Inactivity Polling" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:837 +msgid "Disable this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1608 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:66 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:107 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:99 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:51 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:95 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:82 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:69 +msgid "Disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1112 +msgid "Disassociate On Low Acknowledgement" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:294 +msgid "Discard upstream RFC1918 responses" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:197 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:665 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:231 +msgid "Disconnect" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:64 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:22 +msgid "Disconnection attempt failed" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:48 +msgid "Disconnection attempt failed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:606 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2861 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3309 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4045 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4134 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1688 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:330 +msgid "Dismiss" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:895 +msgid "Distance Optimization" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:895 +msgid "Distance to farthest network member in meters." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:155 +msgid "" +"Dnsmasq is a combined DHCP-Server and DNS-" +"Forwarder for NAT " +"firewalls" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:252 +msgid "Do not cache negative replies, e.g. for not existing domains" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:79 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:81 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:86 +msgid "Do not create host route to peer (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:219 +msgid "Do not forward requests that cannot be answered by public name servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:214 +msgid "Do not forward reverse lookups for local networks" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:25 +msgid "Do not send a hostname" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2755 +msgid "Do you really want to delete \"%s\" ?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:181 +msgid "Do you really want to delete the following SSH key?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:94 +msgid "Do you really want to erase all settings?" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2753 +msgid "Do you really want to recursively delete the directory \"%s\" ?" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:168 +msgid "Domain required" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:307 +msgid "Domain whitelist" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:81 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67 +msgid "Don't Fragment" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:169 +msgid "" +"Don't forward DNS-Requests without " +"DNS-Name" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:152 +msgid "Down" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:402 +msgid "Down Delay" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:366 +msgid "Download backup" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:404 +msgid "Download mtdblock" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:925 +msgid "Downstream SNR offset" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2620 +msgid "Drag to reorder" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:341 +msgid "Drop Duplicate Frames" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:12 +msgid "Dropbear Instance" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:10 +msgid "" +"Dropbear offers SSH network shell access " +"and an integrated SCP server" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:14 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:11 +msgid "Dual-Stack Lite (RFC6333)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:595 +msgid "Dynamic DHCP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:60 +msgid "Dynamic tunnel" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:595 +msgid "" +"Dynamically allocate DHCP addresses for clients. If disabled, only clients " +"having static leases will be served." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:67 +msgid "EA-bits length" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1491 +msgid "EAP-Method" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2640 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2643 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3017 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:154 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:160 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:339 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:844 +msgid "Edit" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/error.htm:13 +msgid "" +"Edit the raw configuration data above to fix any error and hit \"Save\" to " +"reload the page." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:842 +msgid "Edit this network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:793 +msgid "Edit wireless network" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:172 +msgid "Emergency" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:839 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:879 +msgid "Enable" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:462 +msgid "" +"Enable IGMP " +"snooping" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:460 +msgid "Enable STP" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:367 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:373 +msgid "Enable DNS lookups" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:292 +msgid "Enable Dynamic Shuffling Of Flows" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:60 +msgid "Enable HE.net dynamic endpoint update" +msgstr "" + +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:89 +msgid "Enable IPv6 negotiation" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:49 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:80 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:54 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:67 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:93 +msgid "Enable IPv6 negotiation on the PPP link" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:192 +msgid "Enable Jumbo Frame passthrough" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:240 +msgid "Enable NTP client" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:96 +msgid "Enable Single DES" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:368 +msgid "Enable TFTP server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:184 +msgid "Enable VLAN functionality" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1638 +msgid "Enable WPS pushbutton, requires WPA(2)-PSK/WPA3-SAE" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1634 +msgid "Enable key reinstallation (KRACK) countermeasures" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:187 +msgid "Enable learning and aging" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:198 +msgid "Enable mirroring of incoming packets" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:199 +msgid "Enable mirroring of outgoing packets" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:882 +msgid "" +"Enable packet steering across all CPUs. May help or hinder network speed." +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:80 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:75 +msgid "Enable rx checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:81 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67 +msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:837 +msgid "Enable this network" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:84 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:79 +msgid "Enable tx checksum" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:243 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:352 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:66 +msgid "Enabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:462 +msgid "Enables IGMP snooping on this bridge" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1431 +msgid "" +"Enables fast roaming among access points that belong to the same Mobility " +"Domain" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:460 +msgid "Enables the Spanning Tree Protocol on this bridge" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:59 +msgid "Encapsulation limit" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:915 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:973 +msgid "Encapsulation mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:159 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:183 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1117 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1666 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:45 +msgid "Encryption" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:161 +msgid "Endpoint Host" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:165 +msgid "Endpoint Port" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/dropdown.htm:16 +msgid "Enter custom value" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/dropdown.htm:16 +msgid "Enter custom values" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:97 +msgid "Erasing..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:104 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:105 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:106 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:169 +msgid "Error" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:30 +msgid "Errored seconds (ES)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2889 +#: modules/luci-compat/luasrc/model/network.lua:1433 +msgid "Ethernet Adapter" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2880 +#: modules/luci-compat/luasrc/model/network.lua:1423 +msgid "Ethernet Switch" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:270 +msgid "Every 30 seconds (slow, 0)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:271 +msgid "Every second (fast, 1)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:406 +msgid "Exclude interfaces" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:247 +msgid "Expand hosts" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:198 +msgid "Expecting a hexadecimal assignment hint" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:64 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:73 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:107 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:121 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:125 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:132 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:136 +msgid "Expecting: %s" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:48 +msgid "Expecting: non-empty value" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:50 +msgid "Expires" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:591 +msgid "" +"Expiry time of leased addresses, minimum is 2 minutes (2m)." +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:19 +msgid "External" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1482 +msgid "External R0 Key Holder List" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1486 +msgid "External R1 Key Holder List" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:146 +msgid "External system log server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:151 +msgid "External system log server port" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:156 +msgid "External system log server protocol" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:79 +msgid "Extra SSH command options" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:83 +msgid "Extra pppd options" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:81 +msgid "Extra sstpc options" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1456 +msgid "FT over DS" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1457 +msgid "FT over the Air" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1454 +msgid "FT protocol" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:87 +msgid "Failed to change the system password." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4122 +msgid "Failed to confirm apply within %ds, waiting for rollback…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:37 +msgid "Failed to execute \"/etc/init.d/%s %s\" action: %s" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2673 +msgid "File" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2620 +msgid "File not accessible" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2811 +msgid "Filename" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:381 +msgid "Filename of the boot image advertised to clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:191 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:314 +msgid "Filesystem" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:213 +msgid "Filter private" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:218 +msgid "Filter useless" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:388 +msgid "Filtering for all slaves, no validation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:389 +msgid "Filtering for all slaves, validation only for active slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:390 +msgid "Filtering for all slaves, validation only for backup slaves" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:65 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:23 +msgid "Finalizing failed" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:150 +msgid "" +"Find all currently attached filesystems and swap and replace configuration " +"with defaults based on what was detected" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:820 +msgid "Find and join network" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:9 +msgid "Finish" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:15 +msgid "Firewall" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:102 +msgid "Firewall Mark" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:326 +msgid "Firewall Settings" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:297 +msgid "Firewall Status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:932 +msgid "Firmware File" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:57 +msgid "Firmware Version" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:327 +msgid "Fixed source port for outbound DNS queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:283 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:421 +msgid "Flash image..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:279 +msgid "Flash image?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:411 +msgid "Flash new firmware image" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:356 +msgid "Flash operations" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:288 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:290 +msgid "Flashing…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:598 +msgid "Force" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:907 +msgid "Force 40MHz mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1158 +msgid "Force CCMP (AES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:598 +msgid "Force DHCP on this network even if another server is detected." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1159 +msgid "Force TKIP" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1160 +msgid "Force TKIP and CCMP (AES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:864 +msgid "Force link" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:255 +msgid "Force upgrade" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:90 +msgid "Force use of NAT-T" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:8 +msgid "Form token mismatch" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:164 +msgid "Forward DHCP traffic" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:29 +msgid "Forward Error Correction Seconds (FECS)" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:161 +msgid "Forward broadcast traffic" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:934 +msgid "Forward mesh peer traffic" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:980 +msgid "Forwarding mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:899 +msgid "Fragmentation Threshold" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:115 +msgid "" +"Further information about WireGuard interfaces and peers at wireguard.com." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:128 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:184 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:62 +msgid "GHz" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:91 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:77 +msgid "GPRS only" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:10 +msgid "GRE tunnel over IPv4" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:10 +msgid "GRE tunnel over IPv6" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:10 +msgid "GRETAP tunnel over IPv4" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:10 +msgid "GRETAP tunnel over IPv6" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:44 +msgid "Gateway" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:36 +msgid "Gateway Ports" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:11 +#: modules/luci-compat/luasrc/model/network.lua:29 +msgid "Gateway address is invalid" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:124 +msgid "Gateway metric" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:161 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:323 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:24 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:240 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:108 +msgid "General Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:552 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:967 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:865 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:921 +msgid "General Setup" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:150 +msgid "Generate Config" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:66 +msgid "Generate Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1460 +msgid "Generate PMK locally" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:368 +msgid "Generate archive" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:79 +msgid "Given password confirmation did not match, password not changed!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:146 +msgid "Global Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:875 +msgid "Global network options" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:57 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:215 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:58 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:82 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:284 +msgid "Go to password configuration..." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2562 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3336 +#: modules/luci-compat/luasrc/view/cbi/full_valueheader.htm:4 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:58 +msgid "Go to relevant configuration page" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:33 +msgid "Grant access to DHCP configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:102 +msgid "Grant access to DHCP status display" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:111 +msgid "Grant access to DSL status display" +msgstr "" + +#: protocols/luci-proto-openconnect/root/usr/share/rpcd/acl.d/luci-openconnect.json:3 +msgid "Grant access to LuCI OpenConnect procedures" +msgstr "" + +#: protocols/luci-proto-wireguard/root/usr/share/rpcd/acl.d/luci-wireguard.json:3 +msgid "Grant access to LuCI Wireguard procedures" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:19 +msgid "Grant access to SSH configuration" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:12 +msgid "Grant access to basic LuCI procedures" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:64 +msgid "Grant access to crontab configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:60 +msgid "Grant access to firewall status" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:116 +msgid "Grant access to flash operations" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:86 +msgid "Grant access to main status display" +msgstr "" + +#: protocols/luci-proto-modemmanager/root/usr/share/rpcd/acl.d/luci-proto-modemmanager.json:3 +msgid "Grant access to mmcli" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:84 +msgid "Grant access to mount configuration" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:3 +msgid "Grant access to network configuration" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json:46 +msgid "Grant access to network diagnostic tools" +msgstr "" + +#: modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json:36 +msgid "Grant access to network status information" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:13 +msgid "Grant access to process status" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:3 +msgid "Grant access to realtime statistics" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:42 +msgid "Grant access to startup configuration" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json:3 +msgid "Grant access to system configuration" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:30 +msgid "Grant access to system logs" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:47 +msgid "Grant access to the system route status" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json:120 +msgid "Grant access to wireless status display" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:66 +msgid "Group Password" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:22 +msgid "Guest" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:81 +msgid "HE.net password" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73 +msgid "HE.net username" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:46 +msgid "Hang Up" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:34 +msgid "Header Error Code Errors (HEC)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/heartbeat.js:5 +msgid "Heartbeat interval (kernel: heartbeat)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:100 +msgid "" +"Here you can configure the basic aspects of your device like its hostname or " +"the timezone." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1066 +msgid "Hide ESSID" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:264 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:303 +msgid "Hide empty chains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:55 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2070 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:140 +msgid "Host" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:22 +msgid "Host entries" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171 +msgid "Host expiry timeout" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +msgid "Host-IP or Network" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:102 +msgid "Host-Uniq tag content" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:36 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:419 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:27 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:54 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:29 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:121 +msgid "Hostname" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:22 +msgid "Hostname to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:20 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:63 +msgid "Hostnames" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:24 +msgid "Hybrid" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:48 +msgid "ID used to uniquely identify the VXLAN" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:206 +msgid "IEEE 802.3ad Dynamic link aggregation (802.3ad, 4)" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:75 +msgid "IKE DH Group" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:83 +msgid "IP Addresses" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:80 +msgid "IP Protocol" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:114 +msgid "IP Type" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:31 +msgid "IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:10 +#: modules/luci-compat/luasrc/model/network.lua:28 +msgid "IP address is invalid" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:13 +#: modules/luci-compat/luasrc/model/network.lua:31 +msgid "IP address is missing" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:85 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:86 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:87 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:88 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:89 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:82 +msgid "IPv4" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:316 +msgid "IPv4 Firewall" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:29 +msgid "IPv4 Upstream" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:178 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:162 +msgid "IPv4 address" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:33 +msgid "IPv4 assignment length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:181 +msgid "IPv4 broadcast" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:180 +msgid "IPv4 gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:179 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:168 +msgid "IPv4 netmask" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:291 +msgid "IPv4 network in address/netmask notation" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:116 +msgid "IPv4 only" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:52 +msgid "IPv4 prefix" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:55 +msgid "IPv4 prefix length" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:83 +msgid "IPv4+IPv6" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:37 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:30 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:154 +msgid "IPv4-Address" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:164 +msgid "IPv4-Gateway" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ipip.lua:9 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:10 +msgid "IPv4-in-IPv4 (RFC2003)" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:115 +msgid "IPv4/IPv6 (both - defaults to IPv4)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:90 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:91 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:92 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:93 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:94 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:95 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:96 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:97 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:98 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:99 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:84 +msgid "IPv6" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:319 +msgid "IPv6 Firewall" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:203 +msgid "IPv6 Neighbours" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:554 +msgid "IPv6 Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:879 +msgid "IPv6 ULA-Prefix" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:29 +msgid "IPv6 Upstream" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:205 +msgid "IPv6 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31 +msgid "IPv6 assignment hint" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27 +msgid "IPv6 assignment length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:210 +msgid "IPv6 gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:296 +msgid "IPv6 network in address/netmask notation" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:117 +msgid "IPv6 only" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:59 +msgid "IPv6 prefix" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:63 +msgid "IPv6 prefix length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:214 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:57 +msgid "IPv6 routed prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:218 +msgid "IPv6 suffix" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:51 +msgid "IPv6 support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:57 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:172 +msgid "IPv6-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:100 +msgid "IPv6-PD" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:13 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:10 +msgid "IPv6-in-IPv4 (RFC4213)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:17 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:9 +msgid "IPv6-over-IPv4 (6rd)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_6x4.lua:15 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:9 +msgid "IPv6-over-IPv4 (6to4)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1593 +msgid "Identity" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:96 +msgid "If checked, 1DES is enabled" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:51 +msgid "If checked, adds \"+ipv6\" to the pppd options" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:93 +msgid "If checked, encryption is disabled" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360 +msgid "" +"If specified, mount the device by its UUID instead of a fixed device node" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:267 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:376 +msgid "" +"If specified, mount the device by the partition label instead of a fixed " +"device node" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:37 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:116 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:48 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:85 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:65 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:49 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:33 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:67 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:80 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:108 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:150 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:74 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:61 +msgid "If unchecked, no default route is configured" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:40 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:124 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:39 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:116 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:68 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:59 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:103 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:77 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:100 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:69 +msgid "If unchecked, the advertised DNS server addresses are ignored" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:339 +msgid "" +"If your physical memory is insufficient unused data can be temporarily " +"swapped to a swap-device resulting in a higher amount of usable RAM. Be aware that swapping data is a very " +"slow process as the swap-device cannot be accessed with the high datarates " +"of the RAM." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:197 +msgid "Ignore /etc/hosts" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:579 +msgid "Ignore interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:185 +msgid "Ignore resolve file" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:419 +msgid "Image" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:67 +msgid "In" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:13 +msgid "" +"In order to prevent unauthorized access to the system, your request has been " +"blocked. Click \"Continue »\" below to return to the previous page." +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:157 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:141 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:115 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:138 +msgid "Inactivity timeout" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:265 +msgid "Inbound:" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:90 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:97 +msgid "Incoming checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:82 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:87 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:89 +msgid "Incoming key" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:97 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:94 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:99 +msgid "Incoming serialization" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:166 +msgid "Info" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:101 +msgid "Information" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:67 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:25 +msgid "Initialization failure" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:77 +msgid "Initscript" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:111 +msgid "Initscripts" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1577 +msgid "Inner certificate constraint (Domain)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1574 +msgid "Inner certificate constraint (SAN)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1571 +msgid "Inner certificate constraint (Subject)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1580 +msgid "Inner certificate constraint (Wildcard)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:268 +msgid "Install protocol extensions..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1938 +msgid "" +"Instead of joining any network with a matching SSID, only connect to the " +"BSSID %h." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/map.htm:43 +msgid "Insufficient permissions to read UCI configuration." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:464 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:471 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:735 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:739 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:27 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:156 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:174 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:17 +msgid "Interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:62 +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:917 +msgid "Interface Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:110 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:151 +msgid "Interface has %d pending changes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:92 +msgid "Interface is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:64 +msgid "Interface is marked for deletion" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:209 +msgid "Interface is reconnecting..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:193 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:203 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:209 +msgid "Interface is shutting down..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:253 +msgid "Interface is starting..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:256 +msgid "Interface is stopping..." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1079 +msgid "Interface name" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:122 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:272 +msgid "Interface not present or not connected yet." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:308 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:335 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:38 +msgid "Interfaces" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:20 +msgid "Internal" +msgstr "" + +#: modules/luci-base/luasrc/view/error500.htm:8 +msgid "Internal Server Error" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:283 +msgid "Interval For Sending Learning Packets" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:192 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:42 +msgid "Invalid" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:19 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:22 +msgid "Invalid Base64 key string" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:285 +msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:294 +msgid "Invalid VLAN ID given! Only unique IDs are allowed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:403 +msgid "Invalid argument" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:46 +msgid "" +"Invalid bearer list. Possibly too many bearers created. This protocol " +"supports one and only one bearer." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:402 +msgid "Invalid command" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:106 +msgid "Invalid hexadecimal value" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:12 +msgid "Invalid username and/or password! Please try again." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:71 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:76 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:81 +msgid "Invalid value" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1075 +msgid "Isolate Clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:231 +msgid "" +"It appears that you are trying to flash an image that does not fit into the " +"flash memory, please verify the image file!" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:64 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:222 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:72 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:291 +msgid "JavaScript required!" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1746 +msgid "Join Network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1680 +msgid "Join Network: Wireless Scan" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1946 +msgid "Joining Network: %q" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:223 +msgid "Keep settings and retain the current configuration" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/dmesg.js:20 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:51 +msgid "Kernel Log" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:58 +msgid "Kernel Version" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1369 +msgid "Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1397 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1398 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1399 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1400 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1412 +msgid "Key #%d" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:82 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:87 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:89 +msgid "Key for incoming packets (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:86 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:88 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:93 +msgid "Key for outgoing packets (optinal)." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:54 +msgid "Kill" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:21 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:10 +msgid "L2TP" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:40 +msgid "L2TP Server" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:267 +msgid "LACPDU Packets" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:131 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:102 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:89 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:112 +msgid "LCP echo failure threshold" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:144 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:102 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:125 +msgid "LCP echo interval" +msgstr "" + +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:101 +msgid "LED Configuration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:974 +msgid "LLC" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:267 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:376 +msgid "Label" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:209 +msgid "Language" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:111 +msgid "Language and Style" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:24 +msgid "Latency" +msgstr "" + +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:21 +msgid "Leaf" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:495 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:591 +msgid "Lease time" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:39 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:58 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:32 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:59 +msgid "Lease time remaining" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:181 +msgid "Leasefile" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:41 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:50 +msgid "Leave empty to autodetect" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:45 +msgid "Leave empty to use the current WAN address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4030 +msgid "Legend:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:586 +msgid "Limit" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:389 +msgid "Limit DNS service to subnets interfaces on which we are serving DNS." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:402 +msgid "Limit listening to these interfaces, and loopback." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:25 +msgid "Line Attenuation (LATN)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:18 +msgid "Line Mode" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:17 +msgid "Line State" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:19 +msgid "Line Uptime" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:123 +msgid "Link Aggregation (Channel Bonding)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:348 +msgid "Link Monitoring" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:23 +msgid "Link On" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:278 +msgid "" +"List of DNS servers to forward " +"requests to" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1482 +msgid "" +"List of R0KHs in the same Mobility Domain.
Format: MAC-address,NAS-" +"Identifier,128-bit key as hex string.
This list is used to map R0KH-ID " +"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key " +"from the R0KH that the STA used during the Initial Mobility Domain " +"Association." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1486 +msgid "" +"List of R1KHs in the same Mobility Domain.
Format: MAC-address,R1KH-ID " +"as 6 octets with colons,128-bit key as hex string.
This list is used " +"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the " +"R0KH. This is also the list of authorized R1KHs in the MD that can request " +"PMK-R1 keys." +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:82 +msgid "List of SSH key files for auth" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:308 +msgid "List of domains to allow RFC1918 responses for" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:286 +msgid "List of domains to force to an IP address." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:267 +msgid "List of hosts that supply bogus NX domain results" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:401 +msgid "Listen Interfaces" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:78 +msgid "Listen Port" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:17 +msgid "Listen only on the given interface or, if unspecified, on all" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:318 +msgid "Listening port for inbound DNS queries" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:87 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:54 +msgid "Load" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:61 +msgid "Load Average" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2938 +msgid "Loading directory contents…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:1948 +#: modules/luci-base/luasrc/view/view.htm:4 +#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:12 +msgid "Loading view…" +msgstr "" + +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:77 +msgid "Local IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:12 +#: modules/luci-compat/luasrc/model/network.lua:30 +msgid "Local IP address is invalid" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:86 +msgid "Local IP address to assign" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:46 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:44 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:39 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:39 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:151 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:44 +msgid "Local IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:46 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:54 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:45 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:44 +msgid "Local IPv6 address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:388 +msgid "Local Service Only" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:115 +msgid "Local Startup" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:59 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:117 +msgid "Local Time" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:243 +msgid "Local domain" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:240 +msgid "" +"Local domain specification. Names matching this domain are never forwarded " +"and are resolved from DHCP or hosts files only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:244 +msgid "Local domain suffix appended to DHCP names and hosts file entries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:239 +msgid "Local server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:224 +msgid "" +"Localise hostname depending on the requesting subnet if multiple IPs are " +"available" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:223 +msgid "Localise queries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1938 +msgid "Lock to BSSID" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:164 +msgid "Log output level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:274 +msgid "Log queries" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:109 +msgid "Logging" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:50 +msgid "" +"Logical network from which to select the local endpoint if local IPv6 " +"address is empty and no WAN IPv6 is available (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:55 +msgid "Logical network to which the tunnel will be added (bridged) (optional)." +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:38 +msgid "Login" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:81 +msgid "Logout" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:32 +msgid "Loss of Signal Seconds (LOSS)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:581 +msgid "Lowest leased address as offset from the network address." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:47 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:82 +msgid "MAC" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:251 +msgid "MAC Address For The Actor" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:38 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2069 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:56 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:31 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:139 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:155 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:173 +msgid "MAC-Address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1011 +msgid "MAC-Address Filter" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:923 +msgid "MAC-Filter" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1018 +msgid "MAC-List" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:16 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:13 +msgid "MAP / LW4over6" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:62 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:7 +msgid "MAP rule is invalid" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:321 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:322 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:323 +msgid "MBit/s" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:218 +msgid "MD5" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:199 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:71 +msgid "MHz" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:353 +msgid "MII" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:421 +msgid "MII / ETHTOOL ioctls" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:394 +msgid "MII Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:54 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:53 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:97 +msgid "MTU" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:302 +msgid "" +"Make sure to clone the root filesystem using something like the commands " +"below:" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:108 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:52 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:96 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:83 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:57 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:70 +msgid "Manual" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3664 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:642 +msgid "Master" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:23 +msgid "Max. Attainable Data Rate (ATTNDR)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1107 +msgid "Maximum allowed Listen Interval" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:336 +msgid "Maximum allowed number of active DHCP leases" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:354 +msgid "Maximum allowed number of concurrent DNS queries" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:345 +msgid "Maximum allowed size of EDNS.0 UDP packets" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:112 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:104 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:93 +msgid "Maximum amount of seconds to wait for the modem to become ready" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:586 +msgid "Maximum number of leased addresses." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:886 +msgid "Maximum transmit power" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:129 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:188 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:199 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:63 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:71 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:327 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:328 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:329 +msgid "Mbit/s" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:35 +msgid "Medium" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:24 +msgid "Memory" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:73 +msgid "Memory usage (%)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3667 +msgid "Mesh" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:156 +msgid "Mesh ID" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:931 +msgid "Mesh Id" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:404 +msgid "Method not found" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:349 +msgid "Method of link monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:418 +msgid "Method to determine link status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:46 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:165 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:183 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:92 +msgid "Metric" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:235 +msgid "Minimum Number of Links" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:202 +msgid "Mirror monitor port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:201 +msgid "Mirror source port" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:9 +msgid "Mobile Data" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1442 +msgid "Mobility Domain" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:154 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:157 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:180 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:442 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:926 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1664 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:43 +msgid "Mode" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:55 +msgid "Model" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:43 +msgid "Modem bearer teardown in progress." +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:42 +msgid "" +"Modem connection in progress. Please wait. This process will timeout after 2 " +"minutes." +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:72 +msgid "Modem default" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:73 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:82 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:73 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:57 +msgid "Modem device" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:41 +msgid "Modem disconnection in progress. Please wait." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:66 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:24 +msgid "Modem information query failed" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:112 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:104 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:93 +msgid "Modem init timeout" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:44 +msgid "Modem is disabled." +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:52 +msgid "ModemManager" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:3668 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1005 +msgid "Monitor" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:31 +msgid "More Characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2504 +msgid "More…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:192 +msgid "Mount Point" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:144 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:228 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:88 +msgid "Mount Points" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:229 +msgid "Mount Points - Mount Entry" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:340 +msgid "Mount Points - Swap Entry" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:228 +msgid "" +"Mount Points define at which point a memory device will be attached to the " +"filesystem" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:154 +msgid "Mount attached devices" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:162 +msgid "Mount filesystems not specifically configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:331 +msgid "Mount options" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292 +msgid "Mount point" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:158 +msgid "Mount swap not specifically configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:223 +msgid "Mounted file systems" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:152 +msgid "Move down" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:151 +msgid "Move up" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1437 +msgid "NAS ID" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:87 +msgid "NAT-T Mode" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:41 +msgid "NAT64 Prefix" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:26 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:31 +msgid "NCM" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:637 +msgid "NDP-Proxy" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:72 +msgid "NT Domain" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:274 +msgid "NTP server candidates" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2542 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3785 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:27 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:710 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:67 +msgid "Name" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1916 +msgid "Name of the new network" +msgstr "" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:40 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:50 +msgid "Navigation" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:959 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2068 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:381 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:63 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:138 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:162 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:180 +msgid "Network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:68 +msgid "Network Utilities" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:380 +msgid "Network boot image" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:7 +msgid "Network device activity (kernel: netdev)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:15 +#: modules/luci-compat/luasrc/model/network.lua:33 +msgid "Network device is not present" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:55 +msgid "Network interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:777 +msgid "New interface for \"%s\" can not be created: %s" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:713 +msgid "New interface name…" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:11 +msgid "Next »" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3643 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:296 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:345 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:108 +msgid "No" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:562 +msgid "No DHCP Server configured for this interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1310 +msgid "No Encryption" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:87 +msgid "No Host Routes" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:89 +msgid "No NAT-T" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:79 +msgid "No RX signal" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:69 +msgid "No client associated" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:406 +msgid "No data received" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2878 +msgid "No entries in this directory" +msgstr "" + +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:82 +msgid "No files found" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:79 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:84 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:81 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:86 +msgid "No host route" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:674 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:142 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:241 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:59 +msgid "No information available" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:63 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:8 +msgid "No matching prefix delegation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:140 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:143 +msgid "No more slaves available" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:187 +msgid "No more slaves available, can not save interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:251 +msgid "No negative cache" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:54 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:212 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:55 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:79 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:279 +msgid "No password set!" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:130 +msgid "No peers defined yet" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:121 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:268 +msgid "No public keys present yet." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:90 +msgid "No rules in this chain." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:384 +msgid "No validation or filtering" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:152 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:825 +msgid "No zone assigned" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:58 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:84 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:187 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:141 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:174 +msgid "Noise" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:27 +msgid "Noise Margin (SNR)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:270 +msgid "Noise:" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:35 +msgid "Non Pre-emptive CRC errors (CRC_P)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:394 +msgid "Non-wildcard" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:159 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:183 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:100 +msgid "None" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:177 +msgid "Normal" +msgstr "" + +#: modules/luci-base/luasrc/view/error404.htm:8 +msgid "Not Found" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:75 +msgid "Not associated" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:32 +msgid "Not connected" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:45 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:120 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:146 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:280 +msgid "Not present" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:101 +msgid "Not started on boot" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:409 +msgid "Not supported" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:167 +msgid "Notice" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:127 +msgid "Nslookup" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:332 +msgid "Number of IGMP membership reports" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:362 +msgid "Number of cached DNS entries (max is 10000, 0 is no caching)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:199 +msgid "Number of parallel threads used for compression" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:309 +msgid "Number of peer notifications after failover event" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:69 +msgid "Obfuscated Group Password" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:61 +msgid "Obfuscated Password" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:105 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:97 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:49 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:80 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:54 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:67 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:93 +msgid "Obtain IPv6-Address" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:18 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:351 +msgid "Off" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:15 +msgid "Off-State Delay" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/default-on.js:18 +msgid "On" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:96 +msgid "On-Link route" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/timer.js:11 +msgid "On-State Delay" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:484 +msgid "One of hostname or mac address must be specified!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:466 +msgid "One of the following: %s" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/nullsection.htm:17 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:22 +msgid "One or more fields contain invalid values!" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/map.htm:32 +msgid "One or more invalid/required values on tab" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/nullsection.htm:19 +#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:24 +msgid "One or more required fields have no value!" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:229 +msgid "" +"Only if current active slave fails and the primary slave is up (failure, 2)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:444 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:19 +msgid "Open list..." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_openconnect.lua:9 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:64 +msgid "OpenConnect (CISCO AnyConnect)" +msgstr "" + +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:12 +msgid "OpenFortivpn" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:882 +msgid "Operating frequency" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:1971 +#: modules/luci-base/htdocs/luci-static/resources/form.js:3653 +msgid "Option \"%s\" contains an invalid input value." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:1984 +msgid "Option \"%s\" must not be empty." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4037 +msgid "Option changed" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4039 +msgid "Option removed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1609 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:92 +msgid "Optional" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:102 +msgid "" +"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " +"starting with 0x." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:218 +msgid "" +"Optional. Allowed values: 'eui64', 'random', fixed value like '::1' or " +"'::1:2'. When IPv6 prefix (like 'a:b:c:d::') is received from a delegating " +"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') " +"for the interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:143 +msgid "" +"Optional. Base64-encoded preshared key. Adds in an additional layer of " +"symmetric-key cryptography for post-quantum resistance." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:159 +msgid "Optional. Create routes for Allowed IPs for this peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:134 +msgid "Optional. Description of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:87 +msgid "Optional. Do not create host routes to peers." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:161 +msgid "" +"Optional. Host of peer. Names are resolved prior to bringing up the " +"interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:97 +msgid "Optional. Maximum Transmission Unit of tunnel interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:165 +msgid "Optional. Port of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:169 +msgid "" +"Optional. Seconds between keep alive messages. Default is 0 (disabled). " +"Recommended value if this device is behind a NAT is 25." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:78 +msgid "Optional. UDP port used for outgoing and incoming packets." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:71 +msgid "Options" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:346 +msgid "Other:" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:68 +msgid "Out" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:275 +msgid "Outbound:" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:96 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:98 +msgid "Outgoing checksum" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:86 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:91 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:88 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:93 +msgid "Outgoing key" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:98 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:100 +msgid "Outgoing serialization" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:50 +msgid "Output Interface" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:59 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:165 +msgid "Output zone" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:57 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:222 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:40 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:50 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:76 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:71 +msgid "Override MAC address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:61 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:226 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:67 +#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:44 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:54 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:120 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:158 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:71 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:145 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:132 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:110 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:119 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:77 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:62 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:57 +msgid "Override MTU" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:72 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:63 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:72 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:67 +msgid "Override TOS" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:72 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:58 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:67 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:62 +msgid "Override TTL" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1079 +msgid "Override default interface name" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:167 +msgid "Override the gateway in DHCP responses" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:603 +msgid "" +"Override the netmask sent to clients. Normally it is calculated from the " +"subnet that is served." +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:179 +msgid "Override the table used for internal routes" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:3 +msgid "Overview" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2721 +msgid "Overwrite existing file \"%s\" ?" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:70 +msgid "Owner" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:97 +msgid "PAP/CHAP (both)" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:98 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:108 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:45 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:44 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:63 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:82 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:46 +msgid "PAP/CHAP password" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:96 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:103 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:88 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:43 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:74 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:42 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:61 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:77 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:44 +msgid "PAP/CHAP username" +msgstr "" + +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:101 +msgid "PDP Type" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:69 +msgid "PID" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:95 +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:94 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:87 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:68 +msgid "PIN" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:21 +#: modules/luci-compat/luasrc/model/network.lua:39 +msgid "PIN code rejected" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1477 +msgid "PMK R1 Push" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:13 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:43 +msgid "PPP" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:58 +msgid "PPPoA Encapsulation" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:19 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:28 +msgid "PPPoATM" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:17 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:28 +msgid "PPPoE" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_pppossh.lua:9 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:28 +msgid "PPPoSSH" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ppp.lua:15 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:28 +msgid "PPtP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:73 +msgid "PSID offset" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:70 +msgid "PSID-bits length" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:918 +msgid "PTM/EFM (Packet Transfer Mode)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:882 +msgid "Packet Steering" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +msgid "Packets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:275 +msgid "Packets To Transmit Before Moving To Next Slave" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:152 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:825 +msgid "Part of zone %q" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:29 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1599 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:51 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:108 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:52 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:58 +msgid "Password" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:25 +msgid "Password authentication" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1531 +msgid "Password of Private Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1589 +msgid "Password of inner Private Key" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:31 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:33 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:35 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:37 +msgid "Password strength" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:111 +msgid "Password2" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:239 +msgid "Paste or drag SSH key file…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1510 +msgid "Path to CA-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1525 +msgid "Path to Client-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1528 +msgid "Path to Private Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1568 +msgid "Path to inner CA-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1583 +msgid "Path to inner Client-Certificate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1586 +msgid "Path to inner Private Key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2731 +msgid "Paused" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:271 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:281 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:332 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:342 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:352 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:237 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:247 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:257 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:266 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:276 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:294 +msgid "Peak:" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:89 +msgid "Peer IP address to assign" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:14 +#: modules/luci-compat/luasrc/model/network.lua:32 +msgid "Peer address is missing" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:115 +msgid "Peers" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:80 +msgid "Perfect Forward Secrecy" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:93 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:98 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:100 +msgid "Perform outgoing packets serialization (optional)." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:34 +msgid "Perform reboot" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:378 +msgid "Perform reset" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:407 +msgid "Permission denied" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:169 +msgid "Persistent Keep Alive" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:288 +msgid "Phy Rate:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:325 +msgid "Physical Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:80 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:90 +msgid "Ping" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:48 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:49 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:83 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:84 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:138 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:63 +msgid "Pkts." +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:19 +msgid "Please enter your username and password." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3768 +msgid "Please select the file to upload." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +msgid "Policy" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:21 +msgid "Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:278 +msgid "Port status:" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:492 +msgid "Potential negation of: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:38 +msgid "Power Management Mode" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:36 +msgid "Pre-emptive CRC errors (CRCP_P)" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:73 +msgid "Prefer LTE" +msgstr "" + +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:74 +msgid "Prefer UMTS" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:33 +msgid "Prefix Delegated" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:143 +msgid "Preshared Key" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:131 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:102 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:76 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:89 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:112 +msgid "" +"Presume peer to be dead after given amount of LCP echo failures, use 0 to " +"ignore failures" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:407 +msgid "Prevent listening on these interfaces." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1075 +msgid "Prevents client-to-client communication" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:211 +msgid "Primary Slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:228 +msgid "" +"Primary becomes active slave when it comes back up if speed and duplex " +"better than current slave (better, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:227 +msgid "Primary becomes active slave whenever it comes back up (always, 0)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:61 +msgid "Private Key" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:64 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:63 +msgid "Processes" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:21 +msgid "Profile" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:66 +msgid "Prot." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:397 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:727 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:382 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:32 +msgid "Protocol" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:265 +msgid "Provide NTP server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:825 +msgid "Provide new network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1004 +msgid "Pseudo Ad-Hoc (ahdemo)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:139 +msgid "Public Key" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:275 +msgid "" +"Public keys allow for the passwordless SSH logins with a higher security " +"compared to the use of plain passwords. In order to upload a new key to the " +"device, paste an OpenSSH compatible public key line or drag a .pub file into the input field." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:214 +msgid "Public prefix routed to this device for distribution to clients." +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:9 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:27 +msgid "QMI Cellular" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:41 +msgid "Quality" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:264 +msgid "" +"Query all available upstream DNS " +"servers" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1465 +msgid "R0 Key Lifetime" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1471 +msgid "R1 Key Holder" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:88 +msgid "RFC3947 NAT-T mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:939 +msgid "RSSI threshold for joining" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:903 +msgid "RTS/CTS Threshold" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:48 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:83 +msgid "RX" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:142 +msgid "RX Rate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2072 +msgid "RX Rate / TX Rate" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1343 +msgid "Radius-Accounting-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1348 +msgid "Radius-Accounting-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1338 +msgid "Radius-Accounting-Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1328 +msgid "Radius-Authentication-Port" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1333 +msgid "Radius-Authentication-Secret" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1323 +msgid "Radius-Authentication-Server" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:102 +msgid "Raw hex-encoded bytes. Leave empty unless your ISP require this" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:178 +msgid "" +"Read /etc/ethers to configure the DHCP-Server" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:402 +msgid "Really switch protocol?" +msgstr "" + +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:75 +msgid "Realtime Graphs" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1448 +msgid "Reassociation Deadline" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:293 +msgid "Rebind protection" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:20 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:126 +msgid "Reboot" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:153 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:162 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:46 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:51 +msgid "Rebooting…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:21 +msgid "Reboots the operating system of your device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:25 +msgid "Receive" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:83 +msgid "Recommended. IP addresses of the WireGuard interface." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:348 +msgid "Reconnect this interface" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:56 +msgid "References" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2725 +msgid "Refreshing" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:153 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:39 +msgid "Relay" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:157 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:36 +msgid "Relay Bridge" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:154 +msgid "Relay between networks" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_relay.lua:12 +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:64 +msgid "Relay bridge" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:50 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:40 +msgid "Remote IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:42 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:40 +msgid "Remote IPv4 address or FQDN" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:40 +msgid "Remote IPv6 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:42 +msgid "Remote IPv6 address or FQDN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:849 +msgid "Remove" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1914 +msgid "Replace wireless configuration" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:17 +msgid "Request IPv6-address" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:23 +msgid "Request IPv6-prefix of length" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:408 +msgid "Request timeout" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:90 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:95 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:97 +msgid "Require incoming checksum (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:92 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:97 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:94 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:99 +msgid "Require incoming packets serialization (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1610 +msgid "Required" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:34 +msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:61 +msgid "Required. Base64-encoded private key for this interface." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:139 +msgid "Required. Base64-encoded public key of peer." +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:148 +msgid "" +"Required. IP addresses and prefixes that this peer is allowed to use inside " +"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer " +"routes through the tunnel." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1239 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1240 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1241 +msgid "Requires hostapd" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1246 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1247 +msgid "Requires hostapd with EAP Suite-B support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1244 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1245 +msgid "Requires hostapd with EAP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1248 +msgid "Requires hostapd with OWE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1242 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1243 +msgid "Requires hostapd with SAE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1237 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1238 +msgid "Requires hostapd with WEP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1607 +msgid "" +"Requires the 'full' version of wpad/hostapd and support from the wifi driver " +"
(as of Jan 2019: ath9k, ath10k, mwlwifi and mt76)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:233 +msgid "" +"Requires upstream supports DNSSEC; verify unsigned domain responses really " +"come from unsigned domains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1253 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1254 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1255 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1267 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1268 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1269 +msgid "Requires wpa-supplicant" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1260 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1261 +msgid "Requires wpa-supplicant with EAP Suite-B support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1258 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1259 +msgid "Requires wpa-supplicant with EAP support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1262 +msgid "Requires wpa-supplicant with OWE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1256 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1257 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1272 +msgid "Requires wpa-supplicant with SAE support" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1251 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1252 +msgid "Requires wpa-supplicant with WEP support" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:224 +msgid "Reselection policy for primary slave" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2203 +#: modules/luci-base/luasrc/view/sysauth.htm:39 +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:17 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:30 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:66 +msgid "Reset" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:308 +msgid "Reset Counters" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:376 +msgid "Reset to defaults" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:162 +msgid "Resolv and Hosts Files" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:188 +msgid "Resolve file" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:405 +msgid "Resource not found" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:350 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:817 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:100 +msgid "Restart" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:313 +msgid "Restart Firewall" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:815 +msgid "Restart radio interface" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:372 +msgid "Restore" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:382 +msgid "Restore backup" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:371 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:372 +msgid "Reveal/hide password" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4053 +msgid "Revert" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4138 +msgid "Revert changes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4320 +msgid "Revert request failed with status %h" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4300 +msgid "Reverting configuration…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:372 +msgid "Root directory for files served via TFTP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:297 +msgid "Root preparation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:202 +msgid "Round-Robin policy (balance-rr, 0)" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:159 +msgid "Route Allowed IPs" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:73 +msgid "Route table" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:60 +msgid "Route type" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:625 +msgid "Router Advertisement-Service" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:46 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:26 +msgid "Router Password" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:15 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:194 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:27 +msgid "Routes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:15 +msgid "" +"Routes specify over which interface and gateway a certain host or network " +"can be reached." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:206 +msgid "Rule" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:335 +msgid "Run a filesystem check before mounting the device" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:335 +msgid "Run filesystem check" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2364 +msgid "Runtime error" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:219 +msgid "SHA256" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:59 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:175 +msgid "SNR" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:10 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:38 +msgid "SSH Access" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:70 +msgid "SSH server address" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:74 +msgid "SSH server port" +msgstr "" + +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:58 +msgid "SSH username" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:274 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:51 +msgid "SSH-Keys" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:156 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:181 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1662 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:42 +msgid "SSID" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:9 +msgid "SSTP" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:41 +msgid "SSTP Server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:339 +msgid "SWAP" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2866 +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2198 +#: modules/luci-compat/luasrc/view/cbi/error.htm:17 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:26 +#: modules/luci-compat/luasrc/view/cbi/header.htm:20 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:435 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:123 +msgid "Save" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2180 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4049 +#: modules/luci-compat/luasrc/view/cbi/footer.htm:22 +msgid "Save & Apply" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:602 +msgid "Save error" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:406 +msgid "Save mtdblock" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:396 +msgid "Save mtdblock contents" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:822 +msgid "Scan" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:26 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:76 +msgid "Scheduled Tasks" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4033 +msgid "Section added" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4035 +msgid "Section removed" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:331 +msgid "See \"mount\" manpage for details" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:257 +msgid "" +"Select 'Force upgrade' to flash the image even if the image format check " +"fails. Use only if you are sure that the firmware is correct and meant for " +"your device!" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2622 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2762 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2927 +msgid "Select file…" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:318 +msgid "Selects the transmit hash policy to use for slave selection" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:144 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:128 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:115 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:89 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:102 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:125 +msgid "" +"Send LCP echo requests at the given interval in seconds, only effective in " +"conjunction with failure threshold" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:24 +msgid "Send the hostname of this device" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:157 +msgid "Server Settings" +msgstr "" + +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:50 +msgid "Service Name" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:87 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:71 +msgid "Service Type" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:36 +msgid "Services" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2668 +msgid "Session expired" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:107 +msgid "Set VPN as Default Route" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:864 +msgid "" +"Set interface properties regardless of the link carrier (If set, carrier " +"sense events do not invoke hotplug handlers)." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:300 +msgid "Set same MAC Address to all slaves" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:642 +msgid "Set this interface as master for the dhcpv6 relay." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:304 +msgid "Set to currently active slave (active, 1)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:305 +msgid "Set to first slave added to the bond (follow, 2)" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:55 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:55 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:23 +msgid "Setting PLMN failed" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:68 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:26 +msgid "Setting operation mode failed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:565 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:575 +msgid "Setup DHCP Server" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:31 +msgid "Severely Errored Seconds (SES)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:208 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:80 +msgid "Short GI" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1085 +msgid "Short Preamble" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:442 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18 +msgid "Show current backup file list" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:264 +msgid "Show empty chains" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:354 +msgid "Shutdown this interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:57 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:63 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:186 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1661 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:41 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:141 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:173 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:179 +msgid "Signal" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:2071 +msgid "Signal / Noise" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:26 +msgid "Signal Attenuation (SATN)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:260 +msgid "Signal:" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3786 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:217 +msgid "Size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:361 +msgid "Size of DNS query cache" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:187 +msgid "Size of the ZRam device in megabytes" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/footer.htm:18 +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:57 +msgid "Skip" +msgstr "" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:36 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:46 +msgid "Skip to content" +msgstr "" + +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:35 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:45 +msgid "Skip to navigation" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:178 +msgid "Slave Interfaces" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2883 +#: modules/luci-compat/luasrc/model/network.lua:1428 +msgid "Software VLAN" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/header.htm:5 +msgid "Some fields are invalid, cannot save values!" +msgstr "" + +#: modules/luci-base/luasrc/view/error404.htm:9 +msgid "Sorry, the object you requested was not found." +msgstr "" + +#: modules/luci-base/luasrc/view/error500.htm:9 +msgid "Sorry, the server encountered an unexpected error." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:414 +msgid "" +"Sorry, there is no sysupgrade support present; a new firmware image must be " +"flashed manually. Please refer to the wiki for device specific install " +"instructions." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:383 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:69 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:182 +msgid "Source" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:84 +msgid "Source Address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:50 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:50 +msgid "Source interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:342 +msgid "" +"Specifies that duplicate frames (received on inactive ports) should be " +"dropped or delivered" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:358 +msgid "Specifies the ARP link monitoring frequency in milliseconds" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:366 +msgid "Specifies the IP addresses to use for ARP monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:395 +msgid "Specifies the MII link monitoring frequency in milliseconds" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:259 +msgid "Specifies the aggregation selection logic to use" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292 +msgid "Specifies the directory the device is attached to" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:252 +msgid "" +"Specifies the mac-address for the actor in protocol packet exchanges " +"(LACPDUs). If empty, masters' mac address defaults to system default" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175 +msgid "" +"Specifies the maximum amount of failed ARP requests until hosts are presumed " +"to be dead" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171 +msgid "" +"Specifies the maximum amount of seconds after which hosts are presumed to be " +"dead" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:886 +msgid "" +"Specifies the maximum transmit power the wireless radio may use. Depending " +"on regulatory requirements and wireless usage, the actual transmit power may " +"be reduced by the driver." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:236 +msgid "" +"Specifies the minimum number of links that must be active before asserting " +"carrier" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:200 +msgid "Specifies the mode to be used for this bonding interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:333 +msgid "" +"Specifies the number of IGMP membership reports to be issued after a " +"failover event in 200ms intervals" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:276 +msgid "" +"Specifies the number of packets to transmit through a slave before moving to " +"the next one" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:310 +msgid "" +"Specifies the number of peer notifications (gratuitous ARPs and unsolicited " +"IPv6 Neighbor Advertisements) to be issued after a failover event" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:284 +msgid "" +"Specifies the number of seconds between instances where the bonding driver " +"sends learning packets to each slaves peer switch" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:374 +msgid "Specifies the quantity of ARP IP targets that must be reachable" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:268 +msgid "" +"Specifies the rate in which the link partner will be asked to transmit " +"LACPDU packets" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:225 +msgid "" +"Specifies the reselection policy for the primary slave when failure of the " +"active slave or recovery of the primary slave occurs" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:244 +msgid "Specifies the system priority" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:403 +msgid "" +"Specifies the time in milliseconds to wait before disabling a slave after a " +"link failure detection" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:411 +msgid "" +"Specifies the time in milliseconds to wait before enabling a slave after a " +"link recovery detection" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:382 +msgid "" +"Specifies whether ARP probes and replies should be validated or non-ARP " +"traffic should be filtered for link monitoring" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:301 +msgid "" +"Specifies whether active-backup mode should set all slaves to the same MAC " +"address at enslavement" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:419 +msgid "" +"Specifies whether or not miimon should use MII or ETHTOOL ioctls vs. " +"netif_carrier_ok()" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:293 +msgid "" +"Specifies whether to shuffle active flows across slaves based on the load" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:179 +msgid "" +"Specifies which slave interfaces should be attached to this bonding interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:212 +msgid "" +"Specifies which slave is the primary device. It will always be the active " +"slave while it is available" +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:63 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:72 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:67 +msgid "Specify a TOS (Type of Service)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:72 +msgid "" +"Specify a TOS (Type of Service). Can be either inherit (the " +"outer header inherits the value of the inner header) or an hexadecimal value " +"starting with 0x (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:67 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:72 +msgid "" +"Specify a TTL (Time to Live) for the encapsulating packet other than the " +"default (64) (optional)." +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:58 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:67 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:62 +msgid "" +"Specify a TTL (Time to Live) for the encapsulating packet other than the " +"default (64)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:72 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:77 +msgid "" +"Specify a Traffic Class. Can be either inherit (the outer " +"header inherits the value of the inner header) or an hexadecimal value " +"starting with 0x (optional)." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:57 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:62 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:67 +msgid "" +"Specify an MTU (Maximum Transmission Unit) other than the default (1280 " +"bytes) (optional)." +msgstr "" + +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:62 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:57 +msgid "" +"Specify an MTU (Maximum Transmission Unit) other than the default (1280 " +"bytes)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "Specify the secret encryption key here." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:581 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:99 +msgid "Start" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:76 +msgid "Start priority" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1765 +msgid "Start refresh" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4253 +msgid "Starting configuration apply…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1678 +msgid "Starting wireless scan..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:109 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:64 +msgid "Startup" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:19 +msgid "Static IPv4 Routes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:19 +msgid "Static IPv6 Routes" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:165 +msgid "Static Leases" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:76 +msgid "Static Routes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1981 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:172 +#: modules/luci-compat/luasrc/model/network.lua:967 +msgid "Static address" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:411 +msgid "" +"Static leases are used to assign fixed IP addresses and symbolic hostnames " +"to DHCP clients. They are also required for non-dynamic interface " +"configurations where only hosts with a corresponding lease are served." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1102 +msgid "Station inactivity limit" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:16 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:385 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:871 +#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:9 +msgid "Status" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:356 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:101 +msgid "Stop" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1676 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1770 +msgid "Stop refresh" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:259 +msgid "Strict order" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:33 +msgid "Strong" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/simpleform.htm:61 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1956 +msgid "Submit" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:203 +msgid "Suppress logging" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:204 +msgid "Suppress logging of the routine operation of these protocols" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:44 +msgid "Swap free" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:139 +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:3 +msgid "Switch" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:172 +msgid "Switch %q" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:150 +msgid "" +"Switch %q has an unknown topology - the VLAN settings might not be accurate." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2883 +#: modules/luci-compat/luasrc/model/network.lua:1426 +msgid "Switch VLAN" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:403 +msgid "Switch protocol" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:103 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:104 +#: modules/luci-compat/luasrc/view/cbi/ipaddr.htm:26 +msgid "Switch to CIDR list notation" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2657 +msgid "Symbolic link" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:75 +msgid "Sync with NTP-Server" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:67 +msgid "Sync with browser" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:26 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:17 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:99 +#: modules/luci-mod-system/root/usr/share/luci/menu.d/luci-mod-system.json:3 +msgid "System" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js:25 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:39 +msgid "System Log" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:243 +msgid "System Priority" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:104 +msgid "System Properties" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:141 +msgid "System log buffer size" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:336 +msgid "TCP:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:163 +msgid "TFTP Settings" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:371 +msgid "TFTP server root" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:49 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:84 +msgid "TX" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:142 +msgid "TX Rate" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:17 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:166 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:184 +msgid "Table" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:31 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:65 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:163 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:181 +msgid "Target" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:103 +msgid "Target network" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:50 +msgid "Terminate" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:84 +msgid "The block mount command failed with code %d" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:77 +msgid "" +"The HE.net endpoint update configuration changed, you must now use the plain " +"username instead of the user ID!" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:40 +msgid "The IPv4 address or the fully-qualified domain name of the remote end." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:42 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:40 +msgid "" +"The IPv4 address or the fully-qualified domain name of the remote tunnel end." +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:40 +msgid "The IPv6 address or the fully-qualified domain name of the remote end." +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:42 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:42 +msgid "" +"The IPv6 address or the fully-qualified domain name of the remote tunnel end." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:53 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:59 +msgid "" +"The IPv6 prefix assigned to the provider, usually ends with ::" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1916 +msgid "" +"The allowed characters are: A-Z, a-z, 0-9 and _" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/error.htm:6 +msgid "The configuration file could not be loaded due to the following error:" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4129 +msgid "" +"The device could not be reached within %d seconds after applying the pending " +"changes, which caused the configuration to be rolled back for safety " +"reasons. If you believe that the configuration changes are correct " +"nonetheless, perform an unchecked configuration apply. Alternatively, you " +"can dismiss this warning and edit changes before attempting to apply again, " +"or revert all pending changes to keep the currently working configuration " +"state." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:280 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:392 +msgid "" +"The device file of the memory or partition (e.g." +" /dev/sda1)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:736 +msgid "" +"The existing wireless configuration needs to be changed for LuCI to function " +"properly." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:215 +msgid "" +"The flash image was uploaded. Below is the checksum and file size listed, " +"compare them with the original file to ensure data integrity.
Click " +"\"Proceed\" below to start the flash procedure." +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js:195 +msgid "The following rules are currently active on this system." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:154 +msgid "The gateway address must not be a local IP address" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:147 +msgid "The given SSH public key has already been added." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:153 +msgid "" +"The given SSH public key is invalid. Please supply proper public RSA or " +"ECDSA keys." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:716 +msgid "The interface name is already used" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:722 +msgid "The interface name is too long" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:55 +msgid "" +"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 " +"addresses." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:63 +msgid "The length of the IPv6 prefix in bits" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:163 +msgid "The local IPv4 address" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gre.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/gretap.js:46 +#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:44 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:44 +msgid "The local IPv4 address over which the tunnel is created (optional)." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:169 +msgid "The local IPv4 netmask" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:46 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:46 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:44 +msgid "The local IPv6 address over which the tunnel is created (optional)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1922 +msgid "The network name is already used" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:139 +msgid "" +"The network ports on this device can be combined to several VLANs in which computers can " +"communicate directly with each other. VLANs are often used to separate different network " +"segments. Often there is by default one Uplink port for a connection to the " +"next greater network like the internet and other ports for a local network." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:158 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:42 +msgid "The reboot command failed with code %d" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:147 +msgid "The restore command failed with code %d" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1297 +msgid "The selected %s mode is incompatible with %s encryption" +msgstr "" + +#: modules/luci-base/luasrc/view/csrftoken.htm:11 +msgid "The submitted security token is invalid or already expired!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:98 +msgid "" +"The system is erasing the configuration partition now and will reboot itself " +"when finished." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:291 +msgid "" +"The system is flashing now.
DO NOT POWER OFF THE DEVICE!
Wait a " +"few minutes before you try to reconnect. It might be necessary to renew the " +"address of your computer to reach the device again, depending on your " +"settings." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:163 +msgid "" +"The system is rebooting now. If the restored configuration changed the " +"current LAN IP address, you might need to reconnect manually." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:85 +msgid "The system password has been successfully changed." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:317 +msgid "The sysupgrade command failed with code %d" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:120 +msgid "" +"The uploaded backup archive appears to be valid and contains the files " +"listed below. Press \"Continue\" to restore the backup and reboot, or " +"\"Cancel\" to abort the operation." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:115 +msgid "The uploaded backup archive is not readable" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:244 +msgid "The uploaded firmware does not allow keeping current configuration." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:239 +msgid "" +"The uploaded image file does not contain a supported format. Make sure that " +"you choose the generic image format for your platform." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:535 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:567 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:52 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:89 +msgid "There are no active leases" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:4268 +msgid "There are no changes to apply" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:55 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:213 +#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:56 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:80 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:282 +msgid "" +"There is no password set on this router. Please configure a root password to " +"protect the web interface." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49 +msgid "This IPv4 address of the relay" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1551 +msgid "This authentication type is not applicable to the selected EAP method." +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:57 +msgid "This does not look like a valid PEM file" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:256 +msgid "" +"This file may contain lines like 'server=/domain/1.2.3.4' or " +"'server=1.2.3.4' for domain-specific or full upstream DNS servers." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:426 +#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16 +msgid "" +"This is a list of shell glob patterns for matching files and directories to " +"include during sysupgrade. Modified files in /etc/config/ and certain other " +"configurations are automatically preserved." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:81 +msgid "" +"This is either the \"Update Key\" configured for the tunnel or the account " +"password if no update key has been configured" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:116 +msgid "" +"This is the content of /etc/rc.local. Insert your own commands here (in " +"front of 'exit 0') to execute them at the end of the boot process." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:54 +msgid "" +"This is the local endpoint address assigned by the tunnel broker, it usually " +"ends with ...:2/64" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:173 +msgid "" +"This is the only DHCP in the local network" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73 +msgid "This is the plain username for logging into the account" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:57 +msgid "" +"This is the prefix routed to you by the tunnel broker for use by clients" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:28 +msgid "This is the system crontab in which scheduled tasks can be defined." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:50 +msgid "" +"This is usually the address of the nearest PoP operated by the tunnel broker" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:65 +msgid "" +"This list gives an overview over currently running system processes and " +"their status." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1505 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1563 +msgid "" +"This option cannot be used because the ca-bundle package is not installed." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:2205 +#: modules/luci-base/htdocs/luci-static/resources/form.js:2511 +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:172 +#: modules/luci-compat/luasrc/view/cbi/tsection.htm:32 +msgid "This section contains no values yet" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:110 +msgid "Time Synchronization" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1093 +msgid "Time interval for rekeying GTK" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:124 +msgid "Timezone" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/luci.js:2678 +msgid "To login…" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:372 +msgid "" +"To restore configuration files, you can upload a previously generated backup " +"archive here. To reset the firmware to its initial state, click \"Perform " +"reset\" (only possible with squashfs images)." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:907 +msgid "Tone" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:35 +msgid "Total Available" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:102 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:103 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js:113 +msgid "Traceroute" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:64 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:96 +msgid "Traffic" +msgstr "" + +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6.js:72 +#: protocols/luci-proto-gre/htdocs/luci-static/resources/protocol/grev6tap.js:77 +msgid "Traffic Class" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:385 +msgid "Transfer" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:24 +msgid "Transmit" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:317 +msgid "Transmit Hash Policy" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:74 +msgid "Trigger" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/led-trigger/netdev.js:19 +msgid "Trigger Mode" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:69 +msgid "Tunnel ID" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2886 +#: modules/luci-compat/luasrc/model/network.lua:1431 +msgid "Tunnel Interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:44 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:55 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:76 +msgid "Tunnel Link" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:185 +msgid "Tx-Power" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:44 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:43 +msgid "Type" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:326 +msgid "UDP:" +msgstr "" + +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:90 +msgid "UMTS only" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_3g.lua:10 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:43 +msgid "UMTS/GPRS/EV-DO" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360 +msgid "UUID" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:16 +#: modules/luci-base/htdocs/luci-static/resources/network.js:17 +#: modules/luci-compat/luasrc/model/network.lua:34 +#: modules/luci-compat/luasrc/model/network.lua:35 +msgid "Unable to determine device name" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:18 +#: modules/luci-compat/luasrc/model/network.lua:36 +msgid "Unable to determine external IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:19 +#: modules/luci-compat/luasrc/model/network.lua:37 +msgid "Unable to determine upstream interface" +msgstr "" + +#: modules/luci-base/luasrc/view/error404.htm:11 +msgid "Unable to dispatch" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/dmesg.js:9 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/syslog.js:15 +msgid "Unable to load log data:" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_modemmanager.lua:54 +#: modules/luci-compat/luasrc/model/network/proto_qmi.lua:54 +#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:22 +msgid "Unable to obtain client ID" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:221 +msgid "Unable to obtain mount information" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:278 +msgid "Unable to reset ip6tables counters: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:276 +msgid "Unable to reset iptables counters: %s" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:7 +msgid "Unable to resolve AFTR host name" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:20 +#: modules/luci-compat/luasrc/model/network.lua:38 +msgid "Unable to resolve peer host name" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:284 +msgid "Unable to restart firewall: %s" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:20 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:342 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:57 +msgid "Unable to save contents: %s" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:33 +msgid "Unavailable Seconds (UAS)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/fs.js:102 +msgid "Unexpected reply data format" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1983 +#: modules/luci-compat/luasrc/model/network.lua:971 +msgid "Unknown" +msgstr "" + +#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:47 +msgid "Unknown and unsupported connection method." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2292 +#: modules/luci-compat/luasrc/model/network.lua:1138 +msgid "Unknown error (%s)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:412 +msgid "Unknown error code" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:1980 +#: modules/luci-base/htdocs/luci-static/resources/protocol/none.js:6 +#: modules/luci-compat/luasrc/model/network.lua:965 +msgid "Unmanaged" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:195 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:217 +msgid "Unmount" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:112 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:259 +msgid "Unnamed key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3973 +msgid "Unsaved Changes" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/rpc.js:410 +msgid "Unspecified error" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:64 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:9 +msgid "Unsupported MAP type" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:69 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:27 +msgid "Unsupported modem" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:267 +msgid "Unsupported protocol type." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/tblsection.htm:151 +msgid "Up" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:410 +msgid "Up Delay" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3860 +msgid "Upload" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:413 +msgid "" +"Upload a sysupgrade-compatible image here to replace the running firmware." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:138 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:169 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:384 +msgid "Upload archive..." +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2816 +msgid "Upload file" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2791 +msgid "Upload file…" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:2738 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3848 +msgid "Upload request failed: %s" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3767 +#: modules/luci-base/htdocs/luci-static/resources/ui.js:3821 +msgid "Uploading file…" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:737 +msgid "" +"Upon pressing \"Continue\", anonymous \"wifi-iface\" sections will be " +"assigned with a name in the form wifinet# and the network will be " +"restarted to apply the updated configuration." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:81 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:60 +msgid "Uptime" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:177 +msgid "Use /etc/ethers" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:269 +msgid "Use DHCP advertised servers" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:167 +msgid "Use DHCP gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:40 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:124 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:39 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:116 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:68 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:59 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:103 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:90 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:77 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:100 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:69 +msgid "Use DNS servers advertised by peer" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:565 +msgid "Use ISO/IEC 3166 alpha2 country codes." +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:56 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:97 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:77 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:61 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:75 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:92 +msgid "Use MTU on tunnel interface" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:93 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:73 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:57 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:88 +msgid "Use TTL on tunnel interface" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:320 +msgid "Use XOR of hardware MAC addresses (layer2)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:321 +msgid "Use XOR of hardware MAC addresses and IP addresses (layer2+3)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:323 +msgid "" +"Use XOR of hardware MAC addresses and IP addresses, rely on skb_flow_dissect " +"(encap2+3)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:294 +msgid "Use as external overlay (/overlay)" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:293 +msgid "Use as root filesystem (/)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:34 +msgid "Use broadcast flag" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:860 +msgid "Use builtin IPv6-management" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:43 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:182 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:127 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:42 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:119 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:62 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:106 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:93 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:67 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:80 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:103 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:72 +msgid "Use custom DNS servers" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:37 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:116 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:33 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:64 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:56 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:100 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:87 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:61 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:74 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:97 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:61 +msgid "Use default gateway" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:48 +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:230 +#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:119 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:51 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:88 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:68 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6to4.js:52 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:70 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:83 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:111 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:153 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:72 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/l2tp.js:67 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:111 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:98 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:72 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:85 +#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:108 +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:64 +msgid "Use gateway metric" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:96 +msgid "Use legacy MAP" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:96 +msgid "" +"Use legacy MAP interface identifier format (draft-ietf-softwire-map-00) " +"instead of RFC7597" +msgstr "" + +#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:179 +msgid "Use routing table" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1498 +msgid "Use system certificates" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1556 +msgid "Use system certificates for inner-tunnel" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:412 +msgid "" +"Use the Add Button to add a new lease entry. The MAC-Address identifies the host, the IPv4-Address specifies the fixed " +"address to use, and the Hostname is assigned as a symbolic name to " +"the requesting host. The optional Lease time can be used to set non-" +"standard host-specific lease time, e.g. 12h, 3d or infinite." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:322 +msgid "Use upper layer protocol information (layer3+4)" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:324 +msgid "" +"Use upper layer protocol information, rely on skb_flow_dissect (encap3+4)" +msgstr "" + +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:36 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:194 +msgid "Used" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1394 +msgid "Used Key Slot" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1437 +msgid "" +"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not " +"needed with normal WPA(2)-PSK." +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:105 +msgid "User Group" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:114 +msgid "User certificate (PEM encoded)" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:126 +msgid "User key (PEM encoded)" +msgstr "" + +#: modules/luci-base/luasrc/view/sysauth.htm:23 +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:106 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:50 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:56 +msgid "Username" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:975 +msgid "VC-Mux" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:923 +msgid "VDSL" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:173 +msgid "VLANs on %q" +msgstr "" + +#: modules/luci-base/root/usr/share/luci/menu.d/luci-base.json:54 +msgid "VPN" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:42 +msgid "VPN Local address" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:46 +msgid "VPN Local port" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:96 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:42 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:58 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:39 +msgid "VPN Server" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:99 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:45 +msgid "VPN Server port" +msgstr "" + +#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:103 +#: protocols/luci-proto-openfortivpn/htdocs/luci-static/resources/protocol/openfortivpn.js:60 +msgid "VPN Server's certificate SHA1 hash" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_vpnc.lua:9 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:9 +msgid "VPNC (CISCO 3000 (and others) VPN)" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:10 +msgid "VXLAN (RFC7348)" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan.js:53 +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:48 +msgid "VXLAN network identifier" +msgstr "" + +#: protocols/luci-proto-vxlan/htdocs/luci-static/resources/protocol/vxlan6.js:10 +msgid "VXLANv6 (RFC7348)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1498 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1556 +msgid "" +"Validate server certificate using built-in system CA bundle,
requires " +"the \"ca-bundle\" package" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:387 +msgid "Validation for all slaves" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:385 +msgid "Validation only for active slave" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:386 +msgid "Validation only for backup slaves" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:154 +msgid "Value must not be empty" +msgstr "" + +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:73 +msgid "Vendor" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:55 +msgid "Vendor Class to send when requesting DHCP" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:196 +msgid "Verifying the uploaded image file." +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:59 +msgid "Virtual dynamic interface" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1032 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1033 +msgid "WDS" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1217 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1306 +msgid "WEP Open System" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1218 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1307 +msgid "WEP Shared Key" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "WEP passphrase" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1070 +msgid "WMM Mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1931 +msgid "WPA passphrase" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1208 +msgid "" +"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP " +"and ad-hoc mode) to be installed." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:47 +msgid "Waiting for device..." +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:168 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:178 +msgid "Warning" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:26 +msgid "Warning: There are unsaved changes that will get lost on reboot!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:37 +msgid "Weak" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1460 +msgid "" +"When using a PSK, the PMK can be automatically generated. When enabled, the " +"R0/R1 key options below are not applied. Disable this to use the R0 and R1 " +"key options." +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:166 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:468 +msgid "Width" +msgstr "" + +#: modules/luci-compat/luasrc/model/network/proto_wireguard.lua:9 +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:29 +msgid "WireGuard VPN" +msgstr "" + +#: modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json:17 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:87 +#: modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json:105 +msgid "Wireless" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2874 +#: modules/luci-compat/luasrc/model/network.lua:1419 +msgid "Wireless Adapter" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/network.js:2853 +#: modules/luci-base/htdocs/luci-static/resources/network.js:4057 +#: modules/luci-compat/luasrc/model/network.lua:1405 +#: modules/luci-compat/luasrc/model/network.lua:1868 +msgid "Wireless Network" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:753 +msgid "Wireless Overview" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:922 +msgid "Wireless Security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:735 +msgid "Wireless configuration migration" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:153 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:193 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:47 +msgid "Wireless is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:153 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:193 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:47 +msgid "Wireless is not associated" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:877 +msgid "Wireless network is disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:877 +msgid "Wireless network is enabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:275 +msgid "Write received DNS requests to syslog" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:160 +msgid "Write system log to file" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:204 +msgid "XOR policy (balance-xor, 2)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3643 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:295 +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:344 +#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:109 +msgid "Yes" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:303 +msgid "Yes (none, 0)" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:176 +msgid "" +"You appear to be currently connected to the device via the \"%h\" interface. " +"Do you really want to shut down the interface?" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:112 +msgid "" +"You can enable or disable installed init scripts here. Changes will applied " +"after a device reboot.
Warning: If you disable essential init " +"scripts like \"network\", your device might become inaccessible!" +msgstr "" + +#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:65 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:223 +#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:73 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:294 +msgid "" +"You must enable JavaScript in your browser or LuCI will not work properly." +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:115 +msgid "" +"You must select a primary interface which is included in selected slave " +"interfaces!" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:96 +msgid "" +"You must select at least one ARP IP target if ARP monitoring is selected!" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:192 +msgid "ZRam Compression Algorithm" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:199 +msgid "ZRam Compression Streams" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:185 +msgid "ZRam Settings" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:187 +msgid "ZRam Size" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:331 +msgid "any" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:908 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:916 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:921 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1157 +#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:78 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:48 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:51 +#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:103 +msgid "auto" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:85 +msgid "automatic" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:82 +msgid "baseT" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:981 +msgid "bridged" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:146 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:401 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:35 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:99 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:31 +msgid "create" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:69 +msgid "create:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:55 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:57 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:58 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:62 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:63 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:83 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:84 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:87 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:185 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:186 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:187 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:171 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:173 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:174 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:178 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:179 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:261 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:264 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:267 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:271 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:274 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:277 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:303 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:304 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:305 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:309 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:310 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:311 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:313 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:314 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:315 +msgid "dBm" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1014 +msgid "disable" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:185 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:626 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:632 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:638 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:91 +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:25 +msgid "disabled" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:519 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:553 +msgid "driver default" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:81 +msgid "e.g: --proxy 10.10.10.10" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:83 +msgid "e.g: dump" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:524 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:545 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:42 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:69 +msgid "expired" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:182 +msgid "" +"file where given DHCP-leases will be stored" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:85 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:195 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:61 +msgid "forward" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:84 +msgid "full-duplex" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:84 +msgid "half-duplex" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:569 +msgid "hexadecimal encoded value" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1738 +msgid "hidden" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:629 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:635 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:640 +msgid "hybrid mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:36 +msgid "if target is a network" +msgstr "" + +#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:63 +msgid "ignore" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:191 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:46 +msgid "input" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:395 +msgid "key between 8 and 63 characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:407 +msgid "key with either 5 or 13 characters" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:189 +msgid "local DNS file" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1316 +msgid "medium security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1465 +msgid "minutes" +msgstr "" + +#: protocols/luci-proto-bonding/htdocs/luci-static/resources/protocol/bonding.js:422 +msgid "netif_carrier_ok()" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +msgid "no" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:76 +msgid "no link" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:59 +msgid "non-empty value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3007 +msgid "none" +msgstr "" + +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:41 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:55 +#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:69 +msgid "not present" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:347 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:901 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:905 +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:197 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:245 +msgid "off" +msgstr "" + +#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:196 +#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:242 +msgid "on" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1317 +msgid "open network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:46 +msgid "output" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:241 +msgid "positive decimal value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:233 +msgid "positive integer value" +msgstr "" + +#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:80 +msgid "random" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:628 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:634 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:639 +msgid "relay mode" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:982 +msgid "routed" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1093 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1102 +msgid "sec" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:627 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:633 +msgid "server mode" +msgstr "" + +#: protocols/luci-proto-sstp/htdocs/luci-static/resources/protocol/sstp.js:53 +msgid "sstpc Log-level" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:649 +msgid "stateful-only" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:647 +msgid "stateless" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:648 +msgid "stateless + stateful" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1315 +msgid "strong security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:352 +msgid "tagged" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1448 +msgid "time units (TUs / 1.024 ms) [1000-65535]" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:559 +msgid "unique value" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:534 +msgid "unknown" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:340 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:522 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:543 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:40 +#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:67 +msgid "unlimited" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/form.js:3372 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:76 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:138 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:369 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:393 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:428 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:465 +#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:561 +#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:53 +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:38 +msgid "unspecified" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/network_netlist.htm:71 +msgid "unspecified -or- create:" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:350 +msgid "untagged" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:246 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:121 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:132 +msgid "valid IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:246 +msgid "valid IP address or prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:281 +msgid "valid IPv4 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:254 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:125 +msgid "valid IPv4 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:254 +msgid "valid IPv4 address or network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:374 +msgid "valid IPv4 address:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:314 +msgid "valid IPv4 network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:276 +msgid "valid IPv4 or IPv6 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:267 +msgid "valid IPv4 prefix value (0-32)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:286 +msgid "valid IPv6 CIDR" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:262 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:129 +msgid "valid IPv6 address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:262 +msgid "valid IPv6 address or prefix" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:304 +msgid "valid IPv6 host id" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:319 +msgid "valid IPv6 network" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:272 +msgid "valid IPv6 prefix value (0-128)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:340 +msgid "valid MAC address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:411 +msgid "valid UCI identifier" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:362 +msgid "valid UCI identifier, hostname or IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:383 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:386 +msgid "valid address:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:533 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:537 +msgid "valid date (YYYY-MM-DD)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:237 +msgid "valid decimal value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:405 +msgid "valid hexadecimal WEP key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:393 +msgid "valid hexadecimal WPA key" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:368 +msgid "valid host:port" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:355 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:357 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:73 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:79 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:107 +msgid "valid hostname" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:345 +msgid "valid hostname or IP address" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:229 +msgid "valid integer value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:309 +msgid "valid network in address/netmask notation" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:508 +msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:332 +#: modules/luci-base/htdocs/luci-static/resources/validation.js:335 +msgid "valid port or port range (port1-port2)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:324 +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:136 +msgid "valid port value" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:513 +msgid "valid time (HH:MM:SS)" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:435 +msgid "value between %d and %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:416 +msgid "value between %f and %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:420 +msgid "value greater or equal to %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:424 +msgid "value smaller or equal to %f" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:429 +msgid "value with %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:440 +msgid "value with at least %d characters" +msgstr "" + +#: modules/luci-base/htdocs/luci-static/resources/validation.js:445 +msgid "value with at most %d characters" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1317 +msgid "weak security" +msgstr "" + +#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:46 +msgid "yes" +msgstr "" + +#: modules/luci-compat/luasrc/view/cbi/delegator.htm:20 +msgid "« Back" +msgstr "" diff --git a/luci-mod-dashboard/Makefile b/luci-mod-dashboard/Makefile old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/css/custom.css b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/css/custom.css old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/devices.svg b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/devices.svg old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/internet.svg b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/internet.svg old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/not-internet.svg b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/not-internet.svg old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/router.svg b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/router.svg old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/wireless.svg b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/icons/wireless.svg old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/30_wifi.js old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/index.js b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/index.js old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/po/fr/dashboard.po b/luci-mod-dashboard/po/fr/dashboard.po old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/po/ru/dashboard.po b/luci-mod-dashboard/po/ru/dashboard.po old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/po/templates/dashboard.pot b/luci-mod-dashboard/po/templates/dashboard.pot old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/po/zh_Hans/dashboard.po b/luci-mod-dashboard/po/zh_Hans/dashboard.po old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/root/usr/share/luci/menu.d/luci-mod-dashboard.json b/luci-mod-dashboard/root/usr/share/luci/menu.d/luci-mod-dashboard.json old mode 100755 new mode 100644 diff --git a/luci-mod-dashboard/root/usr/share/rpcd/acl.d/luci-mod-dashboard.json b/luci-mod-dashboard/root/usr/share/rpcd/acl.d/luci-mod-dashboard.json old mode 100755 new mode 100644 diff --git a/luci-mod-network/Makefile b/luci-mod-network/Makefile old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/tools/network.js b/luci-mod-network/htdocs/luci-static/resources/tools/network.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js b/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js b/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js b/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js b/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js b/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js b/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js old mode 100755 new mode 100644 diff --git a/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json b/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json old mode 100755 new mode 100644 diff --git a/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json b/luci-mod-network/root/usr/share/rpcd/acl.d/luci-mod-network.json old mode 100755 new mode 100644 diff --git a/luci-proto-mbim/Makefile b/luci-proto-mbim/Makefile old mode 100755 new mode 100644 diff --git a/luci-proto-mbim/htdocs/luci-static/resources/protocol/mbim.js b/luci-proto-mbim/htdocs/luci-static/resources/protocol/mbim.js old mode 100755 new mode 100644 diff --git a/luci-theme-argon/LICENSE b/luci-theme-argon/LICENSE old mode 100755 new mode 100644 diff --git a/luci-theme-argon/Makefile b/luci-theme-argon/Makefile old mode 100755 new mode 100644 diff --git a/luci-theme-argon/README.md b/luci-theme-argon/README.md old mode 100755 new mode 100644 diff --git a/luci-theme-argon/README_ZH.md b/luci-theme-argon/README_ZH.md old mode 100755 new mode 100644 diff --git a/luci-theme-argon/Screenshots/screenshot_pc.jpg b/luci-theme-argon/Screenshots/screenshot_pc.jpg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/Screenshots/screenshot_phone.jpg b/luci-theme-argon/Screenshots/screenshot_phone.jpg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/background/README.md b/luci-theme-argon/htdocs/luci-static/argon/background/README.md old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/css/cascade.css b/luci-theme-argon/htdocs/luci-static/argon/css/cascade.css old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/css/dark.css b/luci-theme-argon/htdocs/luci-static/argon/css/dark.css old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/favicon.ico b/luci-theme-argon/htdocs/luci-static/argon/favicon.ico old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.eot b/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.eot old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.svg b/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.ttf b/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.ttf old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.woff b/luci-theme-argon/htdocs/luci-static/argon/fonts/TypoGraphica.woff old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.eot b/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.eot old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.svg b/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.ttf b/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.ttf old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.woff b/luci-theme-argon/htdocs/luci-static/argon/fonts/argon.woff old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/android-icon-192x192.png b/luci-theme-argon/htdocs/luci-static/argon/icon/android-icon-192x192.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-144x144.png b/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-144x144.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-60x60.png b/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-60x60.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-72x72.png b/luci-theme-argon/htdocs/luci-static/argon/icon/apple-icon-72x72.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/arrow.svg b/luci-theme-argon/htdocs/luci-static/argon/icon/arrow.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/browserconfig.xml b/luci-theme-argon/htdocs/luci-static/argon/icon/browserconfig.xml old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-16x16.png b/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-16x16.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-32x32.png b/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-32x32.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-96x96.png b/luci-theme-argon/htdocs/luci-static/argon/icon/favicon-96x96.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/manifest.json b/luci-theme-argon/htdocs/luci-static/argon/icon/manifest.json old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/ms-icon-144x144.png b/luci-theme-argon/htdocs/luci-static/argon/icon/ms-icon-144x144.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/icon/spinner.svg b/luci-theme-argon/htdocs/luci-static/argon/icon/spinner.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/img/argon.svg b/luci-theme-argon/htdocs/luci-static/argon/img/argon.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg b/luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/img/blank.png b/luci-theme-argon/htdocs/luci-static/argon/img/blank.png old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/img/volume_high.svg b/luci-theme-argon/htdocs/luci-static/argon/img/volume_high.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/img/volume_off.svg b/luci-theme-argon/htdocs/luci-static/argon/img/volume_off.svg old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/js/jquery.min.js b/luci-theme-argon/htdocs/luci-static/argon/js/jquery.min.js old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/js/polyfill.min.js b/luci-theme-argon/htdocs/luci-static/argon/js/polyfill.min.js old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/less/cascade.less b/luci-theme-argon/htdocs/luci-static/argon/less/cascade.less old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/less/dark.less b/luci-theme-argon/htdocs/luci-static/argon/less/dark.less old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/less/fonts.less b/luci-theme-argon/htdocs/luci-static/argon/less/fonts.less old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/argon/less/pure-min.less b/luci-theme-argon/htdocs/luci-static/argon/less/pure-min.less old mode 100755 new mode 100644 diff --git a/luci-theme-argon/htdocs/luci-static/resources/menu-argon.js b/luci-theme-argon/htdocs/luci-static/resources/menu-argon.js old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/footer_login.htm b/luci-theme-argon/luasrc/view/themes/argon/footer_login.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/header.htm b/luci-theme-argon/luasrc/view/themes/argon/header.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/header_login.htm b/luci-theme-argon/luasrc/view/themes/argon/header_login.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/out_footer_login.htm b/luci-theme-argon/luasrc/view/themes/argon/out_footer_login.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/out_header_login.htm b/luci-theme-argon/luasrc/view/themes/argon/out_header_login.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/luasrc/view/themes/argon/sysauth.htm b/luci-theme-argon/luasrc/view/themes/argon/sysauth.htm old mode 100755 new mode 100644 diff --git a/luci-theme-argon/root/etc/uci-defaults/30_luci-theme-argon b/luci-theme-argon/root/etc/uci-defaults/30_luci-theme-argon old mode 100755 new mode 100644 diff --git a/luci-theme-openmptcprouter/Makefile b/luci-theme-openmptcprouter/Makefile old mode 100755 new mode 100644 diff --git a/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/html5.js b/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/html5.js old mode 100755 new mode 100644 diff --git a/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/mobile.css b/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/mobile.css old mode 100755 new mode 100644 diff --git a/luci-theme-openmptcprouter/htdocs/luci-static/resources/menu-openmptcprouter.js b/luci-theme-openmptcprouter/htdocs/luci-static/resources/menu-openmptcprouter.js old mode 100755 new mode 100644 diff --git a/macvlan/Makefile b/macvlan/Makefile old mode 100755 new mode 100644 diff --git a/macvlan/files/etc/config/macvlan b/macvlan/files/etc/config/macvlan old mode 100755 new mode 100644 diff --git a/macvlan/files/etc/uci-defaults/40_luci-app-macvlan b/macvlan/files/etc/uci-defaults/40_luci-app-macvlan old mode 100755 new mode 100644 diff --git a/mlvpn/Makefile b/mlvpn/Makefile old mode 100755 new mode 100644 diff --git a/mlvpn/files/etc/config/mlvpn b/mlvpn/files/etc/config/mlvpn old mode 100755 new mode 100644 diff --git a/mlvpn/files/etc/uci-defaults/4100-mlvpn b/mlvpn/files/etc/uci-defaults/4100-mlvpn old mode 100755 new mode 100644 diff --git a/mlvpn/patches/020-remove-cdefs.patch b/mlvpn/patches/020-remove-cdefs.patch old mode 100755 new mode 100644 diff --git a/modemmanager/Config.in b/modemmanager/Config.in old mode 100755 new mode 100644 diff --git a/modemmanager/Makefile b/modemmanager/Makefile old mode 100755 new mode 100644 index 0e12cadc7..d30b1a2e9 --- a/modemmanager/Makefile +++ b/modemmanager/Makefile @@ -8,11 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=modemmanager -PKG_SOURCE_VERSION:=1.23.1-dev +PKG_SOURCE_VERSION:=1.22.0 +PKG_RELEASE:=5 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git -PKG_MIRROR_HASH:=f3ea5380599a2ad59793f859bd653e451ef1ab64821c5f129beb1829698ecbd5 +PKG_MIRROR_HASH:=98daa1a15075c88afb3ed0de20dc83fe51d2ba3c66318ce3f731da4616a2e192 PKG_MAINTAINER:=Nicholas Smith PKG_LICENSE:=GPL-2.0-or-later @@ -63,7 +64,6 @@ MESON_ARGS += \ -Dintrospection=false \ -Dman=false \ -Dbash_completion=false \ - -Dbuiltin_plugins=true \ -Db_lto=true \ -Dmbim=$(if $(CONFIG_MODEMMANAGER_WITH_MBIM),true,false) \ -Dqmi=$(if $(CONFIG_MODEMMANAGER_WITH_QMI),true,false) \ @@ -80,8 +80,6 @@ define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/ModemManager.pc $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mm-glib.pc $(1)/usr/lib/pkgconfig - $(INSTALL_DIR) $(1)/usr/share/dbus-1/interfaces - $(CP) $(PKG_BUILD_DIR)/introspection/org.freedesktop.ModemManager1.* $(1)/usr/share/dbus-1/interfaces endef define Package/modemmanager/install @@ -98,6 +96,10 @@ define Package/modemmanager/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmm-glib.so.* $(1)/usr/lib + $(INSTALL_DIR) $(1)/usr/lib/ModemManager + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-shared-*.so* $(1)/usr/lib/ModemManager + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-plugin-*.so* $(1)/usr/lib/ModemManager + $(INSTALL_DIR) $(1)/usr/lib/ModemManager/connection.d $(INSTALL_BIN) ./files/10-report-down $(1)/usr/lib/ModemManager/connection.d @@ -108,7 +110,7 @@ define Package/modemmanager/install $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/system-services/org.freedesktop.ModemManager1.service $(1)/usr/share/dbus-1/system-services $(INSTALL_DIR) $(1)/usr/share/ModemManager - $$(if $$(wildcard $(PKG_INSTALL_DIR)/usr/share/ModemManager/*.conf),$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/ModemManager/*.conf $(1)/usr/share/ModemManager,) + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/ModemManager/*.conf $(1)/usr/share/ModemManager $(INSTALL_DATA) ./files/modemmanager.common $(1)/usr/share/ModemManager $(INSTALL_DIR) $(1)/usr/share/ModemManager/fcc-unlock.available.d diff --git a/modemmanager/README.md b/modemmanager/README.md old mode 100755 new mode 100644 index 93a7f9b09..c9d880ea4 --- a/modemmanager/README.md +++ b/modemmanager/README.md @@ -22,10 +22,8 @@ Once installed, you can configure the 2G/3G/4G modem connections directly in option password 'vodafone' option pincode '7423' option iptype 'ipv4' - option plmn '214001' option lowpower '1' option signalrate '30' - option allow_roaming '1' Only 'device' and 'proto' are mandatory options, the remaining ones are all optional. @@ -38,7 +36,5 @@ allowing all protocols. The 'iptype' option supports any of these values: 'ipv4', 'ipv6' or 'ipv4v6'. It will default to 'ipv4' if not given. -The 'plmn' option allows to set the network operator MCCMNC. - The 'signalrate' option set's the signal refresh rate (in seconds) for the device. You can call signal info with command: mmcli -m 0 --signal-get diff --git a/modemmanager/files/10-report-down b/modemmanager/files/10-report-down old mode 100755 new mode 100644 index bc44a4795..a3e5fb4ba --- a/modemmanager/files/10-report-down +++ b/modemmanager/files/10-report-down @@ -1,8 +1,11 @@ #!/bin/sh +# SPDX-License-Identifier: CC0-1.0 +# 2022 Aleksander Morgado +# # Automatically report to netifd that the underlying modem -# is really disconnected and reconnect if interface was up - +# is really disconnected +# # require program name and at least 4 arguments [ $# -lt 4 ] && exit 1 @@ -26,12 +29,7 @@ MODEM_DEVICE=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.device") CFG=$(mm_get_modem_config "${MODEM_DEVICE}") [ -n "${CFG}" ] || exit 3 -IFUP=$(ifstatus ${CFG} | jsonfilter -e '@.up') - logger -t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}" proto_init_update $INTERFACE 0 proto_send_update $CFG - -[ "${IFUP}" = "true" ] && ifup ${CFG} - -exit 0 \ No newline at end of file +exit 0 diff --git a/modemmanager/files/25-modemmanager-net b/modemmanager/files/25-modemmanager-net old mode 100755 new mode 100644 diff --git a/modemmanager/files/25-modemmanager-tty b/modemmanager/files/25-modemmanager-tty old mode 100755 new mode 100644 diff --git a/modemmanager/files/25-modemmanager-usb b/modemmanager/files/25-modemmanager-usb old mode 100755 new mode 100644 diff --git a/modemmanager/files/25-modemmanager-wwan b/modemmanager/files/25-modemmanager-wwan old mode 100755 new mode 100644 diff --git a/modemmanager/files/modemmanager.common b/modemmanager/files/modemmanager.common old mode 100755 new mode 100644 index 2ba2036ce..e47e0e025 --- a/modemmanager/files/modemmanager.common +++ b/modemmanager/files/modemmanager.common @@ -22,7 +22,7 @@ MODEMMANAGER_EVENTS_CACHE="${MODEMMANAGER_RUNDIR}/events.cache" mm_log() { local level="$1"; shift - logger -p "daemon.${level}" -t "ModemManager[$$]" "hotplug: $*" + [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && logger -p "daemon.${level}" -t "ModemManager[$$]" "hotplug: $*" } ################################################################################ diff --git a/modemmanager/files/modemmanager.init b/modemmanager/files/modemmanager.init old mode 100755 new mode 100644 index a036d884d..c19022031 --- a/modemmanager/files/modemmanager.init +++ b/modemmanager/files/modemmanager.init @@ -4,8 +4,6 @@ USE_PROCD=1 START=70 -LOG_LEVEL="INFO" - start_service() { # Setup ModemManager service # @@ -23,8 +21,6 @@ start_service() { . /usr/share/ModemManager/modemmanager.common procd_open_instance procd_set_param command /usr/sbin/ModemManager-wrapper - procd_append_param command --log-level="$LOG_LEVEL" - [ "$LOG_LEVEL" = "DEBUG" ] && procd_append_param command --debug procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}" procd_set_param pidfile "${MODEMMANAGER_PID_FILE}" procd_close_instance diff --git a/modemmanager/files/modemmanager.proto b/modemmanager/files/modemmanager.proto old mode 100755 new mode 100644 index a4d837c1e..b8ebce924 --- a/modemmanager/files/modemmanager.proto +++ b/modemmanager/files/modemmanager.proto @@ -323,20 +323,28 @@ modemmanager_connected_method_static_ipv6() { proto_send_update "${interface}" } +modemmanager_disconnected_method_common() { + local interface="$1" + + echo "running disconnection (common)" + proto_notify_error "${interface}" MM_DISCONNECT_IN_PROGRESS + + proto_init_update "*" 0 + proto_send_update "${interface}" +} + proto_modemmanager_init_config() { available=1 no_device=1 - proto_config_add_string device - proto_config_add_string apn - proto_config_add_string 'allowedauth:list(string)' - proto_config_add_string username - proto_config_add_string password - proto_config_add_string allowedmode - proto_config_add_string preferredmode - proto_config_add_string pincode - proto_config_add_string iptype - proto_config_add_string plmn - proto_config_add_int signalrate + proto_config_add_string device + proto_config_add_string apn + proto_config_add_string 'allowedauth:list(string)' + proto_config_add_string username + proto_config_add_string password + proto_config_add_string pincode + proto_config_add_string iptype + proto_config_add_string plmn + proto_config_add_int signalrate proto_config_add_boolean lowpower proto_config_add_boolean allow_roaming proto_config_add_defaults @@ -351,65 +359,18 @@ append_param() { connectargs="${connectargs}${param}" } -modemmanager_set_allowed_mode() { - local device="$1" - local interface="$2" - local allowedmode="$3" - - echo "setting allowed mode to '${allowedmode}'" - mmcli --modem="${device}" --set-allowed-modes="${allowedmode}" || { - proto_notify_error "${interface}" MM_INVALID_ALLOWED_MODES_LIST - proto_block_restart "${interface}" - return 1 - } -} - -modemmanager_set_preferred_mode() { - local device="$1" - local interface="$2" - local allowedmode="$3" - local preferredmode="$4" - - [ -z "${preferredmode}" ] && { - echo "no preferred mode configured" - proto_notify_error "${interface}" MM_NO_PREFERRED_MODE_CONFIGURED - proto_block_restart "${interface}" - return 1 - } - - [ -z "${allowedmode}" ] && { - echo "no allowed mode configured" - proto_notify_error "${interface}" MM_NO_ALLOWED_MODE_CONFIGURED - proto_block_restart "${interface}" - return 1 - } - - echo "setting preferred mode to '${preferredmode}' (${allowedmode})" - mmcli --modem="${device}" \ - --set-preferred-mode="${preferredmode}" \ - --set-allowed-modes="${allowedmode}" || { - proto_notify_error "${interface}" MM_FAILED_SETTING_PREFERRED_MODE - proto_block_restart "${interface}" - return 1 - } -} - proto_modemmanager_setup() { local interface="$1" local modempath modemstatus bearercount bearerpath connectargs bearerstatus beareriface local bearermethod_ipv4 bearermethod_ipv6 auth cliauth local operatorname operatorid registration accesstech signalquality - local allowedmode preferredmode - local device apn allowedauth username password pincode - local iptype plmn metric signalrate allow_roaming + local device apn allowedauth username password pincode iptype plmn metric signalrate allow_roaming local address prefix gateway mtu dns1 dns2 - json_get_vars device apn allowedauth username password - json_get_vars pincode iptype plmn metric signalrate allow_roaming - json_get_vars allowedmode preferredmode + json_get_vars device apn allowedauth username password pincode iptype plmn metric signalrate allow_roaming # validate sysfs path given in config [ -n "${device}" ] || { @@ -430,33 +391,6 @@ proto_modemmanager_setup() { } echo "modem available at ${modempath}" - [ -z "${allowedmode}" ] || { - case "$allowedmode" in - "2g") - modemmanager_set_allowed_mode "$device" \ - "$interface" "2g" - ;; - "3g") - modemmanager_set_allowed_mode "$device" \ - "$interface" "3g" - ;; - "4g") - modemmanager_set_allowed_mode "$device" \ - "$interface" "4g" - ;; - "5g") - modemmanager_set_allowed_mode "$device" \ - "$interface" "5g" - ;; - *) - modemmanager_set_preferred_mode "$device" \ - "$interface" "${allowedmode}" "${preferredmode}" - ;; - esac - # check error for allowed_mode and preferred_mode function call - [ "$?" -ne "0" ] && return 1 - } - # always cleanup before attempting a new connection, just in case modemmanager_cleanup_connection "${modemstatus}" @@ -619,6 +553,7 @@ proto_modemmanager_teardown() { # disconnection handling only requires special treatment in IPv4/PPP [ "${bearermethod_ipv4}" = "ppp" ] && modemmanager_disconnected_method_ppp_ipv4 "${interface}" + modemmanager_disconnected_method_common "${interface}" # disconnect mmcli --modem="${device}" --simple-disconnect || @@ -626,10 +561,14 @@ proto_modemmanager_teardown() { # disable mmcli --modem="${device}" --disable + proto_notify_error "${interface}" MM_MODEM_DISABLED # low power, only if requested [ "${lowpower:-0}" -lt 1 ] || mmcli --modem="${device}" --set-power-state-low + + proto_init_update "*" 0 + proto_send_update "$interface" } [ -n "$INCLUDE_ONLY" ] || { diff --git a/modemmanager/files/usr/sbin/ModemManager-wrapper b/modemmanager/files/usr/sbin/ModemManager-wrapper index 97c2a826d..e06d943e9 100755 --- a/modemmanager/files/usr/sbin/ModemManager-wrapper +++ b/modemmanager/files/usr/sbin/ModemManager-wrapper @@ -27,8 +27,6 @@ main() { mm_report_events_from_cache wait "$CHILD" - - # Set all configured interfaces as unavailable mm_cleanup_interfaces } diff --git a/modemmanager/patches/100-ublox-remove-ID_MM_PROCESS-tags.patch b/modemmanager/patches/100-ublox-remove-ID_MM_PROCESS-tags.patch new file mode 100644 index 000000000..d1f67537b --- /dev/null +++ b/modemmanager/patches/100-ublox-remove-ID_MM_PROCESS-tags.patch @@ -0,0 +1,13 @@ +--- a/src/plugins/ublox/77-mm-ublox-port-types.rules ++++ b/src/plugins/ublox/77-mm-ublox-port-types.rules +@@ -88,8 +88,8 @@ SUBSYSTEMS=="usb", ATTRS{bInterfaceNumbe + # ttyUSB2 (if #2): secondary + # ttyUSB3 (if #3): unused (ignore) + ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_PORT_IGNORE}="1" +-ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1", ENV{ID_MM_DEVICE_PROCESS}="1" +-ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1", ENV{ID_MM_DEVICE_PROCESS}="1" ++ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1" ++ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1" + ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="908b", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_PORT_IGNORE}="1" + + LABEL="mm_ublox_port_types_end" diff --git a/mptcp/Makefile b/mptcp/Makefile old mode 100755 new mode 100644 diff --git a/mptcp/files/etc/hotplug.d/iface/30-mptcp b/mptcp/files/etc/hotplug.d/iface/30-mptcp old mode 100755 new mode 100644 diff --git a/mptcpd/Makefile b/mptcpd/Makefile old mode 100755 new mode 100644 diff --git a/mptcpd/patches/endian.patch b/mptcpd/patches/endian.patch old mode 100755 new mode 100644 diff --git a/mptcpd/patches/ndiffports.patch b/mptcpd/patches/ndiffports.patch old mode 100755 new mode 100644 diff --git a/mptcpd/patches/stub_error_h.patch b/mptcpd/patches/stub_error_h.patch old mode 100755 new mode 100644 diff --git a/msmtp/Makefile b/msmtp/Makefile old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/Makefile b/ndpi-netfilter2/Makefile old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/patches/001-remove-request-module-nf_conntrack-ip_tables-ip6_tables.patch b/ndpi-netfilter2/patches/001-remove-request-module-nf_conntrack-ip_tables-ip6_tables.patch old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/patches/002-no-livepatch-required.patch b/ndpi-netfilter2/patches/002-no-livepatch-required.patch old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/patches/003-bittorrent-compilation-remove-ipv6.patch b/ndpi-netfilter2/patches/003-bittorrent-compilation-remove-ipv6.patch old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/patches/outline-atomics.patch b/ndpi-netfilter2/patches/outline-atomics.patch old mode 100755 new mode 100644 diff --git a/ndpi-netfilter2/patches/skbuff-check_fix.patch b/ndpi-netfilter2/patches/skbuff-check_fix.patch old mode 100755 new mode 100644 diff --git a/net-tools/Makefile b/net-tools/Makefile new file mode 100644 index 000000000..6336c57e5 --- /dev/null +++ b/net-tools/Makefile @@ -0,0 +1,74 @@ +# +# Copyright (C) 2006-2010 OpenWrt.org +# Copyright (C) 2016 Stijn Segers +# Copyright (C) 2020 Ycarus (Yannick Chabanois) for OpenMPTCProuter +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=net-tools +PKG_SOURCE_DATE:=2018-11-03 +PKG_SOURCE_VERSION:=0eebece8c964e3cfa8a018f42b2e7e751a7009a0 +PKG_RELEASE:=2 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://git.code.sf.net/p/net-tools/code +PKG_MIRROR_HASH:=9d978b9f8ccae4af623a299155c62d9b3d31213182c785f925bf8704d48a04c9 + +PKG_MAINTAINER:=Yannick Chabanois +PKG_LICENSE:=GPL-2.0-or-later +PKG_LICENSE_FILES:=COPYING + +include $(INCLUDE_DIR)/package.mk + +define Package/mii-tool + SECTION:=net + CATEGORY:=Network + TITLE:=configure media type using MII commands + URL:=http://net-tools.sourceforge.net/ +endef + +define Package/mii-tool/description + The mii-tool command allows you to set or autodetect the media type + or mii chipset-based ethernet devices. It traditionally had been + distributed in the net-tools package. This is a single distribution + optimized for embedded systems and fully automated cross/-sysroot-builds +endef + +define Package/net-tools-route + SECTION:=net + CATEGORY:=Network + TITLE:=net-tools - route utility + URL:=http://net-tools.sourceforge.net/ + PROVIDES:=route + ALTERNATIVES:=300:/sbin/route:/usr/libexec/net-tools-route +endef + +define Package/net-tools-route/description + Replace busybox version of the route command with the full net-tools + version. This is normally not needed as busybox is smaller and provides + sufficient functionality, but some users may want or need the full + functionality of the net-tools variant (e.g. AF_X25). +endef + +define Build/Configure + # Failed configure.sh leaves stub config.h around. + rm -f $(PKG_BUILD_DIR)/config.h + ( cd $(PKG_BUILD_DIR); yes $$$$'\n' | ./configure.sh config.in ) +endef + +define Package/mii-tool/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/mii-tool $(1)/usr/sbin/ +endef + +define Package/net-tools-route/install + $(INSTALL_DIR) $(1)/usr/libexec + $(INSTALL_BIN) $(PKG_BUILD_DIR)/route $(1)/usr/libexec/net-tools-route +endef + +$(eval $(call BuildPackage,mii-tool)) +$(eval $(call BuildPackage,net-tools-route)) diff --git a/net-tools/patches/mptcp-support.patch b/net-tools/patches/mptcp-support.patch new file mode 100644 index 000000000..b9f69d0f8 --- /dev/null +++ b/net-tools/patches/mptcp-support.patch @@ -0,0 +1,338 @@ +diff -aurN net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/lib/pathnames.h net-tools-mptcp_v0.95/lib/pathnames.h +--- net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/lib/pathnames.h 2018-11-03 14:23:32.000000000 +0100 ++++ net-tools-mptcp_v0.95/lib/pathnames.h 2019-06-22 22:52:42.000000000 +0200 +@@ -14,6 +14,7 @@ + #define _PATH_PROCNET_IGMP6 "/proc/net/igmp6" + #define _PATH_PROCNET_TCP "/proc/net/tcp" + #define _PATH_PROCNET_TCP6 "/proc/net/tcp6" ++#define _PATH_PROCNET_MPTCP "/proc/net/mptcp_net/mptcp" + #define _PATH_PROCNET_UDP "/proc/net/udp" + #define _PATH_PROCNET_UDP6 "/proc/net/udp6" + #define _PATH_PROCNET_UDPLITE "/proc/net/udplite" +diff -aurN net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/netstat.c net-tools-mptcp_v0.95/netstat.c +--- net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/netstat.c 2018-11-03 14:23:32.000000000 +0100 ++++ net-tools-mptcp_v0.95/netstat.c 2019-06-22 22:52:42.000000000 +0200 +@@ -115,7 +115,7 @@ + #endif + + /* prototypes for statistics.c */ +-void parsesnmp(int, int, int, int); ++void parsesnmp(int, int, int, int, int); + void parsesnmp6(int, int, int); + + typedef enum { +@@ -155,6 +155,7 @@ + int flag_opt = 0; + int flag_raw = 0; + int flag_tcp = 0; ++int flag_mptcp = 0; + int flag_sctp= 0; + int flag_udp = 0; + int flag_udplite = 0; +@@ -1206,6 +1207,83 @@ + tcp_do_one, "tcp", "tcp6"); + } + ++static void mptcp_do_one(int lnr, const char *line, const char *prot) ++{ ++ int d, ipv6, num, local_port, rem_port, state, nsub; ++ unsigned long txq, rxq, local_token, remote_token, inode; ++ char rem_addr[128], local_addr[128]; ++ struct sockaddr_storage localsas, remsas; ++ struct sockaddr_in *localaddr = (struct sockaddr_in *)&localsas; ++ struct sockaddr_in *remaddr = (struct sockaddr_in *)&remsas; ++ const struct aftype *ap; ++#if HAVE_AFINET6 ++ char addr6[INET6_ADDRSTRLEN]; ++ struct in6_addr in6; ++ extern struct aftype inet6_aftype; ++#endif ++ ++ if (lnr == 0) ++ return; ++ ++ num = sscanf(line, "%d: %lX %lX %d %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X " ++ "%X %X %lX:%lX %lu\n", &d, &local_token, &remote_token, ++ &ipv6, local_addr, &local_port, rem_addr, &rem_port, ++ &state, &nsub, &txq, &rxq, &inode); ++ ++ if (strlen(local_addr) > 8) { ++#if HAVE_AFINET6 ++ /* Demangle what the kernel gives us */ ++ sscanf(local_addr, "%08X%08X%08X%08X", ++ &in6.s6_addr32[0], &in6.s6_addr32[1], ++ &in6.s6_addr32[2], &in6.s6_addr32[3]); ++ inet_ntop(AF_INET6, &in6, addr6, sizeof(addr6)); ++ inet6_aftype.input(1, addr6, &localsas); ++ sscanf(rem_addr, "%08X%08X%08X%08X", ++ &in6.s6_addr32[0], &in6.s6_addr32[1], ++ &in6.s6_addr32[2], &in6.s6_addr32[3]); ++ inet_ntop(AF_INET6, &in6, addr6, sizeof(addr6)); ++ inet6_aftype.input(1, addr6, &remsas); ++ localsas.ss_family = AF_INET6; ++ remsas.ss_family = AF_INET6; ++#endif ++ } else { ++ sscanf(local_addr, "%X", ++ &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); ++ sscanf(rem_addr, "%X", ++ &((struct sockaddr_in *) &remaddr)->sin_addr.s_addr); ++ localsas.ss_family = AF_INET; ++ remsas.ss_family = AF_INET; ++ } ++ ++ if (num < 12) { ++ fprintf(stderr, _("warning, got bogus mptcp line.\n")); ++ return; ++ } ++ ++ if ((ap = get_afntype(localsas.ss_family)) == NULL) { ++ fprintf(stderr, _("netstat: unsupported address family %d !\n"), ++ localsas.ss_family); ++ return; ++ } ++ ++ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localsas, local_port, "tcp"); ++ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remsas, rem_port, "tcp"); ++ ++ printf("%-4s %6ld %6ld %-*s %-*s %-11s", ++ prot, rxq, txq, (int)netmax(23,strlen(local_addr)), local_addr, ++ (int)netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state])); ++ ++ if (flag_mptcp) ++ printf(" %-11lu %-12lu", local_token, remote_token); ++ ++ finish_this_one(0, inode, NULL); ++} ++ ++static int mptcp_info(void) ++{ ++ INFO_GUTS(_PATH_PROCNET_MPTCP, "AF INET (mptcp)", mptcp_do_one, "mptcp"); ++} ++ + static int notnull(const struct sockaddr_storage *sas) + { + const struct sockaddr_in *sin = (const struct sockaddr_in *)sas; +@@ -1994,7 +2072,7 @@ + fprintf(fp, _(" -Z, --context display SELinux security context for sockets\n")); + #endif + +- fprintf(fp, _("\n ={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}\n")); ++ fprintf(fp, _("\n ={-t|--tcp} {-m|--mptcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}\n")); + fprintf(fp, _(" {-x|--unix} --ax25 --ipx --netrom\n")); + fprintf(fp, _(" =Use '-6|-4' or '-A ' or '--'; default: %s\n"), DFLT_AF); + fprintf(fp, _(" List of possible address families (which support routing):\n")); +@@ -2019,6 +2097,7 @@ + #endif + {"protocol", 1, 0, 'A'}, + {"tcp", 0, 0, 't'}, ++ {"mptcp", 0, 0, 'm'}, + {"sctp", 0, 0, 'S'}, + {"udp", 0, 0, 'u'}, + {"udplite", 0, 0, 'U'}, +@@ -2055,7 +2134,7 @@ + getroute_init(); /* Set up AF routing support */ + + afname[0] = '\0'; +- while ((i = getopt_long(argc, argv, "A:CFMacdeghilnNoprsStuUvVWw2fx64?Z", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:CFMacdeghilnNoprsStmuUvVWw2fx64?Z", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -2146,6 +2225,9 @@ + case 't': + flag_tcp++; + break; ++ case 'm': ++ flag_mptcp++; ++ break; + case 'S': + flag_sctp++; + break; +@@ -2194,17 +2276,17 @@ + usage(E_OPTERR); + + if ((flag_inet || flag_inet6 || flag_sta) && +- !(flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw)) +- flag_noprot = flag_tcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1; ++ !(flag_tcp || flag_sctp || flag_mptcp || flag_udp || flag_udplite || flag_raw)) ++ flag_noprot = flag_tcp = flag_mptcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1; + +- if ((flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw || flag_igmp) && ++ if ((flag_tcp || flag_sctp || flag_mptcp || flag_udp || flag_udplite || flag_raw || flag_igmp) && + !(flag_inet || flag_inet6)) + flag_inet = flag_inet6 = 1; + + if (flag_bluetooth && !(flag_l2cap || flag_rfcomm)) + flag_l2cap = flag_rfcomm = 1; + +- flag_arg = flag_tcp + flag_sctp + flag_udplite + flag_udp + flag_raw + flag_unx ++ flag_arg = flag_tcp + flag_mptcp +flag_sctp + flag_udplite + flag_udp + flag_raw + flag_unx + + flag_ipx + flag_ax25 + flag_netrom + flag_igmp + flag_x25 + flag_rose + + flag_l2cap + flag_rfcomm; + +@@ -2234,7 +2316,7 @@ + + if (!strcmp(afname, "inet")) { + #if HAVE_AFINET +- parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); ++ parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp, flag_mptcp); + #else + ENOSUPP("netstat", "AF INET"); + #endif +@@ -2284,7 +2366,7 @@ + return (i); + } + for (;;) { +- if (!flag_arg || flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw) { ++ if (!flag_arg || flag_tcp || flag_mptcp || flag_sctp || flag_udp || flag_udplite || flag_raw) { + #if HAVE_AFINET + prg_cache_load(); + printf(_("Active Internet connections ")); /* xxx */ +@@ -2298,6 +2380,8 @@ + printf(_("(w/o servers)")); + } + printf(_("\nProto Recv-Q Send-Q Local Address Foreign Address State ")); /* xxx */ ++ if (flag_mptcp) ++ printf(_(" Local Token Remote Token ")); + if (flag_exp > 1) + printf(_(" User Inode ")); + print_progname_banner(); +@@ -2318,6 +2402,12 @@ + if (i) + return (i); + } ++ ++ if (!flag_arg || flag_mptcp) { ++ i = mptcp_info(); ++ if (i) ++ return (i); ++ } + + if (!flag_arg || flag_sctp) { + i = sctp_info(); +diff -aurN net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/statistics.c net-tools-mptcp_v0.95/statistics.c +--- net-tools-code-0eebece8c964e3cfa8a018f42b2e7e751a7009a0/statistics.c 2018-11-03 14:23:32.000000000 +0100 ++++ net-tools-mptcp_v0.95/statistics.c 2019-06-22 22:52:42.000000000 +0200 +@@ -13,7 +13,7 @@ + #include "intl.h" + #include "proc.h" + +-static int print_static,f_raw,f_tcp,f_udp,f_sctp,f_unknown = 1; ++static int print_static,f_raw,f_tcp,f_udp,f_sctp,f_mptcp,f_unknown = 1; + + enum State { + number = 0, opt_number, i_forward, i_inp_icmp, i_outp_icmp, i_rto_alg, +@@ -295,6 +295,51 @@ + {"SctpShutdowns", N_("%llu Number of Graceful Terminations"), number}, + }; + ++static const struct entry Mptcptab[] = ++{ /* Keep the entries sorted! */ ++ {"AddAddrRx", N_("%llu Number of ADD_ADDRs received"), number}, ++ {"AddAddrTx", N_("%llu Number of ADD_ADDRs sent"), number}, ++ {"DSSNoMatchTCP", N_("%llu Number of DSS-mapping/TCP sequence number mismatches"), number}, ++ {"DSSNotMatching", N_("%llu Number of new mismatched mappings"), number}, ++ {"DSSPurgeOldSubSegs", N_("%llu Number of skbs removed from the rcv-queue due to missing DSS-mapping"), number}, ++ {"DSSSplitTail", N_("%llu Number of trimmed segments at the tail"), number}, ++ {"DSSTrimHead", N_("%llu Number of trimmed segments at the head"), number}, ++ {"InfiniteMapRx", N_("%llu Number of infinite mappings received"), number}, ++ {"MPCapableACKRX", N_("%llu Number of received third ACKs with MP_CAPABLE"), number}, ++ {"MPCapableFallbackACK", N_("%llu Number of server-side fallbacks during the 3-way handshake"), number}, ++ {"MPCapableFallbackSYNACK", N_("%llu Number of client-side fallbacks during the 3-way handshake"), number}, ++ {"MPCapableRetransFallback", N_("%llu Number of times the client-side stopped sending MP_CAPABLE after too many SYN-retransmissions"), ++ number}, ++ {"MPCapableSYNACKRX", N_("%llu Number of received SYN/ACKs with MP_CAPABLE"), number}, ++ {"MPCapableSYNRX", N_("%llu Number of received SYNs with MP_CAPABLE"), number}, ++ {"MPCapableSYNTX", N_("%llu Number of sent SYNs with MP_CAPABLE"), number}, ++ {"MPCsumFail", N_("%llu Number of received segments with an invalid checksum"), number}, ++ {"MPFailRX", N_("%llu Number of MP_FAILs received"), number}, ++ {"MPFallbackAckInit", N_("%llu Number of fallbacks upon ack without data-ack on initial subflow"), number}, ++ {"MPFallbackAckSub", N_("%llu Number of fallbacks upon ack without data-ack on new subflow"), number}, ++ {"MPFallbackDataInit", N_("%llu Number of fallbacks upon data without DSS at the beginning on initial subflow"), number}, ++ {"MPFallbackDataSub", N_("%llu Number of fallbacks upon data without DSS at the beginning on new subflow"), number}, ++ {"MPFastcloseRX", N_("%llu Number of FAST_CLOSEs received"), number}, ++ {"MPFastcloseTX", N_("%llu Number of FAST_CLOSEs sent"), number}, ++ {"MPJoinAckHMacFailure", N_("%llu Number of HMAC mismatches on ACK + MP_JOIN"), number}, ++ {"MPJoinAckMissing", N_("%llu Number of third ACKs on a new subflow not containing a MP_JOIN"), number}, ++ {"MPJoinAckRTO", N_("%llu Number of retransmission timeouts for third ACK + MP_JOIN"), number}, ++ {"MPJoinAckRexmit", N_("%llu Number of retransmitted ACK + MP_JOINs"), number}, ++ {"MPJoinAckRx", N_("%llu Number of ACK + MP_JOINs received"), number}, ++ {"MPJoinAlreadyFallenback", N_("%llu Number of received MP_JOINs on a session that has fallen back to reg. TCP"), number}, ++ {"MPJoinNoTokenFound", N_("%llu Number of received MP_JOINs without a token"), number}, ++ {"MPJoinSynAckHMacFailure", N_("%llu Number of received SYN/ACK + MP_JOINs with a HMAC mismatch"), number}, ++ {"MPJoinSynAckRx", N_("%llu Number of SYN/ACK + MP_JOINs received"), number}, ++ {"MPJoinSynRx", N_("%llu Number of SYN + MP_JOINs received"), number}, ++ {"MPJoinSynTx", N_("%llu Number of SYN + MP_JOINs sent"), number}, ++ {"MPRemoveAddrSubDelete", N_("%llu Number of subflows removed due to REMOVE_ADDR"), number}, ++ {"MPTCPCsumEnabled", N_("%llu Number of MPTCP connections created with DSS-checksum enabled"), number}, ++ {"MPTCPRetrans", N_("%llu Number of segments retransmitted at the MPTCP level"), number}, ++ {"NoDSSInWindow", N_("%llu Number of too many packets received without a DSS option errors"), number}, ++ {"RemAddrRx", N_("%llu Number of REMOVE_ADDRs received"), number}, ++ {"RemAddrTx", N_("%llu Number of REMOVE_ADDRs sent"), number}, ++}; ++ + struct tabtab { + const char *title; + const struct entry *tab; +@@ -310,6 +355,7 @@ + {"Udp", Udptab, sizeof(Udptab), &f_udp}, + {"Sctp", Sctptab, sizeof(Sctptab), &f_sctp}, + {"TcpExt", Tcpexttab, sizeof(Tcpexttab), &f_tcp}, ++ {"Mptcp", Mptcptab, sizeof(Mptcptab), &f_mptcp}, + {NULL} + }; + +@@ -503,13 +549,13 @@ + } + + /* Process a file with name-value lines (like /proc/net/sctp/snmp) */ +-static void process_fd2(FILE *f, const char *filename) ++static void process_fd2(FILE *f, const char *filename, const char *tablename) + { + char buf1[1024]; + char *sp; + const struct tabtab *tab; + +- tab = newtable(snmptabs, "Sctp"); ++ tab = newtable(snmptabs, tablename); + + while (fgets(buf1, sizeof buf1, f)) { + sp = buf1 + strcspn(buf1, " \t\n"); +@@ -527,11 +573,11 @@ + } + } + +-void parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp) ++void parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp, int flag_mptcp) + { + FILE *f; + +- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp; ++ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp; f_mptcp = flag_mptcp; + + f = proc_fopen("/proc/net/snmp"); + if (!f) { +@@ -561,12 +607,21 @@ + + f = proc_fopen("/proc/net/sctp/snmp"); + if (f) { +- process_fd2(f,"/proc/net/sctp/snmp"); ++ process_fd2(f,"/proc/net/sctp/snmp", "Sctp"); + if (ferror(f)) { + perror("/proc/net/sctp/snmp"); + fclose(f); + } + } ++ ++ f = proc_fopen("/proc/net/mptcp_net/snmp"); ++ if (f) { ++ process_fd2(f,"/proc/net/mptcp_net/snmp", "Mptcp"); ++ if (ferror(f)) { ++ perror("/proc/net/mptcp_net/snmp"); ++ fclose(f); ++ } ++ } + } + + void parsesnmp6(int flag_raw, int flag_tcp, int flag_udp) diff --git a/nginx/Config.in b/nginx/Config.in new file mode 100644 index 000000000..68b037098 --- /dev/null +++ b/nginx/Config.in @@ -0,0 +1,247 @@ +# +# Copyright (C) 2010-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +menu "Configuration" + depends on PACKAGE_nginx + +config NGINX_SSL + bool + prompt "Enable SSL module" + help + Enable HTTPS/SSL support. + default n + +config NGINX_DAV + bool + prompt "Enable WebDAV module" + help + Enable the HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY and MOVE. + default n + +config NGINX_FLV + bool + prompt "Enable FLV module" + help + Provides the ability to seek within FLV (Flash) files using time-based offsets. + default n + +config NGINX_STUB_STATUS + bool + prompt "Enable stub status module" + help + Enable the stub status module which gives some status from the server. + default n + +config NGINX_HTTP_CHARSET + bool + prompt "Enable HTTP charset module" + default y + +config NGINX_HTTP_GZIP + bool + prompt "Enable HTTP gzip module" + default y + +config NGINX_HTTP_SSI + bool + prompt "Enable HTTP ssi module" + default y + +config NGINX_HTTP_USERID + bool + prompt "Enable HTTP userid module" + default y + +config NGINX_HTTP_ACCESS + bool + prompt "Enable HTTP access module" + default y + +config NGINX_HTTP_AUTH_BASIC + bool + prompt "Enable HTTP auth basic" + default y + +config NGINX_HTTP_AUTH_REQUEST + bool + prompt "Enable HTTP auth request module" + default n + +config NGINX_HTTP_AUTOINDEX + bool + prompt "Enable HTTP autoindex module" + default y + +config NGINX_HTTP_GEO + bool + prompt "Enable HTTP geo module" + default y + +config NGINX_HTTP_MAP + bool + prompt "Enable HTTP map module" + default y + +config NGINX_HTTP_SPLIT_CLIENTS + bool + prompt "Enable HTTP split clients" + default y + +config NGINX_HTTP_REFERER + bool + prompt "Enable HTTP referer module" + default y + +config NGINX_HTTP_REWRITE + bool + prompt "Enable HTTP rewrite module" + select NGINX_PCRE + default y + +config NGINX_HTTP_PROXY + bool + prompt "Enable HTTP proxy module" + default y + +config NGINX_HTTP_FASTCGI + bool + prompt "Enable HTTP fastcgi module" + default y + +config NGINX_HTTP_UWSGI + bool + prompt "Enable HTTP uwsgi module" + default y + +config NGINX_HTTP_SCGI + bool + prompt "Enable HTTP scgi module" + default y + +config NGINX_HTTP_MEMCACHED + bool + prompt "Enable HTTP memcached module" + default y + +config NGINX_HTTP_LIMIT_CONN + bool + prompt "Enable HTTP limit conn" + default y + +config NGINX_HTTP_LIMIT_REQ + bool + prompt "Enable HTTP limit req" + default y + +config NGINX_HTTP_EMPTY_GIF + bool + prompt "Enable HTTP empty gif" + default y + +config NGINX_HTTP_BROWSER + bool + prompt "Enable HTTP browser module" + default y + +config NGINX_HTTP_UPSTREAM_HASH + bool + prompt "Enable HTTP hash module" + default y + +config NGINX_HTTP_UPSTREAM_IP_HASH + bool + prompt "Enable HTTP IP hash module" + default y + +config NGINX_HTTP_UPSTREAM_LEAST_CONN + bool + prompt "Enable HTTP least conn module" + default y + +config NGINX_HTTP_UPSTREAM_KEEPALIVE + bool + prompt "Enable HTTP keepalive module" + default y + +config NGINX_HTTP_CACHE + bool + prompt "Enable HTTP cache" + default y + +config NGINX_HTTP_V2 + bool + prompt "Enable HTTP_V2 module" + default n + +config NGINX_PCRE + bool + prompt "Enable PCRE library usage" + default y + +config NGINX_NAXSI + bool + prompt "Enable NAXSI module" + default y + +config NGINX_LUA + bool + prompt "Enable Lua module" + default n + +config NGINX_HTTP_REAL_IP + bool + prompt "Enable HTTP real ip module" + default n + +config NGINX_HTTP_SECURE_LINK + bool + prompt "Enable HTTP secure link module" + default n + +config NGINX_HTTP_SUB + bool + prompt "Enable HTTP sub module" + default n + +config NGINX_HEADERS_MORE + bool + prompt "Enable Headers_more module" + help + Set and clear input and output headers...more than "add"! + default y + +config NGINX_HTTP_BROTLI + bool + prompt "Enable Brotli compression module" + help + Add support for brotli compression module. + default n + +config NGINX_STREAM_CORE_MODULE + bool + prompt "Enable stream support" + help + Add support for NGINX request streaming. + default y + +config NGINX_RTMP_MODULE + bool + prompt "Enable RTMP module" + depends on NGINX_SSL + help + Add support for NGINX-based Media Streaming Server module. + DASH enhanced - https://github.com/ut0mt8/nginx-rtmp-module + default n + +config NGINX_TS_MODULE + bool + prompt "Enable TS module" + help + Add support for MPEG-TS Live Module module. + default n + +endmenu diff --git a/nginx/Config_ssl.in b/nginx/Config_ssl.in new file mode 100644 index 000000000..9325fba51 --- /dev/null +++ b/nginx/Config_ssl.in @@ -0,0 +1,239 @@ +# +# Copyright (C) 2010-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +menu "Configuration" + depends on PACKAGE_nginx-ssl + +config NGINX_DAV + bool + prompt "Enable WebDAV module" + help + Enable the HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY and MOVE. + default n + +config NGINX_FLV + bool + prompt "Enable FLV module" + help + Provides the ability to seek within FLV (Flash) files using time-based offsets. + default n + +config NGINX_STUB_STATUS + bool + prompt "Enable stub status module" + help + Enable the stub status module which gives some status from the server. + default n + +config NGINX_HTTP_CHARSET + bool + prompt "Enable HTTP charset module" + default y + +config NGINX_HTTP_GZIP + bool + prompt "Enable HTTP gzip module" + default y + +config NGINX_HTTP_SSI + bool + prompt "Enable HTTP ssi module" + default y + +config NGINX_HTTP_USERID + bool + prompt "Enable HTTP userid module" + default y + +config NGINX_HTTP_ACCESS + bool + prompt "Enable HTTP access module" + default y + +config NGINX_HTTP_AUTH_BASIC + bool + prompt "Enable HTTP auth basic" + default y + +config NGINX_HTTP_AUTH_REQUEST + bool + prompt "Enable HTTP auth request module" + default n + +config NGINX_HTTP_AUTOINDEX + bool + prompt "Enable HTTP autoindex module" + default y + +config NGINX_HTTP_GEO + bool + prompt "Enable HTTP geo module" + default y + +config NGINX_HTTP_MAP + bool + prompt "Enable HTTP map module" + default y + +config NGINX_HTTP_SPLIT_CLIENTS + bool + prompt "Enable HTTP split clients" + default y + +config NGINX_HTTP_REFERER + bool + prompt "Enable HTTP referer module" + default y + +config NGINX_HTTP_REWRITE + bool + prompt "Enable HTTP rewrite module" + select NGINX_PCRE + default y + +config NGINX_HTTP_PROXY + bool + prompt "Enable HTTP proxy module" + default y + +config NGINX_HTTP_FASTCGI + bool + prompt "Enable HTTP fastcgi module" + default y + +config NGINX_HTTP_UWSGI + bool + prompt "Enable HTTP uwsgi module" + default y + +config NGINX_HTTP_SCGI + bool + prompt "Enable HTTP scgi module" + default y + +config NGINX_HTTP_MEMCACHED + bool + prompt "Enable HTTP memcached module" + default y + +config NGINX_HTTP_LIMIT_CONN + bool + prompt "Enable HTTP limit conn" + default y + +config NGINX_HTTP_LIMIT_REQ + bool + prompt "Enable HTTP limit req" + default y + +config NGINX_HTTP_EMPTY_GIF + bool + prompt "Enable HTTP empty gif" + default y + +config NGINX_HTTP_BROWSER + bool + prompt "Enable HTTP browser module" + default y + +config NGINX_HTTP_UPSTREAM_HASH + bool + prompt "Enable HTTP hash module" + default y + +config NGINX_HTTP_UPSTREAM_IP_HASH + bool + prompt "Enable HTTP IP hash module" + default y + +config NGINX_HTTP_UPSTREAM_LEAST_CONN + bool + prompt "Enable HTTP least conn module" + default y + +config NGINX_HTTP_UPSTREAM_KEEPALIVE + bool + prompt "Enable HTTP keepalive module" + default y + +config NGINX_HTTP_CACHE + bool + prompt "Enable HTTP cache" + default y + +config NGINX_HTTP_V2 + bool + prompt "Enable HTTP_V2 module" + default n + +config NGINX_PCRE + bool + prompt "Enable PCRE library usage" + default y + +config NGINX_NAXSI + bool + prompt "Enable NAXSI module" + default y + +config NGINX_LUA + bool + prompt "Enable Lua module" + default n + +config NGINX_HTTP_REAL_IP + bool + prompt "Enable HTTP real ip module" + default n + +config NGINX_HTTP_SECURE_LINK + bool + prompt "Enable HTTP secure link module" + default n + +config NGINX_HTTP_SUB + bool + prompt "Enable HTTP sub module" + default n + +config NGINX_HEADERS_MORE + bool + prompt "Enable Headers_more module" + help + Set and clear input and output headers...more than "add"! + default y + +config NGINX_HTTP_BROTLI + bool + prompt "Enable Brotli compression module" + help + Add support for brotli compression module. + default n + +config NGINX_STREAM_CORE_MODULE + bool + prompt "Enable stream support" + help + Add support for NGINX request streaming. + default n + +config NGINX_RTMP_MODULE + bool + prompt "Enable RTMP module" + help + Add support for NGINX-based Media Streaming Server module. + DASH enhanced - https://github.com/ut0mt8/nginx-rtmp-module + default n + +config NGINX_TS_MODULE + bool + prompt "Enable TS module" + help + Add support for MPEG-TS Live Module module. + default n + +endmenu diff --git a/nginx/Makefile b/nginx/Makefile new file mode 100644 index 000000000..dc32fbb04 --- /dev/null +++ b/nginx/Makefile @@ -0,0 +1,532 @@ +# +# Copyright (C) 2012-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=nginx +PKG_VERSION:=1.16.1 +PKG_RELEASE:=2 + +PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://nginx.org/download/ +PKG_HASH:=f11c2a6dd1d3515736f0324857957db2de98be862461b5a542a3ac6188dbe32b + +PKG_MAINTAINER:=Thomas Heil \ + Ansuel Smith +PKG_LICENSE:=2-clause BSD-like license + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_FIXUP:=autoreconf +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +PKG_CONFIG_DEPENDS := \ + CONFIG_NGINX_SSL \ + CONFIG_NGINX_DAV \ + CONFIG_NGINX_FLV \ + CONFIG_NGINX_STUB_STATUS \ + CONFIG_NGINX_HTTP_CHARSET \ + CONFIG_NGINX_HTTP_GZIP \ + CONFIG_NGINX_HTTP_SSI \ + CONFIG_NGINX_HTTP_USERID \ + CONFIG_NGINX_HTTP_ACCESS \ + CONFIG_NGINX_HTTP_AUTH_BASIC \ + CONFIG_NGINX_HTTP_AUTH_REQUEST \ + CONFIG_NGINX_HTTP_AUTOINDEX \ + CONFIG_NGINX_HTTP_GEO \ + CONFIG_NGINX_HTTP_MAP \ + CONFIG_NGINX_HTTP_SPLIT_CLIENTS \ + CONFIG_NGINX_HTTP_REFERER \ + CONFIG_NGINX_HTTP_REWRITE \ + CONFIG_NGINX_HTTP_PROXY \ + CONFIG_NGINX_HTTP_FASTCGI \ + CONFIG_NGINX_HTTP_UWSGI \ + CONFIG_NGINX_HTTP_SCGI \ + CONFIG_NGINX_HTTP_MEMCACHED \ + CONFIG_NGINX_HTTP_LIMIT_CONN \ + CONFIG_NGINX_HTTP_LIMIT_REQ \ + CONFIG_NGINX_HTTP_EMPTY_GIF \ + CONFIG_NGINX_HTTP_BROWSER \ + CONFIG_NGINX_HTTP_UPSTREAM_HASH \ + CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH \ + CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN \ + CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE \ + CONFIG_NGINX_HTTP_UPSTREAM_ZONE \ + CONFIG_NGINX_HTTP_CACHE \ + CONFIG_NGINX_HTTP_V2 \ + CONFIG_NGINX_PCRE \ + CONFIG_NGINX_NAXSI \ + CONFIG_NGINX_LUA \ + CONFIG_NGINX_HTTP_REAL_IP \ + CONFIG_NGINX_HTTP_SECURE_LINK \ + CONFIG_NGINX_HTTP_BROTLI \ + CONFIG_NGINX_HEADERS_MORE \ + CONFIG_NGINX_STREAM_CORE_MODULE \ + CONFIG_NGINX_RTMP_MODULE \ + CONFIG_NGINX_TS_MODULE \ + +include $(INCLUDE_DIR)/package.mk + +define Package/nginx/default + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Nginx web server + URL:=http://nginx.org/ + DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl \ + +NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread +NGINX_DAV:libexpat +endef + +define Package/nginx/description + nginx is an HTTP and reverse proxy server, as well as a mail proxy server, \ + written by Igor Sysoev. (Some module require SSL module enable to show up in \ + config menu) +endef + +define Package/nginx + $(Package/nginx/default) + VARIANT:=no-ssl +endef + +define Package/nginx-ssl + $(Package/nginx/default) + TITLE += with SSL support + DEPENDS +=+libopenssl + VARIANT:=ssl + PROVIDES:=nginx +endef + +Package/nginx-ssl/description = $(Package/nginx/description) \ + This varian is compiled with SSL support enabled. To enable additional module \ + select them in the nginx default configuration menu. + +define Package/nginx-all-module + $(Package/nginx/default) + TITLE += with ALL module selected + DEPENDS:=+libpcre +libopenssl +zlib +liblua +libpthread +libexpat + VARIANT:=all-module + PROVIDES:=nginx +endef + +Package/nginx-all-module/description = $(Package/nginx/description) \ + This varian is compiled with ALL module selected. + +define Package/nginx/config + source "$(SOURCE)/Config.in" +endef + +define Package/nginx-ssl/config + source "$(SOURCE)/Config_ssl.in" +endef + +config_files=nginx.conf mime.types + +define Package/nginx/conffiles +/etc/nginx/ +endef + +Package/nginx-ssl/conffiles = $(Package/nginx/conffiles) +Package/nginx-all-module/conffiles = $(Package/nginx/conffiles) + + +ADDITIONAL_MODULES:= + +ifneq ($(BUILD_VARIANT),all-module) + ifneq ($(CONFIG_NGINX_HTTP_CACHE),y) + ADDITIONAL_MODULES += --without-http-cache + endif + ifneq ($(CONFIG_NGINX_PCRE),y) + ADDITIONAL_MODULES += --without-pcre + endif + ifneq ($(CONFIG_NGINX_HTTP_CHARSET),y) + ADDITIONAL_MODULES += --without-http_charset_module + else + config_files += koi-utf koi-win win-utf + endif + ifneq ($(CONFIG_NGINX_HTTP_GZIP),y) + ADDITIONAL_MODULES += --without-http_gzip_module + endif + ifneq ($(CONFIG_NGINX_HTTP_SSI),y) + ADDITIONAL_MODULES += --without-http_ssi_module + endif + ifneq ($(CONFIG_NGINX_HTTP_USERID),y) + ADDITIONAL_MODULES += --without-http_userid_module + endif + ifneq ($(CONFIG_NGINX_HTTP_ACCESS),y) + ADDITIONAL_MODULES += --without-http_access_module + endif + ifneq ($(CONFIG_NGINX_HTTP_AUTH_BASIC),y) + ADDITIONAL_MODULES += --without-http_auth_basic_module + endif + ifneq ($(CONFIG_NGINX_HTTP_AUTOINDEX),y) + ADDITIONAL_MODULES += --without-http_autoindex_module + endif + ifneq ($(CONFIG_NGINX_HTTP_GEO),y) + ADDITIONAL_MODULES += --without-http_geo_module + endif + ifneq ($(CONFIG_NGINX_HTTP_MAP),y) + ADDITIONAL_MODULES += --without-http_map_module + endif + ifneq ($(CONFIG_NGINX_HTTP_SPLIT_CLIENTS),y) + ADDITIONAL_MODULES += --without-http_split_clients_module + endif + ifneq ($(CONFIG_NGINX_HTTP_REFERER),y) + ADDITIONAL_MODULES += --without-http_referer_module + endif + ifneq ($(CONFIG_NGINX_HTTP_REWRITE),y) + ADDITIONAL_MODULES += --without-http_rewrite_module + endif + ifneq ($(CONFIG_NGINX_HTTP_PROXY),y) + ADDITIONAL_MODULES += --without-http_proxy_module + endif + ifneq ($(CONFIG_NGINX_HTTP_FASTCGI),y) + ADDITIONAL_MODULES += --without-http_fastcgi_module + else + config_files += fastcgi_params + endif + ifneq ($(CONFIG_NGINX_HTTP_UWSGI),y) + ADDITIONAL_MODULES += --without-http_uwsgi_module + endif + ifneq ($(CONFIG_NGINX_HTTP_SCGI),y) + ADDITIONAL_MODULES += --without-http_scgi_module + endif + ifneq ($(CONFIG_NGINX_HTTP_MEMCACHED),y) + ADDITIONAL_MODULES += --without-http_memcached_module + endif + ifneq ($(CONFIG_NGINX_HTTP_LIMIT_CONN),y) + ADDITIONAL_MODULES += --without-http_limit_conn_module + endif + ifneq ($(CONFIG_NGINX_HTTP_LIMIT_REQ),y) + ADDITIONAL_MODULES += --without-http_limit_req_module + endif + ifneq ($(CONFIG_NGINX_HTTP_EMPTY_GIF),y) + ADDITIONAL_MODULES += --without-http_empty_gif_module + endif + ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y) + ADDITIONAL_MODULES += --without-http_browser_module + endif + ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y) + ADDITIONAL_MODULES += --without-http_upstream_hash_module + endif + ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y) + ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module + endif + ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y) + ADDITIONAL_MODULES += --without-http_upstream_least_conn_module + endif + ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y) + ADDITIONAL_MODULES += --without-http_upstream_keepalive_module + endif + + ifeq ($(BUILD_VARIANT),ssl) + ifneq ($(CONFIG_NGINX_SSL),y) + ADDITIONAL_MODULES += --with-http_ssl_module + endif + endif + + ifeq ($(CONFIG_NGINX_SSL),y) + ADDITIONAL_MODULES += --with-http_ssl_module + endif + ifeq ($(CONFIG_NGINX_NAXSI),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src + endif + ifeq ($(CONFIG_NGINX_LUA),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx + endif + ifeq ($(CONFIG_IPV6),y) + ADDITIONAL_MODULES += --with-ipv6 + endif + ifeq ($(CONFIG_NGINX_STUB_STATUS),y) + ADDITIONAL_MODULES += --with-http_stub_status_module + endif + ifeq ($(CONFIG_NGINX_FLV),y) + ADDITIONAL_MODULES += --with-http_flv_module + endif + ifeq ($(CONFIG_NGINX_DAV),y) + ADDITIONAL_MODULES += --with-http_dav_module --add-module=$(PKG_BUILD_DIR)/nginx-dav-ext-module + endif + ifeq ($(CONFIG_NGINX_HTTP_AUTH_REQUEST),y) + ADDITIONAL_MODULES += --with-http_auth_request_module + endif + ifeq ($(CONFIG_NGINX_HTTP_V2),y) + ADDITIONAL_MODULES += --with-http_v2_module + endif + ifeq ($(CONFIG_NGINX_HTTP_REAL_IP),y) + ADDITIONAL_MODULES += --with-http_realip_module + endif + ifeq ($(CONFIG_NGINX_HTTP_SECURE_LINK),y) + ADDITIONAL_MODULES += --with-http_secure_link_module + endif + ifeq ($(CONFIG_NGINX_HTTP_SUB),y) + ADDITIONAL_MODULES += --with-http_sub_module + endif + ifeq ($(CONFIG_NGINX_STREAM_CORE_MODULE),y) + ADDITIONAL_MODULES += --with-stream + endif + ifeq ($(CONFIG_NGINX_HEADERS_MORE),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-headers-more + endif + ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-brotli + endif + ifeq ($(CONFIG_NGINX_RTMP_MODULE),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-rtmp + endif + ifeq ($(CONFIG_NGINX_TS_MODULE),y) + ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-ts + endif +else + CONFIG_NGINX_HEADERS_MORE:=y + CONFIG_NGINX_HTTP_BROTLI:=y + CONFIG_NGINX_RTMP_MODULE:=y + CONFIG_NGINX_TS_MODULE:=y + CONFIG_NGINX_NAXSI:=y + CONFIG_NGINX_LUA:=y + CONFIG_NGINX_DAV:=y + ADDITIONAL_MODULES += --with-http_ssl_module --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src \ + --add-module=$(PKG_BUILD_DIR)/lua-nginx --with-ipv6 --with-http_stub_status_module --with-http_flv_module \ + --with-http_dav_module --add-module=$(PKG_BUILD_DIR)/nginx-dav-ext-module \ + --with-http_auth_request_module --with-http_v2_module --with-http_realip_module \ + --with-http_secure_link_module --with-http_sub_module --add-module=$(PKG_BUILD_DIR)/nginx-headers-more \ + --with-stream \ + --add-module=$(PKG_BUILD_DIR)/nginx-brotli --add-module=$(PKG_BUILD_DIR)/nginx-rtmp \ + --add-module=$(PKG_BUILD_DIR)/nginx-ts + config_files += koi-utf koi-win win-utf fastcgi_params +endif + +define Package/nginx-mod-luci/default + TITLE:=Nginx on LuCI + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Support file for Nginx + URL:=http://nginx.org/ + DEPENDS:=+uwsgi-cgi +uwsgi-cgi-luci-support +endef + +define Package/nginx-mod-luci + $(Package/nginx-mod-luci/default) + DEPENDS += +nginx +endef + +define Package/nginx-mod-luci/description + Support file for LuCI in nginx. Include custom nginx configuration, autostart script for uwsgi. +endef + +define Package/nginx-mod-luci-ssl + $(Package/nginx-mod-luci/default) + TITLE += with HTTPS support + DEPENDS += +nginx-ssl +endef + +Package/nginx-mod-luci-ssl/description = $(define Package/nginx-mod-luci/description) \ + This also include redirect from http to https and cert autogeneration. + +TARGET_CFLAGS += -fvisibility=hidden -ffunction-sections -fdata-sections -DNGX_LUA_NO_BY_LUA_BLOCK +TARGET_LDFLAGS += -Wl,--gc-sections + +ifeq ($(CONFIG_NGINX_LUA),y) + CONFIGURE_VARS += LUA_INC=$(STAGING_DIR)/usr/include \ + LUA_LIB=$(STAGING_DIR)/usr/lib +endif + +CONFIGURE_ARGS += \ + --crossbuild=Linux::$(ARCH) \ + --prefix=/usr \ + --conf-path=/etc/nginx/nginx.conf \ + $(ADDITIONAL_MODULES) \ + --error-log-path=/var/log/nginx/error.log \ + --pid-path=/var/run/nginx.pid \ + --lock-path=/var/lock/nginx.lock \ + --http-log-path=/var/log/nginx/access.log \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --with-cc="$(TARGET_CC)" \ + --with-cc-opt="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \ + --with-ld-opt="$(TARGET_LDFLAGS)" \ + --without-http_upstream_zone_module + +define Package/nginx-mod-luci/install + $(INSTALL_DIR) $(1)/etc/nginx + $(INSTALL_BIN) ./files-luci-support/luci_uwsgi.conf $(1)/etc/nginx/luci_uwsgi.conf + $(INSTALL_BIN) ./files-luci-support/luci_nginx.conf $(1)/etc/nginx/luci_nginx.conf + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files-luci-support/60_nginx-luci-support $(1)/etc/uci-defaults/60_nginx-luci-support +endef + +define Package/nginx-mod-luci-ssl/install + $(Package/nginx-mod-luci/install) + $(INSTALL_DIR) $(1)/etc/nginx + $(INSTALL_BIN) ./files-luci-support/luci_nginx_ssl.conf $(1)/etc/nginx/luci_nginx_ssl.conf + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files-luci-support/70_nginx-luci-support-ssl $(1)/etc/uci-defaults/70_nginx-luci-support-ssl +endef + +define Package/nginx/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nginx $(1)/usr/sbin/ + $(INSTALL_DIR) $(1)/etc/nginx + $(INSTALL_DATA) $(addprefix $(PKG_INSTALL_DIR)/etc/nginx/,$(config_files)) $(1)/etc/nginx/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/nginx.init $(1)/etc/init.d/nginx +ifeq ($(CONFIG_NGINX_NAXSI),y) + $(INSTALL_DIR) $(1)/etc/nginx + $(INSTALL_BIN) $(PKG_BUILD_DIR)/nginx-naxsi/naxsi_config/naxsi_core.rules $(1)/etc/nginx + chmod 0640 $(1)/etc/nginx/naxsi_core.rules +endif + $(if $(CONFIG_NGINX_NAXSI),$($(INSTALL_BIN) $(PKG_BUILD_DIR)/nginx-naxsi/naxsi_config/naxsi_core.rules $(1)/etc/nginx)) + $(if $(CONFIG_NGINX_NAXSI),$(chmod 0640 $(1)/etc/nginx/naxsi_core.rules)) +endef + +Package/nginx-ssl/install = $(Package/nginx/install) +Package/nginx-all-module/install = $(Package/nginx/install) + +define Build/Prepare + $(Build/Prepare/Default) + $(Prepare/nginx-naxsi) + $(Prepare/lua-nginx) + $(Prepare/nginx-brotli) + $(Prepare/nginx-headers-more) + $(Prepare/nginx-rtmp) + $(Prepare/nginx-ts) + $(Prepare/nginx-dav-ext-module) +endef + + +ifeq ($(CONFIG_NGINX_HEADERS_MORE),y) + define Download/nginx-headers-more + VERSION:=a9f7c7e86cc7441d04e2f11f01c2e3a9c4b0301d + SUBDIR:=nginx-headers-more + FILE:=headers-more-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/openresty/headers-more-nginx-module.git + MIRROR_HASH:=432609015719aaa7241e5166c7cda427acbe004f725887f78ef629d51bd9cb3f + PROTO:=git + endef + $(eval $(call Download,nginx-headers-more)) + + define Prepare/nginx-headers-more + $(eval $(Download/nginx-headers-more)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + + +ifeq ($(CONFIG_NGINX_HTTP_BROTLI),y) + define Download/nginx-brotli + VERSION:=e26248ee361c04e25f581b92b85d95681bdffb39 + SUBDIR:=nginx-brotli + FILE:=ngx-brotli-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/eustas/ngx_brotli.git + MIRROR_HASH:=76b891ba49f82f0cfbc9cba875646e26ee986b522373e0aa2698a9923a4adcdb + PROTO:=git + endef + $(eval $(call Download,nginx-brotli)) + + define Prepare/nginx-brotli + $(eval $(Download/nginx-brotli)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + + +ifeq ($(CONFIG_NGINX_RTMP_MODULE),y) + define Download/nginx-rtmp + VERSION:=f0ea62342a4eca504b311cd5df910d026c3ea4cf + SUBDIR:=nginx-rtmp + FILE:=ngx-rtmp-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/ut0mt8/nginx-rtmp-module.git + MIRROR_HASH:=9ba7625718d21f658c4878729271832a07bd989165f1d1c720b3a9b54cf738cc + PROTO:=git + endef + $(eval $(call Download,nginx-rtmp)) + + define Prepare/nginx-rtmp + $(eval $(Download/nginx-rtmp)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + + +ifeq ($(CONFIG_NGINX_TS_MODULE),y) + define Download/nginx-ts + VERSION:=ef2f874d95cc75747eb625a292524a702aefb0fd + SUBDIR:=nginx-ts + FILE:=ngx-ts-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/arut/nginx-ts-module.git + MIRROR_HASH:=31ecc9968b928886b54884138eafe2fa747648bca5094d4c3132e8ae9509d1d3 + PROTO:=git + endef + $(eval $(call Download,nginx-ts)) + + define Prepare/nginx-ts + $(eval $(Download/nginx-ts)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + + +ifeq ($(CONFIG_NGINX_NAXSI),y) + define Download/nginx-naxsi + VERSION:=951123ad456bdf5ac94e8d8819342fe3d49bc002 + SUBDIR:=nginx-naxsi + FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/nbs-system/naxsi.git + MIRROR_HASH:=7ab791f2ff38096f48013141bbfe20ba213d5e04dcac08ca82e0cac07d5c30f0 + PROTO:=git + endef + $(eval $(call Download,nginx-naxsi)) + + define Prepare/nginx-naxsi + $(eval $(Download/nginx-naxsi)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + + +ifeq ($(CONFIG_NGINX_LUA),y) + define Download/lua-nginx + VERSION:=e94f2e5d64daa45ff396e262d8dab8e56f5f10e0 + SUBDIR:=lua-nginx + FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/openresty/lua-nginx-module.git + MIRROR_HASH:=ae439f9a8b3c34d7240735b844db72ee721af4791bbaff5692bca20e6785f541 + PROTO:=git + endef + $(eval $(call Download,lua-nginx)) + + define Prepare/lua-nginx + $(eval $(Download/lua-nginx)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + $(call PatchDir,$(PKG_BUILD_DIR),./patches-lua-nginx) + endef +endif + + +ifeq ($(CONFIG_NGINX_DAV),y) + define Download/nginx-dav-ext-module + VERSION:=430fd774fe838a04f1a5defbf1dd571d42300cf9 + SUBDIR:=nginx-dav-ext-module + FILE:=nginx-dav-ext-module-$(PKG_VERSION)-$$(VERSION).tar.gz + URL:=https://github.com/arut/nginx-dav-ext-module.git + MIRROR_HASH:=0566053a8756423ecab455fd9d218cec1e017598fcbb3d6415a06f816851611e + PROTO:=git + endef + $(eval $(call Download,nginx-dav-ext-module)) + + define Prepare/nginx-dav-ext-module + $(eval $(Download/nginx-dav-ext-module)) + gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + endef +endif + +$(eval $(call BuildPackage,nginx)) +$(eval $(call BuildPackage,nginx-ssl)) +$(eval $(call BuildPackage,nginx-all-module)) +#$(eval $(call BuildPackage,nginx-mod-luci)) +#$(eval $(call BuildPackage,nginx-mod-luci-ssl)) diff --git a/nginx/files-luci-support/60_nginx-luci-support b/nginx/files-luci-support/60_nginx-luci-support new file mode 100644 index 000000000..dd076d260 --- /dev/null +++ b/nginx/files-luci-support/60_nginx-luci-support @@ -0,0 +1,28 @@ +#!/bin/sh + +if [ -f "/etc/nginx/luci_nginx.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then + if [ ! "$(cat '/etc/nginx/nginx.conf' | grep 'luci_uwsgi.conf')" ]; then + mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old + mv /etc/nginx/luci_nginx.conf /etc/nginx/nginx.conf + core_number=$(grep -c ^processor /proc/cpuinfo) + sed -i "3s/.*/worker_processes "$core_number";/" /etc/nginx/nginx.conf + if [ -n "$(pgrep uhttpd)" ]; then + /etc/init.d/uhttpd stop + /etc/init.d/uhttpd disable + fi + if [ -n "$(pgrep nginx)" ]; then + /etc/init.d/nginx restart + else + /etc/init.d/nginx start + fi + if [ -n "$(pgrep uwsgi)" ]; then + /etc/init.d/uwsgi restart + else + /etc/init.d/uwsgi start + fi + else + rm /etc/nginx/luci_nginx.conf + fi +fi + +exit 0 diff --git a/nginx/files-luci-support/70_nginx-luci-support-ssl b/nginx/files-luci-support/70_nginx-luci-support-ssl new file mode 100644 index 000000000..76ce3a819 --- /dev/null +++ b/nginx/files-luci-support/70_nginx-luci-support-ssl @@ -0,0 +1,48 @@ +#!/bin/sh + + +if [ -f "/etc/nginx/luci_nginx_ssl.conf" ] && [ -f "/etc/nginx/nginx.conf" ]; then + if [ ! "$(cat '/etc/nginx/nginx.conf' | grep 'return 301 https://$host$request_uri;')" ]; then + if [ -f "/etc/nginx/nginx.conf_old" ]; then + rm /etc/nginx/nginx.conf + else + mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_old + fi + mv /etc/nginx/luci_nginx_ssl.conf /etc/nginx/nginx.conf + core_number=$(grep -c ^processor /proc/cpuinfo) + sed -i "3s/.*/worker_processes "$core_number";/" /etc/nginx/nginx.conf + if [ -n "$(pgrep nginx)" ]; then + /etc/init.d/nginx restart + else + /etc/init.d/nginx start + fi + else + rm /etc/nginx/luci_nginx_ssl.conf + fi +fi + + +if [ ! -f "/etc/nginx/nginx.key" ]; then + + NGINX_KEY=/etc/nginx/nginx.key + NGINX_CER=/etc/nginx/nginx.cer + OPENSSL_BIN=/usr/bin/openssl + PX5G_BIN=/usr/sbin/px5g + + # Prefer px5g for certificate generation (existence evaluated last) + GENKEY_CMD="" + UNIQUEID=$(dd if=/dev/urandom bs=1 count=4 | hexdump -e '1/1 "%02x"') + [ -x "$OPENSSL_BIN" ] && GENKEY_CMD="$OPENSSL_BIN req -x509 -nodes" + [ -x "$PX5G_BIN" ] && GENKEY_CMD="$PX5G_BIN selfsigned" + [ -n "$GENKEY_CMD" ] && { + $GENKEY_CMD \ + -days 730 -newkey rsa:2048 -keyout "${NGINX_KEY}.new" -out "${NGINX_CER}.new" \ + -subj /C="ZZ"/ST="Somewhere"/L="Unknown"/O="OpenWrt""$UNIQUEID"/CN="OpenWrt" + sync + mv "${NGINX_KEY}.new" "${NGINX_KEY}" + mv "${NGINX_CER}.new" "${NGINX_CER}" + } +fi + + +exit 0 diff --git a/nginx/files-luci-support/luci_nginx.conf b/nginx/files-luci-support/luci_nginx.conf new file mode 100644 index 000000000..31af664a2 --- /dev/null +++ b/nginx/files-luci-support/luci_nginx.conf @@ -0,0 +1,51 @@ + +user nobody nogroup; +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; + +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + sendfile on; + keepalive_timeout 0; + + client_body_buffer_size 10K; + client_header_buffer_size 1k; + client_max_body_size 1G; + large_client_header_buffers 2 1k; + + gzip on; + gzip_http_version 1.1; + gzip_vary on; + gzip_comp_level 1; + gzip_proxied any; + + root /www; + + server { + listen 80 default_server; + listen [::]:80 default_server; + server_name localhost; + + location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { + expires 365d; + } + + include luci_uwsgi.conf; + + } + + include /etc/nginx/conf.d/*.conf; +} diff --git a/nginx/files-luci-support/luci_nginx_ssl.conf b/nginx/files-luci-support/luci_nginx_ssl.conf new file mode 100644 index 000000000..318453b54 --- /dev/null +++ b/nginx/files-luci-support/luci_nginx_ssl.conf @@ -0,0 +1,66 @@ + +user root; +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; + +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + sendfile on; + keepalive_timeout 0; + + client_body_buffer_size 10K; + client_header_buffer_size 1k; + client_max_body_size 1G; + large_client_header_buffers 2 1k; + + gzip on; + gzip_http_version 1.1; + gzip_vary on; + gzip_comp_level 1; + gzip_proxied any; + + root /www; + + server { + listen 80 default_server; + listen [::]:80 default_server; + server_name _; + return 301 https://$host$request_uri; + } + + server { + listen 443 ssl default_server; + listen [::]:443 ssl default_server; + server_name localhost; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:DHE+AESGCM:DHE:!RSA!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!CAMELLIA:!SEED"; + ssl_session_tickets off; + + ssl_certificate /etc/nginx/nginx.cer; + ssl_certificate_key /etc/nginx/nginx.key; + + location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { + expires 365d; + } + + include luci_uwsgi.conf; + + } + + include /etc/nginx/conf.d/*.conf; +} diff --git a/nginx/files-luci-support/luci_uwsgi.conf b/nginx/files-luci-support/luci_uwsgi.conf new file mode 100644 index 000000000..6211db74a --- /dev/null +++ b/nginx/files-luci-support/luci_uwsgi.conf @@ -0,0 +1,20 @@ +location /cgi-bin/luci { + index index.html; + uwsgi_param QUERY_STRING $query_string; + uwsgi_param REQUEST_METHOD $request_method; + uwsgi_param CONTENT_TYPE $content_type; + uwsgi_param CONTENT_LENGTH $content_length if_not_empty; + uwsgi_param REQUEST_URI $request_uri; + uwsgi_param PATH_INFO $document_uri; + uwsgi_param SERVER_PROTOCOL $server_protocol; + uwsgi_param REMOTE_ADDR $remote_addr; + uwsgi_param REMOTE_PORT $remote_port; + uwsgi_param SERVER_ADDR $server_addr; + uwsgi_param SERVER_PORT $server_port; + uwsgi_param SERVER_NAME $server_name; + uwsgi_modifier1 9; + uwsgi_pass unix:////var/run/uwsgi.sock; +} + +location /luci-static { +} diff --git a/nginx/files/nginx.init b/nginx/files/nginx.init new file mode 100644 index 000000000..40d389719 --- /dev/null +++ b/nginx/files/nginx.init @@ -0,0 +1,17 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2015 OpenWrt.org + +START=80 + +USE_PROCD=1 + +start_service() { + [ -d /var/log/nginx ] || mkdir -p /var/log/nginx + [ -d /var/lib/nginx ] || mkdir -p /var/lib/nginx + + procd_open_instance + procd_set_param command /usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;' + procd_set_param file /etc/nginx/nginx.conf + procd_set_param respawn + procd_close_instance +} diff --git a/nginx/patches-lua-nginx/100-no_by_lua_block.patch b/nginx/patches-lua-nginx/100-no_by_lua_block.patch new file mode 100644 index 000000000..968e12d58 --- /dev/null +++ b/nginx/patches-lua-nginx/100-no_by_lua_block.patch @@ -0,0 +1,195 @@ +--- a/lua-nginx/src/ngx_http_lua_module.c ++++ b/lua-nginx/src/ngx_http_lua_module.c +@@ -165,14 +165,14 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_lua_loc_conf_t, log_socket_errors), + NULL }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + { ngx_string("init_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, + ngx_http_lua_init_by_lua_block, + NGX_HTTP_MAIN_CONF_OFFSET, + 0, + (void *) ngx_http_lua_init_by_inline }, +- ++#endif + { ngx_string("init_by_lua"), + NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, + ngx_http_lua_init_by_lua, +@@ -186,14 +186,14 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_MAIN_CONF_OFFSET, + 0, + (void *) ngx_http_lua_init_by_file }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + { ngx_string("init_worker_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, + ngx_http_lua_init_worker_by_lua_block, + NGX_HTTP_MAIN_CONF_OFFSET, + 0, + (void *) ngx_http_lua_init_worker_by_inline }, +- ++#endif + { ngx_string("init_worker_by_lua"), + NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, + ngx_http_lua_init_worker_by_lua, +@@ -209,6 +209,7 @@ static ngx_command_t ngx_http_lua_cmds[] + (void *) ngx_http_lua_init_worker_by_file }, + + #if defined(NDK) && NDK ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* set_by_lua $res { inline Lua code } [$arg1 [$arg2 [...]]] */ + { ngx_string("set_by_lua_block"), + NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -217,7 +218,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_filter_set_by_lua_inline }, +- ++#endif + /* set_by_lua $res [$arg1 [$arg2 [...]]] */ + { ngx_string("set_by_lua"), + NGX_HTTP_SRV_CONF|NGX_HTTP_SIF_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -245,7 +246,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_rewrite_handler_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* rewrite_by_lua_block { } */ + { ngx_string("rewrite_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -254,7 +255,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_rewrite_handler_inline }, +- ++#endif + /* access_by_lua "" */ + { ngx_string("access_by_lua"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -263,7 +264,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_access_handler_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* access_by_lua_block { } */ + { ngx_string("access_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -272,7 +273,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_access_handler_inline }, +- ++#endif + /* content_by_lua "" */ + { ngx_string("content_by_lua"), + NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_TAKE1, +@@ -280,7 +281,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_content_handler_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* content_by_lua_block { } */ + { ngx_string("content_by_lua_block"), + NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, +@@ -288,7 +289,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_content_handler_inline }, +- ++#endif + /* log_by_lua */ + { ngx_string("log_by_lua"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -297,7 +298,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_log_handler_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* log_by_lua_block { } */ + { ngx_string("log_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -306,7 +307,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_log_handler_inline }, +- ++#endif + { ngx_string("rewrite_by_lua_file"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF + |NGX_CONF_TAKE1, +@@ -361,7 +362,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_header_filter_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* header_filter_by_lua_block { } */ + { ngx_string("header_filter_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -370,7 +371,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_header_filter_inline }, +- ++#endif + { ngx_string("header_filter_by_lua_file"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF + |NGX_CONF_TAKE1, +@@ -386,7 +387,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_body_filter_inline }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + /* body_filter_by_lua_block { } */ + { ngx_string("body_filter_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF +@@ -395,7 +396,7 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_body_filter_inline }, +- ++#endif + { ngx_string("body_filter_by_lua_file"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF + |NGX_CONF_TAKE1, +@@ -403,14 +404,14 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + 0, + (void *) ngx_http_lua_body_filter_file }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + { ngx_string("balancer_by_lua_block"), + NGX_HTTP_UPS_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, + ngx_http_lua_balancer_by_lua_block, + NGX_HTTP_SRV_CONF_OFFSET, + 0, + (void *) ngx_http_lua_balancer_handler_inline }, +- ++#endif + { ngx_string("balancer_by_lua_file"), + NGX_HTTP_UPS_CONF|NGX_CONF_TAKE1, + ngx_http_lua_balancer_by_lua, +@@ -517,14 +518,14 @@ static ngx_command_t ngx_http_lua_cmds[] + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_lua_loc_conf_t, ssl_ciphers), + NULL }, +- ++#ifndef NGX_LUA_NO_BY_LUA_BLOCK + { ngx_string("ssl_certificate_by_lua_block"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, + ngx_http_lua_ssl_cert_by_lua_block, + NGX_HTTP_SRV_CONF_OFFSET, + 0, + (void *) ngx_http_lua_ssl_cert_handler_inline }, +- ++#endif + { ngx_string("ssl_certificate_by_lua_file"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1, + ngx_http_lua_ssl_cert_by_lua, diff --git a/nginx/patches/101-feature_test_fix.patch b/nginx/patches/101-feature_test_fix.patch new file mode 100644 index 000000000..b867c88dd --- /dev/null +++ b/nginx/patches/101-feature_test_fix.patch @@ -0,0 +1,116 @@ +--- a/auto/cc/name ++++ b/auto/cc/name +@@ -7,7 +7,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then + + ngx_feature="C compiler" + ngx_feature_name= +- ngx_feature_run=yes ++ ngx_feature_run= + ngx_feature_incs= + ngx_feature_path= + ngx_feature_libs= +--- a/auto/cc/conf ++++ b/auto/cc/conf +@@ -183,7 +183,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then + else + ngx_feature="gcc builtin atomic operations" + ngx_feature_name=NGX_HAVE_GCC_ATOMIC +- ngx_feature_run=yes ++ ngx_feature_run=no + ngx_feature_incs= + ngx_feature_path= + ngx_feature_libs= +@@ -204,7 +204,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then + else + ngx_feature="C99 variadic macros" + ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" +- ngx_feature_run=yes ++ ngx_feature_run=no + ngx_feature_incs="#include + #define var(dummy, ...) sprintf(__VA_ARGS__)" + ngx_feature_path= +@@ -218,7 +218,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then + + ngx_feature="gcc variadic macros" + ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS" +- ngx_feature_run=yes ++ ngx_feature_run=no + ngx_feature_incs="#include + #define var(dummy, args...) sprintf(args)" + ngx_feature_path= +--- a/auto/os/linux ++++ b/auto/os/linux +@@ -36,7 +36,7 @@ fi + + ngx_feature="epoll" + ngx_feature_name="NGX_HAVE_EPOLL" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include " + ngx_feature_path= + ngx_feature_libs= +@@ -110,7 +110,7 @@ ngx_feature_test="int fd; struct stat sb + CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE" + ngx_feature="sendfile()" + ngx_feature_name="NGX_HAVE_SENDFILE" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include + #include " + ngx_feature_path= +@@ -131,7 +131,7 @@ fi + CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" + ngx_feature="sendfile64()" + ngx_feature_name="NGX_HAVE_SENDFILE64" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include + #include " + ngx_feature_path= +@@ -149,7 +149,7 @@ ngx_include="sys/prctl.h"; . auto/includ + + ngx_feature="prctl(PR_SET_DUMPABLE)" + ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include " + ngx_feature_path= + ngx_feature_libs= +--- a/auto/unix ++++ b/auto/unix +@@ -840,7 +840,7 @@ ngx_feature_test="void *p; p = memalign( + + ngx_feature="mmap(MAP_ANON|MAP_SHARED)" + ngx_feature_name="NGX_HAVE_MAP_ANON" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include " + ngx_feature_path= + ngx_feature_libs= +@@ -853,7 +853,7 @@ ngx_feature_test="void *p; + + ngx_feature='mmap("/dev/zero", MAP_SHARED)' + ngx_feature_name="NGX_HAVE_MAP_DEVZERO" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include + #include + #include " +@@ -868,7 +868,7 @@ ngx_feature_test='void *p; int fd; + + ngx_feature="System V shared memory" + ngx_feature_name="NGX_HAVE_SYSVSHM" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include + #include " + ngx_feature_path= +@@ -882,7 +882,7 @@ ngx_feature_test="int id; + + ngx_feature="POSIX semaphores" + ngx_feature_name="NGX_HAVE_POSIX_SEM" +-ngx_feature_run=yes ++ngx_feature_run=no + ngx_feature_incs="#include " + ngx_feature_path= + ngx_feature_libs= diff --git a/nginx/patches/102-sizeof_test_fix.patch b/nginx/patches/102-sizeof_test_fix.patch new file mode 100644 index 000000000..7d2430eab --- /dev/null +++ b/nginx/patches/102-sizeof_test_fix.patch @@ -0,0 +1,27 @@ +--- a/auto/types/sizeof ++++ b/auto/types/sizeof +@@ -25,8 +25,14 @@ $NGX_INCLUDE_UNISTD_H + $NGX_INCLUDE_INTTYPES_H + $NGX_INCLUDE_AUTO_CONFIG_H + ++char object_code_block[] = { ++ '\n', 'e', '4', 'V', 'A', ++ '0', 'x', ('0' + sizeof($ngx_type)), ++ 'Y', '3', 'p', 'M', '\n' ++}; ++ + int main(void) { +- printf("%d", (int) sizeof($ngx_type)); ++ printf("dummy use of object_code_block to avoid gc-section: %c", object_code_block[0]); + return 0; + } + +@@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>& + + + if [ -x $NGX_AUTOTEST ]; then +- ngx_size=`$NGX_AUTOTEST` ++ ngx_size=`sed -ne 's/^e4VA0x\(.\)Y3pM$/\1/p' < $NGX_AUTOTEST` + echo " $ngx_size bytes" + fi + diff --git a/nginx/patches/103-sys_nerr.patch b/nginx/patches/103-sys_nerr.patch new file mode 100644 index 000000000..5f5d106fe --- /dev/null +++ b/nginx/patches/103-sys_nerr.patch @@ -0,0 +1,12 @@ +--- a/src/os/unix/ngx_errno.c ++++ b/src/os/unix/ngx_errno.c +@@ -8,6 +8,9 @@ + #include + #include + ++#ifndef NGX_SYS_NERR ++#define NGX_SYS_NERR 128 ++#endif + + /* + * The strerror() messages are copied because: diff --git a/nginx/patches/200-config.patch b/nginx/patches/200-config.patch new file mode 100644 index 000000000..f35009576 --- /dev/null +++ b/nginx/patches/200-config.patch @@ -0,0 +1,18 @@ +--- a/conf/nginx.conf ++++ b/conf/nginx.conf +@@ -1,5 +1,5 @@ + +-#user nobody; ++user nobody nogroup; + worker_processes 1; + + #error_log logs/error.log; +@@ -16,7 +16,7 @@ events { + + http { + include mime.types; +- default_type application/octet-stream; ++ #default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' diff --git a/nginx/patches/201-ignore-invalid-options.patch b/nginx/patches/201-ignore-invalid-options.patch new file mode 100644 index 000000000..28be2fb71 --- /dev/null +++ b/nginx/patches/201-ignore-invalid-options.patch @@ -0,0 +1,12 @@ +--- a/auto/options ++++ b/auto/options +@@ -397,8 +397,7 @@ $0: warning: the \"--with-sha1-asm\" opt + --test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;; + + *) +- echo "$0: error: invalid option \"$option\"" +- exit 1 ++ echo "$0: error: ignoring invalid option \"$option\"" + ;; + esac + done diff --git a/nginx/patches/300-max-processes.patch b/nginx/patches/300-max-processes.patch new file mode 100644 index 000000000..f7465d434 --- /dev/null +++ b/nginx/patches/300-max-processes.patch @@ -0,0 +1,11 @@ +--- a/src/os/unix/ngx_process.h ++++ b/src/os/unix/ngx_process.h +@@ -44,7 +44,7 @@ typedef struct { + } ngx_exec_ctx_t; + + +-#define NGX_MAX_PROCESSES 1024 ++#define NGX_MAX_PROCESSES 8 + + #define NGX_PROCESS_NORESPAWN -1 + #define NGX_PROCESS_JUST_SPAWN -2 diff --git a/omr-6in4/Makefile b/omr-6in4/Makefile old mode 100755 new mode 100644 diff --git a/omr-bypass/Makefile b/omr-bypass/Makefile old mode 100755 new mode 100644 diff --git a/omr-bypass/files/etc/config/omr-bypass b/omr-bypass/files/etc/config/omr-bypass old mode 100755 new mode 100644 diff --git a/omr-bypass/files/etc/firewall.omr-bypass b/omr-bypass/files/etc/firewall.omr-bypass old mode 100755 new mode 100644 diff --git a/omr-bypass/files/usr/share/omr-bypass/omr-bypass-proto.lst b/omr-bypass/files/usr/share/omr-bypass/omr-bypass-proto.lst old mode 100755 new mode 100644 diff --git a/omr-bypass/files/usr/share/omr-bypass/omr-bypass.db b/omr-bypass/files/usr/share/omr-bypass/omr-bypass.db old mode 100755 new mode 100644 diff --git a/omr-quota/Makefile b/omr-quota/Makefile old mode 100755 new mode 100644 diff --git a/omr-quota/files/etc/config/omr-quota b/omr-quota/files/etc/config/omr-quota old mode 100755 new mode 100644 diff --git a/omr-tracker/Makefile b/omr-tracker/Makefile old mode 100755 new mode 100644 diff --git a/omr-update/Makefile b/omr-update/Makefile old mode 100755 new mode 100644 diff --git a/openmptcprouter-api/Makefile b/openmptcprouter-api/Makefile old mode 100755 new mode 100644 diff --git a/openmptcprouter-api/files/usr/share/luci/menu.d/luci-app-openmptcprouter.json b/openmptcprouter-api/files/usr/share/luci/menu.d/luci-app-openmptcprouter.json old mode 100755 new mode 100644 diff --git a/openmptcprouter-api/files/usr/share/rpcd/acl.d/luci-app-openmptcprouter.json b/openmptcprouter-api/files/usr/share/rpcd/acl.d/luci-app-openmptcprouter.json old mode 100755 new mode 100644 diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile old mode 100755 new mode 100644 index 982f497b5..ccdf4110c --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -31,7 +31,7 @@ MY_DEPENDS := \ libnetfilter-conntrack ip-full nstat \ iptables-mod-iface iptables-mod-ipmark iptables-mod-hashlimit iptables-mod-condition iptables-mod-trace iptables-mod-conntrack-extra iptables-mod-account \ kmod-nf-nat kmod-nf-nathelper kmod-nf-nathelper-extra iptables-mod-extra conntrack kmod-ipt-offload \ - kmod-crypto-authenc \ + iptables-mod-ipsec kmod-crypto-authenc kmod-ipsec kmod-ipsec4 kmod-ipsec6 kmod-ipt-ipsec \ wireless-tools \ libiwinfo-lua \ ca-bundle ca-certificates \ @@ -76,7 +76,7 @@ MY_DEPENDS := \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-option !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-wwan !(TARGET_mvebu||TARGET_ipq40xx):usb-modeswitch !TARGET_mvebu:uqmi \ !TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-huawei-cdc-ncm !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-rndis !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-cdc-ether !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-ipheth !(TARGET_mvebu||TARGET_ipq40xx):usbmuxd !(TARGET_mvebu||TARGET_ipq40xx):libusbmuxd \ - !TARGET_ipq40xx:kmod-rt2800-usb !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu \ + !TARGET_ipq40xx:kmod-rt2800-usb !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu !TARGET_ipq40xx:kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct \ !TARGET_mvebu:luci-proto-qmi wpad-basic !TARGET_ipq40xx:kmod-mt7601u !TARGET_ipq40xx:kmod-rtl8187 TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ !TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ diff --git a/openmptcprouter-mini/Makefile b/openmptcprouter-mini/Makefile old mode 100755 new mode 100644 diff --git a/openmptcprouter-zuixiao/Makefile b/openmptcprouter-zuixiao/Makefile deleted file mode 100755 index 44e5c502e..000000000 --- a/openmptcprouter-zuixiao/Makefile +++ /dev/null @@ -1,117 +0,0 @@ -# -# Copyright (C) suyunfan -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=openmptcprouter-zuixiao -PKG_VERSION:=0.14 -PKG_RELEASE:=1 - -include $(INCLUDE_DIR)/package.mk - -MY_DEPENDS := \ - mptcp \ - unbound-daemon unbound-control unbound-anchor \ - netifd \ - mc \ - f2fs-tools \ - openmptcprouter \ - dnsmasq-full \ - uhttpd \ - uhttpd-mod-ubus \ - curl \ - iperf3-ssl luci-app-iperf \ - arptables \ - bind-dig \ - libnetfilter-conntrack ip-full nstat \ - iptables-mod-iface iptables-mod-ipmark iptables-mod-hashlimit iptables-mod-condition iptables-mod-trace iptables-mod-conntrack-extra iptables-mod-account \ - kmod-nf-nat kmod-nf-nathelper kmod-nf-nathelper-extra iptables-mod-extra conntrack kmod-ipt-offload \ - iptables-mod-ipsec kmod-crypto-authenc kmod-ipsec kmod-ipsec4 kmod-ipt-ipsec \ - wireless-tools \ - libiwinfo-lua \ - ca-bundle ca-certificates \ - luci-mod-admin-full luci-app-firewall luci-app-glorytun-tcp luci-app-glorytun-udp luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-theme-argon luci-base \ - luci-app-omr-tracker luci-app-omr-dscp \ - luci-app-sqm-autorate sqm-scripts-extra \ - luci-app-vnstat2 omr-quota luci-app-omr-quota \ - luci-app-mptcp luci-app-openmptcprouter luci-app-upnp \ - luci-app-wol luci-app-opkg \ - luci-app-uhttpd \ - luci-mod-rpc rpcd-mod-rpcsys rpcd-mod-file rpcd-mod-iwinfo \ - luci-app-openvpn \ - shadowsocks-libev-ss-server shadowsocks-libev-ss-tunnel \ - speedtestcpp \ - iftop \ - htop \ - nano \ - tcpdump \ - ethtool \ - iputils-ping \ - tracebox \ - !TARGET_mvebu:luci-proto-3g \ - !TARGET_mvebu:comgt-ncm !TARGET_mvebu:luci-proto-ncm \ - !TARGET_mvebu:luci-proto-modemmanager \ - !TARGET_mvebu:luci-proto-ppp \ - omr-update \ - rng-tools \ - openvpn-openssl \ - mmc-utils \ - libimobiledevice libimobiledevice-utils \ - comgt \ - kmod-random-core \ - kmod-netem \ - ca-bundle openssl-util \ - dejavu-fonts-ttf-DejaVuSerif dejavu-fonts-ttf-DejaVuSerif-Bold dejavu-fonts-ttf-DejaVuSerif-Italic dejavu-fonts-ttf-DejaVuSerif-BoldItalic \ - luci-app-snmpd \ - iputils-tracepath v2ray-plugin netcat simple-obfs \ - TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \ - !TARGET_mvebu:kmod-usb-serial !TARGET_mvebu:kmod-usb-serial-option !TARGET_mvebu:kmod-usb-serial-wwan !TARGET_mvebu:usb-modeswitch !TARGET_mvebu:uqmi \ - !TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \ - !TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd !TARGET_mvebu:libusbmuxd \ - !TARGET_mvebu:luci-proto-qmi kmod-rtl8187 TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ - kmod-zram kmod-swconfig swconfig kmod-ipt-nat luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ - luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):dmidecode kmod-bonding luci-proto-bonding \ - luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s (TARGET_x86||TARGET_x86_64):kmod-r8125 TARGET_x86_64:kmod-atlantic \ - LINUX_5_15:mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc kmod-mmc-spi kmod-macsec usbutils -# !TARGET_mvebu:kmod-usb-net-smsc75xx -# libnetfilter-conntrack ebtables ebtables-utils ip-full nstat \ - -# luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status -# luci-proto-bonding luci-app-statistics luci-proto-gre -# softethervpn5-client softethervpn5-server luci-app-nginx-ha - -# luci-app-mlvpn ubond \ -# kmod-ath9k kmod-ath9k-htc - -# (TARGET_x86||TARGET_x86_64):open-vm-tools \ -# (!TARGET_mvebu&&!TARGET_mediatek):kmod-fb-tft-all \ -# lcd4linux-full -# kmod-spi-gpio-custom - -#OMR_SUPPORTED_LANGS := ar bg bn_BD ca en fi fr de el he hi hu it ja mr ms nb_NO pl pt_BR pt ro ru es sv uk vi zh_Hans zh_Hant -#OMR_SUPPORTED_LANGS := ar bg ca cs de en fi fr de el he hi hu it ja ko mr ms no oc pl pt-br pt ro ru es sk sv tr uk vi zh-cn zh-tw -OMR_SUPPORTED_LANGS := en zh-cn zh-tw oc - -define Package/$(PKG_NAME) -SECTION:=OMR -CATEGORY:=OpenMPTCProuter -DEPENDS:=$(foreach p,$(MY_DEPENDS),+$(p)) $(foreach lang,$(OMR_SUPPORTED_LANGS),+LUCI_LANG_$(lang):luci-i18n-base-$(lang)) -TITLE:=OpenMPTCProuter zuixiao Package -endef - -define Package/$(PKG_NAME)/description -OpenMPTCProuter zuixiao package -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/install -endef - - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/openmptcprouter/Makefile b/openmptcprouter/Makefile old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/firewall.gre-tunnel b/openmptcprouter/files/etc/firewall.gre-tunnel old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/firewall.omr-server b/openmptcprouter/files/etc/firewall.omr-server old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/firewall.ttl b/openmptcprouter/files/etc/firewall.ttl old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/init.d/getserveratboot b/openmptcprouter/files/etc/init.d/getserveratboot deleted file mode 100755 index 305eb3741..000000000 --- a/openmptcprouter/files/etc/init.d/getserveratboot +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=20 -start() -{ - routerid=$(cat /etc/config/date.txt) - api="https://55860.com/modules/addons/flowpacket/api.php?routeid=${routerid}" - data=`curl -m 30 -s -k ${api}` - serverip="$(echo "$data" | jsonfilter -q -e '@.data.dedicatedip')" - serveromrusername="$(echo "$data" | jsonfilter -q -e '@.data.omrusername')" - serverkey="$(echo "$data" | jsonfilter -q -e '@.data.adminkey')" - shadowsocksencryption="$(echo "$data" | jsonfilter -q -e '@.data.shadowsocksencryption')" - glorytunkey="$(echo "$data" | jsonfilter -q -e '@.data.glorytunkey')" - if [ -n "$serverip" ] && [ -n "$serverkey" ]; then - # 判断frpc配置文件是否存在 -if [ ! -f /etc/config/frpc ]; then -wget -c -4 -T 10 https://55860.com/bak/frpcv2 -O /etc/config/frpc -fi - -#判断rtty配置文件是否存在 -if [ ! -f /etc/config/rtty ]; then -wget -c -4 -T 10 https://55860.com/bak/rttyv2 -O /etc/config/rtty -fi - uci -q batch <<-EOF >/dev/null - delete openmptcprouter.vps.ip - add_list openmptcprouter.vps.ip="$serverip" - set openmptcprouter.vps.username="$serveromrusername" - set openmptcprouter.vps.password="$serverkey" - set openmptcprouter.vps.get_config=1 - commit openmptcprouter - set shadowsocks-libev.sss0.server="$serverip" - commit shadowsocks-libev - set glorytun.vpn.host="$serverip" - commit glorytun - set glorytun-udp.vpn.host="$serverip" - commit glorytun-udp - set rtty.@rtty[0].id="$routerid" - set rtty.@rtty[0].description="$routerid" - commit rtty - set frpc."$routerid"=conf - set frpc."$routerid".type=http - set frpc."$routerid".local_port=80 - set frpc."$routerid".subdomain="$routerid" - set frpc.ssh_random"$routerid"=conf - set frpc.ssh_random"$routerid".type=tcp - set frpc.ssh_random"$routerid".local_ip=127.0.0.1 - set frpc.ssh_random"$routerid".local_port=22 - set frpc.ssh_random"$routerid".remote_port=0 - set frpc.ssh_random"$routerid".bandwidth_limit=1MB - commit frpc - - /etc/init.d/openmptcprouter-vps restart - EOF - fi -} \ No newline at end of file diff --git a/openmptcprouter/files/etc/iproute2/rt_dsfield b/openmptcprouter/files/etc/iproute2/rt_dsfield old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/sysctl.d/default.conf b/openmptcprouter/files/etc/sysctl.d/default.conf old mode 100755 new mode 100644 diff --git a/openmptcprouter/files/etc/wgetrc4 b/openmptcprouter/files/etc/wgetrc4 old mode 100755 new mode 100644 diff --git a/openvpn/Config-mbedtls.in b/openvpn/Config-mbedtls.in old mode 100755 new mode 100644 diff --git a/openvpn/Config-openssl.in b/openvpn/Config-openssl.in old mode 100755 new mode 100644 diff --git a/openvpn/Config-wolfssl.in b/openvpn/Config-wolfssl.in old mode 100755 new mode 100644 diff --git a/openvpn/Makefile b/openvpn/Makefile old mode 100755 new mode 100644 diff --git a/openvpn/files/etc/hotplug.d/openvpn/01-user b/openvpn/files/etc/hotplug.d/openvpn/01-user old mode 100755 new mode 100644 diff --git a/openvpn/files/etc/openvpn.user b/openvpn/files/etc/openvpn.user old mode 100755 new mode 100644 diff --git a/openvpn/files/lib/functions/openvpn.sh b/openvpn/files/lib/functions/openvpn.sh old mode 100755 new mode 100644 diff --git a/openvpn/files/openvpn.config b/openvpn/files/openvpn.config old mode 100755 new mode 100644 index ea442c765..9b5a42655 --- a/openvpn/files/openvpn.config +++ b/openvpn/files/openvpn.config @@ -279,17 +279,6 @@ config openvpn sample_server # Use BF-CBC as fallback # option data_ciphers_fallback 'BF-CBC' - # OpenVPN versions 2.4 and later will attempt to - # automatically negotiate the most secure cipher - # between the client and server, regardless of a - # configured "option cipher" (see below). - # Automatic negotiation is recommended. - # - # Uncomment this option to disable this behavior, - # and force all OpenVPN peers to use the configured - # cipher option instead (not recommended). -# option ncp_disable - # Enable compression on the VPN link. # If you enable it here, you must also # enable it in the client config file. diff --git a/openvpn/files/openvpn.init b/openvpn/files/openvpn.init old mode 100755 new mode 100644 diff --git a/openvpn/files/openvpn.options b/openvpn/files/openvpn.options old mode 100755 new mode 100644 index 7e3aedb0d..5b8d55a07 --- a/openvpn/files/openvpn.options +++ b/openvpn/files/openvpn.options @@ -166,7 +166,6 @@ mlock mtu_test multihome mute_replay_warnings -ncp_disable nobind opt_verify passtos diff --git a/openvpn/files/openvpn.upgrade b/openvpn/files/openvpn.upgrade old mode 100755 new mode 100644 diff --git a/openvpn/files/usr/libexec/openvpn-hotplug b/openvpn/files/usr/libexec/openvpn-hotplug old mode 100755 new mode 100644 diff --git a/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch b/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch old mode 100755 new mode 100644 diff --git a/openvpn/patches/101-Fix-EVP_PKEY_CTX_-compilation-with-wolfSSL.patch b/openvpn/patches/101-Fix-EVP_PKEY_CTX_-compilation-with-wolfSSL.patch old mode 100755 new mode 100644 diff --git a/openvpn/patches/102-Disable-external-ec-key-support-when-building-with-wolfSSL.patch b/openvpn/patches/102-Disable-external-ec-key-support-when-building-with-wolfSSL.patch old mode 100755 new mode 100644 diff --git a/openvpn/patches/103-define-LN_serialNumber-for-wolfSSL.patch b/openvpn/patches/103-define-LN_serialNumber-for-wolfSSL.patch old mode 100755 new mode 100644 diff --git a/openvpn/patches/900-add-MPTCP-support.patch b/openvpn/patches/900-add-MPTCP-support.patch old mode 100755 new mode 100644 diff --git a/protobuf/Makefile b/protobuf/Makefile old mode 100755 new mode 100644 diff --git a/r8125/Makefile b/r8125/Makefile old mode 100755 new mode 100644 diff --git a/r8152/Makefile b/r8152/Makefile old mode 100755 new mode 100644 diff --git a/r8152/patches/010-5.19-support.patch b/r8152/patches/010-5.19-support.patch old mode 100755 new mode 100644 diff --git a/r8152/patches/020-6.1-support.patch b/r8152/patches/020-6.1-support.patch old mode 100755 new mode 100644 diff --git a/r8168/Makefile b/r8168/Makefile old mode 100755 new mode 100644 diff --git a/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch b/r8168/patches/001-r8168-add-LED-configuration-from-OF.patch old mode 100755 new mode 100644 diff --git a/r8168/patches/030-6.1-support.patch b/r8168/patches/030-6.1-support.patch old mode 100755 new mode 100644 diff --git a/rust/Makefile b/rust/Makefile old mode 100755 new mode 100644 diff --git a/rust/files/cargo-config b/rust/files/cargo-config old mode 100755 new mode 100644 diff --git a/rust/patches/0001-Update-xz2-and-use-it-static.patch b/rust/patches/0001-Update-xz2-and-use-it-static.patch old mode 100755 new mode 100644 diff --git a/rust/patches/0002-Bumped-libc-version.patch b/rust/patches/0002-Bumped-libc-version.patch old mode 100755 new mode 100644 diff --git a/rust/rust-host-build.mk b/rust/rust-host-build.mk old mode 100755 new mode 100644 diff --git a/rust/rust-package.mk b/rust/rust-package.mk old mode 100755 new mode 100644 diff --git a/rust/rust-values.mk b/rust/rust-values.mk old mode 100755 new mode 100644 diff --git a/serdisplib/Makefile b/serdisplib/Makefile old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/README.md b/shadowsocks-libev/README.md old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/files/firewall.ss-rules b/shadowsocks-libev/files/firewall.ss-rules old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/files/shadowsocks-libev.config b/shadowsocks-libev/files/shadowsocks-libev.config old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/files/shadowsocks-libev.init b/shadowsocks-libev/files/shadowsocks-libev.init old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/files/shadowsocks.conf b/shadowsocks-libev/files/shadowsocks.conf old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/patches/010-ECONNRESET.patch b/shadowsocks-libev/patches/010-ECONNRESET.patch old mode 100755 new mode 100644 diff --git a/shadowsocks-libev/patches/020-FIX.patch b/shadowsocks-libev/patches/020-FIX.patch old mode 100755 new mode 100644 diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile old mode 100755 new mode 100644 index 74bf8ebae..b3ee98552 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.16.1 +PKG_VERSION:=1.17.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=da4c6256247207b2579721046292bab1a2ac62301878c73ff778c168caa8a990 +PKG_HASH:=ef964ac60a499a0c8313d48284a7542c085f9c7672eb121a796b70d49163f35a PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT diff --git a/shadowsocks-rust/files/firewall.ssr-rules b/shadowsocks-rust/files/firewall.ssr-rules old mode 100755 new mode 100644 diff --git a/shadowsocks-rust/files/shadowsocks-rust.config b/shadowsocks-rust/files/shadowsocks-rust.config old mode 100755 new mode 100644 diff --git a/shadowsocks-rust/files/shadowsocks-rust.init b/shadowsocks-rust/files/shadowsocks-rust.init old mode 100755 new mode 100644 diff --git a/shadowsocks-v2ray-plugin/Makefile b/shadowsocks-v2ray-plugin/Makefile old mode 100755 new mode 100644 diff --git a/shortcut-fe/Makefile b/shortcut-fe/Makefile old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/Kconfig b/shortcut-fe/src/Kconfig old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/Makefile b/shortcut-fe/src/Makefile old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe.h b/shortcut-fe/src/sfe.h old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe_backport.h b/shortcut-fe/src/sfe_backport.h old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe_cm.c b/shortcut-fe/src/sfe_cm.c old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe_cm.h b/shortcut-fe/src/sfe_cm.h old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe_ipv4.c b/shortcut-fe/src/sfe_ipv4.c old mode 100755 new mode 100644 diff --git a/shortcut-fe/src/sfe_ipv6.c b/shortcut-fe/src/sfe_ipv6.c old mode 100755 new mode 100644 diff --git a/simple-obfs/LICENSE b/simple-obfs/LICENSE old mode 100755 new mode 100644 diff --git a/simple-obfs/Makefile b/simple-obfs/Makefile old mode 100755 new mode 100644 diff --git a/simulated-driver/Makefile b/simulated-driver/Makefile old mode 100755 new mode 100644 diff --git a/simulated-driver/patches/200-nss-qdisc-support.patch b/simulated-driver/patches/200-nss-qdisc-support.patch old mode 100755 new mode 100644 diff --git a/speedtestc/Makefile b/speedtestc/Makefile old mode 100755 new mode 100644 diff --git a/speedtestcpp/Makefile b/speedtestcpp/Makefile old mode 100755 new mode 100644 diff --git a/sqm-autorate/Makefile b/sqm-autorate/Makefile old mode 100755 new mode 100644 diff --git a/syslogd/Makefile b/syslogd/Makefile old mode 100755 new mode 100644 diff --git a/systemtap/Makefile b/systemtap/Makefile old mode 100755 new mode 100644 diff --git a/systemtap/patches/0001-Do-not-let-configure-write-a-python-location-into-th.patch b/systemtap/patches/0001-Do-not-let-configure-write-a-python-location-into-th.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/0001-Install-python-modules-to-correct-library-dir.patch b/systemtap/patches/0001-Install-python-modules-to-correct-library-dir.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/0001-staprun-address-ncurses-6.3-failures.patch b/systemtap/patches/0001-staprun-address-ncurses-6.3-failures.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch b/systemtap/patches/0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/basename.patch b/systemtap/patches/basename.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/conversion.patch b/systemtap/patches/conversion.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/include-fix.patch b/systemtap/patches/include-fix.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/replace-open64.patch b/systemtap/patches/replace-open64.patch old mode 100755 new mode 100644 diff --git a/systemtap/patches/types.patch b/systemtap/patches/types.patch old mode 100755 new mode 100644 diff --git a/tcptraceroute/Makefile b/tcptraceroute/Makefile old mode 100755 new mode 100644 diff --git a/tcptraceroute/patches/001-configure_cross_compile.patch b/tcptraceroute/patches/001-configure_cross_compile.patch old mode 100755 new mode 100644 diff --git a/tracebox/Makefile b/tracebox/Makefile old mode 100755 new mode 100644 diff --git a/tracebox/files/usr/share/tracebox/omr-mptcp-trace.lua b/tracebox/files/usr/share/tracebox/omr-mptcp-trace.lua old mode 100755 new mode 100644 diff --git a/tracebox/patches/101-build-fixes.patch b/tracebox/patches/101-build-fixes.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/102-configure.patch b/tracebox/patches/102-configure.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/103-configure.patch b/tracebox/patches/103-configure.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/104-ns_name_compress.patch b/tracebox/patches/104-ns_name_compress.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/105-configure-header.patch b/tracebox/patches/105-configure-header.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/202-fix-lua-include-hpp.patch b/tracebox/patches/202-fix-lua-include-hpp.patch old mode 100755 new mode 100644 diff --git a/tracebox/patches/204-fix-lua-namespace-crafter.patch b/tracebox/patches/204-fix-lua-namespace-crafter.patch old mode 100755 new mode 100644 diff --git a/tsping/Makefile b/tsping/Makefile old mode 100755 new mode 100644 diff --git a/v2ray-core/Config.in b/v2ray-core/Config.in old mode 100755 new mode 100644 diff --git a/v2ray-core/LICENSE b/v2ray-core/LICENSE old mode 100755 new mode 100644 diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile old mode 100755 new mode 100644 diff --git a/v2ray-core/files/etc/firewall.v2ray-rules b/v2ray-core/files/etc/firewall.v2ray-rules old mode 100755 new mode 100644 diff --git a/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray b/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray old mode 100755 new mode 100644 diff --git a/v2ray-core/patches/add-mptcp-support.patch b/v2ray-core/patches/add-mptcp-support.patch old mode 100755 new mode 100644 diff --git a/v2ray-ext/Makefile b/v2ray-ext/Makefile old mode 100755 new mode 100644 diff --git a/xray-core/Makefile b/xray-core/Makefile old mode 100755 new mode 100644 diff --git a/xray-core/files/etc/firewall.xray-rules b/xray-core/files/etc/firewall.xray-rules old mode 100755 new mode 100644 diff --git a/xray-core/files/etc/uci-defaults/3010-omr-xray b/xray-core/files/etc/uci-defaults/3010-omr-xray old mode 100755 new mode 100644 diff --git a/xray-core/patches/001-fix-wireguard-go.patch b/xray-core/patches/001-fix-wireguard-go.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/Makefile b/xtables-addons/Makefile old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/001-fix-kernel-version-detection.patch b/xtables-addons/patches/001-fix-kernel-version-detection.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/100-add-rtsp-conntrack.patch b/xtables-addons/patches/100-add-rtsp-conntrack.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/200-add-lua-packetscript.patch b/xtables-addons/patches/200-add-lua-packetscript.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/201-fix-lua-packetscript.patch b/xtables-addons/patches/201-fix-lua-packetscript.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/210-freebsd-build-fix.patch b/xtables-addons/patches/210-freebsd-build-fix.patch old mode 100755 new mode 100644 diff --git a/xtables-addons/patches/900-remove-checksumh.patch b/xtables-addons/patches/900-remove-checksumh.patch old mode 100755 new mode 100644 diff --git a/z8102/Makefile b/z8102/Makefile old mode 100755 new mode 100644