From: Hannu Nyman Date: Tue, 25 Jul 2017 05:35:53 +0000 (+0300) Subject: Merge pull request #1251 from dibdot/luci-app-travelmate X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=314dd1aa11d1fbe3501928e89823e2521eb651d3;hp=5dd6be451372f44363bd0428c2e44cf912540e50 Merge pull request #1251 from dibdot/luci-app-travelmate luci-app-travelmate: enhancements & fixes --- 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 f71fb7ba4..68f9c8897 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", "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 ac470fedd..07fd783ed 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 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 72f691042..044352da6 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 7f271221a..cf92dbddc 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 c5771ef22..5b5a96866 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 dfa03f32b..46dc99e66 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 000000000..3a886eb8d --- /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 + +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 000000000..ee87a0002 --- /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 000000000..2b55217b8 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua @@ -0,0 +1,120 @@ +-- Copyright 2017 Stan Grishin +-- 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.
DO NOT POWER OFF THE DEVICE!
Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), + 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.
DO NOT POWER OFF THE DEVICE!
Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), + 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.
DO NOT POWER OFF THE DEVICE!
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 000000000..206d25054 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm @@ -0,0 +1,92 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2015 Jo-Philipp Wich + Copyright 2017 Stan Grishin + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +

<%:Advanced Reboot%>

+
+ +<%- local c = require("luci.model.uci").cursor():changes(); if c and next(c) then -%> +

<%:Warning: There are unsaved changes that will get lost on reboot!%>

+<%- end -%> + +<%- if device_name then -%> +
+ <%=device_name%><%: Partitions%> + + + + + + + + + + + + + + + + + + + +
<%:Partition%><%:Status%><%:Firmware/OS (Kernel)%><%:Action%>
+ <%=boot_envvar1_partition_one%> + + <%- if boot_envvar1_partition_one == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> + + <%=partition_one_os%> + + <%- if boot_envvar1_partition_one == current_partition then -%> +
+ + +
+ <%- else -%> +
+ + +
+ <%- end -%> +
+ <%=boot_envvar1_partition_two%> + + <%- if boot_envvar1_partition_two == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> + + <%=partition_two_os%> + + <%- if boot_envvar1_partition_two == current_partition then -%> +
+ + +
+ <%- else -%> +
+ + +
+ <%- end -%> +
+
+<%- else -%> +

<%:Warning: This system does not have two partitions!%>

+<%- end -%> + +
+ +<%- if nixio.fs.access("/sbin/poweroff") then -%> +
+ + +
+<%- else -%> +

<%:Warning: This system does not support powering off!%>

+<%- 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 000000000..632593409 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm @@ -0,0 +1,29 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2009 Jo-Philipp Wich + Copyright 2017 Stan Grishin + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +

<%:Reboot Device to an Alternative Partition%> - <%:Confirm%>

+

+ <%_ WARNING: An alternative partition might have its own settings and completely different firmware.

+ 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.

+ 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.

+ Click "Proceed" below to reboot device to an alternative partition. %> +

+ +
+
+ + + + +
+
+ +<%+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 000000000..0ddea11e6 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm @@ -0,0 +1,25 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008-2009 Jo-Philipp Wich + Copyright 2017 Stan Grishin + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + +

<%:Power Off Device%> - <%:Confirm%>

+

+ <%_ WARNING: Power off might result in a reboot on a device which doesn't support power off.

+ Click "Proceed" below to power off your device. %> +

