Oo;BU%a@;Wx+5x43Lr%x5)ZNxM14Dm#qLea65nA_=bs*~tSi6HSk4cjUC
zsDF5jqdg1d56jmuBbjI$tDmL)KS~8+y>fxn`A%|%5Z9!KK6)>ED2|gZN8t_W%DegLZve{z^OF
zFoF78>RoWS?(m=1ayHs=S`Rc?8w0F%xbfUc`xM
zDY+~^h+IcvJ}jMEct|I61d!M9AGuk0A6H;jB{^PG+EH4P*U`y*iN}aNpE5uLZxin)
z$tKp}1h%EEIup?MgFfSZDHVw`TK@+0@u!|dSx@1s!+WeFpFr(Di{D^8xfc{2-`S+8
z^56dnhEaaB#uH@cP(O%eD0Qjl=Aw!CFa1Js8R{rPx$3RCfAk>V+T!N8lX$rG{e<%}
zlgr6iHOQ@_Bumczuc4tH4OLO!a9QXunYxZZOo_KC^C(j+zlXYx!NkcKsG;SR8%tc0
z_yuNTEFI@4UlZT=Mtn(8A4MtRq2m`6{c@dcgA}EnpT-QtnQZ`_Hfd~9-E?7Swpn6@xVa{Aw)=*UGr6=tDCaZV-TQ`9%P&p$s3NG!L`9=S-Z)Y4J_9H$?{1f$*)C*W!W*en2eo0#+%Zs_h
zI`kW90qwrTb?v##^o~^<0#d
zl;(eG<*&jxboa3Lkp&e=-)a|(yY$xg4*1YIeAScm5LF|9$EhVtCom!Bip
zf>MH9YIgu{%K+k;6dkR}e}cuWy#T(YEhBcqZr)z*A4$pB|NKm#9PxZR;U)F8bliy1
zlp2)(5%0ql*5?ZKk<_Q)X!N0dueGJ4{{GlR{d@9_u&*T(-nXm2?*C&FA(Rp%Hd0bD
zp*r}0wv5!vs3XThykjR9B;TBPKk<6Ysn0!fd+~EDPM`P3-}ISHNlAVyW~ZSMbEDA0A=kwvf|s-zco`!3m{k??fEKm^#YQ9#8#a
zN^R;J$W60zcT>;t{s-G#f|isjG~T0g9z22p444CTT%a7XlNArNyy{<5_7LaBaL&m}
zy&CoJDDRJ~oAghUP^c3FR>^CmY|;5`jxly
zrV}5fzKgcE)R$u){2AL?-?`LV(C7bM-`7swVjXCAhEeyocn$GqR=-946Z)qj?oE9(
zMaOF5LQHBP>R%c{sq6TLQjy|E8O(XbC{HNKlXLx8Iya#~M-EO%L%B+0LCPy~S81<;
ztBF6Nbf<*S=c!KMXzSusAeW8$W!iNt#Wj>^lwiyCVypoa9b+gf_5SPlj^r7)>iuV`
z^Tbh<4tC;eJ4s!#P%nmm(bk4i+RhtieP)qMM!lh(dz^YnCa0qV|?=<5c=5;X*8D7b$?1DbL9@)`=W>Dd}_``McyxQgnD$
zlH5W0!V*eeqQ0M8A?n{?KP5RzaPs@(9+hd7^yDsCGBx#8oSTBUDJ3`O>i8f2f=ek2
zsE?uSaogPezevMLPK?0=`2INQcJhXuEnkZ0Tk9|w|Dc?uJRDrk#{j%|00PEbb5nNDJLj8wo)pSe@BTVmx2@0QPNtw`gEjBqFqOO%IB0c#ATJ>
z&_7-1xXC&F-Kw*S_Vm>Mp+xKFs*cUrnTGL{#gzV(dX&=?bs0xVK_!L>9Hm~)&ZFwI
zqt8FYBPaptN8A~su?2GxPp?3lApGZX={ZssH0{w{+{>)L2Wv0vgD2TKaKSBD6vPa
z*_jeEv>B8-@ox8D{Swdj2~UymcihQ@8}TL5^^WZx+c&gl-}tWm2X^e8P-j3~;@tsr
z{S&W_*yfXPb7cO+;8E9o6aN}FEluLQSzDZVp$C2m4^Qk!*m1H_Lh4gl6DphanSXofW!{>JEltf`M0+|{|B}M_|yOZ
diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po
index 38712017a..8502e7c3d 100644
--- a/apps/locale/zh/LC_MESSAGES/django.po
+++ b/apps/locale/zh/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-01-21 17:40+0800\n"
+"POT-Creation-Date: 2019-01-28 12:56+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler \n"
"Language-Team: Jumpserver team\n"
@@ -17,11 +17,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: assets/api/node.py:264
+#: assets/api/node.py:58
+msgid "You can't update the root node name"
+msgstr "不能修改根节点名称"
+
+#: assets/api/node.py:281
msgid "Update node asset hardware information: {}"
msgstr "更新节点资产硬件信息: {}"
-#: assets/api/node.py:278
+#: assets/api/node.py:295
msgid "Test if the assets under the node are connectable: {}"
msgstr "测试节点下资产是否可连接: {}"
@@ -903,7 +907,7 @@ msgstr "其它"
#: common/templates/common/command_storage_create.html:79
#: common/templates/common/email_setting.html:62
#: common/templates/common/ldap_setting.html:62
-#: common/templates/common/replay_storage_create.html:138
+#: common/templates/common/replay_storage_create.html:151
#: common/templates/common/security_setting.html:70
#: common/templates/common/terminal_setting.html:68
#: perms/templates/perms/asset_permission_create_update.html:80
@@ -936,7 +940,7 @@ msgstr "重置"
#: common/templates/common/command_storage_create.html:80
#: common/templates/common/email_setting.html:63
#: common/templates/common/ldap_setting.html:63
-#: common/templates/common/replay_storage_create.html:139
+#: common/templates/common/replay_storage_create.html:152
#: common/templates/common/security_setting.html:71
#: common/templates/common/terminal_setting.html:70
#: perms/templates/perms/asset_permission_create_update.html:81
@@ -2198,17 +2202,52 @@ msgstr "账户密钥"
msgid "Endpoint"
msgstr "端点"
+#: common/templates/common/replay_storage_create.html:113
+#, python-brace-format
+msgid "OSS: http://{REGION_NAME}.aliyuncs.com"
+msgstr "OSS: http://{REGION_NAME}.aliyuncs.com"
+
#: common/templates/common/replay_storage_create.html:115
+msgid "Example: http://oss-cn-hangzhou.aliyuncs.com"
+msgstr "如: http://oss-cn-hangzhou.aliyuncs.com"
+
+#: common/templates/common/replay_storage_create.html:117
+#, python-brace-format
+msgid "S3: http://s3.{REGION_NAME}.amazonaws.com"
+msgstr "S3: http://s3.{REGION_NAME}.amazonaws.com"
+
+#: common/templates/common/replay_storage_create.html:118
+#, python-brace-format
+msgid "S3(China): http://s3.{REGION_NAME}.amazonaws.com.cn"
+msgstr "S3(中国): http://s3.{REGION_NAME}.amazonaws.com.cn"
+
+#: common/templates/common/replay_storage_create.html:119
+msgid "Example: http://s3.cn-north-1.amazonaws.com.cn"
+msgstr "如: http://s3.cn-north-1.amazonaws.com.cn"
+
+#: common/templates/common/replay_storage_create.html:125
msgid "Endpoint suffix"
msgstr "端点后缀"
-#: common/templates/common/replay_storage_create.html:129
+#: common/templates/common/replay_storage_create.html:135
#: xpack/plugins/cloud/models.py:186
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:83
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:64
msgid "Region"
msgstr "地域"
+#: common/templates/common/replay_storage_create.html:140
+msgid "Beijing: cn-north-1"
+msgstr "北京: cn-north-1"
+
+#: common/templates/common/replay_storage_create.html:141
+msgid "Ningxia: cn-northwest-1"
+msgstr "宁夏: cn-northwest-1"
+
+#: common/templates/common/replay_storage_create.html:142
+msgid "More"
+msgstr "更多"
+
#: common/templates/common/security_setting.html:46
msgid "Password check rule"
msgstr "密码校验规则"
@@ -2328,36 +2367,36 @@ msgstr "{} 任务开始: {}"
msgid "{} Task finish"
msgstr "{} 任务结束"
-#: ops/models/adhoc.py:324
+#: ops/models/adhoc.py:323
msgid "Start time"
msgstr "开始时间"
-#: ops/models/adhoc.py:325
+#: ops/models/adhoc.py:324
msgid "End time"
msgstr "完成时间"
-#: ops/models/adhoc.py:326 ops/templates/ops/adhoc_history.html:57
+#: ops/models/adhoc.py:325 ops/templates/ops/adhoc_history.html:57
#: ops/templates/ops/task_history.html:63 ops/templates/ops/task_list.html:41
msgid "Time"
msgstr "时间"
-#: ops/models/adhoc.py:327 ops/templates/ops/adhoc_detail.html:106
+#: ops/models/adhoc.py:326 ops/templates/ops/adhoc_detail.html:106
#: ops/templates/ops/adhoc_history.html:55
#: ops/templates/ops/adhoc_history_detail.html:69
#: ops/templates/ops/task_detail.html:84 ops/templates/ops/task_history.html:61
msgid "Is finished"
msgstr "是否完成"
-#: ops/models/adhoc.py:328 ops/templates/ops/adhoc_history.html:56
+#: ops/models/adhoc.py:327 ops/templates/ops/adhoc_history.html:56
#: ops/templates/ops/task_history.html:62
msgid "Is success"
msgstr "是否成功"
-#: ops/models/adhoc.py:329
+#: ops/models/adhoc.py:328
msgid "Adhoc raw result"
msgstr "结果"
-#: ops/models/adhoc.py:330
+#: ops/models/adhoc.py:329
msgid "Adhoc result summary"
msgstr "汇总"
@@ -2479,8 +2518,6 @@ msgid "Success assets"
msgstr "成功资产"
#: ops/templates/ops/celery_task_log.html:4
-#, fuzzy
-#| msgid "Task list"
msgid "Task log"
msgstr "任务列表"
@@ -2490,6 +2527,32 @@ msgstr "任务列表"
msgid "Go"
msgstr ""
+#: ops/templates/ops/command_execution_create.html:144
+msgid "Selected assets"
+msgstr "已选择资产"
+
+#: ops/templates/ops/command_execution_create.html:147
+msgid "In total"
+msgstr "总共"
+
+#: ops/templates/ops/command_execution_create.html:182
+msgid ""
+"Select the left asset, select the running system user, execute command in "
+"batch"
+msgstr "选择左侧资产, 选择运行的系统用户,批量执行命令"
+
+#: ops/templates/ops/command_execution_create.html:200
+msgid "Unselected assets"
+msgstr "没有选中资产"
+
+#: ops/templates/ops/command_execution_create.html:204
+msgid "No input command"
+msgstr "没有输入命令"
+
+#: ops/templates/ops/command_execution_create.html:208
+msgid "No system user was selected"
+msgstr "没有选择系统用户"
+
#: ops/templates/ops/command_execution_create.html:253
msgid "Pending"
msgstr ""
@@ -4667,9 +4730,6 @@ msgstr "更新组织"
#~ msgid "No assets, task stop"
#~ msgstr "没有匹配到资产,结束任务"
-#~ msgid "You can't update the root node name"
-#~ msgstr "不能修改根节点名称"
-
#~ msgid "Update assets hardware info period"
#~ msgstr "定期更新资产硬件信息"
diff --git a/apps/ops/templates/ops/command_execution_create.html b/apps/ops/templates/ops/command_execution_create.html
index e429e38ba..17a01e5c4 100644
--- a/apps/ops/templates/ops/command_execution_create.html
+++ b/apps/ops/templates/ops/command_execution_create.html
@@ -141,10 +141,10 @@ function onCheck(e, treeId, treeNode) {
var nodes_names = nodes.map(function (node) {
return node.name;
});
- var message = "已选择资产: ";
+ var message = "{% trans 'Selected assets' %}" + ': ';
message += nodes_names.join(", ");
message += "\r\n";
- message += "总共: " + nodes_names.length + "个\r\n";
+ message += "{% trans 'In total' %}" + ': ' + nodes_names.length + "个\r\n";
term.clear();
term.write(message)
}
@@ -179,7 +179,7 @@ function initResultTerminal() {
}
});
term.open(document.getElementById('term'));
- term.write("选择左侧资产, 选择运行的系统用户,批量执行命令\r\n")
+ term.write("{% trans 'Select the left asset, select the running system user, execute command in batch' %}" + "\r\n")
}
function wrapperError(msg) {
@@ -197,15 +197,15 @@ function execute() {
return node.id;
});
if (hosts.length === 0) {
- term.write(wrapperError('没有选中资产'));
+ term.write(wrapperError("{% trans 'Unselected assets' %}"));
return
}
if (!command) {
- term.write(wrapperError('没有输入命令'));
+ term.write(wrapperError("{% trans 'No input command' %}"));
return
}
if (!run_as) {
- term.write(wrapperError('没有选择运行用户'));
+ term.write(wrapperError("{% trans 'No system user was selected' %}"));
return
}
var data = {