From e697cbe329cfddeb81c3d1e0f8cdcfb8c3331855 Mon Sep 17 00:00:00 2001 From: Sander Land Date: Sun, 21 Jun 2020 22:44:56 +0200 Subject: [PATCH] better download errors --- katrain/core/constants.py | 2 +- katrain/gui/popups.py | 16 +++++++++-- katrain/gui/widgets/progress_loader.py | 26 ++++++++++++------ .../i18n/locales/cn/LC_MESSAGES/katrain.mo | Bin 10396 -> 10474 bytes .../i18n/locales/cn/LC_MESSAGES/katrain.po | 4 +++ .../i18n/locales/de/LC_MESSAGES/katrain.mo | Bin 12220 -> 12298 bytes .../i18n/locales/de/LC_MESSAGES/katrain.po | 4 +++ .../i18n/locales/en/LC_MESSAGES/katrain.mo | Bin 11312 -> 11390 bytes .../i18n/locales/en/LC_MESSAGES/katrain.po | 3 ++ .../i18n/locales/es/LC_MESSAGES/katrain.mo | Bin 12118 -> 12196 bytes .../i18n/locales/es/LC_MESSAGES/katrain.po | 4 +++ .../i18n/locales/fr/LC_MESSAGES/katrain.mo | Bin 12831 -> 12909 bytes .../i18n/locales/fr/LC_MESSAGES/katrain.po | 4 +++ .../i18n/locales/ko/LC_MESSAGES/katrain.mo | Bin 13062 -> 13140 bytes .../i18n/locales/ko/LC_MESSAGES/katrain.po | 4 +++ .../i18n/locales/ru/LC_MESSAGES/katrain.mo | Bin 16427 -> 16505 bytes .../i18n/locales/ru/LC_MESSAGES/katrain.po | 4 +++ 17 files changed, 60 insertions(+), 11 deletions(-) diff --git a/katrain/core/constants.py b/katrain/core/constants.py index 7eaf22e..19791be 100644 --- a/katrain/core/constants.py +++ b/katrain/core/constants.py @@ -1,4 +1,4 @@ -VERSION = "1.2.1" +VERSION = "1.2.2" HOMEPAGE = "https://github.com/sanderland/katrain" CONFIG_MIN_VERSION = "1.2.0" diff --git a/katrain/gui/popups.py b/katrain/gui/popups.py index 5242f48..f5b6567 100644 --- a/katrain/gui/popups.py +++ b/katrain/gui/popups.py @@ -361,6 +361,12 @@ class ConfigPopup(QuickConfigGui): self.katrain.log(f"Download of {model} model complete, but could not move file: {e}", OUTPUT_ERROR) self.check_models() + for c in self.download_progress_box.children: + print(c,c.request) + if isinstance(c,ProgressLoader) and c.request: + c.request.cancel() + self.download_progress_box.clear_widgets() + downloading = False for name, url in self.MODELS.items(): filename = os.path.split(url)[1] if not any(os.path.split(f)[1] == filename for f in self.model_files.values): @@ -374,11 +380,17 @@ class ConfigPopup(QuickConfigGui): download_complete=lambda req, tmp=savepath_tmp, path=savepath, model=name: download_complete( req, tmp, path, model ), - download_redirected=lambda req: self.katrain.log( - f"Download {name} redirected {req.resp_headers}", OUTPUT_DEBUG + download_redirected=lambda req,mname=name: self.katrain.log( + f"Download {mname} redirected {req.resp_headers}", OUTPUT_DEBUG + ), + download_error=lambda req,mname=name: self.katrain.log( + f"Download of {mname} failed or cancelled {req.resp_headers}", OUTPUT_ERROR ), ) progress.start(self.download_progress_box) + downloading = True + if not downloading: + self.download_progress_box.add_widget(Label(text=i18n._("All models downloaded"))) def update_config(self, save_to_file=True): updated = super().update_config(save_to_file=save_to_file) diff --git a/katrain/gui/widgets/progress_loader.py b/katrain/gui/widgets/progress_loader.py index fe2d6df..b3d34ea 100644 --- a/katrain/gui/widgets/progress_loader.py +++ b/katrain/gui/widgets/progress_loader.py @@ -47,6 +47,8 @@ class ProgressLoader(BoxLayout): download_complete = ObjectProperty() """Function, called after a successful file upload.""" + download_error = ObjectProperty() + """Function, called after an error in downloading.""" download_redirected = ObjectProperty() """Function, called after a redirect event.""" @@ -56,6 +58,7 @@ class ProgressLoader(BoxLayout): def __init__(self, **kwargs): super().__init__(**kwargs) self.root_instance = None + self.request = None def start(self, root_instance): self.root_instance = root_instance @@ -81,12 +84,14 @@ class ProgressLoader(BoxLayout): file_path=path, chunk_size=102400, on_progress=self.update_progress, - on_success=self.on_success, - on_redirect=self.redirected, - on_error=self.download_error, + on_success=self.handle_success, + on_redirect=self.handle_redirect, + on_error=self.handle_error, + on_failure=self.handle_error, + on_cancel=self.handle_error, ) - def redirected(self, request, *_args): + def handle_redirect(self, request, *_args): new_url = request.resp_headers.get("location") if new_url: self.download_url = new_url @@ -94,8 +99,13 @@ class ProgressLoader(BoxLayout): if self.download_redirected: self.download_redirected(request) - def download_error(self, request, *_args): - pass + def cleanup(self): + self.root_instance.remove_widget(self) + + def handle_error(self, request, *_args): + self.cleanup() + if self.download_error: + self.download_error(request) def update_progress(self, request, current_size, total_size): if total_size < 1e4: @@ -103,7 +113,7 @@ class ProgressLoader(BoxLayout): percent = current_size * 100 // max(total_size, 1) self.label_downloading_text = self.downloading_text.format(percent) - def on_success(self, request, result): - self.root_instance.remove_widget(self) + def handle_success(self, request, result): + self.cleanup() if self.download_complete: self.download_complete(request) diff --git a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo index b095193d049089650c4ec2514116b41c9bfd3717..4b3f12524f98017ea84e528da2ddbf33a25d0a0d 100644 GIT binary patch delta 2766 zcmYk-drVe!9LMn=1ZdpkRumwRnh$|Cx@dO8f!3PE(B|wS%O2v1nMW{4k@buN(q&;9 zW{%BSj9JaB%nT`8msu_i3%i)pF7gLW=EJhpNGjLm{ptC(a)lUK|EW;FR#0#+vld&7)@Oe~1FQMkYk2&}SX5kO01!K8M^U_i6 z0BQrX@qD}mvz+hT?OdEkM;&snTVWHLQHiyqcJd@D&@LLGu33pH-BQ%N6{wxG+ISbLq|c!eehoGMZ5tmz z%|DKcA3??W4Sh{ardI=boHS5^x}gjecp)lq5ILM@?T1l2dJMJm%{UQzki+fZr1)>5 zDtHhz?+EJAev?Z5^^AVDj)~0Hf(2$Ns>J1}8*W7oSHp?qT_Y;tHfwLTb}w?cK2F-m z0aT*LQ1ORR@x~@m|6DGT=*`3cl8d|ET!6~>E>s0Vs2#3C4%fm-fjUtyUoR?7Kk6$P zKn^!-j-l?4Co7rib3rmL8})VvFac+v0$*k03s8yOjaq2A^|zubun|?MUh`#C;(Jj$ z-;YXU(8h;Q74%QrgmF}$I8K_FjY_BpmFY~>qneFc=r+{6CDyJ(E%YF2;Z{_lok(cc zgL(&EN8P^8NRiP?W!uO!!)S(t! zi+Y6Xti1t~^!;~pp^4j3JM2RR8nFHos6-;DNA-t|r?5RGkcZmoWt^I^3~f>+=KUWhq(Eh>>l)I#g92zR3H`w~_1 z)2Mgp9F}2hHoqxYj@z&u{cE_$=T%j}C8(X=k1AOUF2oL0MUG+^hi&}ci=+Jy;A+iB zE%+m<)Mrr@h~f8Hrkc5CQ4aOjz%1*iFso33s;zw=Zlt{mwS&K~3+Ga{-S`m!5Rz~`q3Q>6-G;c2K91{qY{h1Bx(j~M+L~HTrsLr z^HKBfFhe%pgt~u&^>0O0bO&l3ldbTlBqJgtf0jD94*IkZE z=qA*=bSLVOK4krmAWzM8<22lDZT~ASi0#gx0;EmleZZ-x8!Ax!OR*H|aR&Ba34Vgy z>V8Enm`il+yabit9BWsYRj7?rBkTCCkqc$K3DfXZoA91_6jibaD)3LJlK*M_$(Kg^ zGtEL&A~Ve!k;7GT(%035iW9~J)^|@>N0<35D)XJz?lbqJG9N@G^gU{!QB=jwSvzNX zw7(e1(OrjHa2YDDhq1T@6IkE1=mOhNrG6asNVcMGe8>D4i)kN2UUV13$FK2x)c0Rv z?Zsvg6X>ruSDRt81ARTiPV4A5-!%`Q7C3C}UY!`wP;gCfxfiVQLjO(* RdX1rAZOi{BKb4h|^*8*i3x@yz delta 2702 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 diff --git a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po index 1628966..43ce14d 100644 --- a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po @@ -607,3 +607,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo index b0b6f914d3ace3e98a4251100ca84697f1c3a852..1f498b12cfc44595c190511c20c5d3cfc573a9be 100644 GIT binary patch delta 2769 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 S%eOq!wmXy=YU@oon)V-l$^UNv diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po index 2cf712e..e57e440 100644 --- a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po @@ -598,3 +598,6 @@ msgstr "Download Models" msgid "models available" msgstr "{num} available model(s) found" + +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo index d5d70b5ce7511ff24c658804dffd0f31ecf258b6..cca852477738239fa673314b6fe3639da61ba3d0 100644 GIT binary patch delta 2765 zcmYk-4NR3)9LMp02v^_=20|Dw0xAM3;A%+4hQnMj$=>E{m6Kh&H|D&C(F?hZN2}Gw zuu@_!&5VIfbF)me7gsGz8PsHR=$6n2!CJg6B~aM)8uyC865+ zs0GZ$IIO}H^UUt#W*iS{k#}vS8_xy65evKzp3;px*C7jXR23$TzNk z7`f~sAD0uP)6e{t#En*xh3c4tTsF_S2vxd!QR7ykR?_JDUqF@g6;#4+pvJ%F`g>91 zzd*$wLd6+HPXj0LR2`XosACrDg$h*Q+fji7$Yo*IejK%;XHY9|!C2gmT(*-B#eW-B z!EV&JKGfEJl}P=yN58rUv5eM)+0Hqr5?7*Ls75YZ&Iid`Ju2aKuHE9=ZOCPvd}tvb zqY@oJ#Xp0JH!_j>XK>@^=_JfYanf=p-y)``fxTX@U^agAu6$ZP!p|i&l^z{cn(#mHs@|s;`>o6 z{|J@HQP+P8RYC6uH{cQ~P&6MJn1)KI0F`MGYOCg=Cb|VRZi#Exq9%F}HE|;<(IzCc zZAYDfy{Px!MaFq{h#S4w=Q_Sd1wM;hcFDElsjC8Kpfb-#y;tg-kE+mZsDziH;?$xh zdbQ2(?vXu0Mh0DS=GXN(=c2V+H2pZuk5c z>X&s80~o_3HCT&9`u=xwGaWCYGEZmY)t-jMScTVN1D4^NsDuZx97pkbEKQ3{REIpW zX4Dq8<4w2|73U{Bjs=`hPcM#fqZi7qj(981q8&mdxDi!>Bz|YRa60N2^Bih#hp`pM zP=~jLuap+D1=Zhf|WxG%d_$-6)+RJZwpb36P9g=a>OKm@D;1v7-ORyR*;3>Qz zi$64&K7~ELg6+%Zt4BLKhi9}0@HFjTa@iW%{Zq{j)1F6pU&WX_mZt<>%Zp6ZiOTRW z&cx%$uGrtGgi>cjEI?JL9NAW@btje z8d6QW3+b~*kYi!nP%A%xRoH_Sm|Pe+e0QJ%Za}T{eN^I~q9#6us_;qI|0A-?_6N?^ z@k*o4Y@01WWfVkZx*k=^c8tX%7>9kR-+>dTl78>{hftOH4V7>_`=bSAp-z1{j>m^l z39Ut+j&~C`D)Gk45BM{Re%d=w6YfR5a1b>?4=T`U)Y%wB&Y%5-+LA1mrL8K$Vyr~1 zcr|LPn=uMEp^y2kl^X?o85O7lwemw6fM-#qJ&#o1{zL`ND~dc{jAgX%bM39DioK4C zyAS<%5cv{Vx3dR5mF5#}RLW?g>cu!zrpc~785JlO6{ryT4Y5+(hKn!(hf(j3qP8H4 zgQ1F~B3~fOLw%jA@n&3FqA-==aL%f_U?}`hPOz@wfpA?Q7z*xN8b33B20ejC11rLT X<>Ao3V*=s&P$0PG|6`v{=}-R$;ldQ7 delta 2702 zcmYM#eN5F=9LMqR6}iAg9wJE)ABl%B#WrfmU^qr-6M7!SkTMIwniuBQ1GhW8E2C&O z^RW`eq;93N(jviDv`QSSF_D3?Srcm+HRBIf(Q>tVf4FDMUGD35e&_tY=X<{A{I213 z=N}4POqsdY_!s7H9)HErYMIsg{`VR#AEcdzP0lu4NV^kL@Jmd_5sbmhn1~aYgnzsK zS@Dr^^O0L2%jZG?3NZmI@j9%*S-2Tz;ucKBt*G()a4x=wv#}pF;diKUS6tge5G^1X z<1iC7ekn#Vzm;;qSSxn}?m;rMwWyWUqXIX&`z@$IZO&b&=MSL99Y!sr$Mv5^J~qhL zbb_eyS1^V7?N8U?<0(Cu?#xA%?iSRF%TX(-cKwf|O5Ti0_$Ac%J+42D8vhY$;yzTI zVbr*vFrqx7Q2p7cfW>@~t5u>_Qsdfw*A5~d+s>C3auAj1aa8z zKj!=y$-yQ=TwEvnEV(&O=ow50&r=RGd=Og!iJhu-3I3 zQ1Lcnvflp|F0{h!s6gTA4zn&)B7LZ>7n%D53a*> zCRv67%))muR`36SyKxTlXG*4YNEw+B4?%qwRKgv3Tset zI&lOqpq@L%3FT4y1w*>9bh8^_4l1EC)XGocS9l(ya38<7+S3l)i^ouhww!lKrLRQw zSD`A@fU4*ds0D0AZQ&kN{5Lb0PKV=!yV2_gp2g3(|2 z-LSiV$@x3#5XR<4_AU(-csVLiA*#Oub=ub=MX-8Yj%}#3auN&h98yFJ#ob`WwdEq` z!R|t>d?VhDK`g;OEW)U~NWhh-l{TRlx1c6&MU{Am>pzI>qP>qx@oQwaYzj$;-+$_^ zObbw@tio7q#yETy^}cRHmGm{&e*krO-$o_;8EQp?s8c_IF_^=?DWQB+qQ$5Rmrb|X z|GT+}=f(r52_Hp0;73gmL$&i6*cY-RK;phfj3}0`jMBw0?r_+ zGA*b|c4J5ne#(V1?L)P{K?NE{1^O2G?XYp|z<)6TJIG4okD|8VV^l@@kr%~AQSbdf jxEd365=$G`Zwfr~SYyK?f74SNx_0_9d|e~6&(8f1N&*1- diff --git a/katrain/i18n/locales/es/LC_MESSAGES/katrain.po b/katrain/i18n/locales/es/LC_MESSAGES/katrain.po index 0385a0a..94095e6 100644 --- a/katrain/i18n/locales/es/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/es/LC_MESSAGES/katrain.po @@ -602,3 +602,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo index d5c73b35430e840e625659be1bec133961fb4c35..7cb8fdbefd801140d61b0bf5a5d18d70f9315553 100644 GIT binary patch delta 2765 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 diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po index 282b0a2..26a8e68 100644 --- a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po @@ -641,3 +641,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo index e564fc03beb6e6e2a74c2b5a9e7f379d5a54bec7..f055540cb71242fa13d831313e1f6e8424057c10 100644 GIT binary patch delta 2766 zcmYk-drXye9LMpmg(T+yhEQaJfTjlmjG&msqR^U3Xf4Z@S#;PzW*p?=%v{9-QM4&I zClb>(6)ERsqcJh66^6Lns6jc`w3{_ITVDF3EV@kV{qg)-xyR@A{4US;_x)YYL+i>D zE4^>0M0Fbf-r|1>|L>oul3CdIpEvMWLpcFk@FwhZ_F@|4V>ktW!0Yi(ybk?-vv^Fz z$v6Ymo*&V(`8?3q9z_Kx$2e@j8?gyvu?wT{O;kerQ2h_%&3GJ>@FHr!Yj{ch5>Vv; zY668Ag9|aqJhMl5xR#14UF-0djANj-zaJ#-?;Yk z$YsBByP6=4e#W;19yF6wR6`ze*}cxisHJ-n)vp>glSbFR8MUN4Pzk?{>i@oLA3^m$ ziHd&?73UB1)G?M?HKcG;LpJJ#VpQOVQGtWVWnou-0X3sm)XY0@67EDU+sjSy2T&_` z4ApN8wY6Wxv;NwnpIyZydTYQmXC7*aOHeO7h+I~|jpVHXm2i_Qcervla#=q&P2?yl z(JxT(&!FO6n#}r7P?3RI$ISchD;o|^(~KpnnrRGfEEzmgH; zvNO(0sP`w5m5ldzAQ?+Wo$dfeV-6~Cfom^CCAJ(j&?;Boh+2V7sFmt=9zZ322sQH| zR3f9U{WNL?y&qkNaa5ovZt9qfN+=VRX)bE33Q+@U zw(w13@f2%uId54FPgAd6>9P%BfB%KEFJ&UI`?1>A(nd>?Ah4q_h;;!>=e&Nl;( zVg@rANaHh(r_%YVQJ*uz>@mu-XGZ$Hc#GKslxt_1U7-CC%iW2)1FXL?nw!Z<$1-lL zmaWBfYor2+p%3x^y|2wxN HwM_p9x@8p# delta 2702 zcmYM#4@{O-6vy#Hh{`JnA{HdbUnT#9C}ofal0zeCGmwoTE?o#w@lU3c7`{u(SvU>M zEmvA@v_Y$dv23kaR6HYES|$@IF2*%3dZ1s_eaeL zjY~!z1udH!1<1!}EW=x|8l$ikr{FG}gL_cpkKpb2CdT7us0qJEjl1maFoI|Su^5Tz zsPRiMocXPY8^&6(4|o{K%r>G{QilrMAg zE@4m|*S#ZxhF(ZO1zv;-yb`%=t+y+YoNY5|C5<>8+mXw5^P>s6Q58In8rP57+ILY~ z^yN(IuLl=-pb2ld0p3=L=c4-OqXMqthg_`;wUTOYH+s7Rx$FQxTF5a}q64V-L#TKo zI2XrbsQ+wk!sumgo8xApGR{R+pb)jf2a(Gv_)(x*)M4sC#d!hsmGmN)4Y?zz_b<3V zBRSaBAU8VQVWc}1r=kK!qXuN661xjE(HehVg{r_~s7iIX&!Q4Ph+6r}$Q0J+{qLhH z_^I~?N4Zg;G1S1TsDy6ep)#I^+N)U9L<>;ka=cxHny3^taTO}jS|pUUqs~AV>it8g zaYvE&g4XXHCsBb@XWdC2|_I73aPGCsYF0Q7aAS=Lt+eCHM?3!XE6xA#B4ECMi%G z7vKcy{86)S-I`wc-<4iyz!+#h$v}aJI{}xr5 zi>NL54Jp#(s#KYHR;TCbsByW;)L#Kt^FWzzMD5j9Jb^7(f$8(i{=glW#!4De*jMaI zr7AohBil;a-=v4eWoPoQCGE8NX1~&3PrVQ0hOAIRzu+CTZ)Q<{s$^NTQn3)#-i$iE zJ5eim9+|_Ap%OfWO85)ZmVE8cBNv9wK)jods!)!%@9}mqsuE>EzuDv+P2S#)+S9$L z(!GjQ-QGgZjeU*^d;xW6FQE?UHPrYBPN2rmMv7rey}bdo)h(#455B<-Rkn|i>e>&e z&tn4b#OaGer*;LdqrDwh;}9zFP1J-LOG10P4Am}h%TNocMlNgPM+$-8cgZ-9A(zgQyh`qbhdRJ&!fCze6RGw~YGh zrjQ%C78URzw+a>LQPgMJiaod=Rf&}4p_SyK`tL)HuR>L@4z-Y7xD5}X6*X;nvi+%s Wrux*z<{euHy90@V!87r@=luty_4pb9 diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po index 9a215c3..5230335 100644 --- a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po @@ -579,3 +579,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo index bf7e5f2258b472c0e4093a53d0162e9faef1b85f..04e099c9793c155d129b3dca0c93682af5995c04 100644 GIT binary patch delta 2768 zcmYk-4NR3)9LMoLFTMeSAb}lxd>~yNoM2E@H?cbNLW0-B`93 zGHY!*W@Tj~3CwC`Mot@BSZ+C6RGY4xXsv+8baVFobx$kz_MR5A-j{pU?QHc*bo=WzyhI=eBA@+nNfi#QFh;UtWXHjBmS z7>9FF?b#tcE9HT{_7G}-4LB8>FbP{R2KQnlzJUtp9aR6%@n$@OiTE38!f;+vzj##H zhgv``PQg`}Xr9@FJVa1YhrDa`u0sndu;)-Kc@Z_x9#?+=HBh(nBh>r-sD6W}h5YE+ zFC&-z#qFN}X^dumi|0WrnT={#id6h(xb^{5 z|8uDEhf(8PMNb`Ls8vG>H#ICmy-AGs{(%G*&Z+KF0u2TsQQ$YpPH)A&bG z89asRcN(>|Kg5!M?a_#4>oATQD3Y5xCZht%Kt-B`+NxaCME9Zkt#{=*)I?9BCfh4R z_M^@~59 zATGy?*nlZa(v0m`rtkj-4?2WpY`7v1;7Z(#E3g;+_$OB3+T>754`U_eeq4Gm6vD zyxT$*@u(M4k>D*Cb?B;GeIqWXybBfJr>=eo8Oz2{XJ>wPD3gmZj&dn#Yu92fK7$Wq zk1Kmqmhl&miXx=WI&c-9M6zXZ%&NnbhizDiI>ke{70Yu%hxHh0Pa~K`d!C93n1u?Y z2yej(EW&2IOW*$y9yH+y-h=tKo3R*cL&mf|)XIiYDH}y?LF65w`c%|JKGYWFA;-Yh zqu$?+CD?<>IEKn#%$<6l{mBnZK8%UfpFy4ei>M4G<%L$7 zgXxs-#!B3X8F(CZ1}>oj{sUu~-y-ru-)REQr92yT_=-@eY{!}S8nSrn#dUZYwUT1; zSc87lXLiDQ9<^fqh-g7GFdQ?TOVF#QBAW-LcpoO=LDa;@Py>AJ+J8X}^gA-Pg%@z5 zu@H53G7Cc)+<-beLDXU1i^cdEYUMX@BPJAS_~KwNy`ix-5Zszx+t{)>*yyhf)b>_I i&5QD>$^VppQ_x=%4E)>4A8ZQvYq$NsvzPeZqQ3zZ{TopL delta 2704 zcmYM#drX&A9LMqR4@3wResU4KatW~v(Gp7%Gb|`Cf0WGyMjN6)rhpPNl-Z9_E~-Uo zxW-VH^~1?@DPQyx8QW#gH!MojK^0|{abJjp2j%*8a3f%RKM%4?qd)w zz>jxfDyn}5hBCk9QlPKpxeiYwk=b*om6V|du5`~2payDm9!9-?6xHt}Y9XJw_OFo3 zE^xaOAgcd$jA4Ge=^7$=OE1oLE<&Yl1!~24sFf7B_7_npuSEs?2C9FvYY(FOccLcl zM~(9Xs^1?NP{X8a2&1AG5>W#$Mh(0Qxh&t+HzP4yF={0h7=inc%Nn?8fXE@me(bkEP(FmANh6nTCpZIVuBdP%B)IT=on%4YVC~nCejDyo>rug2-j( zoCB!$uQ*4L7;G#+L8seCxKnW|YTy~D4r!>svQQH}=AIXzGVlT_Q+3XRsKDPrt-KYP z!cMyOv#1Q7ckO|T6g1Efs^b_cpb#D^;&9Yn`B4+4qxvm#^<30M8&DG$paR{F3}yRJ zXW%W=`|qLp9Yfv=SchxqK@HrCTz1jbucBU3dP45U!_n8I4Th<{=ne+W|XUo6Jd`TD8krx!Evbqry^ z9@L>d%j`;hFDirIB2D&_a}xDa9hbynaVe4%dm@Sat78!l2+sDq4$as_{WLaXaWX%@ zOgMor<94EJ#mjdy2-Yq%`yG2(Ry79iF-r+yvc+aQsb^=f0Bm341<=7NC|X};!22uq z7Z0>I(d3hNtq@6uHJ}1(LoWNA+aer6of-c!Z!6MKE2~D1g}sT&OdIN~w4)z8UHv?& z|6qUu!P^MxutnYPHKbq`^=u>wR_UHMAzkeRD&?0@sr&__aRRlsVGo!+h#B}SZgcf7 za1-@$Ak-M z*HYhx33vjP!7owc4x!!~#_9V0L$kd-^J5APX{ZkQu3myl@oUI2u@+Q@zCo>Y7?bfP z7GmPV-WjS!oq<+Vz#pPA)s6a0`!SXI?E(cIzH!$fXO*|&4anlG6gT5B)Jp!w5{xCE z`g-;{n^7z7#8~_eLvYCXEAFIz6_tsnR+Il(6bdOQvfZcw0;mq}qXzl_dB;A*Q5-`Z zo}ov)(>-&IcXk$_4)Z$9#VXXw&tMt$qvcj^-L-H3j>_`nimJV(U56s$BfAFTPTlt( D-pvnV diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po index 6cb2dfa..3869eda 100644 --- a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po @@ -604,3 +604,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded"