From 9a5c00e14836bfdb681292c55b9ab90b9855bf67 Mon Sep 17 00:00:00 2001
From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com>
Date: Thu, 20 Jun 2019 18:10:44 +0800
Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=88?=
 =?UTF-8?q?=20(#2823)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* [Update] 修改文案

* [Update] 修改文案2
---
 apps/applications/views/remote_app.py  |   8 +-
 apps/audits/views.py                   |   2 +-
 apps/locale/zh/LC_MESSAGES/django.mo   | Bin 77602 -> 77458 bytes
 apps/locale/zh/LC_MESSAGES/django.po   | 116 ++++++++++---------------
 apps/locale/zh/LC_MESSAGES/djangojs.mo | Bin 2698 -> 2727 bytes
 apps/locale/zh/LC_MESSAGES/djangojs.po |  68 ++++++++-------
 apps/static/js/jumpserver.js           |   2 +-
 apps/terminal/views/command.py         |   2 +-
 apps/terminal/views/session.py         |   8 +-
 apps/terminal/views/terminal.py        |   6 +-
 10 files changed, 97 insertions(+), 115 deletions(-)

diff --git a/apps/applications/views/remote_app.py b/apps/applications/views/remote_app.py
index dee6d50f..5576ed3b 100644
--- a/apps/applications/views/remote_app.py
+++ b/apps/applications/views/remote_app.py
@@ -28,7 +28,7 @@ class RemoteAppListView(PermissionsMixin, TemplateView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Assets'),
+            'app': _('Applications'),
             'action': _('RemoteApp list'),
         }
         kwargs.update(context)
@@ -44,7 +44,7 @@ class RemoteAppCreateView(PermissionsMixin, SuccessMessageMixin, CreateView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Assets'),
+            'app': _('Applications'),
             'action': _('Create RemoteApp'),
         }
         kwargs.update(context)
@@ -66,7 +66,7 @@ class RemoteAppUpdateView(PermissionsMixin, SuccessMessageMixin, UpdateView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Assets'),
+            'app': _('Applications'),
             'action': _('Update RemoteApp'),
         }
         kwargs.update(context)
@@ -84,7 +84,7 @@ class RemoteAppDetailView(PermissionsMixin, DetailView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Assets'),
+            'app': _('Applications'),
             'action': _('RemoteApp detail'),
         }
         kwargs.update(context)
diff --git a/apps/audits/views.py b/apps/audits/views.py
index cab4f1fb..8c9b6467 100644
--- a/apps/audits/views.py
+++ b/apps/audits/views.py
@@ -248,7 +248,7 @@ class CommandExecutionListView(UserCommandExecutionListView):
             'keyword': self.keyword,
             'user_id': self.user_id,
         })
-        return super().get_context_data(**context)
+        return context
 
 
 @method_decorator(csrf_exempt, name='dispatch')
diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo
index c125e16afe9ba19093777fd05ac950dcd0aaa06b..c4e24380b3cf885b4f8afcd4e1406bd158425e35 100644
GIT binary patch
delta 22237
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
X8(Vys8MM_eu}{&6t!1<MTn+d?lw|9p

delta 22348
zcmZA82bfOB`~UH?c3E~U*6OS5YRl?f*hIAGgs4%zy6B?!C!)6qk0=pDMDHO)2_bq-
zl;|Z&)aXQ8{_oGu?RUBU=ej1Zx$l`XGiS~@&px}p-zn#Vez*|iyO28Q8;>J*kmqH_
zn$ey&DY54buAr>v{nFU;CgMgMh*g?+-t0u4w*$u!w`}HlU*K&#7T|eZntNU(?H~S+
zn0&KVo|hU6xAwebSP|1=EllEhKCcaxFcO_G6#HX39D#Xo7UsmA$lAP{W@sDF%SK!P
zS-V#Yi(oyB!x8u%ZpXa%60>5iww_lID`6Yv_j*yuMdBoCh4FX+gWI_U{euz250Mpn
zN!q)e3d1zSu^5cyFa=gYT}VSrj;+n^sBs2k68u^+zc-zVc3=*s#O0VCx1a_%j)C|$
zM&UKoLX&iG3rU6Au>z>Au7pXk5k_K5)RqrMEo_Rl&p}^y5{sy4Yxkp`fjg)ZlYQp4
zHWvmH$6_ihin{WOm>3&l2(~agVmNVc)CG+~?wU6Zb)nBOHwJfP|8;K)cJ#dN*cf}^
zUaW_4ojmUooMc`><x6#@;5gI*c3=|Ri`uCpm<Nwx48B73%h|<UXe?GDuGxkC*TXQG
zgjW0;CdH%XSqvq<iplXl>Y<BA-ODUp-4zwVAmVbUi7KJ`S4TY)jZn9!J!-rm);`up
zC5*&0Yxog!60b&W=?T;Tm#_fd!(^DHo0}j8)xS9E)-*xgx=yHPXcX$+&%sQ%4s}b8
zn7)ftQjoZZ+QQe?keK_Ci#RQ6#br?os)E|$dZ=fjA?myqs2ymBy7Eq_iThc8B5H@H
zpf2D?<aP9UE2*R;aR>|Jc~plKJ>0+<P!nfE^@~MKTn5#z0&2@^Vi?vlTcWnS8)|_g
z%?bDeu^&_F{V(~s+kuZz_p|}(N;;w@>W13NzNi7eLQTBD+E<|_*nrxptr(8`F(aPC
zRQMD#U~o^jgHf1F?|)8Ju%KDmtYFqeJ(LYm1N{&6$<_lk@lw=6*PwQ2BdY&CRR5!>
zdw&J>y1zy(ESgu%r-{o_DTtM^5cWpxz>lb{U4q)$Rj7OWD{8|1s9ST?;`68puHi?R
zw71)dI;fp%g?c9Xqn^31db9sZ%q9_mYt22VtvZXkqQ|I-gZj8Q9Cd}!sD;F0YAlMH
zs4{B7&8)o>YQmnV9T{d$>BIhOfcYfS;4;+2zo7;^jk>3IPz!j5>Yuo;GYmCwT8nd{
z7M35?zXa<13Rnzlqi)%ksD+I6QPKPQEoukWqXyh>`O~O}=?QAU;C}95OoO_0`7te)
zMBU?>m<~Ijc3>!Kya}lDXQ3`^G3wU&HdE1+??z2@7PaDkQ3F4>IAwn~P$cT%i8U*s
z25f;k?{mu!F{h)(U4t6$chtnEk)8B;SE*<#?x40N9(B)y2DmFogSyh}s0s30zBFp!
zk5E_G*y0YThj#$#iie_Z$#{#WqQ;qrsr3G@prQe`qE>bYwUwtVeuP@UYt(>A2f6{%
zq85-9^-L5-Exa`9R#rt_P&3r6XoCqmgz7g0Q|SGlNJT6D4t2sj+=7cy1GgLGChlqu
zL|xHn)I?un!t07!=n~Y0ti>qYiu&er5v${CypPoev;P{X%n&y~MbrYSqE=i7H9>Ps
zSUFZ99)gj$3)Sy$)c1yaSOJp{b#Wd1khlwKo)xGIT95i%**cW{*Tc7yL|#0NdPoA<
z77d&cwV)W(Gg1(BW#v!<RYwh6&uof$h})vJcp~cIoQ>^pHRi{3U$_svieHe>z3)jv
zugx&j%4VRhcn)fUrKkzlq879nb>0qC`=6-u&Y=2TLiM|Wx{!OQXD1$`Fl3mE^ZBS~
zfYPWF%A*FTidw+OmT!hyU>j8bf!03UoP@>6&%%QE2S(!?)Wp$Wx`h-(J+yJC9rD$t
zq6u4|I=07**b8;<C!!v%d8m855Vf%1Q4iY@)Phc<uJkhMy!)6QgND0XkQudOg;3*t
zfQ9t_SEQm9^+F9i5;f6eRL7O5iPl>DD{8_Ws0ANDZT%@!zYCZfZ(t%!Il`G5vlFK^
zOJfba|4pfAs}^BH+=taLYNWf8PN-Wm6t&Qis4Jb0x}pWBhisj>2eq&>=5^di{1|zo
zy_KW*`i6N&b0N&{RiTm?KgJ+zXmL|yi@a7CjFVAUJ`*+Z52!0%V{S$*a2IMpCsF-x
znU7Ele}#HhLdLNF8lW5%y;jvwx1c_1f|i!=Zux<jl>8{nhm%lSy%}}>Wz+@yi+Wuj
z;&Kce%eN?8je(eLoSP@dIQCy#RfvQpj6>~24Gh7$sI6~?T6r7PTktuC;26~Bg&&jR
z5{rLAJ>7dz{ZFCBzlR#{H3nni@%H|Qjd%AfGwSKhi~59nAGMWDP!CTR)IgI^3!j6b
zxC}#Z1L_KQU@qK^x}ZDO{t!cn<54@8%s0WESQvFH%A&5Mvc<Kny)kMbZBPs7i^*{$
zYT_xDpN+bJ<*3*1H`EoMvi6Iphy5;Up}tfT-Ib<6z4wJt4^ef@fXz?~>VtW4DC!Cp
zqb6F1x{|%91>Qqld7`h}Li3=Wg;J=6R5j}$<M_OWRJ28{QTOaK)a%h7wSZ~nD%8)4
zy{LPB9`&$2LQVV(wV=>R?(-uXW+jfpY}nKsgei$<VRF6y%cyAUe?bkn19k8BpsxH1
zCdWJ0{v5TnuTdW`>ArU7XT<l2bD%!JnxoDih^cTm>Q+rf?eJWT)ce1NiY7i}9gd=Q
z<UDH2uAol1g{klrX2P(^ZUK2vPjf!h1jSId<O9^g+o5)-C#JxWsGXdOzLZp!P*KN?
zSPXZg27H0K*NLXMtxbWtqU@-LCm*U`Axw>>EMFb9klLvJP0ZG)c{*bl_MgK3>&i!w
z&=rqIUGZep05ebn%tx(!ITpgrr~z)H?)h^w%<pbZH0s%T54B_U%r>YC?v1*IBmC@t
zIF;{6=>1-4{)w9KF&4zYsjgp9vl42chNx$yz4;|-N9LFdQ43g!y1;GbE{q^P;G?3I
zUPL{F&rnyK=o@#BLs3tAZcL4FSPtu83{JwFxB)-KbC?!OO>^ILYN5^>h(&QC>Vkel
z?Y!?E6;1fqj7M#4lIiZ=r$Jp&6zYoep!%1_bXXp>@Wz&JZE<JRE$o9j?+erdzDDi%
z@5lmt-U%vcNSwiXcn@_&6=t~iwgc*!7>#;(zA|T_wsbLS0V`2k{R^u9KFolBpf2Dh
z>hs_Ms$Z&^+F|a0G!+dLhdQwW>V#^jmDaU<8`Lw=3H4SCKutUnb%m2q1J6bETaDWK
zZKw-8iaGE)>X`}s)_uYCVyI|k<x%&pB^JWIsEHP$2K)*0;C9qPZ{er-0M%Y|ma{49
zf;yoV*aNkIfmj45q55w}pYGuwRPy6>)JJcc@7%pDin`a;P|rj?)Rnfx^w<N{e++6t
z3sDoVuy`%%A=`vn$Tn-=hx+_D@*VrH6OWP5y**<cucIEG2dEu*h1$xbv)wI;L=9K~
zi(x6ui=8e14Qj!2EnZ=6u>5w^g&ol^2Dzx5vczlD6$a07Ta+HPz}y&x1yIjKZA{n+
z)IINk8F3iuLS|WhG3q_vh}!Z)sD+(FUEnRBC7z%L3Y_b%I1Or`D2&Adr~w+I2JC=Y
za1hqPnW&w*iQ1_rsPmJ4?-rUCbt`hA-ilbPguaSYBB_i)-P0dYTe}6d(%q=H;W%mm
z=gixvhxG+&CsNIG4_OqdUkTJgE1|Z!F>0JvsD*WOvCr#k9fqPFp3$fUOhjGLbkr@F
zZ}C#p6|6_?*b&rLUPAS|jhgVG#V^f7Ke&F$Pzz3j!FvC5Qqh&>Pe}0FFzN~_U>>ZC
z+PZ<Lem>L|Pc*;BOvGzZJ9rp%h5w)~<PmD2@u+7f#eBEWD2!l!FNTV?vMlPJ)<s=;
zchm`kusTk(_!MdZx9}0hqb7LpqnkL<0(Ye;Q5TX4HC|rS&Xhnc>;p{r{lBUu>Y@f}
zirUgHs4MA*y7Cd27^k2XJOj0mm8gNYqqcTGs{a|(csEcJK1cNrT<9(=-9q+1ibNg~
z+Tv;$gSAolzUFk)2h}gAdw&Eo;|<h=i5EH3qVl=01Xe)pV1LYx<4~W3D^Ry~$0GJW
zn#yewF&MU(ClgCx1)Pg|O)jHOj9J2O!Wf7B@d9SWMoZmidtcl{{4J_~gJpb!#!lE9
z_n>ZZ+;aEUed?o9m_%RX9B&ck#(FE<2g(4{!{x_<xDxZ=c{9mMx9~z(ihLt{4<}i?
z4}*yVR=FKch9Sf$a2WbBQh7pU7Ouz1tKEBBb&cD?W|)io6fBRwm@lvZaokVt=Xxj9
zmCnY=_yXJDgthL<?_(?CcI){0fqU>H=J)da?0$-M$6_?>$I|#3Bd`>!(mk(%dcE3W
zIvk98s{Q6%a~Y-}zXA13?Z!lS00Z$b>b#?vMDPCvD%zrJm>mB_UC9g7K#exI_V$>J
zxEpGK{+Jp^U^q_4B)9~%#j8<I|7O%D>_JS6H&D0qH75N1FXJz6fIO%LltB$#1@&-!
zis^9xro+h?hKo@Hu15`c(DK(&3x9$dFKDCt84`|KSRAIrD(KUdG@_y_Xk!h1P%9pZ
zQ8*9vH19wy>?CSIw@?Em;*r-lsZrx(wYV^9XXDID7)M+awUc8vvHzW^_(^DjH>i7-
zX0sbGBkD?Xp{}$T>dLC225yX*uqEos2BG?o!ge?n^Wh6?&%MQsTLd-E`&+pGdgyAB
z(8KlxYM`m8dp8$#MXNCb?m%7fS=1HZw)j6(|KMNw4Hq+@uCNtqL7h<x8GxF20p`GU
zJ}T;X3bnPDQCIW?HF2t~ZeiImDRD{E)|bPq*a#D2U(^l_M)jM5TIeimUuLdBJ)|2@
zJLua=MJw8k+JO_O0dArmo`<L_eS=zP=r(tY(xPrzCe*?U;XJH>Yw#-SR!;lPjWf$!
zj9S3Y_@3VXEmR7Uc#6@OYdiNBtKc6v8T(@E9qy0Gr?EV7rr+KB+zg8nw?u8JA0u%C
zYMf)J9nG@S?NDjd1=q%e_rG~Ug%1|Y9KgLo4LD|(Ti9mIMtlpk10lQJy-tJL;#{bm
zD}lqY8ft<=7=`CB3C3f>>$t}~W8oO?qaiaDolp>Kv4Hnc`SE*M6o&5Oj|qH)^}qqd
zhY#=%NLckCf9s?F0Sush@?ox;yq|4Lg*E<k6E#EKq7E2@15vlshY3Ib$5RO>F%`4m
zLd=LeQ4iGx^D$~CLXNs;Bo<?di<vF381Y!ljlZI{{wiwRH~0l+ImREjaLzHVQ(JnK
z#38(k+M+GTo%>K*_ZOzd^OnDF`FM+iPPqQzW>zzwSsFD?Wz>8%E#L42`>YAukkI?x
z!y3k-PMC(8csA-@ueSEz%tM%#{27byoAGAIU+%p0sCi;6E^b!xSwnrZ6>8#cW*>8~
zIUIEb<4^-mHRqugy3*W^?TC+~`j<KBeygs8d5Ak=BlJz7(vr$8EQd8tImep^%+S;B
zi$x980!N|-o?!7bj3J(F?y~&9n3eovEQ1keTwEI?^qhC4qAM9@er3)w7b6|LpUr)!
zkJR(1h1@nDn$J<=d1swrW+pQRbt{WwGQDS&sAx-STZew;2+L2lc$2vYbw$T5euR2<
zymRgrWHj@m^5raUY<5O1aHwQ{Z#)&PXa;KF#nxdD>I#ozAf82S`9*8LY3)xfjyFTj
zyYteco{6le35#GfeqeD+^l8GbR5Z~9({CNVH5XZaow?cEVeR|OzsxJvejl~)|F9>%
zwDxWn+=2#OVE?tkF(mY3cNXf0&qCB|waVOux`MN)9k^jWwEQd7ILR)$EzgXKOITbL
zwUAb*^V^x-FZx_!fF*{T6Hz-d-Qqb|oOrS2&s+W~>ek)0{A<)g6JK%*NR5%ixhyV^
zT0niwi7k9oN>Uk)nsAf39o2C!YQUqY_KOz(WAP)*P5uRT!|1<V|F2OyFx%qQsD=KD
z+Sx;<?+O)le2!Xa^2=_3JeaVB7FRVJpcc~F;*Mrt%MUllS$;BV;yD(twD!#|@AGz0
z(Ta{*ha0FXe}bCmjhW<%%ZH(MBt5D<r<u?4MJ+CeWoiG&;xADbG#0bscL}kN@8?uB
z;9=`<*1T)^fUEAr6sUzoqZXVGwPWS2y*X-}9_A2poV8E4c&WKTdFJ<aTH>S<#8)l;
z&kVZep6YNj7S*pJYQl!7g|sn!s4bsm@iNrH_h2yoY3-*m;otvmTH+CEz`%dp38_$D
z6f&XmxlscbGb@^(U=s3eQ2jcY{mc>OWYogvm}~yw{nrUQN$8{UPwRNg{Lc)!?j{IF
z_0M2&F4WJ0{HTSMv3zw@zq)1%v$NSBlh8i$I{UB61QIjRZw&=*xB-fr<x%}=qb6!#
zaXV}8Vh%vvic#hd_#W|A{1%^~7UsX{#{1r9l|`tAm8c0eTYLb^5T8OlbP=~)zr3ie
zEQy7&n#BVxo`_oTR&$qm5W~qI!)WwfqoRR=Z@Ymrp-zlJeTgiH$*`Q|tDzS9vBk|X
z2XR}=k3seS2J7Hl%!BtZ7Bk#&=T~(4ypO49!scdM)Bv4b2d|IizqEL)#nVt%G8@%@
zmE|{La^l}CK7_i!<CedU>i;-F?*D5lT0qi&ohi+9sE0C(#U(L0@%v_Vj3I7>1<{8&
zaiz5%GcTcT>Ax1oqvi{_%XoVK!>MG!tf&d&P#qeewyYUy;?Wp_Q>}fj<rktJy0xfJ
zwj-9mi<<Z)YP`^U?w+Sc?MQL-Y2YeUG;w{@)^tUk(9axd`H`5C{3OfIMJ;F{>ijjB
z2=|+Zupsdt<{NBIT=2g8{y*V9?|%gnM@h8Dv=7|M2BQ`*$>M3Kg)YIAxZd)+Ek14S
zH_fN0*E#SZ&k@c>y*<euxpA|ZxgXj4U%(Q@u{<5iq9z<-`EeFcws?-Y!1Bw@jh5eS
z9zrenIO_YuRm*35>^``nd{i`1L9?t`6}1BmQ1_}C>V55wdfg_Y&ifhFZwIR1J{*td
zus(kF#C`Mm6?Ln&n+GwR*mshO2DphD@V*(38ZhLk`&}>#s=X8{U&-P|sC(ZQHO>%=
zM_Bu8%P&PeTWe4|vf1hL4p2!;;;i`qH9_!yZs1I2F;u=LY9aqKyPzf>fSK?Mi)UH;
z59TV=2hkRbuVKRX|A$nP((uX}5<hbjq()7c&EleFIkTqO1ocVT-t1@jF{tyuLA}O{
zF%XZT`k$0~|8G#y);vdTP2h9)a7189;%HQRW7LVQF&Fl-cqZz~mZEm%7)IbF)XqFM
zUs`*j7cQR?ed>^oidLG%ENoUpEvTW{9@W3EwGTnvy00+<E;P59r_2Yag@wFy^Q1?`
zu`hZ5HDD<c`Y8PXb*1gi9_BzyM}7oq3umDQn2Y-SSdRMWy=VC}uiQk@s0%2LT3{u!
zIVN1lEB0Rl4Y9;Hb24g2W}vownZ;XB{g0UE%$t~-{8Njw#JlrjQ44tA;##QlTbf;c
zRLYSUh+5GmYuIicM(xO1i?5;jJ;X?SZgJYzZs5#jUb7^se?^O{TinR>wXjM%vy0ga
zwF3iDA2<_HD_>)7we|z3E4*OwU26|`<F-5n>bw}#Ls=Zvzp88Zd5x*)A^IHEakOjj
zrdqrLb;2f#_oJ@-r1=PSg(<y&1k<6$$zsM@zLdoupf0RNLhR#rFl*?HT1bEE@RjA~
zp&rham=*s*eH1^z%9uVNAYp;cQSDt(3z&d<O=qGW&TXiLUPax~+miXcCzg0)CQIZ7
zh(N703Uy*J)WcW?H9!s2L=8|MV683R+46l*3;NRHd8lz#qQ?CheT}K?rJ@gz=)i!4
ze<rJrnxHFcf_~-*)BuyMeFo~*{9yT?P_NlWi;tofa2hq?GmArm+<CD<0q*@TLqY?W
zM@?AO;szEsGdr4nQ3DP)r<qI4E#?u_)?Y>~EI6?<3bnBJ68qdr8j~nO;xp70eQPd7
zowy0Lz+*TZ&!86CB8jszs=YsI=X|Jf#-cvLXQKN5fm--^)X#+b>Zl1KgWbbd95qmN
z)CqOX7S`U`9ER#Q-JD}CFqfkivex2X&7G)m5177FR=H+AG~b|Bnmnm98|uWOSRBh?
zUhIwfVll^DVy-i{p>|?FYC&gEZ^cy?`@E23t|5(?6?J8KFbft!O<c?T)a-y-U~h{@
zTRhcVWcf{~1?)kMd(!e366F26ZHZ@Q;t+RBQllo$hnlFg<!fLi;<nbl1U12Wi+5Xm
z3^m~u)GfY+pJ8CAi@Qj@|0AhrqB*E7T829DXUlIf_n{W@m&G^Dr)FSsH%=-u3u?Sr
zi;JViEpKsE^d%<Iz#5vO?qzH1&=qxM15sBn4mIF>YhQsHaFe+m_2YT3#RpOSk6{Wt
zZ}~gsqvZDfzaXI<2ncg;K?)2a&WXzBMO}GGvl?na&CEWieqWihQ2iI1n^6lrZ1D+H
z{~KYv{~G9tB~qktCq`l;@&zp(WzNJa<d<9gbxJqTeAJb$ws@1d$2@NSZQeCs`mB;P
zl^ZB6YOAuNw!R1^+%s#hikZnbu(+q`GbflcQRgkRc!jwM^}}nAwfk;T(P#gC%#Inu
zopGq0`JdSzHSuKB)~!Ts@n-WdYMj4OKcqrZ2PFJkQ6%c4wk)dsQ`9`eUF`D~QhATW
z5iE_#A_BYySOGQB44j4wP`4y5ja%4Ma|Nn>H)`VMY28O|H!Ps@P(Rj>p}s@j#C+(b
z3*i52%KMj}ioQ^MkJ|Drs4F{&+JTD}KeP7G^lqR?tV(-P)c1fvsP75eQP09n)Gc^~
zx{w#x9fLCjc)PG4&d~e+enz*oe_>(bN0=XTW(r97c3T%eBA$vR@GNSF!XpE`_pt*e
z>=5dAzBv9Bvo%h}CioaX#oAc{yqdTK8{<>-m8DWAYe2%EO2?zFd=I9<GpJt@@0kJF
z+!aNjt|*fkV-~me@~F?1s;JL{+Lo_}`h00(aocRX|C+EfiGes2L-DzFNF3$1GP#)!
zb&H}<=M_e6aYfXYSGRn9)I-++)qj*Z4YlxvsPorGb$5x~*5MfHDZgSJyl6L21nR`1
zsE4T>>X~U^`OnRv=6KXoKEvY8=3f7U4<Zu&=5mjWmhcMol%>q>X2^remq0zPRW1KN
zvkU5y23R~6b?MX0@9{(8rKqjBji2B{)VLqzu+Q8kIb4U9s7vdB>d+fC!Dvj1(@_(A
zkGiQ#QSaGm9E#gf@9l><-8cixQK)hJSO({##=nr$=LURW9bTHDx!m4HqE0M=nz+2h
zHO!`{4~)*Jg)cCFLcQ?YQ0M=P`lySy_H4ObKEIEOZepAz>Y1%k6ZS-{bTH~0$RyN6
zD=fbWwY7&({g0y_^9!hcmo0w})$h6Gy%^W-3!|cjOlGv1$1H>zs3hu2Dxwzj2@b&a
zs1J@ysEJ$VaSLgSI<FgQ{6VM>lrJ$Cu0=ljeBNm)`UFUvHz48vY1jgr6Gz6nkF)_8
zN4x_y!5h>c@&fa@$G#|PVYN|P-oo+|Pzzm*TF7Q|FKR(2FdfgIcaF*jBp&5=A6Z2U
zxR0pOs4cyW8t4vcpf{)qlNaPO6Emaw{fs$q8)||p<}K8D4^Y2#zDAv&x=?_p`T1Rn
zuQgoSPD*;>zXRO=&@U_TAnMccU;5Ob?H6Jle~{C0i~KxXMrlQPL>x??y0jlc{rtX+
z9mxC1^`Q(Wcbm8qMe}<>Bm?=5!`tI+AvqC$C7+JGj+MxV)Bha<h>KIkTP8x^kL>t_
z^UKp#fTH7X{0TR4{=dpuUTqvcFN%|Yx8xyC?m@>l`1aUlZK33Tpwy$G$~*1+0P@aT
z+#S~upL=JL{noaY^U6`bhqdts`fN)0Hz*RD{M#!=<o(RLX0q!U&rr+hR*oJzex>fC
zRPe`FOz%5Q?*sJETX2f(uf)kXb31Vn;$FmaY($;?-#hjEwC^J~o!ooWbsS?Xe%k)u
z!4JBGqYHjveUx}kogcB?yl^Jdn-gP=73mm6$wl0cfpaIE?*8{U56Iu5Y@och{+;nK
zeRfdJTTZ9&e0nW8|33BAl#$ef`~j6Cd}XQW=;`owaaIef|HN6_sHdTieo%jaPbed8
z<X+^eTVGLwwkX>4@mY=fUCOtVDdg@l*4yLvxAh<%mN{gT(rGxIHedxB+fgb~uSe-b
z{vj5kygjn8O`p>z{%r!&&`(Ed%x-nX3+NX}{5N%e?t3qBlZ~}FFdKj6BQcl6XEg4o
z=!oWoyyQ;#i+mK}%VrPHZCYk0w6i37<|aQ*XVLpp%0$|RaaLE#Uh2Vk!1^CWeM@>x
z|419}ecHdGoFR9G^Vd+`9_z_Xqis|mr`4w6<U5V(^cAHt9dyj1tu-fnNnDEh1j}Ei
z-j{Nawwe?jJ1JSLeUd**l}O(%B0eY+{ujiR>79t>=~GZgl=a+6ds0dS?H}4mUnKN!
z|2YFE$(N!`v2)b&8U3%28-kr(S8o;ZK1wdv&%dEcn6Dx2?J1kdzk3uSm&p?K>F=}p
z3F@CxGE=^I=bR+;zey=Ueko3;e^J`^P~V8(P!`hm9%T?YJ6e0;7E~s)n|eb!%)#B9
zFvi*{VwJb2m<_B=;ZV*gLs>{}C+g_v@KX2}RLv2P&A+c|Hs5{PE>Na0wvNTf??>J|
z&ik2igSL;zx1?+*)=`W0u2#Qb_Ha!J|7}cr05>i*QE%EOTc3Bjc>mC+;oCi2@c(tt
zH|GrGn$c+lMZbG^b`d`k>-ZLPTW+15{|uLsYlXR3z(mXU#BVvLEa$YQy^ozYN%!y>
z!6+MaKAoCSAI}N5C{-vgt#b;TO<O_yp8PBN#-omV<}cJ!(%yv<MPEPaXij?{SM`pN
zOU&Z_B|fNUXfcUX)|iowKiObP)wKbF@HYxy@Vsl3jr4g;=}GP%jI(pzaL!NUcF?C5
z>L^3oZAuuqLBwY*A56~IjsM&w`2<g>H%AXTj3(AG7>`mOQ=iEIdnh5+ravR*wfZa@
zw24`b{6PAaq)!HNWr+)*zRFy&KK<FCHZ`)u{zkvl<Vw;fJ3FJJ3^^S`v8K(DBgntB
zMsD93x}GOJ0&CIbCbq$=n3K~(ZHR-!sW`Q=4K)Xw+ECYMdwVn`KcAxCLH1%I+7?ju
zTZiw-EulUG&jj+wyr40L@;hZDNgZ+2n^RvzX-XVSIcsf|Xw$D+!|~nYDZyA<kn;Jc
zud+V5sjnxOhmxE+e-iN8CbaoS)=#O&<_6hiWPYS9C+<v-7UXVY7_p9p)Cb}a%4OO*
zD9Q0F`4^OpHd_;Njfk5Oe@;CqeTPz_sAr+fq+W`)G;D1MMR(pSOtK&44^GUe1V?pZ
z9r?&rq2%YJAIYWnPplQ0_a&J>Y|54NYDfKJa&M2Ht)ANdXRT6|A93Cb$`Z1F*;(~%
z{8XHBkorh$Nqa^7$NFfrvy`#KQ~kASr_Z~Op2sM|=&8S3Ork!Y(uShrLp$@ee`4+Q
zzG-Cn1BiDVS5xj#Plns*)t~yi#{hEUNaVnjY)l_(e?e|9=R77}g#ncE^jSkbx%Fv9
ze3<%Y<l0*<TOz*k1X}PEzoYT(ae{adCq*++V(Q1KucO3JUrYI#a+=Pwur-cg(ojlu
z;#kzt(LbzCgs(JF8?qT0DIV+4vK+r>v|w_-6Zfb79P6skreha&!%LKpX+Mr{k3)=^
zp7vN0-%u}rgNa|!Pe(e&-A?^LBKyfX${JiVuRie_N=eED1}KW>7~m!Kw?{eZUs0~p
zreh2Bqx89hZ7ByRI_{dUsXwM~Tl(CmJWV*yKjq_ewLYRcljdQR)HLNI?v~KZw?|?f
zgNgN*039{0Z3jNL`VI15Q2*Bd<l`9MW@@#`Tx0Talpd5}lw{=JU`t9)>RlPVH2zGf
zMee4}c9C<FQI93xiTXwA<EaNyo?D-4CcoWzW60~6h^6(jv?`TiG;C$iIuspA+4c$K
zs#|B}no$;0GQN{j{u9pmSQU;6)W^|&g!-SDhcU`i7EvFIy(#b0_PLEQSHEl~BKaRD
zR-%-pu^w>~>YX(JP9@iX@--y`ZGFk-Ab*N_M@mle>nO!23n)59)8`U>#?amcACaqy
zDJeR#lV3zVt&fhQNjxMNP4av~GjBfmOq4KoA`xxR$n&RLub>Uk2wzctu~?@)p#KAm
z#|!k`i~Q9!;aEX^I`xaV9mkO64?Ujd_fAr>s=~2|Qo{yKPwpGy)!2Yik`w--WGA;3
zb*#i$lJ-#Qn>lwXmLQjc#lNwBe-R(1PXUXMxH<gOKM60;jQabO<+O7O{}js~wuzG{
z;J9w*sJ_B~;*%VC&(U)NQD%DOrZo&dpcGdZj?by<*y4|_pT6>ai)z!esMRAFVK6;r
zV0z}MZ*yErIFFx;<li0_Ip>mpNd5HLb5hd)_pJ9?g0EGqcb-K4Vf7<;uDuV{jiWKv
zqhw`{Wt>%zTn5djM&i7ZBNe&i{(uG%T~E`yAuX-37)3`u%3SL6ndb&=Lnt4TD@>e;
z{8j4LDf@_@(e@j;r<8@{{-G?R{x@w;sCTFS_Q>KN)*yYyNLsp(8qS%&P}i{)57YBE
z>aWOWrbJLbj*lq4C^|0DZ<nijSLr{LdVfqz`P2H;Bv+L3r$3-!HeU<Q7(&TO>k6_T
z(Q^y#rX;1zqfN(b@;dU`D5@8yEdyT0W0-@|j(+{DPfz@Ywl+2f&E8S!A6WbDMEtQN
z1wq1dPh&@$L>=4H@sKKZ3?%ME-}Ubd7D9cp#j~*~Wr_bm!w6quYBLz^OPflAbRdq#
zkau#*|3^HDQipRsA+A7)q;C=8w3tNlK-|N>h;?khFyb^WO!#j!aVpB$K+iwCQFyKI
z=o3!-_BhQPACr56jmXcWd}r;2==49UAEEtA`ekO$spJ|{PWu0D6q7MIwG*_&(&O!+
zf9Bcak8T|CemYuL5j~*C66(dR*AC*V)Jx#MxE?ps?+$%>Q`S;?t^K@lM4`0<M~@Bh
zznNSnQO^!*OHTPdMQHo>T{?Da7uBU>uik49e&05CP?0jli>xiaCuRP%agTb0_!q>-
zCAq$N#P!Xi*ItUB8J7I|!p+w=ZM(YV+Z(H9`|rO>vtdGLK<>ySH&*_5W7V(?KjjX%
H6#V}Hq}eue

diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po
index 8feb8f95..4747d760 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-06-20 11:41+0800\n"
+"POT-Creation-Date: 2019-06-20 17:55+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: ibuler <ibuler@qq.com>\n"
 "Language-Team: Jumpserver team<ibuler@qq.com>\n"
@@ -305,7 +305,7 @@ msgstr "备注"
 #: perms/templates/perms/remote_app_permission_list.html:17
 #: perms/templates/perms/remote_app_permission_remote_app.html:26
 #: perms/templates/perms/remote_app_permission_user.html:26
-#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:14
+#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:16
 msgid "RemoteApp"
 msgstr "远程应用"
 
@@ -558,28 +558,9 @@ msgstr "连接"
 
 #: applications/views/remote_app.py:31 applications/views/remote_app.py:47
 #: applications/views/remote_app.py:69 applications/views/remote_app.py:87
-#: assets/models/user.py:135
-#: assets/templates/assets/_asset_group_bulk_update_modal.html:11
-#: assets/templates/assets/system_user_asset.html:22
-#: assets/templates/assets/system_user_detail.html:22
-#: assets/views/admin_user.py:30 assets/views/admin_user.py:49
-#: assets/views/admin_user.py:66 assets/views/admin_user.py:82
-#: assets/views/admin_user.py:107 assets/views/asset.py:52
-#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171
-#: assets/views/asset.py:199 assets/views/asset.py:226
-#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48
-#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82
-#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136
-#: assets/views/cmd_filter.py:170 assets/views/domain.py:30
-#: assets/views/domain.py:47 assets/views/domain.py:64
-#: assets/views/domain.py:78 assets/views/domain.py:104
-#: assets/views/domain.py:133 assets/views/domain.py:153
-#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72
-#: assets/views/system_user.py:29 assets/views/system_user.py:46
-#: assets/views/system_user.py:63 assets/views/system_user.py:78
-#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68
-msgid "Assets"
-msgstr "资产管理"
+#: templates/_nav.html:33
+msgid "Applications"
+msgstr "应用管理"
 
 #: applications/views/remote_app.py:32
 msgid "RemoteApp list"
@@ -1182,6 +1163,29 @@ msgstr "自动登录"
 msgid "Manually login"
 msgstr "手动登录"
 
+#: assets/models/user.py:135
+#: assets/templates/assets/_asset_group_bulk_update_modal.html:11
+#: assets/templates/assets/system_user_asset.html:22
+#: assets/templates/assets/system_user_detail.html:22
+#: assets/views/admin_user.py:30 assets/views/admin_user.py:49
+#: assets/views/admin_user.py:66 assets/views/admin_user.py:82
+#: assets/views/admin_user.py:107 assets/views/asset.py:52
+#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171
+#: assets/views/asset.py:199 assets/views/asset.py:226
+#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48
+#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82
+#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136
+#: assets/views/cmd_filter.py:170 assets/views/domain.py:30
+#: assets/views/domain.py:47 assets/views/domain.py:64
+#: assets/views/domain.py:78 assets/views/domain.py:104
+#: assets/views/domain.py:133 assets/views/domain.py:153
+#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72
+#: assets/views/system_user.py:29 assets/views/system_user.py:46
+#: assets/views/system_user.py:63 assets/views/system_user.py:78
+#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68
+msgid "Assets"
+msgstr "资产管理"
+
 #: assets/models/user.py:138 assets/templates/assets/_system_user.html:59
 #: assets/templates/assets/system_user_detail.html:122
 #: assets/templates/assets/system_user_update.html:10
@@ -1438,7 +1442,7 @@ msgstr "日期"
 
 #: assets/templates/assets/_asset_user_list.html:61
 msgid "View"
-msgstr "查看认证"
+msgstr "查看"
 
 #: assets/templates/assets/_asset_user_list.html:63
 #: assets/templates/assets/admin_user_assets.html:61
@@ -2317,8 +2321,8 @@ msgid "Date"
 msgstr "日期"
 
 #: audits/views.py:85 audits/views.py:129 audits/views.py:166
-#: audits/views.py:211 audits/views.py:243 templates/_nav.html:87
-#: templates/_nav_audits.html:22
+#: audits/views.py:211 audits/views.py:243 ops/views/command.py:47
+#: templates/_nav.html:87 templates/_nav_audits.html:22
 msgid "Audits"
 msgstr "日志审计"
 
@@ -2984,7 +2988,7 @@ msgstr "更新任务内容: {}"
 
 #: ops/views/adhoc.py:45 ops/views/adhoc.py:71 ops/views/adhoc.py:85
 #: ops/views/adhoc.py:99 ops/views/adhoc.py:113 ops/views/adhoc.py:127
-#: ops/views/adhoc.py:141 ops/views/command.py:47 ops/views/command.py:72
+#: ops/views/adhoc.py:141 ops/views/command.py:72
 msgid "Ops"
 msgstr "作业中心"
 
@@ -3000,7 +3004,7 @@ msgstr "执行历史"
 msgid "Command execution list"
 msgstr "命令执行列表"
 
-#: ops/views/command.py:73 templates/_nav_user.html:22
+#: ops/views/command.py:73 templates/_nav_user.html:26
 msgid "Command execution"
 msgstr "命令执行"
 
@@ -3825,7 +3829,7 @@ msgstr "文档"
 msgid "Commercial support"
 msgstr "商业支持"
 
-#: templates/_header_bar.html:89 templates/_nav_user.html:28 users/forms.py:139
+#: templates/_header_bar.html:89 templates/_nav_user.html:32 users/forms.py:139
 #: users/templates/users/_user.html:43
 #: users/templates/users/first_login.html:39
 #: users/templates/users/user_password_update.html:40
@@ -3941,11 +3945,11 @@ msgstr "用户列表"
 msgid "Command filters"
 msgstr "命令过滤"
 
-#: templates/_nav.html:33
-msgid "Applications"
-msgstr "应用管理"
-
 #: templates/_nav.html:55 templates/_nav_audits.html:11
+#: terminal/views/command.py:51 terminal/views/session.py:74
+#: terminal/views/session.py:92 terminal/views/session.py:116
+#: terminal/views/terminal.py:31 terminal/views/terminal.py:47
+#: terminal/views/terminal.py:60
 msgid "Sessions"
 msgstr "会话管理"
 
@@ -3954,6 +3958,7 @@ msgid "Session online"
 msgstr "在线会话"
 
 #: templates/_nav.html:59 templates/_nav_audits.html:15
+#: terminal/views/session.py:93
 msgid "Session offline"
 msgstr "历史会话"
 
@@ -3961,18 +3966,15 @@ msgstr "历史会话"
 msgid "Commands"
 msgstr "命令记录"
 
-#: templates/_nav.html:63 templates/_nav_user.html:33
+#: templates/_nav.html:63 templates/_nav_user.html:37
 msgid "Web terminal"
 msgstr "Web终端"
 
-#: templates/_nav.html:68 templates/_nav_user.html:38
+#: templates/_nav.html:68 templates/_nav_user.html:42
 msgid "File manager"
 msgstr "文件管理"
 
-#: templates/_nav.html:72 terminal/views/command.py:51
-#: terminal/views/session.py:74 terminal/views/session.py:92
-#: terminal/views/session.py:116 terminal/views/terminal.py:31
-#: terminal/views/terminal.py:47 terminal/views/terminal.py:60
+#: templates/_nav.html:72
 msgid "Terminal"
 msgstr "终端管理"
 
@@ -3996,7 +3998,7 @@ msgstr "账户列表"
 msgid "Sync instance"
 msgstr "同步实例"
 
-#: templates/_nav_user.html:9
+#: templates/_nav_user.html:11
 msgid "My Applications"
 msgstr "我的应用"
 
@@ -4354,10 +4356,6 @@ msgstr "信息"
 msgid "Session online list"
 msgstr "在线会话"
 
-#: terminal/views/session.py:93
-msgid "Session offline list"
-msgstr "离线会话"
-
 #: terminal/views/terminal.py:32
 msgid "Terminal list"
 msgstr "终端列表"
@@ -5770,7 +5768,7 @@ msgid "Interface settings"
 msgstr "界面设置"
 
 #: xpack/plugins/interface/templates/interface/interface.html:15
-#: xpack/plugins/interface/views.py:25
+#: xpack/plugins/interface/views.py:24 xpack/plugins/interface/views.py:25
 msgid "Interface setting"
 msgstr "界面设置"
 
@@ -5793,10 +5791,6 @@ msgstr "恢复默认成功!"
 msgid "Restore default failed."
 msgstr "恢复默认失败!"
 
-#: xpack/plugins/interface/views.py:24
-msgid "Interface"
-msgstr "界面"
-
 #: xpack/plugins/interface/views.py:51
 msgid "It is already in the default setting state!"
 msgstr "当前已经是初始化状态!"
@@ -5900,7 +5894,9 @@ msgstr "无效的许可证"
 msgid "Admin"
 msgstr "管理员"
 
-#: xpack/plugins/orgs/meta.py:8
+#: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:26
+#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60
+#: xpack/plugins/orgs/views.py:77
 msgid "Organizations"
 msgstr "组织管理"
 
@@ -5917,19 +5913,10 @@ msgstr "添加管理员"
 msgid "Create organization "
 msgstr "创建组织"
 
-#: xpack/plugins/orgs/views.py:26
-msgid "Org"
-msgstr "组织"
-
 #: xpack/plugins/orgs/views.py:27
 msgid "Org list"
 msgstr "组织列表"
 
-#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60
-#: xpack/plugins/orgs/views.py:77
-msgid "Orgs"
-msgstr "组织"
-
 #: xpack/plugins/orgs/views.py:44
 msgid "Create org"
 msgstr "创建组织"
@@ -5955,15 +5942,6 @@ msgstr "密码匣子"
 msgid "vault create"
 msgstr "创建"
 
-#~ msgid "Update failed!"
-#~ msgstr "更新失败"
-
-#~ msgid "Update auth"
-#~ msgstr "更新认证"
-
-#~ msgid "Password version"
-#~ msgstr "密码版本"
-
 #~ msgid "User does not exist"
 #~ msgstr "用户不存在"
 
diff --git a/apps/locale/zh/LC_MESSAGES/djangojs.mo b/apps/locale/zh/LC_MESSAGES/djangojs.mo
index aab4a06e6150424d2779b534a47cd2a73051e6c1..2d0fc71a4258fd6cd0e7e6a6c902dec690efceb1 100644
GIT binary patch
delta 730
zcmXxizc0f<7{~Fatrpe#QLP{KJF#dGR0tL#213GOl2}AAU?6N=B*J2lt~L>gfpixJ
z34?`%M8rn;8<2Q^zCD**Uw7Z@-969U?I%tWnYUO$)+kNXdTQKf)`k&3Ka_J!;RWhH
zuh@@27{cCwSs@N#5JxeF<2ZqHxP&Keyu83HO1}zA%`(>NKBTdPfe}<7Q`m?rsEzlW
zr&vV)4vX;toADLP@E2z=N;C>^9?NkNr*R9}*lsb({`O2G!H0KLq~AEqDJ(F%j{Y&}
z#qk=`_=H+GOcb)hS%VS!O*nw<IEIUE{LGE#oL7?l?Vg5?<OOT+)9E8U^^?vtD#J<C
zMst|NWmHBxsH-|e1$K#A_XZXCBWhk@IBy&?`p`mS8#|H2y`s!@9V(otReG&_KnjAj
zylc>WU6+oyfvT(eFA7S9WxarEy`EV$>Wy%!DeuwnHmrimoAU0w3UwtadR)pfdYJVe
q1xMF5S2uD!f%QPRucN1{xw~&L-IY5F&H6$g+4Ha6gPgBu&;JMKs5}q=

delta 701
zcmXxi%`1da6vy#1FBoII%rJvtu&_ZA(=@SRLye?SvbSPqp=38(*+>&hkwn?ZQ&tof
zHkALsij*wXl$Y}TJ>9u=`rP}>JolV?&vTmGPL^I0;XPyY5Zy#9U^alisBsuH8^j~*
z#V5?;C)Q$r$gB>BFo9W|#Ti`1U97=xY(xv2H9-@yE?I_20}qB!1>{l1ETR&wJIfeh
z?O{D$V;??XGrr>jR#1f%$l8KMEaEaM@g=H|J4}+_o|&l9H=N?s^Ss@~dWU1R;W=jU
z7Pax0^9N(BgH$z+%{Yw()c<x+zwbMbofoJAZm@&=_NWQII{%z0j;WK4pf;MsG|r(;
zvVv;O1}fnZYU49h!B?pFKAaV2IBK@Z^Ej4VoBfSh`-2<wd#Ob`p=8wL_gSsd?Wi!d
zORcI7CD$O2Uyu$}9dRbD1ea`l3Vv(&gwmE_ktB508Y!Zah?P%*2VNnx7K-ME$MSun
RxrtoXyRTgec)gLW;6FYyIL810

diff --git a/apps/locale/zh/LC_MESSAGES/djangojs.po b/apps/locale/zh/LC_MESSAGES/djangojs.po
index 8e0ec504..549f1cd4 100644
--- a/apps/locale/zh/LC_MESSAGES/djangojs.po
+++ b/apps/locale/zh/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-05-27 15:53+0800\n"
+"POT-Creation-Date: 2019-06-20 16:30+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,58 +17,58 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: static/js/jumpserver.js:249
+#: static/js/jumpserver.js:263
 msgid "Update is successful!"
 msgstr "更新成功"
 
-#: static/js/jumpserver.js:251
+#: static/js/jumpserver.js:265
 msgid "An unknown error occurred while updating.."
 msgstr "更新时发生未知错误"
 
-#: static/js/jumpserver.js:315 static/js/jumpserver.js:352
-#: static/js/jumpserver.js:355
+#: static/js/jumpserver.js:329 static/js/jumpserver.js:366
+#: static/js/jumpserver.js:369
 msgid "Error"
 msgstr "错误"
 
-#: static/js/jumpserver.js:315
+#: static/js/jumpserver.js:329
 msgid "Being used by the asset, please unbind the asset first."
 msgstr "正在被资产使用中,请先解除资产绑定"
 
-#: static/js/jumpserver.js:321 static/js/jumpserver.js:362
+#: static/js/jumpserver.js:335 static/js/jumpserver.js:376
 msgid "Delete the success"
 msgstr "删除成功"
 
-#: static/js/jumpserver.js:327
+#: static/js/jumpserver.js:341
 msgid "Are you sure about deleting it?"
 msgstr "你确定删除吗 ?"
 
-#: static/js/jumpserver.js:331 static/js/jumpserver.js:372
+#: static/js/jumpserver.js:345 static/js/jumpserver.js:386
 msgid "Cancel"
 msgstr "取消"
 
-#: static/js/jumpserver.js:333 static/js/jumpserver.js:374
+#: static/js/jumpserver.js:347 static/js/jumpserver.js:388
 msgid "Confirm"
 msgstr "确认"
 
-#: static/js/jumpserver.js:352
+#: static/js/jumpserver.js:366
 msgid ""
 "The organization contains undeleted information. Please try again after "
 "deleting"
 msgstr "组织中包含未删除信息,请删除后重试"
 
-#: static/js/jumpserver.js:355
+#: static/js/jumpserver.js:369
 msgid ""
 "Do not perform this operation under this organization. Try again after "
 "switching to another organization"
 msgstr "请勿在此组织下执行此操作,切换到其他组织后重试"
 
-#: static/js/jumpserver.js:368
+#: static/js/jumpserver.js:382
 msgid ""
 "Please ensure that the following information in the organization has been "
 "deleted"
 msgstr "请确保组织内的以下信息已删除"
 
-#: static/js/jumpserver.js:369
+#: static/js/jumpserver.js:383
 msgid ""
 "User list、User group、Asset list、Domain list、Admin user、System user、"
 "Labels、Asset permission"
@@ -76,76 +76,80 @@ msgstr ""
 "用户列表、用户组、资产列表、网域列表、管理用户、系统用户、标签管理、资产授权"
 "规则"
 
-#: static/js/jumpserver.js:408
+#: static/js/jumpserver.js:422
 msgid "Loading ..."
 msgstr "加载中 ..."
 
-#: static/js/jumpserver.js:409
+#: static/js/jumpserver.js:423
 msgid "Search"
 msgstr "搜索"
 
-#: static/js/jumpserver.js:412
+#: static/js/jumpserver.js:426
 #, javascript-format
 msgid "Selected item %d"
 msgstr "选中 %d 项"
 
-#: static/js/jumpserver.js:416
+#: static/js/jumpserver.js:430
 msgid "Per page _MENU_"
 msgstr "每页  _MENU_"
 
-#: static/js/jumpserver.js:417
+#: static/js/jumpserver.js:431
 msgid ""
 "Displays the results of items _START_ to _END_; A total of _TOTAL_ entries"
 msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项"
 
-#: static/js/jumpserver.js:420
+#: static/js/jumpserver.js:434
 msgid "No match"
 msgstr "没有匹配项"
 
-#: static/js/jumpserver.js:421
+#: static/js/jumpserver.js:435
 msgid "No record"
 msgstr "没有记录"
 
-#: static/js/jumpserver.js:563
+#: static/js/jumpserver.js:577
 msgid "Unknown error occur"
 msgstr ""
 
-#: static/js/jumpserver.js:800
+#: static/js/jumpserver.js:816
 msgid "Password minimum length {N} bits"
 msgstr "密码最小长度 {N} 位"
 
-#: static/js/jumpserver.js:801
+#: static/js/jumpserver.js:817
 msgid "Must contain capital letters"
 msgstr "必须包含大写字母"
 
-#: static/js/jumpserver.js:802
+#: static/js/jumpserver.js:818
 msgid "Must contain lowercase letters"
 msgstr "必须包含小写字母"
 
-#: static/js/jumpserver.js:803
+#: static/js/jumpserver.js:819
 msgid "Must contain numeric characters"
 msgstr "必须包含数字字符"
 
-#: static/js/jumpserver.js:804
+#: static/js/jumpserver.js:820
 msgid "Must contain special characters"
 msgstr "必须包含特殊字符"
 
-#: static/js/jumpserver.js:976
+#: static/js/jumpserver.js:995
 msgid "Export failed"
 msgstr "导出失败"
 
-#: static/js/jumpserver.js:993
+#: static/js/jumpserver.js:1012
 msgid "Import Success"
 msgstr "导入成功"
 
-#: static/js/jumpserver.js:998
+#: static/js/jumpserver.js:1017
 msgid "Update Success"
 msgstr "更新成功"
 
-#: static/js/jumpserver.js:1028
+#: static/js/jumpserver.js:1018
+msgid "Count"
+msgstr "数量"
+
+#: static/js/jumpserver.js:1047
 msgid "Import failed"
 msgstr "导入失败"
 
-#: static/js/jumpserver.js:1033
+#: static/js/jumpserver.js:1052
 msgid "Update failed"
 msgstr "更新失败"
diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js
index f86ca134..5eac258f 100644
--- a/apps/static/js/jumpserver.js
+++ b/apps/static/js/jumpserver.js
@@ -1015,7 +1015,7 @@ function APIImportData(props){
                 $('#updated_failed').html('');
                 $('#updated_failed_detail').html('');
                 $('#success_updated').html(gettext("Update Success"));
-                $('#success_updated_detail').html("Count" + ": " + data.length);
+                $('#success_updated_detail').html(gettext("Count") + ": " + data.length);
             }
 
             props.data_table.ajax.reload()
diff --git a/apps/terminal/views/command.py b/apps/terminal/views/command.py
index 222701db..c1a5eb39 100644
--- a/apps/terminal/views/command.py
+++ b/apps/terminal/views/command.py
@@ -48,7 +48,7 @@ class CommandListView(DatetimeSearchMixin, PermissionsMixin, ListView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Terminal'),
+            'app': _('Sessions'),
             'action': _('Command list'),
             'user_list': utils.get_session_user_list(),
             'asset_list': utils.get_session_asset_list(),
diff --git a/apps/terminal/views/session.py b/apps/terminal/views/session.py
index 369053a6..cf4484c0 100644
--- a/apps/terminal/views/session.py
+++ b/apps/terminal/views/session.py
@@ -71,7 +71,7 @@ class SessionOnlineListView(SessionListView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Terminal'),
+            'app': _('Sessions'),
             'action': _('Session online list'),
             'type': 'online',
             'now': timezone.now(),
@@ -89,8 +89,8 @@ class SessionOfflineListView(SessionListView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Terminal'),
-            'action': _('Session offline list'),
+            'app': _('Sessions'),
+            'action': _('Session offline'),
             'now': timezone.now(),
         }
         kwargs.update(context)
@@ -113,7 +113,7 @@ class SessionDetailView(SingleObjectMixin, PermissionsMixin, ListView):
 
     def get_context_data(self, **kwargs):
         context = {
-            'app': _('Terminal'),
+            'app': _('Sessions'),
             'action': _('Session detail'),
         }
         kwargs.update(context)
diff --git a/apps/terminal/views/terminal.py b/apps/terminal/views/terminal.py
index e5d4658e..5ddb9312 100644
--- a/apps/terminal/views/terminal.py
+++ b/apps/terminal/views/terminal.py
@@ -28,7 +28,7 @@ class TerminalListView(PermissionsMixin, ListView):
     def get_context_data(self, **kwargs):
         context = super(TerminalListView, self).get_context_data(**kwargs)
         context.update({
-            'app': _('Terminal'),
+            'app': _('Sessions'),
             'action': _('Terminal list'),
             'form': self.form_class()
         })
@@ -44,7 +44,7 @@ class TerminalUpdateView(PermissionsMixin, UpdateView):
 
     def get_context_data(self, **kwargs):
         context = super(TerminalUpdateView, self).get_context_data(**kwargs)
-        context.update({'app': _('Terminal'), 'action': _('Update terminal')})
+        context.update({'app': _('Sessions'), 'action': _('Update terminal')})
         return context
 
 
@@ -57,7 +57,7 @@ class TerminalDetailView(PermissionsMixin, DetailView):
     def get_context_data(self, **kwargs):
         context = super(TerminalDetailView, self).get_context_data(**kwargs)
         context.update({
-            'app': _('Terminal'),
+            'app': _('Sessions'),
             'action': _('Terminal detail')
         })
         return context
-- 
2.18.0