Merge pull request #2281 from TDT-AG/pr/20181114-luci-app-mwan3
authorHannu Nyman <hannu.nyman@iki.fi>
Wed, 14 Nov 2018 14:36:08 +0000 (16:36 +0200)
committerGitHub <noreply@github.com>
Wed, 14 Nov 2018 14:36:08 +0000 (16:36 +0200)
luci-app-mwan3: add/remove options

19 files changed:
applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua
applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua
applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua
applications/luci-app-adblock/luasrc/view/adblock/adblock_css.htm [new file with mode: 0644]
applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
applications/luci-app-adblock/luasrc/view/adblock/config_css.htm [deleted file]
applications/luci-app-adblock/luasrc/view/adblock/logread.htm
applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
applications/luci-app-banip/luasrc/view/banip/banip_css.htm
applications/luci-app-banip/luasrc/view/banip/runtime.htm
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua
applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm [deleted file]
applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm
applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm
applications/luci-app-travelmate/luasrc/view/travelmate/travelmate_css.htm [new file with mode: 0644]
modules/luci-base/po/zh-cn/base.po

index b3b3f8d0eb87a3e6fb9f877be862e5d5eac36107..4d1a9f7e63db7ff49bbb53cf7a87fe7b4acd8516 100644 (file)
@@ -23,7 +23,7 @@ if fs.stat(input).size >= 102400 then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("adblock/config_css"))
+m:append(Template("adblock/adblock_css"))
 m.submit = translate("Save")
 m.reset = false
 
index 1e98f0204b24460f601ea76920ba0967d3e703c7..1e7eda903241d49f17bae0b47f7021367bf81655 100644 (file)
@@ -22,7 +22,7 @@ if fs.stat(input).size >= 102400 then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("adblock/config_css"))
+m:append(Template("adblock/adblock_css"))
 m.submit = translate("Save")
 m.reset = false
 
index a78d9af4ac0fa504460681f50b8f3cc7ff16b0cc..03dcecf1aa377939dc5953f45279e028651916d0 100644 (file)
@@ -23,7 +23,7 @@ if fs.stat(input).size >= 102400 then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("adblock/config_css"))
+m:append(Template("adblock/adblock_css"))
 m.submit = translate("Save")
 m.reset = false
 
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/adblock_css.htm b/applications/luci-app-adblock/luasrc/view/adblock/adblock_css.htm
new file mode 100644 (file)
index 0000000..5d95d13
--- /dev/null
@@ -0,0 +1,108 @@
+<style type="text/css">
+       textarea
+       {
+               width: 100%;
+               height: 450px;
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+               white-space: pre;
+               overflow-wrap: normal;
+               overflow-x: scroll;
+       }
+
+       select[readonly],
+       textarea[readonly]
+       {
+               width: 100%;
+               height: 450px;
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+               pointer-events: auto;
+               cursor: auto;
+       }
+
+       .table.cbi-section-table .th,
+       .table.cbi-section-table .td,
+       .cbi-section-table-cell,
+       .cbi-section-table-row,
+       .tr[data-title]::before
+       {
+               text-align: left;
+               vertical-align: top;
+               margin-left: 0px;
+               padding-left: 2px;
+       }
+
+       .table.cbi-section-table .th
+       {
+               white-space: nowrap;
+       }
+
+       .cbi-section-table-row > .cbi-value-field .cbi-input-select,
+       .table.cbi-section-table select
+       {
+               width: 70px;
+       }
+
+       .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
+       .table.cbi-section-table input[type="text"],
+       .cbi-dynlist > .item,
+       .table.cbi-section-table input,
+       .cbi-dynlist
+       {
+               display: inline-block;
+               width: 7em;
+               margin: 1px;
+       }
+
+       .td.cbi-value-field .cbi-button
+       {
+               width: auto;
+               margin: 1px 0 1px -2px;
+       }
+
+       .btn,
+       .cbi-button,
+       .item::after
+       {
+               -webkit-appearance: menulist;
+       }
+
+       .cbi-input-checkbox
+       {
+               height: 1em;
+       }
+
+       .cbi-input-text
+       {
+               text-align: left;
+               padding-left: 2px;
+               outline: none;
+               box-shadow: none;
+               background: transparent;
+               width: 7em;
+       }
+
+       .runtime
+       {
+               color: #37c;
+               font-weight: bold;
+               display: inline-block;
+               width: 100%;
+               padding-top: 0.5rem;
+       }
+
+       .button_running
+       {
+               display: inline-block;
+               width: 16px;
+               height: 16px;
+               margin: 0 5px;
+       }
+</style>
index a6f2286513ed86df0cf85de7213ee3854e4b6ead..e145a3b4ef4f30b08b6ab4666288cf828cd6cb19 100644 (file)
@@ -7,42 +7,7 @@ This is free software, licensed under the Apache License, Version 2.0
 local anonclass  = (not self.anonymous or self.sectiontitle) and "named" or "anonymous"
 -%>
 
-<style type="text/css">
-.table.cbi-section-table .th,
-.table.cbi-section-table .td,
-.cbi-section-table-cell,
-.cbi-section-table-row,
-.tr[data-title]::before
-{
-       text-align: left;
-       vertical-align: top;
-       margin-left: 0px;
-       padding-left: 2px;
-}
-.table.cbi-section-table .th
-{
-       white-space: nowrap;
-}
-.table.cbi-section-table input
-{
-       width: 7em;
-}
-.cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
-.table.cbi-section-table input
-{
-       width: 7em;
-}
-
-.cbi-input-text
-{
-       text-align: left;
-       padding-left: 2px;
-       outline: none;
-       box-shadow: none;
-       background: transparent;
-       width: 7em;
-}
-</style>
+<%+adblock/adblock_css%>
 
 <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
        <% if self.title then -%>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm b/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm
deleted file mode 100644 (file)
index 2233a15..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<style type="text/css">
-       textarea
-       {
-               border: 1px solid #cccccc;
-               padding: 5px;
-               font-size: 12px;
-               font-family: monospace;
-               resize: none;
-               white-space: pre;
-               overflow-wrap: normal;
-               overflow-x: scroll;
-       }
-</style>
index b5052334909c42c48d710df93ad5623876749660..7fe254ae807e7cc2e743ba198fb246bdffeae328 100644 (file)
@@ -4,21 +4,7 @@ This is free software, licensed under the Apache License, Version 2.0
 -%>
 
 <%+header%>
-<style type="text/css">
-       select[readonly],
-       textarea[readonly]
-       {
-               width: 100%;
-               height: 450px;
-               border: 1px solid #cccccc;
-               padding: 5px;
-               font-size: 12px;
-               font-family: monospace;
-               resize: none;
-               pointer-events: auto;
-               cursor: auto;
-       }
-</style>
+<%+adblock/adblock_css%>
 
 <script type="text/javascript">
 //<![CDATA[
index 4f7cfbf8a1cf8cccc91ddd9759ba9d3b242de7a0..ee20133d5ae26174f1b21139c08fe9e78326800d 100644 (file)
@@ -3,17 +3,7 @@ Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
 This is free software, licensed under the Apache License, Version 2.0
 -%>
 
-<style type="text/css">
-.runtime
-{
-       color: #37c;
-       font-weight: bold;
-       display: inline-block;
-       width: 100%;
-       padding-top: 0.5rem;
-}
-</style>
-
+<%+adblock/adblock_css%>
 <script type="text/javascript">
 //<![CDATA[
        function status_update(json)
@@ -188,7 +178,7 @@ This is free software, licensed under the Apache License, Version 2.0
        <label class="cbi-value-title" for="button_1"><%:Suspend / Resume Adblock%></label>
        <div class="cbi-value-field">
                <input class="cbi-button cbi-button-reset" id="btn1" type="button" value="" onclick="btn_action(this)" />
-               <span id="btn1_running" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
+               <span id="btn1_running" class="btn_running"></span>
        </div>
 </div>
 <p />
@@ -196,6 +186,6 @@ This is free software, licensed under the Apache License, Version 2.0
        <label class="cbi-value-title" for="button_2"><%:Refresh Blocklist Sources%></label>
        <div class="cbi-value-field">
                <input class="cbi-button cbi-button-apply" id="btn2" type="button" value="" onclick="btn_action(this)" />
-               <span id="btn2_running" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
+               <span id="btn2_running" class="btn_running"></span>
        </div>
 </div>
index 807102452cc7b4f7b8f2ab9288dd92608e510568..86efcc5f208a406a3738d843545167e9372d396d 100644 (file)
@@ -1,6 +1,8 @@
 <style type="text/css">
        textarea
        {
+               width: 100%;
+               height: 450px;
                border: 1px solid #cccccc;
                padding: 5px;
                font-size: 12px;
        .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
        .table.cbi-section-table input[type="text"],
        .cbi-dynlist > .item,
-       .table.cbi-section-table input
+       .table.cbi-section-table input,
+       .cbi-dynlist
        {
+               display: inline-block;
                width: 6em;
+               margin: 1px;
+       }
+
+       .td.cbi-value-field .cbi-button
+       {
+               width: auto;
+               margin: 1px 0 1px -2px;
+       }
+
+       .btn,
+       .cbi-button,
+       .item::after
+       {
+               -webkit-appearance: menulist;
        }
 
        .cbi-input-checkbox
        {
                height: 1em;
        }
-       
+
        .cbi-input-text
        {
                text-align: left;
@@ -68,9 +86,9 @@
                outline: none;
                box-shadow: none;
                background: transparent;
-               width: 4em;
+               width: 6em;
        }
-       
+
        .runtime
        {
                color: #37c;
@@ -79,7 +97,7 @@
                width: 100%;
                padding-top: 0.5rem;
        }
-       
+
        .ripe_desc
        {
                font-style: italic;
                height: 20px;
                margin: 2px 2px;
        }
+
+       .button_running
+       {
+               display: inline-block;
+               width: 16px;
+               height: 16px;
+               margin: 0 5px;
+       }
 </style>
index 041fcb143cbc6a375e1553c26a8b94718caa071a..65a58bd374beab4cafee375863f2e5462edbe51b 100644 (file)
@@ -124,7 +124,7 @@ function btn_action(action)
        <label class="cbi-value-title" for="button_1"><%:Refresh IPSets%></label>
        <div class="cbi-value-field">
                <input class="cbi-button cbi-button-apply" id="btn1" type="button" name="do_refresh" value="<%:Refresh%>" onclick="btn_action(this)" />
-               <span id="btn1_running" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
+               <span id="btn1_running" class="btn_running"></span>
        </div>
 </div>
 
index fea190e9b9a50348057518a6bb95d1424f40ef9c..8597912b209abaab260c29cc4f90e1244f2d241b 100644 (file)
@@ -11,7 +11,7 @@ if not fs.access(input) then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("travelmate/config_css"))
+m:append(Template("travelmate/travelmate_css"))
 m.submit = translate("Save")
 m.reset = false
 
index 6f0ade772d10dfd13ff7e0f377ac7c9285278058..36a32aefe89cc3dce4c335749cc0267d142b1c2a 100644 (file)
@@ -11,7 +11,7 @@ if not fs.access(input) then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("travelmate/config_css"))
+m:append(Template("travelmate/travelmate_css"))
 m.submit = translate("Save")
 m.reset = false
 
index ab59dfb3765229f0d89921da3bd9ef43e359a0f0..bb6205b9b3a61ed51b05e8bab90360f394090c8b 100644 (file)
@@ -11,7 +11,7 @@ if not fs.access(input) then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("travelmate/config_css"))
+m:append(Template("travelmate/travelmate_css"))
 m.submit = translate("Save")
 m.reset = false
 
index 7bb32c1ec58312453d3f092101be57ab6df9f0b3..c9cc587eddbfef8180e25c8f0ff608cc5653315e 100644 (file)
@@ -13,7 +13,7 @@ if not fs.access(input) then
 end
 
 m = SimpleForm("input", nil)
-m:append(Template("travelmate/config_css"))
+m:append(Template("travelmate/travelmate_css"))
 m.submit = translate("Save")
 m.reset = false
 
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm
deleted file mode 100644 (file)
index 2233a15..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<style type="text/css">
-       textarea
-       {
-               border: 1px solid #cccccc;
-               padding: 5px;
-               font-size: 12px;
-               font-family: monospace;
-               resize: none;
-               white-space: pre;
-               overflow-wrap: normal;
-               overflow-x: scroll;
-       }
-</style>
index 4457296f54cfeaab6c857f52be2ec12e7d4ef6aa..25c29b8bbe2c9b24ebeec28c3ae357acaf03e8b9 100644 (file)
@@ -4,22 +4,7 @@ This is free software, licensed under the Apache License, Version 2.0
 -%>
 
 <%+header%>
-
-<style type="text/css">
-       select[readonly],
-       textarea[readonly]
-       {
-               width: 100%;
-               height: 450px;
-               border: 1px solid #cccccc;
-               padding: 5px;
-               font-size: 12px;
-               font-family: monospace;
-               resize: none;
-               pointer-events: auto;
-               cursor: auto;
-       }
-</style>
+<%+travelmate/travelmate_css%>
 
 <script type="text/javascript">
 //<![CDATA[
index 1a53b577d12afb98202afb95bfa045bea6cfd2f3..0b025fdaeeda99d04a74ee1d62e29d6b602aa4c2 100644 (file)
@@ -3,17 +3,7 @@ Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
 This is free software, licensed under the Apache License, Version 2.0
 -%>
 
-<style type="text/css">
-       .runtime
-       {
-               color: #37c;
-               font-weight: bold;
-               display: inline-block;
-               width: 100%;
-               padding-top: 0.5rem;
-       }
-</style>
-
+<%+travelmate/travelmate_css%>
 <script type="text/javascript">
 //<![CDATA[
        function status_update(json)
@@ -148,7 +138,7 @@ This is free software, licensed under the Apache License, Version 2.0
        <label class="cbi-value-title" for="button_1"><%:Restart Travelmate%></label>
        <div class="cbi-value-field">
                <input class="cbi-button cbi-button-reset" id="btn1" type="button" name="do_restart" value="<%:Restart%>" onclick="btn_action(this)" />
-               <span id="btn1_running" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
+               <span id="btn1_running" class="btn_running"></span>
        </div>
 </div>
 <div class="cbi-value" id="button_2">
@@ -200,10 +190,10 @@ This is free software, licensed under the Apache License, Version 2.0
                                        if fs.access("/usr/bin/qrencode") then
                                                qrcode = luci.sys.exec("/usr/bin/qrencode --inline --8bit --type=SVG --output=- 'WIFI:S:\"'" .. e_ssid .. "'\";T:'" .. enc .. "';P:\"'" .. e_key .. "'\";H:'" .. hidden .. "';'")
 -%>
-               <div class="cbi-value" style="border-bottom: 0px; margin-bottom: 0px; padding: 0.25em 0.6em; text-align: left">
+               <div class="qr-code">
                        <%=qrcode%>
                </div>
-               <div class="cbi-value" style="border-bottom: 0px; margin-bottom: 0px; padding: 0.25em 0.6em; text-align: left">
+               <div class="qr-code">
                        <em><%:AP on %><%=device%><%: with SSID %>"<%=ssid%>"</em>
                        <hr />
                </div>
@@ -214,7 +204,7 @@ This is free software, licensed under the Apache License, Version 2.0
                end)
                if not qrcode then
 -%>
-               <div class="cbi-value" style="border-bottom: 0px; margin-bottom: 0px; padding: 0.25em 0.6em; text-align: left">
+               <div class="qr-code">
                        <em><%:For QR-Code support please install package 'qrencode'!%></em>
                </div>
 <%-
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/travelmate_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/travelmate_css.htm
new file mode 100644 (file)
index 0000000..fc8036e
--- /dev/null
@@ -0,0 +1,116 @@
+<style type="text/css">
+       textarea
+       {
+               width: 100%;
+               height: 450px;
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+               white-space: pre;
+               overflow-wrap: normal;
+               overflow-x: scroll;
+       }
+
+       select[readonly],
+       textarea[readonly]
+       {
+               width: 100%;
+               height: 450px;
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+               pointer-events: auto;
+               cursor: auto;
+       }
+
+       .table.cbi-section-table .th,
+       .table.cbi-section-table .td,
+       .cbi-section-table-cell,
+       .cbi-section-table-row,
+       .tr[data-title]::before
+       {
+               text-align: left;
+               vertical-align: top;
+               margin-left: 0px;
+               padding-left: 2px;
+       }
+
+       .table.cbi-section-table .th
+       {
+               white-space: nowrap;
+       }
+
+       .cbi-section-table-row > .cbi-value-field .cbi-input-select,
+       .table.cbi-section-table select
+       {
+               width: 70px;
+       }
+
+       .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
+       .table.cbi-section-table input[type="text"],
+       .cbi-dynlist > .item,
+       .table.cbi-section-table input,
+       .cbi-dynlist
+       {
+               display: inline-block;
+               width: 7em;
+               margin: 1px;
+       }
+
+       .td.cbi-value-field .cbi-button
+       {
+               width: auto;
+               margin: 1px 0 1px -2px;
+       }
+
+       .btn,
+       .cbi-button,
+       .item::after
+       {
+               -webkit-appearance: menulist;
+       }
+
+       .cbi-input-checkbox
+       {
+               height: 1em;
+       }
+
+       .cbi-input-text
+       {
+               text-align: left;
+               padding-left: 2px;
+               outline: none;
+               box-shadow: none;
+               background: transparent;
+               width: 7em;
+       }
+
+       .runtime
+       {
+               color: #37c;
+               font-weight: bold;
+               display: inline-block;
+               width: 100%;
+               padding-top: 0.5rem;
+       }
+
+       .button_running
+       {
+               display: inline-block;
+               width: 16px;
+               height: 16px;
+               margin: 0 5px;
+       }
+
+       .qr-code
+       {
+               border-bottom: 0px;
+               margin-bottom: 0px;
+               padding: 0.25em 0.6em;
+               text-align: left
+       }
+</style>
index 17dbe957a0c647a00167841871f3b0b84233e99e..74558ccda9397d9fdc8f2e4407694931d5e44706 100644 (file)
@@ -855,11 +855,11 @@ msgstr "分类"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:44
 msgid "Caution: Configuration files will be erased"
-msgstr ""
+msgstr "注意:配置文件将被删除"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:48
 msgid "Caution: System upgrade will be forced"
-msgstr ""
+msgstr "注意:将强制进行系统升级"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:87
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:89
@@ -917,7 +917,7 @@ msgstr "校验值"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:70
 msgid "Choose mtdblock"
-msgstr ""
+msgstr "选择 mtdblock"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:358
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_add.lua:87
@@ -955,6 +955,8 @@ msgid ""
 "Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
 "FEATURE IS FOR PROFESSIONALS! )"
 msgstr ""
+"单击“保存 mtdblock”以下载指定的 mtdblock 文件。(注意:此功能适用于专业人"
+"士!)"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:366
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:459
@@ -1004,7 +1006,7 @@ msgstr "命令"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:105
 msgid "Comment"
-msgstr ""
+msgstr "备注"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:185
 msgid "Common Configuration"
@@ -1037,7 +1039,7 @@ msgstr "配置失败"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:42
 msgid "Configuration files will be kept"
-msgstr ""
+msgstr "将保留配置文件"
 
 #: modules/luci-base/luasrc/view/cbi/apply_widget.htm:136
 msgid "Configuration has been applied."
@@ -1376,7 +1378,7 @@ msgstr "禁用加密"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:518
 msgid "Disable Inactivity Polling"
-msgstr ""
+msgstr "禁用不活动轮询"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:106
 msgid "Disable this network"
@@ -1489,7 +1491,7 @@ msgstr "下载备份"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:87
 msgid "Download mtdblock"
-msgstr ""
+msgstr "下载 mtdblock"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:193
 msgid "Downstream SNR offset"
@@ -1731,7 +1733,7 @@ msgstr "扩展 HOSTS 文件中的主机后缀"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:246
 msgid "Expecting %s"
-msgstr ""
+msgstr "期望 %s"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/index.htm:218
 msgid "Expires"
@@ -1912,7 +1914,7 @@ msgstr "强制链路"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:113
 msgid "Force upgrade"
-msgstr ""
+msgstr "强制升级"
 
 #: protocols/luci-proto-vpnc/luasrc/model/cbi/admin_network/proto_vpnc.lua:60
 msgid "Force use of NAT-T"
@@ -2100,7 +2102,7 @@ msgstr "隐藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:140
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:310
 msgid "Hide empty chains"
-msgstr ""
+msgstr "隐藏空链"
 
 #: modules/luci-base/luasrc/view/lease_status.htm:86
 #: modules/luci-base/luasrc/view/wifi_assoclist.htm:75
@@ -2155,7 +2157,7 @@ msgstr "IP 地址"
 
 #: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:40
 msgid "IP Protocol"
-msgstr ""
+msgstr "IP 协议"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/hosts.lua:19
 msgid "IP address"
@@ -2207,7 +2209,7 @@ msgstr "IPv4 子网掩码"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:323
 msgid "IPv4 network in address/netmask notation"
-msgstr ""
+msgstr "地址/网络掩码表示法中的 IPv4 网络"
 
 #: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:25
 msgid "IPv4 prefix"
@@ -2220,7 +2222,7 @@ msgstr "IPv4 地址前缀长度"
 
 #: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:43
 msgid "IPv4+IPv6"
-msgstr ""
+msgstr "IPv4+IPv6"
 
 #: modules/luci-base/luasrc/view/lease_status.htm:72
 msgid "IPv4-Address"
@@ -2278,7 +2280,7 @@ msgstr "IPv6 网关"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:328
 msgid "IPv6 network in address/netmask notation"
-msgstr ""
+msgstr "地址/网络掩码表示法中的 IPv6 网络"
 
 #: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua:26
 #: protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua:37
@@ -2955,7 +2957,7 @@ msgstr "最大可达数据速率(ATTNDR)"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:527
 msgid "Maximum allowed Listen Interval"
-msgstr ""
+msgstr "允许的最大监听间隔"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:193
 msgid "Maximum allowed number of active DHCP leases"
@@ -3048,14 +3050,14 @@ msgstr "主机型号"
 
 #: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:31
 msgid "Modem default"
-msgstr ""
+msgstr "调制解调器默认"
 
 #: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:11
 #: protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua:19
 #: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:11
 #: protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua:10
 msgid "Modem device"
-msgstr "è°\83å\88¶è§£è°\83å\99¨è\8a\82ç\82¹"
+msgstr "è°\83å\88¶è§£è°\83å\99¨è®¾å¤\87"
 
 #: protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua:66
 msgid "Modem information query failed"
@@ -3333,7 +3335,7 @@ msgstr "缓存的 DNS 条目数量(最大 10000,0 表示不缓存)"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:125
 msgid "Number of parallel threads used for compression"
-msgstr ""
+msgstr "用于压缩的并行线程数"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/packages.htm:106
 msgid "OK"
@@ -3780,7 +3782,7 @@ msgstr "请输入用户名和密码。"
 #: modules/luci-mod-system/luasrc/view/admin_system/packages.htm:105
 #: modules/luci-mod-system/luasrc/view/admin_system/packages.htm:113
 msgid "Please update package lists first"
-msgstr ""
+msgstr "请先更新软件包列表"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:87
 msgid "Policy"
@@ -4262,7 +4264,7 @@ msgstr "路由表描述了数据包的可达路径。"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:281
 msgid "Rule"
-msgstr ""
+msgstr "规则"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:148
 msgid "Run a filesystem check before mounting the device"
@@ -4311,7 +4313,7 @@ msgstr "SSID"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:236
 msgid "SWAP"
-msgstr ""
+msgstr "交换分区"
 
 #: modules/luci-base/luasrc/view/cbi/error.htm:17
 #: modules/luci-base/luasrc/view/cbi/footer.htm:26
@@ -4326,11 +4328,11 @@ msgstr "保存并应用"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:89
 msgid "Save mtdblock"
-msgstr ""
+msgstr "保存 mtdblock"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:64
 msgid "Save mtdblock contents"
-msgstr ""
+msgstr "保存 mtdblock 内容"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi_overview.lua:82
 msgid "Scan"
@@ -4363,6 +4365,8 @@ msgid ""
 "fails. Use only if you are sure that the firmware is correct and meant for "
 "your device!"
 msgstr ""
+"即使映像文件检查失败,也“强制升级”以烧录映像。仅在您确定固件正确且适用于您的"
+"设备时使用!"
 
 #: protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua:119
 #: protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua:90
