return buffer
end
---- Execute command and invoke given callback for each readed line
+--- Execute command and invoke given callback for each read line
-- @param command String containing the command to execute
-- @param callback Function to call back for each line
-- @return Always true
return true
end
---- Execute command and return an iterator that returns one line per invokation
+--- Execute command and return an iterator that returns one line per invocation
-- @param command String containing the command to execute
-- @return Iterator function
function io.execi(command)
--- LuCI Asterisk - core status
core = luci.util.class()
---- Retrive version string.
+--- Retrieve version string.
-- @return String containing the reported asterisk version
function core.version(self)
local version = io.exec("core show version")
return peers
end
---- Get informations of given SIP peer
+--- Get information of given SIP peer
-- @param peer String containing the name of the SIP peer
function sip.peer(peer)
local info = { }
--- Convert given list to a collection of hyperlinks
-- @param list Table of tokens
-- @param url String pattern or callback function to construct urls (optional)
--- @param sep String containing the seperator (optional, default is ", ")
+-- @param sep String containing the separator (optional, default is ", ")
-- @return String containing the html fragment
function tools.hyperlinks(list, url, sep)
local html
app_lookupblacklist:value("auto", "Load as Required")
app_lookupblacklist.rmempty = true
-app_lookupcidname = module:option(ListValue, "app_lookupcidname", "Look up CallerID Name from local databas", "")
+app_lookupcidname = module:option(ListValue, "app_lookupcidname", "Look up CallerID Name from local database", "")
app_lookupcidname:value("yes", "Load")
app_lookupcidname:value("no", "Do Not Load")
app_lookupcidname:value("auto", "Load as Required")
<div class="cbi-section-create cbi-tblsection-create" style="padding: 3px">
<h3>Create a new dialzone</h3>
The name is required and must be unique. It may only contain the characters A-Z, a-z, 0-9 and _ .<br />
- You can specifiy multiple number matches by separating them with spaces.<br />
+ You can specify multiple number matches by separating them with spaces.<br />
<%- if create_error then %>
<br /><span style="color:red">Invalid name given!</span><br />
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Cerca la ID/nom/número de qui truca de negre"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Cerca la ID/nom/número de qui truca de la base de dades local"
#~ msgid "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Look up Caller*ID name/number from black"
-#~ msgid "Look up CallerID Name from local databas"
-#~ msgstr "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
+#~ msgstr "Look up CallerID Name from local database"
#~ msgid "Extension Macros"
#~ msgstr "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Buscar la identidad del llamante nombre/número en la lista negra"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr ""
#~ "Buscar el nombre de identidad del llamante en las bases de datos locales"
#~ msgid "Image Transmission Application"
#~ msgstr "Application d'envoi d'image"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Rechercher le nom de l'appelant dans la base locale"
#~ msgid "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Mencari nama / nombor Pemangil dari hitam"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Mencari Nama Pemangil dari database tempatan"
#~ msgid "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Buscar o Identificador de chamadas/nome/número do preto"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Buscar o Identificador de chamadas/nome/número do banco de dados"
#~ msgid "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Искать имя CallerID в \"черном\" списке"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Искать имя CallerID в локальной базе"
#~ msgid "Extension Macros"
#~ msgid "Look up Caller*ID name/number from black"
#~ msgstr "Tra cứu tên/số của người gọi"
-#~ msgid "Look up CallerID Name from local databas"
+#~ msgid "Look up CallerID Name from local database"
#~ msgstr "Tra cứu tên người gọi từ cơ sở dữ liệu địa phương"
#~ msgid "Extension Macros"
}
}
} else {
- error_box("<b>Ubus call faild:</b><br />Request: " + request_json + "<br />Response: " + JSON.stringify(response))
+ error_box("<b>Ubus call failed:</b><br />Request: " + request_json + "<br />Response: " + JSON.stringify(response))
}
ubus_closed++;
}
function upgrade_check_callback(request_text) {
var request_json = JSON.parse(request_text)
- // create simple output to tell user whats going to be upgrade (release/packages)
+ // create simple output to tell user what's going to be upgrade (release/packages)
var info_output = ""
if(request_json.version != undefined) {
info_output += "<h3>New firmware release available</h3>"
// Request the image
// Needed values
// version/release
- // board_name or model (server tries to find the corrent profile)
+ // board_name or model (server tries to find the correct profile)
// packages
// The rest is added by server_request()
$("#upgrade_button").disabled = true;
error_box(error_box_content)
} else if (request.status === 501) {
- error_box("No sysupgrade file produced, may not supported by modell.")
+ error_box("No sysupgrade file produced, may not supported by model.")
} else if (request.status === 502) {
// python part offline
-- will use dynamic_dns_lucihelper to check if
-- local IP can be read
local function _verify_ip_source()
- -- section is globally defined here be calling agrument (see above)
+ -- section is globally defined here be calling argument (see above)
local _arg
local _ipv6 = usev6:formvalue(section)
-- function to verify if option is valid
local function _option_validate(self, value, optional)
- -- section is globally defined here be calling agrument (see above)
+ -- section is globally defined here be calling argument (see above)
local fusev6 = usev6:formvalue(section) or "0"
local fsvc4 = svc4:formvalue(section) or "-"
local fsvc6 = svc6:formvalue(section) or "-"
if (#urlsh == 0) then return "" end
used = _option_used(self.option, urlsh)
- -- on error or not used return empty sting
+ -- on error or not used return empty string
if used < 1 then return "" end
-- needed but no data then return error
if not value or (#value == 0) then
phase_enhance=s:option(Flag, "phase_enhance", translate("Enable phase enhancement"))
phase_enhance.default = false
-agressive=s:option(Flag, "agressive", translate("More CPU for more messages"))
-agressive.default = false
+aggressive=s:option(Flag, "aggressive", translate("More CPU for more messages"))
+aggressive.default = false
mlat=s:option(Flag, "mlat", translate("Display raw messages in Beast ascii mode"))
mlat.default = false
local uci = require "luci.model.uci".cursor()
m = Map("freifunk-policyrouting", translate("Policy Routing"), translate("These pages can be used to setup policy routing for certain firewall zones. "..
- "This is useful if you need to use your own internet connection for yourself but you don't want to share it with others (thats why it can also be "..
+ "This is useful if you need to use your own internet connection for yourself but you don't want to share it with others (that's why it can also be "..
"called 'Ego Mode'). Your own traffic is then sent via your internet connection while traffic originating from the mesh will use another gateway in the mesh. "))
m:chain("network")
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
msgid ""
"These pages can be used to setup policy routing for certain firewall zones. "
"This is useful if you need to use your own internet connection for yourself "
-"but you don't want to share it with others (thats why it can also be called "
+"but you don't want to share it with others (that's why it can also be called "
"'Ego Mode'). Your own traffic is then sent via your internet connection "
"while traffic originating from the mesh will use another gateway in the mesh."
msgstr ""
minimum_size = s:taboption(this_tab, Value, "minimum_size", translate("Drop frames smaller then this limit"),translate("Set the minimum size if the webcam produces small-sized garbage frames. May happen under low light conditions"))
minimum_size.datatype = "uinteger"
-no_dynctrl = s:taboption(this_tab, Flag, "no_dynctrl", translate("Don't initalize dynctrls"), translate("Do not initalize dynctrls of Linux-UVC driver"))
+no_dynctrl = s:taboption(this_tab, Flag, "no_dynctrl", translate("Don't initialize dynctrls"), translate("Do not initialize dynctrls of Linux-UVC driver"))
led = s:taboption(this_tab, ListValue, "led", translate("Led control"))
led:value("on", translate("On"))
--mjpeg=s:taboption(this_tab, Value, "mjpeg", translate("Mjpeg output"), translate("Check to save the stream to an mjpeg file"))
-delay=s:taboption(this_tab, Value, "delay", translate("Interval between saving pictures"), translate("Set the inteval in millisecond"))
+delay=s:taboption(this_tab, Value, "delay", translate("Interval between saving pictures"), translate("Set the interval in millisecond"))
delay.placeholder="5000"
delay.datatype = "uinteger"
msgid "Device"
msgstr "デバイス"
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr "Linux-UVCドライバのdynctrlsを初期化しません。"
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr "dynctrlsを初期化しない"
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr "画像を保存するフォルダーを設定します。"
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr "間隔をミリ秒で設定します。"
msgid ""
msgid "Device"
msgstr "Dispositivo"
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr "Não inicie o dynctrls do driver do Linux-UVC"
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr "Não inicia o dynctrls"
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr "Definir pasta para salvas as imagens"
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr "Defina o intervalo em milisegundos"
msgid ""
msgid "Device"
msgstr "Устройство"
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr "Не задействует dynctrls драйвера Linux-UVC."
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr "Отключить dynctrls"
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr "Задать папку для сохранения снимков."
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr "Задать интервал в миллисекундах."
msgid ""
msgid "Device"
msgstr ""
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr ""
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr ""
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr ""
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr ""
msgid ""
msgid "Device"
msgstr "设备"
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr "不要初始化 Linux-UVC 驱动的 dynctrls"
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr "不要初始化 dynctrls"
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr "图片保存位置"
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr "设置时间间隔(毫秒)"
msgid ""
msgid "Device"
msgstr "裝置"
-msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgid "Do not initialize dynctrls of Linux-UVC driver"
msgstr "不要初始化 Linux-UVC 驅動的 dynctrls"
-msgid "Don't initalize dynctrls"
+msgid "Don't initialize dynctrls"
msgstr "不要初始化 dynctrls"
msgid "Drop frames smaller then this limit"
msgid "Set folder to save pictures"
msgstr "圖片儲存位置"
-msgid "Set the inteval in millisecond"
+msgid "Set the interval in millisecond"
msgstr "設定時間間隔(毫秒)"
msgid ""
end
end
- function get_gateway(inteface)
+ function get_gateway(interface)
local gateway = nil
local dump = nil
"rules"
msgstr ""
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
"スは使用できません。<br />インターフェースには、設定済みのメンバーやポリ"
"シー、ルールと同じ名前を使用することはできません。"
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr "最大パケットレイテンシ [ms]"
"символы A-Z, a-z, 0-9, _ и пробелы.<br />Интерфейсы не могут иметь "
"одинаковые имена с настроенными узлами, политиками или правилами."
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
"rules"
msgstr ""
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
"的接口名称匹配。<br />名称允许包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />接"
"口不应该与成员、策略、规则中的任意一个设置项使用相同的名称"
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr "最大数据包延迟 [ms]"
"rules"
msgstr ""
"MWAN 支援最多 252 個物理或邏輯介面。<br />MWAN 要求所有介面必須在 /etc/"
-"config/network 中設定唯一的閘道器躍點。<br />名稱必須與 /etc/config/network 中"
-"的介面名稱匹配。<br />名稱允許包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />接"
-"口不應該與成員、策略、規則中的任意一個設定項使用相同的名稱"
+"config/network 中設定唯一的閘道器躍點。<br />名稱必須與 /etc/config/network "
+"中的介面名稱匹配。<br />名稱允許包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />"
+"接口不應該與成員、策略、規則中的任意一個設定項使用相同的名稱"
+
+msgid "Max TTL"
+msgstr ""
msgid "Max packet latency [ms]"
msgstr "最大資料包延遲 [ms]"
">Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />Members "
"may not share the same name as configured interfaces, policies or rules"
msgstr ""
-"“成員”用來設定每一個 MWAN 介面的躍點數(即介面優先順序)和所佔比重。<br />名稱"
-"允許包括 A-Z、 a-、0-9、_ 但是不能有空格。<br />成員不應該與介面、策略、規則"
-"中的任意一個設定項使用相同的名稱"
+"“成員”用來設定每一個 MWAN 介面的躍點數(即介面優先順序)和所佔比重。<br />名"
+"稱允許包括 A-Z、 a-、0-9、_ 但是不能有空格。<br />成員不應該與介面、策略、規"
+"則中的任意一個設定項使用相同的名稱"
msgid "Members assigned"
msgstr "分配的成員"
"z, 0-9, _ and no spaces<br />Rules may not share the same name as configured "
"interfaces, members or policies"
msgstr ""
-"規則指定哪些流量將使用特定的 MWAN 策略<br />規則基於 IP 位址,埠或協議<br /"
-">規則從上到下匹配<br />匹配規則以下的規則被忽略<br />不符合任何規則的流量將使"
+"規則指定哪些流量將使用特定的 MWAN 策略<br />規則基於 IP 位址,埠或協議<br />"
+"規則從上到下匹配<br />匹配規則以下的規則被忽略<br />不符合任何規則的流量將使"
"用主路由表進行路由<br />目的地為已知(非預設)網路的流量由主路由表處理<br />"
"流量符合規則,但該策略的所有 WAN 介面關閉後都會被失效<br />名稱可包含字元 A-"
"Z,a-z,0-9,_ 和空格<br />規則不能與配置的介面、成員或策略共享相同的名稱"
"\"wwan0\")<br /><br />"
msgstr ""
"這裡允許您修改“/etc/mwan3.user”的內容。<br />該檔案在 sysupgrade 期間也會保"
-"留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第一行必"
-"須是 "#!/bin/sh",不帶引號。<br />以 # 開頭的行是註釋,不會執行。"
+"留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第一"
+"行必須是 "#!/bin/sh",不帶引號。<br />以 # 開頭的行是註釋,不會執行。"
"<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介面上<br /"
">在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變數傳遞給這個"
-"指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動或停止的介面名"
-"(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置名(例"
+"指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動或停止的介面"
+"名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置名(例"
"如“eth0”或“wwan0”)<br /><br />"
msgid "Tracking hostname or IP address"
#~ "g. \"eth0\" or \"wwan0\")<br /><br />"
#~ msgstr ""
#~ "這裡允許您修改“/etc/mwan3.user”的內容。<br />該檔案在 sysupgrade 期間也會"
-#~ "保留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第"
-#~ "一行必須是"#!/bin/sh",不帶引號。<br />以#開頭的行是註釋,不會執"
-#~ "行。<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介面"
-#~ "上<br />在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變數"
-#~ "傳遞給這個指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動"
-#~ "或停止的介面名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置"
-#~ "名(例如“eth0”或“wwan0”)<br /><br />"
+#~ "保留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼"
+#~ "的第一行必須是"#!/bin/sh",不帶引號。<br />以#開頭的行是註釋,不會"
+#~ "執行。<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介"
+#~ "面上<br />在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變"
+#~ "數傳遞給這個指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE "
+#~ "啟動或停止的介面名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理"
+#~ "裝置名(例如“eth0”或“wwan0”)<br /><br />"
#~ msgid "Currently Configured Interfaces"
#~ msgstr "當前配置的介面"
#~ "no spaces<br />Rules may not share the same name as configured "
#~ "interfaces, members or policies"
#~ msgstr ""
-#~ "“規則”基於 IP 位址、協議、埠把流量劃分到指定的“策略”中。<br />規則按照從"
-#~ "上到下的順序進行匹配。除了第一條能夠匹配一次通訊的規則以外,其它規則將被忽"
+#~ "“規則”基於 IP 位址、協議、埠把流量劃分到指定的“策略”中。<br />規則按照從上"
+#~ "到下的順序進行匹配。除了第一條能夠匹配一次通訊的規則以外,其它規則將被忽"
#~ "略。不匹配任何規則的通訊將會由系統預設路由表進行。<br />來自已知的網路的轉"
#~ "發流量由系統預設路由表接手,然後 MWAN 從中匹配出相應的流量並轉移到 MWAN 自"
#~ "己的路由表。但是所有被劃分到一個無法使用的策略的流量將會無法正常進行路由。"
#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"
#~ msgstr ""
#~ "這裡允許您修改 /etc/hotplug.d/iface/16-mwancustom 的內容<br />這可以在接"
-#~ "口 ifup 或 ifdown Hotplug 事件時執行系統指令或指令碼<br /><br />注意:<br />"
-#~ "指令碼的第一行必須是 "#!/bin/sh" 不含引號<br />以#開頭的行是註釋,"
-#~ "不會執行<br /><br />可用變數:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)"
-#~ "<br />$INTERFACE 是介面名稱(wan1、wan2 等)<br />$DEVICE 是連線到介面的設"
-#~ "備名稱 (eth0.1、eth1 等)"
+#~ "口 ifup 或 ifdown Hotplug 事件時執行系統指令或指令碼<br /><br />注意:<br /"
+#~ ">指令碼的第一行必須是 "#!/bin/sh" 不含引號<br />以#開頭的行是註"
+#~ "釋,不會執行<br /><br />可用變數:<br />$ACTION 是 Hotplug 事件(ifup, "
+#~ "ifdown)<br />$INTERFACE 是介面名稱(wan1、wan2 等)<br />$DEVICE 是連線到"
+#~ "介面的設備名稱 (eth0.1、eth1 等)"
local uci = require "luci.model.uci".cursor()
uci:foreach("olsrd", "LoadPlugin", function(s)
- if s.library == "olsrd_nameservice.so.0.3" then
+ if s.library == "olsrd_nameservice" then
has_serv = true
end
end)
}
}
else {
- // beginn somewhere
+ // begin somewhere
n.x = Math.random()*400;
n.y = Math.random()*400;
}
local host = val[1]
local mult = val[2]
if not host or not mult then
- return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) seperated by space.")
+ return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) separated by space.")
end
if not (host == "default" or ip.IPv4(host) or ip.IPv6(host)) then
return nil, translate("Can only be a valid IPv4 or IPv6 address or 'default'")
local host = val[1]
local mult = val[2]
if not host or not mult then
- return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) seperated by space.")
+ return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) separated by space.")
end
if not (host == "default" or ip.IPv6(host)) then
return nil, translate("Can only be a valid IPv6 address or 'default'")
local host = val[1]
local mult = val[2]
if not host or not mult then
- return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) seperated by space.")
+ return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) separated by space.")
end
if not (host == "default" or ip.IPv4(host) or ip.IPv6(host)) then
return nil, translate("Can only be a valid IPv4 or IPv6 address or 'default'")
local host = val[1]
local mult = val[2]
if not host or not mult then
- return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) seperated by space.")
+ return nil, translate("LQMult requires two values (IP address or 'default' and multiplicator) separated by space.")
end
if not (host == "default" or ip.IPv6(host)) then
return nil, translate("Can only be a valid IPv6 address or 'default'")
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
"LQMult precisa dos valores (dirección IP o \"por defecto\" y multiplicador) "
"separados por un espacio."
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
# 20140621: edersg: tradução
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
"LQMult exige dois valores (endereço IP ou 'padrão' e multiplicador) "
"separados por espaços."
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
"LQMult требует двух значений (IP-адрес или 'default' и множитель), "
"разделенных пробелом."
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr ""
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr "LQMult 需要用空格分隔的两个值(IP 地址或“default”,加上乘数)。"
msgid "Last hop"
msgid ""
"LQMult requires two values (IP address or 'default' and multiplicator) "
-"seperated by space."
+"separated by space."
msgstr "LQMult 需要用空格分隔的兩個值(IP 位址或“default”,加上乘數)。"
msgid "Last hop"
elseif v < 1 or v > 4096 then
return nil, err_tab_access(self.title_base, translate("Value not between 1 and 4096") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
elseif v < 1 then
return nil, err_tab_misc(self.title_base, translate("Value not greater 0 or empty") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
elseif v < 1 then
return nil, err_tab_misc(self.title_base, translate("Value not greater 0 or empty") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
m = Map("shadowsocks-libev",
translate("Remote Servers"),
translate("Definition of remote shadowsocks servers. \
- Disable any of them will also disable instances refering to it."))
+ Disable any of them will also disable instances referring to it."))
local sname = arg[1]
if sname then
--- /dev/null
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "<hidden>"
+msgstr ""
+
+msgid "Add"
+msgstr ""
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Bind address"
+msgstr ""
+
+msgid "Bypass ss-redir for packets with dst address in this list"
+msgstr ""
+
+msgid "Bypass ss-redir for packets with src address in this list"
+msgstr ""
+
+msgid ""
+"Continue to have dst address checked for packets with src address in this "
+"list"
+msgstr ""
+
+msgid "Default action for locally generated TCP packets"
+msgstr ""
+
+msgid ""
+"Default action for packets whose dst address do not match any of the dst ip "
+"list"
+msgstr ""
+
+msgid ""
+"Default action for packets whose src address do not match any of the src ip/"
+"net list"
+msgstr ""
+
+msgid ""
+"Definition of remote shadowsocks servers. Disable any of them will also "
+"disable instances referring to it."
+msgstr ""
+
+msgid "Destination Settings"
+msgstr ""
+
+msgid "Disable"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid "Dst default"
+msgstr ""
+
+msgid "Dst ip/net bypass"
+msgstr ""
+
+msgid "Dst ip/net bypass file"
+msgstr ""
+
+msgid "Dst ip/net forward"
+msgstr ""
+
+msgid "Dst ip/net forward file"
+msgstr ""
+
+msgid "Enable SO_REUSEPORT"
+msgstr ""
+
+msgid "Enable TCP Fast Open"
+msgstr ""
+
+msgid "Enable TCP_NODELAY"
+msgstr ""
+
+msgid "Enable/Disable"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Extra arguments"
+msgstr ""
+
+msgid ""
+"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
+msgstr ""
+
+msgid ""
+"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
+msgstr ""
+
+msgid "Forward recentrst"
+msgstr ""
+
+msgid ""
+"Forward those packets whose dst have recently sent to us multiple tcp-rst"
+msgstr ""
+
+msgid "Forward through ss-redir for packets with dst address in this list"
+msgstr ""
+
+msgid "Forward through ss-redir for packets with src address in this list"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "IPv6 First"
+msgstr ""
+
+msgid "Ingress interfaces"
+msgstr ""
+
+msgid "Install package %q"
+msgstr ""
+
+msgid "Install package iptables-mod-conntrack-extra"
+msgstr ""
+
+msgid ""
+"Instances of shadowsocks-libev components, e.g. ss-local, ss-redir, ss-"
+"tunnel, ss-server, etc. To enable an instance it is required to enable both "
+"the instance itself and the remote server it refers to."
+msgstr ""
+
+msgid "Key (base64 encoding)"
+msgstr ""
+
+msgid "Local Instances"
+msgstr ""
+
+msgid "Local address"
+msgstr ""
+
+msgid "Local port"
+msgstr ""
+
+msgid "Local-out default"
+msgstr ""
+
+msgid "MTU"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Mode of operation"
+msgstr ""
+
+msgid "Name"
+msgstr ""
+
+msgid ""
+"On this page you can configure how traffics are to be forwarded to ss-redir "
+"instances. If enabled, packets will first have their src ip addresses "
+"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
+"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
+"give the default action to be taken. If the prior check results in action "
+"<em>checkdst</em>, packets will continue to have their dst addresses checked."
+msgstr ""
+
+msgid "Only apply rules on packets from these network interfaces"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Package is not installed"
+msgstr ""
+
+msgid "Passes additional arguments to iptables. Use with care!"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Prefer IPv6 addresses when resolving names"
+msgstr ""
+
+msgid "Redir Rules"
+msgstr ""
+
+msgid "Remote Servers"
+msgstr ""
+
+msgid "Remote server"
+msgstr ""
+
+msgid "Run as"
+msgstr ""
+
+msgid "Running"
+msgstr ""
+
+msgid "Server"
+msgstr ""
+
+msgid "Server port"
+msgstr ""
+
+msgid "Shadowsocks-libev"
+msgstr ""
+
+msgid "Source Settings"
+msgstr ""
+
+msgid "Src default"
+msgstr ""
+
+msgid "Src ip/net bypass"
+msgstr ""
+
+msgid "Src ip/net checkdst"
+msgstr ""
+
+msgid "Src ip/net forward"
+msgstr ""
+
+msgid "The address ss-server will initiate connection from"
+msgstr ""
+
+msgid "The address ss-tunnel will forward traffic to"
+msgstr ""
+
+msgid "Timeout (sec)"
+msgstr ""
+
+msgid "Tunnel address"
+msgstr ""
+
+msgid "Verbose"
+msgstr ""
+
+msgid "ss-redir for TCP"
+msgstr ""
+
+msgid "ss-redir for UDP"
+msgstr ""
module "luci.controller.siitwizard"
function index()
- entry({"admin", "network", "siitwizard"}, form("siitwizard"), "SIIT 4over6 assistent", 99)
+ entry({"admin", "network", "siitwizard"}, form("siitwizard"), "SIIT 4over6 assistant", 99)
end
-- * wl0 gets an ipv6 address, in this case the fdca:ffee:babe::1:1/64
-- * we do a ::ffff:ffff:0/96 route into siit0, so everything from 6mesh goes into translation.
-- * an HNA6 of ::ffff:ffff:0:0/96 announces the mapped 0.0.0.0/0 ipv4 space.
- -- * MTU on WAN, LAN down to 1400, ipv6 headers are slighly larger.
+ -- * MTU on WAN, LAN down to 1400, ipv6 headers are slightly larger.
if value == "gateway" then
msgid "Some output"
msgstr "一些输出"
+msgid "Start Simple Adblock service"
+msgstr ""
+
msgid "Stop the download if it is stalled for set number of seconds"
msgstr "如果下载停滞设定的秒数后,则停止下载"
msgid "Some output"
msgstr "一些輸出"
+msgid "Start Simple Adblock service"
+msgstr ""
+
msgid "Stop the download if it is stalled for set number of seconds"
msgstr "如果下載停滯設定的秒數後,則停止下載"
p = s:option(Value, "agentaddress", "The address the agent should listen on",
[[Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface]])
-s = m:section(TypedSection, "agentx", "AgentX settings")
+s = m:section(TypedSection, "agentx", "AgentX settings", "Delete this section to disable agentx")
s.anonymous = true
p = s:option(Value, "agentxsocket", "The address the agent should allow agentX connections to",
[[This is only necessary if you have subagents using the agentX socket protocol.
- Note that agentX requires TCP transport]])
+ Eg: /var/run/agentx.sock]])
+s.addremove=true
s = m:section(TypedSection, "com2sec", "com2sec security")
p = s:option(Value, "secname", "secname")
include $(TOPDIR)/rules.mk
LUCI_TITLE:=Freifunk DHCP-Splash application
-LUCI_DEPENDS:=+luci-lib-nixio +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
+LUCI_DEPENDS:=+luci-lib-nixio +luci-lib-iptparser +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
define Package/luci-app-splash/conffiles
/etc/config/luci_splash
require("luci.model.uci")
-m = Map("luci_splash", translate("Client-Splash"), translate("Client-Splash is a hotspot authentification system for wireless mesh networks."))
+m = Map("luci_splash", translate("Client-Splash"), translate("Client-Splash is a hotspot authentication system for wireless mesh networks."))
s = m:section(NamedSection, "general", "core", translate("General"))
s.addremove = false
is limited and because of this we ask you not to do any of the following:%></p>
<ul>
<li><%:use filesharing applications on this network%></li>
- <li><%:waste bandwidth with unneccesary downloads or streams%></li>
+ <li><%:waste bandwidth with unnecessary downloads or streams%></li>
<li><%:perform any kind of illegal activities%></li>
</ul>
<br />
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr "utilitza aplicacions de compartició de fitxers en aquesta xarxa"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "malgasta l'amplada de banda amb baixades o corrents innecessaris"
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr "používat aplikace na sdílení souborů v této síti"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "plýtvat šířkou pásma nepotřebným stahováním nebo streamy"
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
"Client-Splash ist ein Hotspot-Authentifizierungssystem für Freifunk und "
msgid "use filesharing applications on this network"
msgstr "Filesharing betreiben"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "Bandbreite durch unnötige Downloads oder Streams zu verschwenden."
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr "Cliente-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr "Cliente-Splash es un sistema de autentificación para redes mesh."
msgid "use filesharing applications on this network"
msgstr "usar aplicaciones de compartición de ficheros en esta red"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "malgastar ancho de banda con descargas innecesarias o multimedia"
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
"Client-Splash est un système d'authentification de HotSpot pour des réseaux "
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr "השתמש בתוכנות לשיתוף קבצים ברשת זו."
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "לבזבז רוחב פס עם הורדות או שידורים מיותרים"
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
"Client-Splash è un sistema di autenticazione hotspot per le reti mesh "
msgid "use filesharing applications on this network"
msgstr "utilizzare le applicazioni di filesharing su questa rete"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "sprecate banda con download o flussi inutili"
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
# nie ma słowa "autentykacja" - to brzydka kalka z angielskiego.
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
"Klient Splash - sposób uwierzytelniania użytkowników dla sieci WiFi oparty o "
msgstr "używał programów do dzielenia się plikami w tej sieci"
# j.w.
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "marnował transfer na niepotrzebne pobieranie plików i strumieni"
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
"Client-Splash é um sistema de autenticação de ponto de acesso para redes sem "
msgid "use filesharing applications on this network"
msgstr "usar aplicativos de compartilhamento de arquivos nesta rede"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "usar banda com fluxos ou arquivos baixados não necessários"
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr "Splash-Клиент"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
-"networks."
+"Client-Splash is a hotspot authentication system for wireless mesh networks."
msgstr ""
"Splash-Клиент - это система аутентификации точек доступа для беспроводных "
"Mesh сетей."
msgid "use filesharing applications on this network"
msgstr "использование файлообменных приложений в этой сети"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "тратить пропускную способность на ненужные загрузки или потоки"
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
-"networks."
+"Client-Splash is a hotspot authentication system for wireless mesh networks."
msgstr ""
msgid ""
msgid "use filesharing applications on this network"
msgstr "använd fildelningsapplikationer i det här nätverket"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "slösa bandbredd med onödiga nerladdningar eller strömmar"
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
-"networks."
+"Client-Splash is a hotspot authentication system for wireless mesh networks."
msgstr ""
msgid ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr ""
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr "Client-Splash 是无线网状网络的一个热点认证系统。"
msgid "use filesharing applications on this network"
msgstr "在此网络上使用文件共享应用程序"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "用不必要的下载或流媒体浪费带宽"
msgid "whitelisted"
msgstr "Client-Splash"
msgid ""
-"Client-Splash is a hotspot authentification system for wireless mesh "
+"Client-Splash is a hotspot authentication system for wireless mesh "
"networks."
msgstr "Client-Splash 是無線網狀網路的一個熱點認證系統。"
msgid "use filesharing applications on this network"
msgstr "在此網路上使用檔案共享應用程式"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "用不必要的下載或流媒體浪費頻寬"
msgid "whitelisted"
[ -s $IPT_REPLAY ] && . $IPT_REPLAY
echo -n > $IPT_REPLAY
- ### Add interface independant prerouting rules
+ ### Add interface independent prerouting rules
$IPT -t nat -A luci_splash_prerouting -j luci_splash_leases
$IPT -t nat -A luci_splash_leases -p udp --dport 53 -j REDIRECT --to-ports 53
$IPT -t nat -A luci_splash_leases -p tcp --dport 80 -j REDIRECT --to-ports 8082
- ### Add interface independant forwarding rules
+ ### Add interface independent forwarding rules
$IPT -t filter -A luci_splash_forwarding -j luci_splash_filter
$IPT -t filter -A luci_splash_filter -p tcp -j REJECT --reject-with tcp-reset
$IPT -t filter -A luci_splash_filter -j REJECT --reject-with icmp-net-prohibited
LUCI_TITLE:=LuCI Statistics Application
LUCI_DEPENDS:= \
+ +luci-lib-iptparser \
+collectd +rrdtool1 +collectd-mod-rrdtool +collectd-mod-iwinfo \
+collectd-mod-cpu +collectd-mod-memory \
+collectd-mod-interface +collectd-mod-load +collectd-mod-network
require("luci.util")
require("luci.statistics.datatree")
- -- override entry(): check for existance <plugin>.so where <plugin> is derived from the called path
+ -- override entry(): check for existence <plugin>.so where <plugin> is derived from the called path
function _entry( path, ... )
local file = path[5] or path[4]
if nixio.fs.access( "/usr/lib/collectd/" .. file .. ".so" ) then
cpu = _("Processor"),
cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
+ curl = _("cUrl"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
dns = _("DNS"),
general = { "apcups", "contextswitch", "cpu", "cpufreq", "df",
"disk", "email", "entropy", "exec", "irq", "load", "memory",
"nut", "processes", "sensors", "thermal", "uptime" },
- network = { "conntrack", "dns", "interface", "iptables",
+ network = { "conntrack", "curl", "dns", "interface", "iptables",
"netlink", "olsrd", "openvpn", "ping",
"splash_leases", "tcpconns", "iwinfo" }
}
--- /dev/null
+-- Copyright 2018 Chizhong Jin <pjincz@gmail.com>
+-- Licensed to the public under the BSD 3-clause license
+
+m = Map("luci_statistics",
+ translate("cUrl Plugin Configuration"))
+
+s = m:section(NamedSection, "collectd_curl")
+s_enable = s:option(Flag, "enable", translate("Enable this plugin"))
+s_enable.default = 0
+
+page = m:section(TypedSection, "collectd_curl_page")
+page.addremove = true
+page.anonymous = true
+page.template = "cbi/tblsection"
+page.sortable = true
+
+page_enable = page:option(Flag, "enable", translate("Enable"))
+page_enable.default = 1
+
+page_name = page:option(Value, "name", translate("Name"))
+
+page_addr = page:option(Value, "url", translate("URL"))
+
+return m
m = Map("luci_statistics",
translate("Disk Plugin Configuration"),
translate(
- "The disk plugin collects detailled usage statistics " ..
+ "The disk plugin collects detailed usage statistics " ..
"for selected partitions or whole disks."
))
m = Map("luci_statistics",
translate("DNS Plugin Configuration"),
translate(
- "The dns plugin collects detailled statistics about dns " ..
+ "The dns plugin collects detailed statistics about dns " ..
"related traffic on selected interfaces."
))
translate(
"Here you can define external commands which will be " ..
"started by collectd when certain threshold values have " ..
- "been reached. The values leading to invokation will be " ..
- "feeded to the the called programs stdin."
+ "been reached. The values leading to invocation will be " ..
+ "fed to the the called programs stdin."
))
notify.addremove = true
notify.anonymous = true
translate("Iptables Plugin Configuration"),
translate(
"The iptables plugin will monitor selected firewall rules and " ..
- "collect informations about processed bytes and packets per rule."
+ "collect information about processed bytes and packets per rule."
))
-- collectd_iptables config section
m = Map("luci_statistics",
translate("Netlink Plugin Configuration"),
translate(
- "The netlink plugin collects extended informations like " ..
+ "The netlink plugin collects extended information like " ..
"qdisc-, class- and filter-statistics for selected interfaces."
))
m = Map("luci_statistics",
translate("Processes Plugin Configuration"),
translate(
- "The processes plugin collects informations like cpu time, " ..
+ "The processes plugin collects information like cpu time, " ..
"page faults and memory usage of selected processes."
))
m = Map("luci_statistics",
translate("TCPConns Plugin Configuration"),
translate(
- "The tcpconns plugin collects informations about open tcp " ..
+ "The tcpconns plugin collects information about open tcp " ..
"connections on selected ports."
))
--- /dev/null
+-- Copyright 2018 Chizhong Jin <pjincz@gmail.com>
+-- Licensed to the public under the BSD 3-clause license
+
+module("luci.statistics.rrdtool.definitions.curl", package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+ return {
+ title = "%H: cUrl Response Time for #%pi",
+ y_min = "0",
+ alt_autoscale_max = true,
+ vlabel = "Response Time",
+ number_format = "%5.1lf%Ss",
+ data = {
+ types = { "response_time" },
+ options = {
+ response_time = {
+ title = ""
+ }
+ }
+ }
+ }
+end
-- diagram data description
data = {
- -- defined sources for data types, if ommitted assume a single DS named "value" (optional)
+ -- defined sources for data types, if omitted assume a single DS named "value" (optional)
sources = {
if_octets = { "tx", "rx" }
},
-- diagram data description
data = {
- -- defined sources for data types, if ommitted assume a single DS named "value" (optional)
+ -- defined sources for data types, if omitted assume a single DS named "value" (optional)
sources = {
if_octets = { "tx", "rx" }
},
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Ací pots definir ordres externes que s'iniciaran pel collectd quan s'aribi a "
"uns certs valors llindars. Els valors que condueixin a la invocació, "
"dispositius, punts de muntatge i tipus de sistema de fitxers."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"El connector de disc recull estadístiques d'ús detallades per les particions "
"seleccionades o per tot el disc."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"El connector DNS recull estadístiques detallades sobre el tràfic DNS a les "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"El connector iptables monitoritzarà les regles de tallafocs seleccionades i "
"recollirà informacions sobre els bytes i paquests processats per regla."
msgstr "El connector de memòria recull estadístiques sobre l'ús de memòria."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"El connector d'enllaç de xarxa recull informació extensa com estadístiques "
"i mesurarà el temps d'anada i tornada en cada màquina."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"El connector de processor recollirà informacions com el temps de cpu, errors "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"El connector TCPConns recull informació sobre les connexions TCP obertes en "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
"zařízeních, přípojných bodech nebo typech souborových systémů."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Plugin Disk shromažďuje podrobné statistiky o využívání vybraného oddílu "
"nebo celého disku."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"Plugin DNS shromažďuje podrobné statistky o provozu, vztahující se k DNS, na "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Plugin Iptables monitoruje vybraná pravidla firewallu a shromažďuje "
"informace o zpracovaných bajtech a paketech pro každé pravidlo."
msgstr "Plugin Memory shromažďuje statistiky o využití paměti."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Plugin Netlink shromažďuje rozšířené informace jako statistiky qdisk, class "
"zpáteční čas pro každého hosta."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Plugin Processes shromažďuje informace o procesorovém času, výpadcích "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Plugin Tcpconns shromažďuje informace o otevřených TCP spojeních na "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Hier können externe Kommandos definiert werden, welche durch Collectd "
"gestartet werden sobald konfigurierte Grenzwerte erreicht werden. Die Werte "
"verschiedenen Geräten, Mount-Punkten oder Dateisystemtypen."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Das Disk-Plugin sammelt detaillierte Statistiken über die Auslastung auf "
"ausgewählten Festplatten und Partitionen."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"Das DNS-Plugin sammelt detaillierte Statistiken über DNS-bezogenen Verkehr "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Das Iptables-Plugin überwacht ausgewählte Firewall-Regeln und sammelt Werte "
"über die Anzahl der verarbeiteten Pakete und Bytes."
"Das memory-Plugin sammelt Statistiken über die RAM-Auslastung des Systems."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Das Netlink-Plugin sammelt erweiterte QoS-Informationen wie QDisc-, Class- "
"Antwortzeiten für jede Adresse."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Das Prozess-Plugin sammelt Statistiken über Prozess-Zeit, Speicher-Fehler "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Das TCPConns-Plugin sammelt Informationen über offene TCP-Verbindungen auf "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgid ""
"Here you can define various criteria by which the monitored iptables rules "
"devices, mount points or filesystem types."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgid ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgid ""
"The irq plugin will monitor the rate of issues per second for each selected "
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgid ""
"the roundtrip time for each host."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgid ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgid ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Aquí puede definir los comandos externos que iniciará collectd cuando se "
"alcancen ciertos valores umbral."
"en diferentes dispositivos, puntos de montaje y tipos de sistema de archivos."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"El plugin \"Disco\" recolecta estadísticas detallada acerca de su "
"utilización para las particiones seleccionadas o bien el disco completo."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"El plugin \"DNS\" recolecta estadísticas detalladas acerca del trafico DNS "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"El plugin \"Iptables\" monitoriza las reglas seleccionadas del cortafuegos y "
"recoge información de bytes y paquetes procesados por cada regla."
msgstr "El plugin \"memoria\" recoge estadísticas sobre el uso de memoria."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"El plugin \"netlink\" recoge informaciones extendidas como estadísticas "
"tiempo de viaje para cada host."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"El plugin \"procesos\" recoge información como tiempo de CPU, fallos de "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"El plugin \"tcpconns\" recoge información de conexiones TCP abiertas en los "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Vous pouvez définir ici des commandes externes qui seront démarrées par "
"collectd quand certaines valeurs-seuil seront atteintes. Les valeurs "
"différents périphériques, points de montage ou types de systèmes de fichiers."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Le greffon Disque récupère des informations détaillées sur des disques ou "
"partitions sélectionnées."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"Le greffon DNS récupère des données détaillées à propos du trafic lié au DNS "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Le greffon IPtables surveillera des règles de pare-feu sélectionnées et "
"collectera des informations sur les octets et paquets IP traités par chaque "
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Le greffon de lien-réseau récupère sur les interfaces sélectionnées des "
-"informations avancées liées à la QOS, aux classes et au filtrage."
+"informations avancées liées à la QOS, aux classes et au filtrage."
msgid ""
"The network plugin provides network based communication between different "
"instances collectd : ce programme peut fonctionner à la fois comme client et "
"serveur. En mode client, les données collectées localement sont transférées "
"à un serveur, en mode serveur, l'instance collectd locale reçoit des "
-"informations d'autres hôtes."
+"informations d'autres hôtes."
msgid ""
"The ping plugin will send icmp echo replies to selected hosts and measure "
"mesure le temps d'aller-retour avec chacun."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Le greffon des processus récupère des informations comme le temps CPU, les "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Le greffon des connexions TCP récupère des informations sur les ouvertures "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Itt megadhatók külső parancsok amelyek a collectd által lesznek futtatva "
"amikor bizonyos küszbértékek elérésre kerülnek. A hívást kiváltó értékek a "
"eszközökön, csatolási pontokon vagy fájlrendszereken."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"A lemez bővítmény részletes használati statisztikákat készít a kiválasztott "
"paticiókhoz vagy teljes lemezekhez."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"A DNS bővítmény részletes adatokat gyűjt a kiválasztott interfészek DNS-hez "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Az iptables bővítmény kiválasztott tűzfal szabályok alapján információt "
"gyűjt a szabályonként feldolgozott bájtokról és csomagokról."
msgstr "A memória bővítmény a memórahasználatról gyűjt információkat."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"oda-vissza eltelt időt minden gép esetében."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"A tcpconns bővítmény a kiválasztott portokon lévő TCP kapcsolatokról gyűjt "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Qui puoi definire un comando che sarà avviato da collectd quando un certo "
"valore soglia sia raggiunto. Il valore in questione sarà passato al comando "
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"ここでは、特定の閾値に到達したときにcollectによって開始される外部コマンドを設"
"定することができます。呼び出しにつながる値は、呼び出されたプログラムの標準入"
"ディスク使用量についての統計を収集します。"
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"ディスク プラグインは、選択されたパーティションまたはディスク全体の詳細な使用"
"統計を収集します。"
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"DNS プラグインは、選択されたインターフェースでのDNSに関連したトラフィックにつ"
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"iptables プラグインは、選択されたファイアウォール規をモニターし、規則ごとの処"
"理されたバイト数とパケット数についての情報を収集します。"
msgstr "メモリー プラグインは、メモリー使用についての統計を収集します。"
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Netlink プラグインは、選択されたインターフェースの qdisc- や class- 、filter-"
"復時間を計測します。"
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"プロセス プラグインは、選択されたプロセスのCPU時間やページフォルト、メモリー"
"rrdtool/\">RRDtool</a>を使用します。"
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"TCP接続プラグインは、選択されたポートにおいてオープンなTCP接続についての情報"
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Her kan du definere eksterne kommandoer som blir startet av collectd når "
"visse grenseverdier er blitt nådd. Verdiene som fører til aktivering vil bli "
"punkter eller filsystem typer."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Disk plugin samler detaljert brukerstatistikk for utvalgte partisjoner og "
"hele disker."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"DNS pluging samler detaljert statistikk om DNS relatert trafikk på utvalgte "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Iptables plugin vil overvåke utvalgte brannmurregler og samle informasjon om "
"bearbeidet data per regel."
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Netlink plugin samler utvidet informasjon som qdisc-, klasse- og filter-"
"rundtur tar for hver vert."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Prosess plugin samler informasjon som f.eks. CPU tid, sidefeil og minnebruk "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Tcpconns plugin samler informasjon om åpne TCP tilkoblinger på utvalgte "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Tutaj można zdefiniować zewnętrzne komendy, które będą włączane przez "
"collectd, kiedy zostaną osiągnięte konkretne wartości progowe. Wartości "
"urządzenia, dyskach i systemach plików."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Wtyczka \"disk\" zbiera szczegółowe informacje z poszczególnych partycji lub "
"całych dysków."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"Wtyczka \"dns\" zbiera statystyki odnośnie ruchu DNS dla wybranych "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Wtyczka \"iptables\" monitoruje wybrane reguły firewalla i zbiera statystyki "
"o procesach, bajtach i pakietach przypadających na daną regułę."
msgstr "Wtyczka \"memory\" zbiera statystyki dotyczące wykorzystania pamięci."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Wtyczki netlink zbiera rozszerzone informacje statystyk z qdisc-, klasa- i "
"hostów oraz mierzy czasy odpowiedzi zwrotnych dla każdego z nich."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Wtyczki processes zbiera informacje o czasie procesora, błędach strony i "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Wtyczka \"tcpconns\" zbiera informacje o otwartych połączeniach tcp dla "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Aqui você pode definir os comandos externos que serão iniciados pelo "
"collectd quando determinados valores limite forem atingidos. Os valores "
"diferentes dispositivos, pontos de montagem ou tipos de sistemas de arquivos."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"O plugin disco coleta estatísticas de uso detalhadas das partições "
"selecionadas ou discos inteiros."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"O plugin dns coleta estatísticas detalhadas sobre o tráfego do dns nas "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"O plugin iptables irá monitorar as regras de firewall selecionadas e coletar "
"informações sobre pacotes e bytes processados pela regra."
msgstr "O plugin de memória coleta estatísticas sobre o uso da memória."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"O plugin Netlink coleta informações detalhadas como qdisc-, classe- e "
"selecionados e medir o tempo de resposta para cada equipamento."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"O plugin de processos coleta informações como o tempo da cpu, falha de "
"a> para desenhar os gráficos."
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"O plugin tcpconns coleta informações sobre as conexões TCP abertas das "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Aqui pode definir os comandos externos que serão iniciados pelo collectd "
"quando determinados valores limite forem atingidos. Os valores passados ao "
"diferentes dispositivos, pontos de montagem ou tipos de sistemas de arquivos."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"O plugin disco coleta estatísticas de uso detalhadas das partições "
"selecionadas ou discos inteiros."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"O plugin dns coleta estatísticas detalhadas sobre o tráfego do dns nas "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"O plugin iptables irá monitorar as regras de firewall selecionadas e coletar "
"informações sobre pacotes e bytes processados pela regra."
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"O plugin Netlink coleta informações detalhadas como qdisc-, classe- e filtro "
"medir o tempo de resposta para cada host."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"O plugin processo coleta informações como o tempo da cpu, página falhas e "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"O plugin tcpconns coleta informações sobre as conexões TCP abertas das "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"На странице вы можете определить внешние команды, которые будут выполнены, "
"когда значения достигнут определенного порога. Значения будут переданы на "
"устройствах, точках монтирования или файловых системах."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Плагин 'Disk' собирает подробную статистику по выбранным разделам или дискам."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
"Плагин 'DNS' собирает подробную статистику о DNS трафике на выбранных "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"Плагин 'Iptables' собирает статистику с определенных правил межсетевого "
"экрана."
"памяти."
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Плагин 'Netlink' собирает расширенную статистику с выбранных интерфейсов."
"отклика."
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Плагин 'Processes' собирает информацию, такую как время CPU, ошибки страницы "
"и представления их в виде графиков."
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Плагин 'TCPConns' собирает информацию об открытых TCP соединениях на "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
msgid ""
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
msgstr ""
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"Ở đây bạn có thể định nghĩa các lệnh bên ngoài cái mà bắt đầu bằng collectd "
"khi những giá trị threshold nhất định được tiếp cận. Những giá trị dẫn tới "
-"invokation sẽ được feed tới một chương trình gọi là stdin"
+"invocation sẽ được feed tới một chương trình gọi là stdin"
msgid ""
"Here you can define various criteria by which the monitored iptables rules "
"thiết bị khác, mount points hoặc những loại filesystem."
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr ""
"Disk plugin thu thập số liệu thống kê chi tiết về cách sử dụng cho những "
"phân vùng lựa chọn hoặc toàn bộ đĩa."
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr ""
" dns plugin thu thập những thông kê chi tiết về dns liên quan đến lưu thông "
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr ""
"iptables plugin sẽ monitor những cái firewall rules được chọn và thu thập "
"thông tin về bytes xử lý và gói trên rule. "
msgstr ""
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr ""
"Netlink plugin thu thập những thông tin mở rộng như qdisc-, class- and "
"gian vận hành qua lại cho từng host"
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr ""
"Processes plugin thu thập thông tin như cpu time, page faults và memory "
msgstr ""
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr ""
"Tcpconns plugin thu thập thông tin về open tcp kết nối trên những cổng được "
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"在这里,您可以定义外部命令,当 Collectd 达到一定阈值时,将启动命令。阀值将会"
"作为命令的标准输入。"
msgstr "df 插件收集磁盘空间使用情况、挂载点及文件系统相关信息。"
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr "disk 插件收集磁盘分区使用情况及相关信息。"
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr "dns 插件收集 dns 数据流相关信息。"
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr "iptables 插件将监测选定防火墙规则和收集关于每个规则处理的数据包信息。"
msgid ""
msgstr "memory 插件收集关于内存使用情况的统计信息。"
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr "netlink 插件收集为选定接口 qdisc-、class- 和 filter- 的扩展数据。"
msgstr "ping 插件将发送 icmp echo replies 到选定主机来测量每台主机的响应时间。"
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr "processes 插件收集选定进程的 cpu 时间、页面错误和内存使用信息。"
"表。"
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr "tcpconns 插件收集选定端口 TCP 连接信息。"
msgid ""
"Here you can define external commands which will be started by collectd when "
-"certain threshold values have been reached. The values leading to invokation "
-"will be feeded to the the called programs stdin."
+"certain threshold values have been reached. The values leading to invocation "
+"will be fed to the the called programs stdin."
msgstr ""
"在這裡,您可以定義外部指令,當 Collectd 達到一定閾值時,將啟動指令。閥值將會"
"作為指令的標準輸入。"
msgstr "df 外掛收集磁碟空間使用情況、掛載點及檔案系統相關資訊。"
msgid ""
-"The disk plugin collects detailled usage statistics for selected partitions "
+"The disk plugin collects detailed usage statistics for selected partitions "
"or whole disks."
msgstr "disk 外掛收集磁碟分割槽使用情況及相關資訊。"
msgid ""
-"The dns plugin collects detailled statistics about dns related traffic on "
+"The dns plugin collects detailed statistics about dns related traffic on "
"selected interfaces."
msgstr "dns 外掛收集 dns 資料流相關資訊。"
msgid ""
"The iptables plugin will monitor selected firewall rules and collect "
-"informations about processed bytes and packets per rule."
+"information about processed bytes and packets per rule."
msgstr "iptables 外掛將監測選定防火牆規則和收集關於每個規則處理的資料包資訊。"
msgid ""
msgstr "memory 外掛收集關於記憶體使用情況的統計資訊。"
msgid ""
-"The netlink plugin collects extended informations like qdisc-, class- and "
+"The netlink plugin collects extended information like qdisc-, class- and "
"filter-statistics for selected interfaces."
msgstr "netlink 外掛收集為選定介面 qdisc-、class- 和 filter- 的擴充套件資料。"
msgstr "ping 外掛將傳送 icmp echo replies 到選定主機來測量每臺主機的響應時間。"
msgid ""
-"The processes plugin collects informations like cpu time, page faults and "
+"The processes plugin collects information like cpu time, page faults and "
"memory usage of selected processes."
msgstr "processes 外掛收集選定程序的 cpu 時間、頁面錯誤和記憶體使用資訊。"
"表。"
msgid ""
-"The tcpconns plugin collects informations about open tcp connections on "
+"The tcpconns plugin collects information about open tcp connections on "
"selected ports."
msgstr "tcpconns 外掛收集選定埠 TCP 連線資訊。"
config statistics 'collectd_cpufreq'
option enable '0'
+config statistics 'collectd_curl'
+ option enable '0'
+
config statistics 'collectd_df'
option enable '0'
option Devices '/dev/mtdblock/4'
return str
end
+function config_curl( c )
+ local str = ""
+
+ for s in pairs(sections) do
+ if sections[s][".type"] == "collectd_curl_page" then
+ str = str .. "\t<Page \"" .. sections[s].name .. "\">\n" ..
+ "\t\tURL \"" .. sections[s].url .. "\"\n" ..
+ "\t\tMeasureResponseTime true\n" ..
+ "\t</Page>\n"
+ end
+ end
+
+ return str
+end
+
function config_iptables( c )
local str = ""
{ }
},
+ curl = config_curl,
+
df = {
{ },
{ "IgnoreSelected" },
t = s:option(ListValue, "type", translate("Policy"),
- translate("<em>Via proxy</em> routes requests to the given target via the specifed upstream proxy, <em>Reject access</em> disables any upstream proxy for the target"))
+ translate("<em>Via proxy</em> routes requests to the given target via the specified upstream proxy, <em>Reject access</em> disables any upstream proxy for the target"))
t:value("proxy", translate("Via proxy"))
t:value("reject", translate("Reject access"))
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.4\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Translate Toolkit 1.1.1\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.4\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Content-Transfer-Encoding: 8bit\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"20)) ? 1 : 2;\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
msgstr "Content-Type: text/plain; charset=UTF-8"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 1.1.0\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"X-Generator: Pootle 2.0.6\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
"Content-Transfer-Encoding: 8bit\n"
msgid ""
-"<em>Via proxy</em> routes requests to the given target via the specifed "
+"<em>Via proxy</em> routes requests to the given target via the specified "
"upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
"target"
msgstr ""
if info.wep == true then
return translate("WEP")
elseif info.wpa > 0 then
- return "%s (%s/%s)" %{label[info.wpa], table.concat(info.auth_suites), table.concat(info.group_ciphers)}
+ return "%s (%s/%s)" %{label[info.wpa] or translate("Unknown"), table.concat(info.auth_suites), table.concat(info.group_ciphers)}
elseif info.enabled then
return translate("Unknown")
else
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: ja\n"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
msgstr ""
"トラベル ルーター機能を有効化するための、 Travelmate パッケージの設定です。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-"Android や iOS デバイスを、表示される QR コードを使用して WiFi に接続します。"
-
msgid "Connection Limit"
msgstr "接続制限"
msgid "Edit this Uplink"
msgstr "このアップリンクを編集"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Travelmate の有効化"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "詳細なデバッグ ログの有効化"
msgid "Encryption"
msgstr "暗号化"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "拡張オプション"
msgid "Faulty Stations"
msgid "Find and join network on"
msgstr "ネットワークの検索と参加:"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
msgid "Force TKIP and CCMP (AES)"
msgstr "TKIP と CCMP (AES)"
-msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"ここには、構成済みの全アクセスポイントの QR コードを表示しています。以下の "
-"QR コードを使用して、 Android または iOS デバイスをルータの WiFi に接続するこ"
-"とができます。"
-
msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "Travelmate が無線アップリンクへの接続成功を待つ時間です。"
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
-msgstr "QR-コード"
-
-msgid "Radio selection"
-msgstr "無線の選択"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "再スキャン"
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')"
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "アップリンクへの接続を試行する回数です。"
msgid "Scan"
msgstr "スキャン:"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "シグナル品質閾値"
msgid "hidden"
msgstr "(ステルス)"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr ""
+#~ "Android や iOS デバイスを、表示される QR コードを使用して WiFi に接続しま"
+#~ "す。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "ここには、構成済みの全アクセスポイントの QR コードを表示しています。以下"
+#~ "の QR コードを使用して、 Android または iOS デバイスをルータの WiFi に接続"
+#~ "することができます。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR-コード"
+
+#~ msgid "Radio selection"
+#~ msgstr "無線の選択"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr ""
+#~ "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')"
+
#~ msgid "Last rundate"
#~ msgstr "最終実行日時"
msgid "Edit this Uplink"
msgstr "Editar Configurações da Rede de saída"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Habilitar o Travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "Habilitar os registros de depuração detalhados"
msgid "Encryption"
msgstr "Cifragem"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "Opções adicionais"
msgid "Faulty Stations"
"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
"functionality."
msgstr "Настройка утилиты TravelMate - помощника путешественника. "
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-
msgid "Connection Limit"
msgstr "Ограничение соединений"
msgid "Edit this Uplink"
msgstr "Редактировать настройки сети"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Включить Travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "Включить подробное ведение журнала отладки"
msgid "Encryption"
msgstr "Шифрование"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "Дополнительные настройки"
msgid "Faulty Stations"
msgid "Find and join network on"
msgstr "Найти сеть для подключения используя"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
msgid "Force TKIP and CCMP (AES)"
msgstr "Назначить TKIP и CCMP (AES)"
-msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-
msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr ""
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
+msgid "Radio Selection / Order"
msgstr ""
-msgid "Radio selection"
-msgstr "Выбор Wi-Fi устройства"
-
msgid "Repeat scan"
msgstr "Повторить поиск"
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "Выделить TravelMate-у конкретное Wi-Fi устройство, например 'radio0'."
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr ""
msgid "Scan"
msgstr "Поиск"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr ""
msgid "hidden"
msgstr "скрытый"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid "Radio selection"
+#~ msgstr "Выбор Wi-Fi устройства"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr ""
+#~ "Выделить TravelMate-у конкретное Wi-Fi устройство, например 'radio0'."
+
#~ msgid "Last rundate"
#~ msgstr "Дата последнего запуска"
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
"functionality."
msgstr ""
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-
msgid "Connection Limit"
msgstr ""
msgid "Edit this Uplink"
msgstr ""
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr ""
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr ""
msgid "Encryption"
msgstr ""
-msgid "Extra options"
+msgid "Extra Options"
msgstr ""
msgid "Faulty Stations"
msgid "Find and join network on"
msgstr ""
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
msgid "Force TKIP and CCMP (AES)"
msgstr ""
-msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-
msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr ""
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
-msgstr ""
-
-msgid "Radio selection"
+msgid "Radio Selection / Order"
msgstr ""
msgid "Repeat scan"
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
msgstr ""
msgid "Retry limit to connect to an uplink."
msgid "Scan"
msgstr ""
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr ""
msgid "hidden"
msgstr ""
+
+msgid "with SSID"
+msgstr ""
"PO-Revision-Date: 2018-08-17 17:06+0800\n"
"X-Generator: Gtranslator 2.91.7\n"
+msgid "AP on"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
msgid "Add Uplink"
msgstr "添加上行连接"
"functionality."
msgstr "配置 travelmate 包,以启用旅行路由器功能。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr "使用显示的 QR 码,将您的 Android 或 iOS 设备连接到路由器 WiFi。"
-
msgid "Connection Limit"
msgstr "连接限制"
msgid "Edit this Uplink"
msgstr "编辑此上行连接"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "启用 travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "启用详细调试日志"
msgid "Encryption"
msgstr "加密"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "额外选项"
+msgid "Faulty Stations"
+msgstr ""
+
msgid "Find and join network on"
msgstr "查找并加入网络"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
msgid "Force TKIP and CCMP (AES)"
msgstr "强制 TKIP 和 CCMP(AES)"
-msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"在这里,您可以找到所有已配置的接入点的 QR 码。您可以使用下面显示的 QR 码,使 "
-"Android 或 iOS 设备连接到路由器 WiFi。"
-
msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "travelmate 等待 wlan 上行连接成功最长时间。"
msgid "Interface Wizard"
msgstr "接口向导"
-msgid "Last rundate"
-msgstr "最后运行时间"
+msgid "Last Run"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
msgid ""
"Minimum signal quality threshold as percent for conditional uplink (dis-) "
msgid ""
"Provides an overview of all configured uplinks for the travelmate interface "
"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
-"one. The currently used uplink is emphasized in blue."
+"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-"此处显示 travelmate 接口(%s)所有已配置上行连接的概述。您可以编辑、删除或重"
-"新排序现有连接,或扫描新上行连接。当前使用的上行连接以蓝色突出显示。"
-
-msgid "QR-Codes"
-msgstr "QR 码"
-msgid "Radio selection"
-msgstr "无线选择"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "重新扫描"
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "将 travelmate 限制在专用无线电中,如“radio0”。"
+msgid "Restart"
+msgstr ""
+
+msgid "Restart Travelmate"
+msgstr ""
+
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "连接到上行连接的重试限制。"
msgid "Scan"
msgstr "扫描"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "信号质量阈值"
msgid "Signal strength"
msgstr "信号强度"
-msgid "Station ID (SSID/BSSID)"
-msgstr "站点 ID(SSID/BSSID)"
+msgid "Station ID (RADIO/SSID/BSSID)"
+msgstr ""
msgid "Station Interface"
msgstr "站点接口"
-msgid "Station Radio"
-msgstr "站点无线"
-
msgid ""
"The BSSID information '%s' is optional and only required for hidden networks"
msgstr "BSSID 信息“%s”是可选的,仅对隐藏网络必需"
+msgid "The syslog output, pre-filtered for travelmate related messages only."
+msgstr ""
+
msgid ""
"This form allows you to modify the content of the main firewall "
"configuration file (/etc/config/firewall)."
"configuration file (/etc/config/wireless)."
msgstr "此表单允许您修改主无线配置文件(/etc/config/wireless)的内容。"
-msgid ""
-"This form shows the syslog output, pre-filtered for travelmate related "
-"messages only."
-msgstr "此表单显示 syslog 输出,仅针对 travelmate 相关消息进行预过滤。"
-
msgid "This step has only to be done once."
msgstr "此步骤只需执行一次。"
msgid "Travelmate"
msgstr "Travelmate"
-msgid "Travelmate Logfile"
-msgstr "Travelmate 日志文件"
-
msgid "Travelmate Status (Quality)"
msgstr "Travelmate 状态(质量)"
msgid "Wireless Stations"
msgstr "无线站点"
-msgid "add it to the wan zone of the firewall.<br />"
-msgstr "将其添加到防火墙的 wan 区域。<br />"
+msgid "add it to the wan zone of the firewall."
+msgstr ""
msgid "hidden"
msgstr "隐藏"
-msgid "n/a"
-msgstr "n/a"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr "使用显示的 QR 码,将您的 Android 或 iOS 设备连接到路由器 WiFi。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "在这里,您可以找到所有已配置的接入点的 QR 码。您可以使用下面显示的 QR 码,"
+#~ "使 Android 或 iOS 设备连接到路由器 WiFi。"
+
+#~ msgid "Last rundate"
+#~ msgstr "最后运行时间"
+
+#~ msgid ""
+#~ "Provides an overview of all configured uplinks for the travelmate "
+#~ "interface (%s). You can edit, delete or re-order existing uplinks or scan "
+#~ "for a new one. The currently used uplink is emphasized in blue."
+#~ msgstr ""
+#~ "此处显示 travelmate 接口(%s)所有已配置上行连接的概述。您可以编辑、删除或"
+#~ "重新排序现有连接,或扫描新上行连接。当前使用的上行连接以蓝色突出显示。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR 码"
+
+#~ msgid "Radio selection"
+#~ msgstr "无线选择"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr "将 travelmate 限制在专用无线电中,如“radio0”。"
+
+#~ msgid "Station ID (SSID/BSSID)"
+#~ msgstr "站点 ID(SSID/BSSID)"
+
+#~ msgid "Station Radio"
+#~ msgstr "站点无线"
+
+#~ msgid ""
+#~ "This form shows the syslog output, pre-filtered for travelmate related "
+#~ "messages only."
+#~ msgstr "此表单显示 syslog 输出,仅针对 travelmate 相关消息进行预过滤。"
+
+#~ msgid "Travelmate Logfile"
+#~ msgstr "Travelmate 日志文件"
+
+#~ msgid "add it to the wan zone of the firewall.<br />"
+#~ msgstr "将其添加到防火墙的 wan 区域。<br />"
+
+#~ msgid "n/a"
+#~ msgstr "n/a"
"PO-Revision-Date: 2018-08-17 17:06+0800\n"
"X-Generator: Gtranslator 2.91.7\n"
+msgid "AP on"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
msgid "Add Uplink"
msgstr "新增上行連線"
msgid ""
"Check the internet availability, log captive portal redirections and keep "
"the uplink connection 'alive'."
-msgstr "檢查網際網路可用性,記錄強制網路門戶重定向,並保持上行連線為“活動”狀態。"
+msgstr ""
+"檢查網際網路可用性,記錄強制網路門戶重定向,並保持上行連線為“活動”狀態。"
msgid "Cipher"
msgstr "密碼"
"functionality."
msgstr "配置 travelmate 包,以啟用旅行路由器功能。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr "使用顯示的 QR 碼,將您的 Android 或 iOS 裝置連線到路由器 WiFi。"
-
msgid "Connection Limit"
msgstr "連線限制"
msgid "Edit this Uplink"
msgstr "編輯此上行連線"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "啟用 travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "啟用詳細除錯日誌"
msgid "Encryption"
msgstr "加密"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "額外選項"
+msgid "Faulty Stations"
+msgstr ""
+
msgid "Find and join network on"
msgstr "查詢並加入網路"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
msgid "Force TKIP and CCMP (AES)"
msgstr "強制 TKIP 和 CCMP(AES)"
-msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"在這裡,您可以找到所有已配置的接入點的 QR 碼。您可以使用下面顯示的 QR 碼,使 "
-"Android 或 iOS 裝置連線到路由器 WiFi。"
-
msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "travelmate 等待 wlan 上行連線成功最長時間。"
msgid "Interface Wizard"
msgstr "介面嚮導"
-msgid "Last rundate"
-msgstr "最後執行時間"
+msgid "Last Run"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
msgid ""
"Minimum signal quality threshold as percent for conditional uplink (dis-) "
msgid ""
"Provides an overview of all configured uplinks for the travelmate interface "
"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
-"one. The currently used uplink is emphasized in blue."
+"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-"此處顯示 travelmate 介面(%s)所有已配置上行連線的概述。您可以編輯、刪除或重"
-"新排序現有連線,或掃描新上行連線。當前使用的上行連線以藍色突出顯示。"
-
-msgid "QR-Codes"
-msgstr "QR 碼"
-msgid "Radio selection"
-msgstr "無線選擇"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "重新掃描"
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "將 travelmate 限制在專用無線電中,如“radio0”。"
+msgid "Restart"
+msgstr ""
+
+msgid "Restart Travelmate"
+msgstr ""
+
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "連線到上行連線的重試限制。"
msgid "Scan"
msgstr "掃描"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "訊號質量閾值"
msgid "Signal strength"
msgstr "訊號強度"
-msgid "Station ID (SSID/BSSID)"
-msgstr "站點 ID(SSID/BSSID)"
+msgid "Station ID (RADIO/SSID/BSSID)"
+msgstr ""
msgid "Station Interface"
msgstr "站點介面"
-msgid "Station Radio"
-msgstr "站點無線"
-
msgid ""
"The BSSID information '%s' is optional and only required for hidden networks"
msgstr "BSSID 資訊“%s”是可選的,僅對隱藏網路必需"
+msgid "The syslog output, pre-filtered for travelmate related messages only."
+msgstr ""
+
msgid ""
"This form allows you to modify the content of the main firewall "
"configuration file (/etc/config/firewall)."
"configuration file (/etc/config/wireless)."
msgstr "此表單允許您修改主無線配置檔案(/etc/config/wireless)的內容。"
-msgid ""
-"This form shows the syslog output, pre-filtered for travelmate related "
-"messages only."
-msgstr "此表單顯示 syslog 輸出,僅針對 travelmate 相關訊息進行預過濾。"
-
msgid "This step has only to be done once."
msgstr "此步驟只需執行一次。"
msgid "Travelmate"
msgstr "Travelmate"
-msgid "Travelmate Logfile"
-msgstr "Travelmate 日誌檔案"
-
msgid "Travelmate Status (Quality)"
msgstr "Travelmate 狀態(質量)"
msgid "Wireless Stations"
msgstr "無線站點"
-msgid "add it to the wan zone of the firewall.<br />"
-msgstr "將其新增到防火牆的 wan 區域。<br />"
+msgid "add it to the wan zone of the firewall."
+msgstr ""
msgid "hidden"
msgstr "隱藏"
-msgid "n/a"
-msgstr "n/a"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr "使用顯示的 QR 碼,將您的 Android 或 iOS 裝置連線到路由器 WiFi。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "在這裡,您可以找到所有已配置的接入點的 QR 碼。您可以使用下面顯示的 QR 碼,"
+#~ "使 Android 或 iOS 裝置連線到路由器 WiFi。"
+
+#~ msgid "Last rundate"
+#~ msgstr "最後執行時間"
+
+#~ msgid ""
+#~ "Provides an overview of all configured uplinks for the travelmate "
+#~ "interface (%s). You can edit, delete or re-order existing uplinks or scan "
+#~ "for a new one. The currently used uplink is emphasized in blue."
+#~ msgstr ""
+#~ "此處顯示 travelmate 介面(%s)所有已配置上行連線的概述。您可以編輯、刪除或"
+#~ "重新排序現有連線,或掃描新上行連線。當前使用的上行連線以藍色突出顯示。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR 碼"
+
+#~ msgid "Radio selection"
+#~ msgstr "無線選擇"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr "將 travelmate 限制在專用無線電中,如“radio0”。"
+
+#~ msgid "Station ID (SSID/BSSID)"
+#~ msgstr "站點 ID(SSID/BSSID)"
+
+#~ msgid "Station Radio"
+#~ msgstr "站點無線"
+
+#~ msgid ""
+#~ "This form shows the syslog output, pre-filtered for travelmate related "
+#~ "messages only."
+#~ msgstr "此表單顯示 syslog 輸出,僅針對 travelmate 相關訊息進行預過濾。"
+
+#~ msgid "Travelmate Logfile"
+#~ msgstr "Travelmate 日誌檔案"
+
+#~ msgid "add it to the wan zone of the firewall.<br />"
+#~ msgstr "將其新增到防火牆的 wan 區域。<br />"
+
+#~ msgid "n/a"
+#~ msgstr "n/a"
"unbound-control -c /var/lib/unbound/unbound.conf dump_cache")
local lcldesc = luci.i18n.translate(
- "This shows Unbound 'cache_dump'. Usefull to check if unbound is actually caching dns entities.")
+ "This shows Unbound 'cache_dump'. Useful to check if unbound is actually caching dns entities.")
luci.template.render("unbound/show-textbox",
{heading = "", description = lcldesc, content = lcldata})
function ztype.cfgvalue(self, s)
- -- Format a meaninful tile for the Zone Type column
+ -- Format a meaningful tile for the Zone Type column
local itxt = self.map:get(s, "zone_type")
local itls = self.map:get(s, "tls_upstream")
function zones.cfgvalue(self, s)
- -- Format a meaninful sentence for the Zones viewed column
+ -- Format a meaningful sentence for the Zones viewed column
local xtxt, otxt
local itxt = self.map:get(s, "zone_name")
local itype = self.map:get(s, "zone_type")
function servers.cfgvalue(self, s)
- -- Format a meaninful sentence for the Servers (and URL) column
+ -- Format a meaningful sentence for the Servers (and URL) column
local xtxt, otxt, rtxt, found
local itxt = self.map:get(s, "server")
local iurl = self.map:get(s, "url_dir")
--- /dev/null
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "(root)"
+msgstr ""
+
+msgid ", and <var>%s</var> entries"
+msgstr ""
+
+msgid ", and try <var>%s</var>"
+msgstr ""
+
+msgid "AXFR"
+msgstr ""
+
+msgid "Accept queries only from local subnets"
+msgstr ""
+
+msgid "Adblock domain list '"
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Aggressive"
+msgstr ""
+
+msgid "Allow open recursion when record not in zone"
+msgstr ""
+
+msgid "Authoritative (zone file)"
+msgstr ""
+
+msgid "Basic"
+msgstr ""
+
+msgid "Break down query components for limited added privacy"
+msgstr ""
+
+msgid "Break the loop where DNSSEC needs NTP and NTP needs DNS"
+msgstr ""
+
+msgid "Cache Dump"
+msgstr ""
+
+msgid "Choose Unbounds listening port"
+msgstr ""
+
+msgid "Chose the IP versions used upstream and downstream"
+msgstr ""
+
+msgid "Connect to servers using TLS"
+msgstr ""
+
+msgid "DHCP"
+msgstr ""
+
+msgid "DHCP Link"
+msgstr ""
+
+msgid "DHCPv4 to SLAAC"
+msgstr ""
+
+msgid "DNS over TLS"
+msgstr ""
+
+msgid "DNS64 Prefix"
+msgstr ""
+
+msgid "DNSSEC NTP Fix"
+msgstr ""
+
+msgid "Default"
+msgstr ""
+
+msgid "Denied (nxdomain)"
+msgstr ""
+
+msgid "Directed Zone"
+msgstr ""
+
+msgid "Directory only part of URL"
+msgstr ""
+
+msgid "Domain Insecure"
+msgstr ""
+
+msgid "Domain name to verify TLS certificate"
+msgstr ""
+
+msgid "Domain suffix for this router and DHCP clients"
+msgstr ""
+
+msgid "EDNS Size"
+msgstr ""
+
+msgid "Edit '"
+msgstr ""
+
+msgid "Edit 'server:' clause options for 'include:"
+msgstr ""
+
+msgid ""
+"Edit a forward, stub, or zone-file-cache zone for Unbound to use instead of "
+"recursion."
+msgstr ""
+
+msgid "Edit clauses such as 'forward-zone:' for 'include:"
+msgstr ""
+
+msgid "Edit: Extended"
+msgstr ""
+
+msgid "Edit: Server"
+msgstr ""
+
+msgid "Edit: UCI"
+msgstr ""
+
+msgid "Edit: Unbound"
+msgstr ""
+
+msgid "Enable"
+msgstr ""
+
+msgid "Enable DNS64"
+msgstr ""
+
+msgid "Enable DNSSEC"
+msgstr ""
+
+msgid "Enable Unbound"
+msgstr ""
+
+msgid "Enable access for unbound-control"
+msgstr ""
+
+msgid "Enable the DNS64 module"
+msgstr ""
+
+msgid "Enable the DNSSEC validator module"
+msgstr ""
+
+msgid "Enable the initialization scripts for Unbound"
+msgstr ""
+
+msgid "Enable this directed zone"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Extended Statistics"
+msgstr ""
+
+msgid "Extended statistics are printed from unbound-control"
+msgstr ""
+
+msgid "Extra DNS"
+msgstr ""
+
+msgid "Fall Back"
+msgstr ""
+
+msgid "Fallback"
+msgstr ""
+
+msgid "Files"
+msgstr ""
+
+msgid "Filter Entire Subnet"
+msgstr ""
+
+msgid "Filter Localhost Rebind"
+msgstr ""
+
+msgid "Filter Private Address"
+msgstr ""
+
+msgid "Filter Private Rebind"
+msgstr ""
+
+msgid "Forward"
+msgstr ""
+
+msgid "Forward (simple handoff)"
+msgstr ""
+
+msgid "Forward TLS"
+msgstr ""
+
+msgid "Forward to upstream nameservers (ISP)"
+msgstr ""
+
+msgid "Host FQDN, All Addresses"
+msgstr ""
+
+msgid "Host Records"
+msgstr ""
+
+msgid "Host/MX/SRV RR"
+msgstr ""
+
+msgid "Host/MX/SRV/CNAME RR"
+msgstr ""
+
+msgid "Hostname, All Addresses"
+msgstr ""
+
+msgid "Hostname, Primary Address"
+msgstr ""
+
+msgid "How to enter the LAN or local network router in DNS"
+msgstr ""
+
+msgid "How to treat queries of this local domain"
+msgstr ""
+
+msgid "IP4 All and IP6 Local"
+msgstr ""
+
+msgid "IP4 Only"
+msgstr ""
+
+msgid "IP4 and IP6"
+msgstr ""
+
+msgid "IP6 Only*"
+msgstr ""
+
+msgid "IP6 Preferred"
+msgstr ""
+
+msgid "Ignore"
+msgstr ""
+
+msgid "Interface FQDN, All Addresses"
+msgstr ""
+
+msgid "LAN DNS"
+msgstr ""
+
+msgid "Large"
+msgstr ""
+
+msgid "Limit days between RFC5011 copies to reduce flash writes"
+msgstr ""
+
+msgid "Limit extended DNS packet size"
+msgstr ""
+
+msgid "Link to supported programs to load DHCP into DNS"
+msgstr ""
+
+msgid "List domains to bypass checks of DNSSEC"
+msgstr ""
+
+msgid "Listening Port"
+msgstr ""
+
+msgid "Local Data"
+msgstr ""
+
+msgid "Local Domain"
+msgstr ""
+
+msgid "Local Domain Type"
+msgstr ""
+
+msgid "Local Host, Encrypted"
+msgstr ""
+
+msgid "Local Host, No Encryption"
+msgstr ""
+
+msgid "Local Service"
+msgstr ""
+
+msgid "Local Subnet, Encrypted"
+msgstr ""
+
+msgid "Local Subnet, Static Encryption"
+msgstr ""
+
+msgid "Local Zones"
+msgstr ""
+
+msgid "Log"
+msgstr ""
+
+msgid "Manual Conf"
+msgstr ""
+
+msgid "Medium"
+msgstr ""
+
+msgid "Memory Resource"
+msgstr ""
+
+msgid "Networks that may trigger Unbound to reload (avoid wan6)"
+msgstr ""
+
+msgid "No Entry"
+msgstr ""
+
+msgid "No Filter"
+msgstr ""
+
+msgid "No Link"
+msgstr ""
+
+msgid "No Remote Control"
+msgstr ""
+
+msgid ""
+"Note: SSL/TLS library is missing an API. Please review syslog. >> logread ..."
+msgstr ""
+
+msgid ""
+"Organize directed forward, stub, and authoritative zones <a href=\"%s\" "
+"target=\"_blank\">(help)</a>."
+msgstr ""
+
+msgid "Override the WAN side router entry in DNS"
+msgstr ""
+
+msgid "Passive"
+msgstr ""
+
+msgid "Port servers will receive queries on"
+msgstr ""
+
+msgid "Prefix for generated DNS64 addresses"
+msgstr ""
+
+msgid "Prevent excessively short cache periods"
+msgstr ""
+
+msgid "Protect against upstream response of 127.0.0.0/8"
+msgstr ""
+
+msgid "Protect against upstream responses within local subnets"
+msgstr ""
+
+msgid "Query Minimize"
+msgstr ""
+
+msgid "Recurse"
+msgstr ""
+
+msgid "Recursion Protocol"
+msgstr ""
+
+msgid "Recursion Strength"
+msgstr ""
+
+msgid "Recursion activity affects memory growth and CPU load"
+msgstr ""
+
+msgid "Recursive DNS"
+msgstr ""
+
+msgid "Refused"
+msgstr ""
+
+msgid "Resource"
+msgstr ""
+
+msgid "Root DSKEY Age"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Server Port"
+msgstr ""
+
+msgid "Server TLS Port"
+msgstr ""
+
+msgid "Servers"
+msgstr ""
+
+msgid "Servers for this zone; see README.md for optional form"
+msgstr ""
+
+msgid "Show: Adblock"
+msgstr ""
+
+msgid "Show: DHCP"
+msgstr ""
+
+msgid "Show: Unbound"
+msgstr ""
+
+msgid "Skip UCI and use /etc/unbound/unbound.conf"
+msgstr ""
+
+msgid "Small"
+msgstr ""
+
+msgid "Static (local only)"
+msgstr ""
+
+msgid "Statistics"
+msgstr ""
+
+msgid "Status"
+msgstr ""
+
+msgid "Strict Minimize"
+msgstr ""
+
+msgid "Strict version of 'query minimize' but it can break DNS"
+msgstr ""
+
+msgid "Stub (forced recursion)"
+msgstr ""
+
+msgid "TLS Name Index"
+msgstr ""
+
+msgid "TTL Minimum"
+msgstr ""
+
+msgid "This could display more statistics with the unbound-control package."
+msgstr ""
+
+msgid "This shows '"
+msgstr ""
+
+msgid ""
+"This shows Unbound 'cache_dump'. Useful to check if unbound is actually "
+"caching dns entities."
+msgstr ""
+
+msgid ""
+"This shows Unbound 'local-data:' entries from default, .conf, or control."
+msgstr ""
+
+msgid ""
+"This shows Unbound 'local-zone:' entries from default, .conf, or control."
+msgstr ""
+
+msgid "This shows Unbound self reported performance statistics."
+msgstr ""
+
+msgid "This shows syslog filtered for events involving Unbound."
+msgstr ""
+
+msgid "Tiny"
+msgstr ""
+
+msgid "Transparent (local/global)"
+msgstr ""
+
+msgid "Trigger Networks"
+msgstr ""
+
+msgid "Type"
+msgstr ""
+
+msgid "Unbound"
+msgstr ""
+
+msgid ""
+"Unbound <a href=\"%s\" target=\"_blank\">(NLnet Labs)</a> is a validating, "
+"recursive, and caching DNS resolver <a href=\"%s\" target=\"_blank\">(help)</"
+"a>."
+msgstr ""
+
+msgid "Unbound Control App"
+msgstr ""
+
+msgid "Undefined"
+msgstr ""
+
+msgid "Use 'resolv.conf.auto'"
+msgstr ""
+
+msgid "Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)"
+msgstr ""
+
+msgid "Use Upstream"
+msgstr ""
+
+msgid "Use extra DNS entries found in /etc/config/dhcp"
+msgstr ""
+
+msgid "Use menu System/Processes to observe any memory growth"
+msgstr ""
+
+msgid "WAN DNS"
+msgstr ""
+
+msgid "Zone (Domain) names included in this zone combination"
+msgstr ""
+
+msgid "Zone Download URL"
+msgstr ""
+
+msgid "Zone Names"
+msgstr ""
+
+msgid "Zone Type"
+msgstr ""
+
+msgid "Zones"
+msgstr ""
+
+msgid "accept upstream results for"
+msgstr ""
+
+msgid "default"
+msgstr ""
+
+msgid "download from <var>%s</var>"
+msgstr ""
+
+msgid "never"
+msgstr ""
+
+msgid "prefetch zone files for"
+msgstr ""
+
+msgid "select recursion for"
+msgstr ""
+
+msgid "unknown action for"
+msgstr ""
+
+msgid "use <var>%s</var> nameservers"
+msgstr ""
+
+msgid "use nameservers"
+msgstr ""
+
+msgid "with default certificate for <var>%s</var>"
+msgstr ""
"Local IP addresses or subnets with direct internet access (outside of the "
"VPN tunnel)"
msgstr ""
-"Endereço IP Local ou subrede com acesso direto à internet (fora do túnel "
-"VPN)"
+"Endereço IP Local ou subrede com acesso direto à internet (fora do túnel VPN)"
msgid "Local Ports to Bypass"
msgstr "Portas locais para evitar a VPN"
"Remote IP addresses or subnets which will be accessed directly (outside of "
"the VPN tunnel)"
msgstr ""
-"Endereço IP Remoto ou subrede que serão acessados diretamente (fora do "
-"túnel VPN)"
+"Endereço IP Remoto ou subrede que serão acessados diretamente (fora do túnel "
+"VPN)"
msgid "Remote Ports to Bypass"
msgstr "Portas remotas para evitar a VPN"
## Use cases
-You can create user-defined events when to enable or disable WiFi.
+You can create user-defined events when to enable or disable WiFi.
There are various use cases why you would like to do so:
1. Reduce power consumption and therefore reduce CO2 emissions.
Regarding 1: Please note, that you need to unload the wireless driver modules in order to get the most effect of saving power.
In my test scenario only disabling WiFi saves about ~0.4 Watt, unloading the modules removes another ~0.4 Watt.
-Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the ammount of radiation emitted.
+Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the amount of radiation emitted.
-Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working?
+Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working?
Or think of an accesspoint in your kids room when you want the youngsters to sleep after 10 pm instead of facebooking...
## Configuration
-You can create an arbitrary number of schedule events. Please note that there is on sanity check done wheather the start / stop times overlap or make sense.
+You can create an arbitrary number of schedule events. Please note that there is on sanity check done whether the start / stop times overlap or make sense.
If start and stop time are equal, this leads to disabling the WiFi at the given time.
Logging if enabled is done to the file `/var/log/wifi_schedule.log` and can be reviewed through the "View Logfile" tab.
`wifi_schedule.sh cron`
All commands:
-
+
```
wifi_schedule.sh cron|start|stop|forcestop|recheck|getmodules|savemodules|help
if fs.access("/usr/bin/iwinfo") then
return value
else
- return nil, translate("Could not find required programm /usr/bin/iwinfo")
+ return nil, translate("Could not find required program /usr/bin/iwinfo")
end
else
return "1"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr "Impossibile trovare /usr/bin/wifi_schedule.sh o /sbin/wifi"
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "Impossibile trovare il programma /usr/bin/iwinfo"
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr "必須の /usr/bin/wifi_schedule.sh または /sbin/wifi が見つかりませんでした。"
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "必須のプログラム /usr/bin/iwinfo が見つかりませんでした。"
msgid "Cron Jobs"
"Não foi possível localizar os programas necessários '/usr/bin/wifi_schedule."
"sh' ou '/sbin/wifi'."
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "Não foi possível localizar o programa necessário '/usr/bin/iwinfo'"
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr "Не удалось найти файл /usr/bin/wifi_schedule.sh или /sbin/wifi"
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "Не удалось найти требуемую программу /usr/bin/iwinfo"
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr ""
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr ""
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr ""
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr ""
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr "无法找到必需的 /usr/bin/wifi_schedule.sh 或 /sbin/wifi"
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "无法找到必需程序:/usr/bin/iwinfo"
msgid "Cron Jobs"
msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
msgstr "無法找到必需的 /usr/bin/wifi_schedule.sh 或 /sbin/wifi"
-msgid "Could not find required programm /usr/bin/iwinfo"
+msgid "Could not find required program /usr/bin/iwinfo"
msgstr "無法找到必需程式:/usr/bin/iwinfo"
msgid "Cron Jobs"
local last_device = ""
local enc = { }
+ local function wg_clean(value)
+ if value and value == "(none)" then
+ value = ""
+ end
+ return value
+ end
+
local wg_dump = io.popen("wg show all dump")
if wg_dump then
local line
address = value
end
end
- enc[line[1]] = "[Interface]\nPrivateKey = " ..line[2].. "\nAddress = " ..address
+ enc[line[1]] = "[Interface]\nPrivateKey = " ..wg_clean(line[2]).. "\nAddress = " ..address
else
local peer = {
public_key = line[2],
end
end
table.insert(data[line[1]].peers, peer)
- enc[line[1]] = enc[line[1]].. "\n\n[Peer]\nEndpoint = " ..line[4].. "\nPublicKey = " ..line[2].. "\nAllowedIPs = " ..line[5]
+ enc[line[1]] = enc[line[1]].. "\n\n[Peer]\nEndpoint = " ..wg_clean(line[4]).. "\nPublicKey = " ..wg_clean(line[2]).. "\nAllowedIPs = " ..wg_clean(line[5])
end
end
end
<%-
local qrcode
if fs.access("/usr/bin/qrencode") then
- if enc[ikey]:sub(26,31) ~= "(none)" then
+ if enc[ikey]:sub(26, 26) ~= "\n" then
qrcode = luci.sys.exec("/usr/bin/qrencode --inline --8bit --type=SVG --output=- '" ..enc[ikey].. "'")
end
else
msgid "Public Key"
msgstr "公開鍵"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard ステータス"
msgid "Public Key"
msgstr "Chave Pública"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Estado do WireGuard"
msgid "Public Key"
msgstr "Публичный Ключ"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Состояние WireGuard"
msgid "Public Key"
msgstr "Publik nyckel"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Status för WireGuard"
msgid "Public Key"
msgstr ""
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr ""
msgid "Public Key"
msgstr "公钥"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard 状态"
msgid "Public Key"
msgstr "公鑰"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard 狀態"
package="${controller##*/controller/}"; package="${package%.lua}"; package="luci.controller.${package//\//.}"
if ! grep -sqE '\bmodule[[:space:]]*\(?[[:space:]]*("|\047|\[=*\[)'"$package" "$controller"; then
- echo "'$controller' does not containt the expected\n\t'module(\"$package\", ...)' line.\n"
+ echo "'$controller' does not contain the expected\n\t'module(\"$package\", ...)' line.\n"
fi
grep -sqE '\b(Form|SimpleForm)[[:space:]]*\(' "$model" && ! grep -sqE '\bMap[[:space:]]*\(' "$model" && is_form=1 || is_form=0
use warnings;
use Text::Balanced qw(extract_bracketed extract_delimited extract_tagged);
-@ARGV >= 1 || die "Usage: $0 <source direcory>\n";
+@ARGV >= 1 || die "Usage: $0 <source directory>\n";
my %stringtable;
-------------------------------------------------------------------------------
-- LuaDoc configuration file. This file contains the default options for
--- luadoc operation. These options can be overriden by the command line tool
+-- luadoc operation. These options can be overridden by the command line tool
-- @see luadoc.print_help
-- @release $Id: config.lua,v 1.6 2007/04/18 14:28:39 tomas Exp $
-------------------------------------------------------------------------------
config 'defaults' 'interface'
option 'netmask' '255.255.255.255'
- option 'dns' '85.214.20.141 194.150.168.168 2001:4ce8::53 2001:910:800::12'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
config 'dhcp' 'dhcp'
option leasetime '5m'
config 'defaults' 'interface'
option 'netmask' '255.255.255.255'
- option 'dns' '85.214.20.141 194.150.168.168 2001:4ce8::53 2001:910:800::12'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
config 'dhcp' 'dhcp'
option 'leasetime' '5m'
config 'defaults' 'interface'
option 'netmask' '255.255.0.0'
- option 'dns' '85.214.20.141 194.150.168.168'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168'
option 'delegate' '0'
config 'defaults' 'wifi_device'
option 'splash_prefix' '28'
config 'defaults' 'interface'
- option 'dns' '216.87.84.211'
+ option 'dns' '80.67.169.40 216.87.84.211'
/* Global watchdog fd, required by signal handler */
int wdfd = -1;
-/* Handle finished childs */
+/* Handle finished children */
static void sigchld_handler(int sig)
{
pid_t pid;
ioctl(wdfd, WDIOC_SETTIMEOUT, &wdtimeout);
}
- /* Install signal handler to reap childs */
+ /* Install signal handler to reap children */
sa.sa_handler = sigchld_handler;
sa.sa_flags = 0;
sigaction(SIGCHLD, &sa, NULL);
#define WATCH_SHUTDOWN 'V'
#define WATCH_KEEPALIVE '\0'
-/* System load error action and treshold */
+/* System load error action and threshold */
#define LOAD_TRESHOLD 15.00
#define LOAD_ACTION "/sbin/reboot", "/sbin/reboot"
b="${b//_/ }"
string_contains "$a" "_LENGTH" && continue
string_contains "$a" "_ITEM" && {
- # special threatment for lists. use add_list and remove the
+ # special treatment for lists. use add_list and remove the
# item index (_ITEMx).
uci add_list $2.${a//_ITEM[0-9]*/}="$b"
} || {
Adds an entry to the selection list
#### property .widget = "select"
-**"select"** shows a selction list, **"radio"** shows a list of radio buttons inside form
+**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form
#### property .default = nil
The default value
Adds an entry to the list
#### property .widget = "checkbox"
-**"select"** shows a selction list, **"checkbox"** shows a list of checkboxes inside form
+**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form
#### property .delimiter = " "
The string which will be used to delimit the values inside stored option
LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files.
The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is.
-In LuCI every template is an object with an own scope. It can therefore be instanciated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
+In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup.
module "luci.http.mime"
---[[
-MIME mapping table containg extension - mimetype relations.
+MIME mapping table containing extension - mimetype relations.
@class table
]]
@sort 9
@name routes
@param filter <p>Table containing one or more of the possible filter
-critera described below (optional)</p><table>
+criteria described below (optional)</p><table>
<tr><th>Field</th><th>Description</th></tr>
<tr><td>`family`</td><td>
Number describing the address family to return - `4` selects
@sort 10
@name neighbors
@param filter <p>Table containing one or more of the possible filter
-critera described below (optional)</p><table>
+criteria described below (optional)</p><table>
<tr><th>Field</th><th>Description</th></tr>
<tr><td>`family`</td><td>
Number describing the address family to return - `4` selects
@class function
@sort 10
@name cidr.lower
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is lower than the given address,
else `false`.
@class function
@sort 11
@name cidr.higher
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is higher than the given address,
else `false`.
@class function
@sort 12
@name cidr.equal
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is equal to the given address,
else `false`.
@class function
@sort 21
@name cidr.contains
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to test.
@return `true` if this instance fully contains the given address else
`false`.
@sort 22
@name cidr.add
@param amount A numeric value between 0 and 0xFFFFFFFF, a
- `luci.ip.cidr` instance or a string convertable by
+ `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()`.
@param inplace If `true`, modify this instance instead of returning
a new derived CIDR instance.
@return <ul>
- <li>When adding inplace: Return `true` if the addition succeded
+ <li>When adding inplace: Return `true` if the addition succeeded
or `false` when the addition overflowed.</li>
<li>When deriving new CIDR: Return new instance representing the value of
this instance plus the added amount or the highest possible address if
@sort 23
@name cidr.sub
@param amount A numeric value between 0 and 0xFFFFFFFF, a
- `luci.ip.cidr` instance or a string convertable by
+ `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()`.
@param inplace If `true`, modify this instance instead of returning
a new derived CIDR instance.
--- /dev/null
+#
+# Copyright (C) 2018 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Iptables listing parser class
+LUCI_DEPENDS:=+luci-base
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
--- /dev/null
+--[[
+
+Iptables parser and query library
+(c) 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
+(c) 2008-2009 Steven Barth <steven@midlink.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+]]--
+
+local luci = {}
+luci.util = require "luci.util"
+luci.sys = require "luci.sys"
+luci.ip = require "luci.ip"
+
+local pcall = pcall
+local io = require "io"
+local tonumber, ipairs, table = tonumber, ipairs, table
+
+module("luci.sys.iptparser")
+
+IptParser = luci.util.class()
+
+function IptParser.__init__( self, family )
+ self._family = (tonumber(family) == 6) and 6 or 4
+ self._rules = { }
+ self._chains = { }
+ self._tables = { }
+
+ local t = self._tables
+ local s = self:_supported_tables(self._family)
+
+ if s.filter then t[#t+1] = "filter" end
+ if s.nat then t[#t+1] = "nat" end
+ if s.mangle then t[#t+1] = "mangle" end
+ if s.raw then t[#t+1] = "raw" end
+
+ if self._family == 4 then
+ self._nulladdr = "0.0.0.0/0"
+ self._command = "iptables -t %s --line-numbers -nxvL"
+ else
+ self._nulladdr = "::/0"
+ self._command = "ip6tables -t %s --line-numbers -nxvL"
+ end
+
+ self:_parse_rules()
+end
+
+function IptParser._supported_tables( self, family )
+ local tables = { }
+ local ok, lines = pcall(io.lines,
+ (family == 6) and "/proc/net/ip6_tables_names"
+ or "/proc/net/ip_tables_names")
+
+ if ok and lines then
+ local line
+ for line in lines do
+ tables[line] = true
+ end
+ end
+
+ return tables
+end
+
+-- search criteria as only argument. If args is nil or an empty table then all
+-- rules will be returned.
+--
+-- The following keys in the args table are recognized:
+-- <ul>
+-- <li> table - Match rules that are located within the given table
+-- <li> chain - Match rules that are located within the given chain
+-- <li> target - Match rules with the given target
+-- <li> protocol - Match rules that match the given protocol, rules with
+-- protocol "all" are always matched
+-- <li> source - Match rules with the given source, rules with source
+-- "0.0.0.0/0" (::/0) are always matched
+-- <li> destination - Match rules with the given destination, rules with
+-- destination "0.0.0.0/0" (::/0) are always matched
+-- <li> inputif - Match rules with the given input interface, rules
+-- with input interface "*" (=all) are always matched
+-- <li> outputif - Match rules with the given output interface, rules
+-- with output interface "*" (=all) are always matched
+-- <li> flags - Match rules that match the given flags, current
+-- supported values are "-f" (--fragment)
+-- and "!f" (! --fragment)
+-- <li> options - Match rules containing all given options
+-- </ul>
+-- The return value is a list of tables representing the matched rules.
+-- Each rule table contains the following fields:
+-- <ul>
+-- <li> index - The index number of the rule
+-- <li> table - The table where the rule is located, can be one
+-- of "filter", "nat" or "mangle"
+-- <li> chain - The chain where the rule is located, e.g. "INPUT"
+-- or "postrouting_wan"
+-- <li> target - The rule target, e.g. "REJECT" or "DROP"
+-- <li> protocol The matching protocols, e.g. "all" or "tcp"
+-- <li> flags - Special rule options ("--", "-f" or "!f")
+-- <li> inputif - Input interface of the rule, e.g. "eth0.0"
+-- or "*" for all interfaces
+-- <li> outputif - Output interface of the rule,e.g. "eth0.0"
+-- or "*" for all interfaces
+-- <li> source - The source ip range, e.g. "0.0.0.0/0" (::/0)
+-- <li> destination - The destination ip range, e.g. "0.0.0.0/0" (::/0)
+-- <li> options - A list of specific options of the rule,
+-- e.g. { "reject-with", "tcp-reset" }
+-- <li> packets - The number of packets matched by the rule
+-- <li> bytes - The number of total bytes matched by the rule
+-- </ul>
+-- Example:
+-- <pre>
+-- ip = luci.sys.iptparser.IptParser()
+-- result = ip.find( {
+-- target="REJECT",
+-- protocol="tcp",
+-- options={ "reject-with", "tcp-reset" }
+-- } )
+-- </pre>
+-- This will match all rules with target "-j REJECT",
+-- protocol "-p tcp" (or "-p all")
+-- and the option "--reject-with tcp-reset".
+function IptParser.find( self, args )
+
+ local args = args or { }
+ local rv = { }
+
+ args.source = args.source and self:_parse_addr(args.source)
+ args.destination = args.destination and self:_parse_addr(args.destination)
+
+ for i, rule in ipairs(self._rules) do
+ local match = true
+
+ -- match table
+ if not ( not args.table or args.table:lower() == rule.table ) then
+ match = false
+ end
+
+ -- match chain
+ if not ( match == true and (
+ not args.chain or args.chain == rule.chain
+ ) ) then
+ match = false
+ end
+
+ -- match target
+ if not ( match == true and (
+ not args.target or args.target == rule.target
+ ) ) then
+ match = false
+ end
+
+ -- match protocol
+ if not ( match == true and (
+ not args.protocol or rule.protocol == "all" or
+ args.protocol:lower() == rule.protocol
+ ) ) then
+ match = false
+ end
+
+ -- match source
+ if not ( match == true and (
+ not args.source or rule.source == self._nulladdr or
+ self:_parse_addr(rule.source):contains(args.source)
+ ) ) then
+ match = false
+ end
+
+ -- match destination
+ if not ( match == true and (
+ not args.destination or rule.destination == self._nulladdr or
+ self:_parse_addr(rule.destination):contains(args.destination)
+ ) ) then
+ match = false
+ end
+
+ -- match input interface
+ if not ( match == true and (
+ not args.inputif or rule.inputif == "*" or
+ args.inputif == rule.inputif
+ ) ) then
+ match = false
+ end
+
+ -- match output interface
+ if not ( match == true and (
+ not args.outputif or rule.outputif == "*" or
+ args.outputif == rule.outputif
+ ) ) then
+ match = false
+ end
+
+ -- match flags (the "opt" column)
+ if not ( match == true and (
+ not args.flags or rule.flags == args.flags
+ ) ) then
+ match = false
+ end
+
+ -- match specific options
+ if not ( match == true and (
+ not args.options or
+ self:_match_options( rule.options, args.options )
+ ) ) then
+ match = false
+ end
+
+ -- insert match
+ if match == true then
+ rv[#rv+1] = rule
+ end
+ end
+
+ return rv
+end
+
+
+-- through external commands.
+function IptParser.resync( self )
+ self._rules = { }
+ self._chain = nil
+ self:_parse_rules()
+end
+
+
+function IptParser.tables( self )
+ return self._tables
+end
+
+
+function IptParser.chains( self, table )
+ local lookup = { }
+ local chains = { }
+ for _, r in ipairs(self:find({table=table})) do
+ if not lookup[r.chain] then
+ lookup[r.chain] = true
+ chains[#chains+1] = r.chain
+ end
+ end
+ return chains
+end
+
+
+-- and "rules". The "rules" field is a table of rule tables.
+function IptParser.chain( self, table, chain )
+ return self._chains[table:lower()] and self._chains[table:lower()][chain]
+end
+
+
+function IptParser.is_custom_target( self, target )
+ for _, r in ipairs(self._rules) do
+ if r.chain == target then
+ return true
+ end
+ end
+ return false
+end
+
+
+-- [internal] Parse address according to family.
+function IptParser._parse_addr( self, addr )
+ if self._family == 4 then
+ return luci.ip.IPv4(addr)
+ else
+ return luci.ip.IPv6(addr)
+ end
+end
+
+-- [internal] Parse iptables output from all tables.
+function IptParser._parse_rules( self )
+
+ for i, tbl in ipairs(self._tables) do
+
+ self._chains[tbl] = { }
+
+ for i, rule in ipairs(luci.util.execl(self._command % tbl)) do
+
+ if rule:find( "^Chain " ) == 1 then
+
+ local crefs
+ local cname, cpol, cpkt, cbytes = rule:match(
+ "^Chain ([^%s]*) %(policy (%w+) " ..
+ "(%d+) packets, (%d+) bytes%)"
+ )
+
+ if not cname then
+ cname, crefs = rule:match(
+ "^Chain ([^%s]*) %((%d+) references%)"
+ )
+ end
+
+ self._chain = cname
+ self._chains[tbl][cname] = {
+ policy = cpol,
+ packets = tonumber(cpkt or 0),
+ bytes = tonumber(cbytes or 0),
+ references = tonumber(crefs or 0),
+ rules = { }
+ }
+
+ else
+ if rule:find("%d") == 1 then
+
+ local rule_parts = luci.util.split( rule, "%s+", nil, true )
+ local rule_details = { }
+
+ -- cope with rules that have no target assigned
+ if rule:match("^%d+%s+%d+%s+%d+%s%s") then
+ table.insert(rule_parts, 4, nil)
+ end
+
+ -- ip6tables opt column is usually zero-width
+ if self._family == 6 then
+ table.insert(rule_parts, 6, "--")
+ end
+
+ rule_details["table"] = tbl
+ rule_details["chain"] = self._chain
+ rule_details["index"] = tonumber(rule_parts[1])
+ rule_details["packets"] = tonumber(rule_parts[2])
+ rule_details["bytes"] = tonumber(rule_parts[3])
+ rule_details["target"] = rule_parts[4]
+ rule_details["protocol"] = rule_parts[5]
+ rule_details["flags"] = rule_parts[6]
+ rule_details["inputif"] = rule_parts[7]
+ rule_details["outputif"] = rule_parts[8]
+ rule_details["source"] = rule_parts[9]
+ rule_details["destination"] = rule_parts[10]
+ rule_details["options"] = { }
+
+ for i = 11, #rule_parts do
+ if #rule_parts[i] > 0 then
+ rule_details["options"][i-10] = rule_parts[i]
+ end
+ end
+
+ self._rules[#self._rules+1] = rule_details
+
+ self._chains[tbl][self._chain].rules[
+ #self._chains[tbl][self._chain].rules + 1
+ ] = rule_details
+ end
+ end
+ end
+ end
+
+ self._chain = nil
+end
+
+
+-- [internal] Return true if optlist1 contains all elements of optlist 2.
+-- Return false in all other cases.
+function IptParser._match_options( self, o1, o2 )
+
+ -- construct a hashtable of first options list to speed up lookups
+ local oh = { }
+ for i, opt in ipairs( o1 ) do oh[opt] = true end
+
+ -- iterate over second options list
+ -- each string in o2 must be also present in o1
+ -- if o2 contains a string which is not found in o1 then return false
+ for i, opt in ipairs( o2 ) do
+ if not oh[opt] then
+ return false
+ end
+ end
+
+ return true
+end
--- /dev/null
+---[[
+LuCI iptables parser and query library
+
+@cstyle instance
+]]
+module "luci.sys.iptparser"
+
+---[[
+Create a new iptables parser object.
+
+@class function
+@name IptParser
+@param family Number specifying the address family. 4 for IPv4, 6 for IPv6
+@return IptParser instance
+]]
+
+---[[
+Find all firewall rules that match the given criteria. Expects a table with
+
+search criteria as only argument. If args is nil or an empty table then all
+rules will be returned.
+]]
+
+---[[
+Rebuild the internal lookup table, for example when rules have changed
+
+through external commands.
+@class function
+@name IptParser.resync
+@return nothing
+]]
+
+---[[
+Find the names of all tables.
+
+@class function
+@name IptParser.tables
+@return Table of table names.
+]]
+
+---[[
+Find the names of all chains within the given table name.
+
+@class function
+@name IptParser.chains
+@param table String containing the table name
+@return Table of chain names in the order they occur.
+]]
+
+---[[
+Return the given firewall chain within the given table name.
+
+@class function
+@name IptParser.chain
+@param table String containing the table name
+@param chain String containing the chain name
+@return Table containing the fields "policy", "packets", "bytes"
+-- and "rules". The "rules" field is a table of rule tables.
+]]
+
+---[[
+Test whether the given target points to a custom chain.
+
+@class function
+@name IptParser.is_custom_target
+@param target String containing the target action
+@return Boolean indicating whether target is a custom chain.
+]]
+
-- <li>Added support for x509 certificates in DER format.</li>
-- <li>Added support for splice() in UnifiedIO.copyz().</li>
-- <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li>
--- <li>Changed TLS behaviour to explicitely separate servers and clients.</li>
+-- <li>Changed TLS behaviour to explicitly separate servers and clients.</li>
-- <li>Fixed usage of signed datatype breaking Base64 decoding.</li>
-- <li>Fixed namespace clashes for nixio.fs.</li>
-- <li>Fixed splice() support for some exotic C libraries.</li>
-- table <strong>nixio.const_sock</strong> for socket error codes. This might
-- be important if you are dealing with Windows applications, on POSIX however
-- const_sock is just an alias for const.</li>
--- <li>With some exceptions - which are explicitely stated in the function
+-- <li>With some exceptions - which are explicitly stated in the function
-- documentation - all blocking functions are signal-protected and will not fail
-- with EINTR.</li>
-- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization.
-- <li>aliases = Table of alias names</li>
-- </ul>
---- Get all or a specifc proto entry.
+--- Get all or a specific proto entry.
-- @class function
-- @name nixio.getproto
-- @param proto protocol number or name to lookup (optional)
}
/*
- * Helper for mpi substraction
+ * Helper for mpi subtraction
*/
static void mpi_sub_hlp( int n, t_int *s, t_int *d )
{
}
/*
- * Unsigned substraction: X = |A| - |B| (HAC 14.9)
+ * Unsigned subtraction: X = |A| - |B| (HAC 14.9)
*/
int mpi_sub_abs( mpi *X, mpi *A, mpi *B )
{
}
/*
- * Signed substraction: X = A - B
+ * Signed subtraction: X = A - B
*/
int mpi_sub_mpi( mpi *X, mpi *A, mpi *B )
{
}
/*
- * Signed substraction: X = A - b
+ * Signed subtraction: X = A - b
*/
int mpi_sub_int( mpi *X, mpi *A, int b )
{
* MA 02110-1301 USA
*/
/*
- * The ITU-T X.509 standard defines a certificat format for PKI.
+ * The ITU-T X.509 standard defines a certificate format for PKI.
*
* http://www.ietf.org/rfc/rfc2459.txt
* http://www.ietf.org/rfc/rfc3279.txt
}
/*
- * write the asn.1 lenght form into p
+ * write the asn.1 length form into p
*/
static int asn1_add_len(unsigned int size, x509_node *node)
{
R_len = len;
}
- /* set tag poiner to begin */
+ /* set tag pointer to begin */
tag_sp = tag;
/* is at end? */
}
/*
- * Copy raw data from orginal ca to node
+ * Copy raw data from original ca to node
*/
static int x509write_copy_from_raw(x509_node *node, x509_buf *raw)
{
int mpi_add_abs( mpi *X, mpi *A, mpi *B );
/**
- * \brief Unsigned substraction: X = |A| - |B|
+ * \brief Unsigned subtraction: X = |A| - |B|
*
* \return 0 if successful,
* POLARSSL_ERR_MPI_NEGATIVE_VALUE if B is greater than A
int mpi_add_mpi( mpi *X, mpi *A, mpi *B );
/**
- * \brief Signed substraction: X = A - B
+ * \brief Signed subtraction: X = A - B
*
* \return 0 if successful,
* 1 if memory allocation failed
int mpi_add_int( mpi *X, mpi *A, int b );
/**
- * \brief Signed substraction: X = A - b
+ * \brief Signed subtraction: X = A - b
*
* \return 0 if successful,
* 1 if memory allocation failed
* the string parse.
*
* \param chain points to the raw certificate data
- * \param names a string that can hold (separete with ";"):
+ * \param names a string that can hold (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
* \brief Add x509 issuer field
*
* \param chain points to the raw certificate data
-* \param issuer a string holding (separete with ";"):
+* \param issuer a string holding (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
* \brief Add x509 subject field
*
* \param chain points to the raw certificate data
- * \param subject a string holding (separete with ";"):
+ * \param subject a string holding (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
if (node && node.parentNode && !cbi_d_check(entry.deps)) {
node.parentNode.removeChild(node);
state = true;
- } else if (parent && (!node || !node.parentNode) && cbi_d_check(entry.deps)) {
+ }
+ else if (parent && (!node || !node.parentNode) && cbi_d_check(entry.deps)) {
var next = undefined;
for (next = parent.firstChild; next; next = next.nextSibling) {
- if (next.getAttribute && parseInt(next.getAttribute('data-index'), 10) > entry.index) {
+ if (next.getAttribute && parseInt(next.getAttribute('data-index'), 10) > entry.index)
break;
- }
}
- if (!next) {
+ if (!next)
parent.appendChild(entry.node);
- } else {
+ else
parent.insertBefore(entry.node, next);
- }
state = true;
}
cbi_tag_last(parent);
}
- if (state) {
+ if (state)
cbi_d_update();
- }
}
function cbi_init() {
var index = parseInt(node.getAttribute('data-index'), 10);
var depends = JSON.parse(node.getAttribute('data-depends'));
if (!isNaN(index) && depends.length > 0) {
- for (var alt = 0; alt < depends.length; alt++) {
+ for (var alt = 0; alt < depends.length; alt++)
cbi_d_add(node, depends[alt], index);
- }
}
}
for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
var events = node.getAttribute('data-update').split(' ');
- for (var j = 0, event; (event = events[j]) !== undefined; j++) {
+ for (var j = 0, event; (event = events[j]) !== undefined; j++)
cbi_bind(node, event, cbi_d_update);
- }
}
nodes = document.querySelectorAll('[data-choices]');
var sel = document.createElement("select");
sel.id = selid;
sel.index = obj.index;
- sel.className = obj.className.replace(/cbi-input-text/, 'cbi-input-select');
+ sel.classList.remove('cbi-input-text');
+ sel.classList.add('cbi-input-select');
- if (obj.nextSibling) {
+ if (obj.nextSibling)
obj.parentNode.insertBefore(sel, obj.nextSibling);
- } else {
+ else
obj.parentNode.appendChild(sel);
- }
var dt = obj.getAttribute('cbi_datatype');
var op = obj.getAttribute('cbi_optional');
optdef.value = "";
optdef.appendChild(document.createTextNode(typeof(def) === 'string' ? def : cbi_strings.label.choose));
sel.appendChild(optdef);
- } else {
+ }
+ else {
var opt = document.createElement("option");
opt.value = obj.value;
opt.selected = "selected";
var opt = document.createElement("option");
opt.value = i;
- if (obj.value == i) {
+ if (obj.value == i)
opt.selected = "selected";
- }
opt.appendChild(document.createTextNode(values[i]));
sel.appendChild(opt);
sel.blur();
sel.parentNode.removeChild(sel);
obj.focus();
- } else {
+ }
+ else {
obj.value = sel.options[sel.selectedIndex].value;
}
{
values = [ ];
- while (parent.firstChild)
- {
+ while (parent.firstChild) {
var n = parent.firstChild;
var i = +n.index;
- if (i != del)
- {
- if (n.nodeName.toLowerCase() == 'input')
+ if (i != del) {
+ if (matchesElem(n, 'input'))
values.push(n.value || '');
- else if (n.nodeName.toLowerCase() == 'select')
+ else if (matchesElem(n, 'select'))
values[values.length-1] = n.options[n.selectedIndex].value;
}
parent.removeChild(n);
}
- if (add >= 0)
- {
+ if (add >= 0) {
focus = add+1;
values.splice(focus, 0, '');
}
- else if (values.length == 0)
- {
+ else if (values.length == 0) {
focus = 0;
values.push('');
}
- for (var i = 0; i < values.length; i++)
- {
+ for (var i = 0; i < values.length; i++) {
var t = document.createElement('input');
t.id = prefix + '.' + (i+1);
t.name = prefix;
t.className = 'cbi-input-text';
if (i == 0 && holder)
- {
t.placeholder = holder;
- }
var b = E('div', {
class: 'cbi-button cbi-button-' + ((i+1) < values.length ? 'remove' : 'add')
parent.appendChild(t);
parent.appendChild(b);
+
if (datatype == 'file')
- {
cbi_browser_init(t.id, null, parent.getAttribute('data-browser-path'));
- }
parent.appendChild(document.createElement('br'));
if (datatype)
- {
cbi_validate_field(t.id, ((i+1) == values.length) || optional, datatype);
- }
- if (choices)
- {
+ if (choices) {
cbi_combobox_init(t.id, choices, '', cbi_strings.label.custom);
b.index = i;
if (i == focus || -i == focus)
b.focus();
}
- else
- {
+ else {
cbi_bind(t, 'keydown', cbi_dynlist_keydown);
cbi_bind(t, 'keypress', cbi_dynlist_keypress);
- if (i == focus)
- {
+ if (i == focus) {
t.focus();
}
- else if (-i == focus)
- {
+ else if (-i == focus) {
t.focus();
/* force cursor to end */
if (se.nodeType == 3)
se = se.parentNode;
- switch (ev.keyCode)
- {
+ switch (ev.keyCode) {
/* backspace, delete */
case 8:
case 46:
- if (se.value.length == 0)
- {
+ if (se.value.length == 0) {
if (ev.preventDefault)
ev.preventDefault();
if (next && next.nextSibling.name == prefix)
next = next.nextSibling;
- switch (ev.keyCode)
- {
+ switch (ev.keyCode) {
/* backspace, delete */
case 8:
case 46:
- var del = (se.nodeName.toLowerCase() == 'select')
+ var del = (matchesElem(se, 'select'))
? true : (se.value.length == 0);
- if (del)
- {
+ if (del) {
if (ev.preventDefault)
ev.preventDefault();
var se = ev.target ? ev.target : ev.srcElement;
var input = se.previousSibling;
- while (input && input.name != prefix) {
+ while (input && input.name != prefix)
input = input.previousSibling;
- }
if (se.classList.contains('cbi-button-remove')) {
input.value = '';
var t = document.getElementById('tab.' + section + '.' + tab);
var c = document.getElementById('container.' + section + '.' + tab);
- if( t && c ) {
+ if (t && c) {
cbi_t[section] = (cbi_t[section] || [ ]);
cbi_t[section][tab] = { 'tab': t, 'container': c, 'cid': c.id };
}
}
function cbi_t_switch(section, tab) {
- if( cbi_t[section] && cbi_t[section][tab] ) {
+ if (cbi_t[section] && cbi_t[section][tab]) {
var o = cbi_t[section][tab];
var h = document.getElementById('tab.' + section);
- for( var tid in cbi_t[section] ) {
+
+ for (var tid in cbi_t[section]) {
var o2 = cbi_t[section][tid];
- if( o.tab.id != o2.tab.id ) {
- o2.tab.className = o2.tab.className.replace(/(^| )cbi-tab( |$)/, " cbi-tab-disabled ");
+
+ if (o.tab.id != o2.tab.id) {
+ o2.tab.classList.remove('cbi-tab');
+ o2.tab.classList.add('cbi-tab-disabled');
o2.container.style.display = 'none';
}
else {
- if(h) h.value = tab;
- o2.tab.className = o2.tab.className.replace(/(^| )cbi-tab-disabled( |$)/, " cbi-tab ");
+ if(h)
+ h.value = tab;
+
+ o2.tab.classList.remove('cbi-tab-disabled');
+ o2.tab.classList.add('cbi-tab');
o2.container.style.display = 'block';
}
}
}
- return false
+
+ return false;
}
function cbi_t_update() {
var hl_tabs = [ ];
var updated = false;
- for( var sid in cbi_t )
- for( var tid in cbi_t[sid] )
- {
+ for (var sid in cbi_t)
+ for (var tid in cbi_t[sid]) {
var t = cbi_t[sid][tid].tab;
var c = cbi_t[sid][tid].container;
}
else if (t.style.display == 'none') {
t.style.display = '';
- t.className += ' cbi-tab-highlighted';
+ t.classList.add('cbi-tab-highlighted');
hl_tabs.push(t);
}
if (hl_tabs.length > 0)
window.setTimeout(function() {
- for( var i = 0; i < hl_tabs.length; i++ )
- hl_tabs[i].className = hl_tabs[i].className.replace(/ cbi-tab-highlighted/g, '');
+ for (var i = 0; i < hl_tabs.length; i++)
+ hl_tabs[i].classList.remove('cbi-tab-highlighted');
}, 750);
return updated;
function cbi_validate_form(form, errmsg)
{
/* if triggered by a section removal or addition, don't validate */
- if( form.cbi_state == 'add-section' || form.cbi_state == 'del-section' )
+ if (form.cbi_state == 'add-section' || form.cbi_state == 'del-section')
return true;
- if( form.cbi_validators )
- {
- for( var i = 0; i < form.cbi_validators.length; i++ )
- {
+ if (form.cbi_validators) {
+ for (var i = 0; i < form.cbi_validators.length; i++) {
var validator = form.cbi_validators[i];
- if( !validator() && errmsg )
- {
+
+ if (!validator() && errmsg) {
alert(errmsg);
return false;
}
code += ',';
- for (var i = 0; i < code.length; i++)
- {
- if (esc)
- {
+ for (var i = 0; i < code.length; i++) {
+ if (esc) {
esc = false;
continue;
}
case 40:
case 44:
- if (depth <= 0)
- {
- if (pos < i)
- {
+ if (depth <= 0) {
+ if (pos < i) {
var label = code.substring(pos, i);
label = label.replace(/\\(.)/g, '$1');
label = label.replace(/^[ \t]+/g, '');
label = label.replace(/[ \t]+$/g, '');
- if (label && !isNaN(label))
- {
+ if (label && !isNaN(label)) {
stack.push(parseFloat(label));
}
- else if (label.match(/^(['"]).*\1$/))
- {
+ else if (label.match(/^(['"]).*\1$/)) {
stack.push(label.replace(/^(['"])(.*)\1$/, '$2'));
}
- else if (typeof cbi_validators[label] == 'function')
- {
+ else if (typeof cbi_validators[label] == 'function') {
stack.push(cbi_validators[label]);
stack.push(null);
}
- else
- {
+ else {
throw "Syntax error, unhandled token '"+label+"'";
}
}
+
pos = i+1;
}
+
depth += (code.charCodeAt(i) == 40);
break;
case 41:
- if (--depth <= 0)
- {
+ if (--depth <= 0) {
if (typeof stack[stack.length-2] != 'function')
throw "Syntax error, argument list follows non-function";
pos = i+1;
}
+
break;
}
}
var field = (typeof cbid == "string") ? document.getElementById(cbid) : cbid;
var vstack; try { vstack = cbi_validate_compile(type); } catch(e) { };
- if (field && vstack && typeof vstack[0] == "function")
- {
+ if (field && vstack && typeof vstack[0] == "function") {
var validator = function()
{
// is not detached
- if( field.form )
- {
- field.className = field.className.replace(/ cbi-input-invalid/g, '');
+ if (field.form) {
+ field.classList.remove('cbi-input-invalid');
// validate value
var value = (field.options && field.options.selectedIndex > -1)
? field.options[field.options.selectedIndex].value : field.value;
- if (!(((value.length == 0) && optional) || vstack[0].apply(value, vstack[1])))
- {
+ if (!(((value.length == 0) && optional) || vstack[0].apply(value, vstack[1]))) {
// invalid
- field.className += ' cbi-input-invalid';
+ field.classList.add('cbi-input-invalid');
return false;
}
}
return true;
};
- if( ! field.form.cbi_validators )
+ if (!field.form.cbi_validators)
field.form.cbi_validators = [ ];
field.form.cbi_validators.push(validator);
cbi_bind(field, "blur", validator);
cbi_bind(field, "keyup", validator);
- if (field.nodeName == 'SELECT')
- {
+ if (matchesElem(field, 'select')) {
cbi_bind(field, "change", validator);
cbi_bind(field, "click", validator);
}
input.value = ids.join(' ');
window.scrollTo(0, tr.offsetTop);
- window.setTimeout(function() { tr.classList.add('flash'); }, 1);
+ void tr.offsetWidth;
+ tr.classList.add('flash');
return false;
}
{
var last;
- for (var i = 0; i < container.childNodes.length; i++)
- {
+ for (var i = 0; i < container.childNodes.length; i++) {
var c = container.childNodes[i];
- if (c.nodeType == 1 && c.nodeName.toLowerCase() == 'div')
- {
- c.className = c.className.replace(/ cbi-value-last$/, '');
+ if (matchesElem(c, 'div')) {
+ c.classList.remove('cbi-value-last');
last = c;
}
}
if (last)
- {
- last.className += ' cbi-value-last';
- }
+ last.classList.add('cbi-value-last');
}
function cbi_submit(elem, name, value, action)
if (typeof(s) !== 'string' && !(s instanceof String))
return '';
- for( var i = 0; i < r.length; i += 2 )
+ for (var i = 0; i < r.length; i += 2)
s = s.replace(r[i], r[i+1]);
+
return s;
}
var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
- while (a = re.exec(str))
- {
+ while (a = re.exec(str)) {
var m = a[1];
var leftpart = a[2], pPad = a[3], pJustify = a[4], pMinLength = a[5];
var pPrecision = a[6], pType = a[7];
numMatches++;
- if (pType == '%')
- {
+ if (pType == '%') {
subst = '%';
}
- else
- {
- if (numSubstitutions < arguments.length)
- {
+ else {
+ if (numSubstitutions < arguments.length) {
var param = arguments[numSubstitutions++];
var pad = '';
var subst = param;
- switch(pType)
- {
+ switch(pType) {
case 'b':
subst = (+param || 0).toString(2);
break;
String.format = function()
{
var a = [ ];
+
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
+
return ''.format.apply(arguments[0], a);
}
String.nobr = function()
{
var a = [ ];
+
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
+
return ''.nobr.apply(arguments[0], a);
}
return elem || null;
}
+function matchesElem(node, selector)
+{
+ return ((node.matches && node.matches(selector)) ||
+ (node.msMatchesSelector && node.msMatchesSelector(selector)));
+}
+
function findParent(node, selector)
{
while (node)
- if (node.msMatchesSelector && node.msMatchesSelector(selector))
- return node;
- else if (node.matches && node.matches(selector))
+ if (matchesElem(node, selector))
return node;
else
node = node.parentNode;
div.appendChild(E('input', {
type: 'hidden',
name: s.hasAttribute('name') ? s.getAttribute('name') : (sb.getAttribute('name') || ''),
- value: s.hasAttribute('value') ? s.getAttribute('value') : s.innerText
+ value: s.hasAttribute('data-value') ? s.getAttribute('data-value') : s.innerText
}));
});
return;
document.querySelectorAll('.focus').forEach(function(e) {
- if (e.nodeName.toLowerCase() !== 'input') {
+ if (!matchesElem(e, 'input')) {
e.classList.remove('focus');
e.blur();
}
var new_item = null;
ul.childNodes.forEach(function(li) {
- if (li.getAttribute && li.getAttribute('value') === item)
+ if (li.getAttribute && li.getAttribute('data-value') === item)
new_item = li;
});
if (tpl)
markup = (tpl.textContent || tpl.innerHTML || tpl.firstChild.data).replace(/^<!--|-->$/, '').trim();
else
- markup = '<li value="{{value}}">{{value}}</li>';
+ markup = '<li data-value="{{value}}">{{value}}</li>';
new_item = E(markup.replace(/{{value}}/g, item));
ndisplay--;
- if (this.optional && !ul.querySelector('li[value=""]')) {
+ if (this.optional && !ul.querySelector('li[data-value=""]')) {
var placeholder = E('li', { placeholder: '' }, this.placeholder);
ul.firstChild ? ul.insertBefore(placeholder, ul.firstChild) : ul.appendChild(placeholder);
}
sb.addEventListener('click', function(ev) {
if (!this.hasAttribute('open')) {
- if (ev.target.nodeName.toLowerCase() !== 'input')
+ if (!matchesElem(ev.target, 'input'))
sbox.openDropdown(this);
}
else {
});
sb.addEventListener('keydown', function(ev) {
- if (ev.target.nodeName.toLowerCase() === 'input')
+ if (matchesElem(ev.target, 'input'))
return;
if (!this.hasAttribute('open')) {
create.addEventListener('keydown', function(ev) {
switch (ev.keyCode) {
case 13:
- sbox.createItems(sb, this.value);
ev.preventDefault();
+
+ if (this.classList.contains('cbi-input-invalid'))
+ return;
+
+ sbox.createItems(sb, this.value);
this.value = '';
this.blur();
break;
]]
---[[
-Return a sorted table of visible childs within a given node
+Return a sorted table of visible children within a given node
@class function
@name node_childs
-- Content-Type. Stores all extracted data associated with its parameter name
-- in the params table within the given message object. Multiple parameter
-- values are stored as tables, ordinary ones as strings.
--- If an optional file callback function is given then it is feeded with the
+-- If an optional file callback function is given then it is fed with the
-- file contents chunk by chunk and only the extracted file name is stored
-- within the params table. The callback function will be called subsequently
-- with three arguments:
-- o Table containing decoded (name, file) and raw (headers) mime header data
-- o String value containing a chunk of the file data
--- o Boolean which indicates wheather the current chunk is the last one (eof)
+-- o Boolean which indicates whether the current chunk is the last one (eof)
function mimedecode_message_body(src, msg, file_cb)
local parser, header, field
local len, maxlen = 0, tonumber(msg.env.CONTENT_LENGTH or nil)
in the params table within the given message object. Multiple parameter
values are stored as tables, ordinary ones as strings.
-If an optional file callback function is given then it is feeded with the
+If an optional file callback function is given then it is fed with the
file contents chunk by chunk and only the extracted file name is stored
within the params table. The callback function will be called subsequently
with three arguments:
o Table containing decoded (name, file) and raw (headers) mime header data
o String value containing a chunk of the file data
- o Boolean which indicates wheather the current chunk is the last one (eof)
+ o Boolean which indicates whether the current chunk is the last one (eof)
@class function
@name mimedecode_message_body
-- cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
-- save the changes to the staging area via Cursor.save and finally
-- Cursor.commit the data to the actual config files.
--- LuCI then needs to Cursor.apply the changes so deamons etc. are
+-- LuCI then needs to Cursor.apply the changes so daemons etc. are
-- reloaded.
module "luci.model.uci"
cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
save the changes to the staging area via Cursor.save and finally
Cursor.commit the data to the actual config files.
-LuCI then needs to Cursor.apply the changes so deamons etc. are
+LuCI then needs to Cursor.apply the changes so daemons etc. are
reloaded.
@cstyle instance
]]
---[[
Create a sub-state of this cursor.
-The sub-state is tied to the parent curser, means it the parent unloads or
+The sub-state is tied to the parent cursor, means it the parent unloads or
loads configs, the sub state will do so as well.
@class function
]]
---[[
-Set the directory for uncommited changes.
+Set the directory for uncommitted changes.
@class function
@name Cursor.set_savedir
@class function
@name exec
@param command Command to call
-@return String containg the return the output of the command
+@return String containing the return the output of the command
]]
---[[
@class function
@name getenv
@param var Name of the environment variable to retrieve (optional)
-@return String containg the value of the specified variable
+@return String containing the value of the specified variable
@return Table containing all variables if no variable name is given
]]
]]
---[[
-Retrieve user informations for given uid.
+Retrieve user information for given uid.
@class function
@name getuser
@name user.checkpasswd
@param username String containing the Unix user name
@param pass String containing the password to compare
-@return Boolean indicating wheather the passwords are equal
+@return Boolean indicating whether the passwords are equal
]]
---[[
+++ /dev/null
---[[
-
-Iptables parser and query library
-(c) 2008-2009 Jo-Philipp Wich <jow@openwrt.org>
-(c) 2008-2009 Steven Barth <steven@midlink.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
-]]--
-
-local luci = {}
-luci.util = require "luci.util"
-luci.sys = require "luci.sys"
-luci.ip = require "luci.ip"
-
-local pcall = pcall
-local io = require "io"
-local tonumber, ipairs, table = tonumber, ipairs, table
-
-module("luci.sys.iptparser")
-
-IptParser = luci.util.class()
-
-function IptParser.__init__( self, family )
- self._family = (tonumber(family) == 6) and 6 or 4
- self._rules = { }
- self._chains = { }
- self._tables = { }
-
- local t = self._tables
- local s = self:_supported_tables(self._family)
-
- if s.filter then t[#t+1] = "filter" end
- if s.nat then t[#t+1] = "nat" end
- if s.mangle then t[#t+1] = "mangle" end
- if s.raw then t[#t+1] = "raw" end
-
- if self._family == 4 then
- self._nulladdr = "0.0.0.0/0"
- self._command = "iptables -t %s --line-numbers -nxvL"
- else
- self._nulladdr = "::/0"
- self._command = "ip6tables -t %s --line-numbers -nxvL"
- end
-
- self:_parse_rules()
-end
-
-function IptParser._supported_tables( self, family )
- local tables = { }
- local ok, lines = pcall(io.lines,
- (family == 6) and "/proc/net/ip6_tables_names"
- or "/proc/net/ip_tables_names")
-
- if ok and lines then
- local line
- for line in lines do
- tables[line] = true
- end
- end
-
- return tables
-end
-
--- search criteria as only argument. If args is nil or an empty table then all
--- rules will be returned.
---
--- The following keys in the args table are recognized:
--- <ul>
--- <li> table - Match rules that are located within the given table
--- <li> chain - Match rules that are located within the given chain
--- <li> target - Match rules with the given target
--- <li> protocol - Match rules that match the given protocol, rules with
--- protocol "all" are always matched
--- <li> source - Match rules with the given source, rules with source
--- "0.0.0.0/0" (::/0) are always matched
--- <li> destination - Match rules with the given destination, rules with
--- destination "0.0.0.0/0" (::/0) are always matched
--- <li> inputif - Match rules with the given input interface, rules
--- with input interface "*" (=all) are always matched
--- <li> outputif - Match rules with the given output interface, rules
--- with output interface "*" (=all) are always matched
--- <li> flags - Match rules that match the given flags, current
--- supported values are "-f" (--fragment)
--- and "!f" (! --fragment)
--- <li> options - Match rules containing all given options
--- </ul>
--- The return value is a list of tables representing the matched rules.
--- Each rule table contains the following fields:
--- <ul>
--- <li> index - The index number of the rule
--- <li> table - The table where the rule is located, can be one
--- of "filter", "nat" or "mangle"
--- <li> chain - The chain where the rule is located, e.g. "INPUT"
--- or "postrouting_wan"
--- <li> target - The rule target, e.g. "REJECT" or "DROP"
--- <li> protocol The matching protocols, e.g. "all" or "tcp"
--- <li> flags - Special rule options ("--", "-f" or "!f")
--- <li> inputif - Input interface of the rule, e.g. "eth0.0"
--- or "*" for all interfaces
--- <li> outputif - Output interface of the rule,e.g. "eth0.0"
--- or "*" for all interfaces
--- <li> source - The source ip range, e.g. "0.0.0.0/0" (::/0)
--- <li> destination - The destination ip range, e.g. "0.0.0.0/0" (::/0)
--- <li> options - A list of specific options of the rule,
--- e.g. { "reject-with", "tcp-reset" }
--- <li> packets - The number of packets matched by the rule
--- <li> bytes - The number of total bytes matched by the rule
--- </ul>
--- Example:
--- <pre>
--- ip = luci.sys.iptparser.IptParser()
--- result = ip.find( {
--- target="REJECT",
--- protocol="tcp",
--- options={ "reject-with", "tcp-reset" }
--- } )
--- </pre>
--- This will match all rules with target "-j REJECT",
--- protocol "-p tcp" (or "-p all")
--- and the option "--reject-with tcp-reset".
-function IptParser.find( self, args )
-
- local args = args or { }
- local rv = { }
-
- args.source = args.source and self:_parse_addr(args.source)
- args.destination = args.destination and self:_parse_addr(args.destination)
-
- for i, rule in ipairs(self._rules) do
- local match = true
-
- -- match table
- if not ( not args.table or args.table:lower() == rule.table ) then
- match = false
- end
-
- -- match chain
- if not ( match == true and (
- not args.chain or args.chain == rule.chain
- ) ) then
- match = false
- end
-
- -- match target
- if not ( match == true and (
- not args.target or args.target == rule.target
- ) ) then
- match = false
- end
-
- -- match protocol
- if not ( match == true and (
- not args.protocol or rule.protocol == "all" or
- args.protocol:lower() == rule.protocol
- ) ) then
- match = false
- end
-
- -- match source
- if not ( match == true and (
- not args.source or rule.source == self._nulladdr or
- self:_parse_addr(rule.source):contains(args.source)
- ) ) then
- match = false
- end
-
- -- match destination
- if not ( match == true and (
- not args.destination or rule.destination == self._nulladdr or
- self:_parse_addr(rule.destination):contains(args.destination)
- ) ) then
- match = false
- end
-
- -- match input interface
- if not ( match == true and (
- not args.inputif or rule.inputif == "*" or
- args.inputif == rule.inputif
- ) ) then
- match = false
- end
-
- -- match output interface
- if not ( match == true and (
- not args.outputif or rule.outputif == "*" or
- args.outputif == rule.outputif
- ) ) then
- match = false
- end
-
- -- match flags (the "opt" column)
- if not ( match == true and (
- not args.flags or rule.flags == args.flags
- ) ) then
- match = false
- end
-
- -- match specific options
- if not ( match == true and (
- not args.options or
- self:_match_options( rule.options, args.options )
- ) ) then
- match = false
- end
-
- -- insert match
- if match == true then
- rv[#rv+1] = rule
- end
- end
-
- return rv
-end
-
-
--- through external commands.
-function IptParser.resync( self )
- self._rules = { }
- self._chain = nil
- self:_parse_rules()
-end
-
-
-function IptParser.tables( self )
- return self._tables
-end
-
-
-function IptParser.chains( self, table )
- local lookup = { }
- local chains = { }
- for _, r in ipairs(self:find({table=table})) do
- if not lookup[r.chain] then
- lookup[r.chain] = true
- chains[#chains+1] = r.chain
- end
- end
- return chains
-end
-
-
--- and "rules". The "rules" field is a table of rule tables.
-function IptParser.chain( self, table, chain )
- return self._chains[table:lower()] and self._chains[table:lower()][chain]
-end
-
-
-function IptParser.is_custom_target( self, target )
- for _, r in ipairs(self._rules) do
- if r.chain == target then
- return true
- end
- end
- return false
-end
-
-
--- [internal] Parse address according to family.
-function IptParser._parse_addr( self, addr )
- if self._family == 4 then
- return luci.ip.IPv4(addr)
- else
- return luci.ip.IPv6(addr)
- end
-end
-
--- [internal] Parse iptables output from all tables.
-function IptParser._parse_rules( self )
-
- for i, tbl in ipairs(self._tables) do
-
- self._chains[tbl] = { }
-
- for i, rule in ipairs(luci.util.execl(self._command % tbl)) do
-
- if rule:find( "^Chain " ) == 1 then
-
- local crefs
- local cname, cpol, cpkt, cbytes = rule:match(
- "^Chain ([^%s]*) %(policy (%w+) " ..
- "(%d+) packets, (%d+) bytes%)"
- )
-
- if not cname then
- cname, crefs = rule:match(
- "^Chain ([^%s]*) %((%d+) references%)"
- )
- end
-
- self._chain = cname
- self._chains[tbl][cname] = {
- policy = cpol,
- packets = tonumber(cpkt or 0),
- bytes = tonumber(cbytes or 0),
- references = tonumber(crefs or 0),
- rules = { }
- }
-
- else
- if rule:find("%d") == 1 then
-
- local rule_parts = luci.util.split( rule, "%s+", nil, true )
- local rule_details = { }
-
- -- cope with rules that have no target assigned
- if rule:match("^%d+%s+%d+%s+%d+%s%s") then
- table.insert(rule_parts, 4, nil)
- end
-
- -- ip6tables opt column is usually zero-width
- if self._family == 6 then
- table.insert(rule_parts, 6, "--")
- end
-
- rule_details["table"] = tbl
- rule_details["chain"] = self._chain
- rule_details["index"] = tonumber(rule_parts[1])
- rule_details["packets"] = tonumber(rule_parts[2])
- rule_details["bytes"] = tonumber(rule_parts[3])
- rule_details["target"] = rule_parts[4]
- rule_details["protocol"] = rule_parts[5]
- rule_details["flags"] = rule_parts[6]
- rule_details["inputif"] = rule_parts[7]
- rule_details["outputif"] = rule_parts[8]
- rule_details["source"] = rule_parts[9]
- rule_details["destination"] = rule_parts[10]
- rule_details["options"] = { }
-
- for i = 11, #rule_parts do
- if #rule_parts[i] > 0 then
- rule_details["options"][i-10] = rule_parts[i]
- end
- end
-
- self._rules[#self._rules+1] = rule_details
-
- self._chains[tbl][self._chain].rules[
- #self._chains[tbl][self._chain].rules + 1
- ] = rule_details
- end
- end
- end
- end
-
- self._chain = nil
-end
-
-
--- [internal] Return true if optlist1 contains all elements of optlist 2.
--- Return false in all other cases.
-function IptParser._match_options( self, o1, o2 )
-
- -- construct a hashtable of first options list to speed up lookups
- local oh = { }
- for i, opt in ipairs( o1 ) do oh[opt] = true end
-
- -- iterate over second options list
- -- each string in o2 must be also present in o1
- -- if o2 contains a string which is not found in o1 then return false
- for i, opt in ipairs( o2 ) do
- if not oh[opt] then
- return false
- end
- end
-
- return true
-end
+++ /dev/null
----[[
-LuCI iptables parser and query library
-
-@cstyle instance
-]]
-module "luci.sys.iptparser"
-
----[[
-Create a new iptables parser object.
-
-@class function
-@name IptParser
-@param family Number specifying the address family. 4 for IPv4, 6 for IPv6
-@return IptParser instance
-]]
-
----[[
-Find all firewall rules that match the given criteria. Expects a table with
-
-search criteria as only argument. If args is nil or an empty table then all
-rules will be returned.
-]]
-
----[[
-Rebuild the internal lookup table, for example when rules have changed
-
-through external commands.
-@class function
-@name IptParser.resync
-@return nothing
-]]
-
----[[
-Find the names of all tables.
-
-@class function
-@name IptParser.tables
-@return Table of table names.
-]]
-
----[[
-Find the names of all chains within the given table name.
-
-@class function
-@name IptParser.chains
-@param table String containing the table name
-@return Table of chain names in the order they occur.
-]]
-
----[[
-Return the given firewall chain within the given table name.
-
-@class function
-@name IptParser.chain
-@param table String containing the table name
-@param chain String containing the chain name
-@return Table containing the fields "policy", "packets", "bytes"
--- and "rules". The "rules" field is a table of rule tables.
-]]
-
----[[
-Test whether the given target points to a custom chain.
-
-@class function
-@name IptParser.is_custom_target
-@param target String containing the target action
-@return Boolean indicating whether target is a custom chain.
-]]
-
{ 'Asia/Oral', '<+05>-5' },
{ 'Asia/Phnom Penh', '<+07>-7' },
{ 'Asia/Pontianak', 'WIB-7' },
- { 'Asia/Pyongyang', 'KST-8:30' },
+ { 'Asia/Pyongyang', 'KST-9' },
{ 'Asia/Qatar', '<+03>-3' },
{ 'Asia/Qyzylorda', '<+06>-6' },
{ 'Asia/Riyadh', '<+03>-3' },
{ 'Europe/Busingen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Chisinau', 'EET-2EEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Copenhagen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
- { 'Europe/Dublin', 'GMT0IST,M3.5.0/1,M10.5.0' },
+ { 'Europe/Dublin', 'IST-1GMT0,M10.5.0,M3.5.0/1' },
{ 'Europe/Gibraltar', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Guernsey', 'GMT0BST,M3.5.0/1,M10.5.0' },
{ 'Europe/Helsinki', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
idt = 10800, -- IDT
pkt = 18000, -- PKT
wita = 28800, -- WITA
- kst = 30600, -- KST
+ kst = 32400, -- KST
jst = 32400, -- JST
acst = 34200, -- ACST
acdt = 37800, -- ACDT
local stat, err = util.copcall(self.template)
if not stat then
error("Failed to execute template '" .. self.name .. "'.\n" ..
- "A runtime error occured: " .. tostring(err or "(nil)"))
+ "A runtime error occurred: " .. tostring(err or "(nil)"))
end
end
-- one token per invocation, the tokens are separated by whitespace. If the
-- input value is a table, it is transformed into a string first. A nil value
--- will result in a valid interator which aborts with the first invocation.
+-- will result in a valid iterator which aborts with the first invocation.
function imatch(v)
if type(v) == "table" then
local k = nil
The iterator will return one token per invocation, the tokens are separated by
whitespace. If the input value is a table, it is transformed into a string first.
-A nil value will result in a valid interator which aborts with the first invocation.
+A nil value will result in a valid iterator which aborts with the first invocation.
@class function
@name imatch
]]
---[[
-Strips unnescessary lua bytecode from given string.
+Strips unnecessary lua bytecode from given string.
Information like line numbers and debugging numbers will be discarded.
Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
<li<%=
attr("data-index", i) ..
attr("data-depends", self:deplist2json(section, self.deplist[i])) ..
- attr("value", key) ..
+ attr("data-value", key) ..
ifattr(selected[key], "selected", "selected")
%>>
<%=pcdata(self.vallist[i])%>
if empty then
%>
<label class="zonebadge zonebadge-empty">
- <strong><%=zone:forward():upper()%></strong>
+ <strong><%=def:forward():upper()%></strong>
</label>
<% end %>
</div>
ifattr(self.rmempty or self.optional, "optional", "optional")
%>>
<script type="item-template"><!--
- <li value="{{value}}">
+ <li data-value="{{value}}">
<span class="zonebadge" style="background:repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px)">
<strong>{{value}}:</strong><em>(<%:create%>)</em>
</span>
--></script>
<ul>
<% if self.allowlocal then %>
- <li value=""<%=ifattr(checked[""], "selected", "selected")%>>
+ <li data-value=""<%=ifattr(checked[""], "selected", "selected")%>>
<span style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
<strong><%:Device%></strong>
<% if self.allowany and self.allowlocal then -%>
</span>
</li>
<% elseif self.widget ~= "checkbox" and (self.rmempty or self.optional) then %>
- <li value=""<%=ifattr(checked[""], "selected", "selected")%>>
+ <li data-value=""<%=ifattr(checked[""], "selected", "selected")%>>
<span class="zonebadge">
<em><%:unspecified%></em>
</span>
</li>
<% end %>
<% if self.allowany then %>
- <li value="*"<%=ifattr(checked["*"], "selected", "selected")%>>
+ <li data-value="*"<%=ifattr(checked["*"], "selected", "selected")%>>
<span style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
<strong><%:Any zone%></strong>
<% if self.allowany and self.allowlocal then %>(<%:forward%>)<% end %>
if zone:name() ~= self.exclude then
selected = selected or (value == zone:name())
%>
- <li<%=attr("value", zone:name()) .. ifattr(checked[zone:name()], "selected", "selected")%>>
+ <li<%=attr("data-value", zone:name()) .. ifattr(checked[zone:name()], "selected", "selected")%>>
<span style="background-color:<%=zone:get_color()%>" class="zonebadge">
<strong><%=zone:name()%>:</strong>
<%-
<% end end %>
<% if self.widget ~= "checkbox" and not self.nocreate then %>
- <li value="-">
+ <li data-value="-">
<span class="zonebadge">
<em><%:create%>:</em>
<input type="password" style="display:none" />
- <input class="create-item-input" type="text" />
+ <input class="create-item-input" type="text" data-type="and(uciname,maxlength(11))" data-optional="true" />
</span>
</li>
<% end %>
ifattr(self.widget == "checkbox", "optional", "optional")
%>>
<script type="item-template"><!--
- <li value="{{value}}">
+ <li data-value="{{value}}">
<img title="<%:Custom Interface%>: "{{value}}"" src="<%=resource%>/icons/ethernet_disabled.png" />
<span class="hide-open">{{value}}</span>
<span class="hide-close"><%:Custom Interface%>: "{{value}}"</span>
iface:name() ~= self.exclude
then %>
<li<%=
- attr("value", iface:name()) ..
+ attr("data-value", iface:name()) ..
ifattr(checked[iface:name()], "selected", "selected")
%>>
<img<%=attr("title", iface:get_i18n())%> src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
</li>
<% end end %>
<% if not self.nocreate then %>
- <li value="">
+ <li data-value="">
<img title="<%:Custom Interface%>" src="<%=resource%>/icons/ethernet_disabled.png" />
<span><%:Custom Interface%>:</span>
<input type="password" style="display:none" />
ifattr(self.widget == "checkbox", "optional", "optional")
%>>
<script type="item-template"><!--
- <li value="{{value}}">
+ <li data-value="{{value}}">
<span class="ifacebadge" style="background:repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px)">
{{value}}: <em>(<%:create%>)</em>
</span>
--></script>
<ul>
<% if self.widget ~= "checkbox" then %>
- <li value=""<%= ifattr(not value, "selected", "selected") %>>
+ <li data-value=""<%= ifattr(not value, "selected", "selected") %>>
<em><%:unspecified%></em>
</li>
<% end %>
(net:name() ~= self.exclude) and
(not self.novirtual or not net:is_virtual())
then %>
- <li<%= attr("value", net:name()) .. ifattr(checked[net:name()], "selected", "selected") %>>
+ <li<%= attr("data-value", net:name()) .. ifattr(checked[net:name()], "selected", "selected") %>>
<span class="ifacebadge"><%=net:name()%>:
<%
local empty = true
<% end end %>
<% if not self.nocreate then %>
- <li value="-"<%= ifattr(not value and self.widget ~= "checkbox", "selected", "selected") %>>
+ <li data-value="-"<%= ifattr(not value and self.widget ~= "checkbox", "selected", "selected") %>>
<em>
<%- if self.widget == "checkbox" then -%>
<%:create:%>
msgid "Command"
msgstr "Ordre"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuració comuna"
msgstr ""
"No mostris l'<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Nom de màquina"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No hi ha cadenes en aquesta taula"
-
msgid "No files found"
msgstr "Cap fitxer trobat"
msgid "No password set!"
msgstr "No hi ha cap contrasenya establerta!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "No hi ha regles en aquesta cadena"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Si us plau entra el teu nom d'usuari i contrasenya."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
"Les rutes especifiquen per quina interfície i passarel·la es pot arribar a "
"un cert ordinador o xarxa."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Atura aquesta interfície"
msgid "« Back"
msgstr "« Enrere"
+#~ msgid "No chains in this table"
+#~ msgstr "No hi ha cadenes en aquesta taula"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Es mantindran els fitxers de configuració."
msgid "Command"
msgstr "Příkaz"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Společná nastavení"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Skrývat <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Žádné řetězce v této tabulce"
-
msgid "No files found"
msgstr "Nebyly nalezeny žádné soubory"
msgid "No password set!"
msgstr "Žádné heslo!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Žádná pravidla v tomto řetězci"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Prosím vložte vaše uživatelské jméno a heslo."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Politika"
msgstr ""
"Trasy určují, přes jaké rozhraní a bránu může být konkrétního hosta dosaženo."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Spustit kontrolu souborového systému před připojením zařízení"
msgid "Show current backup file list"
msgstr "Ukázat aktuální seznam záložních souborů"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Shodit toho rozhraní"
msgid "« Back"
msgstr "« Zpět"
+#~ msgid "No chains in this table"
+#~ msgstr "Žádné řetězce v této tabulce"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurační soubory budou zachovány."
msgid "Command"
msgstr "Befehl"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Allgemeine Konfiguration"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "ESSID verstecken"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr "Kein NAT-T"
-msgid "No chains in this table"
-msgstr "Keine Ketten in dieser Tabelle"
-
msgid "No files found"
msgstr "Keine Dateien gefunden"
msgid "No password set!"
msgstr "Kein Passwort gesetzt!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Keine Regeln in dieser Kette"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Bitte Benutzernamen und Passwort eingeben."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Standardregel"
"Netzwerkrouten geben an, über welche Schnittstellen bestimmte Rechner oder "
"Netzwerke erreicht werden können"
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Vor dem Einhängen Dateisystemprüfung starten "
msgid "Show current backup file list"
msgstr "Zeige aktuelle Liste der gesicherten Dateien"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Diese Schnittstelle herunterfahren"
msgid "« Back"
msgstr "« Zurück"
+#~ msgid "No chains in this table"
+#~ msgstr "Keine Ketten in dieser Tabelle"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurationsdateien sichern"
msgid "Command"
msgstr "Εντολή"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Κοινή Παραμετροποίηση"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Κρυφό <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Δεν υπάρχουν αλυσίδες σε αυτόν τον πίνακα"
-
msgid "No files found"
msgstr "Δε βρέθηκαν αρχεία"
msgid "No password set!"
msgstr "Δεν έχει οριστεί κωδικός πρόσβασης!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Δεν υπάρχει κανόνας σε αυτή την αλυσίδα"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Παρακαλώ εισάγετε όνομα χρήστη και κωδικό πρόσβασης."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Πολιτική"
"Οι διαδρομές ορίζουν τη διεπαφή και πύλη από την οποία κάποιος υπολογιστής ή "
"δίκτυο μπορεί να είναι προσβάσιμο/ς."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Εκτέλεση ελέγχου του συστήματος αρχείων πριν προσαρτηθεί η συσκευή"
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Απενεργοποίηση αυτής της διεπαφής"
msgid "« Back"
msgstr "« Πίσω"
+#~ msgid "No chains in this table"
+#~ msgstr "Δεν υπάρχουν αλυσίδες σε αυτόν τον πίνακα"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Τα αρχεία παραμετροποίησης θα διατηρηθούν."
msgid "Command"
msgstr "Command"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Common Configuration"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No chains in this table"
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
-msgstr "No rules in this chain"
+msgid "No rules in this chain."
+msgstr "No rules in this chain."
msgid "No scan results available yet..."
msgstr ""
msgid "Please enter your username and password."
msgstr "Please enter your username and password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Policy"
"Routes specify over which interface and gateway a certain host or network "
"can be reached."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "« Back"
msgstr "« Back"
+#~ msgid "No chains in this table"
+#~ msgstr "No chains in this table"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Configuration files will be kept."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuración común"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Ocultar <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No hay cadenas en esta tabla"
-
msgid "No files found"
msgstr "No se han encontrado ficheros"
msgid "No password set!"
msgstr "¡Sin contraseña!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "No hay reglas en esta cadena"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Por favor, introduzca su nombre de usuario y contraseña."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
"Las rutas especifican sobre qué interfaz y pasarela se puede llegar a una "
"cierta máquina o red."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Comprobar el sistema de ficheros antes de montar el dispositivo"
msgid "Show current backup file list"
msgstr "Mostrar lista de ficheros a salvar"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Apagar esta interfaz"
msgid "« Back"
msgstr "« Volver"
+#~ msgid "No chains in this table"
+#~ msgstr "No hay cadenas en esta tabla"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Se mantendrán los ficheros de configuración."
msgid "Command"
msgstr "Commande"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuration commune"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Cacher le ESSID"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Aucune chaîne dans cette table"
-
msgid "No files found"
msgstr "Aucun fichier trouvé"
msgid "No password set!"
msgstr "Pas de mot de passe positionné !"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Aucune règle dans cette chaîne"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Saisissez votre nom d'utilisateur et mot de passe."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Politique"
"Avec les routes statiques vous pouvez spécifier à travers quelle interface "
"ou passerelle un réseau peut être contacté."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Faire un vérification du système de fichiers avant de monter le périphérique"
msgid "Show current backup file list"
msgstr "Afficher la liste des fichiers de la sauvegarde actuelle"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Arrêter cet interface"
msgid "« Back"
msgstr "« Retour"
+#~ msgid "No chains in this table"
+#~ msgstr "Aucune chaîne dans cette table"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Les fichiers de configuration seront préservés."
msgid "Command"
msgstr "פקודה"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "הגדרות נפוצות"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr "לא הוגדרה סיסמה!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "אנא הזן את שם המשתמש והסיסמה שלך:"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "Command"
msgstr "Parancs"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Álatános beállítás"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> elrejtése"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Ez a tábla nem tartalmaz láncokat."
-
msgid "No files found"
msgstr "Nem találhatók fájlok"
msgid "No password set!"
msgstr "Nincs jelszó!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Ez a lánc nem tartalmaz szabályokat"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Adja meg a felhasználónevét és a jelszavát."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Szabály"
"Az útvonalak határozzák meg, hogy bizonyos gépek illetve hálózatok melyik "
"interfészen keresztül érhetők el."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Fájlrendszer ellenőrzés futtatása az eszköz csatolása előtt"
msgid "Show current backup file list"
msgstr "Mentendő fájlok aktuális listájának megjelenítése"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Interfész leállítása"
msgid "« Back"
msgstr "« Vissza"
+#~ msgid "No chains in this table"
+#~ msgstr "Ez a tábla nem tartalmaz láncokat."
+
#~ msgid "Configuration files will be kept."
#~ msgstr "A konfigurációs fájlok megmaradnak."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configurazioni Comuni"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Nascondi <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr "Nessun file trovato"
msgid "No password set!"
msgstr "Nessuna password immessa!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Nessuna regola in questa catena"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Per favore inserisci il tuo username e la password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"Le route specificano attraverso quale interfaccia e gateway un certo host o "
"rete può essere raggiunto."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Esegui un controllo del filesystem prima di montare il dispositivo"
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2018-09-20 05:12+0900\n"
+"PO-Revision-Date: 2018-10-20 00:48+0900\n"
"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Click \"Generate archive\" to download a tar archive of the current "
"configuration files."
msgstr ""
-"\"ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97 ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81®ä½\9cæ\88\90\"をクリックすると、現在の設定ファイルをtar形"
+"\"ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97 ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82\92ç\94\9fæ\88\90\" をクリックすると、現在の設定ファイルをtar形"
"式のアーカイブファイルとしてダウンロードします。"
msgid ""
msgid "Command"
msgstr "コマンド"
+msgid "Comment"
+msgstr "コメント"
+
msgid "Common Configuration"
msgstr "一般設定"
msgstr "DNSフォワーディング"
msgid "DNS-Label / FQDN"
-msgstr ""
+msgstr "DNS-ラベル / FQDN"
msgid "DNSSEC"
msgstr "DNSSEC"
msgstr "暗号化を無効にする"
msgid "Disable Inactivity Polling"
-msgstr ""
+msgstr "非アクティブ状態ポーリングを無効化"
msgid "Disable this network"
-msgstr "このネットワークを無効化"
+msgstr "このネットワークを無効にします"
msgid "Disabled"
msgstr "無効"
"ページをリロードします。"
msgid "Edit this interface"
-msgstr "インターフェースを編集"
+msgstr "インターフェースを編集します"
msgid "Edit this network"
msgstr "ネットワークを編集"
msgstr "マウント設定を有効にする"
msgid "Enable this network"
-msgstr "このネットワークを有効化"
+msgstr "このネットワークを有効にします"
msgid "Enable this swap"
msgstr "スワップ設定を有効にする"
msgid "Enable/Disable"
-msgstr "有効/無効"
+msgstr "有効 / 無効"
msgid "Enabled"
msgstr "有効"
msgstr ""
msgid "Generate archive"
-msgstr "ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97 ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81®ä½\9c成"
+msgstr "ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97 ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82\92ç\94\9f成"
msgid "Generic 802.11%s Wireless Controller"
msgstr "802.11%s 無線LANコントローラ"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>の隠匿"
+msgid "Hide empty chains"
+msgstr "空のチェインを非表示"
+
msgid "Host"
msgstr "ホスト"
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
-"æ\8c\87å®\9aã\81\97ã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81®ã\81¿ã\82¢ã\82¯ã\82»ã\82¹ã\82\92æ\9c\89å\8a¹ã\81«ã\81\97ã\81¾ã\81\99ã\80\82è¨å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\81¯ã\81\99ã\81¹ã\81¦"
-"ã\81®ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c対象ã\81§ã\81\99"
+"æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81®ã\81¿å¾\85ã\81¡å\8f\97ã\81\91ã\82\92è¡\8cã\81\84ã\81¾ã\81\99ã\80\82è¨å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\81¯ã\81\99ã\81¹ã\81¦ã\81®"
+"ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c対象ã\81§ã\81\99ã\80\82"
msgid "Listening port for inbound DNS queries"
msgstr "DNSクエリを受信するポート"
msgstr ""
msgid "Maximum allowed Listen Interval"
-msgstr ""
+msgstr "許容される最大 Listen 間隔"
msgid "Maximum allowed number of active DHCP leases"
msgstr "DHCPリースの許可される最大数"
msgid "No NAT-T"
msgstr "NAT-Tを使用しない"
-msgid "No chains in this table"
-msgstr "チェイン内にルールがありません"
-
msgid "No files found"
msgstr "ファイルが見つかりませんでした"
msgid "No password set!"
msgstr "パスワードが設定されていません!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "チェイン内にルールがありません"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "ユーザー名とパスワードを入力してください。"
+msgid "Please update package lists first"
+msgstr "最初にパッケージ リストを更新してください"
+
msgid "Policy"
msgstr "ポリシー"
msgstr "NTPサーバー機能を有効にする"
msgid "Provide new network"
-msgstr "æ\96°ã\81\97ã\81\84ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92è¨å®\9aã\81\99ã\82\8b"
+msgstr "æ\96°ã\81\97ã\81\84ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92è¨å®\9aã\81\97ã\81¾ã\81\99"
msgid "Pseudo Ad-Hoc (ahdemo)"
msgstr "擬似アドホック (ahdemo)"
msgstr "WireGuard インターフェースのIPアドレスです。(推奨)"
msgid "Reconnect this interface"
-msgstr "ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\86\8dæ\8e¥ç¶\9a"
+msgstr "ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92å\86\8dæ\8e¥ç¶\9aã\81\97ã\81¾ã\81\99"
msgid "References"
msgstr "参照カウンタ"
msgstr "リセット"
msgid "Reset Counters"
-msgstr "ã\82«ã\82¦ã\83³ã\82¿ã\81®リセット"
+msgstr "ã\82«ã\82¦ã\83³ã\82¿ã\82\92リセット"
msgid "Reset to defaults"
msgstr "標準設定にリセット"
msgstr "再起動"
msgid "Restart Firewall"
-msgstr "ã\83\95ã\82¡ã\82¤ã\82¢ã\82¦ã\82©ã\83¼ã\83«ã\81®再起動"
+msgstr "ã\83\95ã\82¡ã\82¤ã\82¢ã\82¦ã\82©ã\83¼ã\83«ã\82\92再起動"
msgid "Restart radio interface"
-msgstr "ç\84¡ç·\9aã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\86\8dèµ·å\8b\95"
+msgstr "ç\84¡ç·\9aã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92å\86\8dèµ·å\8b\95ã\81\97ã\81¾ã\81\99"
msgid "Restore"
msgstr "復元"
"特定のホスト又はネットワークに、どのインターフェース及びゲートウェイを通して"
"通信を行うか、経路情報を設定します。"
+msgid "Rule"
+msgstr "ルール"
+
msgid "Run a filesystem check before mounting the device"
msgstr "デバイスのマウントを行う前にファイルシステムチェックを行う"
msgid "Show current backup file list"
msgstr "現在のバックアップファイルのリストを表示する"
+msgid "Show empty chains"
+msgstr "空のチェインを表示"
+
msgid "Shutdown this interface"
-msgstr "インターフェースを終了"
+msgstr "インターフェースを終了します"
msgid "Signal"
msgstr "信号強度"
msgstr "デバイスが接続するディレクトリを設定します"
msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "<em>Dropbear</em>の受信ポートを設定してください"
+msgstr "<em>Dropbear</em> の待ち受けポートを設定してください。"
msgid ""
"Specifies the maximum amount of failed ARP requests until hosts are presumed "
"台のみで、かつ静的なインターフェース設定にする必要があります。"
msgid "Station inactivity limit"
-msgstr ""
+msgstr "非アクティブなステーションの制限"
msgid "Status"
msgstr "ステータス"
msgstr "ログの抑制"
msgid "Suppress logging of the routine operation of these protocols"
-msgstr "これらのプロトコルのルーチン的操作についてのログを抑制します。"
+msgstr "ã\81\93ã\82\8cã\82\89ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81®ã\80\81ã\83«ã\83¼ã\83\81ã\83³ç\9a\84æ\93\8dä½\9cã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\83ã\82°ã\82\92æ\8a\91å\88¶ã\81\97ã\81¾ã\81\99ã\80\82"
msgid "Swap"
msgstr "スワップ"
msgstr "時刻同期機能はまだ設定されていません。"
msgid "Time interval for rekeying GTK"
-msgstr ""
+msgstr "Group Temporal Key (GTK) 再生成間隔"
msgid "Timezone"
msgstr "タイムゾーン"
msgstr "上へ"
msgid "Update lists"
-msgstr "ã\83ªã\82¹ã\83\88ã\81®更新"
+msgstr "ã\83ªã\82¹ã\83\88ã\82\92更新"
msgid ""
"Upload a sysupgrade-compatible image here to replace the running firmware. "
"scripts like \"network\", your device might become inaccessible!</strong>"
msgstr ""
"ルーターが起動する際のサービスの有効化/無効化を行うことができます。また、変更"
-"は再起動後に適用されます。<br /><strong>警告: \"network\"のような重要なサービ"
-"ã\82¹ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨, ルーターにアクセスできなくなりますので、注意してください。"
+"は再起動後に適用されます。<br /><strong>警告: \"network\" のような重要なサー"
+"ã\83\93ã\82¹ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ルーターにアクセスできなくなりますので、注意してください。"
"</strong>"
msgid ""
msgstr "routed"
msgid "sec"
-msgstr ""
+msgstr "秒"
msgid "server mode"
msgstr "サーバー モード"
msgid "Command"
msgstr "명령어"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "공통 설정"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> 숨기기"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "호스트"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "이 table 에는 정의된 chain 이 없음"
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr "암호 설정을 해주세요!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "사용자이름과 암호를 입력해 주세요."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"Route 경로는 특정 호스트 혹은 네트워크가 사용해야 할 인터페이스와 gateway 정"
"보를 나타냅니다."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr "현재 백업 파일 목록 보기"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "이 인터페이스를 정지합니다"
msgid "« Back"
msgstr ""
+#~ msgid "No chains in this table"
+#~ msgstr "이 table 에는 정의된 chain 이 없음"
+
#~ msgid "Activate this network"
#~ msgstr "이 네트워를 활성화합니다"
msgid "Command"
msgstr "Perintah"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Menyembunyikan ESSID"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Tiada rantai dalam jadual ini"
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Tidak ada peraturan dalam rantai ini"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Sila masukkan username dan kata laluan anda."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Dasar"
"Laluan menentukan di mana interface dan gateway host atau rangkaian tertentu "
"yang boleh dicapai."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "« Back"
msgstr "« Kembali"
+#~ msgid "No chains in this table"
+#~ msgstr "Tiada rantai dalam jadual ini"
+
#~ msgid "help"
#~ msgstr "Membantu"
msgid "Command"
msgstr "Kommando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Vanlige Innstillinger"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Skjul <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Ingen lenker i denne tabellen"
-
msgid "No files found"
msgstr "Ingen filer funnet"
msgid "No password set!"
msgstr "Ruteren er ikke passordbeskyttet!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Ingen regler i denne tabellen"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Skriv inn ditt brukernavn og passord."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Policy"
"Ruter, angir hvilket nettverksgrensesnitt og hvilken gateway som brukes for "
"å nå et gitt nettverk eller vert."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Kjør filsystem sjekk før montering av enheten"
msgid "Show current backup file list"
msgstr "Vis gjeldende liste med sikkerhetskopifiler"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Slå av dette grensesnittet"
msgid "« Back"
msgstr "« Tilbake"
+#~ msgid "No chains in this table"
+#~ msgstr "Ingen lenker i denne tabellen"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurasjonsfiler vil bli bevart."
msgid "Command"
msgstr "Polecenie"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Konfiguracja podstawowa"
"Ukryj <abbr title=\"Extended Service Set Identifier (Nazwę sieci)\">ESSID</"
"abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Brak łańcuchów w tej tablicy"
-
msgid "No files found"
msgstr "Nie znaleziono plików"
msgid "No password set!"
msgstr "Nie ustawiono hasła!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Brak zasad w tym łańcuchu"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Proszę wprowadź swój login i hasło."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Zasada"
"Ścieżki routingu pokazują routerowi przez który interfejs oraz którą bramę "
"może skomunikować się z daną siecią lub komputerem."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Sprawdź czy system plików nie zawiera błędów przed zamontowaniem urządzenia"
msgid "Show current backup file list"
msgstr "Pokaż aktualną listę plików do backupu"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Wyłącz ten interfejs"
msgid "« Back"
msgstr "« Wróć"
+#~ msgid "No chains in this table"
+#~ msgstr "Brak łańcuchów w tej tablicy"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Pliki konfiguracyjne zostaną zachowane."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuração Comum"
"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
"\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Equipamento"
msgid "No NAT-T"
msgstr "Sem NAT-T"
-msgid "No chains in this table"
-msgstr "Nenhuma cadeira nesta tabela"
-
msgid "No files found"
msgstr "Nenhum arquivo encontrado"
msgid "No password set!"
msgstr "Nenhuma senha definida!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Entre com o seu usuário e senha."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
"As rotas especificam através de qual interface e roteador um certo destino "
"podem ser alcançado."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
msgid "Show current backup file list"
msgstr "Mostra a lista atual de arquivos para a cópia de segurança"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Desligar esta interface"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "No chains in this table"
+#~ msgstr "Nenhuma cadeira nesta tabela"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Os arquivos de configuração serão mantidos."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuração comum"
"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
"\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Tabela sem chains"
-
msgid "No files found"
msgstr "Não foram encontrados ficheiros"
msgid "No password set!"
msgstr "Sem password definida!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Insira o seu username e password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
"As rotas especificam através de que interfaces ou gateways podem ser "
"alcançados determinadas redes ou hosts."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Correr uma verificação do sistema de ficheiros antes de montar um dispositivo"
msgid "Show current backup file list"
msgstr "Mostrar lista ficheiros para backup"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Desligar esta interface"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "No chains in this table"
+#~ msgstr "Tabela sem chains"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Os ficheiros de configuração serão mantidos."
msgid "Command"
msgstr "Comanda"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configurarea obisnuita"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Ascunde <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr "Nici un fisier gasit"
msgid "No password set!"
msgstr "Nici o parola setata !"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Introdu utilizatorul si parola."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Opreste aceasta interfata"
msgid "Command"
msgstr "Команда"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Общие настройки"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Скрыть <abbr title=\"Расширенный идентификатор сети\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Хост"
msgid "No NAT-T"
msgstr "Без NAT-T"
-msgid "No chains in this table"
-msgstr "Нет цепочек в этой таблице"
-
msgid "No files found"
msgstr "Файлы не найдены"
msgid "No password set!"
msgstr "Пароль не установлен!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Нет правил в данной цепочке"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Введите логин и пароль."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Политика"
"Маршрутизация служит для определения через, какой интерфейс и шлюз можно "
"достичь определенного хоста или сети."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Проверять файловую систему перед монтированием раздела."
msgid "Show current backup file list"
msgstr "Показать текущий список файлов резервной копии"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Выключить этот интерфейс"
msgid "« Back"
msgstr "« Назад"
+#~ msgid "No chains in this table"
+#~ msgstr "Нет цепочек в этой таблице"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Config файлы будут сохранены."
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "Command"
msgstr "Kommando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Vanlig konfiguration"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Göm <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Värd"
msgid "No NAT-T"
msgstr "Ingen NAT-T"
-msgid "No chains in this table"
-msgstr "Inga kedjor i den här tabellen"
-
msgid "No files found"
msgstr "Inga filer hittades"
msgid "No password set!"
msgstr "Inget lösenord inställt!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Inga regler i den här kedjan"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Vänligen ange ditt användarnamn och lösenord."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Kör en filsystemskontroll innan enheten monteras"
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Stäng ner det här gränssnittet"
msgid "« Back"
msgstr "« Bakåt"
+#~ msgid "No chains in this table"
+#~ msgstr "Inga kedjor i den här tabellen"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurationsfiler kommer att behållas."
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Cihazı bağlamadan önce bir dosya sistemi kontrolü yapın"
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"PO-Revision-Date: 2018-09-20 02:55+0300\n"
+"PO-Revision-Date: 2018-10-14 18:10+0300\n"
"Last-Translator: Yurii <yuripet@gmail.com>\n"
"Language-Team: none\n"
"Language: uk\n"
msgstr "Будь-яка зона"
msgid "Apply anyway"
-msgstr "Ð\97аÑ\81Ñ\82оÑ\81Ñ\83ваннÑ\8f не познаÑ\87ено"
+msgstr "Ð\92Ñ\81е одно заÑ\81Ñ\82оÑ\81Ñ\83ваÑ\82и"
msgid "Apply request failed with status <code>%h</code>"
msgstr "Сталася помилка запиту на застосування зі статусом <code>%h</code>"
msgid "Command"
msgstr "Команда"
+msgid "Comment"
+msgstr "Примітка"
+
msgid "Common Configuration"
msgstr "Загальна конфігурація"
msgstr "Вимкнути шифрування"
msgid "Disable Inactivity Polling"
-msgstr ""
+msgstr "Вимкнути опитування неактивності"
msgid "Disable this network"
msgstr "Вимкнути цю мережу"
"Приховати <abbr title=\"Extended Service Set Identifier — ідентифікатор "
"розширеної служби послуг\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr "Приховати порожні ланцюжки"
+
msgid "Host"
msgstr "Вузол"
msgstr "Макс. досяжна швидкість передачі даних (ATTNDR)"
msgid "Maximum allowed Listen Interval"
-msgstr ""
+msgstr "Максимальний дозволений інтервал прослуховування"
msgid "Maximum allowed number of active DHCP leases"
msgstr "Максимально допустима кількість активних оренд DHCP"
msgid "No NAT-T"
msgstr "Немає NAT-T"
-msgid "No chains in this table"
-msgstr "У цій таблиці немає ланцюжків"
-
msgid "No files found"
msgstr "Файли не знайдено"
msgid "No password set!"
msgstr "Пароль не встановлено!"
-msgid "No rules in this chain"
-msgstr "У цьму ланцюжку нема правил"
+msgid "No rules in this chain."
+msgstr "У цьму ланцюжку нема правил."
msgid "No scan results available yet..."
msgstr "Результати сканування наразі недоступні"
msgstr "Кількість кешованих записів DNS (макс. - 10000, 0 - без кешування)"
msgid "Number of parallel threads used for compression"
-msgstr ""
+msgstr "Кількість паралельних потоків, що використовуються для стиснення"
msgid "OK"
msgstr "OK"
msgid "Please enter your username and password."
msgstr "Введіть ім’я користувача і пароль."
+msgid "Please update package lists first"
+msgstr "Спочатку оновіть списки пакетів"
+
msgid "Policy"
msgstr "Політика"
"Маршрути визначають через який інтерфейс і шлюз можна досягнути певного "
"вузла або мережі."
+msgid "Rule"
+msgstr "Правило"
+
msgid "Run a filesystem check before mounting the device"
msgstr "Виконати перевірку файлової системи перед монтуванням пристрою"
msgid "Show current backup file list"
msgstr "Показати поточний список файлів резервного копіювання"
+msgid "Show empty chains"
+msgstr "Показати порожні ланцюжки"
+
msgid "Shutdown this interface"
msgstr "Вимкнути цей інтерфейс"
msgstr "Розмір кешу запитів DNS"
msgid "Size of the ZRam device in megabytes"
-msgstr ""
+msgstr "Розмір пристрою ZRam у мегабайтах"
msgid "Skip"
msgstr "Пропустити"
"орендою."
msgid "Station inactivity limit"
-msgstr ""
+msgstr "Обмеження бездіяльності станції"
msgid "Status"
msgstr "Стан"
msgstr ""
"Пристрій недосяжний протягом %d секунд після застосування очікуючих змін, що "
"призвело до відкочування конфигурації з міркувань безпеки. Проте, якщо ви "
-"впевненÑ\96, Ñ\89о змÑ\96ни конÑ\84Ñ\96гÑ\83Ñ\80аÑ\86Ñ\96Ñ\97 Ñ\94 пÑ\80авилÑ\8cними, заÑ\81Ñ\82оÑ\81Ñ\83йÑ\82е непеÑ\80евÑ\96Ñ\80енÑ\83 "
-"конÑ\84Ñ\96гÑ\83Ñ\80аÑ\86Ñ\96Ñ\8e. Крім того, ви можете відхилити це попередження та "
+"впевненÑ\96, Ñ\89о змÑ\96ни конÑ\84Ñ\96гÑ\83Ñ\80аÑ\86Ñ\96Ñ\97 Ñ\94 пÑ\80авилÑ\8cними, вÑ\81е одно пÑ\80одовжÑ\96Ñ\82Ñ\8c "
+"заÑ\81Ñ\82оÑ\81Ñ\83ваннÑ\8f. Крім того, ви можете відхилити це попередження та "
"відредагувати зміни, перш ніж намагатись застосувати їх знову, або ж "
"скасувати всі очікуючі зміни, щоб зберегти поточну робочу конфігурацію."
msgstr "Синхронізацію часу не налаштовано."
msgid "Time interval for rekeying GTK"
-msgstr ""
+msgstr "Інтервал часу для зміни ключа GTK"
msgid "Timezone"
msgstr "Часовий пояс"
"таким як Firefox, Opera або Safari."
msgid "ZRam Compression Algorithm"
-msgstr ""
+msgstr "Алгоритм стиснення ZRam"
msgid "ZRam Compression Streams"
-msgstr ""
+msgstr "Потоки стиснення ZRam"
msgid "ZRam Settings"
-msgstr ""
+msgstr "Налаштування ZRam"
msgid "ZRam Size"
-msgstr ""
+msgstr "Розмір ZRam"
msgid "any"
msgstr "будь-який"
msgstr "спрямовано"
msgid "sec"
-msgstr ""
+msgstr "с"
msgid "server mode"
msgstr "режим сервера"
msgid "Command"
msgstr "Lệnh"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Giấu <abbr title=\"Chế độ mở rộng đặt Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Không có chuỗi trong bảng này"
-
msgid "No files found"
msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Không có quy luật trong chuỗi này"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "Nhập tên và mật mã"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Chính sách"
"Routes chỉ định trên giao diện và cổng một host nhất định hay network được "
"tiếp cận."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
msgid "« Back"
msgstr ""
+#~ msgid "No chains in this table"
+#~ msgstr "Không có chuỗi trong bảng này"
+
#~ msgid "Backup / Restore"
#~ msgstr "Backup/ Restore"
msgid "Command"
msgstr "命令"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "一般配置"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "隐藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "主机"
msgid "No NAT-T"
msgstr "无 NAT-T"
-msgid "No chains in this table"
-msgstr "本表中没有链"
-
msgid "No files found"
msgstr "未找到文件"
msgid "No password set!"
msgstr "未设置密码!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "本链没有规则"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "请输入用户名和密码。"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "策略"
"can be reached."
msgstr "路由表描述了数据包的可达路径。"
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "挂载设备前运行文件系统检查"
msgid "Show current backup file list"
msgstr "显示当前备份文件列表"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "关闭此接口"
msgid "« Back"
msgstr "« 后退"
+#~ msgid "No chains in this table"
+#~ msgstr "本表中没有链"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "配置文件将被保留。"
msgid "Command"
msgstr "指令"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "一般設定"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "隱藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "尚未綁在這個表格中"
-
msgid "No files found"
msgstr "尚未發現任何檔案"
msgid "No password set!"
msgstr "尚未設定密碼!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "尚無規則在這個鏈接上"
msgid "No scan results available yet..."
msgid "Please enter your username and password."
msgstr "請輸入您的用戶名稱和密碼"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "策略"
"can be reached."
msgstr "路由器指定介面導出到特定主機或者能夠到達的網路."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "掛載這個設備前先跑系統檢查"
msgid "Show current backup file list"
msgstr "顯示現今的備份檔清單"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "關閉這個介面"
msgid "« Back"
msgstr "« 倒退"
+#~ msgid "No chains in this table"
+#~ msgstr "尚未綁在這個表格中"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "設定檔將被存檔"
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Cache-Control" content="no-cache" />
-<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci" />
+<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci/" />
</head>
<body style="background-color: white">
-<a style="color: black; font-family: arial, helvetica, sans-serif;" href="/cgi-bin/luci">LuCI - Lua Configuration Interface</a>
+<a style="color: black; font-family: arial, helvetica, sans-serif;" href="/cgi-bin/luci/">LuCI - Lua Configuration Interface</a>
</body>
</html>
break;
}
- /* advance beyound the last found valid continuation char */
+ /* advance beyond the last found valid continuation char */
o = v;
ptr += v;
}
ifname_single = s:taboption("physical", Value, "ifname_single", translate("Interface"))
ifname_single.template = "cbi/network_ifacelist"
ifname_single.widget = "radio"
- ifname_single.nobridges = true
+ ifname_single.nobridges = net:is_bridge()
ifname_single.noaliases = false
ifname_single.rmempty = false
ifname_single.network = arg[1]
if not net:is_virtual() then
ifname_multi = s:taboption("physical", Value, "ifname_multi", translate("Interface"))
ifname_multi.template = "cbi/network_ifacelist"
- ifname_multi.nobridges = true
+ ifname_multi.nobridges = net:is_bridge()
ifname_multi.noaliases = true
ifname_multi.rmempty = false
ifname_multi.network = arg[1]
entry({"admin", "status", "overview"}, template("admin_status/index"), _("Overview"), 1)
entry({"admin", "status", "iptables"}, template("admin_status/iptables"), _("Firewall"), 2).leaf = true
+ entry({"admin", "status", "iptables_dump"}, call("dump_iptables")).leaf = true
entry({"admin", "status", "iptables_action"}, post("action_iptables")).leaf = true
entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3)
luci.template.render("admin_status/dmesg", {dmesg=dmesg})
end
+function dump_iptables(family, table)
+ local prefix = (family == "6") and "ip6" or "ip"
+ local ok, lines = pcall(io.lines, "/proc/net/%s_tables_names" % prefix)
+ if ok and lines then
+ local s
+ for s in lines do
+ if s == table then
+ local ipt = io.popen(
+ "/usr/sbin/%stables -t %s --line-numbers -nxvL"
+ %{ prefix, table })
+
+ if ipt then
+ luci.http.prepare_content("text/plain")
+
+ while true do
+ s = ipt:read(1024)
+ if not s then break end
+ luci.http.write(s)
+ end
+
+ ipt:close()
+ return
+ end
+ end
+ end
+ end
+
+ luci.http.status(404, "No such table")
+ luci.http.prepare_content("text/plain")
+end
+
function action_iptables()
if luci.http.formvalue("zero") then
if luci.http.formvalue("family") == "6" then
<%#
Copyright 2008-2009 Steven Barth <steven@midlink.org>
- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
+ Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
Licensed to the public under the Apache License 2.0.
-%>
<%-
-
- require "luci.sys.iptparser"
- local wba = require "luci.tools.webadmin"
local fs = require "nixio.fs"
- local io = require "io"
-
local has_ip6tables = fs.access("/usr/sbin/ip6tables")
local mode = 4
mode = luci.dispatcher.context.requestpath
mode = tonumber(mode[#mode] ~= "iptables" and mode[#mode]) or 4
end
+-%>
- local ipt = luci.sys.iptparser.IptParser(mode)
+<%+header%>
- local rowcnt = 1
- function rowstyle()
- rowcnt = rowcnt + 1
- return (rowcnt % 2) + 1
- end
+<style type="text/css">
+ span.jump, .cbi-tooltip-container {
+ border-bottom: 1px dotted blue;
+ cursor: pointer;
+ }
- function link_target(t,c)
- if ipt:is_custom_target(c) then
- return '<a href="#rule_%s_%s">%s</a>' %{ t:lower(), c, c }
- end
- return c
- end
+ ul {
+ list-style: none;
+ }
+
+ .references {
+ position: relative;
+ }
+
+ .references .cbi-tooltip {
+ left: 0 !important;
+ top: 1.5em !important;
+ }
+
+ h4 > span {
+ font-size: 90%;
+ }
+</style>
+
+<script type="text/javascript">//<![CDATA[
+ var table_names = [ 'Filter', 'NAT', 'Mangle', 'Raw' ];
+
+ function create_table_section(table)
+ {
+ var idiv = document.getElementById('iptables'),
+ tdiv = idiv.querySelector('[data-table="%s"]'.format(table)),
+ title = '<%:Table%>: %s'.format(table);
+
+ if (!tdiv) {
+ tdiv = E('div', { 'data-table': table }, [
+ E('h3', {}, title),
+ E('div')
+ ]);
+
+ if (idiv.firstElementChild.nodeName.toLowerCase() === 'p')
+ idiv.removeChild(idiv.firstElementChild);
+
+ var added = false, thisIdx = table_names.indexOf(table);
+
+ idiv.querySelectorAll('[data-table]').forEach(function(child) {
+ var childIdx = table_names.indexOf(child.getAttribute('data-table'));
+
+ if (added === false && childIdx > thisIdx) {
+ idiv.insertBefore(tdiv, child);
+ added = true;
+ }
+ });
+
+ if (added === false)
+ idiv.appendChild(tdiv);
+ }
+
+ return tdiv.lastElementChild;
+ }
+
+ function create_chain_section(table, chain, policy, packets, bytes, references)
+ {
+ var tdiv = create_table_section(table),
+ cdiv = tdiv.querySelector('[data-chain="%s"]'.format(chain)),
+ title;
+
+ if (policy)
+ title = '<%:Chain%> <em>%s</em> <span>(<%:Policy%>: <em>%s</em>, %d <%:Packets%>, %.2mB <%:Traffic%>)</span>'.format(chain, policy, packets, bytes);
+ else
+ title = '<%:Chain%> <em>%s</em> <span class="references">(%d <%:References%>)</span>'.format(chain, references);
+
+ if (!cdiv) {
+ cdiv = E('div', { 'data-chain': chain }, [
+ E('h4', { 'id': 'rule_%s_%s'.format(table.toLowerCase(), chain) }, title),
+ E('div', { 'class': 'table' }, [
+ E('div', { 'class': 'tr table-titles' }, [
+ E('div', { 'class': 'th center' }, '<%:Pkts.%>'),
+ E('div', { 'class': 'th center' }, '<%:Traffic%>'),
+ E('div', { 'class': 'th' }, '<%:Target%>'),
+ E('div', { 'class': 'th' }, '<%:Prot.%>'),
+ E('div', { 'class': 'th' }, '<%:In%>'),
+ E('div', { 'class': 'th' }, '<%:Out%>'),
+ E('div', { 'class': 'th' }, '<%:Source%>'),
+ E('div', { 'class': 'th' }, '<%:Destination%>'),
+ E('div', { 'class': 'th' }, '<%:Options%>'),
+ E('div', { 'class': 'th' }, '<%:Comment%>')
+ ])
+ ])
+ ]);
+
+ tdiv.appendChild(cdiv);
+ }
+ else {
+ cdiv.firstElementChild.innerHTML = title;
+ }
+
+ return cdiv.lastElementChild;
+ }
+
+ function update_chain_section(chaintable, rows)
+ {
+ if (!chaintable)
+ return;
+
+ cbi_update_table(chaintable, rows, '<%:No rules in this chain.%>');
- function link_iface(i)
- local net = wba.iface_get_network(i)
- if net and i ~= "lo" then
- return '<a href="%s">%s</a>' %{
- url("admin/network/network", net), i
+ if (rows.length === 0 &&
+ document.querySelector('form > [data-hide-empty="true"]'))
+ chaintable.parentNode.style.display = 'none';
+ else
+ chaintable.parentNode.style.display = '';
+
+ chaintable.parentNode.setAttribute('data-empty', rows.length === 0);
+ }
+
+ function hide_empty(btn)
+ {
+ var hide = (btn.getAttribute('data-hide-empty') === 'false');
+
+ btn.setAttribute('data-hide-empty', hide);
+ btn.value = hide ? '<%:Show empty chains%>' : '<%:Hide empty chains%>';
+ btn.blur();
+
+ document.querySelectorAll('[data-chain][data-empty="true"]')
+ .forEach(function(chaintable) {
+ chaintable.style.display = hide ? 'none' : '';
+ });
+ }
+
+ function jump_target(ev)
+ {
+ var link = ev.target,
+ table = findParent(link, '[data-table]').getAttribute('data-table'),
+ chain = link.textContent,
+ num = +link.getAttribute('data-num'),
+ elem = document.getElementById('rule_%s_%s'.format(table.toLowerCase(), chain));
+
+ if (elem) {
+ (document.documentElement || document.body.parentNode || document.body).scrollTop = elem.offsetTop - 40;
+ elem.classList.remove('flash');
+ void elem.offsetWidth;
+ elem.classList.add('flash');
+
+ if (num) {
+ var rule = elem.nextElementSibling.childNodes[num];
+ if (rule) {
+ rule.classList.remove('flash');
+ void rule.offsetWidth;
+ rule.classList.add('flash');
+ }
}
+ }
+ }
- end
- return i
- end
+ function parse_output(table, s)
+ {
+ var current_chain = null;
+ var current_rules = [];
+ var seen_chains = {};
+ var chain_refs = {};
+ var re = /([^\n]*)\n/g;
+ var m, m2;
- local tables = { "Filter", "NAT", "Mangle", "Raw" }
- if mode == 6 then
- tables = { "Filter", "Mangle", "Raw" }
- local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
- if ok and lines then
- local line
- for line in lines do
- if line == "nat" then
- tables = { "Filter", "NAT", "Mangle", "Raw" }
- end
- end
- end
- end
--%>
+ while ((m = re.exec(s)) != null) {
+ if (m[1].match(/^Chain (.+) \(policy (\w+) (\d+) packets, (\d+) bytes\)$/)) {
+ var chain = RegExp.$1,
+ policy = RegExp.$2,
+ packets = +RegExp.$3,
+ bytes = +RegExp.$4;
-<%+header%>
+ update_chain_section(current_chain, current_rules);
-<style type="text/css">
- span:target {
- color: blue;
- text-decoration: underline;
+ seen_chains[chain] = true;
+ current_chain = create_chain_section(table, chain, policy, packets, bytes);
+ current_rules = [];
+ }
+ else if (m[1].match(/^Chain (.+) \((\d+) references\)$/)) {
+ var chain = RegExp.$1,
+ references = +RegExp.$2;
+
+ update_chain_section(current_chain, current_rules);
+
+ seen_chains[chain] = true;
+ current_chain = create_chain_section(table, chain, null, null, null, references);
+ current_rules = [];
+ }
+ else if (m[1].match(/^num /)) {
+ continue;
+ }
+ else if ((m2 = m[1].match(/^(\d+) +(\d+) +(\d+) +(.*?) +(\S+) +(\S*) +(\S+) +(\S+) +([a-f0-9:.]+\/\d+) +([a-f0-9:.]+\/\d+) +(.+)$/)) !== null) {
+ var num = +m2[1],
+ pkts = +m2[2],
+ bytes = +m2[3],
+ target = m2[4],
+ proto = m2[5],
+ indev = m2[7],
+ outdev = m2[8],
+ srcnet = m2[9],
+ dstnet = m2[10],
+ options = m2[11] || '-',
+ comment = '-';
+
+ options = options.trim().replace(/(?:^| )\/\* (.+) \*\//,
+ function(m1, m2) {
+ comment = m2.replace(/^!fw3(: |$)/, '').trim() || '-';
+ return '';
+ }) || '-';
+
+ current_rules.push([
+ '%.2m'.format(pkts).nobr(),
+ '%.2mB'.format(bytes).nobr(),
+ target ? '<span class="target">%s</span>'.format(target) : '-',
+ proto,
+ (indev !== '*') ? '<span class="ifacebadge">%s</span>'.format(indev) : '*',
+ (outdev !== '*') ? '<span class="ifacebadge">%s</span>'.format(outdev) : '*',
+ srcnet,
+ dstnet,
+ options,
+ comment
+ ]);
+
+ if (target) {
+ chain_refs[target] = chain_refs[target] || [];
+ chain_refs[target].push([ current_chain, num ]);
+ }
+ }
+ }
+
+ update_chain_section(current_chain, current_rules);
+
+ document.querySelectorAll('[data-table="%s"] [data-chain]'.format(table))
+ .forEach(function(cdiv) {
+ if (!seen_chains[cdiv.getAttribute('data-chain')]) {
+ cdiv.parentNode.removeChild(cdiv);
+ return;
+ }
+
+ cdiv.querySelectorAll('.target').forEach(function(tspan) {
+ if (seen_chains[tspan.textContent]) {
+ tspan.classList.add('jump');
+ tspan.addEventListener('click', jump_target);
+ }
+ });
+
+ cdiv.querySelectorAll('.references').forEach(function(rspan) {
+ var refs = chain_refs[cdiv.getAttribute('data-chain')];
+ if (refs && refs.length) {
+ rspan.classList.add('cbi-tooltip-container');
+ rspan.appendChild(E('small', { 'class': 'cbi-tooltip ifacebadge', 'style': 'top:1em; left:auto' }, [ E('ul') ]));
+
+ refs.forEach(function(ref) {
+ var chain = ref[0].parentNode.getAttribute('data-chain'),
+ num = ref[1];
+
+ rspan.lastElementChild.lastElementChild.appendChild(E('li', {}, [
+ '<%:Chain%> ',
+ E('span', {
+ 'class': 'jump',
+ 'data-num': num,
+ 'onclick': 'jump_target(event)'
+ }, chain),
+ ', <%:Rule%> #%d'.format(num)
+ ]));
+ });
+ }
+ });
+ });
}
-</style>
+
+ table_names.forEach(function(table) {
+ XHR.poll(5, '<%=url("admin/status/iptables_dump", tostring(mode))%>/' + table.toLowerCase(), null,
+ function (xhr) {
+ parse_output(table, xhr.responseText);
+ });
+ });
+//]]></script>
<h2 name="content"><%:Firewall Status%></h2>
</ul>
<% end %>
-<div class="cbi-map" style="position: relative">
-
+<div style="position: relative">
<form method="post" action="<%=url("admin/status/iptables_action")%>" style="position: absolute; right: 0">
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="family" value="<%=mode%>" />
+ <input type="button" class="cbi-button" data-hide-empty="false" value="<%:Hide empty chains%>" onclick="hide_empty(this)" />
<input type="submit" class="cbi-button" name="zero" value="<%:Reset Counters%>" />
<input type="submit" class="cbi-button" name="restart" value="<%:Restart Firewall%>" />
</form>
+</div>
- <div class="cbi-section">
-
- <% for _, tbl in ipairs(tables) do chaincnt = 0 %>
- <h3><%:Table%>: <%=tbl%></h3>
-
- <% for _, chain in ipairs(ipt:chains(tbl)) do
- rowcnt = 0
- chaincnt = chaincnt + 1
- chaininfo = ipt:chain(tbl, chain)
- %>
- <h4 id="rule_<%=tbl:lower()%>_<%=chain%>">
- <%:Chain%> <em><%=chain%></em>
- (<%- if chaininfo.policy then -%>
- <%:Policy%>: <em><%=chaininfo.policy%></em>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%>
- <%- else -%>
- <%:References%>: <%=chaininfo.references-%>
- <%- end -%>)
- </h4>
-
- <div class="cbi-section-node">
- <div class="table" style="font-size:90%">
- <div class="tr table-titles cbi-rowstyle-<%=rowstyle()%>">
- <div class="th hide-xs"><%:Pkts.%></div>
- <div class="th nowrap"><%:Traffic%></div>
- <div class="th col-5"><%:Target%></div>
- <div class="th"><%:Prot.%></div>
- <div class="th"><%:In%></div>
- <div class="th"><%:Out%></div>
- <div class="th"><%:Source%></div>
- <div class="th"><%:Destination%></div>
- <div class="th col-9 hide-xs"><%:Options%></div>
- </div>
-
- <% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %>
- <div class="tr cbi-rowstyle-<%=rowstyle()%>">
- <div class="td"><%=rule.packets%></div>
- <div class="td nowrap"><%=wba.byte_format(rule.bytes)%></div>
- <div class="td col-5"><%=rule.target and link_target(tbl, rule.target) or "-"%></div>
- <div class="td"><%=rule.protocol%></div>
- <div class="td"><%=link_iface(rule.inputif)%></div>
- <div class="td"><%=link_iface(rule.outputif)%></div>
- <div class="td"><%=rule.source%></div>
- <div class="td"><%=rule.destination%></div>
- <div class="td col-9 hide-xs"><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%></div>
- </div>
- <% end %>
-
- <% if rowcnt == 1 then %>
- <div class="tr cbi-rowstyle-<%=rowstyle()%>">
- <div class="td" colspan="9"><em><%:No rules in this chain%></em></div>
- </div>
- <% end %>
- </div>
- </div>
- <% end %>
-
- <% if chaincnt == 0 then %>
- <em><%:No chains in this table%></em>
- <% end %>
-
- <br /><br />
- <% end %>
- </div>
+<div id="iptables">
+ <p><em><%:Collecting data...%></em></p>
</div>
<%+footer%>
--
--- Langauge & Style
+-- Language & Style
--
o = s:taboption("language", ListValue, "_lang", translate("Language"))
<div class="cbi-value">
<label class="cbi-value-title"><%:Download and install package%>:</label>
<div class="cbi-value-field">
- <span><input type="text" name="url" size="30" value="" /></span>
- <input class="cbi-button cbi-button-save" type="submit" name="go" value="<%:OK%>" />
+ <span><input type="text" name="url" size="30" <% if no_lists then %>disabled="disabled" placeholder="<%:Please update package lists first%>"<% end %> value="" /></span>
+ <input class="cbi-button cbi-button-save" type="submit" name="go" <% if no_lists then %>disabled="disabled"<% end %> value="<%:OK%>" />
</div>
</div>
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:Filter%>:</label>
<div class="cbi-value-field">
- <span><input type="text" name="query" size="20" value="<%=pcdata(query)%>" /></span>
- <input type="submit" class="cbi-button cbi-button-action" name="search" value="<%:Find package%>" />
+ <span><input type="text" name="query" size="20" <% if no_lists then %>disabled="disabled" placeholder="<%:Please update package lists first%>"<% else %>value="<%=pcdata(query)%>"<% end %> /></span>
+ <input type="submit" class="cbi-button cbi-button-action" name="search" <% if no_lists then %>disabled="disabled"<% end %> value="<%:Find package%>" />
</div>
</div>
</div>
if luci.model.network:has_ipv6() then
- ipv6 = section:taboption("advanced", ListValue, "ipv6")
+ ipv6 = section:taboption("advanced", ListValue, "ipv6",
+ translate("Obtain IPv6-Address"))
+
ipv6:value("auto", translate("Automatic"))
ipv6:value("0", translate("Disabled"))
ipv6:value("1", translate("Manual"))
margin: 0px;
padding: 0px;
height: 100%;
- font-family: Microsoft Yahei, WenQuanYi Micro Hei, sans-serif, "Helvetica Neue", Helvetica, Hiragino Sans GB;
+ font-family: var(--font-body, "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB");
}
select {
select:not([multiple="multiple"]):focus,
input:focus {
- border-color: #0099CC;
+ border-color: var(--main-color, #0099CC);
}
select[multiple="multiple"] {
}
code {
- color: #0099CC;
+ color: var(--main-color, #0099CC);
}
abbr {
.main > .loading > span > .loading-img {
animation: anim-rotate 2s infinite linear;
- margin-right: 0.2rem;
display: inline-block;
+ margin: 5rem;
}
@keyframes anim-rotate {
}
.main > .main-left > .nav > .slide > .slide-menu > .active:hover {
- background-color: #0099CC;
+ background-color: var(--main-color, #0099CC);
cursor: hand;
}
#conns > div > div,
#memtotal > div > div {
height: 100% !important;
- background-color: #0099CC !important;
+ background-color: var(--main-color, #0099CC) !important;
}
/* fix multiple table */
.tabs > li[class~="active"],
.tabs > li:hover {
cursor: pointer;
- border-bottom: 0.2rem solid #0099CC;
- color: #0099CC;
+ border-bottom: 0.2rem solid var(--main-color, #0099CC);
+ color: var(--main-color, #0099CC);
margin-bottom: -0.18751rem;
}
.tabs > li[class~="active"] > a {
- color: #0099cc;
+ color: var(--main-color, #0099CC);
}
.tabs > li:hover {
}
.node-main-login > .main .cbi-value-title {
- width: 7rem;
+ width: 8rem;
}
.node-main-login > .main #maincontent {
:root {
+ --main-color: #0099CC;
--header-bg: #0099CC;
--header-color: #FFFFFF;
--menu-bg-color: #FFFFFF;
--menu-color: #404040;
--submenu-bg-hover: #D4D4D4;
--submenu-bg-hover-active: #0099CC;
+ --font-body: "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB";
}