luci-app-dockerman: sync with upstream source

This commit is contained in:
CN_SZTL 2020-02-08 21:47:19 +08:00
parent 8ba015f959
commit 8357e60ea8
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
4 changed files with 520 additions and 681 deletions

View File

@ -4,6 +4,7 @@ Copyright 2019 lisaac <https://github.com/lisaac/luci-app-dockerman>
]]--
require "luci.util"
require "math"
local uci = luci.model.uci.cursor()
local docker = require "luci.model.docker"
local dk = docker.new()
@ -14,10 +15,23 @@ local images = dk.images:list().body
local networks = dk.networks:list().body
local containers = dk.containers:list(nil, {all=true}).body
local is_quot_complete = function(str)
if not str then return true end
local num = 0, w
for w in str:gmatch("[\"\']") do
num = num + 1
end
if math.fmod(num, 2) ~= 0 then
return false
else
return true
end
end
-- reslvo default config
local default_config = { }
if cmd_line and cmd_line:match("^docker.+") then
local key = nil
local key = nil, _key
--cursor = 0: docker run
--cursor = 1: resloving para
--cursor = 2: resloving image
@ -26,6 +40,24 @@ if cmd_line and cmd_line:match("^docker.+") then
for w in cmd_line:gmatch("[^%s]+") do
-- skip '\'
if w == '\\' then
elseif _key then
-- there is a value that unpair quotation marks:
-- "i was a ok man"
-- now we only get: "i
if _key == "mount" or _key == "link" or _key == "env" or _key == "dns" or _key == "port" or _key == "device" or _key == "tmpfs" then
default_config[_key][#default_config[_key]] = default_config[_key][#default_config[_key]] .. " " .. w
if is_quot_complete(default_config[_key][#default_config[_key]]) then
-- clear quotation marks
default_config[_key][#default_config[_key]] = default_config[_key][#default_config[_key]]:gsub("[\"\']", "")
_key = nil
end
else
default_config[_key] = default_config[_key] .. " ".. w
if is_quot_complete(default_config[_key]) then
default_config[_key] = default_config[_key]:gsub("[\"\']", "")
_key = nil
end
end
-- start with '-'
elseif w:match("^%-+.+") and cursor <= 1 then
--key=value
@ -33,7 +65,7 @@ if cmd_line and cmd_line:match("^docker.+") then
key, val = w:match("^%-%-(.-)=(.+)")
-- -dit
if not key then key = w:match("^%-%-(.+)") end
if not key then
key = w:match("^%-(.+)")
if key:match("i") or key:match("t") or key:match("d") then
@ -43,7 +75,7 @@ if cmd_line and cmd_line:match("^docker.+") then
key = nil
end
end
if key == "v" or key == "volume" then
key = "mount"
elseif key == "p" then
@ -72,6 +104,12 @@ if cmd_line and cmd_line:match("^docker.+") then
else
default_config[key] = val
end
-- if there are " or ' in val and separate by space, we need keep the _key to link with next w
if is_quot_complete(val) then
_key = nil
else
_key = key
end
-- clear key
key = nil
end
@ -87,6 +125,12 @@ if cmd_line and cmd_line:match("^docker.+") then
if key == "cpus" or key == "cpushare" or key == "memory" or key == "blkioweight" or key == "device" or key == "tmpfs" then
default_config["advance"] = 1
end
-- if there are " or ' in val and separate by space, we need keep the _key to link with next w
if is_quot_complete(w) then
_key = nil
else
_key = key
end
key = nil
cursor = 1
--image and command

View File

@ -1,57 +1,57 @@
<style type="text/css">
#docker_apply_overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
display: none;
z-index: 20000;
}
#docker_apply_overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
display: none;
z-index: 20000;
}
#docker_apply_overlay .alert-message {
position: relative;
top: 10%;
width: 60%;
margin: auto;
display: flex;
flex-wrap: wrap;
min-height: 32px;
align-items: center;
}
#docker_apply_overlay .alert-message {
position: relative;
top: 10%;
width: 60%;
margin: auto;
display: flex;
flex-wrap: wrap;
min-height: 32px;
align-items: center;
}
#docker_apply_overlay .alert-message > h4,
#docker_apply_overlay .alert-message > p,
#docker_apply_overlay .alert-message > div {
flex-basis: 100%;
}
#docker_apply_overlay .alert-message > h4,
#docker_apply_overlay .alert-message > p,
#docker_apply_overlay .alert-message > div {
flex-basis: 100%;
}
#docker_apply_overlay .alert-message > img {
margin-right: 1em;
flex-basis: 32px;
}
#docker_apply_overlay .alert-message > img {
margin-right: 1em;
flex-basis: 32px;
}
body.apply-overlay-active {
overflow: hidden;
height: 100vh;
}
body.apply-overlay-active {
overflow: hidden;
height: 100vh;
}
body.apply-overlay-active #docker_apply_overlay {
display: block;
}
body.apply-overlay-active #docker_apply_overlay {
display: block;
}
</style>
<script type="text/javascript">//<![CDATA[
var xhr = new XHR(),
uci_apply_rollback = <%=math.max(luci.config and luci.config.apply and luci.config.apply.rollback or 30, 30)%>,
uci_apply_holdoff = <%=math.max(luci.config and luci.config.apply and luci.config.apply.holdoff or 4, 1)%>,
uci_apply_timeout = <%=math.max(luci.config and luci.config.apply and luci.config.apply.timeout or 5, 1)%>,
uci_apply_display = <%=math.max(luci.config and luci.config.apply and luci.config.apply.display or 1.5, 1)%>,
was_xhr_poll_running = false;
var xhr = new XHR(),
uci_apply_rollback = <%=math.max(luci.config and luci.config.apply and luci.config.apply.rollback or 30, 30)%>,
uci_apply_holdoff = <%=math.max(luci.config and luci.config.apply and luci.config.apply.holdoff or 4, 1)%>,
uci_apply_timeout = <%=math.max(luci.config and luci.config.apply and luci.config.apply.timeout or 5, 1)%>,
uci_apply_display = <%=math.max(luci.config and luci.config.apply and luci.config.apply.display or 1.5, 1)%>,
was_xhr_poll_running = false;
function docker_status_message(type, content) {
document.getElementById('docker_apply_overlay') || document.body.insertAdjacentHTML("beforeend",'<div id="docker_apply_overlay"><div class="alert-message"></div></div>')
var overlay = document.getElementById('docker_apply_overlay')
var overlay = document.getElementById('docker_apply_overlay')
message = overlay.querySelector('.alert-message');
if (message && type) {
@ -65,7 +65,7 @@ function docker_status_message(type, content) {
message.innerHTML = content;
document.body.classList.add('apply-overlay-active');
document.body.scrollTop = document.documentElement.scrollTop = 0;
if (!was_xhr_poll_running) {
was_xhr_poll_running = XHR.running();
XHR.halt();
@ -80,58 +80,53 @@ function docker_status_message(type, content) {
}
var loading_msg="Loadding.."
function uci_confirm_docker() {
var tt;
docker_status_message('notice');
var call = function(r, resjson, duration) {
var tt;
docker_status_message('notice');
var call = function(r, resjson, duration) {
if (r && r.status === 200 ) {
var indicator = document.querySelector('.uci_change_indicator');
if (indicator) indicator.style.display = 'none';
docker_status_message('notice', '<%:Docker actions done.%>');
window.clearTimeout(tt);
return;
}
loading_msg = resjson?resjson.info:loading_msg
// var delay = isNaN(duration) ? 0 : Math.max(1000 - duration, 0);
var delay =1000
window.setTimeout(function() {
xhr.get('<%=url("admin/docker/confirm")%>', null, call, uci_apply_timeout * 1000);
}, delay);
};
var indicator = document.querySelector('.uci_change_indicator');
if (indicator) indicator.style.display = 'none';
docker_status_message('notice', '<%:Docker actions done.%>');
window.clearTimeout(tt);
return;
}
loading_msg = resjson?resjson.info:loading_msg
// var delay = isNaN(duration) ? 0 : Math.max(1000 - duration, 0);
var delay =1000
window.setTimeout(function() {
xhr.get('<%=url("admin/docker/confirm")%>', null, call, uci_apply_timeout * 1000);
}, delay);
};
var tick = function() {
var now = Date.now();
var tick = function() {
var now = Date.now();
docker_status_message('notice',
'<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" /> ' +
loading_msg);
docker_status_message('notice',
'<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" /> ' +
loading_msg);
tt = window.setTimeout(tick, 200);
ts = now;
};
tick();
/* wait a few seconds for the settings to become effective */
window.setTimeout(call, Math.max(uci_apply_holdoff * 1000 , 1));
}
// document.getElementsByTagName("form")[0].addEventListener("submit", (e)=>{
// uci_confirm_docker()
// })
tt = window.setTimeout(tick, 200);
ts = now;
};
tick();
/* wait a few seconds for the settings to become effective */
window.setTimeout(call, Math.max(uci_apply_holdoff * 1000 , 1));
}
// document.getElementsByTagName("form")[0].addEventListener("submit", (e)=>{
// uci_confirm_docker()
// })
function fnSubmitForm(el){
if (el.id != "cbid.table.1._new") {
uci_confirm_docker()
}
uci_confirm_docker()
}
}
<% if self.err then -%>
docker_status_message('warning', `<%=self.err%>`);
document.getElementById('docker_apply_overlay').addEventListener("click", (e)=>{
docker_status_message()
})
docker_status_message('warning', `<%=self.err%>`);
document.getElementById('docker_apply_overlay').addEventListener("click", (e)=>{
docker_status_message()
})
<%- end %>
window.onload= function (){

View File

@ -1,20 +1,91 @@
<%+cbi/valueheader%>
<style type="text/css">
#dialog_reslov {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
display: none;
z-index: 20000;
}
#dialog_reslov .dialog_box {
position: relative;
background: rgba(255, 255, 255);
top: 10%;
width: 50%;
margin: auto;
display: flex;
flex-wrap: wrap;
min-height: 50%;
max-height: auto;
align-items: center;
}
#dialog_reslov .dialog_line {
margin-top: 10px;
margin-bottom: 10px;
margin-left: 20px;
margin-right: 20px;
}
#dialog_reslov .dialog_box>h4,
#dialog_reslov .dialog_box>p,
#dialog_reslov .dialog_box>div {
flex-basis: 100%;
}
#dialog_reslov .dialog_box>img {
margin-right: 1em;
flex-basis: 32px;
}
body.dialog-reslov-active {
overflow: hidden;
height: 100vh;
}
body.dialog-reslov-active #dialog_reslov {
display: block;
}
</style>
<script type="text/javascript">
function resolv_container(op) {
function close_reslov_dialog() {
document.body.classList.remove('dialog-reslov-active');
document.documentElement.style.overflowY = 'scroll';
}
function reslov_container(op) {
let s = document.getElementById(op + '-status');
if (!s) return;
let cmd_line = prompt("<%:Plese input <docker create/run> command line:%>", "");
let cmd_line = document.getElementById("dialog_reslov_text").value;
if (cmd_line == null || cmd_line == "") {
s.innerHTML = "<font color='red'>Canceled</font>";
s.innerHTML = "<font color='red'><%:Canceled%></font>";
close_reslov_dialog()
return;
}
if (! cmd_line.match("^docker")) {
s.innerHTML = "<font color='red'>Command line Error</font>";
if (!cmd_line.match(/^docker\s+(run|create)/)) {
s.innerHTML = "<font color='red'><%:Command line Error%></font>";
close_reslov_dialog()
return;
}
let reg_space = /\s+/g
let reg_muti_line= /\\\s*\n/g
let reg_rem =/(?<!\\)`#.+(?<!\\)`/g // the command has `# `
cmd_line = cmd_line.replace(reg_rem, " ").replace(reg_muti_line, " ").replace(reg_space, " ")
console.log(cmd_line)
window.location.href = "/cgi-bin/luci/admin/docker/newcontainer/" + encodeURI(cmd_line)
}
function show_reslov_dialog(op) {
document.getElementById('dialog_reslov') || document.body.insertAdjacentHTML("beforeend", '<div id="dialog_reslov"><div class="dialog_box"><div class="dialog_line"></div><div class="dialog_line"><h5><%:Plese input <docker create/run> command line:%></h5></div><div class="dialog_line"><textarea class="cbi-input-textarea" id="dialog_reslov_text" style="width: 100%; height:100%;" rows="15"></textarea></div><div class="dialog_line"><input type="button" class="cbi-button cbi-button-apply" type="submit" value="<%:Submit%>" onclick="reslov_container(\'' + op + '\')" /> <input type="button" class="cbi-button cbi-button-reset" type="reset" value="<%:Cancel%>" onclick="close_reslov_dialog()" /></div></div></div>')
document.body.classList.add('dialog-reslov-active');
document.documentElement.style.overflowY = 'hidden';
}
</script>
<input type="button" class="cbi-button cbi-button-apply" value="<%:Command line%>" onclick="resolv_container('<%=self.option%>')" />
<input type="button" class="cbi-button cbi-button-apply" value="<%:Command line%>"
onclick="show_reslov_dialog('<%=self.option%>')" />
<span id="<%=self.option%>-status"></span>
<%+cbi/valuefooter%>

View File

@ -1,603 +1,332 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:6
msgid "-- Please choose --"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:7
msgid "-- custom --"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:84
msgid "Action Status Tempfile Path"
msgstr "docker 动作状态的临时文件路径"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:270
msgid "Add host device to the container"
msgstr "添加宿主设备到容器内部"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:264
msgid "Advance"
msgstr "高级"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:193
msgid "Always pull image first"
msgstr "始终先拉取镜像"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:27
msgid "Api Version"
msgstr "API版本"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:60
msgid "Back to Overview"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:247
msgid "Bind Mount(-v)"
msgstr "挂载(-v)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:247
msgid "Bind mount a volume"
msgstr "绑定挂载"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:391
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:304
msgid "Block IO Weight"
msgstr "IO 权重"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:391
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:304
msgid ""
"Block IO weight (relative weight) accepts a weight value between 10 and 1000."
msgstr "IO 权重 (相对权重) 接受10到1000之间的权重值。"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:380
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:291
msgid "CPU Shares Weight"
msgstr "CPU份额权重"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:467
msgid "CPU Useage"
msgstr "CPU用量"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:380
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:291
msgid ""
"CPU shares relative weight, if 0 is set, the system will ignore the value "
"and use the default of 1024."
msgstr "CPU份额相对权重如果设置为0则系统将忽略该值并使用默认值1024。"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:374
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:284
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:28
msgid "CPUs"
msgstr "CPU数量"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:64
msgid "Cancel"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:215
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:111
msgid "Command"
msgstr "启动命令"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/resolv_container.htm:18
msgid "Command line"
msgstr "输入命令行"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:240
msgid "Connect"
msgstr "连接"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:240
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:270
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:304
msgid "Connect Network"
msgstr "连接网络"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:446
msgid "Container Logs"
msgstr "容器日志"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:92
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:168
msgid "Container Name"
msgstr "容器名称"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:19
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:81
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:107
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:67
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm:138
msgid "Containers"
msgstr "容器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:207
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:109
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:69
msgid "Created"
msgstr "创建时间"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:88
msgid "Debug Tempfile Path"
msgstr "调试临时文件路径"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:212
msgid "Device"
msgstr "设备"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:270
msgid "Device(--device)"
msgstr "设备(--device)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:234
msgid "Disconnect"
msgstr "断开"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:70
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:47
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:38
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:148
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:11
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:21
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:52
msgid "Docker"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:130
msgid "Docker Container"
msgstr "Docker 容器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/logs.htm:1
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/logs.htm:8
msgid "Docker Events"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:184
msgid "Docker Image"
msgstr "Docker 镜像"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:30
msgid "Docker Root Dir"
msgstr "Docker根目录"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:26
msgid "Docker Version"
msgstr "Docker版本"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/apply_widget.htm:92
msgid "Docker actions done."
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:61
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:27
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:66
msgid "Driver"
msgstr "驱动"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:168
msgid "Duplicate"
msgstr "复制容器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm:4
msgid "Edit"
msgstr "编辑"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:85
msgid "Enable Debug"
msgstr "启用调试"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:93
msgid "Enable IPv6"
msgstr "启用IPv6"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:216
msgid "Env"
msgstr "环境变量"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:241
msgid "Environmental Variable(-e)"
msgstr "环境变量(-e)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:23
msgid "Events"
msgstr "事件"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:88
msgid "Exclude IPs"
msgstr "排除IP"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:253
msgid "Exposed Ports(-p)"
msgstr "暴露端口(-p)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:209
msgid "Finish Time"
msgstr "结束时间"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:85
msgid ""
"For debug, It shows all docker API actions of luci-app-dockerman in Debug "
"Tempfile Path"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:166
msgid "Force Remove"
msgstr "强制移除"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:64
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:78
msgid "Gateway"
msgstr "网关"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinevalue.htm:4
msgid "Go to relevant configuration page"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:210
msgid "Healthy"
msgstr "健康"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:204
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:90
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:105
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:48
msgid "ID"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:83
msgid "IP range"
msgstr "IP范围"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:218
msgid "IPv4 Address"
msgstr "IPv4 地址"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:105
msgid "IPv6 Gateway"
msgstr "IPv6网关"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:99
msgid "IPv6 Subnet"
msgstr "IPv6子网"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:205
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:105
msgid "Image"
msgstr "镜像"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:20
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:98
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm:162
msgid "Images"
msgstr "镜像"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:31
msgid "Index Server Address"
msgstr "默认服务器地址"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:248
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:34
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm:3
msgid "Info"
msgstr "信息"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:55
msgid "Ingress"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:55
msgid ""
"Ingress network is the network which provides the routing-mesh in swarm mode."
msgstr "Ingress网络是在群集模式下提供路由网的网络。"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:172
msgid "Interactive (-i)"
msgstr "互动式 (-i)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:67
msgid "Internal"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:48
msgid "Ipvlan Mode"
msgstr "Ipvlan模式"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:218
msgid "Links"
msgstr "链接"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:223
msgid "Links with other containers"
msgstr "与其他容器的链接(--link)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm:6
msgid "Logs"
msgstr "日志"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:39
msgid "Macvlan Mode"
msgstr "Macvlan模式"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:386
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:298
msgid "Memory"
msgstr "内存"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:467
msgid "Memory Useage"
msgstr "内存用量"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:386
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:298
msgid ""
"Memory limit (format: <number>[<unit>]). Number is a positive integer. Unit "
"can be one of b, k, m, or g. Minimum is 4M."
msgstr ""
"内存限制 (格式: <容量>[<单位>]). 数字是一个正整数。单位可以是bkm或g之一。"
"最小为4M。"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:68
msgid "Mount Point"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:277
msgid "Mount tmpfs directory"
msgstr "挂载tmpfs到容器内部目录"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:213
msgid "Mount/Volume"
msgstr "挂载/存储卷"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:203
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:252
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:65
msgid "Name"
msgstr "名称"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:234
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:344
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:101
msgid "Network"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:60
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:24
msgid "Network Name"
msgstr "网络名称"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/stats.htm:46
msgid "Network TX/RX"
msgstr "网络发送/接收"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:21
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:43
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:214
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm:194
msgid "Networks"
msgstr "网络"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:158
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:80
msgid "New"
msgstr "新建"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:160
msgid "New Container"
msgstr "新容器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:20
msgid "New Network"
msgstr "新网络"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:374
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:284
msgid "Number of CPUs. Number is a fractional number. 0.000 means no limit."
msgstr "CPU数量数字是小数0.000表示没有限制。"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:62
msgid "Options"
msgstr "选项"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:14
msgid "Overview"
msgstr "概况"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:62
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:34
msgid "Parent Interface"
msgstr "父接口"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/resolv_container.htm:6
msgid "Plese input <docker create/run> command line:"
msgstr "请输入 docker run/create ... 命令行:"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:217
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:103
msgid "Ports"
msgstr "端口"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:199
msgid "Privileged"
msgstr "特权模式(--privileged)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:253
msgid "Publish container's port(s) to the host"
msgstr "将容器的端口发布到宿主"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:62
msgid "Pull"
msgstr "拉取"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:53
msgid "Pull Image"
msgstr "拉取镜像"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:173
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:179
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:157
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:89
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:84
msgid "Remove"
msgstr "移除"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:106
msgid "RepoTags"
msgstr "标签"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:78
msgid "Reset"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:164
msgid "Resolv CLI"
msgstr "解析命令行"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:153
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:169
msgid "Restart"
msgstr "重启"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:211
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:260
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:205
msgid "Restart Policy"
msgstr "重启策略"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:67
msgid "Restrict external access to the network"
msgstr "限制外部访问网络"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/inlinevalue.htm:31
msgid "Reveal/hide password"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:259
msgid "Run command"
msgstr "运行命令"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:230
msgid "Set custom DNS servers"
msgstr "自定义 DNS 服务器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:241
msgid "Set environment variables to inside the container"
msgstr "容器内部环境变量"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:81
msgid "Setting"
msgstr "设置"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/images.lua:108
msgid "Size"
msgstr "大小"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:69
msgid "Skip"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:83
msgid "Socket Path"
msgstr "Socket路径"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:148
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:164
msgid "Start"
msgstr "启动"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:209
msgid "Start Time"
msgstr "启动时间"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:468
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:469
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/container.htm:5
msgid "Stats"
msgstr "状态"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:206
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:98
msgid "Status"
msgstr "状态"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:158
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/containers.lua:174
msgid "Stop"
msgstr "停止"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/cbi/xsimpleform.htm:73
msgid "Submit"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/networks.lua:63
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newnetwork.lua:73
msgid "Subnet"
msgstr "子网络"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:472
msgid "TOP"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:178
msgid "TTY (-t)"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:236
msgid ""
"The user that commands are run as inside the container.(format: name|uid[:"
"group|gid])"
msgstr "容器内部执行命令的用户(组), 格式: UID:GID"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:277
msgid "Tmpfs(--tmpfs)"
msgstr ""
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:29
msgid "Total Memory"
msgstr "总内存"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:203
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:211
msgid "Update"
msgstr "更新"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/container.lua:163
msgid "Upgrade"
msgstr "升级容器"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/newcontainer.lua:236
msgid "User(-u)"
msgstr "用户(-u)"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/controller/dockerman.lua:22
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/volumes.lua:58
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/view/docker/overview.htm:271
msgid "Volumes"
msgstr "存储卷"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:88
msgid "Where you want to save the debug tempfile"
msgstr "保存调试临时文件的位置"
msgid "Events"
msgstr "事件"
msgid "Docker Contaienr"
msgstr "Docker 容器"
msgid "Start"
msgstr "启动"
msgid "Restart"
msgstr "重启"
msgid "Stop"
msgstr "停止"
msgid "Upgrade"
msgstr "升级容器"
msgid "Duplicate"
msgstr "复制容器"
msgid "Remove"
msgstr "移除"
msgid "Name"
msgstr "名称"
msgid "Image"
msgstr "镜像"
msgid "Status"
msgstr "状态"
msgid "Created"
msgstr "创建时间"
msgid "Start Time"
msgstr "启动时间"
msgid "Healthy"
msgstr "健康"
msgid "Restart Policy"
msgstr "重启策略"
msgid "Update"
msgstr "更新"
msgid "Device(--device)"
msgstr "设备(--device)"
msgid "Mount/Volume"
msgstr "挂载/存储卷"
msgid "Command"
msgstr "启动命令"
msgid "Setting"
msgstr "设置"
msgid "Driver"
msgstr "驱动"
msgid "Env"
msgstr "环境变量"
msgid "Ports"
msgstr "端口"
msgid "Links"
msgstr "链接"
msgid "Disconnect"
msgstr "断开"
msgid "Connect Network"
msgstr "连接网络"
msgid "Connect"
msgstr "连接"
msgid "Info"
msgstr "信息"
msgid "CPUs"
msgstr "CPU数量"
msgid "Number of CPUs. Number is a fractional number. 0.000 means no limit."
msgstr "CPU数量数字是小数0.000表示没有限制。"
msgid "CPU Shares Weight"
msgstr "CPU份额权重"
msgid "CPU shares relative weight, if 0 is set, the system will ignore the value and use the default of 1024."
msgstr "CPU份额相对权重如果设置为0则系统将忽略该值并使用默认值1024。"
msgid "Memory"
msgstr "内存"
msgid "Memory limit (format: <number>[<unit>]). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M."
msgstr "内存限制 (格式: <容量>[<单位>]). 数字是一个正整数。单位可以是bkm或g之一。最小为4M。"
msgid "Block IO Weight"
msgstr "IO 权重"
msgid "Block IO weight (relative weight) accepts a weight value between 10 and 1000."
msgstr "IO 权重 (相对权重) 接受10到1000之间的权重值。"
msgid "Container Logs"
msgstr "容器日志"
msgid "RepoTags"
msgstr "标签"
msgid "Size"
msgstr "大小"
msgid "Force Remove"
msgstr "强制移除"
msgid "Subnet"
msgstr "子网络"
msgid "Gateway"
msgstr "网关"
msgid "New"
msgstr "新建"
msgid "Resolv CLI"
msgstr "解析命令行"
msgid "Docker Image"
msgstr "Docker 镜像"
msgid "User(-u)"
msgstr "用户(-u)"
msgid "New Container"
msgstr "新容器"
msgid "Container Name"
msgstr "容器名称"
msgid "Interactive (-i)"
msgstr "互动式 (-i)"
msgid "Always pull image first"
msgstr "始终先拉取镜像"
msgid "Privileged"
msgstr "特权模式(--privileged)"
msgid "IPv4 Address"
msgstr "IPv4 地址"
msgid "Links with other containers"
msgstr "与其他容器的链接(--link)"
msgid "Environmental Variable(-e)"
msgstr "环境变量(-e)"
msgid "Bind Mount(-v)"
msgstr "挂载(-v)"
msgid "Exposed Ports(-p)"
msgstr "暴露端口(-p)"
msgid "Run command"
msgstr "运行命令"
msgid "Advance"
msgstr "高级"
msgid "Mount tmpfs directory"
msgstr "挂载tmpfs到容器内部目录"
msgid "New Network"
msgstr "新网络"
msgid "Network Name"
msgstr "网络名称"
msgid "Parent Interface"
msgstr "父接口"
msgid "Macvlan Mode"
msgstr "Macvlan模式"
msgid "Ipvlan Mode"
msgstr "Ipvlan模式"
msgid "Ingress network is the network which provides the routing-mesh in swarm mode."
msgstr "Ingress网络是在群集模式下提供路由网的网络。"
msgid "Options"
msgstr "选项"
msgid "Restrict external access to the network"
msgstr "限制外部访问网络"
msgid "IP range"
msgstr "IP范围"
msgid "Exclude IPs"
msgstr "排除IP"
msgid "Enable IPv6"
msgstr "启用IPv6"
msgid "IPv6 Subnet"
msgstr "IPv6子网"
msgid "IPv6 Gateway"
msgstr "IPv6网关"
msgid "Docker Version"
msgstr "Docker版本"
msgid "Api Version"
msgstr "API版本"
msgid "Total Memory"
msgstr "总内存"
msgid "Docker Root Dir"
msgstr "Docker根目录"
msgid "Index Server Address"
msgstr "默认服务器地址"
msgid "Socket Path"
msgstr "Socket路径"
msgid "Action Status Tempfile Path"
msgstr "docker 动作状态的临时文件路径"
#: /mnt/A/openwrt-latest/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/docker/overview.lua:84
msgid "Where you want to save the docker status file"
msgstr "保存docker status文件的位置"
#~ msgid "Docker Contaienr"
#~ msgstr "Docker 容器"
msgid "Enable Debug"
msgstr "启用调试"
#~ msgid ""
#~ "For debug, It shows all docker API actions of luci-app-dockermab in Debug "
#~ "Tempfile Path"
#~ msgstr ""
#~ "用于调试,它在调试临时文件路径中显示 luci-app-dockermab 的所有docker API操"
#~ "作"
msgid "For debug, It shows all docker API actions of luci-app-dockermab in Debug Tempfile Path"
msgstr "用于调试,它在调试临时文件路径中显示 luci-app-dockermab 的所有docker API操作"
msgid "Debug Tempfile Path"
msgstr "调试临时文件路径"
msgid "Where you want to save the debug tempfile"
msgstr "保存调试临时文件的位置"
msgid "Edit"
msgstr "编辑"
msgid "Stats"
msgstr "状态"
msgid "Logs"
msgstr "日志"
msgid "Network TX/RX"
msgstr "网络发送/接收"
msgid "CPU Useage"
msgstr "CPU用量"
msgid "Memory Useage"
msgstr "内存用量"
msgid "Docker Container"
msgstr "Docker 容器"
msgid "Overview"
msgstr "概况"
msgid "Pull Image"
msgstr "拉取镜像"
msgid "Pull"
msgstr "拉取"
msgid "Command line"
msgstr "输入命令行"
msgid "Plese input <docker create/run> command line:"
msgstr "请输入 docker run/create ... 命令行:"
msgid "Network Name"
msgstr "网络名"
msgid "Set custom DNS servers"
msgstr "自定义 DNS 服务器"
msgid "The user that commands are run as inside the container.(format: name|uid[:group|gid])"
msgstr "容器内部执行命令的用户(组), 格式: UID:GID"
msgid "Set environment variables to inside the container"
msgstr "容器内部环境变量"
msgid "Bind mount a volume"
msgstr "绑定挂载"
msgid "Publish container's port(s) to the host"
msgstr "将容器的端口发布到宿主"
msgid "Add host device to the container"
msgstr "添加宿主设备到容器内部"
msgid "Device"
msgstr "设备"
msgid "Finish Time"
msgstr "结束时间"
msgid "Command line Error"
msgstr "命令行错误"
msgid "Canceled"
msgstr "已取消"