@@ -4438,7 +4442,7 @@ msgstr "显示当前备份文件列表"
 
 #: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:140
 msgid "Show empty chains"
-msgstr ""
+msgstr "显示空链"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:53
 msgid "Shutdown this interface"
@@ -4477,7 +4481,7 @@ msgstr "DNS 查询缓存的大小"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:113
 msgid "Size of the ZRam device in megabytes"
-msgstr ""
+msgstr "ZRam 设备的大小(以兆字节为单位)"
 
 #: modules/luci-base/luasrc/view/cbi/footer.htm:18
 #: modules/luci-base/luasrc/view/cbi/simpleform.htm:57
@@ -4627,7 +4631,7 @@ msgstr ""
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:522
 msgid "Station inactivity limit"
-msgstr ""
+msgstr "非活动站点限制"
 
 #: modules/luci-base/luasrc/controller/admin/index.lua:40
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:197
@@ -5065,7 +5069,7 @@ msgstr "尚未配置时间同步。"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:513
 msgid "Time interval for rekeying GTK"
-msgstr ""
+msgstr "重新加密 GTK 的时间间隔"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:44
 msgid "Timezone"
@@ -5664,19 +5668,19 @@ msgstr ""
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:118
 msgid "ZRam Compression Algorithm"
-msgstr ""
+msgstr "ZRam 压缩算法"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:125
 msgid "ZRam Compression Streams"
-msgstr ""
+msgstr "ZRam 压缩流"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:25
 msgid "ZRam Settings"
-msgstr ""
+msgstr "ZRam 设置"
 
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua:113
 msgid "ZRam Size"
-msgstr ""
+msgstr "ZRam 大小"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:187
 msgid "any"
@@ -5781,7 +5785,7 @@ msgstr "半双工"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:589
 msgid "hexadecimal encoded value"
-msgstr ""
+msgstr "十六进制编码值"
 
 #: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:162
 msgid "hidden"
@@ -5836,11 +5840,11 @@ msgstr "kbit/s"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:427
 msgid "key between 8 and 63 characters"
-msgstr ""
+msgstr "密钥在 8 到 63 个字符之间"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:439
 msgid "key with either 5 or 13 characters"
-msgstr ""
+msgstr "密钥为 5 或 13 个字符"
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/dhcp.lua:50
 msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
@@ -5866,7 +5870,7 @@ msgstr "未连接"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:241
 msgid "non-empty value"
-msgstr ""
+msgstr "非空值"
 
 #: modules/luci-mod-system/luasrc/view/admin_system/packages.htm:156
 #: modules/luci-mod-system/luasrc/view/admin_system/packages.htm:157
@@ -5905,6 +5909,8 @@ msgid ""
 "one of:\n"
 " - %s"
 msgstr ""
+"其一:\n"
+" - %s"
 
 #: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:71
 msgid "open"
@@ -5920,11 +5926,11 @@ msgstr "覆盖"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:273
 msgid "positive decimal value"
-msgstr ""
+msgstr "正十进制值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:265
 msgid "positive integer value"
-msgstr ""
+msgstr "正整数值"
 
 #: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:34
 msgid "random"
@@ -5943,7 +5949,7 @@ msgstr "已路由"
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:513
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:522
 msgid "sec"
-msgstr ""
+msgstr ""
 
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:525
 #: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:531
@@ -5972,7 +5978,7 @@ msgstr "时间单位(TUs / 1.024ms)[1000-65535]"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:579
 msgid "unique value"
-msgstr ""
+msgstr "唯一值"
 
 #: modules/luci-mod-network/luasrc/view/admin_network/wifi_join.htm:69
 msgid "unknown"
@@ -5999,159 +6005,159 @@ msgstr "未标记"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
 msgid "valid IP address"
-msgstr ""
+msgstr "有效 IP 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:278
 msgid "valid IP address or prefix"
-msgstr ""
+msgstr "有效 IP 地址或前缀"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:313
 msgid "valid IPv4 CIDR"
-msgstr ""
+msgstr "有效 IPv4 CIDR"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:286
 msgid "valid IPv4 address"
-msgstr ""
+msgstr "有效 IPv4 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:286
 msgid "valid IPv4 address or network"
