diff options
110 files changed, 3749 insertions, 1527 deletions
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua index f71fb7ba4d..68f9c8897e 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua @@ -6,9 +6,25 @@ local uci = require("uci") local sys = require("luci.sys") local json = require("luci.jsonc") local adbinput = uci.get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json" +local dnspath = uci.get("adblock", "global", "adb_dnsdir") or "" local parse = json.parse(fs.readfile(adbinput) or "") -local dnsFile1 = sys.exec("find '/tmp/dnsmasq.d/.adb_hidden' -maxdepth 1 -type f -name 'adb_list*' -print 2>/dev/null") -local dnsFile2 = sys.exec("find '/var/lib/unbound/.adb_hidden' -maxdepth 1 -type f -name 'adb_list*' -print 2>/dev/null") +if parse ~= nil then + version = parse.data.adblock_version + domains = parse.data.blocked_domains + fetch = parse.data.fetch_info + backend = parse.data.dns_backend + rundate = parse.data.last_rundate + if dnspath == "" then + if backend == "dnsmasq" then + dnspath = "/tmp/dnsmasq.d" + elseif backend == "unbound" then + dnspath = "/var/lib/unbound" + elseif backend == "named" then + dnspath = "/var/lib/bind" + end + end +end +local dnsfile = dnspath .. "/.adb_hidden/adb_list.overall" m = Map("adblock", translate("Adblock"), translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ") @@ -17,7 +33,13 @@ m = Map("adblock", translate("Adblock"), .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md")) function m.on_after_commit(self) - luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1") + function e3.validate(self, value) + if value == "0" then + luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1") + else + luci.sys.call("/etc/init.d/adblock start >/dev/null 2>&1") + end + end luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock")) end @@ -30,7 +52,7 @@ o1.default = o1.enabled o1.rmempty = false btn = s:option(Button, "", translate("Suspend / Resume adblock")) -if dnsFile1 ~= "" or dnsFile2 ~= "" then +if parse ~= nil and nixio.fs.access(dnsfile) then btn.inputtitle = translate("Resume adblock") btn.inputstyle = "apply" btn.disabled = false @@ -72,52 +94,53 @@ dv1 = s:option(DummyValue, "status", translate("Status")) dv1.template = "adblock/runtime" if parse == nil then dv1.value = translate("n/a") -elseif parse.data.blocked_domains == "0" then +elseif domains == "0" then dv1.value = translate("no domains blocked") -elseif dnsFile1 ~= "" or dnsFile2 ~= "" then +elseif nixio.fs.access(dnsfile) then dv1.value = translate("suspended") else dv1.value = translate("active") end + dv2 = s:option(DummyValue, "adblock_version", translate("Adblock version")) dv2.template = "adblock/runtime" -if parse ~= nil then - dv2.value = parse.data.adblock_version or translate("n/a") -else +if parse == nil then dv2.value = translate("n/a") +else + dv2.value = version end dv3 = s:option(DummyValue, "fetch_info", translate("Download Utility (SSL Library)"), translate("For SSL protected blocklist sources you need a suitable SSL library, e.g. 'libustream-ssl' or the wget 'built-in'.")) dv3.template = "adblock/runtime" -if parse ~= nil then - dv3.value = parse.data.fetch_info or translate("n/a") -else +if parse == nil then dv3.value = translate("n/a") +else + dv3.value = fetch end dv4 = s:option(DummyValue, "dns_backend", translate("DNS backend")) dv4.template = "adblock/runtime" -if parse ~= nil then - dv4.value = parse.data.dns_backend or translate("n/a") -else +if parse == nil then dv4.value = translate("n/a") +else + dv4.value = backend end dv5 = s:option(DummyValue, "blocked_domains", translate("Blocked domains (overall)")) dv5.template = "adblock/runtime" -if parse ~= nil then - dv5.value = parse.data.blocked_domains or translate("n/a") -else +if parse == nil then dv5.value = translate("n/a") +else + dv5.value = domains end dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate")) dv6.template = "adblock/runtime" -if parse ~= nil then - dv6.value = parse.data.last_rundate or translate("n/a") -else +if parse == nil then dv6.value = translate("n/a") +else + dv6.value = rundate end -- Blocklist table @@ -157,12 +180,18 @@ e2 = e:option(Flag, "adb_forcesrt", translate("Force Overall Sort"), e2.default = e2.disabled e2.rmempty = false -e3 = e:option(Flag, "adb_backup", translate("Enable blocklist backup")) +e3 = e:option(Flag, "adb_manmode", translate("Manual mode"), + translate("Do not automatically update blocklists during startup, use blocklist backups instead.")) e3.default = e3.disabled e3.rmempty = false -e4 = e:option(Value, "adb_backupdir", translate("Backup directory")) -e4.datatype = "directory" +e4 = e:option(Flag, "adb_backup", translate("Enable blocklist backup"), + translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in manual mode.")) +e4.default = e4.disabled e4.rmempty = false +e5 = e:option(Value, "adb_backupdir", translate("Backup directory")) +e5.datatype = "directory" +e5.rmempty = false + return m diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po index ac470fedd6..07fd783ed2 100644 --- a/applications/luci-app-adblock/po/ja/adblock.po +++ b/applications/luci-app-adblock/po/ja/adblock.po @@ -8,7 +8,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Poedit 2.0.2\n" "Language: ja\n" msgid "Adblock" @@ -50,12 +50,27 @@ msgstr "" "DNS の利用によって広告/不正ドメインをブロックする、Adblock パッケージの設定で" "す。" +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in manual mode." +msgstr "" +"圧縮されたブロックリストのバックアップを作成します。これは、リストのダウン" +"ロードがエラーの場合、またはマニュアル モードでサービスを起動時に使用されま" +"す。" + msgid "DNS backend" msgstr "DNS バックエンド" msgid "Description" msgstr "説明" +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" +"サービス起動時にブロックリストを自動的に更新せず、代わりにバックアップされた" +"ブロックリストを使用します。" + msgid "Download Utility (SSL Library)" msgstr "ダウンロード ユーティリティ(SSL ライブラリ)" @@ -95,7 +110,7 @@ msgid "" "'libustream-ssl' or the wget 'built-in'." msgstr "" "SSLで保護されているブロックリストの取得には、適切なSSL ライブラリが必要です。" -"例: 'libustream-ssl' または wget 'ビルトイン'" +"例: 'libustream-ssl' または wget 'built-in'" msgid "" "For further information <a href=\"%s\" target=\"_blank\">see online " @@ -122,6 +137,9 @@ msgstr "最終実行日時" msgid "Loading" msgstr "読込中" +msgid "Manual mode" +msgstr "マニュアル モード" + msgid "No" msgstr "いいえ" @@ -251,129 +269,3 @@ msgstr "ブロックされたドメインはありません" msgid "suspended" msgstr "一時停止中" - -#~ msgid "." -#~ msgstr "。" - -#~ msgid "For further information" -#~ msgstr "詳細な情報は" - -#~ msgid "see online documentation" -#~ msgstr "オンライン ドキュメントを確認してください" - -#~ msgid "Backup options" -#~ msgstr "バックアップ オプション" - -#~ msgid "Restrict interface reload trigger to certain interface(s)" -#~ msgstr "リロード トリガを特定のインターフェースに限定する" - -#~ msgid "" -#~ "Space separated list of interfaces that trigger a reload action. To " -#~ "disable reload trigger at all remove all entries." -#~ msgstr "" -#~ "リロードのトリガとなる、スペースで区切られたインターフェースのリストです。" -#~ "リロード トリガを無効にするには、全てのエントリーを削除して空欄にします。" - -#~ msgid "" -#~ "Space separated list of interfaces that trigger a reload action. To " -#~ "disable reload trigger at all set it to 'false'." -#~ msgstr "" -#~ "リロードのトリガとなる、スペースで区切られたインターフェースのリストで" -#~ "す。'false' に設定した場合、全てのリロード トリガは無効になります。" - -#~ msgid "" -#~ "Please add only one domain per line. Comments introduced with '#' are " -#~ "allowed - ip addresses, wildcards & regex are not." -#~ msgstr "" -#~ "一行に一つのドメインを追加してください。'#' から始まるコメントを記述できま" -#~ "すが、IPアドレスやワイルドカード、正規表現を設定値として使用することはでき" -#~ "ません。" - -#~ msgid "" -#~ "). Note that list URLs and Shallalist category selections are not " -#~ "configurable via Luci." -#~ msgstr "" -#~ ")。これらのリストのURLおよびshallaリストの選択済みカテゴリーは、Luciを通" -#~ "して設定することができません。" - -#~ msgid "Available blocklist sources (" -#~ msgstr "利用可能なブロックリスト提供元です(" - -#~ msgid "" -#~ "File with whitelisted hosts/domains that are allowed despite being on a " -#~ "blocklist." -#~ msgstr "" -#~ "ホワイトリスト ファイル内のホスト/ドメインは、ブロックリストの登録に関わら" -#~ "ず許可されます。" - -#~ msgid "Global options" -#~ msgstr "一般設定" - -#~ msgid "Restrict reload trigger to certain interface(s)" -#~ msgstr "リロードトリガを特定のインターフェースに限定する" - -#~ msgid "" -#~ "Space separated list of wan interfaces that trigger reload action. To " -#~ "disable reload trigger set it to 'false'. Default: empty" -#~ msgstr "" -#~ "リロード実行のトリガとなる、スペースで区切られたWANインターフェースのリス" -#~ "トです。リロードトリガを無効にするには、 false を設定します。デフォルト:" -#~ "(空)" - -#~ msgid "Whitelist file" -#~ msgstr "ホワイトリスト ファイル" - -#~ msgid "see list details" -#~ msgstr "リストの詳細を見る" - -#~ msgid "Count" -#~ msgstr "カウント" - -#~ msgid "Do not write status info to flash" -#~ msgstr "ステータス情報をフラッシュに書き込まない" - -#~ msgid "Last update of the blocklists" -#~ msgstr "ブロックリストの最終更新日時" - -#~ msgid "List date/state" -#~ msgstr "リスト日時/状態" - -#~ msgid "Name of the logical lan interface" -#~ msgstr "論理LANインターフェース名" - -#~ msgid "Percentage of blocked packets (before last update, IPv4/IPv6)" -#~ msgstr "ブロック済みパケットの割合(最終更新以前、IPv4/IPv6)" - -#~ msgid "Port of the adblock uhttpd instance" -#~ msgstr "adblock uhttpdインスタンスのポート" - -#~ msgid "Port of the adblock uhttpd instance for https links" -#~ msgstr "httpsリンク用adblock uhttpdインスタンスのポート" - -#~ msgid "Redirect all DNS queries to the local resolver" -#~ msgstr "全てのDNSクエリをローカルリゾルバにリダイレクト" - -#~ msgid "" -#~ "Skip writing update status information to the config file. Status fields " -#~ "on this page will not be updated." -#~ msgstr "" -#~ "更新ステータス情報をコンフィグファイルに書き込まず、スキップします。この" -#~ "ページのステータス画面は更新されなくなります。" - -#~ msgid "Statistics" -#~ msgstr "ステータス" - -#~ msgid "Timeout for blocklist fetch (seconds)" -#~ msgstr "ブロックリスト取得の制限時間(秒)" - -#~ msgid "Total count of blocked domains" -#~ msgstr "ブロック済みドメインの合計" - -#~ msgid "" -#~ "When adblock is active, all DNS queries are redirected to the local " -#~ "resolver in this server by default. You can disable that to allow queries " -#~ "to external DNS servers." -#~ msgstr "" -#~ "adblockがアクティブである時、全てのDNSクエリは既定でこのサーバー上のリゾル" -#~ "バにリダイレクトされます。外部DNSサーバーへのクエリを許可する場合、この設" -#~ "定を無効にすることもできます。" diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po index 72f6910429..044352da63 100644 --- a/applications/luci-app-adblock/po/pt-br/adblock.po +++ b/applications/luci-app-adblock/po/pt-br/adblock.po @@ -51,12 +51,22 @@ msgstr "" "Configuração do pacote adblock para bloquear, usando o DNS, domínios que " "distribuem propagandas abusivas." +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in manual mode." +msgstr "" + msgid "DNS backend" msgstr "" msgid "Description" msgstr "Descrição" +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" + msgid "Download Utility (SSL Library)" msgstr "" @@ -117,6 +127,9 @@ msgstr "" msgid "Loading" msgstr "" +msgid "Manual mode" +msgstr "" + msgid "No" msgstr "" diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po index 7f271221ae..cf92dbddc0 100644 --- a/applications/luci-app-adblock/po/sv/adblock.po +++ b/applications/luci-app-adblock/po/sv/adblock.po @@ -40,12 +40,22 @@ msgstr "" "Konfiguration av paketet adblock för att blockera annons/otillåtna domäner " "genom att använda DNS." +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in manual mode." +msgstr "" + msgid "DNS backend" msgstr "Bakände för DNS" msgid "Description" msgstr "Beskrivning" +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" + msgid "Download Utility (SSL Library)" msgstr "Nerladdningsprogram (SSL-bibliotek)" @@ -107,6 +117,9 @@ msgstr "" msgid "Loading" msgstr "Laddar" +msgid "Manual mode" +msgstr "" + msgid "No" msgstr "Nej" diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot index c5771ef22e..5b5a96866a 100644 --- a/applications/luci-app-adblock/po/templates/adblock.pot +++ b/applications/luci-app-adblock/po/templates/adblock.pot @@ -38,12 +38,22 @@ msgid "" "Configuration of the adblock package to block ad/abuse domains by using DNS." msgstr "" +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in manual mode." +msgstr "" + msgid "DNS backend" msgstr "" msgid "Description" msgstr "" +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" + msgid "Download Utility (SSL Library)" msgstr "" @@ -104,6 +114,9 @@ msgstr "" msgid "Loading" msgstr "" +msgid "Manual mode" +msgstr "" + msgid "No" msgstr "" diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po index dfa03f32b1..46dc99e66e 100644 --- a/applications/luci-app-adblock/po/zh-cn/adblock.po +++ b/applications/luci-app-adblock/po/zh-cn/adblock.po @@ -50,12 +50,22 @@ msgid "" "Configuration of the adblock package to block ad/abuse domains by using DNS." msgstr "Adblock 配置工具,通过 DNS 来拦截广告和阻止域名。" +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in manual mode." +msgstr "" + msgid "DNS backend" msgstr "DNS 后端" msgid "Description" msgstr "描述" +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" + msgid "Download Utility (SSL Library)" msgstr "" @@ -116,6 +126,9 @@ msgstr "" msgid "Loading" msgstr "加载中" +msgid "Manual mode" +msgstr "" + msgid "No" msgstr "否" diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile new file mode 100644 index 0000000000..3a886eb8de --- /dev/null +++ b/applications/luci-app-advanced-reboot/Makefile @@ -0,0 +1,20 @@ +# Copyright (c) 2017 Stan Grishin (stangri@melmac.net) +# This is free software, licensed under the GNU General Public License v3. + +include $(TOPDIR)/rules.mk + +PKG_LICENSE:=GPL-3.0+ +PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net> + +LUCI_TITLE:=Advanced Linksys Reboot Web UI +LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot supported Linksys routers to\ + an altnerative partition. Also provides Web UI to shut down (power off) your device. Supported dual-partition\ + routers are listed at https://github.com/stangri/openwrt-luci/blob/luci-app-advanced-reboot/applications/luci-app-advanced-reboot/README.md + +LUCI_DEPENDS:=+luci +LUCI_PKGARCH:=all +PKG_RELEASE:=23 + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-advanced-reboot/README.md b/applications/luci-app-advanced-reboot/README.md new file mode 100644 index 0000000000..ee87a00020 --- /dev/null +++ b/applications/luci-app-advanced-reboot/README.md @@ -0,0 +1,35 @@ +# Advanced Reboot Web UI (luci-app-advanced-reboot) + +## Description +This package allows you to reboot to an alternative partition on supported (dual-partition) routers and to power off (power down) your OpenWrt/LEDE Project device. + +## Supported Devices +Currently supported dual-partition devices include: +- Linksys WRT1200AC +- Linksys WRT1900AC +- Linksys WRT1900ACv2 +- Linksys WRT1900ACS +- Linksys WRT3200ACM +- Linksys E4200v2 +- Linksys EA4500 +- Linksys EA8500 + +If you're interested in having your device supported, please post in [LEDE Project Forum Support Thread](https://forum.lede-project.org/t/web-ui-to-reboot-to-another-partition-dual-partition-routers/3423). + +## Screenshot (luci-app-advanced-reboot) +![screenshot](https://raw.githubusercontent.com/stangri/screenshots/master/luci-app-advanced-reboot/screenshot01.png "screenshot") + +## How to install +Install ```luci-app-advanced-reboot``` from Web UI or connect to your router via ssh and run the following commands: +```sh +opkg update +opkg install luci-app-advanced-reboot +``` + +## Notes/Known Issues +- When you reboot to a different partition, your current settings (WiFi SSID/password, etc.) will not apply to a different partition. Different partitions might have completely different settings and even firmware. +- If you reboot to a partition which doesn't allow you to switch boot partitions (like stock Linksys firmware), you might not be able to boot back to OpenWrt/LEDE Project unless you reflash it, loosing all the settings. +- Some devices allow you to trigger reboot to alternative partition by interrupting boot 3 times in a row (by resetting/switching off the device or pulling power). As these methods might be different for different devices, do your own homework. + +## Thanks +I'd like to thank everyone who helped create, test and troubleshoot this package. Without contributions from [@hnyman](https://github.com/hnyman) and [@jpstyves](https://github.com/jpstyves) it wouldn't have been possible. diff --git a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua new file mode 100644 index 0000000000..2b55217b8e --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua @@ -0,0 +1,120 @@ +-- Copyright 2017 Stan Grishin <stangri@melmac.net> +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.advanced_reboot", package.seeall) + +-- device, board_name, part1, part2, offset, env_var_1, value_1_1, value_1_2, env_var_2, value_2_1, value_2_2 +devices = { + {"Linksys WRT1200AC", "armada-385-linksys-caiman", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys WRT1900AC", "armada-xp-linksys-mamba", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys WRT1900ACv2", "armada-385-linksys-cobra", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys WRT1900ACS", "armada-385-linksys-shelby", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys WRT3200ACM", "armada-385-linksys-rango", "mtd5", "mtd7", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys E4200v2/EA4500", "linksys-viper", "mtd3", "mtd5", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys EA8500", "ea8500", "mtd13", "mtd15", 32, "boot_part", 1, 2} +} + +board_name = luci.util.trim(luci.sys.exec("cat /tmp/sysinfo/board_name")) +for i=1, #devices do + if board_name and devices[i][2] == board_name then + device_name = devices[i][1] + partition_one_mtd = devices[i][3] or nil + partition_two_mtd = devices[i][4] or nil + partition_skip = devices[i][5] or nil + boot_envvar1 = devices[i][6] or nil + boot_envvar1_partition_one = tonumber(devices[i][7]) or nil + boot_envvar1_partition_two = tonumber(devices[i][8]) or nil + boot_envvar2 = devices[i][9] or nil + boot_envvar2_partition_one = devices[i][10] or nil + boot_envvar2_partition_two = devices[i][11] or nil + if partition_one_mtd and partition_skip then + partition_one_label = luci.util.trim(luci.sys.exec("dd if=/dev/" .. partition_one_mtd .. " bs=1 skip=" .. partition_skip .. " count=25" .. " 2>/dev/null")) + n, partition_one_version = string.match(partition_one_label, '(Linux)-([%d|.]+)') + end + if partition_two_mtd and partition_skip then + partition_two_label = luci.util.trim(luci.sys.exec("dd if=/dev/" .. partition_two_mtd .. " bs=1 skip=" .. partition_skip .. " count=25" .. " 2>/dev/null")) + n, partition_two_version = string.match(partition_two_label, '(Linux)-([%d|.]+)') + end + if string.find(partition_one_label, "LEDE") then partition_one_os = "LEDE" end + if string.find(partition_one_label, "OpenWrt") then partition_one_os = "OpenWrt" end + if string.find(partition_one_label, "Linksys") then partition_one_os = "Linksys" end + if string.find(partition_two_label, "LEDE") then partition_two_os = "LEDE" end + if string.find(partition_two_label, "OpenWrt") then partition_two_os = "OpenWrt" end + if string.find(partition_two_label, "Linksys") then partition_two_os = "Linksys" end + if not partition_one_os then partition_one_os = "Unknown" end + if not partition_two_os then partition_two_os = "Unknown" end + if partition_one_os and partition_one_version then partition_one_os = partition_one_os .. " (Linux " .. partition_one_version .. ")" end + if partition_two_os and partition_two_version then partition_two_os = partition_two_os .. " (Linux " .. partition_two_version .. ")" end + if nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then + current_partition = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) + other_partition = current_partition == boot_envvar1_partition_one and boot_envvar1_partition_two or boot_envvar1_partition_one + end + end +end + +function index() + entry({"admin", "system", "advanced_reboot"}, template("advanced_reboot/advanced_reboot"), _("Advanced Reboot"), 90) + entry({"admin", "system", "advanced_reboot", "reboot"}, post("action_reboot")) +-- if device_name then entry({"admin", "system", "advanced_reboot", "altreboot"}, post("action_altreboot")) end + entry({"admin", "system", "advanced_reboot", "alternative_reboot"}, post("action_altreboot")) + entry({"admin", "system", "advanced_reboot", "power_off"}, post("action_poweroff")) +end + +function action_reboot() + luci.template.render("admin_system/applyreboot", { + title = luci.i18n.translate("Rebooting..."), + msg = luci.i18n.translate("The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> 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."), + addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1" + }) + luci.sys.reboot() +end + +function action_altreboot() + if luci.http.formvalue("cancel") then + luci.http.redirect(luci.dispatcher.build_url('admin/system/advanced_reboot')) + return + end + local step = tonumber(luci.http.formvalue("step") or 1) + if step == 1 then + if device_name and nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then + luci.template.render("advanced_reboot/alternative_reboot",{}) + else + luci.template.render("advanced_reboot/advanced_reboot",{}) + end + elseif step == 2 then + luci.template.render("admin_system/applyreboot", { + title = luci.i18n.translate("Rebooting..."), + msg = luci.i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> 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."), + addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1" + }) + if boot_envvar1 then env1 = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) end + if boot_envvar2 then env2 = luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar2)) end + if env1 and env1 == boot_envvar1_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_two) end + if env1 and env1 == boot_envvar1_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_one) end + if env2 and env2 == boot_envvar2_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_two .. "'") end + if env2 and env2 == boot_envvar2_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_one .. "'") end + luci.sys.reboot() + end +end + +function action_poweroff() + if luci.http.formvalue("cancel") then + luci.http.redirect(luci.dispatcher.build_url('admin/system/advanced_reboot')) + return + end + local step = tonumber(luci.http.formvalue("step") or 1) + if step == 1 then + if nixio.fs.access("/sbin/poweroff") then + luci.template.render("advanced_reboot/power_off",{}) + else + luci.template.render("advanced_reboot/advanced_reboot",{}) + end + elseif step == 2 then + luci.template.render("admin_system/applyreboot", { + title = luci.i18n.translate("Shutting down..."), + msg = luci.i18n.translate("The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), + addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1" + }) + luci.sys.call("/sbin/poweroff") + end +end diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm new file mode 100644 index 0000000000..206d250543 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm @@ -0,0 +1,92 @@ +<%# + Copyright 2008 Steven Barth <steven@midlink.org> + Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org> + Copyright 2017 Stan Grishin <stangri@melmac.net> + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +<h2 name="content"><%:Advanced Reboot%></h2> +<br /> + +<%- local c = require("luci.model.uci").cursor():changes(); if c and next(c) then -%> + <p class="alert-message warning"><%:Warning: There are unsaved changes that will get lost on reboot!%></p> +<%- end -%> + +<%- if device_name then -%> +<fieldset class="cbi-section"> + <legend><%=device_name%><%: Partitions%></legend> + <table class="cbi-section-table" id="partitions"> + <tr class="cbi-section-table-titles"> + <th class="cbi-section-table-cell"><%:Partition%></th> + <th class="cbi-section-table-cell"><%:Status%></th> + <th class="cbi-section-table-cell"><%:Firmware/OS (Kernel)%></th> + <th class="cbi-section-table-cell"><%:Action%></th> + </tr> + <tr class="cbi-section-table-row"> + <td> + <%=boot_envvar1_partition_one%> + </td> + <td> + <%- if boot_envvar1_partition_one == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> + </td> + <td> + <%=partition_one_os%> + </td> + <td> + <%- if boot_envvar1_partition_one == current_partition then -%> + <form method="post" action="<%=url('admin/system/advanced_reboot/reboot')%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input id="reboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to current partition%>" /> + </form> + <%- else -%> + <form method="post" action="<%=url('admin/system/advanced_reboot/alternative_reboot')%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input id="altreboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to alternative partition...%>" /> + </form> + <%- end -%> + </td> + </tr> + <tr class="cbi-section-table-row"> + <td> + <%=boot_envvar1_partition_two%> + </td> + <td> + <%- if boot_envvar1_partition_two == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> + </td> + <td> + <%=partition_two_os%> + </td> + <td> + <%- if boot_envvar1_partition_two == current_partition then -%> + <form method="post" action="<%=url('admin/system/advanced_reboot/reboot')%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input id="reboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to current partition%>" /> + </form> + <%- else -%> + <form method="post" action="<%=url('admin/system/advanced_reboot/alternative_reboot')%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input id="altreboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to alternative partition...%>" /> + </form> + <%- end -%> + </td> + </tr> + </table> +</fieldset> +<%- else -%> + <p class="alert-message warning"><%:Warning: This system does not have two partitions!%></p> +<%- end -%> + +<hr /> + +<%- if nixio.fs.access("/sbin/poweroff") then -%> +<form method="post" action="<%=url('admin/system/advanced_reboot/power_off')%>"> + <input type="hidden" name="token" value="<%=token%>" /> + <input id="poweroff-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Perform power off...%>" /> +</form> +<%- else -%> + <p class="alert-message warning"><%:Warning: This system does not support powering off!%></p> +<%- end -%> + +<%+footer%> diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm new file mode 100644 index 0000000000..6325934094 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm @@ -0,0 +1,29 @@ +<%# + Copyright 2008 Steven Barth <steven@midlink.org> + Copyright 2008-2009 Jo-Philipp Wich <jow@openwrt.org> + Copyright 2017 Stan Grishin <stangri@melmac.net> + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +<h2 name="content"><%:Reboot Device to an Alternative Partition%> - <%:Confirm%></h2> +<p> + <%_ WARNING: An alternative partition might have its own settings and completely different firmware.<br /><br /> + As your network configuration and WiFi SSID/password on alternative partition might be different, + you might have to adjust your computer settings to be able to access your device once it reboots.<br /><br /> + Please also be aware that alternative partition firmware might not provide an easy way to switch active partition + and boot back to the currently active partition.<br /><br /> + Click "Proceed" below to reboot device to an alternative partition. %> +</p> + +<div class="cbi-page-actions right"> + <form class="inline" action="<%=REQUEST_URI%>" method="post"> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="step" value="2" /> + <input class="cbi-button cbi-button-reset" name="cancel" type="submit" value="<%:Cancel%>" /> + <input class="cbi-button cbi-button-apply" type="submit" value="<%:Proceed%>" /> + </form> +</div> + +<%+footer%> diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm new file mode 100644 index 0000000000..0ddea11e65 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm @@ -0,0 +1,25 @@ +<%# + Copyright 2008 Steven Barth <steven@midlink.org> + Copyright 2008-2009 Jo-Philipp Wich <jow@openwrt.org> + Copyright 2017 Stan Grishin <stangri@melmac.net> + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +<h2 name="content"><%:Power Off Device%> - <%:Confirm%></h2> +<p> + <%_ WARNING: Power off might result in a reboot on a device which doesn't support power off.<br /><br /> + Click "Proceed" below to power off your device. %> +</p> + +<div class="cbi-page-actions right"> + <form class="inline" action="<%=REQUEST_URI%>" method="post"> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="step" value="2" /> + <input class="cbi-button cbi-button-reset" name="cancel" type="submit" value="<%:Cancel%>" /> + <input class="cbi-button cbi-button-apply" type="submit" value="<%:Proceed%>" /> + </form> +</div> + +<%+footer%> diff --git a/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot b/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot new file mode 100644 index 0000000000..9c810892c2 --- /dev/null +++ b/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot @@ -0,0 +1,102 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Action" +msgstr "" + +msgid "Advanced Reboot" +msgstr "" + +msgid "Alternative" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Confirm" +msgstr "" + +msgid "Current" +msgstr "" + +msgid "Firmware/OS (Kernel)" +msgstr "" + +msgid "Partition" +msgstr "" + +msgid "Partitions" +msgstr "" + +msgid "Perform power off..." +msgstr "" + +msgid "Power Off Device" +msgstr "" + +msgid "Proceed" +msgstr "" + +msgid "Reboot Device to an Alternative Partition" +msgstr "" + +msgid "Reboot to alternative partition..." +msgstr "" + +msgid "Reboot to current partition" +msgstr "" + +msgid "Rebooting..." +msgstr "" + +msgid "Shutting down..." +msgstr "" + +msgid "Status" +msgstr "" + +msgid "" +"The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> 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 "" + +msgid "" +"The system is rebooting to an alternative partition now.<br /> DO NOT POWER " +"OFF THE DEVICE!<br /> 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 "" + +msgid "" +"The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" + +msgid "" +"WARNING: An alternative partition might have its own settings and completely " +"different firmware.<br /><br /> As your network configuration and WiFi SSID/" +"password on alternative partition might be different, you might have to " +"adjust your computer settings to be able to access your device once it " +"reboots.<br /><br /> Please also be aware that alternative partition " +"firmware might not provide an easy way to switch active partition and boot " +"back to the currently active partition.<br /><br /> Click \"Proceed\" below " +"to reboot device to an alternative partition." +msgstr "" + +msgid "" +"WARNING: Power off might result in a reboot on a device which doesn't " +"support power off.<br /><br /> Click \"Proceed\" below to power off your " +"device." +msgstr "" + +msgid "Warning: There are unsaved changes that will get lost on reboot!" +msgstr "" + +msgid "Warning: This system does not have two partitions!" +msgstr "" + +msgid "Warning: This system does not support powering off!" +msgstr "" diff --git a/applications/luci-app-aria2/po/sv/aria2.po b/applications/luci-app-aria2/po/sv/aria2.po new file mode 100644 index 0000000000..a7f41f250d --- /dev/null +++ b/applications/luci-app-aria2/po/sv/aria2.po @@ -0,0 +1,208 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "\"Falloc\" is not available in all cases." +msgstr "" + +msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled" +msgstr "" + +msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled" +msgstr "" + +msgid "Additional Bt tracker enabled" +msgstr "" + +msgid "Aria2" +msgstr "Aria2" + +msgid "Aria2 Settings" +msgstr "Inställningar för Aria2" + +msgid "Aria2 Status" +msgstr "Status för Aria2" + +msgid "" +"Aria2 is a multi-protocol & multi-source download utility, here you can " +"configure the settings." +msgstr "Aria2 är ett verktyg för multiprotokoll & multi-käll" + +msgid "Autosave session interval" +msgstr "" + +msgid "BitTorrent Settings" +msgstr "Inställningar för BitTorrent" + +msgid "BitTorrent listen port" +msgstr "Lyssningsport för BitTorrent" + +msgid "Collecting data..." +msgstr "Samlar in data..." + +msgid "Config file directory" +msgstr "Ställ in fil-mapp" + +msgid "Debug" +msgstr "Avlusa" + +msgid "Default download directory" +msgstr "Standard nerladdningsmapp" + +msgid "Disk cache" +msgstr "Disk-cache" + +msgid "Enable log" +msgstr "Aktivera logg" + +msgid "Enabled" +msgstr "Aktiverad" + +msgid "Error" +msgstr "Fel" + +msgid "Extra Settings" +msgstr "Extra inställningar" + +msgid "Falloc" +msgstr "Falloc" + +msgid "Files and Locations" +msgstr "Filer och Platser" + +msgid "Follow torrent" +msgstr "Följ torrenten" + +msgid "General Settings" +msgstr "Generella inställningar" + +msgid "Generate Randomly" +msgstr "Generera slumpmässigt" + +msgid "Info" +msgstr "Info" + +msgid "List of additional Bt tracker" +msgstr "" + +msgid "List of extra settings" +msgstr "" + +msgid "Log file is in the config file dir." +msgstr "Logg-filen är i konfigurationsfilens mapp." + +msgid "Log level" +msgstr "Loggningsnivå" + +msgid "Max concurrent downloads" +msgstr "Maximalt sammanhängande nerladdningar" + +msgid "Max connection per server" +msgstr "Max antalet anslutningar per server" + +msgid "Max number of peers per torrent" +msgstr "Maximalt antalet jämlikar per torrent" + +msgid "Max number of split" +msgstr "" + +msgid "Min split size" +msgstr "" + +msgid "No Authentication" +msgstr "Ingen autentisering" + +msgid "Notice" +msgstr "Avisering" + +msgid "Off" +msgstr "Av" + +msgid "Open WebUI-Aria2" +msgstr "" + +msgid "Open YAAW" +msgstr "Öppna YAAW" + +msgid "Overall download limit" +msgstr "" + +msgid "Overall speed limit enabled" +msgstr "" + +msgid "Overall upload limit" +msgstr "" + +msgid "Per task download limit" +msgstr "" + +msgid "Per task speed limit enabled" +msgstr "" + +msgid "Per task upload limit" +msgstr "" + +msgid "Prealloc" +msgstr "Prealloc" + +msgid "Preallocation" +msgstr "" + +msgid "Prefix of peer ID" +msgstr "" + +msgid "RPC Token" +msgstr "" + +msgid "RPC authentication method" +msgstr "" + +msgid "RPC password" +msgstr "RPC-lösenord" + +msgid "RPC port" +msgstr "RPC-port" + +msgid "RPC username" +msgstr "RPC-användarnamn" + +msgid "Run daemon as user" +msgstr "Kör daemonen som användare" + +msgid "Sec" +msgstr "Sek" + +msgid "Task Settings" +msgstr "" + +msgid "The Aria2 service is not running." +msgstr "Aria2-tjänsten körs inte." + +msgid "The Aria2 service is running." +msgstr "Aria2-tjänsten körs." + +msgid "Token" +msgstr "" + +msgid "Trunc" +msgstr "" + +msgid "Use WebSocket" +msgstr "Använd WebSocket" + +msgid "User agent value" +msgstr "Använd agent-värde" + +msgid "Username & Password" +msgstr "Användarnamn & Lösenord" + +msgid "View Json-RPC URL" +msgstr "" + +msgid "Warn" +msgstr "Varna" + +msgid "in bytes, You can append K or M." +msgstr "" + +msgid "in bytes/sec, You can append K or M." +msgstr "" diff --git a/applications/luci-app-clamav/po/sv/clamav.po b/applications/luci-app-clamav/po/sv/clamav.po new file mode 100644 index 0000000000..589d5f9aa3 --- /dev/null +++ b/applications/luci-app-clamav/po/sv/clamav.po @@ -0,0 +1,119 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "10" +msgstr "10" + +msgid "1024" +msgstr "1024" + +msgid "15" +msgstr "15" + +msgid "150M" +msgstr "150M" + +msgid "1M" +msgstr "1M" + +msgid "20" +msgstr "20" + +msgid "2048" +msgstr "2048" + +msgid "2M" +msgstr "2M" + +msgid "50M" +msgstr "50M" + +msgid "512K" +msgstr "512K" + +msgid "600" +msgstr "600" + +msgid "Block encrypted archives" +msgstr "Blockera krypterade arkiv" + +msgid "ClamAV" +msgstr "ClamAV" + +msgid "Database check every N sec" +msgstr "" + +msgid "Detect broken executables" +msgstr "" + +msgid "Detect possibly unwanted apps" +msgstr "Upptäck möjliga oönskade appar" + +msgid "Enable verbose logging" +msgstr "Aktivera utförlig loggning" + +msgid "Follow directory symlinks" +msgstr "" + +msgid "Follow file symlinks" +msgstr "" + +msgid "Log" +msgstr "Logg" + +msgid "Log additional infection info" +msgstr "" + +msgid "Log time with each message" +msgstr "" + +msgid "Max directory scan depth" +msgstr "" + +msgid "Max number of threads" +msgstr "Maximalt antalet trådar" + +msgid "Max size of log file" +msgstr "" + +msgid "Max size of scanned file" +msgstr "" + +msgid "No" +msgstr "Nej" + +msgid "Port range, highest port" +msgstr "" + +msgid "Port range, lowest port" +msgstr "" + +msgid "Scan ELF files" +msgstr "Sök igenom ELF-filer" + +msgid "Scan MS Office and .msi files" +msgstr "Sök igen MS Office och .msi-filer" + +msgid "Scan RFC1341 messages split over many emails" +msgstr "Sök igen RFC1341-meddelanden uppdelade över många e-postmeddelanden" + +msgid "Scan archives" +msgstr "Sök igenom arkiven" + +msgid "Scan emails" +msgstr "Sök igenom e-postmeddelanden" + +msgid "Scan pdf files" +msgstr "Sök igenom pdf-filer" + +msgid "Scan portable executables" +msgstr "" + +msgid "Scan swf files" +msgstr "Sök igenom swf-filer" + +msgid "Settings" +msgstr "Inställningar" + +msgid "Yes" +msgstr "Ja" diff --git a/applications/luci-app-commands/Makefile b/applications/luci-app-commands/Makefile index dc5d0ca849..f41d6e2d42 100644 --- a/applications/luci-app-commands/Makefile +++ b/applications/luci-app-commands/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI Shell Command Module LUCI_DEPENDS:= +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-commands/po/sv/commands.po b/applications/luci-app-commands/po/sv/commands.po index 5a4c255e4a..8cb1923e29 100644 --- a/applications/luci-app-commands/po/sv/commands.po +++ b/applications/luci-app-commands/po/sv/commands.po @@ -10,98 +10,102 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "A short textual description of the configured command" -msgstr "" +msgstr "En kort textuell beskrivning av det inställda kommandot" msgid "" "Allow executing the command and downloading its output without prior " "authentication" msgstr "" +"Tillåt att kommandot kan köras och ladda ner dess utmatning utan föregående " +"autentisering" msgid "Allow the user to provide additional command line arguments" -msgstr "" +msgstr "Tillåt användaren att tillge extra kommandoradsargument" msgid "Arguments:" -msgstr "" +msgstr "Argument:" msgid "Binary data not displayed, download instead." -msgstr "" +msgstr "Binärdatan visades inte, ladda ner istället." msgid "Code:" -msgstr "" +msgstr "Kod:" msgid "Collecting data..." -msgstr "" +msgstr "Samlar in data..." msgid "Command" -msgstr "" +msgstr "Kommando" msgid "Command executed successfully." -msgstr "" +msgstr "Kommandot utfördes korrekt" msgid "Command exited with status code" -msgstr "" +msgstr "Kommandot avslutade med statuskod" msgid "Command failed" -msgstr "" +msgstr "Kommandot misslyckades" msgid "Command line to execute" -msgstr "" +msgstr "Kommandorad att exekvera" msgid "Command successful" -msgstr "" +msgstr "Kommandot lyckades" msgid "Command:" -msgstr "" +msgstr "Kommando:" msgid "Configure" -msgstr "" +msgstr "Ställ in" msgid "Custom Commands" -msgstr "" +msgstr "Anpassade kommandon" msgid "Custom arguments" -msgstr "" +msgstr "Anpassade argument" msgid "Dashboard" -msgstr "" +msgstr "Instrumentpanel" msgid "Description" -msgstr "" +msgstr "Beskrivning" msgid "Download" -msgstr "" +msgstr "Ladda ner" msgid "Download execution result" -msgstr "" +msgstr "Resultatet av nerladdningen" msgid "Failed to execute command!" -msgstr "" +msgstr "Misslyckade med att köra kommando!" msgid "Link" -msgstr "" +msgstr "Länk" msgid "Loading" -msgstr "" +msgstr "Laddar" msgid "Or display result" -msgstr "" +msgstr "Eller visa resultat" msgid "Public access" -msgstr "" +msgstr "Publik tillgång" msgid "Run" -msgstr "" +msgstr "Kör" msgid "Standard Error" -msgstr "" +msgstr "Standardfel" msgid "Standard Output" -msgstr "" +msgstr "Standardinmatning" msgid "" "This page allows you to configure custom shell commands which can be easily " "invoked from the web interface." msgstr "" +"Den här sidan tillåter dig att ställa in anpassade skalkommandon som lättast kan " +"åberopas från webbgränssnittet." msgid "Waiting for command to complete..." -msgstr "" +msgstr "Väntar på att kommandot ska slutföras..." diff --git a/applications/luci-app-ddns/po/sv/ddns.po b/applications/luci-app-ddns/po/sv/ddns.po new file mode 100644 index 0000000000..780a2f9c8f --- /dev/null +++ b/applications/luci-app-ddns/po/sv/ddns.po @@ -0,0 +1,718 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "&" +msgstr "&" + +msgid "-- custom --" +msgstr "-- anpassad --" + +msgid "-- default --" +msgstr "-- standard --" + +msgid "Advanced Settings" +msgstr "Avancerade inställningar" + +msgid "Allow non-public IP's" +msgstr "Tillåt icke-publika IP-adresser" + +msgid "Applying changes" +msgstr "Verkställer ändringar" + +msgid "Basic Settings" +msgstr "Standardinställningar" + +msgid "" +"Below a list of configuration tips for your system to run Dynamic DNS " +"updates without limitations" +msgstr "" + +msgid "" +"Below is a list of configured DDNS configurations and their current state." +msgstr "" + +msgid "Bind Network" +msgstr "" + +msgid "Binding to a specific network not supported" +msgstr "" + +msgid "" +"BusyBox's nslookup and Wget do not support to specify the IP version to use " +"for communication with DDNS Provider!" +msgstr "" + +msgid "" +"BusyBox's nslookup and hostip do not support to specify to use TCP instead " +"of default UDP when requesting DNS server!" +msgstr "" + +msgid "" +"BusyBox's nslookup in the current compiled version does not handle given DNS " +"Servers correctly!" +msgstr "" + +msgid "Casual users should not change this setting" +msgstr "" + +msgid "Change provider" +msgstr "Byt operatör" + +msgid "Check Interval" +msgstr "Kontroll-intervall" + +msgid "Collecting data..." +msgstr "Samlar in data..." + +msgid "Config error" +msgstr "Konfigurationsfel" + +msgid "Configuration" +msgstr "Konfiguration" + +msgid "" +"Configure here the details for all Dynamic DNS services including this LuCI " +"application." +msgstr "" + +msgid "Configure here the details for selected Dynamic DNS service." +msgstr "" + +msgid "Current setting" +msgstr "Nuvarande inställning" + +msgid "" +"Currently DDNS updates are not started at boot or on interface events.<br /" +">This is the default if you run DDNS scripts by yourself (i.e. via cron with " +"force_interval set to '0')" +msgstr "" + +msgid "" +"Currently DDNS updates are not started at boot or on interface events.<br /" +">You can start/stop each configuration here. It will run until next reboot." +msgstr "" + +msgid "Custom update script to be used for updating your DDNS Provider." +msgstr "" + +msgid "Custom update-URL" +msgstr "Anpassad webbadress för uppdatering" + +msgid "Custom update-script" +msgstr "Anpassat uppdateringsskript" + +msgid "DDNS Autostart disabled" +msgstr "" + +msgid "DDNS Client Configuration" +msgstr "" + +msgid "DDNS Client Documentation" +msgstr "" + +msgid "DDNS Service provider" +msgstr "" + +msgid "DNS requests via TCP not supported" +msgstr "" + +msgid "DNS-Server" +msgstr "DNS-server" + +msgid "Date format" +msgstr "Datumformat" + +msgid "Defines the Web page to read systems IPv4-Address from" +msgstr "" + +msgid "Defines the Web page to read systems IPv6-Address from" +msgstr "" + +msgid "Defines the interface to read systems IP-Address from" +msgstr "" + +msgid "Defines the network to read systems IPv4-Address from" +msgstr "" + +msgid "Defines the network to read systems IPv6-Address from" +msgstr "" + +msgid "" +"Defines the source to read systems IPv4-Address from, that will be send to " +"the DDNS provider" +msgstr "" + +msgid "" +"Defines the source to read systems IPv6-Address from, that will be send to " +"the DDNS provider" +msgstr "" + +msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider" +msgstr "" + +msgid "Details for" +msgstr "Detaljer för" + +msgid "Directory contains Log files for each running section" +msgstr "" + +msgid "" +"Directory contains PID and other status information for each running section" +msgstr "" + +msgid "Disabled" +msgstr "Inaktivera" + +msgid "Domain" +msgstr "Domän" + +msgid "Dynamic DNS" +msgstr "Dynamisk DNS" + +msgid "" +"Dynamic DNS allows that your router can be reached with a fixed hostname " +"while having a dynamically changing IP address." +msgstr "" + +msgid "Enable secure communication with DDNS provider" +msgstr "" + +msgid "Enabled" +msgstr "Aktiverad" + +msgid "Error" +msgstr "Fel" + +msgid "Error Retry Counter" +msgstr "" + +msgid "Error Retry Interval" +msgstr "" + +msgid "Event Network" +msgstr "" + +msgid "File" +msgstr "Fil" + +msgid "File not found" +msgstr "Filen hittades inte" + +msgid "File not found or empty" +msgstr "Filen hittades inte eller tom" + +msgid "" +"Follow this link<br />You will find more hints to optimize your system to " +"run DDNS scripts with all options" +msgstr "" + +msgid "For detailed information about parameter settings look here." +msgstr "" + +msgid "For supported codes look here" +msgstr "" + +msgid "Force IP Version" +msgstr "Tvinga IP-version" + +msgid "Force IP Version not supported" +msgstr "Påtvingad IP-version stöds inte" + +msgid "Force Interval" +msgstr "" + +msgid "Force TCP on DNS" +msgstr "" + +msgid "Forced IP Version don't matched" +msgstr "" + +msgid "Format" +msgstr "Format" + +msgid "Format: IP or FQDN" +msgstr "Format: IP eller FQDN" + +msgid "" +"GNU Wget will use the IP of given network, cURL will use the physical " +"interface." +msgstr "" +"GNU Wget kommer att använda IP-adressen för det angivna nätverket, cURL kommer att använda det fysiska " +"gränssnittet." + +msgid "Global Settings" +msgstr "Globala inställningar" + +msgid "HTTPS not supported" +msgstr "HTTPS stöds inte" + +msgid "Hints" +msgstr "Ledtrådar" + +msgid "Hostname/FQDN to validate, if IP update happen or necessary" +msgstr "" + +msgid "IP address source" +msgstr "IP-adressens källa" + +msgid "IP address version" +msgstr "Version för IP-adress" + +msgid "IPv4-Address" +msgstr "IPv4-adress" + +msgid "IPv6 address must be given in square brackets" +msgstr "" + +msgid "" +"IPv6 is currently not (fully) supported by this system<br />Please follow " +"the instructions on OpenWrt's homepage to enable IPv6 support<br />or update " +"your system to the latest OpenWrt Release" +msgstr "" + +msgid "IPv6 not supported" +msgstr "IPv6 stöds inte" + +msgid "IPv6-Address" +msgstr "IPv6-adress" + +msgid "If both cURL and GNU Wget are installed, Wget is used by default." +msgstr "Om både cURL och GNU Wget är installerade så används Wget som standard." + +msgid "" +"If this service section is disabled it could not be started.<br />Neither " +"from LuCI interface nor from console" +msgstr "" + +msgid "If using secure communication you should verify server certificates!" +msgstr "" + +msgid "" +"If you want to send updates for IPv4 and IPv6 you need to define two " +"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" +msgstr "" + +msgid "" +"In some versions cURL/libcurl in OpenWrt is compiled without proxy support." +msgstr "" + +msgid "Info" +msgstr "Info" + +msgid "" +"Install 'ca-certificates' package or needed certificates by hand into /etc/" +"ssl/certs default directory" +msgstr "" + +msgid "Interface" +msgstr "Gränssnitt" + +msgid "" +"Interval to check for changed IP<br />Values below 5 minutes == 300 seconds " +"are not supported" +msgstr "" + +msgid "" +"Interval to force updates send to DDNS Provider<br />Setting this parameter " +"to 0 will force the script to only run once<br />Values lower 'Check " +"Interval' except '0' are not supported" +msgstr "" + +msgid "It is NOT recommended for casual users to change settings on this page." +msgstr "Det är INTE rekommenderat för vanliga användare att ändra inställningar på den här sidan." + +msgid "Last Update" +msgstr "Senaste uppdateringen" + +msgid "Loading" +msgstr "Laddar" + +msgid "Log File Viewer" +msgstr "Visare för loggfil" + +msgid "Log directory" +msgstr "" + +msgid "Log length" +msgstr "Loggens längd" + +msgid "Log to file" +msgstr "Logga till fil" + +msgid "Log to syslog" +msgstr "Logga till syslog" + +msgid "Lookup Hostname" +msgstr "Kolla upp värdnamn" + +msgid "NOT installed" +msgstr "INTE installerad" + +msgid "" +"Neither GNU Wget with SSL nor cURL installed to select a network to use for " +"communication." +msgstr "" + +msgid "" +"Neither GNU Wget with SSL nor cURL installed to support secure updates via " +"HTTPS protocol." +msgstr "" + +msgid "Network" +msgstr "Nätverk" + +msgid "Network on which the ddns-updater scripts will be started" +msgstr "" + +msgid "Never" +msgstr "Aldrig" + +msgid "Next Update" +msgstr "Nästa uppdatering" + +msgid "No certificates found" +msgstr "Inga ceritifikat hittades" + +msgid "No data" +msgstr "Ingen data" + +msgid "No logging" +msgstr "Ingen loggning" + +msgid "Non-public and by default blocked IP's" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Number of last lines stored in log files" +msgstr "" + +msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication." +msgstr "" + +msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests." +msgstr "" + +msgid "OPTIONAL: Network to use for communication" +msgstr "" + +msgid "OPTIONAL: Proxy-Server for detection and updates." +msgstr "" + +msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'." +msgstr "" + +msgid "On Error the script will retry the failed action after given time" +msgstr "" + +msgid "On Error the script will stop execution after given number of retrys" +msgstr "" + +msgid "OpenWrt Wiki" +msgstr "Wiki för OpenWrt" + +msgid "Optional Encoded Parameter" +msgstr "" + +msgid "Optional Parameter" +msgstr "Valfri parameter" + +msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)" +msgstr "" + +msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)" +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "PROXY-Server" +msgstr "PROXY-server" + +msgid "PROXY-Server not supported" +msgstr "PROXY-servern stöds inte" + +msgid "Password" +msgstr "Lösenord" + +msgid "Path to CA-Certificate" +msgstr "" + +msgid "Please [Save & Apply] your changes first" +msgstr "Vänligen [Spara & Verkställ] dina ändringar först" + +msgid "Please press [Read] button" +msgstr "Vänligen tryck på [Läs]-knappen" + +msgid "Please update to the current version!" +msgstr "Vänligen uppdatera till den senaste versionen!" + +msgid "Process ID" +msgstr "" + +msgid "Read / Reread log file" +msgstr "Läs / Läs om loggfilen" + +msgid "Really change DDNS provider?" +msgstr "" + +msgid "Registered IP" +msgstr "Registrerad IP" + +msgid "Replaces [DOMAIN] in Update-URL" +msgstr "" + +msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)" +msgstr "" + +msgid "Replaces [USERNAME] in Update-URL (URL-encoded)" +msgstr "" + +msgid "Run once" +msgstr "Kör en gång" + +msgid "Script" +msgstr "Skript" + +msgid "Show more" +msgstr "Visa mer" + +msgid "Software update required" +msgstr "" + +msgid "Specifying a DNS-Server is not supported" +msgstr "" + +msgid "Start" +msgstr "Starta" + +msgid "Start / Stop" +msgstr "Starta / Stoppa" + +msgid "Status directory" +msgstr "" + +msgid "Stopped" +msgstr "Stoppad" + +msgid "" +"The currently installed 'ddns-scripts' package did not support all available " +"settings." +msgstr "" + +msgid "The default setting of '0' will retry infinite." +msgstr "" + +msgid "There is no service configured." +msgstr "Det finns ingen tjänst inställd." + +msgid "Timer Settings" +msgstr "" + +msgid "To change global settings click here" +msgstr "Klicka här för att ändra på globala inställningar" + +msgid "To use cURL activate this option." +msgstr "" + +msgid "URL" +msgstr "Webbadress" + +msgid "URL to detect" +msgstr "Webbadress att upptäcka" + +msgid "Unknown error" +msgstr "Okänt fel" + +msgid "" +"Update URL to be used for updating your DDNS Provider.<br />Follow " +"instructions you will find on their WEB page." +msgstr "" + +msgid "Update error" +msgstr "Uppdateringsfel" + +msgid "Use HTTP Secure" +msgstr "Använd Säker HTTP" + +msgid "Use cURL" +msgstr "Använd cURL" + +msgid "User defined script to read systems IP-Address" +msgstr "" + +msgid "Username" +msgstr "Användarnamn" + +msgid "Using specific DNS Server not supported" +msgstr "" + +msgid "Verify" +msgstr "Verkställ" + +msgid "Version" +msgstr "Version" + +msgid "Version Information" +msgstr "Information om versionen" + +msgid "Waiting for changes to be applied..." +msgstr "Väntar på att ändringarna ska bli verkställda..." + +msgid "Warning" +msgstr "Varning" + +msgid "" +"Writes detailed messages to log file. File will be truncated automatically." +msgstr "" + +msgid "" +"Writes log messages to syslog. Critical Errors will always be written to " +"syslog." +msgstr "" + +msgid "" +"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' " +"package, if you need to specify a DNS server to detect your registered IP." +msgstr "" + +msgid "" +"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS " +"requests." +msgstr "" + +msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package." +msgstr "" + +msgid "" +"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-" +"*ssl' package." +msgstr "" + +msgid "You should install 'wget' or 'curl' package." +msgstr "" + +msgid "" +"You should install 'wget' or 'uclient-fetch' package or replace libcurl." +msgstr "" + +msgid "cURL is installed, but libcurl was compiled without proxy support." +msgstr "" + +msgid "cURL without Proxy Support" +msgstr "cURL utan Proxy-stöd" + +msgid "can not detect local IP. Please select a different Source combination" +msgstr "kan inte upptäcka lokal IP-adress. Vänligen välj en annorlunda Käll-kombination" + +msgid "can not resolve host:" +msgstr "kan inte avgöra värd:" + +msgid "config error" +msgstr "konfigurationsfel" + +msgid "days" +msgstr "dagar" + +msgid "directory or path/file" +msgstr "" + +msgid "either url or script could be set" +msgstr "kunde varken fastställa webbadress eller skript" + +msgid "enable here" +msgstr "aktivera här" + +msgid "file or directory not found or not 'IGNORE'" +msgstr "" + +msgid "help" +msgstr "hjälp" + +msgid "hours" +msgstr "timmar" + +msgid "installed" +msgstr "installerad" + +msgid "invalid FQDN / required - Sample" +msgstr "ogiltig FQDN / behövs - Urval" + +msgid "minimum value '0'" +msgstr "minimalt värde '0'" + +msgid "minimum value '1'" +msgstr "minimalt värde '1'" + +msgid "minimum value 5 minutes == 300 seconds" +msgstr "minimalt värde 5 minuter == 300 sekunder" + +msgid "minutes" +msgstr "minutrar" + +msgid "missing / required" +msgstr "saknas / behövs" + +msgid "must be greater or equal 'Check Interval'" +msgstr "" + +msgid "must start with 'http://'" +msgstr "måste börja med 'http://" + +msgid "nc (netcat) can not connect" +msgstr "nc (netcat) kan inte ansluta" + +msgid "never" +msgstr "aldrig" + +msgid "no data" +msgstr "ingen data" + +msgid "not found or not executable - Sample: '/path/to/script.sh'" +msgstr "" + +msgid "nslookup can not resolve host" +msgstr "" + +msgid "or" +msgstr "eller" + +msgid "or higher" +msgstr "eller större" + +msgid "please disable" +msgstr "vänligen inaktivera" + +msgid "please remove entry" +msgstr "vänligen ta bort inmatningen" + +msgid "please select 'IPv4' address version" +msgstr "vänligen välj version för 'IPv4'-adress" + +msgid "please select 'IPv4' address version in" +msgstr "" + +msgid "please set to 'default'" +msgstr "" + +msgid "proxy port missing" +msgstr "" + +msgid "required" +msgstr "behövs" + +msgid "seconds" +msgstr "sekunder" + +msgid "to run HTTPS without verification of server certificates (insecure)" +msgstr "för att köra HTTPS utan verifiering av server-certifikaten (osäkert)" + +msgid "unknown error" +msgstr "okänt fel" + +msgid "unspecific error" +msgstr "ospecifierat fel" + +msgid "use hostname, FQDN, IPv4- or IPv6-Address" +msgstr "använd värdnamn, FQDN, IPv4- eller IPv6-adress" diff --git a/applications/luci-app-diag-core/po/sv/diag_core.po b/applications/luci-app-diag-core/po/sv/diag_core.po index dd0a81a644..b5679655d0 100644 --- a/applications/luci-app-diag-core/po/sv/diag_core.po +++ b/applications/luci-app-diag-core/po/sv/diag_core.po @@ -10,10 +10,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Configure Diagnostics" -msgstr "" +msgstr "Ställ in diagnostik" msgid "Diagnostics" -msgstr "" +msgstr "Diagnostik" msgid "" "The diagnostics available under this menu depend on what modules you have " @@ -29,3 +29,5 @@ msgid "" "With this menu you can configure network diagnostics, such as network device " "scans and ping tests." msgstr "" +"Med den här menyn så kan du ställa in nätverksdiagnostik så som igenomsökningar och " +"ping-tester för nätverksenheten." diff --git a/applications/luci-app-firewall/Makefile b/applications/luci-app-firewall/Makefile index 21804d7c2d..4fa85f2d5b 100644 --- a/applications/luci-app-firewall/Makefile +++ b/applications/luci-app-firewall/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Firewall and Portforwarding application LUCI_DEPENDS:=+firewall +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-firewall/po/sv/firewall.po b/applications/luci-app-firewall/po/sv/firewall.po index 2e169fb927..777c81787d 100644 --- a/applications/luci-app-firewall/po/sv/firewall.po +++ b/applications/luci-app-firewall/po/sv/firewall.po @@ -10,43 +10,43 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "%s in %s" -msgstr "" +msgstr "%s i %s" msgid "%s%s with %s" -msgstr "" +msgstr "%s%s med %s" msgid "%s, %s in %s" -msgstr "" +msgstr "%2, %s i %s" msgid "(Unnamed Entry)" -msgstr "" +msgstr "(Namnlös post)" msgid "(Unnamed Rule)" -msgstr "" +msgstr "(Namnlös regel)" msgid "(Unnamed SNAT)" -msgstr "" +msgstr "(Namnlös SNAT)" msgid "<var>%d</var> pkts. per <var>%s</var>" -msgstr "" +msgstr "<var>%d</var> pkt. per <var>%s</var>" msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts." -msgstr "" +msgstr "<var>%d</var> pkt. per <var>%s</var>, brustna <var>%d</var> pkt." msgid "<var>%s</var> and limit to %s" -msgstr "" +msgstr "<var>%s</var> och gränsen till %s" msgid "Action" -msgstr "" +msgstr "Åtgärd" msgid "Add" -msgstr "" +msgstr "Lägg till" msgid "Add and edit..." -msgstr "" +msgstr "Lägg till och redigera..." msgid "Advanced Settings" -msgstr "" +msgstr "Avancerade inställningar" msgid "Allow forward from <em>source zones</em>:" msgstr "" @@ -55,13 +55,13 @@ msgid "Allow forward to <em>destination zones</em>:" msgstr "" msgid "Any" -msgstr "" +msgstr "Alla" msgid "Covered networks" -msgstr "" +msgstr "Nätverk som omfattas" msgid "Custom Rules" -msgstr "" +msgstr "Anpassade regler" msgid "" "Custom rules allow you to execute arbritary iptables commands which are not " @@ -73,22 +73,22 @@ msgid "Destination IP address" msgstr "" msgid "Destination address" -msgstr "" +msgstr "Destinationsadress" msgid "Destination port" -msgstr "" +msgstr "Destinationsport" msgid "Destination zone" msgstr "" msgid "Do not rewrite" -msgstr "" +msgstr "Skriv inte om igen" msgid "Drop invalid packets" -msgstr "" +msgstr "Släpp ogiltiga paket" msgid "Enable" -msgstr "" +msgstr "Aktivera" msgid "Enable NAT Loopback" msgstr "" @@ -100,22 +100,22 @@ msgid "Enable logging on this zone" msgstr "" msgid "External IP address" -msgstr "" +msgstr "Extern IP-adress" msgid "External port" -msgstr "" +msgstr "Extern port" msgid "External zone" -msgstr "" +msgstr "Extern zon" msgid "Extra arguments" -msgstr "" +msgstr "Extra argument" msgid "Firewall" -msgstr "" +msgstr "Brandvägg" msgid "Firewall - Custom Rules" -msgstr "" +msgstr "Brandvägg - Anpassade regler" msgid "Firewall - Port Forwards" msgstr "" @@ -130,16 +130,16 @@ msgid "Force connection tracking" msgstr "" msgid "Forward" -msgstr "" +msgstr "Vidarebefordra" msgid "Forward to" -msgstr "" +msgstr "Vidarebefordra till" msgid "Friday" -msgstr "" +msgstr "Fredag" msgid "From %s in %s" -msgstr "" +msgstr "Från %s i %s" msgid "From %s in %s with source %s" msgstr "" @@ -148,40 +148,40 @@ msgid "From %s in %s with source %s and %s" msgstr "" msgid "General Settings" -msgstr "" +msgstr "Generella inställningar" msgid "IPv4" -msgstr "" +msgstr "IPv4" msgid "IPv4 and IPv6" -msgstr "" +msgstr "IPv4 och IPv6" msgid "IPv4 only" -msgstr "" +msgstr "Endast IPv4" msgid "IPv6" -msgstr "" +msgstr "IPv6" msgid "IPv6 only" -msgstr "" +msgstr "Endast IPv6" msgid "Input" -msgstr "" +msgstr "Inmatning" msgid "Inter-Zone Forwarding" msgstr "" msgid "Internal IP address" -msgstr "" +msgstr "Intern IP-adress" msgid "Internal port" -msgstr "" +msgstr "Intern port" msgid "Internal zone" -msgstr "" +msgstr "Intern zon" msgid "Limit log messages" -msgstr "" +msgstr "Begränsa loggmeddelanden" msgid "MSS clamping" msgstr "" @@ -190,7 +190,7 @@ msgid "Masquerading" msgstr "" msgid "Match" -msgstr "" +msgstr "Matcha" msgid "Match ICMP type" msgstr "" @@ -209,22 +209,22 @@ msgid "" msgstr "" msgid "Monday" -msgstr "" +msgstr "Måndag" msgid "Month Days" msgstr "" msgid "Name" -msgstr "" +msgstr "Namn" msgid "New SNAT rule" -msgstr "" +msgstr "Ny SNAT-regel" msgid "New forward rule" -msgstr "" +msgstr "Ny vidarebefordningsregel" msgid "New input rule" -msgstr "" +msgstr "Ny inmatningsregel" msgid "New port forward" msgstr "" @@ -247,13 +247,13 @@ msgid "" msgstr "" msgid "Open ports on router" -msgstr "" +msgstr "Öppna portar i router" msgid "Other..." -msgstr "" +msgstr "Andra..." msgid "Output" -msgstr "" +msgstr "Utmatning" msgid "Passes additional arguments to iptables. Use with care!" msgstr "" @@ -267,7 +267,7 @@ msgid "" msgstr "" msgid "Protocol" -msgstr "" +msgstr "Protokoll" msgid "" "Redirect matched incoming traffic to the given port on the internal host" @@ -277,7 +277,7 @@ msgid "Redirect matched incoming traffic to the specified internal host" msgstr "" msgid "Restart Firewall" -msgstr "" +msgstr "Starta om brandvägg" msgid "Restrict Masquerading to given destination subnets" msgstr "" @@ -286,7 +286,7 @@ msgid "Restrict Masquerading to given source subnets" msgstr "" msgid "Restrict to address family" -msgstr "" +msgstr "Begränsa till adressfamilj" msgid "Rewrite matched traffic to the given address." msgstr "" @@ -297,25 +297,25 @@ msgid "" msgstr "" msgid "Rewrite to source %s" -msgstr "" +msgstr "Skriv om igen till källan %s" msgid "Rewrite to source %s, %s" msgstr "" msgid "SNAT IP address" -msgstr "" +msgstr "IP-adress för SNAT" msgid "SNAT port" -msgstr "" +msgstr "SNAT-port" msgid "Saturday" -msgstr "" +msgstr "Lördag" msgid "Source IP address" -msgstr "" +msgstr "IP-adress för källa" msgid "Source MAC address" -msgstr "" +msgstr "MAC-adress för källa" msgid "Source NAT" msgstr "" @@ -336,19 +336,19 @@ msgid "Source zone" msgstr "" msgid "Start Date (yyyy-mm-dd)" -msgstr "" +msgstr "Startdatum (åååå-mm-dd)" msgid "Start Time (hh:mm:ss)" -msgstr "" +msgstr "Starttid (tt:mm:ss)" msgid "Stop Date (yyyy-mm-dd)" -msgstr "" +msgstr "Stopptid (åååå-mm-dd)" msgid "Stop Time (hh:mm:ss)" -msgstr "" +msgstr "Stopptid (tt:mm:ss)" msgid "Sunday" -msgstr "" +msgstr "Söndag" msgid "" "The firewall creates zones over your network interfaces to control network " @@ -383,22 +383,22 @@ msgid "" msgstr "" msgid "Thursday" -msgstr "" +msgstr "Torsdag" msgid "Time in UTC" -msgstr "" +msgstr "Tid enligt UTC" msgid "To %s at %s on <var>this device</var>" -msgstr "" +msgstr "Till %s vid %s på <var>den här enheten</var>" msgid "To %s in %s" -msgstr "" +msgstr "Till %s i %s" msgid "To %s on <var>this device</var>" -msgstr "" +msgstr "Till %s på <var>den här enheten</var>" msgid "To %s, %s in %s" -msgstr "" +msgstr "Till %s, %s i %s" msgid "To source IP" msgstr "" @@ -407,7 +407,7 @@ msgid "To source port" msgstr "" msgid "Traffic Rules" -msgstr "" +msgstr "Trafikregler" msgid "" "Traffic rules define policies for packets traveling between different zones, " @@ -416,19 +416,19 @@ msgid "" msgstr "" msgid "Tuesday" -msgstr "" +msgstr "Tisdag" msgid "Via %s" -msgstr "" +msgstr "Via %s" msgid "Via %s at %s" msgstr "" msgid "Wednesday" -msgstr "" +msgstr "Onsdag" msgid "Week Days" -msgstr "" +msgstr "Veckodagar" msgid "" "You may specify multiple by selecting \"-- custom --\" and then entering " @@ -436,37 +436,37 @@ msgid "" msgstr "" msgid "Zone %q" -msgstr "" +msgstr "Zon %q" msgid "Zone ⇒ Forwardings" msgstr "" msgid "Zones" -msgstr "" +msgstr "Zoner" msgid "accept" -msgstr "" +msgstr "acceptera" msgid "any" -msgstr "" +msgstr "alla" msgid "any host" -msgstr "" +msgstr "alla värdar" msgid "any router IP" msgstr "" msgid "any zone" -msgstr "" +msgstr "alla zoner" msgid "don't track" -msgstr "" +msgstr "spåra inte" msgid "drop" -msgstr "" +msgstr "släpp" msgid "reject" -msgstr "" +msgstr "neka" msgid "traffic" -msgstr "" +msgstr "trafik" diff --git a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua index d3fd150692..ca39c9bf30 100644 --- a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua +++ b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua @@ -3,7 +3,7 @@ module("luci.controller.mwan3", package.seeall) sys = require "luci.sys" ut = require "luci.util" -ip = "/usr/bin/ip -4 " +ip = "ip -4 " function index() if not nixio.fs.access("/etc/config/mwan3") then diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua index 7e863a371f..604a4fa842 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua @@ -112,7 +112,7 @@ mwan_interface = m5:section(TypedSection, "interface", translate("Interfaces"), mwan_interface.addremove = true mwan_interface.dynamic = false mwan_interface.sectionhead = "Interface" - mwan_interface.sortable = true + mwan_interface.sortable = false mwan_interface.template = "cbi/tblsection" mwan_interface.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "interface", "%s") function mwan_interface.create(self, section) diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua index e7c16fdfdc..2b46376399 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua @@ -107,9 +107,9 @@ family = mwan_interface:option(ListValue, "family", translate("Internet Protocol family:value("ipv4", translate("IPv4")) family:value("ipv6", translate("IPv6")) -track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking IP"), - translate("This IP address will be pinged to dermine if the link is up or down. Leave blank to assume interface is always online")) - track_ip.datatype = "ipaddr" +track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking hostname or IP address"), + translate("This hostname or IP address will be pinged to determine if the link is up or down. Leave blank to assume interface is always online")) + track_ip.datatype = "host" reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"), translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up")) diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm index 14d404bc7c..6f350ccf4d 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm @@ -93,20 +93,6 @@ </div> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin-left: 30px; - padding-right: 30px; - width: auto; - } - #mwan_diagnostics { - background-color: #FFFFFF; - border: 1px dotted #555555; - padding: 20px; - } - #diag_select { - padding: 12px 20px 20px 20px; - } #mwaniface { float: left; margin: 8px 20px 0px 0px; diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm index 4c2a0dc208..10b4f10558 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm @@ -8,17 +8,7 @@ </ul> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin: 0px 0px 0px 30px; - padding-right: 30px; - width: auto; - } - .cbi-section-node { - margin-top: 20px; - } .cbi-section { - border: 1px dotted #555555; padding: 20px; } </style> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm index fba3fa6940..20ae6036fc 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm @@ -8,17 +8,7 @@ </ul> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin: 0px 0px 0px 30px; - padding-right: 30px; - width: auto; - } - .cbi-section-node { - margin-top: 20px; - } .cbi-section { - border: 1px dotted #555555; padding: 20px; } </style> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm index cf90112078..bed43107c0 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm @@ -8,17 +8,7 @@ </ul> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin: 0px 0px 0px 30px; - padding-right: 30px; - width: auto; - } - .cbi-section-node { - margin-top: 20px; - } .cbi-section { - border: 1px dotted #555555; padding: 20px; } </style> diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm index 0a12496899..21f516b7c2 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm @@ -51,17 +51,6 @@ </div> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin-left: 30px; - padding-right: 30px; - width: auto; - } - #troubleshoot { - background-color: #FFFFFF; - border: 1px dotted #555555; - padding: 20px; - } #troubleshoot_text { padding: 20px; text-align: left; diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm b/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm index 99da4875b0..5d91c536eb 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm @@ -1,10 +1,4 @@ <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin-left: 30px; - padding-right: 30px; - width: auto; - } table td { /* cells showing the configuration values */ padding: 0px; text-align: center; diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm b/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm index 9329b92735..84b1245021 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm @@ -53,9 +53,6 @@ .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ max-width: 1044px; } - #interface_field { - padding: 12px 20px 20px 20px; - } #mwan_status_text { display: table; font-size: 14px; diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm index b80b9f3acf..bbb617b289 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm @@ -31,17 +31,6 @@ </div> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin-left: 30px; - padding-right: 30px; - width: auto; - } - #mwan_detail_status { - border: 1px dotted #555555; - background-color: #FFFFFF; - padding: 20px; - } #mwan_detail_text { padding: 20px; text-align: left; diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm index 472c7ce7fc..f4c8b1224b 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm @@ -75,20 +75,6 @@ </div> <style type="text/css"> - .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */ - max-width: none; - margin-left: 30px; - padding-right: 30px; - width: auto; - } - #mwan_interface_status { - background-color: #FFFFFF; - border: 1px dotted #555555; - padding: 20px; - } - #interface_field { - padding: 12px 20px 20px 20px; - } #mwan_status_text { display: table; font-size: 14px; diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po index cae45b8a2f..834a82053c 100644 --- a/applications/luci-app-mwan3/po/ja/mwan3.po +++ b/applications/luci-app-mwan3/po/ja/mwan3.po @@ -7,7 +7,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0\n" +"X-Generator: Poedit 2.0.2\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" @@ -362,11 +362,12 @@ msgid "There are currently %d of 250 supported interfaces configured" msgstr "現在、250個中 %d 個のサポートされたインターフェースが設定済みです。" msgid "" -"This IP address will be pinged to dermine if the link is up or down. Leave " -"blank to assume interface is always online" +"This hostname or IP address will be pinged to determine if the link is up or " +"down. Leave blank to assume interface is always online" msgstr "" -"これらは、リンクの Up または Down を判定するために Ping が送信されるIP アドレ" -"スです。常にオンラインとする場合、空欄のままにします。" +"リンクの Up または Down 状態を判定するために、このホスト名または IP アドレス" +"に対して Ping の送信が行われます。常にオンラインとする場合、空欄のままにしま" +"す。" msgid "" "This displays the metric assigned to this interface in /etc/config/network" @@ -405,6 +406,9 @@ msgstr "" "wan2, その他)<br />$DEVICE - インターフェースにアタッチされたデバイスの名前" "(eth0.1, eth1, その他)" +msgid "Tracking hostname or IP address" +msgstr "追跡ホスト名または IP アドレス" + msgid "Tracking IP" msgstr "追跡 IP" @@ -560,3 +564,10 @@ msgstr "never" msgid "unreachable (reject)" msgstr "unreachable (reject)" + +#~ msgid "" +#~ "This IP address will be pinged to dermine if the link is up or down. " +#~ "Leave blank to assume interface is always online" +#~ msgstr "" +#~ "これらは、リンクの Up または Down を判定するために Ping が送信されるIP ア" +#~ "ドレスです。常にオンラインとする場合、空欄のままにします。" diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot index 0bda248fae..3040d2661a 100644 --- a/applications/luci-app-mwan3/po/templates/mwan3.pot +++ b/applications/luci-app-mwan3/po/templates/mwan3.pot @@ -312,8 +312,8 @@ msgid "There are currently %d of 250 supported interfaces configured" msgstr "" msgid "" -"This IP address will be pinged to dermine if the link is up or down. Leave " -"blank to assume interface is always online" +"This hostname or IP address will be pinged to determine if the link is up or " +"down. Leave blank to assume interface is always online" msgstr "" msgid "" @@ -340,6 +340,9 @@ msgid "" "device name attached to the interface (eth0.1, eth1, etc.)" msgstr "" +msgid "Tracking hostname or IP address" +msgstr "" + msgid "Tracking IP" msgstr "" diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po index b8948b3163..d1066c5850 100644 --- a/applications/luci-app-mwan3/po/zh-cn/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po @@ -348,11 +348,9 @@ msgid "There are currently %d of 250 supported interfaces configured" msgstr "" msgid "" -"This IP address will be pinged to dermine if the link is up or down. Leave " -"blank to assume interface is always online" +"This hostname or IP address will be pinged to determine if the link is up or " +"down. Leave blank to assume interface is always online" msgstr "" -"MWAN 将会通过 Ping 这些 IP 地址来确定接口是否上线。如果留空,则 MWAN 认为该接" -"口永远在线" msgid "" "This displays the metric assigned to this interface in /etc/config/network" @@ -384,6 +382,9 @@ msgstr "" "$INTERFACE 是接口名称 (wan1、wan2 等)<br />$DEVICE 是连接到接口的设备名称 " "(eth0.1、eth1 等)" +msgid "Tracking hostname or IP address" +msgstr "" + msgid "Tracking IP" msgstr "跟踪的 IP" @@ -508,3 +509,10 @@ msgstr "从不" msgid "unreachable (reject)" msgstr "不可达 (拒绝)" + +#~ msgid "" +#~ "This IP address will be pinged to dermine if the link is up or down. " +#~ "Leave blank to assume interface is always online" +#~ msgstr "" +#~ "MWAN 将会通过 Ping 这些 IP 地址来确定接口是否上线。如果留空,则 MWAN 认为" +#~ "该接口永远在线" diff --git a/applications/luci-app-privoxy/Makefile b/applications/luci-app-privoxy/Makefile index e174c807b8..486cf0ee74 100644 --- a/applications/luci-app-privoxy/Makefile +++ b/applications/luci-app-privoxy/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2008-2015 The LuCI Team <luci@lists.subsignal.org> +# Copyright (C) 2008-2017 The LuCI Team <luci@lists.subsignal.org> # # This is free software, licensed under the Apache License, Version 2.0 . # @@ -14,10 +14,10 @@ PKG_VERSION:=1.0.6 # Release == build # increase on changes of translation files -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=Apache-2.0 -PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com> +PKG_MAINTAINER:= # LuCI specific settings LUCI_TITLE:=LuCI Support for Privoxy WEB proxy @@ -30,7 +30,6 @@ help $(LUCI_TITLE) . Version: $(PKG_VERSION)-$(PKG_RELEASE) - $(PKG_MAINTAINER) endef include ../../luci.mk diff --git a/applications/luci-app-qos/Makefile b/applications/luci-app-qos/Makefile index dd322a347a..fd12557453 100644 --- a/applications/luci-app-qos/Makefile +++ b/applications/luci-app-qos/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Quality of Service configuration module LUCI_DEPENDS:=+qos-scripts +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua index 76435e2f14..97ce83f771 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua @@ -137,13 +137,14 @@ o:value("2", translate("Allow all except listed")) o.default = 0 o.rmempty = false -a = luci.sys.net.arptable() or {} - o = s:taboption("lan_ac", DynamicList, "lan_ac_ip", translate("LAN IP List")) o.datatype = "ipaddr" -for i,v in ipairs(a) do - o:value(v["IP address"]) -end + +luci.ip.neighbors({ family = 4 }, function(entry) + if entry.reachable then + o:value(entry.dest:string()) + end +end) s:tab("wan_ac", translate("WAN")) diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua index 1bc0714de8..ec26f02d0d 100644 --- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua +++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua @@ -23,6 +23,7 @@ function index() s_general = _("General plugins"), s_network = _("Network plugins"), + apcups = _("APC UPS"), conntrack = _("Conntrack"), contextswitch = _("Context Switches"), cpu = _("Processor"), @@ -59,8 +60,8 @@ function index() -- our collectd menu local collectd_menu = { output = { "csv", "network", "rrdtool", "unixsock" }, - general = { "contextswitch", "cpu", "cpufreq", "df", "disk", "email", - "entropy", "exec", "irq", "load", "memory", + general = { "apcups", "contextswitch", "cpu", "cpufreq", "df", + "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "thermal", "uptime" }, network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", @@ -88,7 +89,7 @@ function index() _entry( { "admin", "statistics", "collectd", section, plugin }, cbi("luci_statistics/" .. plugin ), - labels[plugin], j * 10 + labels[plugin] or plugin, j * 10 ) end diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua new file mode 100644 index 0000000000..49e28c7cfd --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/apcups.lua @@ -0,0 +1,28 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +m = Map("luci_statistics", + translate("APCUPS Plugin Configuration"), + translate( + "The APCUPS plugin collects statistics about the APC UPS." + )) + +-- collectd_apcups config section +s = m:section( NamedSection, "collectd_apcups", "luci_statistics" ) + +-- collectd_apcups.enable +enable = s:option( Flag, "enable", translate("Enable this plugin") ) +enable.default = 0 + +-- collectd_apcups.host (Host) +host = s:option( Value, "Host", translate("Monitor host"), translate ("Add multiple hosts separated by space.")) +host.default = "localhost" +host:depends( "enable", 1 ) + +-- collectd_apcups.port (Port) +port = s:option( Value, "Port", translate("Port for apcupsd communication") ) +port.isinteger = true +port.default = 3551 +port:depends( "enable", 1 ) + +return m diff --git a/applications/luci-app-statistics/luasrc/statistics/datatree.lua b/applications/luci-app-statistics/luasrc/statistics/datatree.lua index 806b054cb6..5176a19a22 100644 --- a/applications/luci-app-statistics/luasrc/statistics/datatree.lua +++ b/applications/luci-app-statistics/luasrc/statistics/datatree.lua @@ -13,9 +13,17 @@ local sections = uci:get_all("luci_statistics") Instance = util.class() function Instance.__init__( self, host ) - self._host = host or sections.collectd.Hostname or sys.hostname() - self._libdir = sections.collectd.PluginDir or "/usr/lib/collectd" - self._rrddir = sections.collectd_rrdtool.DataDir or "/tmp/rrd" + self._host = host or sys.hostname() + self._libdir = "/usr/lib/collectd" + self._rrddir = "/tmp/rrd" + + if sections and sections.collectd then + self._host = host or sections.collectd.Hostname or sys.hostname() + self._libdir = sections.collectd.PluginDir or "/usr/lib/collectd" + end + if sections and sections.collectd_rrdtool then + self._rrddir = sections.collectd_rrdtool.DataDir or "/tmp/rrd" + end self._libdir = self._libdir:gsub("/$","") self._rrddir = self._rrddir:gsub("/$","") diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua index 4e00e7f1fc..e29a2e17d9 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua @@ -278,7 +278,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index ) -- create line1 statement _tif( _args, "LINE%d:%s_%s#%s:%s", - source.noarea and 2 or 1, + source.width or (source.noarea and 2 or 1), source.sname, var, line_color, legend ) end diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua new file mode 100644 index 0000000000..04eee93051 --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/apcups.lua @@ -0,0 +1,101 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +module("luci.statistics.rrdtool.definitions.apcups",package.seeall) + +function rrdargs( graph, plugin, plugin_instance, dtype ) + + local voltages = { + title = "%H: Voltages on APC UPS ", + vlabel = "V", + number_format = "%5.1lfV", + data = { + instances = { + voltage = { "battery", "input", "output" } + }, + + options = { + voltage_output = { color = "00e000", title = "Output voltage", noarea=true, overlay=true }, + voltage_battery = { color = "0000ff", title = "Battery voltage", noarea=true, overlay=true }, + voltage_input = { color = "ffb000", title = "Input voltage", noarea=true, overlay=true } + } + } + } + + local percentload = { + title = "%H: Load on APC UPS ", + vlabel = "Percent", + y_min = "0", + y_max = "100", + number_format = "%5.1lf%%", + data = { + sources = { + percent_load = { "value" } + }, + instances = { + percent = "load" + }, + options = { + percent_load = { color = "00ff00", title = "Load level" } + } + } + } + + local charge_percent = { + title = "%H: Battery charge on APC UPS ", + vlabel = "Percent", + y_min = "0", + y_max = "100", + number_format = "%5.1lf%%", + data = { + types = { "charge" }, + options = { + charge = { color = "00ff0b", title = "Charge level" } + } + } + } + + local temperature = { + title = "%H: Battery temperature on APC UPS ", + vlabel = "\176C", + number_format = "%5.1lf\176C", + data = { + types = { "temperature" }, + options = { + temperature = { color = "ffb000", title = "Battery temperature" } } + } + } + + local timeleft = { + title = "%H: Time left on APC UPS ", + vlabel = "Minutes", + number_format = "%.1lfm", + data = { + sources = { + timeleft = { "value" } + }, + options = { + timeleft = { color = "0000ff", title = "Time left" } + } + } + } + + local frequency = { + title = "%H: Incoming line frequency on APC UPS ", + vlabel = "Hz", + number_format = "%5.0lfhz", + data = { + sources = { + frequency_input = { "value" } + }, + instances = { + frequency = "frequency" + }, + options = { + frequency_frequency = { color = "000fff", title = "Line frequency" } + } + } + } + + return { voltages, percentload, charge_percent, temperature, timeleft, frequency } +end diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics index c081a8e724..8cc918e3db 100644 --- a/applications/luci-app-statistics/root/etc/config/luci_statistics +++ b/applications/luci-app-statistics/root/etc/config/luci_statistics @@ -49,6 +49,11 @@ config statistics 'collectd_unixsock' # input plugins +config statistics 'collectd_apcups' + option enable '0' + option Host 'localhost' + option Port '3551' + config statistics 'collectd_conntrack' option enable '0' diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig index 090344cee4..2bf63c1fe6 100755 --- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig +++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig @@ -255,6 +255,12 @@ end plugins = { + apcups = { + { "Host", "Port" }, + { }, + { } + }, + collectd = { { "BaseDir", "Include", "PIDFile", "PluginDir", "TypesDB", "Interval", "ReadThreads", "Hostname" }, { }, @@ -461,8 +467,10 @@ preprocess = { section("collectd") +section("logfile") + for plugin in pairs(plugins) do - if plugin ~= "collectd" then + if (plugin ~= "collectd") and (plugin ~= "logfile") then section( plugin ) end end diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua index 847c98a3e8..bfaacb40bc 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua @@ -3,8 +3,20 @@ -- Copyright 2016 Dan Luedtke <mail@danrl.com> -- Licensed to the public under the Apache License 2.0. +local m +local s1 +local ena, mcf, lsv, rlh, rpv, vld, nvd, eds, prt, tlm +local ctl, dlk, dom, dty, lfq, wfq, exa, ctl, d64, pfx, qry, qrs +local pro, tgr, rsc, rsn, ag2 + m = Map("unbound", translate("Recursive DNS"), - translate("Unbound is a validating, recursive, and caching DNS resolver.")) + translatef("<a href=\"%s\" target=\"_blank\">Unbound</a>" + .. " is a validating, recursive, and caching DNS resolver. " + .. "UCI help can be found on " + .. "<a href=\"%s\" target=\"_blank\">github</a>.", + "https://www.unbound.net/", + "https://github.com/openwrt/packages/blob/master/net/unbound/files/README.md")) + s1 = m:section(TypedSection, "unbound") s1.addremove = false @@ -24,19 +36,19 @@ mcf = s1:taboption("service", Flag, "manual_conf", translate("Manual Conf:"), mcf.rmempty = false function ena.cfgvalue(self, section) - return luci.sys.init.enabled("unbound") and self.enabled or self.disabled + return luci.sys.init.enabled("unbound") and self.enabled or self.disabled end function ena.write(self, section, value) - if value == "1" then - luci.sys.init.enable("unbound") - luci.sys.call("/etc/init.d/unbound start >/dev/null") - else - luci.sys.call("/etc/init.d/unbound stop >/dev/null") - luci.sys.init.disable("unbound") - end - - return Flag.write(self, section, value) + if value == "1" then + luci.sys.init.enable("unbound") + luci.sys.call("/etc/init.d/unbound start >/dev/null") + else + luci.sys.call("/etc/init.d/unbound stop >/dev/null") + luci.sys.init.disable("unbound") + end + + return Flag.write(self, section, value) end --Basic Tab @@ -125,6 +137,15 @@ wfq:value("4", translate("Interface FQDN, All Addresses")) wfq:depends({ dhcp_link = "none" }) wfq:depends({ dhcp_link = "odhcpd" }) +exa = s1:taboption("advanced", ListValue, "add_extra_dns", translate("Extra DNS:"), + translate("Use extra DNS entries found in /etc/config/dhcp")) +exa:value("0", translate("Ignore")) +exa:value("1", translate("Include Network/Hostnames")) +exa:value("2", translate("Advanced MX/SRV RR")) +exa:value("3", translate("Advanced CNAME RR")) +exa:depends({ dhcp_link = "none" }) +exa:depends({ dhcp_link = "odhcpd" }) + ctl = s1:taboption("advanced", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"), translate("Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)")) ctl.rmempty = false @@ -179,11 +200,17 @@ rsc.rmempty = false ag2 = s1:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"), translate("Limit days between RFC5011 to reduce flash writes")) ag2.datatype = "and(uinteger,min(1),max(99))" -ag2:value("14", "14") -ag2:value("28", "28 ("..translate("default")..")") -ag2:value("45", "45") -ag2:value("90", "90") +ag2:value("3", "3") +ag2:value("9", "9 ("..translate("default")..")") +ag2:value("12", "12") +ag2:value("24", "24") ag2:value("99", "99 ("..translate("never")..")") +tgr = s1:taboption("resource", Value, "trigger", translate("Trigger Networks:"), + translate("Networks that may trigger Unbound to reload (avoid wan6)")) +tgr.template = "cbi/network_netlist" +tgr.widget = "checkbox" +tgr.cast = "string" + return m diff --git a/applications/luci-app-watchcat/po/sv/watchcat.po b/applications/luci-app-watchcat/po/sv/watchcat.po index 0b811bceea..07aa726493 100644 --- a/applications/luci-app-watchcat/po/sv/watchcat.po +++ b/applications/luci-app-watchcat/po/sv/watchcat.po @@ -19,6 +19,8 @@ msgid "" "How often to check internet connection. Default unit is seconds, you can you " "use the suffix 'm' for minutes, 'h' for hours or 'd' for days" msgstr "" +"Hur ofta internet-anslutningen ska kollas. Standardenheten är sekunder, du kan använda " +"tillägget 'm' för minutrar, 't' för timmar eller 'd' för dagar" msgid "" "In periodic mode, it defines the reboot period. In internet mode, it defines " @@ -28,7 +30,7 @@ msgid "" msgstr "" msgid "Operating mode" -msgstr "" +msgstr "Driftsläge" msgid "Period" msgstr "Period" @@ -37,7 +39,7 @@ msgid "Ping host" msgstr "Pinga värd" msgid "Ping period" -msgstr "" +msgstr "Period för pingning" msgid "Watchcat" msgstr "Watchcat" diff --git a/applications/luci-app-wifischedule/po/sv/wifischedule.po b/applications/luci-app-wifischedule/po/sv/wifischedule.po new file mode 100644 index 0000000000..ca4e5aac78 --- /dev/null +++ b/applications/luci-app-wifischedule/po/sv/wifischedule.po @@ -0,0 +1,101 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Activate wifi" +msgstr "Aktivera wifi" + +msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi" +msgstr "" + +msgid "Could not find required programm /usr/bin/iwinfo" +msgstr "" + +msgid "Cron Jobs" +msgstr "Cron-jobb" + +msgid "Day(s) of Week" +msgstr "Dag(ar) i veckan" + +msgid "Defines a schedule when to turn on and off wifi." +msgstr "Anger ett schema när wifi ska startas och stängas ner." + +msgid "Determine Modules Automatically" +msgstr "Avgör moduler automatiskt" + +msgid "Disable wifi gracefully" +msgstr "Inaktivera wifi elegant" + +msgid "Disabled wifi forced" +msgstr "Inaktivering av wifi påtvingat" + +msgid "Enable" +msgstr "Aktivera" + +msgid "Enable Wifi Schedule" +msgstr "Aktivera Wifi-schema" + +msgid "Enable logging" +msgstr "Aktivera loggning" + +msgid "Force disabling wifi even if stations associated" +msgstr "" + +msgid "Friday" +msgstr "Fredag" + +msgid "Global Settings" +msgstr "Globala inställningar" + +msgid "Monday" +msgstr "Måndag" + +msgid "Saturday" +msgstr "Lördag" + +msgid "Schedule" +msgstr "Schema" + +msgid "Schedule events" +msgstr "Schemalägg händelser" + +msgid "Start Time" +msgstr "Starttid" + +msgid "Start WiFi" +msgstr "Starta WiFi" + +msgid "Stop Time" +msgstr "Stopptid" + +msgid "Stop WiFi" +msgstr "Stoppa WiFi" + +msgid "Sunday" +msgstr "Söndag" + +msgid "The value %s is invalid" +msgstr "Värdet %s är ogiltigt" + +msgid "Thursday" +msgstr "Torsdag" + +msgid "Tuesday" +msgstr "Tisdag" + +msgid "Unload Modules (experimental; saves more power)" +msgstr "Befria moduler (experimentiell; sparar mer ström)" + +msgid "View Cron Jobs" +msgstr "Se Cron-jobb" + +msgid "View Logfile" +msgstr "Se loggfilen" + +msgid "Wednesday" +msgstr "Onsdag" + +msgid "Wifi Schedule" +msgstr "Wifi-schema" + +msgid "Wifi Schedule Logfile" +msgstr "Loggfil för Wifi-schema" diff --git a/applications/luci-app-wireguard/luasrc/view/wireguard.htm b/applications/luci-app-wireguard/luasrc/view/wireguard.htm index 5b5d59a969..5af6232ae6 100644 --- a/applications/luci-app-wireguard/luasrc/view/wireguard.htm +++ b/applications/luci-app-wireguard/luasrc/view/wireguard.htm @@ -17,22 +17,22 @@ data[line[1]] = { name = line[1], public_key = line[3], - listen_port = line[5], - fwmark = line[6], + listen_port = line[4], + fwmark = line[5], peers = { } } else local peer = { public_key = line[2], - endpoint = line[3], + endpoint = line[4], allowed_ips = { }, - latest_handshake = line[5], - transfer_rx = line[6], - transfer_tx = line[7], - persistent_keepalive = line[8] + latest_handshake = line[6], + transfer_rx = line[7], + transfer_tx = line[8], + persistent_keepalive = line[9] } if not (line[4] == '(none)') then - for ipkey, ipvalue in pairs(string.split(line[4], ",")) do + for ipkey, ipvalue in pairs(string.split(line[5], ",")) do if #ipvalue > 0 then table.insert(peer['allowed_ips'], ipvalue) end diff --git a/applications/luci-app-wireguard/po/sv/wireguard.po b/applications/luci-app-wireguard/po/sv/wireguard.po new file mode 100644 index 0000000000..b7e3ed5b58 --- /dev/null +++ b/applications/luci-app-wireguard/po/sv/wireguard.po @@ -0,0 +1,62 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Allowed IPs" +msgstr "Tillåtna IP-adresser" + +msgid "Collecting data..." +msgstr "Samlar in data..." + +msgid "Configuration" +msgstr "Konfiguration" + +msgid "Data Received" +msgstr "Mottagen data" + +msgid "Data Transmitted" +msgstr "Överförd data" + +msgid "Endpoint" +msgstr "Slutpunkt" + +msgid "Firewall Mark" +msgstr "" + +msgid "Interface" +msgstr "Gränssnitt" + +msgid "Interface does not have a public key!" +msgstr "Gränssnittet har inte en publik nyckel!" + +msgid "Latest Handshake" +msgstr "Senaste handskakning" + +msgid "Listen Port" +msgstr "Lyssningsport" + +msgid "Never" +msgstr "Aldrig" + +msgid "Peer" +msgstr "" + +msgid "Persistent Keepalive" +msgstr "" + +msgid "Public Key" +msgstr "Publik nyckel" + +msgid "WireGuard Status" +msgstr "Status för WireGuard" + +msgid "h ago" +msgstr "t sedan" + +msgid "m ago" +msgstr "m sedan" + +msgid "over a day ago" +msgstr "över en dag sedan" + +msgid "s ago" +msgstr "s sedan" diff --git a/applications/luci-app-wol/po/sv/wol.po b/applications/luci-app-wol/po/sv/wol.po index 5b3e923476..923d4fdbac 100644 --- a/applications/luci-app-wol/po/sv/wol.po +++ b/applications/luci-app-wol/po/sv/wol.po @@ -18,13 +18,13 @@ msgstr "" "använda" msgid "Host to wake up" -msgstr "Värd som ska väckas upp" +msgstr "Värd att väcka upp" msgid "Network interface to use" -msgstr "Nätverksgränssnitt som ska användas" +msgstr "Nätverksgränssnitt att använda" msgid "Send to broadcast address" -msgstr "" +msgstr "Skicka till sändningsadress" msgid "" "Sometimes only one of the two tools works. If one fails, try the other one" diff --git a/collections/luci-ssl/Makefile b/collections/luci-ssl/Makefile index 8fb8ff4627..399c982d22 100644 --- a/collections/luci-ssl/Makefile +++ b/collections/luci-ssl/Makefile @@ -12,6 +12,8 @@ LUCI_BASENAME:=ssl LUCI_TITLE:=LuCI with HTTPS support (mbedTLS as SSL backend) LUCI_DEPENDS:=+luci +libustream-mbedtls +px5g +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/collections/luci/Makefile b/collections/luci/Makefile index 4625c95f24..9b495c3187 100644 --- a/collections/luci/Makefile +++ b/collections/luci/Makefile @@ -12,7 +12,10 @@ LUCI_BASENAME:=luci LUCI_TITLE:=Standard OpenWrt set including full admin with ppp support and the default Bootstrap theme LUCI_DEPENDS:= \ +uhttpd +uhttpd-mod-ubus +luci-mod-admin-full +luci-theme-bootstrap \ - +luci-app-firewall +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6 + +luci-app-firewall +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6 \ + +rpcd-mod-rrdns + +PKG_LICENSE:=Apache-2.0 include ../../luci.mk diff --git a/libs/luci-lib-ip/Makefile b/libs/luci-lib-ip/Makefile index eb80dcb258..15cb537cff 100644 --- a/libs/luci-lib-ip/Makefile +++ b/libs/luci-lib-ip/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Lua library for IP calculation and routing information LUCI_DEPENDS:=+liblua +libnl-tiny +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/libs/luci-lib-json/Makefile b/libs/luci-lib-json/Makefile index 069886d5c3..ededc1f650 100644 --- a/libs/luci-lib-json/Makefile +++ b/libs/luci-lib-json/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI JSON library LUCI_DEPENDS:= +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/libs/luci-lib-nixio/Makefile b/libs/luci-lib-nixio/Makefile index 41800fe54b..bec5f83cda 100644 --- a/libs/luci-lib-nixio/Makefile +++ b/libs/luci-lib-nixio/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=NIXIO POSIX library LUCI_DEPENDS:=+PACKAGE_luci-lib-nixio_openssl:libopenssl +PACKAGE_luci-lib-nixio_cyassl:libcyassl +liblua +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/libs/luci-lib-px5g/Makefile b/libs/luci-lib-px5g/Makefile index 70b95e8505..eefee107e8 100644 --- a/libs/luci-lib-px5g/Makefile +++ b/libs/luci-lib-px5g/Makefile @@ -10,6 +10,7 @@ LUCI_TITLE:=RSA/X.509 Key Generator (required for LuCId SSL support) LUCI_DEPENDS:=+liblua PKG_USE_MIPS16:=0 +PKG_LICENSE:=LGPL-2.1 include ../../luci.mk diff --git a/libs/rpcd-mod-rrdns/Makefile b/libs/rpcd-mod-rrdns/Makefile new file mode 100644 index 0000000000..f0bf140a87 --- /dev/null +++ b/libs/rpcd-mod-rrdns/Makefile @@ -0,0 +1,47 @@ +# +# Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io> +# +# Licensed under the Apache License, Version 2.0. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=rpcd-mod-rrdns +PKG_VERSION:=20170710 +PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io> + +PKG_LICENSE:=Apache-2.0 + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Build/Prepare + $(INSTALL_DIR) $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ +endef + +define Package/rpcd-mod-rrdns + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Rapid reverse DNS rpcd module + DEPENDS:=+rpcd +libubox +libubus +endef + +define Package/rpcd-mod-rrdns/description + Provides rapid mass reverse DNS lookup functionality. +endef + +define Package/rpcd-mod-rrdns/install + $(INSTALL_DIR) $(1)/usr/lib/rpcd + $(INSTALL_BIN) $(PKG_BUILD_DIR)/rrdns.so $(1)/usr/lib/rpcd/ +endef + +define Package/rpcd-mod-rrdns/postinst +#!/bin/sh +killall -HUP rpcd 2>/dev/null +exit 0 +endef + +$(eval $(call BuildPackage,rpcd-mod-rrdns)) diff --git a/libs/rpcd-mod-rrdns/src/CMakeLists.txt b/libs/rpcd-mod-rrdns/src/CMakeLists.txt new file mode 100644 index 0000000000..ace6ac8664 --- /dev/null +++ b/libs/rpcd-mod-rrdns/src/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 2.6) + +PROJECT(rpcd-mod-rrdns C) + +ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations) + +SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") + +IF(APPLE) + INCLUDE_DIRECTORIES(/opt/local/include) + LINK_DIRECTORIES(/opt/local/lib) +ENDIF() + +FIND_LIBRARY(resolv NAMES resolv) +IF(resolv STREQUAL "LIBS-NOTFOUND") + SET(resolv "") +ENDIF() + +ADD_LIBRARY(rpcd-mod-rrdns MODULE rrdns.c) +TARGET_LINK_LIBRARIES(rpcd-mod-rrdns ubox ubus ${resolv}) +SET_TARGET_PROPERTIES(rpcd-mod-rrdns PROPERTIES OUTPUT_NAME rrdns PREFIX "") + +INSTALL(TARGETS rpcd-mod-rrdns LIBRARY DESTINATION lib) diff --git a/libs/rpcd-mod-rrdns/src/rrdns.c b/libs/rpcd-mod-rrdns/src/rrdns.c new file mode 100644 index 0000000000..691db9c8fa --- /dev/null +++ b/libs/rpcd-mod-rrdns/src/rrdns.c @@ -0,0 +1,389 @@ +/* + * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server + * + * Copyright (C) 2016 Jo-Philipp Wich <jow@openwrt.org> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdint.h> +#include <stdlib.h> +#include <unistd.h> + +#include <arpa/nameser.h> +#include <arpa/inet.h> + +#include <sys/types.h> +#include <sys/socket.h> + +#include <resolv.h> + +#include <libubox/avl.h> +#include <libubox/usock.h> +#include <libubox/uloop.h> + +#include <rpcd/plugin.h> + +#include "rrdns.h" + + +enum { + RPC_L_ADDRS, + RPC_L_TIMEOUT, + RPC_L_SERVER, + RPC_L_PORT, + RPC_L_LIMIT, + __RPC_L_MAX, +}; + +static const struct blobmsg_policy rpc_lookup_policy[__RPC_L_MAX] = { + [RPC_L_ADDRS] = { .name = "addrs", .type = BLOBMSG_TYPE_ARRAY }, + [RPC_L_TIMEOUT] = { .name = "timeout", .type = BLOBMSG_TYPE_INT32 }, + [RPC_L_SERVER] = { .name = "server", .type = BLOBMSG_TYPE_STRING }, + [RPC_L_PORT] = { .name = "port", .type = BLOBMSG_TYPE_INT16 }, + [RPC_L_LIMIT] = { .name = "limit", .type = BLOBMSG_TYPE_INT32 }, +}; + + +static int +rrdns_cmp_id(const void *k1, const void *k2, void *ptr) +{ + const uint16_t *id1 = k1, *id2 = k2; + return (*id1 - *id2); +} + +static int +rrdns_cmp_addr(const void *k1, const void *k2, void *ptr) +{ + const struct in6_addr *a1 = k1, *a2 = k2; + return memcmp(a1, a2, sizeof(*a1)); +} + +static int +rrdns_parse_response(struct rrdns_context *rctx) +{ + int n, len; + uint16_t id; + struct rrdns_request *req; + unsigned char res[512]; + char buf[INET6_ADDRSTRLEN], dname[MAXDNAME]; + HEADER *hdr; + ns_msg handle; + ns_rr rr; + + len = recv(rctx->socket.fd, res, sizeof(res), 0); + + if (len < sizeof(*hdr)) + return -ENODATA; + + hdr = (HEADER *)res; + id = hdr->id; + req = avl_find_element(&rctx->request_ids, &id, req, by_id); + + if (!req) + return -ENOENT; + + avl_delete(&rctx->request_ids, &req->by_id); + + if (ns_initparse(res, len, &handle)) + return -EINVAL; + + for (n = 0; n < ns_msg_count(handle, ns_s_an); n++) { + if (ns_parserr(&handle, ns_s_an, n, &rr)) + return -EINVAL; + + if (ns_rr_type(rr) != ns_t_ptr) + continue; + + if (ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle), + ns_rr_rdata(rr), dname, sizeof(dname)) < 0) + return -EINVAL; + + inet_ntop(req->family, &req->addr, buf, sizeof(buf)); + blobmsg_add_string(&rctx->blob, buf, dname); + } + + return 0; +} + +static int +rrdns_next_query(struct rrdns_context *rctx) +{ + const char *addr = NULL, *hex = "0123456789abcdef"; + struct rrdns_request *req; + int i, alen, family; + char *p, dname[73]; + + union { + unsigned char uchar[4]; + struct in6_addr in6; + struct in_addr in; + } a = { }; + + union { + unsigned char buf[512]; + HEADER hdr; + } msg; + + if (rctx->addr_rem > 0 && + blob_pad_len(rctx->addr_cur) <= rctx->addr_rem && + blob_pad_len(rctx->addr_cur) >= sizeof(struct blob_attr)) { + + addr = blobmsg_get_string(rctx->addr_cur); + rctx->addr_rem -= blob_pad_len(rctx->addr_cur); + rctx->addr_cur = blob_next(rctx->addr_cur); + } + + if (!addr) + return 0; + + if (inet_pton(AF_INET6, addr, &a.in6)) { + memset(dname, 0, sizeof(dname)); + + for (i = 0, p = dname; i < 16; i++) { + *p++ = hex[a.in6.s6_addr[15-i] % 16]; + *p++ = '.'; + *p++ = hex[a.in6.s6_addr[15-i] / 16]; + *p++ = '.'; + } + + p += snprintf(p, p - dname - 1, "ip6.arpa"); + + family = AF_INET6; + alen = p - dname; + } + else if (inet_pton(AF_INET, addr, &a.in)) { + family = AF_INET; + alen = snprintf(dname, sizeof(dname), "%u.%u.%u.%u.in-addr.arpa", + a.uchar[3], a.uchar[2], a.uchar[1], a.uchar[0]); + } + else { + return -EINVAL; + } + + alen = res_mkquery(QUERY, dname, C_IN, T_PTR, NULL, 0, NULL, + msg.buf, sizeof(msg.buf)); + + if (alen < 0) + return alen; + + if (avl_find(&rctx->request_addrs, &a.in6)) + return -ENOTUNIQ; + + if (send(rctx->socket.fd, msg.buf, alen, 0) != alen) + return -errno; + + req = calloc(1, sizeof(*req)); + + if (!req) + return -ENOMEM; + + req->id = msg.hdr.id; + req->by_id.key = &req->id; + avl_insert(&rctx->request_ids, &req->by_id); + + req->family = family; + req->addr.in6 = a.in6; + req->by_addr.key = &req->addr.in6; + avl_insert(&rctx->request_addrs, &req->by_addr); + + return 0; +} + +static void +rdns_shutdown(struct rrdns_context *rctx) +{ + struct rrdns_request *req, *tmp; + + uloop_timeout_cancel(&rctx->timeout); + uloop_fd_delete(&rctx->socket); + + close(rctx->socket.fd); + + ubus_send_reply(rctx->context, &rctx->request, rctx->blob.head); + ubus_complete_deferred_request(rctx->context, &rctx->request, + UBUS_STATUS_OK); + + avl_remove_all_elements(&rctx->request_addrs, req, by_addr, tmp) + free(req); + + blob_buf_free(&rctx->blob); + free(rctx); +} + +static void +rrdns_handle_timeout(struct uloop_timeout *utm) +{ + struct rrdns_context *rctx = + container_of(utm, struct rrdns_context, timeout); + + rdns_shutdown(rctx); +} + +static void +rrdns_handle_response(struct uloop_fd *ufd, unsigned int ev) +{ + struct rrdns_context *rctx = + container_of(ufd, struct rrdns_context, socket); + + int err = rrdns_parse_response(rctx); + + if (err != -ENODATA && err != -ENOENT) + rrdns_next_query(rctx); + + if (avl_is_empty(&rctx->request_ids)) + rdns_shutdown(rctx); +} + +static char * +rrdns_find_nameserver(void) +{ + static char line[2*INET6_ADDRSTRLEN]; + struct in6_addr in6; + FILE *resolvconf; + char *p; + + resolvconf = fopen("/etc/resolv.conf", "r"); + + if (!resolvconf) + return NULL; + + while (fgets(line, sizeof(line), resolvconf)) { + p = strtok(line, " \t"); + + if (!p || strcmp(p, "nameserver")) + continue; + + p = strtok(NULL, " \t\r\n"); + + if (!p) + continue; + + if (!inet_pton(AF_INET6, p, &in6) && !inet_pton(AF_INET, p, &in6)) + continue; + + fclose(resolvconf); + return p; + } + + fclose(resolvconf); + return NULL; +} + +static int +rpc_rrdns_lookup(struct ubus_context *ctx, struct ubus_object *obj, + struct ubus_request_data *req, const char *method, + struct blob_attr *msg) +{ + int port = 53, limit = RRDNS_DEF_LIMIT, timeout = RRDNS_DEF_TIMEOUT; + struct blob_attr *tb[__RPC_L_MAX]; + struct rrdns_context *rctx; + const char *server = NULL; + + blobmsg_parse(rpc_lookup_policy, __RPC_L_MAX, tb, + blob_data(msg), blob_len(msg)); + + if (tb[RPC_L_PORT]) + port = blobmsg_get_u16(tb[RPC_L_PORT]); + + if (tb[RPC_L_LIMIT]) + limit = blobmsg_get_u32(tb[RPC_L_LIMIT]); + + if (tb[RPC_L_TIMEOUT]) + timeout = blobmsg_get_u32(tb[RPC_L_TIMEOUT]); + + if (tb[RPC_L_SERVER]) + server = blobmsg_get_string(tb[RPC_L_SERVER]); + + + if (!tb[RPC_L_ADDRS]) + return UBUS_STATUS_INVALID_ARGUMENT; + + if (port <= 0) + return UBUS_STATUS_INVALID_ARGUMENT; + + if (limit <= 0 || limit > RRDNS_MAX_LIMIT) + return UBUS_STATUS_INVALID_ARGUMENT; + + if (timeout <= 0 || timeout > RRDNS_MAX_TIMEOUT) + return UBUS_STATUS_INVALID_ARGUMENT; + + + if (!server || !*server) + server = rrdns_find_nameserver(); + + if (!server) + return UBUS_STATUS_NOT_FOUND; + + rctx = calloc(1, sizeof(*rctx)); + + if (!rctx) + return UBUS_STATUS_UNKNOWN_ERROR; + + rctx->socket.fd = usock(USOCK_UDP, server, usock_port(port)); + + if (rctx->socket.fd < 0) { + free(rctx); + return UBUS_STATUS_UNKNOWN_ERROR; + } + + rctx->context = ctx; + rctx->addr_cur = blobmsg_data(tb[RPC_L_ADDRS]); + rctx->addr_rem = blobmsg_data_len(tb[RPC_L_ADDRS]); + + avl_init(&rctx->request_ids, rrdns_cmp_id, false, NULL); + avl_init(&rctx->request_addrs, rrdns_cmp_addr, false, NULL); + + rctx->timeout.cb = rrdns_handle_timeout; + uloop_timeout_set(&rctx->timeout, timeout); + + rctx->socket.cb = rrdns_handle_response; + uloop_fd_add(&rctx->socket, ULOOP_READ); + + blob_buf_init(&rctx->blob, 0); + + while (limit--) + rrdns_next_query(rctx); + + ubus_defer_request(ctx, req, &rctx->request); + + return UBUS_STATUS_OK; +} + + +static int +rpc_rrdns_api_init(const struct rpc_daemon_ops *o, struct ubus_context *ctx) +{ + static const struct ubus_method rrdns_methods[] = { + UBUS_METHOD("lookup", rpc_rrdns_lookup, rpc_lookup_policy), + }; + + static struct ubus_object_type rrdns_type = + UBUS_OBJECT_TYPE("rpcd-rrdns", rrdns_methods); + + static struct ubus_object obj = { + .name = "network.rrdns", + .type = &rrdns_type, + .methods = rrdns_methods, + .n_methods = ARRAY_SIZE(rrdns_methods), + }; + + return ubus_add_object(ctx, &obj); +} + +struct rpc_plugin rpc_plugin = { + .init = rpc_rrdns_api_init +}; diff --git a/libs/rpcd-mod-rrdns/src/rrdns.h b/libs/rpcd-mod-rrdns/src/rrdns.h new file mode 100644 index 0000000000..3f95116f08 --- /dev/null +++ b/libs/rpcd-mod-rrdns/src/rrdns.h @@ -0,0 +1,51 @@ +/* + * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server + * + * Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <libubus.h> +#include <libubox/avl.h> +#include <libubox/uloop.h> + +#define RRDNS_MAX_TIMEOUT 5000 +#define RRDNS_DEF_TIMEOUT 250 + +#define RRDNS_MAX_LIMIT 1000 +#define RRDNS_DEF_LIMIT 10 + + +struct rrdns_request { + struct avl_node by_id; + struct avl_node by_addr; + uint16_t id; + uint16_t family; + union { + struct in_addr in; + struct in6_addr in6; + } addr; +}; + +struct rrdns_context { + struct ubus_context *context; + struct ubus_request_data request; + struct uloop_timeout timeout; + struct blob_attr *addr_cur; + int addr_rem; + struct uloop_fd socket; + struct blob_buf blob; + struct avl_tree request_ids; + struct avl_tree request_addrs; +}; diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile index 753ff259fa..cc57ce8ee1 100644 --- a/modules/luci-base/Makefile +++ b/modules/luci-base/Makefile @@ -17,6 +17,7 @@ LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua + PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2 PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet PKG_MD5SUM:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea +PKG_LICENSE:=Apache-2.0 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1 diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua index 0bd19456f2..1b684aa79c 100644 --- a/modules/luci-base/luasrc/dispatcher.lua +++ b/modules/luci-base/luasrc/dispatcher.lua @@ -14,8 +14,6 @@ uci = require "luci.model.uci" i18n = require "luci.i18n" _M.fs = fs -authenticator = {} - -- Index table local index = nil @@ -101,24 +99,6 @@ function error500(message) return false end -function authenticator.htmlauth(validator, accs, default, template) - local user = http.formvalue("luci_username") - local pass = http.formvalue("luci_password") - - if user and validator(user, pass) then - return user - end - - require("luci.i18n") - require("luci.template") - context.path = {} - http.status(403, "Forbidden") - luci.template.render(template or "sysauth", {duser=default, fuser=user}) - - return false - -end - function httpdispatch(request, prefix) http.context.request = request @@ -188,6 +168,44 @@ function test_post_security() return true end +local function session_retrieve(sid, allowed_users) + local sdat = util.ubus("session", "get", { ubus_rpc_session = sid }) + + if type(sdat) == "table" and + type(sdat.values) == "table" and + type(sdat.values.token) == "string" and + (not allowed_users or + util.contains(allowed_users, sdat.values.username)) + then + return sid, sdat.values + end + + return nil, nil +end + +local function session_setup(user, pass, allowed_users) + if util.contains(allowed_users, user) then + local login = util.ubus("session", "login", { + username = user, + password = pass, + timeout = tonumber(luci.config.sauth.sessiontime) + }) + + if type(login) == "table" and + type(login.ubus_rpc_session) == "string" + then + util.ubus("session", "set", { + ubus_rpc_session = login.ubus_rpc_session, + values = { token = sys.uniqueid(16) } + }) + + return session_retrieve(login.ubus_rpc_session) + end + end + + return nil, nil +end + function dispatch(request) --context._disable_memtrace = require "luci.debug".trap_memtrace("l") local ctx = context @@ -332,74 +350,65 @@ function dispatch(request) ) if track.sysauth then - local authen = type(track.sysauth_authenticator) == "function" - and track.sysauth_authenticator - or authenticator[track.sysauth_authenticator] + local authen = track.sysauth_authenticator + local _, sid, sdat, default_user, allowed_users - local def = (type(track.sysauth) == "string") and track.sysauth - local accs = def and {track.sysauth} or track.sysauth - local sess = ctx.authsession - if not sess then - sess = http.getcookie("sysauth") - sess = sess and sess:match("^[a-f0-9]*$") + if type(authen) == "string" and authen ~= "htmlauth" then + error500("Unsupported authenticator %q configured" % authen) + return end - local sdat = (util.ubus("session", "get", { ubus_rpc_session = sess }) or { }).values - local user, token + if type(track.sysauth) == "table" then + default_user, allowed_users = nil, track.sysauth + else + default_user, allowed_users = track.sysauth, { track.sysauth } + end - if sdat then - user = sdat.user - token = sdat.token + if type(authen) == "function" then + _, sid = authen(sys.user.checkpasswd, allowed_users) else - local eu = http.getenv("HTTP_AUTH_USER") - local ep = http.getenv("HTTP_AUTH_PASS") - if eu and ep and sys.user.checkpasswd(eu, ep) then - authen = function() return eu end - end + sid = http.getcookie("sysauth") end - if not util.contains(accs, user) then - if authen then - local user, sess = authen(sys.user.checkpasswd, accs, def, track.sysauth_template) - local token - if not user or not util.contains(accs, user) then - return - else - if not sess then - local sdat = util.ubus("session", "create", { timeout = tonumber(luci.config.sauth.sessiontime) }) - if sdat then - token = sys.uniqueid(16) - util.ubus("session", "set", { - ubus_rpc_session = sdat.ubus_rpc_session, - values = { - user = user, - token = token, - section = sys.uniqueid(16) - } - }) - sess = sdat.ubus_rpc_session - end - end + sid, sdat = session_retrieve(sid, allowed_users) - if sess and token then - http.header("Set-Cookie", 'sysauth=%s; path=%s' %{ sess, build_url() }) + if not (sid and sdat) and authen == "htmlauth" then + local user = http.getenv("HTTP_AUTH_USER") + local pass = http.getenv("HTTP_AUTH_PASS") - ctx.authsession = sess - ctx.authtoken = token - ctx.authuser = user + if user == nil and pass == nil then + user = http.formvalue("luci_username") + pass = http.formvalue("luci_password") + end + + sid, sdat = session_setup(user, pass, allowed_users) + + if not sid then + local tmpl = require "luci.template" + + context.path = {} - http.redirect(build_url(unpack(ctx.requestpath))) - end - end - else http.status(403, "Forbidden") + tmpl.render(track.sysauth_template or "sysauth", { + duser = default_user, + fuser = user + }) + return end - else - ctx.authsession = sess - ctx.authtoken = token - ctx.authuser = user + + http.header("Set-Cookie", 'sysauth=%s; path=%s' %{ sid, build_url() }) + http.redirect(build_url(unpack(ctx.requestpath))) end + + if not sid or not sdat then + http.status(403, "Forbidden") + return + end + + ctx.authsession = sid + ctx.authtoken = sdat.token + ctx.authuser = sdat.username end if c and require_post_security(c.target) then diff --git a/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua b/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua index f49fed4a56..3f8b091cf3 100644 --- a/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua +++ b/modules/luci-base/luasrc/model/cbi/admin_network/proto_static.lua @@ -63,6 +63,15 @@ if luci.model.network:has_ipv6() then ip6prefix.datatype = "ip6addr" ip6prefix:depends("ip6assign", "") + local ip6ifaceid = s:taboption("general", Value, "ip6ifaceid", translate("IPv6 suffix"), + translate("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.")) + ip6ifaceid.datatype = "ip6hostid" + ip6ifaceid.placeholder = "::1" + ip6ifaceid.rmempty = true + end diff --git a/modules/luci-base/luasrc/sys.lua b/modules/luci-base/luasrc/sys.lua index a97271732a..99f3ee2919 100644 --- a/modules/luci-base/luasrc/sys.lua +++ b/modules/luci-base/luasrc/sys.lua @@ -117,45 +117,12 @@ end net = {} --- The following fields are defined for arp entry objects: --- { "IP address", "HW address", "HW type", "Flags", "Mask", "Device" } -function net.arptable(callback) - local arp = (not callback) and {} or nil - local e, r, v - if fs.access("/proc/net/arp") then - for e in io.lines("/proc/net/arp") do - local r = { }, v - for v in e:gmatch("%S+") do - r[#r+1] = v - end - - if r[1] ~= "IP" then - local x = { - ["IP address"] = r[1], - ["HW type"] = r[2], - ["Flags"] = r[3], - ["HW address"] = r[4], - ["Mask"] = r[5], - ["Device"] = r[6] - } - - if callback then - callback(x) - else - arp = arp or { } - arp[#arp+1] = x - end - end - end - end - return arp -end - local function _nethints(what, callback) local _, k, e, mac, ip, name local cur = uci.cursor() local ifn = { } local hosts = { } + local lookup = { } local function _add(i, ...) local k = select(i, ...) @@ -224,8 +191,20 @@ local function _nethints(what, callback) end end + for _, e in pairs(hosts) do + lookup[#lookup+1] = (what > 1) and e[what] or (e[2] or e[3]) + end + + if #lookup > 0 then + lookup = luci.util.ubus("network.rrdns", "lookup", { + addrs = lookup, + timeout = 250, + limit = 1000 + }) or { } + end + for _, e in luci.util.kspairs(hosts) do - callback(e[1], e[2], e[3], e[4]) + callback(e[1], e[2], e[3], lookup[e[2]] or lookup[e[3]] or e[4]) end end @@ -234,17 +213,17 @@ end function net.mac_hints(callback) if callback then _nethints(1, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v4 or v6, nil, 100) or v4 + name = name or v4 if name and name ~= mac then - callback(mac, name or nixio.getnameinfo(v4 or v6, nil, 100) or v4) + callback(mac, name or v4) end end) else local rv = { } _nethints(1, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v4 or v6, nil, 100) or v4 + name = name or v4 if name and name ~= mac then - rv[#rv+1] = { mac, name or nixio.getnameinfo(v4 or v6, nil, 100) or v4 } + rv[#rv+1] = { mac, name or v4 } end end) return rv @@ -256,7 +235,7 @@ end function net.ipv4_hints(callback) if callback then _nethints(2, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v4, nil, 100) or mac + name = name or mac if name and name ~= v4 then callback(v4, name) end @@ -264,7 +243,7 @@ function net.ipv4_hints(callback) else local rv = { } _nethints(2, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v4, nil, 100) or mac + name = name or mac if name and name ~= v4 then rv[#rv+1] = { v4, name } end @@ -278,7 +257,7 @@ end function net.ipv6_hints(callback) if callback then _nethints(3, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v6, nil, 100) or mac + name = name or mac if name and name ~= v6 then callback(v6, name) end @@ -286,7 +265,7 @@ function net.ipv6_hints(callback) else local rv = { } _nethints(3, function(mac, v4, v6, name) - name = name or nixio.getnameinfo(v6, nil, 100) or mac + name = name or mac if name and name ~= v6 then rv[#rv+1] = { v6, name } end @@ -378,145 +357,6 @@ function net.devices() end -function net.deviceinfo() - local devs = {} - for k, v in ipairs(nixio.getifaddrs()) do - if v.family == "packet" then - local d = v.data - d[1] = d.rx_bytes - d[2] = d.rx_packets - d[3] = d.rx_errors - d[4] = d.rx_dropped - d[5] = 0 - d[6] = 0 - d[7] = 0 - d[8] = d.multicast - d[9] = d.tx_bytes - d[10] = d.tx_packets - d[11] = d.tx_errors - d[12] = d.tx_dropped - d[13] = 0 - d[14] = d.collisions - d[15] = 0 - d[16] = 0 - devs[v.name] = d - end - end - return devs -end - - --- The following fields are defined for route entry tables: --- { "dest", "gateway", "metric", "refcount", "usecount", "irtt", --- "flags", "device" } -function net.routes(callback) - local routes = { } - - for line in io.lines("/proc/net/route") do - - local dev, dst_ip, gateway, flags, refcnt, usecnt, metric, - dst_mask, mtu, win, irtt = line:match( - "([^%s]+)\t([A-F0-9]+)\t([A-F0-9]+)\t([A-F0-9]+)\t" .. - "(%d+)\t(%d+)\t(%d+)\t([A-F0-9]+)\t(%d+)\t(%d+)\t(%d+)" - ) - - if dev then - gateway = luci.ip.Hex( gateway, 32, luci.ip.FAMILY_INET4 ) - dst_mask = luci.ip.Hex( dst_mask, 32, luci.ip.FAMILY_INET4 ) - dst_ip = luci.ip.Hex( - dst_ip, dst_mask:prefix(dst_mask), luci.ip.FAMILY_INET4 - ) - - local rt = { - dest = dst_ip, - gateway = gateway, - metric = tonumber(metric), - refcount = tonumber(refcnt), - usecount = tonumber(usecnt), - mtu = tonumber(mtu), - window = tonumber(window), - irtt = tonumber(irtt), - flags = tonumber(flags, 16), - device = dev - } - - if callback then - callback(rt) - else - routes[#routes+1] = rt - end - end - end - - return routes -end - --- The following fields are defined for route entry tables: --- { "source", "dest", "nexthop", "metric", "refcount", "usecount", --- "flags", "device" } -function net.routes6(callback) - if fs.access("/proc/net/ipv6_route", "r") then - local routes = { } - - for line in io.lines("/proc/net/ipv6_route") do - - local dst_ip, dst_prefix, src_ip, src_prefix, nexthop, - metric, refcnt, usecnt, flags, dev = line:match( - "([a-f0-9]+) ([a-f0-9]+) " .. - "([a-f0-9]+) ([a-f0-9]+) " .. - "([a-f0-9]+) ([a-f0-9]+) " .. - "([a-f0-9]+) ([a-f0-9]+) " .. - "([a-f0-9]+) +([^%s]+)" - ) - - if dst_ip and dst_prefix and - src_ip and src_prefix and - nexthop and metric and - refcnt and usecnt and - flags and dev - then - src_ip = luci.ip.Hex( - src_ip, tonumber(src_prefix, 16), luci.ip.FAMILY_INET6, false - ) - - dst_ip = luci.ip.Hex( - dst_ip, tonumber(dst_prefix, 16), luci.ip.FAMILY_INET6, false - ) - - nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false ) - - local rt = { - source = src_ip, - dest = dst_ip, - nexthop = nexthop, - metric = tonumber(metric, 16), - refcount = tonumber(refcnt, 16), - usecount = tonumber(usecnt, 16), - flags = tonumber(flags, 16), - device = dev, - - -- lua number is too small for storing the metric - -- add a metric_raw field with the original content - metric_raw = metric - } - - if callback then - callback(rt) - else - routes[#routes+1] = rt - end - end - end - - return routes - end -end - -function net.pingtest(host) - return os.execute("ping -c1 '"..host:gsub("'", '').."' >/dev/null 2>&1") -end - - process = {} function process.info(key) diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po index def4c10261..9f4efdd1f1 100644 --- a/modules/luci-base/po/ca/base.po +++ b/modules/luci-base/po/ca/base.po @@ -419,9 +419,6 @@ msgstr "Estacions associades" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autenticació" @@ -1449,6 +1446,9 @@ msgstr "Longitud de prefix IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Adreça IPv6" @@ -1555,6 +1555,9 @@ msgstr "Paquets instal·lats" msgid "Interface" msgstr "Interfície" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configuració d'interfície" @@ -1680,9 +1683,6 @@ msgstr "Duració de validitat d'arrendament" msgid "Leasefile" msgstr "Fitxer d'arrendament" -msgid "Leasetime" -msgstr "Duració d'arrendament" - msgid "Leasetime remaining" msgstr "Duració d'arrendament restant" @@ -2184,15 +2184,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3668,10 +3672,6 @@ msgstr "qualsevol" msgid "auto" msgstr "auto" -#, fuzzy -msgid "automatic" -msgstr "estàtic" - msgid "baseT" msgstr "" @@ -3748,9 +3748,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "no" @@ -3784,12 +3781,6 @@ msgstr "encaminat" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3826,6 +3817,13 @@ msgstr "sí" msgid "« Back" msgstr "« Enrere" +#~ msgid "Leasetime" +#~ msgstr "Duració d'arrendament" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "estàtic" + #~ msgid "AR Support" #~ msgstr "Suport AR" diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po index b76b66ceeb..9efe3b7d8e 100644 --- a/modules/luci-base/po/cs/base.po +++ b/modules/luci-base/po/cs/base.po @@ -419,9 +419,6 @@ msgstr "Připojení klienti" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autentizace" @@ -1460,6 +1457,9 @@ msgstr "Délka IPv6 prefixu" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6 adresa" @@ -1566,6 +1566,9 @@ msgstr "Nainstalované balíčky" msgid "Interface" msgstr "Rozhraní" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Konfigurace rozhraní" @@ -1693,9 +1696,6 @@ msgstr "Doba platnosti zápůjčky" msgid "Leasefile" msgstr "Soubor zájpůjček" -msgid "Leasetime" -msgstr "Doba trvání zápůjčky" - msgid "Leasetime remaining" msgstr "Zbývající doba trvání zápůjčky" @@ -2205,15 +2205,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3738,9 +3742,6 @@ msgstr "libovolný" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3817,9 +3818,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "ne" @@ -3853,12 +3851,6 @@ msgstr "směrované" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3895,6 +3887,9 @@ msgstr "ano" msgid "« Back" msgstr "« Zpět" +#~ msgid "Leasetime" +#~ msgstr "Doba trvání zápůjčky" + #~ msgid "AR Support" #~ msgstr "Podpora AR" diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po index 5418b78411..fa26a1d72e 100644 --- a/modules/luci-base/po/de/base.po +++ b/modules/luci-base/po/de/base.po @@ -38,13 +38,13 @@ msgid "-- custom --" msgstr "-- benutzerdefiniert --" msgid "-- match by device --" -msgstr "" +msgstr "-- anhand Gerätedatei selektieren --" msgid "-- match by label --" -msgstr "" +msgstr "-- anhand Label selektieren --" msgid "-- match by uuid --" -msgstr "" +msgstr "-- UUID vergleichen --" msgid "1 Minute Load:" msgstr "Systemlast (1 Minute):" @@ -53,7 +53,7 @@ msgid "15 Minute Load:" msgstr "Systemlast (15 Minuten):" msgid "4-character hexadecimal ID" -msgstr "" +msgstr "vierstellige hexadezimale ID" msgid "464XLAT (CLAT)" msgstr "" @@ -62,25 +62,25 @@ msgid "5 Minute Load:" msgstr "Systemlast (5 Minuten):" msgid "6-octet identifier as a hex string - no colons" -msgstr "" +msgstr "sechstellige hexadezimale ID (ohne Doppelpunkte)" msgid "802.11r Fast Transition" msgstr "" msgid "802.11w Association SA Query maximum timeout" -msgstr "" +msgstr "Maximales Timeout für Quelladressprüfungen (SA Query)" msgid "802.11w Association SA Query retry timeout" -msgstr "" +msgstr "Wiederholungsintervall für Quelladressprüfungen (SA Query)" msgid "802.11w Management Frame Protection" -msgstr "" +msgstr "802.11w: Schutz von Management-Frames aktivieren" msgid "802.11w maximum timeout" -msgstr "" +msgstr "802.11w: Maximales Timeout" msgid "802.11w retry timeout" -msgstr "" +msgstr "802.11w: Wiederholungsintervall" msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>" msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>" @@ -119,7 +119,7 @@ msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway" msgstr "IPv6-Gateway" msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)" -msgstr "" +msgstr "IPv6-Suffix (hexadezimal)" msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration" msgstr "LED Konfiguration" @@ -312,7 +312,7 @@ msgstr "" "genutzt wird" msgid "Allowed IPs" -msgstr "" +msgstr "Erlaubte IP-Adressen" msgid "" "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison" @@ -320,7 +320,7 @@ msgid "" msgstr "" msgid "Always announce default router" -msgstr "" +msgstr "Immer Defaultrouter ankündigen" msgid "Annex" msgstr "" @@ -341,7 +341,7 @@ msgid "Annex A G.992.5" msgstr "" msgid "Annex B (all)" -msgstr "" +msgstr "Annex B (alle Arten)" msgid "Annex B G.992.1" msgstr "" @@ -353,13 +353,13 @@ msgid "Annex B G.992.5" msgstr "" msgid "Annex J (all)" -msgstr "" +msgstr "Annex J (alle Arten)" msgid "Annex L G.992.3 POTS 1" msgstr "" msgid "Annex M (all)" -msgstr "" +msgstr "Annex M (alle Arten)" msgid "Annex M G.992.3" msgstr "" @@ -369,21 +369,23 @@ msgstr "" msgid "Announce as default router even if no public prefix is available." msgstr "" +"Kündigt im Netzwerk einen Defaultrouter an, auch wenn kein öffentlicher " +"Adressbereich verfügbar ist." msgid "Announced DNS domains" -msgstr "" +msgstr "Angekündigte Suchdomains" msgid "Announced DNS servers" -msgstr "" +msgstr "Angekündigte DNS Server" msgid "Anonymous Identity" -msgstr "" +msgstr "Anonyme Identität" msgid "Anonymous Mount" -msgstr "" +msgstr "automatische Mountpunkte" msgid "Anonymous Swap" -msgstr "" +msgstr "automatische Swap-Aktivierung" msgid "Antenna 1" msgstr "Antenne 1" @@ -406,6 +408,8 @@ msgstr "Änderungen werden angewandt" msgid "" "Assign a part of given length of every public IPv6-prefix to this interface" msgstr "" +"Legt die Größe der dieser Schnittstelle zugewiesenen Partitionen der " +"öffentlichen IPv6-Präfixe fest." msgid "Assign interfaces..." msgstr "Schnittstellen zuweisen..." @@ -413,21 +417,20 @@ msgstr "Schnittstellen zuweisen..." msgid "" "Assign prefix parts using this hexadecimal subprefix ID for this interface." msgstr "" +"Der Schnittstelle zugewiesene Partitionen des Adressraums werden anhand " +"dieser hexadezimalen ID gewählt." msgid "Associated Stations" msgstr "Assoziierte Clients" msgid "Auth Group" -msgstr "" - -msgid "AuthGroup" -msgstr "" +msgstr "Berechtigungsgruppe" msgid "Authentication" msgstr "Authentifizierung" msgid "Authentication Type" -msgstr "" +msgstr "Authentifizierungstyp" msgid "Authoritative" msgstr "Authoritativ" @@ -439,25 +442,25 @@ msgid "Auto Refresh" msgstr "Automatisches Neuladen" msgid "Automatic" -msgstr "" +msgstr "automatisch" msgid "Automatic Homenet (HNCP)" -msgstr "" +msgstr "automatisches Homenet-Protokoll (HNCP)" msgid "Automatically check filesystem for errors before mounting" -msgstr "" +msgstr "Dateisystem vor dem Einhängen automatisch auf Fehler prüfen" msgid "Automatically mount filesystems on hotplug" -msgstr "" +msgstr "Unkonfigurierte Dateisysteme automatisch einhängen" msgid "Automatically mount swap on hotplug" -msgstr "" +msgstr "Unkonfigurierte SWAP-Partitionen automatisch aktivieren" msgid "Automount Filesystem" -msgstr "" +msgstr "Dateisystem automatisch einhängen" msgid "Automount Swap" -msgstr "" +msgstr "SWAP automatisch aktivieren" msgid "Available" msgstr "Verfügbar" @@ -508,10 +511,10 @@ msgid "Bad address specified!" msgstr "Ungültige Adresse angegeben!" msgid "Band" -msgstr "" +msgstr "Frequenztyp" msgid "Behind NAT" -msgstr "" +msgstr "NAT" msgid "" "Below is the determined list of files to backup. It consists of changed " @@ -524,13 +527,15 @@ msgstr "" "benutzerdefinierte Dateiemuster betroffenen Dateien enthalten." msgid "Bind interface" -msgstr "" +msgstr "An Schnittstelle binden" msgid "Bind only to specific interfaces rather than wildcard address." msgstr "" +"Nur auf angegebenen Schnittstellen reagieren, anstatt auf allen " +"Schnittstellen zu antworten." msgid "Bind the tunnel to this interface (optional)." -msgstr "" +msgstr "Tunnelendpunkt an diese Schnittstelle binden (optional)" msgid "Bitrate" msgstr "Bitrate" @@ -563,12 +568,16 @@ msgid "" "Build/distribution specific feed definitions. This file will NOT be " "preserved in any sysupgrade." msgstr "" +"Konfiguriert die distributionsspezifischen Paket-Repositories. Diese " +"Konfiguration wird bei Upgrades NICHT gesichert." msgid "Buttons" msgstr "Knöpfe" msgid "CA certificate; if empty it will be saved after the first connection." msgstr "" +"CA-Zertifikat (wird beim ersten Verbindungsaufbau automatisch gespeichert " +"wenn leer). " msgid "CPU usage (%)" msgstr "CPU-Nutzung (%)" @@ -577,7 +586,7 @@ msgid "Cancel" msgstr "Abbrechen" msgid "Category" -msgstr "" +msgstr "Kategorie" msgid "Chain" msgstr "Kette" @@ -598,10 +607,11 @@ msgid "Check" msgstr "Prüfen" msgid "Check fileystems before mount" -msgstr "" +msgstr "Dateisysteme prüfen" msgid "Check this option to delete the existing networks from this radio." msgstr "" +"Diese Option setzen um existierende Netzwerke auf dem Radio zu löschen." msgid "Checksum" msgstr "Prüfsumme" @@ -611,7 +621,11 @@ msgid "" "<em>unspecified</em> to remove the interface from the associated zone or " "fill out the <em>create</em> field to define a new zone and attach the " "interface to it." -msgstr "Diese Schnittstelle gehört bis jetzt zu keiner Firewallzone." +msgstr "" +"Ordnet dieser Schnittstelle eine Firewallzone zu. Den Wert " +"<em>unspezifiziert</em> wählen um die Schnittstelle von der Zone zu lösen " +"oder das <em>erstellen</em> Feld ausfüllen um eine neue Zone direkt " +"anzulegen und zuzuweisen." msgid "" "Choose the network(s) you want to attach to this wireless interface or fill " @@ -624,7 +638,7 @@ msgid "Cipher" msgstr "Verschlüsselungsalgorithmus" msgid "Cisco UDP encapsulation" -msgstr "" +msgstr "Cisco UDP-Kapselung" msgid "" "Click \"Generate archive\" to download a tar archive of the current " @@ -683,7 +697,7 @@ msgid "Connection Limit" msgstr "Verbindungslimit" msgid "Connection to server fails when TLS cannot be used" -msgstr "" +msgstr "TLS zwingend vorraussetzen und abbrechen wenn TLS fehlschlägt." msgid "Connections" msgstr "Verbindungen" @@ -719,15 +733,17 @@ msgid "Custom Interface" msgstr "benutzerdefinierte Schnittstelle" msgid "Custom delegated IPv6-prefix" -msgstr "" +msgstr "Delegierter IPv6-Präfix" msgid "" "Custom feed definitions, e.g. private feeds. This file can be preserved in a " "sysupgrade." msgstr "" +"Selbst konfigurierte Paket-Repositories, z.B. private oder inoffizielle " +"Quellen. Diese Konfiguration wird by Upgrades gesichert." msgid "Custom feeds" -msgstr "" +msgstr "Eigene Repositories" msgid "" "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode" @@ -753,7 +769,7 @@ msgid "DHCPv6 Leases" msgstr "DHCPv6-Leases" msgid "DHCPv6 client" -msgstr "" +msgstr "DHCPv6 Client" msgid "DHCPv6-Mode" msgstr "" @@ -774,13 +790,13 @@ msgid "DNSSEC" msgstr "" msgid "DNSSEC check unsigned" -msgstr "" +msgstr "DNSSEC Signaturstatus prüfen" msgid "DPD Idle Timeout" -msgstr "" +msgstr "DPD Inaktivitätstimeout" msgid "DS-Lite AFTR address" -msgstr "" +msgstr "DS-Lite AFTR-Adresse" msgid "DSL" msgstr "" @@ -789,13 +805,13 @@ msgid "DSL Status" msgstr "" msgid "DSL line mode" -msgstr "" +msgstr "DSL Leitungsmodus" msgid "DUID" msgstr "DUID" msgid "Data Rate" -msgstr "" +msgstr "Datenrate" msgid "Debug" msgstr "Debug" @@ -807,10 +823,10 @@ msgid "Default gateway" msgstr "Default Gateway" msgid "Default is stateless + stateful" -msgstr "" +msgstr "Der Standardwert ist zustandslos und zustandsorientiert" msgid "Default route" -msgstr "" +msgstr "Default Route" msgid "Default state" msgstr "Ausgangszustand" @@ -848,16 +864,16 @@ msgid "Device Configuration" msgstr "Gerätekonfiguration" msgid "Device is rebooting..." -msgstr "" +msgstr "Das Gerät startet neu..." msgid "Device unreachable" -msgstr "" +msgstr "Das Gerät ist nicht erreichbar" msgid "Diagnostics" msgstr "Diagnosen" msgid "Dial number" -msgstr "" +msgstr "Einwahlnummer" msgid "Directory" msgstr "Verzeichnis" @@ -882,7 +898,7 @@ msgid "Disabled" msgstr "Deaktiviert" msgid "Disabled (default)" -msgstr "" +msgstr "Deaktiviert (Standard)" msgid "Discard upstream RFC1918 responses" msgstr "Eingehende RFC1918-Antworten verwerfen" @@ -897,7 +913,7 @@ msgid "Distance to farthest network member in meters." msgstr "Distanz zum am weitesten entfernten Funkpartner in Metern." msgid "Distribution feeds" -msgstr "" +msgstr "Distributionsrepositories" msgid "Diversity" msgstr "Diversität" @@ -934,7 +950,7 @@ msgid "Domain whitelist" msgstr "Domain-Whitelist" msgid "Don't Fragment" -msgstr "" +msgstr "Nicht fragmentieren" msgid "" "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without " @@ -974,7 +990,7 @@ msgstr "" "Clients mit konfigurierten statischen Leases bedient" msgid "EA-bits length" -msgstr "" +msgstr "EA-Bitlänge" msgid "EAP-Method" msgstr "EAP-Methode" @@ -986,6 +1002,8 @@ msgid "" "Edit the raw configuration data above to fix any error and hit \"Save\" to " "reload the page." msgstr "" +"Um die Syntaxfehler zu beheben, bitte die obige unformatierte Konfiguration " +"anpassen und \"Speichern\" klicken um die Seite neu zu laden." msgid "Edit this interface" msgstr "Diese Schnittstelle bearbeiten" @@ -1006,7 +1024,7 @@ msgid "Enable HE.net dynamic endpoint update" msgstr "Dynamisches HE.net IP-Adress-Update aktivieren" msgid "Enable IPv6 negotiation" -msgstr "" +msgstr "IPv6 anfordern" msgid "Enable IPv6 negotiation on the PPP link" msgstr "Aushandeln von IPv6-Adressen auf der PPP-Verbindung aktivieren" @@ -1018,7 +1036,7 @@ msgid "Enable NTP client" msgstr "Aktiviere NTP-Client" msgid "Enable Single DES" -msgstr "" +msgstr "Single-DES aktivieren" msgid "Enable TFTP server" msgstr "TFTP-Server aktivieren" @@ -1027,19 +1045,19 @@ msgid "Enable VLAN functionality" msgstr "VLAN-Funktionalität aktivieren" msgid "Enable WPS pushbutton, requires WPA(2)-PSK" -msgstr "" +msgstr "WPS-via-Knopfdruck aktivieren, erfordert WPA(2)-PSK" msgid "Enable learning and aging" msgstr "Learning und Aging aktivieren" msgid "Enable mirroring of incoming packets" -msgstr "" +msgstr "Port-Mirroring für eingehende Pakete aktivieren" msgid "Enable mirroring of outgoing packets" -msgstr "" +msgstr "Port-Mirroring für ausgehende Pakete aktivieren" msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets." -msgstr "" +msgstr "Das DF-Bit (Nicht fragmentieren) auf gekapselten Paketen setzen." msgid "Enable this mount" msgstr "Diesen Mountpunkt aktivieren" @@ -1057,6 +1075,8 @@ msgid "" "Enables fast roaming among access points that belong to the same Mobility " "Domain" msgstr "" +"Aktiviert schnelles Roaming zwischen Access-Points des selben " +"Mobilitätsbereiches" msgid "Enables the Spanning Tree Protocol on this bridge" msgstr "Aktiviert das Spanning Tree Protokoll auf dieser Netzwerkbrücke" @@ -1068,10 +1088,10 @@ msgid "Encryption" msgstr "Verschlüsselung" msgid "Endpoint Host" -msgstr "" +msgstr "Entfernter Server" msgid "Endpoint Port" -msgstr "" +msgstr "Entfernter Port" msgid "Erasing..." msgstr "Lösche..." @@ -1080,7 +1100,7 @@ msgid "Error" msgstr "Fehler" msgid "Errored seconds (ES)" -msgstr "" +msgstr "Fehlersekunden (ES)" msgid "Ethernet Adapter" msgstr "Netzwerkschnittstelle" @@ -1089,7 +1109,7 @@ msgid "Ethernet Switch" msgstr "Netzwerk Switch" msgid "Exclude interfaces" -msgstr "" +msgstr "Schnittstellen ausschließen" msgid "Expand hosts" msgstr "Hosts vervollständigen" @@ -1105,13 +1125,13 @@ msgstr "" "(<code>2m</code>)." msgid "External" -msgstr "" +msgstr "Extern" msgid "External R0 Key Holder List" -msgstr "" +msgstr "Externe R0-Key-Holder-List" msgid "External R1 Key Holder List" -msgstr "" +msgstr "Externe R1-Key-Holder-List" msgid "External system log server" msgstr "Externer Protokollserver IP" @@ -1120,10 +1140,10 @@ msgid "External system log server port" msgstr "Externer Protokollserver Port" msgid "External system log server protocol" -msgstr "" +msgstr "Externes Protokollserver Protokoll" msgid "Extra SSH command options" -msgstr "" +msgstr "Zusätzliche SSH-Kommando-Optionen" msgid "File" msgstr "Datei" @@ -1147,6 +1167,9 @@ msgid "" "Find all currently attached filesystems and swap and replace configuration " "with defaults based on what was detected" msgstr "" +"Findet alle angeschlossenen Dateisysteme und SWAP-Partitionen und generiert " +"die Konfiguration mit passenden Standardwerten für alle gefundenen Geräte " +"neu." msgid "Find and join network" msgstr "Suchen und Verbinden von Netzwerken" @@ -1161,7 +1184,7 @@ msgid "Firewall" msgstr "Firewall" msgid "Firewall Mark" -msgstr "" +msgstr "Firewall-Markierung" msgid "Firewall Settings" msgstr "Firewall Einstellungen" @@ -1170,7 +1193,7 @@ msgid "Firewall Status" msgstr "Firewall-Status" msgid "Firmware File" -msgstr "" +msgstr "Firmware-Datei" msgid "Firmware Version" msgstr "Firmware Version" @@ -1214,16 +1237,16 @@ msgid "Force link" msgstr "Erzwinge Verbindung" msgid "Force use of NAT-T" -msgstr "" +msgstr "Benutzung von NAT-T erzwingen" msgid "Form token mismatch" -msgstr "" +msgstr "Abweichendes Formular-Token" msgid "Forward DHCP traffic" msgstr "DHCP Traffic weiterleiten" msgid "Forward Error Correction Seconds (FECS)" -msgstr "" +msgstr "Fehlerkorrektursekunden (FECS)" msgid "Forward broadcast traffic" msgstr "Broadcasts weiterleiten" @@ -1247,6 +1270,8 @@ msgid "" "Further information about WireGuard interfaces and peers at <a href=\"http://" "wireguard.io\">wireguard.io</a>." msgstr "" +"Weitere Informationen zu WireGuard-Schnittstellen und Peers unter <a href=" +"\"http://wireguard.io\">wireguard.io</a>." msgid "GHz" msgstr "GHz" @@ -1267,10 +1292,10 @@ msgid "General Setup" msgstr "Allgemeine Einstellungen" msgid "General options for opkg" -msgstr "" +msgstr "Allgemeine Optionen für Opkg." msgid "Generate Config" -msgstr "" +msgstr "Konfiguration generieren" msgid "Generate archive" msgstr "Sicherung erstellen" @@ -1284,10 +1309,10 @@ msgstr "" "nicht geändert!" msgid "Global Settings" -msgstr "" +msgstr "Globale Einstellungen" msgid "Global network options" -msgstr "" +msgstr "Globale Netzwerkeinstellungen" msgid "Go to password configuration..." msgstr "Zur Passwortkonfiguration..." @@ -1296,19 +1321,19 @@ msgid "Go to relevant configuration page" msgstr "Gehe zur entsprechenden Konfigurationsseite" msgid "Group Password" -msgstr "" +msgstr "Gruppenpasswort" msgid "Guest" -msgstr "" +msgstr "Gast" msgid "HE.net password" msgstr "HE.net Passwort" msgid "HE.net username" -msgstr "" +msgstr "HE.net Benutzername" msgid "HT mode (802.11n)" -msgstr "" +msgstr "HT-Modus (802.11n)" msgid "Handler" msgstr "Handler" @@ -1317,7 +1342,7 @@ msgid "Hang Up" msgstr "Auflegen" msgid "Header Error Code Errors (HEC)" -msgstr "" +msgstr "Anzahl Header-Error-Code-Fehler (HEC)" msgid "Heartbeat" msgstr "" @@ -1369,7 +1394,7 @@ msgid "IKE DH Group" msgstr "" msgid "IP Addresses" -msgstr "" +msgstr "IP-Adressen" msgid "IP address" msgstr "IP-Adresse" @@ -1390,7 +1415,7 @@ msgid "IPv4 and IPv6" msgstr "IPv4 und IPv6" msgid "IPv4 assignment length" -msgstr "" +msgstr "IPv4 Zuweisungslänge" msgid "IPv4 broadcast" msgstr "IPv4 Broadcast" @@ -1405,7 +1430,7 @@ msgid "IPv4 only" msgstr "nur IPv4" msgid "IPv4 prefix" -msgstr "" +msgstr "IPv4 Bereich" msgid "IPv4 prefix length" msgstr "Länge des IPv4 Präfix" @@ -1423,13 +1448,13 @@ msgid "IPv6 Firewall" msgstr "IPv6 Firewall" msgid "IPv6 Neighbours" -msgstr "" +msgstr "IPv6 Nachbarn" msgid "IPv6 Settings" -msgstr "" +msgstr "IPv6 Einstellungen" msgid "IPv6 ULA-Prefix" -msgstr "" +msgstr "IPv6 ULA-Präfix" msgid "IPv6 WAN Status" msgstr "IPv6 WAN Status" @@ -1438,13 +1463,13 @@ msgid "IPv6 address" msgstr "IPv6 Adresse" msgid "IPv6 address delegated to the local tunnel endpoint (optional)" -msgstr "" +msgstr "Zum lokalen Tunnelendpunkt delegierte IPv6-Adresse (optional)" msgid "IPv6 assignment hint" -msgstr "" +msgstr "IPv6 Zuweisungshinweis" msgid "IPv6 assignment length" -msgstr "" +msgstr "IPv6 Zuweisungslänge" msgid "IPv6 gateway" msgstr "IPv6 Gateway" @@ -1459,13 +1484,16 @@ msgid "IPv6 prefix length" msgstr "Länge des IPv6 Präfix" msgid "IPv6 routed prefix" -msgstr "" +msgstr "Gerouteter IPv6-Präfix" + +msgid "IPv6 suffix" +msgstr "IPv6 Endung" msgid "IPv6-Address" msgstr "IPv6-Adresse" msgid "IPv6-PD" -msgstr "" +msgstr "IPv6 Präfixdelegation (PD)" msgid "IPv6-in-IPv4 (RFC4213)" msgstr "IPv6-in-IPv4 (RFC4213)" @@ -1480,10 +1508,10 @@ msgid "Identity" msgstr "Identität" msgid "If checked, 1DES is enaled" -msgstr "" +msgstr "Aktiviert die Benutzung von 1DES, wenn ausgewählt" msgid "If checked, encryption is disabled" -msgstr "" +msgstr "Deaktiviert die Verschlüsselung, wenn ausgewählt" msgid "" "If specified, mount the device by its UUID instead of a fixed device node" @@ -1535,6 +1563,9 @@ 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 "" +"Um unauthorisierte Zugriffe auf das System zu verhindern, wurde dieser " +"Request blockiert. Auf \"Weiter\" klicken um zur vorherigen Seite " +"zurückzukehren." msgid "Inactivity timeout" msgstr "Timeout bei Inaktivität" @@ -1556,6 +1587,8 @@ msgstr "Installieren" msgid "Install iputils-traceroute6 for IPv6 traceroute" msgstr "" +"Bitte \"iputils-traceroute6\" installieren um IPv6-Routenverfolgung nutzen " +"zu können" msgid "Install package %q" msgstr "Installiere Paket %q" @@ -1569,6 +1602,10 @@ msgstr "Installierte Pakete" msgid "Interface" msgstr "Schnittstelle" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" +"Das Gerät der Schnittstelle %q wurde automatisch von %q auf %q geändert." + msgid "Interface Configuration" msgstr "Schnittstellenkonfiguration" @@ -1582,7 +1619,7 @@ msgid "Interface is shutting down..." msgstr "Schnittstelle fährt herunter..." msgid "Interface name" -msgstr "" +msgstr "Schnittstellenname" msgid "Interface not present or not connected yet." msgstr "Schnittstelle existiert nicht oder ist nicht verbunden." @@ -1597,7 +1634,7 @@ msgid "Interfaces" msgstr "Schnittstellen" msgid "Internal" -msgstr "" +msgstr "Intern" msgid "Internal Server Error" msgstr "Interner Serverfehler" @@ -1616,7 +1653,7 @@ msgstr "" "Ungültiger Benutzername oder ungültiges Passwort! Bitte erneut versuchen. " msgid "Isolate Clients" -msgstr "" +msgstr "Clients isolieren" #, fuzzy msgid "" @@ -1636,7 +1673,7 @@ msgid "Join Network: Wireless Scan" msgstr "Netzwerk beitreten: Suche nach Netzwerken" msgid "Joining Network: %q" -msgstr "" +msgstr "Trete Netzwerk %q bei" msgid "Keep settings" msgstr "Konfiguration behalten" @@ -1681,13 +1718,13 @@ msgid "Language and Style" msgstr "Sprache und Aussehen" msgid "Latency" -msgstr "" +msgstr "Latenz" msgid "Leaf" -msgstr "" +msgstr "Zweigstelle" msgid "Lease time" -msgstr "" +msgstr "Laufzeit" msgid "Lease validity time" msgstr "Lease-Gültigkeitsdauer" @@ -1695,9 +1732,6 @@ msgstr "Lease-Gültigkeitsdauer" msgid "Leasefile" msgstr "Leasedatei" -msgid "Leasetime" -msgstr "Laufzeit" - msgid "Leasetime remaining" msgstr "Verbleibende Gültigkeit" @@ -1715,21 +1749,23 @@ msgstr "Limit" msgid "Limit DNS service to subnets interfaces on which we are serving DNS." msgstr "" +"DNS-Dienste auf direkte lokale Subnetze beschränken um Missbrauch durch " +"Dritte zu verhindern." msgid "Limit listening to these interfaces, and loopback." -msgstr "" +msgstr "Dienste auf die angegeben Schnittstellen plus Loopback beschränken." msgid "Line Attenuation (LATN)" -msgstr "" +msgstr "Dämpfung (LATN)" msgid "Line Mode" -msgstr "" +msgstr "Verbindungsmodus" msgid "Line State" -msgstr "" +msgstr "Verbindungsstatus" msgid "Line Uptime" -msgstr "" +msgstr "Verbindungsdauer" msgid "Link On" msgstr "Verbindung hergestellt" @@ -1758,7 +1794,7 @@ msgid "" msgstr "" msgid "List of SSH key files for auth" -msgstr "" +msgstr "Liste der SSH Schlüssel zur Authentifikation" msgid "List of domains to allow RFC1918 responses for" msgstr "Liste von Domains für welche RFC1918-Antworten erlaubt sind" @@ -1767,10 +1803,10 @@ msgid "List of hosts that supply bogus NX domain results" msgstr "Liste von Servern die falsche \"NX Domain\" Antworten liefern" msgid "Listen Interfaces" -msgstr "" +msgstr "Aktive Schnittstellen" msgid "Listen Port" -msgstr "" +msgstr "Aktive Ports" msgid "Listen only on the given interface or, if unspecified, on all" msgstr "" @@ -1790,7 +1826,7 @@ msgid "Loading" msgstr "Lade" msgid "Local IP address to assign" -msgstr "" +msgstr "Lokale IP-Adresse" msgid "Local IPv4 address" msgstr "Lokale IPv4 Adresse" @@ -1799,7 +1835,7 @@ msgid "Local IPv6 address" msgstr "Lokale IPv6 Adresse" msgid "Local Service Only" -msgstr "" +msgstr "Nur lokale Dienste" msgid "Local Startup" msgstr "Lokales Startskript" @@ -1838,7 +1874,7 @@ msgid "Localise queries" msgstr "Lokalisiere Anfragen" msgid "Locked to channel %s used by: %s" -msgstr "" +msgstr "Festgelegt auf Kanal %s, verwendet durch: %s" msgid "Log output level" msgstr "Protokolllevel" @@ -1856,7 +1892,7 @@ msgid "Logout" msgstr "Abmelden" msgid "Loss of Signal Seconds (LOSS)" -msgstr "" +msgstr "Signalverlustsekunden (LOSS)" msgid "Lowest leased address as offset from the network address." msgstr "Kleinste vergebene Adresse (Netzwerkadresse + x)" @@ -1891,13 +1927,13 @@ msgstr "MTU" msgid "" "Make sure to clone the root filesystem using something like the commands " "below:" -msgstr "" +msgstr "Das Root-Dateisystem muss mit folgenden Kommandsos vorbereitet werden:" msgid "Manual" -msgstr "" +msgstr "Manuell" msgid "Max. Attainable Data Rate (ATTNDR)" -msgstr "" +msgstr "Maximal erreichbare Datenrate (ATTNDR)" msgid "Maximum allowed number of active DHCP leases" msgstr "Maximal zulässige Anzahl von aktiven DHCP-Leases" @@ -1918,6 +1954,9 @@ msgid "" "Maximum length of the name is 15 characters including the automatic protocol/" "bridge prefix (br-, 6in4-, pppoe- etc.)" msgstr "" +"Die maximale Länge des Names ist auf 15 Zeichen beschränkt, abzüglich des " +"automatischen Protokoll- oder Bridge-Prefixes wie \"br-\" oder \"pppoe-\" " +"etc." msgid "Maximum number of leased addresses." msgstr "Maximal zulässige Anzahl von vergeben DHCP-Adressen" @@ -1938,22 +1977,22 @@ msgid "Minimum hold time" msgstr "Minimalzeit zum Halten der Verbindung" msgid "Mirror monitor port" -msgstr "" +msgstr "Spiegel-Monitor-Port" msgid "Mirror source port" -msgstr "" +msgstr "Spiegel-Quell-Port" msgid "Missing protocol extension for proto %q" msgstr "Erweiterung für Protokoll %q fehlt" msgid "Mobility Domain" -msgstr "" +msgstr "Mobilitätsbereich" msgid "Mode" msgstr "Modus" msgid "Model" -msgstr "" +msgstr "Modell" msgid "Modem device" msgstr "Modemgerät" @@ -1996,7 +2035,7 @@ msgid "Mount point" msgstr "Mountpunkt" msgid "Mount swap not specifically configured" -msgstr "" +msgstr "Unkonfigurierte SWAP-Partitionen aktivieren" msgid "Mounted file systems" msgstr "Eingehängte Dateisysteme" @@ -2014,10 +2053,10 @@ msgid "NAS ID" msgstr "NAS ID" msgid "NAT-T Mode" -msgstr "" +msgstr "NAT-T Modus" msgid "NAT64 Prefix" -msgstr "" +msgstr "NAT64 Präfix" msgid "NCM" msgstr "" @@ -2032,7 +2071,7 @@ msgid "NTP server candidates" msgstr "NTP Server Kandidaten" msgid "NTP sync time-out" -msgstr "" +msgstr "NTP Synchronisierungstimeout" msgid "Name" msgstr "Name" @@ -2068,7 +2107,7 @@ msgid "No DHCP Server configured for this interface" msgstr "Kein DHCP Server auf dieser Schnittstelle eingerichtet" msgid "No NAT-T" -msgstr "" +msgstr "Kein NAT-T" msgid "No chains in this table" msgstr "Keine Ketten in dieser Tabelle" @@ -2105,16 +2144,16 @@ msgid "Noise" msgstr "Rauschen" msgid "Noise Margin (SNR)" -msgstr "" +msgstr "Signal-Rausch-Abstand (SNR)" msgid "Noise:" msgstr "Noise:" msgid "Non Pre-emtive CRC errors (CRC_P)" -msgstr "" +msgstr "Nicht-präemptive CRC-Fehler (CRC_P)" msgid "Non-wildcard" -msgstr "" +msgstr "An Schnittstellen binden" msgid "None" msgstr "keine" @@ -2135,7 +2174,7 @@ msgid "Note: Configuration files will be erased." msgstr "Warnung: Konfigurationsdateien werden gelöscht." msgid "Note: interface name length" -msgstr "" +msgstr "Hinweis: Länge des Namens beachten" msgid "Notice" msgstr "Notiz" @@ -2150,10 +2189,10 @@ msgid "OPKG-Configuration" msgstr "OPKG-Konfiguration" msgid "Obfuscated Group Password" -msgstr "" +msgstr "Chiffriertes Gruppenpasswort" msgid "Obfuscated Password" -msgstr "" +msgstr "Chiffriertes Passwort" msgid "Off-State Delay" msgstr "Verzögerung für Ausschalt-Zustand" @@ -2195,7 +2234,7 @@ msgid "OpenConnect (CISCO AnyConnect)" msgstr "" msgid "Operating frequency" -msgstr "" +msgstr "Betriebsfrequenz" msgid "Option changed" msgstr "Option geändert" @@ -2204,48 +2243,68 @@ msgid "Option removed" msgstr "Option entfernt" msgid "Optional" -msgstr "" +msgstr "Optional" msgid "Optional, specify to override default server (tic.sixxs.net)" msgstr "" +"Optional, angeben um den Standardserver (tic.sixxs.net) zu überschreiben" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" - -msgid "Optional." -msgstr "" +"Optional, angeben wenn das SIXSS Konto mehr als einen Tunnel beinhaltet" msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" +"Optional. 32-Bit-Marke für ausgehende, verschlüsselte Pakete. Wert in " +"hexadezimal mit führendem <code>0x</code> angeben." + +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 "" +"Optional. Mögliche Werte: 'eui64', 'random' oder Suffixes wie '::1' oder " +"'::1:2'. Wenn ein IPv6-Präfix (wie z.B. 'a:b:c:d::') von einem delegierendem " +"Server empfangen wird, kombiniert das System das Suffix mit dem Präfix um " +"eine IPv6-Adresse (z.B. 'a:b:c:d::1') für die Schnittstelle zu formen." msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" +"Optional. Base64-kodierter, vorhab ausgetauschter Schlüssel um eine weitere " +"Ebene an symmetrischer Verschlüsselung für erhöhte Sicherheit hinzuzufügen." msgid "Optional. Create routes for Allowed IPs for this peer." -msgstr "" +msgstr "Optional. Routen für erlaubte IP-Adressen erzeugen." msgid "" "Optional. Host of peer. Names are resolved prior to bringing up the " "interface." msgstr "" +"Optional. Hostname oder Adresse des Verbindungspartners. Namen werden vor " +"dem Verbindungsaufbau aufgelöst." msgid "Optional. Maximum Transmission Unit of tunnel interface." -msgstr "" +msgstr "Optional. Maximale MTU für Tunnelschnittstellen." msgid "Optional. Port of peer." -msgstr "" +msgstr "Optional. Port-Nummer des Verbindungspartners." msgid "" "Optional. Seconds between keep alive messages. Default is 0 (disabled). " "Recommended value if this device is behind a NAT is 25." msgstr "" +"Optional. Sekunden zwischen Keep-Alive-Nachrichten. Standardwert is 0 " +"(deaktiviert). Der empfohlene Wert für Geräte hinter einem NAT sind 25 " +"Sekunden." msgid "Optional. UDP port used for outgoing and incoming packets." msgstr "" +"Optional. Benutzte UDP-Port-Nummer für ausgehende und eingehende Pakete." msgid "Options" msgstr "Optionen" @@ -2260,7 +2319,7 @@ msgid "Outbound:" msgstr "Ausgehend:" msgid "Output Interface" -msgstr "" +msgstr "Ausgehende Schnittstelle" msgid "Override MAC address" msgstr "MAC-Adresse überschreiben" @@ -2269,13 +2328,13 @@ msgid "Override MTU" msgstr "MTU-Wert überschreiben" msgid "Override TOS" -msgstr "" +msgstr "TOS-Wert überschreiben" msgid "Override TTL" -msgstr "" +msgstr "TTL-Wert überschreiben" msgid "Override default interface name" -msgstr "" +msgstr "Standard Schnittstellennamen überschreiben" msgid "Override the gateway in DHCP responses" msgstr "Gateway-Adresse in DHCP-Antworten überschreiben" @@ -2330,10 +2389,10 @@ msgid "PPtP" msgstr "PPtP" msgid "PSID offset" -msgstr "" +msgstr "PSID-Offset" msgid "PSID-bits length" -msgstr "" +msgstr "PSID-Bitlänge" msgid "PTM/EFM (Packet Transfer Mode)" msgstr "" @@ -2360,10 +2419,10 @@ msgid "Password authentication" msgstr "Passwortanmeldung" msgid "Password of Private Key" -msgstr "Passwort des Privaten Schlüssels" +msgstr "Passwort des privaten Schlüssels" msgid "Password of inner Private Key" -msgstr "" +msgstr "Password des inneren, privaten Schlüssels" msgid "Password successfully changed!" msgstr "Passwort erfolgreich geändert!" @@ -2381,22 +2440,22 @@ msgid "Path to executable which handles the button event" msgstr "Ausführbare Datei welche das Schalter-Ereignis verarbeitet" msgid "Path to inner CA-Certificate" -msgstr "" +msgstr "Pfad zum inneren CA-Zertifikat" msgid "Path to inner Client-Certificate" -msgstr "" +msgstr "Pfad zum inneren Client-Zertifikat" msgid "Path to inner Private Key" -msgstr "" +msgstr "Pfad zum inneren, privaten Schlüssel" msgid "Peak:" msgstr "Spitze:" msgid "Peer IP address to assign" -msgstr "" +msgstr "Entfernte IP-Adresse" msgid "Peers" -msgstr "" +msgstr "Verbindungspartner" msgid "Perfect Forward Secrecy" msgstr "" @@ -2408,7 +2467,7 @@ msgid "Perform reset" msgstr "Reset durchführen" msgid "Persistent Keep Alive" -msgstr "" +msgstr "Persistentes Keep-Alive" msgid "Phy Rate:" msgstr "Phy-Rate:" @@ -2435,22 +2494,22 @@ msgid "Port status:" msgstr "Port-Status:" msgid "Power Management Mode" -msgstr "" +msgstr "Energiesparmodus" msgid "Pre-emtive CRC errors (CRCP_P)" -msgstr "" +msgstr "Präemptive CRC-Fehler (CRCP_P)" msgid "Prefer LTE" -msgstr "" +msgstr "LTE bevorzugen" msgid "Prefer UMTS" -msgstr "" +msgstr "UMTS bevorzugen" msgid "Prefix Delegated" -msgstr "" +msgstr "Delegiertes Präfix" msgid "Preshared Key" -msgstr "" +msgstr "Gemeinsamer Schlüssel" msgid "" "Presume peer to be dead after given amount of LCP echo failures, use 0 to " @@ -2460,7 +2519,7 @@ msgstr "" "Fehlschlägen, nutze den Wert 0 um Fehler zu ignorieren" msgid "Prevent listening on these interfaces." -msgstr "" +msgstr "Verhindert das Binden an diese Schnittstellen" msgid "Prevents client-to-client communication" msgstr "Unterbindet Client-Client-Verkehr" @@ -2469,7 +2528,7 @@ msgid "Prism2/2.5/3 802.11b Wireless Controller" msgstr "Prism2/2.5/3 802.11b W-LAN Adapter" msgid "Private Key" -msgstr "" +msgstr "Privater Schlüssel" msgid "Proceed" msgstr "Fortfahren" @@ -2478,7 +2537,7 @@ msgid "Processes" msgstr "Prozesse" msgid "Profile" -msgstr "" +msgstr "Profil" msgid "Prot." msgstr "Prot." @@ -2505,10 +2564,12 @@ msgid "Pseudo Ad-Hoc (ahdemo)" msgstr "Pseudo Ad-Hoc (ahdemo)" msgid "Public Key" -msgstr "" +msgstr "Öffentlicher Schlüssel" msgid "Public prefix routed to this device for distribution to clients." msgstr "" +"Zu diesem Gerät geroutetes öffentliches Präfix zur Weiterverteilung an " +"Clients." msgid "QMI Cellular" msgstr "" @@ -2618,7 +2679,7 @@ msgid "Realtime Wireless" msgstr "Echtzeit-WLAN-Signal" msgid "Reassociation Deadline" -msgstr "" +msgstr "Reassoziierungsfrist" msgid "Rebind protection" msgstr "DNS-Rebind-Schutz" @@ -2639,7 +2700,7 @@ msgid "Receiver Antenna" msgstr "Empfangsantenne" msgid "Recommended. IP addresses of the WireGuard interface." -msgstr "" +msgstr "Empfohlen. IP-Adresse der WireGuard-Schnittstelle." msgid "Reconnect this interface" msgstr "Diese Schnittstelle neu verbinden" @@ -2666,7 +2727,7 @@ msgid "Remote IPv4 address" msgstr "Entfernte IPv4-Adresse" msgid "Remote IPv4 address or FQDN" -msgstr "" +msgstr "Entfernte IPv4-Adresse oder Hostname" msgid "Remove" msgstr "Entfernen" @@ -2681,42 +2742,50 @@ msgid "Replace wireless configuration" msgstr "Drahtloskonfiguration ersetzen" msgid "Request IPv6-address" -msgstr "" +msgstr "IPv6-Adresse anfordern" msgid "Request IPv6-prefix of length" -msgstr "" +msgstr "IPv6-Präfix dieser Länge anfordern" msgid "Require TLS" -msgstr "" +msgstr "TLS erfordern" msgid "Required" -msgstr "" +msgstr "Benötigt" msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3" msgstr "" "Wird von bestimmten Internet-Providern benötigt, z.B. Charter mit DOCSIS 3" msgid "Required. Base64-encoded private key for this interface." -msgstr "" +msgstr "Benötigt. Base64-kodierter privater Schlüssel für diese Schnittstelle" msgid "Required. Base64-encoded public key of peer." msgstr "" +"Benötigt. Base64-kodierter öffentlicher Schlüssel für diese Schnittstelle" 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 "" +"Benötigt. IP-Adressen und Präfixe die der Verbindungspartner innerhalb des " +"Tunnels nutzen darf. Entspricht üblicherweise der Tunnel-IP-Adresse des " +"Verbindungspartners und den Netzwerken, die dieser durch den Tunnel routet." msgid "" "Requires the 'full' version of wpad/hostapd and support from the wifi driver " "<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)" msgstr "" +"Benötigt die \"volle\" Variante des wpad oder hostapd Paketes und " +"Unterstützung vom WLAN-Treiber." msgid "" "Requires upstream supports DNSSEC; verify unsigned domain responses really " "come from unsigned domains" msgstr "" +"Setzt DNSSEC-Unterstützung im DNS-Zielserver vorraus; überprüft ob " +"unsignierte Antworten wirklich von unsignierten Domains kommen." msgid "Reset" msgstr "Zurücksetzen" @@ -2755,19 +2824,19 @@ msgid "Root directory for files served via TFTP" msgstr "Wurzelverzeichnis für über TFTP ausgelieferte Dateien " msgid "Root preparation" -msgstr "" +msgstr "Wurzelverzeichnis erzeugen" msgid "Route Allowed IPs" -msgstr "" +msgstr "Erlaubte IP-Addressen routen" msgid "Route type" -msgstr "" +msgstr "Routen-Typ" msgid "Routed IPv6 prefix for downstream interfaces" -msgstr "" +msgstr "Geroutetes IPv6-Präfix für nachgelagerte Schnittstellen" msgid "Router Advertisement-Service" -msgstr "" +msgstr "Router-Advertisement-Dienst" msgid "Router Password" msgstr "Routerpasswort" @@ -2806,13 +2875,13 @@ msgid "SSH Access" msgstr "SSH-Zugriff" msgid "SSH server address" -msgstr "" +msgstr "SSH-Server-Adresse" msgid "SSH server port" -msgstr "" +msgstr "SSH-Server-Port" msgid "SSH username" -msgstr "" +msgstr "SSH Benutzername" msgid "SSH-Keys" msgstr "SSH-Schlüssel" @@ -2858,15 +2927,17 @@ msgid "Server Settings" msgstr "Servereinstellungen" msgid "Server password" -msgstr "" +msgstr "Server Passwort" msgid "" "Server password, enter the specific password of the tunnel when the username " "contains the tunnel ID" msgstr "" +"Server Passwort bzw. das tunnelspezifische Passwort wenn der Benutzername " +"eine Tunnel-ID beinhaltet." msgid "Server username" -msgstr "" +msgstr "Server Benutzername" msgid "Service Name" msgstr "Service-Name" @@ -2893,10 +2964,10 @@ msgid "Setup DHCP Server" msgstr "DHCP Server einrichten" msgid "Severely Errored Seconds (SES)" -msgstr "" +msgstr "schwerwiegende Fehlersekunden (SES)" msgid "Short GI" -msgstr "" +msgstr "kurzes Guardintervall" msgid "Show current backup file list" msgstr "Zeige aktuelle Liste der gesicherten Dateien" @@ -2911,7 +2982,7 @@ msgid "Signal" msgstr "Signal" msgid "Signal Attenuation (SATN)" -msgstr "" +msgstr "Signaldämpfung (SATN)" msgid "Signal:" msgstr "Signal:" @@ -2920,7 +2991,7 @@ msgid "Size" msgstr "Größe" msgid "Size (.ipk)" -msgstr "" +msgstr "Größe (.ipk)" msgid "Skip" msgstr "Überspringen" @@ -2966,7 +3037,7 @@ msgid "Source" msgstr "Quelle" msgid "Source routing" -msgstr "" +msgstr "Quell-Routing" msgid "Specifies the button state to handle" msgstr "Gibt den zu behandelnden Tastenstatus an" @@ -2992,17 +3063,21 @@ msgstr "" "werden" msgid "Specify a TOS (Type of Service)." -msgstr "" +msgstr "Setzt einen spezifischen TOS (Type of Service) Wert" msgid "" "Specify a TTL (Time to Live) for the encapsulating packet other than the " "default (64)." msgstr "" +"Setzt eine spezifische TTL (Time to Live) für gekapselte Pakete, anstatt der " +"standardmäßigen 64." msgid "" "Specify an MTU (Maximum Transmission Unit) other than the default (1280 " "bytes)." msgstr "" +"Setzt eine spezifische MTU (Maximum Transmission Unit) abweichend von den " +"standardmäßigen 1280 Bytes." msgid "Specify the secret encryption key here." msgstr "Geben Sie hier den geheimen Netzwerkschlüssel an" @@ -3078,6 +3153,8 @@ msgstr "Switch %q (%s)" msgid "" "Switch %q has an unknown topology - the VLAN settings might not be accurate." msgstr "" +"Der Switch %q hat eine unbekannte Struktur, die VLAN Settings könnten " +"unpassend sein." msgid "Switch VLAN" msgstr "" @@ -3156,10 +3233,13 @@ msgid "" "The HE.net endpoint update configuration changed, you must now use the plain " "username instead of the user ID!" msgstr "" +"Die Updateprozedur für HE.net Tunnel-IP-Adrerssen hat sich geändert, statt " +"der numerischen User-ID muss nun der normale Benutzername angegeben werden." msgid "" "The IPv4 address or the fully-qualified domain name of the remote tunnel end." msgstr "" +"Die IPv4-Adresse oder der volle Domain Name des entfernten Tunnel-Endpunktes." msgid "" "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>" @@ -3176,6 +3256,8 @@ msgstr "" msgid "The configuration file could not be loaded due to the following error:" msgstr "" +"Die Konfigurationsdatei konnte aufgrund der folgenden Fehler nicht geladen " +"werden:" msgid "" "The device file of the memory or partition (<abbr title=\"for example\">e.g." @@ -3229,7 +3311,7 @@ msgid "The length of the IPv6 prefix in bits" msgstr "Länge des IPv6 Präfix in Bits" msgid "The local IPv4 address over which the tunnel is created (optional)." -msgstr "" +msgstr "Die lokale IPv4-Adresse über die der Tunnel aufgebaut wird (optional)." msgid "" "The network ports on this device can be combined to several <abbr title=" @@ -3253,6 +3335,7 @@ msgstr "Dem ausgewähltem Protokoll muss ein Gerät zugeordnet werden" msgid "The submitted security token is invalid or already expired!" msgstr "" +"Das mitgesendete Sicherheits-Token ist ungültig oder bereits abgelaufen!" msgid "" "The system is erasing the configuration partition now and will reboot itself " @@ -3277,6 +3360,8 @@ msgid "" "The tunnel end-point is behind NAT, defaults to disabled and only applies to " "AYIYA" msgstr "" +"Der lokale Tunnel-Endpunkt ist hinter einem NAT. Standard ist deaktiviert, " +"nur auf AYIYA anwendbar." msgid "" "The uploaded image file does not contain a supported format. Make sure that " @@ -3319,6 +3404,8 @@ msgid "" "'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain " "Name System\">DNS</abbr> servers." msgstr "" +"Diese Datei beinhaltet Zeilen in der Art 'server=/domain/1.2.3.4' oder " +"'server=1.2.3.4' für domainspezifische oder komplette Ziel-DNS-Server." msgid "" "This is a list of shell glob patterns for matching files and directories to " @@ -3334,6 +3421,9 @@ msgid "" "This is either the \"Update Key\" configured for the tunnel or the account " "password if no update key has been configured" msgstr "" +"Dies ist entweder der \"Update Key\" der für diesen Tunnel eingerichtet " +"wurde oder das normale Account-Passwort wenn kein separater Schlüssel " +"gesetzt wurde." msgid "" "This is the content of /etc/rc.local. Insert your own commands here (in " @@ -3355,11 +3445,13 @@ msgid "" msgstr "Dies ist der einzige DHCP im lokalen Netz" msgid "This is the plain username for logging into the account" -msgstr "" +msgstr "Das ist der normale Login-Name für den Account." msgid "" "This is the prefix routed to you by the tunnel broker for use by clients" msgstr "" +"Dies ist das vom Tunnel-Broker geroutete öffentliche Präfix zur Verwendung " +"durch nachgelagerte Clients." msgid "This is the system crontab in which scheduled tasks can be defined." msgstr "" @@ -3405,7 +3497,7 @@ msgstr "" "Backup-Archiv hochgeladen werden." msgid "Tone" -msgstr "" +msgstr "Ton" msgid "Total Available" msgstr "Gesamt verfügbar" @@ -3445,16 +3537,16 @@ msgid "Tunnel Interface" msgstr "Tunnelschnittstelle" msgid "Tunnel Link" -msgstr "" +msgstr "Basisschnittstelle" msgid "Tunnel broker protocol" -msgstr "" +msgstr "Tunnel-Boker-Protokoll" msgid "Tunnel setup server" -msgstr "" +msgstr "Tunnel-Setup-Server" msgid "Tunnel type" -msgstr "" +msgstr "Tunneltyp" msgid "Tx-Power" msgstr "Sendestärke" @@ -3475,7 +3567,7 @@ msgid "USB Device" msgstr "USB-Gerät" msgid "USB Ports" -msgstr "" +msgstr "USB Anschlüsse" msgid "UUID" msgstr "UUID" @@ -3484,7 +3576,7 @@ msgid "Unable to dispatch" msgstr "Kann Anfrage nicht zustellen" msgid "Unavailable Seconds (UAS)" -msgstr "" +msgstr "Nicht verfügbare Sekunden (UAS)" msgid "Unknown" msgstr "Unbekannt" @@ -3496,7 +3588,7 @@ msgid "Unmanaged" msgstr "Ignoriert" msgid "Unmount" -msgstr "" +msgstr "Aushängen" msgid "Unsaved Changes" msgstr "Ungespeicherte Änderungen" @@ -3544,16 +3636,16 @@ msgid "Use TTL on tunnel interface" msgstr "Benutze TTL auf der Tunnelschnittstelle" msgid "Use as external overlay (/overlay)" -msgstr "" +msgstr "Als externes Overlay benutzen (/overlay)" msgid "Use as root filesystem (/)" -msgstr "" +msgstr "Als Root-Dateisystem benutzen (/)" msgid "Use broadcast flag" msgstr "Benutze Broadcast-Flag" msgid "Use builtin IPv6-management" -msgstr "" +msgstr "Eingebautes IPv6-Management nutzen" msgid "Use custom DNS servers" msgstr "Benutze eigene DNS-Server" @@ -3589,12 +3681,14 @@ msgid "" "Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not " "needed with normal WPA(2)-PSK." msgstr "" +"Wird als RADIUS-NAS-ID und als 802.11r R0KH-ID verwendet. Nicht benötigt für " +"WPA(2)-PSK." msgid "User certificate (PEM encoded)" -msgstr "" +msgstr "PEM-kodiertes Benutzerzertifikat" msgid "User key (PEM encoded)" -msgstr "" +msgstr "PEM-kodierter Benutzerschlüssel" msgid "Username" msgstr "Benutzername" @@ -3612,34 +3706,34 @@ msgid "VLANs on %q (%s)" msgstr "VLANs auf %q (%s)" msgid "VPN Local address" -msgstr "" +msgstr "Lokale VPN-Adresse" msgid "VPN Local port" -msgstr "" +msgstr "Lokaler VPN-Port" msgid "VPN Server" msgstr "VPN-Server" msgid "VPN Server port" -msgstr "" +msgstr "VPN-Server Port" msgid "VPN Server's certificate SHA1 hash" -msgstr "" +msgstr "SHA1-Hash des VPN-Server-Zertifikates" msgid "VPNC (CISCO 3000 (and others) VPN)" msgstr "" msgid "Vendor" -msgstr "" +msgstr "Hersteller" msgid "Vendor Class to send when requesting DHCP" msgstr "Bei DHCP-Anfragen gesendete Vendor-Klasse" msgid "Verbose" -msgstr "" +msgstr "Umfangreiche Ausgaben" msgid "Verbose logging by aiccu daemon" -msgstr "" +msgstr "Aktiviert erweiterte Protokollierung durch den AICCU-Prozess" msgid "Verify" msgstr "Verifizieren" @@ -3675,6 +3769,8 @@ msgstr "" msgid "" "Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)" msgstr "" +"Warte die angegebene Anzahl an Sekunden auf NTP-Synchronisierung, der Wert 0 " +"deaktiviert das Warten (optional)" msgid "Waiting for changes to be applied..." msgstr "Änderungen werden angewandt..." @@ -3683,22 +3779,25 @@ msgid "Waiting for command to complete..." msgstr "Der Befehl wird ausgeführt..." msgid "Waiting for device..." -msgstr "" +msgstr "Warte auf Gerät..." msgid "Warning" msgstr "Warnung" msgid "Warning: There are unsaved changes that will get lost on reboot!" msgstr "" +"Achtung: Es gibt ungespeicherte Änderungen die bei einem Neustart verloren " +"gehen!" msgid "Whether to create an IPv6 default route over the tunnel" msgstr "" +"Gibt an, ob eine IPv6-Default-Route durch den Tunnel etabliert werden soll" msgid "Whether to route only packets from delegated prefixes" -msgstr "" +msgstr "Gibt an, ob nur Pakete von delegierten Präfixen geroutet werden sollen" msgid "Width" -msgstr "" +msgstr "Breite" msgid "WireGuard VPN" msgstr "" @@ -3740,7 +3839,7 @@ msgid "Write received DNS requests to syslog" msgstr "Empfangene DNS-Anfragen in das Systemprotokoll schreiben" msgid "Write system log to file" -msgstr "" +msgstr "Systemprotokoll in Datei schreiben" msgid "" "You can enable or disable installed init scripts here. Changes will applied " @@ -3770,9 +3869,6 @@ msgstr "beliebig" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "automatisch" - msgid "baseT" msgstr "baseT" @@ -3795,7 +3891,7 @@ msgid "disable" msgstr "deaktivieren" msgid "disabled" -msgstr "" +msgstr "deaktiviert" msgid "expired" msgstr "abgelaufen" @@ -3821,7 +3917,7 @@ msgid "hidden" msgstr "versteckt" msgid "hybrid mode" -msgstr "" +msgstr "hybrider Modus" msgid "if target is a network" msgstr "falls Ziel ein Netzwerk ist" @@ -3842,13 +3938,10 @@ msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file" msgstr "Lokale DNS-Datei" msgid "minimum 1280, maximum 1480" -msgstr "" +msgstr "Minimum 1280, Maximum 1480" msgid "minutes" -msgstr "" - -msgid "navigation Navigation" -msgstr "" +msgstr "Minuten" msgid "no" msgstr "nein" @@ -3860,7 +3953,7 @@ msgid "none" msgstr "keine" msgid "not present" -msgstr "" +msgstr "nicht vorhanden" msgid "off" msgstr "aus" @@ -3872,37 +3965,31 @@ msgid "open" msgstr "offen" msgid "overlay" -msgstr "" +msgstr "Overlay" msgid "relay mode" -msgstr "" +msgstr "Relay-Modus" msgid "routed" msgstr "routed" msgid "server mode" -msgstr "" - -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" +msgstr "Server-Modus" msgid "stateful-only" -msgstr "" +msgstr "nur zustandsorientiert" msgid "stateless" -msgstr "" +msgstr "nur zustandlos" msgid "stateless + stateful" -msgstr "" +msgstr "zustandslos + zustandsorientiert" msgid "tagged" msgstr "tagged" msgid "time units (TUs / 1.024 ms) [1000-65535]" -msgstr "" +msgstr "Zeiteinheiten (TUs / 1024 ms) [1000-65535]" msgid "unknown" msgstr "unbekannt" @@ -3925,6 +4012,18 @@ msgstr "ja" msgid "« Back" msgstr "« Zurück" +#~ msgid "Leasetime" +#~ msgstr "Laufzeit" + +#~ msgid "Optional." +#~ msgstr "Optional" + +#~ msgid "AuthGroup" +#~ msgstr "Berechtigungsgruppe" + +#~ msgid "automatic" +#~ msgstr "automatisch" + #~ msgid "AR Support" #~ msgstr "AR-Unterstützung" diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po index 4a4f63017d..e3969afff0 100644 --- a/modules/luci-base/po/el/base.po +++ b/modules/luci-base/po/el/base.po @@ -426,9 +426,6 @@ msgstr "Συνδεδεμένοι Σταθμοί" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Εξουσιοδότηση" @@ -1473,6 +1470,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1583,6 +1583,9 @@ msgstr "Εγκατεστημένα πακέτα" msgid "Interface" msgstr "Διεπαφή" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Παραμετροποίηση Διεπαφής" @@ -1708,9 +1711,6 @@ msgstr "" msgid "Leasefile" msgstr "Αρχείο Leases" -msgid "Leasetime" -msgstr "Χρόνος Lease" - msgid "Leasetime remaining" msgstr "Υπόλοιπο χρόνου Lease" @@ -2214,15 +2214,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3689,10 +3693,6 @@ msgstr "" msgid "auto" msgstr "αυτόματα" -#, fuzzy -msgid "automatic" -msgstr "στατικό" - msgid "baseT" msgstr "" @@ -3770,9 +3770,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "όχι" @@ -3806,12 +3803,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3848,6 +3839,13 @@ msgstr "ναι" msgid "« Back" msgstr "« Πίσω" +#~ msgid "Leasetime" +#~ msgstr "Χρόνος Lease" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "στατικό" + #~ msgid "AR Support" #~ msgstr "Υποστήριξη AR" diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po index e2c8401509..6537370156 100644 --- a/modules/luci-base/po/en/base.po +++ b/modules/luci-base/po/en/base.po @@ -417,9 +417,6 @@ msgstr "Associated Stations" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Authentication" @@ -1447,6 +1444,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1552,6 +1552,9 @@ msgstr "" msgid "Interface" msgstr "Interface" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1677,9 +1680,6 @@ msgstr "" msgid "Leasefile" msgstr "Leasefile" -msgid "Leasetime" -msgstr "Leasetime" - msgid "Leasetime remaining" msgstr "Leasetime remaining" @@ -2181,15 +2181,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3647,9 +3651,6 @@ msgstr "" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "automatic" - msgid "baseT" msgstr "" @@ -3726,9 +3727,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3762,12 +3760,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3804,6 +3796,12 @@ msgstr "" msgid "« Back" msgstr "« Back" +#~ msgid "Leasetime" +#~ msgstr "Leasetime" + +#~ msgid "automatic" +#~ msgstr "automatic" + #~ msgid "AR Support" #~ msgstr "AR Support" diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po index 9d39621de0..a3476735b5 100644 --- a/modules/luci-base/po/es/base.po +++ b/modules/luci-base/po/es/base.po @@ -423,9 +423,6 @@ msgstr "Estaciones asociadas" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autentificación" @@ -1469,6 +1466,9 @@ msgstr "Longitud de prefijo IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Dirección IPv6" @@ -1581,6 +1581,9 @@ msgstr "Paquetes instalados" msgid "Interface" msgstr "Interfaz" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configuración del interfaz" @@ -1707,9 +1710,6 @@ msgstr "Tiempo de validación de cesión" msgid "Leasefile" msgstr "Archivo de cesiones" -msgid "Leasetime" -msgstr "Tiempo de cesión" - msgid "Leasetime remaining" msgstr "Tiempo de cesión restante" @@ -2219,15 +2219,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3765,10 +3769,6 @@ msgstr "cualquiera" msgid "auto" msgstr "auto" -#, fuzzy -msgid "automatic" -msgstr "estático" - msgid "baseT" msgstr "baseT" @@ -3845,9 +3845,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "no" @@ -3881,12 +3878,6 @@ msgstr "enrutado" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3923,6 +3914,13 @@ msgstr "sí" msgid "« Back" msgstr "« Volver" +#~ msgid "Leasetime" +#~ msgstr "Tiempo de cesión" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "estático" + #~ msgid "AR Support" #~ msgstr "Soporte a AR" diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po index 774559334c..1aab5cb9a4 100644 --- a/modules/luci-base/po/fr/base.po +++ b/modules/luci-base/po/fr/base.po @@ -429,9 +429,6 @@ msgstr "Équipements associés" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Authentification" @@ -1481,6 +1478,9 @@ msgstr "longueur du préfixe IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Adresse IPv6" @@ -1589,6 +1589,9 @@ msgstr "Paquets installés" msgid "Interface" msgstr "Interface" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configuration de l'interface" @@ -1718,9 +1721,6 @@ msgstr "Durée de validité d'un bail" msgid "Leasefile" msgstr "Fichier de baux" -msgid "Leasetime" -msgstr "Durée du bail" - msgid "Leasetime remaining" msgstr "Durée de validité" @@ -2232,15 +2232,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3785,10 +3789,6 @@ msgstr "n'importe lequel" msgid "auto" msgstr "auto" -#, fuzzy -msgid "automatic" -msgstr "statique" - msgid "baseT" msgstr "baseT" @@ -3863,9 +3863,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "non" @@ -3899,12 +3896,6 @@ msgstr "routé" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3941,6 +3932,13 @@ msgstr "oui" msgid "« Back" msgstr "« Retour" +#~ msgid "Leasetime" +#~ msgstr "Durée du bail" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "statique" + #~ msgid "AR Support" #~ msgstr "Gestion du mode AR" diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po index 4b8eb8161c..d8eae1f84f 100644 --- a/modules/luci-base/po/he/base.po +++ b/modules/luci-base/po/he/base.po @@ -418,9 +418,6 @@ msgstr "תחנות קשורות" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "אימות" @@ -1430,6 +1427,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1530,6 +1530,9 @@ msgstr "" msgid "Interface" msgstr "" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1652,9 +1655,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2148,15 +2148,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3600,9 +3604,6 @@ msgstr "כלשהו" msgid "auto" msgstr "אוטומטי" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3677,9 +3678,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "לא" @@ -3713,12 +3711,6 @@ msgstr "מנותב" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po index 4d855e6c97..dfed45de59 100644 --- a/modules/luci-base/po/hu/base.po +++ b/modules/luci-base/po/hu/base.po @@ -422,9 +422,6 @@ msgstr "Kapcsolódó kliensek" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Hitelesítés" @@ -1470,6 +1467,9 @@ msgstr "IPv6 prefix hossz" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-cím" @@ -1579,6 +1579,9 @@ msgstr "Telepített csomagok" msgid "Interface" msgstr "Interfész" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Interfész beállítások" @@ -1707,9 +1710,6 @@ msgstr "Bérlet érvényességi ideje" msgid "Leasefile" msgstr "Bérlet fájl" -msgid "Leasetime" -msgstr "Bérlet időtartama" - msgid "Leasetime remaining" msgstr "A bérletből hátralévő idő" @@ -2222,15 +2222,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3772,9 +3776,6 @@ msgstr "bármelyik" msgid "auto" msgstr "automatikus" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3851,9 +3852,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "nem" @@ -3887,12 +3885,6 @@ msgstr "irányított" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3929,6 +3921,9 @@ msgstr "igen" msgid "« Back" msgstr "« Vissza" +#~ msgid "Leasetime" +#~ msgstr "Bérlet időtartama" + #~ msgid "AR Support" #~ msgstr "AR Támogatás" diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po index 8b6c2d3bb9..04331ab75d 100644 --- a/modules/luci-base/po/it/base.po +++ b/modules/luci-base/po/it/base.po @@ -429,9 +429,6 @@ msgstr "Dispositivi Wi-Fi connessi" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autenticazione PEAP" @@ -1473,6 +1470,9 @@ msgstr "Lunghezza prefisso IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Indirizzo-IPv6" @@ -1584,6 +1584,9 @@ msgstr "Pacchetti installati" msgid "Interface" msgstr "Interfaccia" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configurazione Interfaccia" @@ -1709,9 +1712,6 @@ msgstr "Periodo di Validità del Lease" msgid "Leasefile" msgstr "File di lease" -msgid "Leasetime" -msgstr "Tempo di lease" - msgid "Leasetime remaining" msgstr "Tempo lease residuo" @@ -2220,15 +2220,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3724,10 +3728,6 @@ msgstr "qualsiasi" msgid "auto" msgstr "auto" -#, fuzzy -msgid "automatic" -msgstr "statico" - msgid "baseT" msgstr "baseT" @@ -3804,9 +3804,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "no" @@ -3840,12 +3837,6 @@ msgstr "instradato" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3882,6 +3873,13 @@ msgstr "Sì" msgid "« Back" msgstr "« Indietro" +#~ msgid "Leasetime" +#~ msgstr "Tempo di lease" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "statico" + #~ msgid "AR Support" #~ msgstr "Supporto AR" diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po index 3101e0549b..714b064dcb 100644 --- a/modules/luci-base/po/ja/base.po +++ b/modules/luci-base/po/ja/base.po @@ -419,9 +419,6 @@ msgstr "認証済み端末" msgid "Auth Group" msgstr "認証グループ" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "認証" @@ -1469,6 +1466,9 @@ msgstr "IPv6 プレフィクス長" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-アドレス" @@ -1577,6 +1577,9 @@ msgstr "インストール済みパッケージ" msgid "Interface" msgstr "インターフェース" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "インターフェース設定" @@ -1702,9 +1705,6 @@ msgstr "リース有効時間" msgid "Leasefile" msgstr "リースファイル" -msgid "Leasetime" -msgstr "リース時間" - msgid "Leasetime remaining" msgstr "残りリース時間" @@ -2216,15 +2216,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "(オプション)" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3756,9 +3760,6 @@ msgstr "全て" msgid "auto" msgstr "自動" -msgid "automatic" -msgstr "自動" - msgid "baseT" msgstr "baseT" @@ -3835,9 +3836,6 @@ msgstr "最小値 1280、最大値 1480" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "いいえ" @@ -3871,12 +3869,6 @@ msgstr "routed" msgid "server mode" msgstr "サーバー モード" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "ステートフルのみ" @@ -3913,6 +3905,15 @@ msgstr "はい" msgid "« Back" msgstr "« 戻る" +#~ msgid "Leasetime" +#~ msgstr "リース時間" + +#~ msgid "Optional." +#~ msgstr "(オプション)" + +#~ msgid "automatic" +#~ msgstr "自動" + #~ msgid "AR Support" #~ msgstr "ARサポート" diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po index 7683df180a..587b4890af 100644 --- a/modules/luci-base/po/ko/base.po +++ b/modules/luci-base/po/ko/base.po @@ -411,9 +411,6 @@ msgstr "연결된 station 들" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "" @@ -1446,6 +1443,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-주소" @@ -1546,6 +1546,9 @@ msgstr "설치된 패키지" msgid "Interface" msgstr "인터페이스" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "인터페이스 설정" @@ -1668,9 +1671,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "임대 시간" - msgid "Leasetime remaining" msgstr "남아있는 임대 시간" @@ -2172,15 +2172,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3656,9 +3660,6 @@ msgstr "" msgid "auto" msgstr "" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3735,9 +3736,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3771,12 +3769,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3812,3 +3804,6 @@ msgstr "" msgid "« Back" msgstr "" + +#~ msgid "Leasetime" +#~ msgstr "임대 시간" diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po index f847e1a0c5..97912183f6 100644 --- a/modules/luci-base/po/ms/base.po +++ b/modules/luci-base/po/ms/base.po @@ -406,9 +406,6 @@ msgstr "Associated Stesen" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Authentifizierung" @@ -1417,6 +1414,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1522,6 +1522,9 @@ msgstr "" msgid "Interface" msgstr "Interface" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1648,9 +1651,6 @@ msgstr "" msgid "Leasefile" msgstr "Sewa fail" -msgid "Leasetime" -msgstr "Masa penyewaan" - msgid "Leasetime remaining" msgstr "Sisa masa penyewaan" @@ -2153,15 +2153,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3620,9 +3624,6 @@ msgstr "" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "automatik" - msgid "baseT" msgstr "" @@ -3697,9 +3698,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3733,12 +3731,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3775,6 +3767,12 @@ msgstr "" msgid "« Back" msgstr "« Kembali" +#~ msgid "Leasetime" +#~ msgstr "Masa penyewaan" + +#~ msgid "automatic" +#~ msgstr "automatik" + #~ msgid "AR Support" #~ msgstr "AR-Penyokong" diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po index 65fc39e39a..9e3df81f84 100644 --- a/modules/luci-base/po/no/base.po +++ b/modules/luci-base/po/no/base.po @@ -415,9 +415,6 @@ msgstr "Tilkoblede Klienter" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Godkjenning" @@ -1456,6 +1453,9 @@ msgstr "IPv6 prefikslengde" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-Adresse" @@ -1560,6 +1560,9 @@ msgstr "Installerte pakker" msgid "Interface" msgstr "Grensesnitt" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Grensesnitt Konfigurasjon" @@ -1685,9 +1688,6 @@ msgstr "Gyldig leietid" msgid "Leasefile" msgstr "<abbr title=\"Leasefile\">Leie-fil</abbr>" -msgid "Leasetime" -msgstr "<abbr title=\"Leasetime\">Leietid</abbr>" - msgid "Leasetime remaining" msgstr "Gjenværende leietid" @@ -2197,15 +2197,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3738,9 +3742,6 @@ msgstr "enhver" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3817,9 +3818,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "nei" @@ -3853,12 +3851,6 @@ msgstr "rutet" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3895,6 +3887,9 @@ msgstr "ja" msgid "« Back" msgstr "« Tilbake" +#~ msgid "Leasetime" +#~ msgstr "<abbr title=\"Leasetime\">Leietid</abbr>" + #~ msgid "AR Support" #~ msgstr "AR Støtte" diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po index 2223f53078..98067c8654 100644 --- a/modules/luci-base/po/pl/base.po +++ b/modules/luci-base/po/pl/base.po @@ -429,9 +429,6 @@ msgstr "Połączone stacje" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Uwierzytelnianie" @@ -1492,6 +1489,9 @@ msgstr "Długość prefiksu IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Adres IPv6" @@ -1602,6 +1602,9 @@ msgstr "Zainstalowane pakiety" msgid "Interface" msgstr "Interfejs" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Konfiguracja Interfejsu" @@ -1729,9 +1732,6 @@ msgstr "Czas ważności dzierżawy" msgid "Leasefile" msgstr "Plik dzierżaw" -msgid "Leasetime" -msgstr "Czas dzierżawy" - msgid "Leasetime remaining" msgstr "Pozostały czas dzierżawy" @@ -2241,15 +2241,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3802,9 +3806,6 @@ msgstr "dowolny" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3881,9 +3882,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "nie" @@ -3918,12 +3916,6 @@ msgstr "routowane" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3960,6 +3952,9 @@ msgstr "tak" msgid "« Back" msgstr "« Wróć" +#~ msgid "Leasetime" +#~ msgstr "Czas dzierżawy" + # Wydaje mi się że brakuje litery R... #~ msgid "AR Support" #~ msgstr "Wsparcie dla ARP" diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po index 2767ceea5d..f2ba57555f 100644 --- a/modules/luci-base/po/pt-br/base.po +++ b/modules/luci-base/po/pt-br/base.po @@ -455,9 +455,6 @@ msgstr "Estações associadas" msgid "Auth Group" msgstr "Grupo de Autenticação" -msgid "AuthGroup" -msgstr "Grupo de Autenticação" - msgid "Authentication" msgstr "Autenticação" @@ -1540,6 +1537,9 @@ msgstr "Tamanho Prefixo IPv6" msgid "IPv6 routed prefix" msgstr "Prefixo roteável IPv6" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Endereço IPv6" @@ -1654,6 +1654,9 @@ msgstr "Pacotes instalados" msgid "Interface" msgstr "Interface" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configuração da Interface" @@ -1782,9 +1785,6 @@ msgstr "Tempo de validade da atribuição" msgid "Leasefile" msgstr "Arquivo de atribuições" -msgid "Leasetime" -msgstr "Tempo de atribuição do DHCP" - msgid "Leasetime remaining" msgstr "Tempo restante da atribuição" @@ -2327,15 +2327,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "Opcional, para usar quando a conta SIXXS tem mais de um túnel" -msgid "Optional." -msgstr "Opcional." - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3932,9 +3936,6 @@ msgstr "qualquer" msgid "auto" msgstr "automático" -msgid "automatic" -msgstr "automático" - msgid "baseT" msgstr "baseT" @@ -4012,9 +4013,6 @@ msgstr "mínimo 1280, máximo 1480" msgid "minutes" msgstr "minutos" -msgid "navigation Navigation" -msgstr "navegação Navegação" - # Is this yes/no or no like in no one? msgid "no" msgstr "não" @@ -4049,12 +4047,6 @@ msgstr "roteado" msgid "server mode" msgstr "modo servidor" -msgid "skiplink1 Skip to navigation" -msgstr "skiplink1 Pular para a navegação" - -msgid "skiplink2 Skip to content" -msgstr "skiplink2 Pular para o conteúdo" - msgid "stateful-only" msgstr "somente com estado" @@ -4091,6 +4083,27 @@ msgstr "sim" msgid "« Back" msgstr "« Voltar" +#~ msgid "Leasetime" +#~ msgstr "Tempo de atribuição do DHCP" + +#~ msgid "Optional." +#~ msgstr "Opcional." + +#~ msgid "navigation Navigation" +#~ msgstr "navegação Navegação" + +#~ msgid "skiplink1 Skip to navigation" +#~ msgstr "skiplink1 Pular para a navegação" + +#~ msgid "skiplink2 Skip to content" +#~ msgstr "skiplink2 Pular para o conteúdo" + +#~ msgid "AuthGroup" +#~ msgstr "Grupo de Autenticação" + +#~ msgid "automatic" +#~ msgstr "automático" + #~ msgid "AR Support" #~ msgstr "Suporte AR" diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po index 2c1567397f..cb90df5435 100644 --- a/modules/luci-base/po/pt/base.po +++ b/modules/luci-base/po/pt/base.po @@ -428,9 +428,6 @@ msgstr "Estações Associadas" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autenticação" @@ -1477,6 +1474,9 @@ msgstr "Comprimento do prefixo IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "Endereço-IPv6" @@ -1583,6 +1583,9 @@ msgstr "Instalar pacotes" msgid "Interface" msgstr "Interface" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configuração da Interface" @@ -1709,9 +1712,6 @@ msgstr "Tempo de validade da concessão" msgid "Leasefile" msgstr "Ficheiro de concessões" -msgid "Leasetime" -msgstr "Tempo de concessão" - msgid "Leasetime remaining" msgstr "Tempo de atribuição restante" @@ -2221,15 +2221,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3733,10 +3737,6 @@ msgstr "qualquer" msgid "auto" msgstr "automático" -#, fuzzy -msgid "automatic" -msgstr "estático" - msgid "baseT" msgstr "baseT" @@ -3814,9 +3814,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "não" @@ -3850,12 +3847,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3892,6 +3883,13 @@ msgstr "sim" msgid "« Back" msgstr "« Voltar" +#~ msgid "Leasetime" +#~ msgstr "Tempo de concessão" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "estático" + #~ msgid "AR Support" #~ msgstr "Suporte AR" diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po index 1de4157766..d51f4d05cb 100644 --- a/modules/luci-base/po/ro/base.po +++ b/modules/luci-base/po/ro/base.po @@ -414,9 +414,6 @@ msgstr "Statiile asociate" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Autentificare" @@ -1424,6 +1421,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1524,6 +1524,9 @@ msgstr "Pachete instalate" msgid "Interface" msgstr "Interfata" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Configurarea interfetei" @@ -1649,9 +1652,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2145,15 +2145,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3593,9 +3597,6 @@ msgstr "oricare" msgid "auto" msgstr "auto" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3670,9 +3671,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "nu" @@ -3706,12 +3704,6 @@ msgstr "rutat" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po index 29077054f8..d30c643fce 100644 --- a/modules/luci-base/po/ru/base.po +++ b/modules/luci-base/po/ru/base.po @@ -427,9 +427,6 @@ msgstr "Подключенные клиенты" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Аутентификация" @@ -1476,6 +1473,9 @@ msgstr "Длина префикса IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-адрес" @@ -1586,6 +1586,9 @@ msgstr "Установленные пакеты" msgid "Interface" msgstr "Интерфейс" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Конфигурация интерфейса" @@ -1713,9 +1716,6 @@ msgstr "Срок действия аренды" msgid "Leasefile" msgstr "Файл аренд" -msgid "Leasetime" -msgstr "Время аренды" - msgid "Leasetime remaining" msgstr "Оставшееся время аренды" @@ -2227,15 +2227,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3774,10 +3778,6 @@ msgstr "любой" msgid "auto" msgstr "авто" -#, fuzzy -msgid "automatic" -msgstr "статический" - msgid "baseT" msgstr "baseT" @@ -3855,9 +3855,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "нет" @@ -3891,12 +3888,6 @@ msgstr "маршрутизируемый" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3933,6 +3924,13 @@ msgstr "да" msgid "« Back" msgstr "« Назад" +#~ msgid "Leasetime" +#~ msgstr "Время аренды" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "статический" + #~ msgid "AR Support" #~ msgstr "Поддержка AR" diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po index 318d6f3081..f4037ea351 100644 --- a/modules/luci-base/po/sk/base.po +++ b/modules/luci-base/po/sk/base.po @@ -400,9 +400,6 @@ msgstr "" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "" @@ -1402,6 +1399,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1502,6 +1502,9 @@ msgstr "" msgid "Interface" msgstr "" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1624,9 +1627,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2120,15 +2120,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3561,9 +3565,6 @@ msgstr "" msgid "auto" msgstr "" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3638,9 +3639,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3674,12 +3672,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po index 4e262efb16..6af6d610f2 100644 --- a/modules/luci-base/po/sv/base.po +++ b/modules/luci-base/po/sv/base.po @@ -406,9 +406,6 @@ msgstr "" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "" @@ -1408,6 +1405,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1508,6 +1508,9 @@ msgstr "" msgid "Interface" msgstr "" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1630,9 +1633,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2126,15 +2126,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3567,9 +3571,6 @@ msgstr "" msgid "auto" msgstr "" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3644,9 +3645,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3680,12 +3678,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot index 704c295f02..d3fc6a7324 100644 --- a/modules/luci-base/po/templates/base.pot +++ b/modules/luci-base/po/templates/base.pot @@ -393,9 +393,6 @@ msgstr "" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "" @@ -1395,6 +1392,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1495,6 +1495,9 @@ msgstr "" msgid "Interface" msgstr "" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1617,9 +1620,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2113,15 +2113,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3554,9 +3558,6 @@ msgstr "" msgid "auto" msgstr "" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3631,9 +3632,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3667,12 +3665,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po index 5f829e0b7e..afabfa29d4 100644 --- a/modules/luci-base/po/tr/base.po +++ b/modules/luci-base/po/tr/base.po @@ -413,9 +413,6 @@ msgstr "" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Kimlik doğrulama" @@ -1415,6 +1412,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1515,6 +1515,9 @@ msgstr "" msgid "Interface" msgstr "" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1637,9 +1640,6 @@ msgstr "" msgid "Leasefile" msgstr "" -msgid "Leasetime" -msgstr "" - msgid "Leasetime remaining" msgstr "" @@ -2133,15 +2133,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3576,9 +3580,6 @@ msgstr "herhangi" msgid "auto" msgstr "otomatik" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "" @@ -3653,9 +3654,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "hayır" @@ -3689,12 +3687,6 @@ msgstr "yönlendirildi" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po index 34bfb29160..7ee06885ff 100644 --- a/modules/luci-base/po/uk/base.po +++ b/modules/luci-base/po/uk/base.po @@ -437,9 +437,6 @@ msgstr "Приєднані станції" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Автентифікація" @@ -1484,6 +1481,9 @@ msgstr "Довжина префікса IPv6" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-адреса" @@ -1594,6 +1594,9 @@ msgstr "Інстальовані пакети" msgid "Interface" msgstr "Інтерфейс" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "Конфігурація інтерфейсу" @@ -1720,9 +1723,6 @@ msgstr "Час чинності оренди" msgid "Leasefile" msgstr "Файл оренд" -msgid "Leasetime" -msgstr "Час оренди" - msgid "Leasetime remaining" msgstr "Час оренди, що лишився" @@ -2235,15 +2235,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3789,9 +3793,6 @@ msgstr "будь-який" msgid "auto" msgstr "авто" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3870,9 +3871,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "ні" @@ -3906,12 +3904,6 @@ msgstr "спрямовано" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3948,6 +3940,9 @@ msgstr "так" msgid "« Back" msgstr "« Назад" +#~ msgid "Leasetime" +#~ msgstr "Час оренди" + #~ msgid "AR Support" #~ msgstr "Підтримка AR" diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po index 213e5efb2f..239e1c251d 100644 --- a/modules/luci-base/po/vi/base.po +++ b/modules/luci-base/po/vi/base.po @@ -407,9 +407,6 @@ msgstr "" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "Xác thực" @@ -1422,6 +1419,9 @@ msgstr "" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "" @@ -1527,6 +1527,9 @@ msgstr "" msgid "Interface" msgstr "Giao diện " +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "" @@ -1652,9 +1655,6 @@ msgstr "" msgid "Leasefile" msgstr "Leasefile" -msgid "Leasetime" -msgstr "Leasetime" - msgid "Leasetime remaining" msgstr "Leasetime còn lại" @@ -2156,15 +2156,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3620,10 +3624,6 @@ msgstr "" msgid "auto" msgstr "tự động" -#, fuzzy -msgid "automatic" -msgstr "thống kê" - msgid "baseT" msgstr "" @@ -3700,9 +3700,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "" @@ -3736,12 +3733,6 @@ msgstr "" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3778,6 +3769,13 @@ msgstr "" msgid "« Back" msgstr "" +#~ msgid "Leasetime" +#~ msgstr "Leasetime" + +#, fuzzy +#~ msgid "automatic" +#~ msgstr "thống kê" + #~ msgid "AR Support" #~ msgstr "Hỗ trợ AR" diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po index eb84b22f17..b38cce90fa 100644 --- a/modules/luci-base/po/zh-cn/base.po +++ b/modules/luci-base/po/zh-cn/base.po @@ -411,9 +411,6 @@ msgstr "已连接站点" msgid "Auth Group" msgstr "认证组" -msgid "AuthGroup" -msgstr "认证组" - msgid "Authentication" msgstr "认证" @@ -1430,6 +1427,9 @@ msgstr "IPv6 地址前缀长度" msgid "IPv6 routed prefix" msgstr "IPv6 路由前缀" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-地址" @@ -1532,6 +1532,9 @@ msgstr "已安装软件包" msgid "Interface" msgstr "接口" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "接口配置" @@ -1654,9 +1657,6 @@ msgstr "有效租期" msgid "Leasefile" msgstr "租约文件" -msgid "Leasetime" -msgstr "租用时间" - msgid "Leasetime remaining" msgstr "剩余租期" @@ -2163,9 +2163,6 @@ msgstr "可选,设置这个选项会覆盖默认设定的服务器 (tic.sixxs. msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "可选,如果你的 SIXXS 账号拥有一个以上的隧道请设置此项." -msgid "Optional." -msgstr "可选。" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." @@ -2173,6 +2170,13 @@ msgstr "" "可选,传出加密数据包的 32 位标记。请输入十六进制值,以 <code>0x</code> 开头。" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "可选,Base64 编码的预共享密钥。" @@ -3015,7 +3019,7 @@ msgid "Switch VLAN" msgstr "交换机 VLAN" msgid "Switch protocol" -msgstr "交换机协议" +msgstr "切换协议" msgid "Sync with browser" msgstr "同步浏览器时间" @@ -3655,9 +3659,6 @@ msgstr "任意" msgid "auto" msgstr "自动" -msgid "automatic" -msgstr "自动" - msgid "baseT" msgstr "baseT" @@ -3732,9 +3733,6 @@ msgstr "最小值 1280,最大值 1480" msgid "minutes" msgstr "分钟" -msgid "navigation Navigation" -msgstr "导航" - msgid "no" msgstr "否" @@ -3768,12 +3766,6 @@ msgstr "已路由" msgid "server mode" msgstr "服务器模式" -msgid "skiplink1 Skip to navigation" -msgstr "skiplink1 跳转到导航" - -msgid "skiplink2 Skip to content" -msgstr "skiplink2 跳到内容" - msgid "stateful-only" msgstr "有状态的" @@ -3810,6 +3802,27 @@ msgstr "是" msgid "« Back" msgstr "« 后退" +#~ msgid "Leasetime" +#~ msgstr "租用时间" + +#~ msgid "Optional." +#~ msgstr "可选。" + +#~ msgid "navigation Navigation" +#~ msgstr "导航" + +#~ msgid "skiplink1 Skip to navigation" +#~ msgstr "skiplink1 跳转到导航" + +#~ msgid "skiplink2 Skip to content" +#~ msgstr "skiplink2 跳到内容" + +#~ msgid "AuthGroup" +#~ msgstr "认证组" + +#~ msgid "automatic" +#~ msgstr "自动" + #~ msgid "AR Support" #~ msgstr "AR支持" diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po index e1d97dc336..891597616c 100644 --- a/modules/luci-base/po/zh-tw/base.po +++ b/modules/luci-base/po/zh-tw/base.po @@ -410,9 +410,6 @@ msgstr "已連接站點" msgid "Auth Group" msgstr "" -msgid "AuthGroup" -msgstr "" - msgid "Authentication" msgstr "認證" @@ -1433,6 +1430,9 @@ msgstr "IPv6字首長度" msgid "IPv6 routed prefix" msgstr "" +msgid "IPv6 suffix" +msgstr "" + msgid "IPv6-Address" msgstr "IPv6-位址" @@ -1537,6 +1537,9 @@ msgstr "安裝軟體包" msgid "Interface" msgstr "介面" +msgid "Interface %q device auto-migrated from %q to %q." +msgstr "" + msgid "Interface Configuration" msgstr "介面設定" @@ -1660,9 +1663,6 @@ msgstr "租賃有效時間" msgid "Leasefile" msgstr "租賃檔案" -msgid "Leasetime" -msgstr "租賃時間" - msgid "Leasetime remaining" msgstr "租賃保留時間" @@ -2161,15 +2161,19 @@ msgstr "" msgid "Optional, use when the SIXXS account has more than one tunnel" msgstr "" -msgid "Optional." -msgstr "" - msgid "" "Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, " "starting with <code>0x</code>." msgstr "" 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 "" + +msgid "" "Optional. Base64-encoded preshared key. Adds in an additional layer of " "symmetric-key cryptography for post-quantum resistance." msgstr "" @@ -3657,9 +3661,6 @@ msgstr "任意" msgid "auto" msgstr "自動" -msgid "automatic" -msgstr "" - msgid "baseT" msgstr "baseT" @@ -3736,9 +3737,6 @@ msgstr "" msgid "minutes" msgstr "" -msgid "navigation Navigation" -msgstr "" - msgid "no" msgstr "無" @@ -3772,12 +3770,6 @@ msgstr "路由" msgid "server mode" msgstr "" -msgid "skiplink1 Skip to navigation" -msgstr "" - -msgid "skiplink2 Skip to content" -msgstr "" - msgid "stateful-only" msgstr "" @@ -3814,6 +3806,9 @@ msgstr "是的" msgid "« Back" msgstr "« 倒退" +#~ msgid "Leasetime" +#~ msgstr "租賃時間" + #~ msgid "AR Support" #~ msgstr "AR支援" diff --git a/modules/luci-base/root/etc/config/ucitrack b/modules/luci-base/root/etc/config/ucitrack index c3741ba780..d083922955 100644 --- a/modules/luci-base/root/etc/config/ucitrack +++ b/modules/luci-base/root/etc/config/ucitrack @@ -37,6 +37,7 @@ config qos config system option init led list affects luci_statistics + list affects dhcp config luci_splash option init luci_splash diff --git a/modules/luci-mod-admin-full/Makefile b/modules/luci-mod-admin-full/Makefile index 5fed2797ec..36ddf13f16 100644 --- a/modules/luci-mod-admin-full/Makefile +++ b/modules/luci-mod-admin-full/Makefile @@ -10,6 +10,7 @@ LUCI_TITLE:=LuCI Administration - full-featured for full control LUCI_DEPENDS:=+luci-base PKG_BUILD_DEPENDS:=iwinfo +PKG_LICENSE:=Apache-2.0 include ../../luci.mk diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua index ad575e0d26..22e1b7e173 100644 --- a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua +++ b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua @@ -139,14 +139,12 @@ function action_connections() end function action_nameinfo(...) - local i - local rv = { } - for i = 1, select('#', ...) do - local addr = select(i, ...) - local fqdn = nixio.getnameinfo(addr) - rv[addr] = fqdn or (addr:match(":") and "[%s]" % addr or addr) - end + local util = require "luci.util" luci.http.prepare_content("application/json") - luci.http.write_json(rv) + luci.http.write_json(util.ubus("network.rrdns", "lookup", { + addrs = { ... }, + timeout = 5000, + limit = 1000 + }) or { }) end diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua index f418ecb40f..c7d330e68d 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua @@ -276,6 +276,16 @@ name = s:option(Value, "name", translate("Hostname")) name.datatype = "hostname" name.rmempty = true +function name.write(self, section, value) + Value.write(self, section, value) + m:set(section, "dns", "1") +end + +function name.remove(self, section) + Value.remove(self, section) + m:del(section, "dns") +end + mac = s:option(Value, "mac", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address")) mac.datatype = "list(macaddr)" mac.rmempty = true diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua index 0318522281..4fc71cefab 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua @@ -445,7 +445,7 @@ if has_dnsmasq and net:proto() == "static" then limit.datatype = "uinteger" limit.default = "150" - local ltime = s:taboption("general", Value, "leasetime", translate("Leasetime"), + local ltime = s:taboption("general", Value, "leasetime", translate("Lease time"), translate("Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>).")) ltime.rmempty = true ltime.default = "12h" diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua index 902767c903..89a73a5ca8 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua @@ -12,6 +12,35 @@ nw.init(m.uci) local topologies = nw:get_switch_topologies() or {} +local update_interfaces = function(old_ifname, new_ifname) + local info = { } + + m.uci:foreach("network", "interface", function(section) + local old_ifnames = m.uci:get("network", section[".name"], "ifname") + local new_ifnames = { } + local cur_ifname + local changed = false + for cur_ifname in luci.util.imatch(old_ifnames) do + if cur_ifname == old_ifname then + new_ifnames[#new_ifnames+1] = new_ifname + changed = true + else + new_ifnames[#new_ifnames+1] = cur_ifname + end + end + if changed then + m.uci:set("network", section[".name"], "ifname", table.concat(new_ifnames, " ")) + + info[#info+1] = translatef("Interface %q device auto-migrated from %q to %q.", + section[".name"], old_ifname, new_ifname) + end + end) + + if #info > 0 then + m.message = (m.message and m.message .. "\n" or "") .. table.concat(info, "\n") + end +end + m.uci:foreach("network", "switch", function(x) local sid = x['.name'] @@ -259,17 +288,32 @@ m.uci:foreach("network", "switch", -- When writing the "vid" or "vlan" option, serialize the port states -- as well and write them as "ports" option to uci. - vid.write = function(self, section, value) + vid.write = function(self, section, new_vid) local o local p = { } - for _, o in ipairs(port_opts) do - local v = o:formvalue(section) - if v == "t" then - p[#p+1] = o.option .. v - elseif v == "u" then + local new_tag = o:formvalue(section) + if new_tag == "t" then + p[#p+1] = o.option .. new_tag + elseif new_tag == "u" then p[#p+1] = o.option end + + if o.info and o.info.device then + local old_tag = o:cfgvalue(section) + local old_vid = self:cfgvalue(section) + if old_tag ~= new_tag or old_vid ~= new_vid then + local old_ifname = (old_tag == "u") and o.info.device + or "%s.%s" %{ o.info.device, old_vid } + + local new_ifname = (new_tag == "u") and o.info.device + or "%s.%s" %{ o.info.device, new_vid } + + if old_ifname ~= new_ifname then + update_interfaces(old_ifname, new_ifname) + end + end + end end if enable_vlan4k then @@ -277,7 +321,7 @@ m.uci:foreach("network", "switch", end m:set(section, "ports", table.concat(p, " ")) - return Value.write(self, section, value) + return Value.write(self, section, new_vid) end -- Fallback to "vlan" option if "vid" option is supported but unset. @@ -301,6 +345,7 @@ m.uci:foreach("network", "switch", po.cfgvalue = portvalue po.validate = portvalidate po.write = function() end + po.info = pt port_opts[#port_opts+1] = po end diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua index 3a08d81d0a..e1e21bcb58 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua @@ -600,9 +600,9 @@ if hwtype == "mac80211" or hwtype == "prism2" then local has_sta_eap = (os.execute("wpa_supplicant -veap >/dev/null 2>/dev/null") == 0) if hostapd and supplicant then - encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) - encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) - encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) + encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}) + encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}) + encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}) if has_ap_eap and has_sta_eap then encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) @@ -620,9 +620,9 @@ if hwtype == "mac80211" or hwtype == "prism2" then "and ad-hoc mode) to be installed." ) elseif not hostapd and supplicant then - encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"}) - encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"}) - encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"}) + encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"}) + encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"}) + encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"}, {mode="adhoc"}) if has_sta_eap then encr:value("wpa", "WPA-EAP", {mode="sta"}, {mode="sta-wds"}) encr:value("wpa2", "WPA2-EAP", {mode="sta"}, {mode="sta-wds"}) diff --git a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua index c895430a3b..7bc4df859b 100644 --- a/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua +++ b/modules/luci-mod-admin-mini/luasrc/model/cbi/mini/network.lua @@ -5,15 +5,40 @@ local wa = require "luci.tools.webadmin" local sys = require "luci.sys" local fs = require "nixio.fs" +local nx = require "nixio" local has_pptp = fs.access("/usr/sbin/pptp") local has_pppoe = fs.glob("/usr/lib/pppd/*/rp-pppoe.so")() local network = luci.model.uci.cursor_state():get_all("network") -local netstat = sys.net.deviceinfo() +local netstat = {} local ifaces = {} +local k, v +for k, v in ipairs(nx.getifaddrs()) do + if v.family == "packet" then + local d = v.data + d[1] = d.rx_bytes + d[2] = d.rx_packets + d[3] = d.rx_errors + d[4] = d.rx_dropped + d[5] = 0 + d[6] = 0 + d[7] = 0 + d[8] = d.multicast + d[9] = d.tx_bytes + d[10] = d.tx_packets + d[11] = d.tx_errors + d[12] = d.tx_dropped + d[13] = 0 + d[14] = d.collisions + d[15] = 0 + d[16] = 0 + netstat[v.name] = d + end +end + for k, v in pairs(network) do if v[".type"] == "interface" and k ~= "loopback" then table.insert(ifaces, v) diff --git a/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua index 84669dce84..e2291e5ca6 100644 --- a/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua +++ b/modules/luci-mod-freifunk/luasrc/controller/freifunk/freifunk.lua @@ -70,7 +70,7 @@ function index() page.target = cbi("freifunk/basics") page.title = _("Basic Settings") page.order = 5 - + page = node("admin", "freifunk", "basics", "profile") page.target = cbi("freifunk/profile") page.title = _("Profile") @@ -102,7 +102,7 @@ function zeroes() local zeroes = string.rep(string.char(0), 8192) local cnt = 0 local lim = 1024 * 1024 * 1024 - + http.prepare_content("application/x-many-zeroes") while cnt < lim do @@ -188,7 +188,6 @@ function jsonstatus() root.network = {} root.wireless = {devices = {}, interfaces = {}, status = {}} local wifs = root.wireless.interfaces - local netdata = luci.sys.net.deviceinfo() or {} for _, vif in ipairs(ffwifs) do root.network[vif] = cursor:get_all("network", vif) diff --git a/modules/luci-mod-rpc/Makefile b/modules/luci-mod-rpc/Makefile index e64c86c628..bc1f6d2756 100644 --- a/modules/luci-mod-rpc/Makefile +++ b/modules/luci-mod-rpc/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI RPC - JSON-RPC API LUCI_DEPENDS:=+luci-lib-json +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/protocols/luci-proto-ipv6/Makefile b/protocols/luci-proto-ipv6/Makefile index e749bc9e83..761ee2f9f5 100644 --- a/protocols/luci-proto-ipv6/Makefile +++ b/protocols/luci-proto-ipv6/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Support for DHCPv6/6in4/6to4/6rd/DS-Lite/aiccu LUCI_DEPENDS:= +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua index c843161c6f..76caedcb37 100644 --- a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua +++ b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua @@ -14,7 +14,7 @@ o.default = "try" o = section:taboption("general", Value, "reqprefix", translate("Request IPv6-prefix of length")) -o:value("auto", translate("automatic")) +o:value("auto", translate("Automatic")) o:value("no", translate("disabled")) o:value("48") o:value("52") diff --git a/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua b/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua index ad3f2edf0b..5adfccae48 100644 --- a/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua +++ b/protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua @@ -19,8 +19,6 @@ port = section:taboption("general", Value, "port", translate("VPN Server port")) port.placeholder = "443" port.datatype = "port" -ifname = section:taboption("general", Value, "interface", translate("Output Interface")) -ifname.template = "cbi/network_netlist" defaultroute = section:taboption("advanced", Flag, "defaultroute", translate("Use default gateway"), @@ -38,11 +36,13 @@ metric:depends("defaultroute", defaultroute.enabled) section:taboption("general", Value, "serverhash", translate("VPN Server's certificate SHA1 hash")) -section:taboption("general", Value, "authgroup", translate("AuthGroup")) +section:taboption("general", Value, "authgroup", translate("Auth Group")) username = section:taboption("general", Value, "username", translate("Username")) password = section:taboption("general", Value, "password", translate("Password")) password.password = true +password2 = section:taboption("general", Value, "password2", translate("Password2")) +password2.password = true cert = section:taboption("advanced", Value, "usercert", translate("User certificate (PEM encoded)")) @@ -84,3 +84,7 @@ function ca.write(self, section, value) value = value:gsub("\r\n?", "\n") nixio.fs.writefile(oc_ca_file, value) end + +mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU")) +mtu.placeholder = "1406" +mtu.datatype = "max(9200)" diff --git a/protocols/luci-proto-ppp/Makefile b/protocols/luci-proto-ppp/Makefile index 70db744ea6..dd1859ef54 100644 --- a/protocols/luci-proto-ppp/Makefile +++ b/protocols/luci-proto-ppp/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Support for PPP/PPPoE/PPPoA/PPtP LUCI_DEPENDS:= +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua index 11ef10b5a7..fa0db3412e 100644 --- a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua +++ b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua @@ -52,7 +52,7 @@ metric = section:taboption( Value, "metric", translate("Metric"), - translate("Optional.") + translate("Optional") ) metric.datatype = "uinteger" metric.placeholder = "0" @@ -70,21 +70,6 @@ mtu.datatype = "range(1280,1420)" mtu.placeholder = "1420" mtu.optional = true - -preshared_key = section:taboption( - "advanced", - Value, - "preshared_key", - translate("Preshared Key"), - translate("Optional. Base64-encoded preshared key. " .. - "Adds in an additional layer of symmetric-key " .. - "cryptography for post-quantum resistance.") -) -preshared_key.password = true -preshared_key.datatype = "and(base64,rangelength(44,44))" -preshared_key.optional = true - - fwmark = section:taboption( "advanced", Value, @@ -121,6 +106,19 @@ public_key.datatype = "and(base64,rangelength(44,44))" public_key.optional = false +preshared_key = peers:option( + Value, + "preshared_key", + translate("Preshared Key"), + translate("Optional. Base64-encoded preshared key. " .. + "Adds in an additional layer of symmetric-key " .. + "cryptography for post-quantum resistance.") +) +preshared_key.password = true +preshared_key.datatype = "and(base64,rangelength(44,44))" +preshared_key.optional = true + + allowed_ips = peers:option( DynamicList, "allowed_ips", diff --git a/themes/luci-theme-bootstrap/Makefile b/themes/luci-theme-bootstrap/Makefile index c4e684ed18..1bb205ee05 100644 --- a/themes/luci-theme-bootstrap/Makefile +++ b/themes/luci-theme-bootstrap/Makefile @@ -9,6 +9,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Bootstrap Theme (default) LUCI_DEPENDS:= +PKG_LICENSE:=Apache-2.0 + include ../../luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm b/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm index b4534090fb..342a9d4088 100644 --- a/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm +++ b/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm @@ -105,8 +105,8 @@ <%- end -%> <p class="skiplink"> -<span id="skiplink1"><a href="#navigation"><%:skiplink1 Skip to navigation%></a></span> -<span id="skiplink2"><a href="#content"><%:skiplink2 Skip to content%></a></span> +<span id="skiplink1"><a href="#navigation"><%:Skip to navigation%></a></span> +<span id="skiplink2"><a href="#content"><%:Skip to content%></a></span> </p> <div id="header"> @@ -163,7 +163,7 @@ %> <div id="menubar"> -<h2 class="navigation"><a id="navigation" name="navigation"><%:navigation Navigation%></a></h2> +<h2 class="navigation"><a id="navigation" name="navigation"><%:Navigation%></a></h2> <ul id="mainmenu" class="dropdowns"> <% local childs = disp.node_childs(cattree) |