+ +
+
+ + + + +
+
+ +<%+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 000000000..9c810892c --- /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.
DO NOT POWER OFF THE DEVICE!
Wait a " +"few minutes before you try to reconnect. It might be necessary to renew the " +"address of your computer to reach the device again, depending on your " +"settings." +msgstr "" + +msgid "" +"The system is rebooting to an alternative partition now.
DO NOT POWER " +"OFF THE DEVICE!
Wait a few minutes before you try to reconnect. It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" + +msgid "" +"The system is shutting down now.
DO NOT POWER OFF THE DEVICE!
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.

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.

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.

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.

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 000000000..a7f41f250 --- /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 "DHT enabled" +msgstr "" + +msgid "LPD 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 000000000..589d5f9aa --- /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 dc5d0ca84..f41d6e2d4 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 5a4c255e4..8cb1923e2 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 000000000..780a2f9c8 --- /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.
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.
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
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
Please follow " +"the instructions on OpenWrt's homepage to enable IPv6 support
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.
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
Values below 5 minutes == 300 seconds " +"are not supported" +msgstr "" + +msgid "" +"Interval to force updates send to DDNS Provider
Setting this parameter " +"to 0 will force the script to only run once
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.
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 dd0a81a64..b5679655d 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 21804d7c2..4fa85f2d5 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/luasrc/model/cbi/firewall/zone-details.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua index 500d1bf32..755350457 100644 --- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua +++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua @@ -21,7 +21,7 @@ nw.init(m.uci) local zone = fw:get_zone(arg[1]) if not zone then - luci.http.redirect(dsp.build_url("admin/network/firewall/zones")) + luci.http.redirect(ds.build_url("admin/network/firewall/zones")) return else m.title = "%s - %s" %{ diff --git a/applications/luci-app-firewall/po/sv/firewall.po b/applications/luci-app-firewall/po/sv/firewall.po index 2e169fb92..777c81787 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 "%d pkts. per %s" -msgstr "" +msgstr "%d pkt. per %s" msgid "%d pkts. per %s, burst %d pkts." -msgstr "" +msgstr "%d pkt. per %s, brustna %d pkt." msgid "%s and limit to %s" -msgstr "" +msgstr "%s 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 source zones:" msgstr "" @@ -55,13 +55,13 @@ msgid "Allow forward to destination zones:" 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 this device" -msgstr "" +msgstr "Till %s vid %s pÃ¥ den här enheten" msgid "To %s in %s" -msgstr "" +msgstr "Till %s i %s" msgid "To %s on this device" -msgstr "" +msgstr "Till %s pÃ¥ den här enheten" 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 d3fd15069..ca39c9bf3 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 7e863a371..aeabc6361 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua @@ -111,8 +111,8 @@ mwan_interface = m5:section(TypedSection, "interface", translate("Interfaces"), "Interfaces may not share the same name as configured members, policies or rules")) mwan_interface.addremove = true mwan_interface.dynamic = false - mwan_interface.sectionhead = "Interface" - mwan_interface.sortable = true + mwan_interface.sectionhead = translate("Interface") + 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 e7c16fdfd..2b4637639 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/model/cbi/mwan/member.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua index 3bccbd942..efbe8f790 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua @@ -13,7 +13,7 @@ mwan_member = m5:section(TypedSection, "member", translate("Members"), "Members may not share the same name as configured interfaces, policies or rules")) mwan_member.addremove = true mwan_member.dynamic = false - mwan_member.sectionhead = "Member" + mwan_member.sectionhead = translate("Member") mwan_member.sortable = true mwan_member.template = "cbi/tblsection" mwan_member.extedit = ds.build_url("admin", "network", "mwan", "configuration", "member", "%s") diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua index 08c3f69de..6640564d5 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua @@ -42,7 +42,7 @@ mwan_policy = m5:section(TypedSection, "policy", translate("Policies"), "Policies may not share the same name as configured interfaces, members or rules")) mwan_policy.addremove = true mwan_policy.dynamic = false - mwan_policy.sectionhead = "Policy" + mwan_policy.sectionhead = translate("Policy") mwan_policy.sortable = true mwan_policy.template = "cbi/tblsection" mwan_policy.extedit = ds.build_url("admin", "network", "mwan", "configuration", "policy", "%s") @@ -65,7 +65,6 @@ use_member = mwan_policy:option(DummyValue, "use_member", translate("Members ass else return "—" end - end last_resort = mwan_policy:option(DummyValue, "last_resort", translate("Last resort")) @@ -73,11 +72,11 @@ last_resort = mwan_policy:option(DummyValue, "last_resort", translate("Last reso function last_resort.cfgvalue(self, s) local action = self.map:get(s, "last_resort") if action == "blackhole" then - return "blackhole (drop)" + return translate("blackhole (drop)") elseif action == "default" then - return "default (use main routing table)" + return translate("default (use main routing table)") else - return "unreachable (reject)" + return translate("unreachable (reject)") end end diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua index 412f369eb..0f4c5950a 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua @@ -47,7 +47,7 @@ mwan_rule = m5:section(TypedSection, "rule", translate("Traffic Rules"), mwan_rule.addremove = true mwan_rule.anonymous = false mwan_rule.dynamic = false - mwan_rule.sectionhead = "Rule" + mwan_rule.sectionhead = translate("Rule") mwan_rule.sortable = true mwan_rule.template = "cbi/tblsection" mwan_rule.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "rule", "%s") @@ -93,10 +93,10 @@ sticky = mwan_rule:option(DummyValue, "sticky", translate("Sticky")) function sticky.cfgvalue(self, s) if self.map:get(s, "sticky") == "1" then stickied = 1 - return "Yes" + return translate("Yes") else stickied = nil - return "No" + return translate("No") end end @@ -133,7 +133,7 @@ errors = mwan_rule:option(DummyValue, "errors", translate("Errors")) if not string.find(error_protocol_list, " " .. s .. " ") then return "" else - return "\"error\"" + return "\"error\"" end end 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 14d404bc7..e4a14adad 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm @@ -33,14 +33,14 @@ { output.innerHTML = '<%:Loading%> ' + - "Waiting for MWAN to " + task + "..." + String.format("<%:Waiting for MWAN to %s...%>", task) ; } else { output.innerHTML = '<%:Loading%> ' + - "Waiting for diagnostic results..." + "<%:Waiting for diagnostic results...%>" ; } @@ -56,7 +56,7 @@ } else { - output.innerHTML = '
No diagnostic results returned
'; + output.innerHTML = '
<%:No diagnostic results returned%>
'; } } ); @@ -93,20 +93,6 @@ 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 fba3fa694..20ae6036f 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 @@ 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 cf9011207..bed43107c 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 @@ 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 0a1249689..4174ef4b2 100644 --- a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm +++ b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm @@ -37,7 +37,7 @@ } else { - tshoot.innerHTML = 'Error collecting troubleshooting information'; + tshoot.innerHTML = '<%:Error collecting troubleshooting information%>'; } } ); @@ -46,22 +46,11 @@
<%:Troubleshooting Data%> -
<%:Loading%> Collecting data...
+
<%:Loading%><%:Collecting data...%>
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 99da4875b..5d91c536e 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 @@