-msgstr ""
+msgstr "有效 IPv4 地址或网络"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:406
 msgid "valid IPv4 address:port"
-msgstr ""
+msgstr "有效 IPv4 address:port"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:346
 msgid "valid IPv4 network"
-msgstr ""
+msgstr "有效 IPv4 网络"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:308
 msgid "valid IPv4 or IPv6 CIDR"
-msgstr ""
+msgstr "有效 IPv4 或 IPv6 CIDR"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:299
 msgid "valid IPv4 prefix value (0-32)"
-msgstr ""
+msgstr "有效 IPv4 前缀值(0-32)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:318
 msgid "valid IPv6 CIDR"
-msgstr ""
+msgstr "有效 IPv6 CIDR"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:294
 msgid "valid IPv6 address"
-msgstr ""
+msgstr "有效 IPv6 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:294
 msgid "valid IPv6 address or prefix"
-msgstr ""
+msgstr "有效 IPv6 地址或前缀"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:336
 msgid "valid IPv6 host id"
-msgstr ""
+msgstr "有效 IPv6 主机 ID"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:351
 msgid "valid IPv6 network"
-msgstr ""
+msgstr "有效 IPv6 网络"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:304
 msgid "valid IPv6 prefix value (0-128)"
-msgstr ""
+msgstr "有效 IPv6 前缀值(0-128)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:372
 msgid "valid MAC address"
-msgstr ""
+msgstr "有效 MAC 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:443
 msgid "valid UCI identifier"
-msgstr ""
+msgstr "有效 UCI 识别"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:394
 msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
+msgstr "有效 UCI 标识符,主机名或 IP 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:415
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:418
 msgid "valid address:port"
-msgstr ""
+msgstr "有效 address:port"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:553
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:557
 msgid "valid date (YYYY-MM-DD)"
-msgstr ""
+msgstr "有效日期(YYYY-MM-DD)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:269
 msgid "valid decimal value"
-msgstr ""
+msgstr "有效十进制值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:437
 msgid "valid hexadecimal WEP key"
-msgstr ""
+msgstr "有效十六进制 WEP 密钥"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:425
 msgid "valid hexadecimal WPA key"
-msgstr ""
+msgstr "有效十六进制 WPA 密钥"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:400
 msgid "valid host:port"
-msgstr ""
+msgstr "有效 host:port"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:387
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:389
 msgid "valid hostname"
-msgstr ""
+msgstr "有效主机名"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:377
 msgid "valid hostname or IP address"
-msgstr ""
+msgstr "有效主机名或 IP 地址"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:261
 msgid "valid integer value"
-msgstr ""
+msgstr "有效整数值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:341
 msgid "valid network in address/netmask notation"
-msgstr ""
+msgstr "地址/网络掩码表示法中的有效网络"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:528
 msgid "valid phone digit (0-9, \"*\", \"#\", \"!\" or \".\")"
-msgstr ""
+msgstr "有效电话号码(0-9、“*”、“#”、“!”或“.”)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:364
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:367
 msgid "valid port or port range (port1-port2)"
-msgstr ""
+msgstr "有效端口或端口范围(port1-port2)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:356
 msgid "valid port value"
-msgstr ""
+msgstr "有效端口值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:533
 msgid "valid time (HH:MM:SS)"
-msgstr ""
+msgstr "有效时间(HH:MM:SS)"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:462
 msgid "value between %d and %d characters"
-msgstr ""
+msgstr "%d 和 %d 字符之间的值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:448
 msgid "value between %f and %f"
-msgstr ""
+msgstr "%f 和 %f 之间的值"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:452
 msgid "value greater or equal to %f"
-msgstr ""
+msgstr "值大于或等于 %f"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:456
 msgid "value smaller or equal to %f"
-msgstr ""
+msgstr "值小于或等于 %f"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:467
 msgid "value with at least %d characters"
-msgstr ""
+msgstr "值至少为 %d 个字符"
 
 #: modules/luci-base/htdocs/luci-static/resources/cbi.js:472
 msgid "value with at most %d characters"
-msgstr ""
+msgstr "值至多为 %d 个字符"
 
 #: modules/luci-mod-network/luasrc/view/admin_network/iface_overview_status.htm:44
 #: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab.lua:221